操作系统 课程设计报告 专业 计算机科学与技术 学生姓名 班级 学号 指导教师 完成日期 博 雅 学院 1 题目:进程调度的模拟实现的模拟实现 一、设计目的 本课程设计是学习完“操作系统原理”课程后进行的一次全面的综合训练,通过课程设计,更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。 在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个。也就是说能运行的进程数大于处理机个数。为了使系统中的进程能有条不紊地工作,必须选用某种调度策略,选择一进程占用处理机。要求学生设计一个模拟处理机调度算法,以巩固和加深处理机调度的概念。 二、设计内容 1)概述 选择一个调度算法,实现处理机调度。 设计要求: 1)进程调度算法包括:时间片轮转法,短作业优先算法,动态优先级算法。 2)可选择进程数量 3)本程序包括三种算法,用 C 或C++语言实现,执行时在主界面选择算法(可用函数实现),进入子页面后输入进程数,(运行时间,优先数由随机函数产生),执行,显示结果。 2)设计原理 1.进程控制块的内容如下: 进程名 进程状态 要求运行时间 优先数 链接指针 其 中优先数是赋 给 进程的优先级 调度时总 是选取 优先数最 大的进程优先运行 2.每 个进程的优先数,运行时间,由程序任意 指 定 。 3.为了调度方便 ,把 进程按 给 定 优先级(动态优先级算法中)从 小 到 大排 成一个队 列 。按 给 定 运行时间(短作业优先)从 小 到 大排 成 一个队 列 用一个变 量作为队 首 指 针 ,指 向 队 列 的第 一个进程。 4.处理机调度总 是选队 首 进程运行。由于本实验 是模拟处理机调度,所 以被选中的进程并 不实际 的启 动运行,而 是执行: 2 优先数-1(动态优先级算法中) 要求运行时间-1 来模拟进程的一次运行。 5.进程运行一次后,若要求运行时间不等于 0,则再将它加入队列(动态优先级算法中:按优先数大小插入。),且改变队首指针:若要求运行时间=0,则把它的状态改为完成(C)状态,且退出队列。 6.若就绪队列不空,则重复上述的4 和 5,直接所有的进程成为完成状态。 7.在所设计的程序中应有显示或打印语句,以显示或打印每次被选中的进程的进程名以及运行一次后进程队列的变化。 3)详细设计及编码 1. 流程图如下 N 开始 初始化 PCB,输入进...