《操作系统原理与Linux》课程设计报告.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《操作系统原理与Linux》课程设计报告.doc》由会员分享,可在线阅读,更多相关《《操作系统原理与Linux》课程设计报告.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统原理与Linux课程设计报告专 业 班 级 学 号 姓 名 指导教师 完成时间 成 绩 进程调度算法一、设计题目:进程调度算法二、设计目的 通过对进程调度算法的编写加强对操作系统的加深了解,从而进一步的让我们清楚个进程之间的运行情况,对优先权算法与轮转调度算法的模拟加强对进程概念和进程的调度过程的理解,掌握进程状态之间的切换,同时掌握进程调度算法的实现方法和技巧。三、设计要求要求实现先来先服务,短作业优先,时间片轮转,优先权调度算法四种算法并进行对比分析.四、设计思想说明1、先来先服务算法:按照进程进入就绪队列的先后次序,分派CPU,当前进程占用CPU,直到执行完或阻塞,才出让CPU(
2、非抢占方式)。在进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前进程让出CPU。先来先服务算法的实现过程如图所示。 设置信号量:就绪队列互斥信号量s,初值为1; 就绪队列中进程个数n,初值为0。2、短作业优先:选择就绪队列中估计运行时间最短的进程投入运行。通常后来的短作业不抢先正在执行的作业。比FCFS改善平均周转时间和平均带权周转时间,缩短作业的等待时间提高系统的吞吐量。3、时间片轮转调度算法:通过时间片轮转,提高进程并发性和响应时间特性,从而提高资源利用率。将系统中所有的就绪进程按照FCFS原则,排成一个队列。 每次调度时将CPU分派给队首进程,让其执行一个时间片。时间片的长度从
3、几个ms到几百ms。在一个时间片结束时,发生时钟中断。调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过CPU现场切换执行当前的队首进程。进程可以未使用完一个时间片,就出让CPU(如阻塞)。 4、优先权调度算法:优先选择就绪队列中优先级最高的进程投入运行。分为:非抢占式优先级算法:仅发生在进程放弃CPU。抢占式优先级算法:可剥夺当前运行进程CPU。五、系统结构的说明六、数据结构的说明用C语言或C+语言来实现对N个进程采用优先算法以及轮转算法的调度。队列指针Next用来将多个进错控制块PCB链接为队列。void init();/*产生idle进程,输入用户进程数目,调用insert(
4、)*/void print(PCB *pcb);/*输出进程属性信息*/void print_init(PCB *pcb);/*输出所有PCB的初始值*/void insert();/*生成进程属性信息,插入进程就绪队列*/void Run_priority(PCB *pcb);/*运行进程,随机阻塞进程、产生新进程,插入就绪队列,唤醒阻塞进程*/void block(PCB *pcb);/*调用destroy()将进程插入阻塞队列*/void wakeup();/*唤醒进程,插入就绪队列*/void proc_priority();/*优先权调度算法模拟*/void Run_loop(PCB
5、 *pcb);void proc_loop();/*轮转法调度算法模拟*/void update(PCB *pcb);/*更新进程信息*/void pushback_queue(PCB *queue,PCB *item);/*将item插入到队列的尾部*/void insert_queue(PCB *queue,PCB *item);/*将item插入到队列中,使得插入后,队列中按照优先级从高到低有序*/void sort_queue(PCB *&queue);/*对queue中的结点进行排序,按照优先级从大到小*/PCB *ready_queue,*block_queue,*idleproc
6、ess;/*就绪队列,阻塞队列及闲逛进程指针变量*/七、程序清单:短作业优先:#include struct sjfchar name10;float arrivetime;float servicetime;float starttime;float finishtime;float zztime;float dqzztime;sjf a100;void input(sjf *p,int N) int i;printf(intput the processs name & arrivetime & servicetime:nfor exmple: a 0 100n);for(i=0;i=N-
7、1;i+)printf(input the %dth processs information:n,i+1);scanf(%s%f%f,&pi.name,&pi.arrivetime,&pi.servicetime);void Print(sjf *p,float arrivetime,float servicetime,float starttime,float finishtime,float zztime,float dqzztime,int N)int k; printf(run order:); printf(%s,p0.name);for(k=1;k%s,pk.name); pri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统原理与Linux 操作系统 原理 Linux 课程设计 报告
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内