操作系统实验讲义

操作系统实验讲义

ID:33028114

大小:564.68 KB

页数:54页

时间:2019-02-19

操作系统实验讲义_第1页
操作系统实验讲义_第2页
操作系统实验讲义_第3页
操作系统实验讲义_第4页
操作系统实验讲义_第5页
资源描述:

《操作系统实验讲义》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《操作系统》实验讲义包子与信息工程系2013年9月实验一进程管理一、实验目的加深对进程概念及进程管理各部分内容的理解;掌握进程管理屮主要数据结构的设计和进程调度算法、进程控制机构、同步机构、通讯机构的实丿施。二、实验内容与要求调试并运行一个允许n个进程并发运行的进程管理模拟系统。了解该系统的进程控制、同步及通讯机构,每个进程如何用一个PCB表示,以及其内容的设置,各进程间的同步关系等;系统在运行过程中显示各进程的状态和有关参数变化情况的意义。三、实验环境计算机,C或C++编程环境。四、实验提示PCB结构通常包括以

2、卜•信息:进程名,进程优先数,轮转时间片,进程所占用的CPU时间,进程的状态,当両队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删。五、实验运行结果【参考程序】#include#defineTRUE1#dcfincFALSE0#defineMAXPRI100#defineN!L-l〃进程控制块struct{intid;〃进程号charstatus;〃进程状态,O■执行态讥高就绪态仁低就绪态W・等待态完成态intnextwr;〃等待链指针,指示在同一信号量上等待的下一个等待进程的进程

3、号。intpriority;//ii£程优先数,值越小,优先级越高。intc;〃进程中断次数}pcb[3];〃共3个进程〃sl、s2为三个进程共李的变虧seed为随机值;register!模拟寄存器值,存放计算的重复次数。intregisteri,s1,s2,seed,exe=NIL;//exe为当前运行(占有epu)的进程号〃2个信号最sem[O]>sem[l],分别与共享变最si、s2相联系。〃対应信号量sem[OJ>sem[lj分别有两个卩fl塞队列,队列首illsem[J.firstwr指定,队列链指针是

4、pcbfl.nextwrstructjintvalue;//信号量值intfirstwr;//等待该信号量的阻塞队列的首个进程号}sem[2];〃三个进程的现场保留区,其屮saveareafl[0]为寄存器内容,savearea[][l]为下一条指令地址。charsavearea[3][41;charaddr;//当前执行程序的当前指针voidmain();voidinit();floatrandom();inttimeint(charad);intscheduler();intfind();intp(intse

5、.charad);voidblock(intsc);intv(intse.charad);voidwakeup(intse);voidprocess1();voidprocess2();voidprocess3();voidccxit(intn);//〃主程序voidmain(){intcurrentProcess;printf(”进程管理器“);printf(us1=%d,s2=%dM,s1,s2);printfC进程1、进程2、进程3已经准备好!”);for(;;){currentProcess=

6、scheduler();〃进程调度,选择优先级别最高的就绪进程运行。if(currentProcess==NIL)break;〃所有进程已经运行完毕,结束。switch(currentProcess)〃运彳亍当前进程代码case0:process1();break;caseI:process2();break;case2:process3();break;default:printf("进程号出错!");break;}}printf(”最后结果:si=%d,s2=%dn,s1,s2);}//〃初始化voi

7、dinit(){inti,j;sl=0;s2=0;〃生成进程控制块for(j=0:jv3;j++){pcb[j].id=j;〃进程号pcb[j].status='r,;〃进程初始状态为高就绪状态peb[j].nextwr=NIL;printf("进程%d的优先数?”,j+1);scanf(H%d&i);pcb

8、j].priority=i;〃进程优先级pcb[jl.c=0;}〃初始化两个信号量sem[0J.value=l;//与si相联系sem[OJ.firstwr=N!L;sem[l].value=l;//

9、与s2相联系sem[ll.firstwr=NIL;〃初始化现场保留区。每个进程均有现场保留区。for(i=l;i<3;i++)for(j=0;jv4;j++)savearea[i][j]=lO,;}//endofinit()//〃牛成0〜1之间随机值floatrandom(){intm;if(seed<0)m=-seed;elsem=seed;sccd=(25173*sc

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

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

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