1、 操作系统原理操作系统原理 课程设计课程设计报告报告 二一一年十二月十二日 目录目录 一、一、 操作系统原理课程设计的目的与要求操作系统原理课程设计的目的与要求 . 3 1、 目的目的 3 2、 要求要求 3 二、二、 简述课程设计内容、主要功能和实现环境简述课程设计内容、主要功能和实现环境 . 3 1. 课程设计内容课程设计内容 3 三、三、 任务的分析、设计、实现和讨论任务的分析、设计、实现和讨论 . 3 1、 任务的分析任务的分析 3 2、 任务的设计与实现任务的设计与实现 . 4 五、五、 附录附录 12 进程调度优先数法与简单轮转法 一、一、 操作系统原理课程设计的目的与要求操作系统
2、原理课程设计的目的与要求 1、 目的目的 进程是操作系统最重要的概念之一,进程调度又是操作系统核心的主要内容。本实习要 求学生独立地用高级语言编写和调试一个简单的进程调度程序。调度算法可任意选择或自行 设计。任务一采用简单轮转法,任务二采用优先数法等。本课题可以加深对进程调度和各种 调度算法的理解。 2、 要求要求 (1) 设计一个有 n 个进程并发的进程调度程序。 每个进程由一个进程控制块 (PCB) 表示。 进程控制块一般应该包含下述信息:进程名、进程优先数、进程需要运行的时间、占用 CPU 的时间以及进程的状态等,且可按调度算法的不同而增删。 (2) 调度程序应包含 2 种不同的调度算法
3、,运行时可任意选一种,以利于各种算法的分 析比较。 (3) 算法应能显示或打印各个进程的 PID、状态(运行状态 R、等待状态 W 等)和参数 (已运行时间等)的变化情况,便于观察诸进程的调度过程 进程是操作系统最重要的概念之一,进程调度又是操作系统核心的主要内容。本实习要 求学生独立地用高级语言编写和调试一个简单的进程调度程序。调度算法可任意选择或自行 设计。任务一采用简单轮转法,任务二采用优先数法等。本课题可以加深对进程调度和各种 调度算法的理解。 二、二、 简述课程设计内容、主要功能和实现环境简述课程设计内容、主要功能和实现环境 1. 课程设计内容课程设计内容 进程调度是处理机管理的核心
4、内容。本实验要求用 C 语言编写和调试一个简单的进程调 度程序。选用优先数法或简单轮转法对五个进程进行调度。每个进程处于运行 R(run)、就绪 W(wait)和完成 F(finish)三种状态之一,并假设起始状态都是就绪状态 W。为了便于处理,程 序进程的运行时间以时间片为单位计算。各进程的优先数或轮转时间片数、以及进程需要运 行的时间片数,均由伪随机数发生器产生。通过本实验可以加深理解有关进程控制块、进程 队列的概念,并体会和了解优先数和时间片轮转调度算法的具体实施办法。 2. 主要功能主要功能 本程序可选用优先数法或简单轮转法对五个进程进行调度。每个进程处于运行 R(run)、 就绪 W
5、(wait)和完成 F(finish)三种状态之一, 并假设起始状态都是就绪状态 W。 为了便于处理, 程序进程的运行时间以时间片为单位计算。 3. 实现环境实现环境 本次课程设计结合算法的特点, 采用 Windows 操作系统平台。 开发工具为 Microsoft Visual C+6.0。 三、三、 任务的分析、设计、实现和讨论任务的分析、设计、实现和讨论 1、 任务的分析任务的分析 本程序可选用优先数法或简单轮转法对五个进程进行调度。每个进程处于运行 R(run)、 就绪 W(wait)和完成 F(finish)三种状态之一, 并假设起始状态都是就绪状态 W。 为了便于处理, 程序进程的
6、运行时间以时间片为单位计算。各进程的优先数或轮转时间片数、以及进程需要 运行的时间片数,均由伪随机数发生器产生。 下面介绍优先数法和简单轮转法两种进程调度算法: (1) 优先数法。进程就绪链按优先数大小从高到低排列,链首进程首先投入运行。每过 一个时间片, 运行进程所需运行的时间片数减 1, 说明它已运行了一个时间片, 优先数也减 3, 理由是该进程如果在一个时间片中完成不了,优先级应该降低一级。接着比较现行进程和就 绪链链首进程的优先数,如果仍是现行进程高或者相同,就让现行进程继续进行,否则,调 度就绪链链首进程投入运行。原运行进程再按其优先数大小插入就绪链,且改变它们对应的 进程状态,直至所有进程都运行完各自的时间片数。 (2) 简单轮转法。进程就绪链按各进程进入的先后次序排列,进程每次占用处理机的轮 转时间按其重要程度登入进程控制块中的轮转时间片数记录项(相当于优先数法的优先数记 录项位置) 。每过一个时间片,运行进程占用处理机的时间片数加 1,然后比较占用处理机的 时间片数是否与该进程的轮转时间片数相等,若相等说明已到达轮转时间