题目:时间片轮转算法
一、实验目的
进程是操作系统最重要的概念之一,进程调度是处理机管理的核心内容。
本实验要求学生独立的用高级语言编写和调试一个简单的进程调度程序。算法
要求使用简单轮转法。通过本实验加深理解有关进程控制块、进程队列的概念,
并体会和了解时间片轮转调度算法的具体实施办法。
二、实验要求
设计一个有 n 个进程并发执行的进程调度程序,每一个进程用一个进程控
制块 PCB 来代表。程序能够实现模拟时间片轮转算法,在实现过程中能够对进
程的进程控制块进行初始化,同时能够计算出每个进程的周转时间,系统能显
示各进程状态和参数的变化情况。
三、实验内容
1、设计进程控制块 PCB 的结构
PCB 通常应包括如下信息:进程名、进程到达时间、轮转时间片、进程已占
用的 CPU 时间、进程到完成还需要的时间、进程的状态、周转时间等。每个进
程可有三种状态;执行状态(RUN)、就绪状态( READY,包括等待状态)和完
成状态(FINISH),并假定初始状态为就绪状态。
2、功能函数:
该算法实现过程中用到的函数块有:对进程初始化 Init()、时间片轮转调度
RoundRun()、输出各个队列信息 Output()、输出进程周转时间 Print()、将进程插
入到相应的队列尾部 Insert():将尚未完成的 PCB 插入到就绪队列中。
3、进程控制块结构
Pid--进程标识符
ATime—进程到达时间
CardTime—时间片大小
Cputime—进程已经运行的时间
Needtime—进程还需时间
State--进程的状态,初始状态为等待
CycleTime--每个进程周转时间
该程序中,进程数目和进程所需时间是手动输入的,每执行一次,在轮转
法中,采用固定时间片单位,进程每轮转一次,CPU 时间片数加 2,进程还需
要的时间片数减 2,并退出 CPU,排到就绪队列尾,等待下一次调度。在
state 字段中,"R"代表执行态,"W"代表就绪(等待)态,"F"代表完成态;
应先显示"R"态的,再显示"W"态的,再显示"F"态的。
四、实验结果