基于DOS的多任务测系统的实施-课程设计.ppt

基于DOS的多任务测系统的实施-课程设计.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

基于DOS的多任务系统的实现;主要任务

线程的创立和撤消

FCFS调度

时间片轮转调度

同步机制的实现

消息缓冲队列通信机制的实现;intcurrent;

main()

{

/*创建0#线程*/

strcpy(tcb[0].name,main);

tcb[0].state=RUNNING;

current=0;

;编程环境

16位的DOS模式:内存地址20位

TurboC2.0

;DOS的内存管理;二维的逻辑地址:

seg:off逻辑地址

seg×24+off物理地址

;‘A’;线程的概念

线程是进程内一个相对独立的运行单位,一个进程可以有一个或多个线程〔至少有一个〕,这些线程共享这个进程的代码、数据及大局部管理信息,但每个线程有自己的程序计数器、堆栈和线程控制块。

拥有资源的根本单位——进程;

执行的根本单位〔即CPU调度和分派的单位)——线程。;intcurrent;

main()

{

/*创建0#线程*/

strcpy(tcb[0].name,main);

tcb[0].state=RUNNING;

current=0;

;;堆栈的概念

堆栈其实是一段内存空间;

堆栈中最后压入数据的那个单元叫栈顶,该单元的地址就是栈顶指针;

CPU执行很多指令时都会用到堆栈,比方:

push指令;

pop指令;

函数调用指令call;

函数返回指令ret和中断返回指令iret;

int指令等等。

函数调用的参数及返回地址,程序的局部变量等信息通常都被保存在进程的堆栈中。;堆栈的概念

传统的进程由PCB、代码段、数据段和堆栈段四局部组成,但很多系统中把堆栈包含在数据段中。

引入线程后,每个线程都必须有自己的私有堆栈。

CPU切换时,要进行堆栈的切换,从而使新进程〔或新线程〕可以把信息保存在自己的堆栈中,而不是老进程〔或线程〕的堆栈中。

CPU正在使用的堆栈被称作现行堆栈,它的栈顶指针存放在CPU的栈顶指针存放器中〔如SS:ESP〕。;bx;线程控制块

#defineNTCB5

structTCB{

unsignedchar*stack;/*线程堆栈的起始地址*/

unsignedss;/*堆栈段址*/

unsignedsp;/*堆栈指针*/

charstate;/*线程状态:执行、就绪、阻塞*/

charname[10];/*线程的外部标识符*/

}tcb[NTCB];/*NTCB是系统允许的最多任务数*/;线程控制块

#defineFINISHED0/*表示线程处于终止态

或TCB是空闲状态*/

#defineRUNNING1/*表示线程处于运行态*/

#defineREADY2/*表示线程处于就绪态*/

#defineBLOCKED3/*表示线程处于阻塞态*/;CPU切换

CPU的指令计数器〔X86中的CS,IP存放器〕中保存有下一条要执行的机器指令的地址;

每次CPU取指令后,指令计数器的值被加上所取指令的字节数,调整为下一条指令的地址;

修改指令计数器的方法:

跳转指令〔如JMP,JNE等〕

函数调用指令

中断。;CPU切换

跳转指令JMP的格式:

JMP操作数

;CPU切换

函数调用指令CALL的格式:

CALL操作数

;CPU切换

中断

-当CPU在执行指令1的期间收到8号中断信号,并在该指令执行完后响应中断时,硬件将完成以下动作:

将flags存放器压栈;

将CS,IP存放器压栈;

从中断向量表的第8个向量中获得8#中断处理程序的入口地址,将它们装入CS,IP中。

-Iret指令将从栈顶依次弹出ip,cs,flags。;CS,IP:指令计数器,用于存放要执行的下一条指令的地址

SS,SP:栈顶指针存放器;

DS:数据段段址存放器;

Flags:标

文档评论(0)

ranfand + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档