当前位置:文档之家› 操作系统实验

操作系统实验

操作系统实验报告
学生姓名依力夏提江·艾买尔
学号 12101020129 班级计12-1
2015-1-7 第2页/共16页
四、关键数据结构与函数的说明
具体各功能模块设计
进程创建(用来存储进程信息):进程号,进程名,进程优先级,需要运行时
间。

typedefstructpcb {
char name[10]; //进程名
char state; //状态
int id; //id号
int super; //优先级
intntime; //需运行的时间
intrtime; //已运行的时间
structpcb *next; }*pcb1;
打印就绪进程队列:void print();
打印阻塞进程队列:void print1();
判断进程是否结束:int check();
对进程进行优先排列:void sort(pcb1 &r,pcb1 p);
判断就绪队列是否为空:void block();
唤醒进程函数:void wake();
运行进程:void runing();
进程: void input();
2015-1-7 第3页/共16页
七、调试时遇到的问题及解决方法
结果分析
首先创建进程,并按优先级高低排列到队列中,优先级高的排到队列的队头;通过查看就绪函数查看就绪进程的信息,这时,所有的进程都是属于就绪状态;再通过唤醒函数进行唤醒进程,这时所有进程都属于就绪状态,没有需要唤醒的进程;通过阻塞函数阻塞当前进程,这是阻塞队列中有1个被阻塞的进程,就绪状态就有3个就绪函数;再通过运行进程,这时有2个进程被阻塞,2个进程位于就绪队列;再通过唤醒进程将被阻塞的进程唤醒。

问题与总结
设计中所遇到的问题及其解决
想借鉴之前我们做过的实验,但是因为自己的电脑没有安装LINUX系统,只
有安装了虚拟机,而虚拟机运行的程序又保存不到自己的系统中,所以只好写了一个在Windows 中能够运行的模拟进程管理的C++程序。

在设计之初,没有想好要用什么来存储进程信息,之后在网上看见一个用C++写的进程管理的程序,它里面用的是结构体来储存,所以就借鉴了他的写法。

至于在设计进程运行的等待状态的时候没有想到要用什么来反映进程的等待状态,在翻阅了孙钟秀主编的《操作系统教程》后,发现可以用队列来表示。

2015-1-7 第6页/共16页
2015-1-7 第7页/共16页
2015-1-7 第8页/共16页
2015-1-7 第9页/共16页
2015-1-7 第10页/共16页。

相关主题