广工操作系统实验.doc

广工操作系统实验.doc

ID:55905342

大小:1.10 MB

页数:34页

时间:2020-06-13

广工操作系统实验.doc_第1页
广工操作系统实验.doc_第2页
广工操作系统实验.doc_第3页
广工操作系统实验.doc_第4页
广工操作系统实验.doc_第5页
资源描述:

《广工操作系统实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、操作系统实验报告学生学院计算机学院专业班级12级网络1班学号3112006345学生沙宇丰指导教师敏2015年01月07日目录1实验一进程调度………………………………………………………………2实验二作业调度………………………………………………………………3实验三存储管理………………………………………………………………实验一进程调度(实现了最高优先级优先,时间片轮转,多级反馈队列三种算法)1、实验目的编写并调试一个模拟的进程调度程序,采用最高优先数优先算法,时间片轮转算法,多级反馈队列算法对进程进行调度。以加深

2、对进程的概念及进程调度算法的理解.2:实验原理每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、到达时间、需要运行时间、已运行时间、进程状态等等。每个进程的状态可以是就绪W(Wait)、运行R(Run)两种状态之一。就绪进程获得CPU后都只能运行一个时间片。用运行时间加1来表示。如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程需要继续运行,此时应分配时间片给就绪队列中排在该进

3、程之后的进程,并将它插入就绪队列队尾。3:实验容,方法首先对于:最高优先数算法:最高优先数算法的基本思想是把cpu分配给就绪队列中优先数最高的进程。而我采用优先数动态变化的方式,进程在没获得一次cpu时间后其优先数就减一,然后对各个进程的优先数进行重新排序。继续把cpu分配给优先数最高的进程。进程的剩余时间为0时就退出队列。首先用create()函数创建链表并对其初始化,然后对链表按照优先级大小进行排序,然后把排序后的链表放进processing()函数中进行处理,让其占有一个时间片执行,若进程任然未完成,则

4、把该进程放进insert()函数中插入就绪队列中。用disp()函数进行进程的显示。4:流程图:5:重要函数和数据结构的说明:StructPCB对进程结构体进行定义Create()函数进行链表的初始化Processing()函数对整个链表的循环进行处理Sort()函数对优先级进行动态排序:Disp()函数对结果进行显示structPCB*sort(structPCB*head)/*递增排序函数:入口参数:链表的头指针,此为链表中的排序函数*/{structPCB*p,*q;inttemp;for(p=head

5、;p!=NULL;p=p->next){for(q=p->next;q!=NULL;q=q->next){if(p->prioprio)//通过对链表里面的数据进行互换达到重新排序{temp=q->prio;q->prio=p->prio;p->prio=temp;temp=q->name;q->name=p->name;p->name=temp;temp=q->run;q->run=p->run;p->run=temp;temp=q->rest;q->rest=p->rest;p->rest=tem

6、p;}}}returnhead;}5:实验效果::6:实验总结:对于最高优先数优先的算法,在设计好进程控制块链表后,就要对优先级进行排序,优先数动态变化和链表的循环是比较花时间处理的,如上图所显示,优先级在进程每执行一个时间片后减一,实现动态变化,开始在这两部分总是出问题,经过耐心的处理还是把问题很好的解决了。对于第二个:时间片轮转算法,3:实验方法,步骤:基本思想:所有就绪进程按fcfs排成一个队列,总是把处理机分配给队首的进程,各进程占用的cpu时间片相同,如果运行进城用完时间片后还未完成,就把它送进就绪

7、队列的末尾,把处理机重新分配给队首的集成。直至所有的进程运行完毕。4:流程图:4:重要的函数和数据结构:StructPCB对进程结构体进行定义Create()函数进行链表的初始化Insert()函数把未完成的进程插入就绪队列的末尾Processing()函数对链表循环进行处理Disp()函数对结果进行显示其中insert()函数对进程插入就绪队列末尾是比较重要的voidinsert(structPCB*p){structPCB*p1,*p2;p2=p1=p;p2=(structPCB*)malloc(size

8、of(structPCB));while(p1->next)p1=p1->next;p1->next=p2;p2->state="就绪中";p2->name=p->name;p2->run=p->rest;p2->queue=(p->queue)+1;p2->rest=p->rest;p2->fragement=2;p2->next=NULL;}:5:实验效果::6:实验总结:如上图所示,进程在一个

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

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

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