仲恺农业工程学院实验报告纸
信息科学与技术(院、系)计算机科学与技术专业142班__组操作系统实验课学号:201420224430姓名:黄丽君实验日期教师评定
实验一、进程管理一、实验目的
通过实验使学生进一步了解进程、进程状态、进程控制等基本概念。基本能达到下列具体的目标:1、理解进程PCB的概念,以及PCB如何实现、如何组织以及管理。2、复习数据结构中如何对链的操作,包括建链、删除、插入结点等,来实现进程的管理。
二、实验内容
1、建立一个结点,即PCB块包括用户标识域、状态域(执行、等待、就绪)、li
k域。2、建立三个队列(执行队列、就绪队列、等待队列)。3、根据进程状态转换实现对三个队列的具体操作。具体的驱动可以采用时间片算法或手动调度的形式完成三个状态之间的转换4、用switch选择语句选择状态。5、按照自己的设定能完成所有的状态转换的运行(包括创建和运行结束)。
三、实验步骤
1、复习进程管理三状态模型部分内容。2、预习CBuilder或VC、Delphi、JBuilder线程编程。3、运行示例程序,进一步明确实验要求。可以采用控制台模式或窗口模式。4、上机编程、调试程序。5、完成实验报告。
第1页共9页
f四、实验代码i
cludestdlibhi
cludestdiohi
cludeco
iohdefi
egetpchtypetypemallocsizeoftype间函数自定义为getpchtypedefi
eNULL0structpcdchar
ame10charstatei
tsuperi
t
timei
trtime进程状态进程优先级进程需要运行的时间进程已经运行的时间将申请内存空
structpcbli
k进程指向另一个进程的指针readyNULLpready表示指向就绪队列中首元素的指针,初始化
为NULL,p用来存放当前刚刚输入的PCBtypedefstructpcbPCBvoidsortPCBfirstseco
di
ti
sert0
第2页共9页
建立对进程进行优先级排列函数
fifreadyNULLpsuperreadysuper优先级最大者,插入队首pli
kreadyreadypelsefirstreadyseco
dfirstli
kwhileseco
dNULLifpsuperreadysuper若插入进程比当前进程优先数大面pli
kseco
dfirstli
kpseco
dNULLi
sert1else插入进程优先数最低,则插入到队尾
第3页共9页
进程比较优先级,插入适当的位置
插入到当前进程前
插入队列记录符号
ffirstfirstli
kseco
dseco
dli
kifi
sert0firstli
kp
voidi
put建立进程控制块函数PCB输入模块i
ti
umpri
tf