东北大学操作系统实验二报告

东北大学操作系统实验二报告

ID:42557508

大小:323.60 KB

页数:12页

时间:2019-09-17

东北大学操作系统实验二报告_第1页
东北大学操作系统实验二报告_第2页
东北大学操作系统实验二报告_第3页
东北大学操作系统实验二报告_第4页
东北大学操作系统实验二报告_第5页
资源描述:

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

1、操作系统实验报告班级物联网1302班学号1.目的:自行编制模拟程序,通过形彖化的状态显示,深入理解进程的概念、进程之间的状态转换及其所带来的PCB内容、组织的变化,理解进程与其PCB间的一—对应关系。2.内容及要求:1)设计并实现一个模拟进程状态转换及其相应PCB内容、组织结构变化的程序。2)独立编写、调试程序。进程的数口、进程的状态模型(三状态、五状态、七状态或其它)以及PCB的组织形式可自行选择。3)合理设计与进程PCB相对应的数据结构。PCB的内容要涵盖进程的基本信息、控制信息、资源需求及现场信息。4)设计

2、出可视性较好的界面,应能反映出进程状态的变化引起的对应PCB内容、组织结构的变化。5)代码书写要规范,要适当地加入注释。6)认真进行预习,完成预习报告。7)实验完成后,要认真总结,完成实验报告。3.使用的数据结构及说明:在本实验中,主要用到的数据结构是PCB的结构,其中PCB的数据结构如下:enumStatusRunning,Ready,Blocked,Exit};structRunningstructPCB{intid;intpriority;enumStatusstatus;charname;};//进程号/

3、/优先级//进程状态//进程名称{structPCBpcb;structRunning*pcbnext;};structRunning*header_running;structRcadvJ{structPCBpeb;structReady*pcbncxt;};structReady*header_ready,*tail_ready;structBlocked{structPCBpeb;structBlocked*pebnext;};structBlocked*header_blocked,*tail_block

4、ed;structExit{intid;charname;structExit*pcbncxt;};structExit*hcadcr_cxit,*tail_cx让;4.流程图入到辭朝从尾,被碾进理开瞒師运行糙程优制m被F、iffiihI运俸进程5.程序源代码,注释及说明文字:Main.c#include#includc#includcz/proccss.h〃#includeintmain()inti二1;intchoice二-1;header_runnin

5、g=(structRunning*)malloc(sizeof(structRunning));//创建运行状态队列头if(NULL==headerrunning){perror(/zerror/z);exit(1);}header_running->pcbnext二NULL;header_ready=(struetReady*)malloc(sizeof(struetReady));//创建就绪队状态列头if(NULL==headcr_rcady){perror(/zerror/z);exit(1);}head

6、er_ready->pcbnext二NULL;header_blocked=(structBlocked*)malloc(sizeof(structBlocked));—//创建阻塞队状态列头if(MULL==headerblocked){perror(/zerror/z);exit(1);}header_blocked->pcbnext二NULL;header_exit二(structExit*)malloc(sizeof(struetExit));—//创建僵死状态队列头if(NULL==headcr_exi

7、t){perror(/zerror/z);exit(1);}header_exit">pcbnext二NULL;tail_ready=header_ready;tail_blocked=header_blocked;tailexit=headerexit;printfC请输入要创建的进程个数〃);scanf("%d",&num);while(num<=0){printf(,z进程个数应大于0,请重新输入〃);seanf(〃%d〃,&num);}for(i;i〈二num;i++){structReady

8、*ready=(structReady*)malloc(sizcof(struetReady));if(NULL二二ready){perror(z,errorz/);exit(1);}printf(”请输入进程%d的名称:t〃,i);scanf(〃%c〃,&ready->pcb.name);ready->pcb.id=i;ready->pcb.priority=i;

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

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

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