操 作系统课程设计报告 目 录 一 需求分析 ............................................................................................... 2 二 概要设计 ............................................................................................... 2 三 详细设计(含主要代码) .................................................................. 3 四 调试分析、测试结果 .......................................................................... 8 五 用户使用说明....................................................... 错误!未定义书签。 六 后记 ....................................................................... 错误!未定义书签。 七 参考资料 ............................................................... 错误!未定义书签。 一 需求分析 在多道处理程序运行环境下,进程数目一般多于处理机数目,使得进程要通过竞争来使用处理机。这就要求系统能按照某种算法,动态地把处理机分配给就绪队列中的一个进程,使之运行,分配处理机的任务是由金城调度程序完成的。一个进程被创建后,系统为了便于对进程进行管理,将系统中的所有进程按照其状态,将其组成不同的进程队列。于是系统中有运行进程队列、就绪队列和各种事件的进程等待队列。进程调度的功能就是从就绪队列中挑选一个进程到处理机上运行。进程调度的算法有多种,常用的有优先级调度算法、先来先服务算法、时间片轮转算法。 二 概要设计 < 一> 最高优先级优先调度算法 动态优先数是指在进程创建时先确定一个初始优先数, 以后在进程运行中随着进程特性的改变不断修改优先数,这样,由于开始优先数很低而得不到 CPU 的进程,就能因为等待时间的增长而优先数变为最高而得到 CPU 运行。 例如:在进程获得一次CPU 后就将其优先数减少3。或者,进程等待的时间超过某一时限时增加其优先数的值,等等。 <二>简单轮转法调度算法 所有就绪进程按 FCFS 排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU 的时间片相同。即将CPU 的处理时间划分成一个个相同的时间片,就绪队列的诸进程轮流运行一个时间片。当 一个时间片结 束 时,如果 运行进程用完它 的时间片后还 未 完成,就强 迫 运行机制 进程让 出 CPU,就把它 送 回 到就绪队列的末 尾 ,等待下一次调度。同时...