操作系统(一个小型操作系统的设计与实现)课程设计 联系客服

发布时间 : 星期日 文章操作系统(一个小型操作系统的设计与实现)课程设计更新完毕开始阅读2d64b10a7c21af45b307e87101f69e314332fad7

精品文档

依次调度到最后一个作业(尾结点)。 (六)运行界面 测试数据:

作业名 A B C 到达时间 0 0 0 运行时间 28 9 3 执行FCFS算法如下:

2)时间片轮转法

(一)任务

只对进程的运行模拟,将其运行时间加一,判断要求运行时间与已运行时间是否相等,若相等则表示进程结束,进程退出调度,释放资源。 (二)要求

1.实现对RR算法的模拟实现 2.显示执行完一个时间片的结果。

可编辑

精品文档

(三)原理

时间片轮转算法中,系统将所有的就程序按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。当执行的时间片用完时,调度程序停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。 (四)数据结构

temp->state='R'; //初始状态每个进程均为运行态 temp->allocation=0;

//初始时进程均不占用cpu

num+=temp->need_time; //用num来限制循环的次数 (五)实现方法

处理器调度总是选择标志单元指示的进程运行。执行:

已运行时间+1

来模拟进程的一次运行,表示进程已经运行过一个单位的时间。当一个进程被选中运行时,必须设置该进程可以运行的时间片值,以及恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行满一个时间片

进程运行一次后,应把该进程的进程控制块中的指针值送到标志单元,以指示下一个轮到运行的进程。同时,应判断该进程的要求运行时间与已运行时间,若该进程的要求运行时间1已运行时间,则表示它尚未执行结束,应待到下一轮时再运行。若该进程的要求运行时间=已运行时间,则表示它已经执行结束,应指导它的状态修改成“结束”且退出队列。此时,应把该进程的进程控制块中的指针值送到前面一个进程的指针位置。

进程名 链接指针 到达时间 估计运行时间 进程状态 可编辑

精品文档

进程控制块结构

(六)运行界面 测试数据:

作业号 A B C 执行时间片轮转算法RR如下:

执行时间/s 1 2 1

B.存储器管理(可变式分区管理) 1)首次适应法 (一)任务

通过采用首次适应算法实现内存的分配与回收,并可以查看和显示当前内存现状。 (二)要求

可编辑

精品文档

1.实现对FF算法的模拟实现

2.输入要进行分配内存的进程ID和相应所需内存大小,回收内存时输入已运行的进程ID。 (三)原理

FF算法要求空闲链已地址递增的次序连接。分配内存时,从链首开始顺序查找,直到找到第一个满足要求的空间并分配给进程,把分配后余下的空间仍然留在链表中。若从链首至链尾都不满足要求,则分配失败。该算法倾向于优先使用低地址的空间。 (四)数据结构

int const MEMO=256;//初始化常类型MEMO,用MEMO表示内存大小(常类型的变量或对象的值是不能被更新的) struct FreeMemory {

int ID;int StartAdd;int Size;

bool State;//定义state 为布尔型变量,其值只有 真 (TRUE) 和假 (FALSE)

FreeMemory* Next; };

FreeMemory* AllocTable=new FreeMemory;//建立全局管理表用于内与回收

FreeMemory* PtrforCycleFit=AllocTable;//为循环首次适应定义的指针,此指针用于指向当前查找的起始地址;

可编辑