操作系统实验考试要点整理

操作系统实验考试要点整理

ID:14735609

大小:43.00 KB

页数:4页

时间:2018-07-30

操作系统实验考试要点整理_第1页
操作系统实验考试要点整理_第2页
操作系统实验考试要点整理_第3页
操作系统实验考试要点整理_第4页
资源描述:

《操作系统实验考试要点整理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、创建线程过程(create函数的实现)/*创建一对应于函数name(外部标识符)的线程*/TCB的结构:StructTCB{unsignedchar*stack;堆栈始址unsignedss;堆栈段针unsignedsp;堆栈指针charstate;进程状态charname[10];外部标识}tcb[NTCB];首先是一些基本的定义和声明intcreate(char*name,codeptrcode,intstacklen){inti;char*p;structint_regs*pt;/*第一步:寻找空白的T

2、CB*/for(i=1;i

3、步:对线程的私有堆栈进行初始化;用FP_SEG和FP_OFF分别获得栈顶指针和栈顶指针的偏移量,此外系统对线程撤销的工作,需要在该步骤完成:通过在堆栈初始化时原先将over()函数的入口地址压入线程的私有堆栈中;那么当线程所对应的函数正常结束时,over()函数的入口地址将作为函数的返回地址被弹出到CS,IP寄存器,控制自动转向over()函数执行*/pt->flags=0x200;/*flags寄存器的允许中断位*/pt->cs=FP_SEG(code);/*代码段的段地址*/pt->ip=FP_OFF(c

4、ode);/*代码段的段内偏移地址*/pt->ds=_DS;/*数据段的段地址*/pt->es=_ES;/*附加数据段的段地址*/pt->off=FP_OFF(over);/*撤销线程代码的偏移地址*/pt->seg=FP_SEG(over);/*撤销线程代码的段址*//*第四步:初始化线程的控制块TCB*/strcpy(tcb[i].name,name);/*填入线程的外部标识符*/tcb[i].state=ready;/*将线程的状态置成就绪态*/tcb[i].stack=p-stacklen;/*私有堆

5、栈的起始地址*/tcb[i].ss=FP_SEG(pt);/*当前线程的段地址*/tcb[i].sp=FP_OFF(pt);/*当前线程的栈顶指针*/returni;/*返回线程的内部标示符*/}终止线程的过程(over函数的实现)/*撤销线程,收回被撤销线程的资源*/voidover(void){disable();/*通过disable()与enable()来实现在执行该代码段时防止中断,确保原子性*//*撤销当前线程所申请的TCB内存空空间,因为一个线程在它执行完毕之后就需要撤销自己,所以是要用到cur

6、rent(当前)线程*/free(tcb[current].stack);/*堆栈指针的释放*/strcpy(tcb[current].name,'');/*将线程的外部标示符置空*/tcb[current].state=finished;/*将状态置为终止态*/swtch();/*在线程撤销后,需要重新进行CPU调度*/enable();}FCFS的现场保存(swtch函数实现)/*swtch()调度,手工调度才能运行,处理因其他因素引起的中断*/CPU现场保存信息cs,ip专用寄存器(方式:函数调用)

7、flagsss,sp保存TCB中,其他都保存在栈(方式:手动保存)es,dsax,bx,cx,dx通用寄存器(方式:编译器保存)si,di,bpvoidinterruptswtch(void){inti;i=Find();if(i<0)i=0;disable();tcb[current].ss=_SS;tcb[current].sp=_SP;if(tcb[current].state==running)tcb[current].state=ready;_SS=tcb[i].ss;_SP=tcb[i].sp;t

8、cb[i].state=running;current=i;enable();}new_int8函数的实现/*系统调度,即时间中断到达后,判断时间片到后才运行,调用老的时钟中断*/voidinterruptnew_int8(void){inti;(*old_int8)();/*调用原来的时钟中断服务程序*/timecount++;/*每次发生中断时加1*/if(timecount>=TL){/*时间

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。