实验一 进程管理
一、实验目的
⒈加深对进程概念及进程管理各部分内容的理解;
⒉熟悉进程管理中主要数据结构的设计及进程调度算法;
⒊熟悉进程控制机构、同步机构、通讯机构的实施;
二、实验要求
⒈设计一个允许 n 个进程并发运行的进程管理模拟系统。
⒉该系统包括有简单的进程控制、同步及通讯机构,其进程调度算法可以任意选择。
⒊每个进程用一个 PCB 表示,其内容可根据具体情况设置。
⒋各进程之间应有一定的同步关系。
⒌系统在运行过程之中应能显示或打印各进程的状态及有关参数的变化情况。
三、实验题目和内容
编写一个支持多个进程并发运行的简单进程管理模拟系统。
1.问题描述
本系统的同步机构采用的信号量上的 p、v 操作的机制;控制机构包括阻塞和唤醒操
作;时间片中断处理程序处理模拟的时间片中断;进程调度程序负责为各进程分配处理
机。系统设计了 3 个并发进程。它们之间有如下同步关系:3 个进程需要互斥使用临界资
源 s2,进程 1 和进程 2 又需要互斥使用临界资源 s1。本系统在运行过程中随机打印各进程
的状态变换过程,系统的调度过程及公共变量的变化情况。
2.算法
⑴系统为进程设置了五种运行状态:e----执行态;r----高就绪态;t----低就绪态(执行程
序因时间片到限而转入);w----等待态;c----完成态。各进程的初始态均设置为 r。
⑵系统分时执行各进程,并规定三个进程的执行概率均为 33%。通过产生随机数 X 来模
拟时间片。当进程 PROCESS1 访问随机函数 X 时,若 X>33%;当进程 PROCESS2 访问
X 时若 X<0.33 或 X>0.66;当进程 PROCESS3 访问 X 时若 X<0.66,则分别认为各进程的
时间片到限,产生“时间片中断”而转入低就绪态 t.。
⑶进程调度算法采用剥夺式最高优先数法。各进程的优先数通过键盘输入予以静态设置。
调度程序每次总是选择优先数最小(优先权最高)的就绪进程投入执行。先从 r 状态进程
中选择,再从 t 状态进程中选择。当现行进程唤醒某个等待进程,且被唤醒进程的优先数
小于先行进程时,则剥夺先行进程的执行权。
⑷各进程在使用临界资源 s1 和 s2 时,通过调用信号量 sem1 和 sem2 的信号量 p、v 操作
来实现同步。阻塞和唤醒操作负责完成从进程的执行态到等待态以及从等待态到就绪的
转换。
⑸系统启动后,在完成必要的系统初始化后便执行进程调度程序。当执行进程因“时间
片中断”,或被排斥使用临界资源,或唤醒某个等待进程时,立即进行进程调度。当三个
进程都处于完成状态后,系统退出运行。
3.数据结构
每个进程有一个进程控制快 PCB,内容包括:
id
status
priority
nextwr 等待连指针,指示在同一信号量上等待的下一进程的标识数。
Semaphore 信号量对应于临界资源 s1 和 s2 分别有 sem1 和 sem2 均为互斥信号量,内容
包括:
进程标识数,id=0,1,2;
进程状态,可为 e,r,t,w,c;
进程优先数;
信号量值,初值为
等待链首指针,指示该信号量上第一等待进程的标识数。
value
firstwr
现场保留区,用数组表示。即每个进程都有一个大小为多个的单元的保留区,用来保存
被“中断”时的现场信息,如通用寄存器的内容和断点地址等。
此外,系统中还用到下列主要全程变量:
exe 执行进程指针,其值为进程标识数;
I
Add 用来模拟程序计数器;
s1,s2 两个公共变量,用来共享临界资源。
用来模拟一个通用寄存器;
四、实验报告应包括如下内容
⒈按照实验操作顺序写出上机操作步骤(按实验报告书格式顺序填写相应内容);
⒉写出程序的设计思路;
⒊给出程序清单及程序流程图(加必要的注释);
⒋给出实验总结。
具体格式见附件
五、补充说明
⒈用一种你所熟悉的语言改写以上程序,在相应的机器上调试运行,其功能可适当增加修
改,但至少包含进程调度过程或进程同步过程之一(二选一),给出按某种调度算法实现
调度时进程的执行序列(如果重点实现进程同步部分,则可使用 3 个进程来模拟,调度
可简单的按照先来先服务完成;如果重点实现进程调度而不考虑同步,则至少要有 5 个
进程,按照三种调度算法完成调度过程)。
⒉上交实验报告共包括以下内容:
(1)实验报告封面(电子档发给大家,大家打印电子档后,手工填写封面内容)
(2)实验报告书(电子档发给大家,请打印电子档后,根据自己完成实验的具体情况,手
工填写实验报告书中的内容。报告书中的实验编号一栏,根据布置实验的顺序,从 01 号向后
顺序填写。一定要写清楚自己完成实验的具体内容,以便老师相应的查看)
(3)程序清单,请将程序清单打印出来,附在报告书最后。(杜绝抄袭,若发现 5 人及以
上人数程序完全相同,相关所有人员此次实验成绩记为 0 分)
( 4 ) 以 上 三 部 分 内 容 , 按 顺 序 装 订 上 交 。 另 外 , 将 原 程 序 作 为 附 件 , 发 到 邮 箱
64927171@qq.com 中,信件命名方式:班级+学号+姓名+实验号。缺少电子档源程序,实验
成绩记为 0 分。