操作系统实验指导书--计算机专业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LIAOCHENG UNIVERSITY
计算机操作系统实验指导书
聊城大学计算机学院
2011年3月
目录
《计算机操作系统》课程实验教学大纲 (1)
实验一单处理器系统的进程调度 (3)
基本信息 (3)
实验目的 (3)
实验内容 (3)
实验原理及设计 (3)
5
5
8
8
8
8
8
8
8
10
12
17
18
18
18
18实验内容 (18)
实验原理及设计 (18)
实验条件 (21)
实验过程 (21)
实验要求 (22)
思考题 (23)
《计算机操作系统》课程实验教学大纲
课程名称:计算机操作系统
英文名称:Computer Operating Systems
设置形式:非独立设课课程模块:专业核心课实验课性质:专业实验课程编号:509311
课程负责人:姜华大纲主撰人:姜华
大纲审核人:左风朝
一、学时、学分
课程总学时:78实验学时:16课程学分:4二、适用专业及年级
六、考核方式及成绩评定
认真学习教学过程中讲授的与实验相关的内容,提前做好实验预习。按实验指导书要求事先编好程序;准备好需要输入的中间数据;估计可能出现的问题;预计可能得到的运行结果。做到在每个实验前明确实验目的、掌握实验的基本内容及操作方法;在实验中正确使用实验设备,认真观察、分析实验结果;实验后要根据要求做好总结,上交实验报告。
根据学生实验出勤情况、实验态度、实验报告成绩等评定实验成绩。实验报告(含实验理论)占实验成绩的60%—40%,实验技能(含实验态度)占实验成绩的40%—60%。各次实验成绩的平均值为最终实验成绩,占该课程考核总成绩的20%—30%。
七、实验教科书、参考书
1.实验教科书
自编实验指导书。
2.实验参考书
郁红英、李春强,计算机操作系统实验指导,清华大学出版社,2008.9
实验一单处理器系统的进程调度
基本信息
实验课程:计算机操作系统设课形式:非独立
课程学分:4 实验项目:进程调度
项目类型:设计型项目学时:4
实验目的
通过模拟进程控制方法及单处理机系统的进程调度,了解进程的结构,进程的创建与撤消,进程的组织及进程的状态及其转换,掌握进程调度策略。
实验内容
本实验为单机模拟进程调度算法,在程序设计时不需真正地建立线程或者进程。实验模拟创建若干进程(人为输入或随机数产生),选择一种或几种单处理机的进程调度算法,如FCFS(先来先服务),SPF(短进程优先),RR(时间片轮转法),优先级算法等,模拟进行进程调度。每进行一次调度,都打印一次运行进程、就绪队列、以及各个进程的PCB,并能在进程完成后及时撤消该进程。
实验原理及设计
设计一个按优先数调度算法实现处理器调度的算法流程描述。
(1) 假定系统有五个进程,每一个进程用一个进程控制块PCB来代表,进程控制块的格式为:
进程名——作为进程的标识,假设五个进程的进程名分别为P1,P2,P3,P4,P5。
指针——按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为“0”。
要求运行时间——假设进程需要运行的单位时间数。
优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。
状态——可假设有两种状态,“就绪”状态和“结束”状态。五个进程的初始状态都为“就绪”,用“R”表示,当一个进程运行结束后,它的状态为“结束”,用“E”表示。
(2) 在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数”和“要求运行时间”。
(3) 为了调度方便,把五个进程按给定的优先数从大到小连成队列。用一单元指出队首进程,用指针指出队列的连接情况。例:
队首标志
K2K3K4K5
(4) 处理器调度总是选队首进程运行。采用动态改变优先数的办法,进程每运行一次优先数就减“1”。由于本实验是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行:
优先数-1
要求运行时间-1
来模拟进程的一次运行。
提醒注意的是:在实际的系统中,当一个进程被选中运行时,必须恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行结束。在这里省去了这些工作。
(5) 进程运行一次后,若要求运行时间 0,则再将它加入队列(按优先数大小插入,且置队首标志);若要求运行时间=0,则把它的状态修改成“结束”(E),且退出队列。
(6) 若“就绪”状态的进程队列不为空,则重复上面(4)和(5)的步骤,直到所有进程都成为“结束”状态。
(7) 在所设计的程序中应有显示或打印语句,能显示或打印每次被选中进程的进程名以及运行一次后进程队列的变化。
(8) 为五个进程任意确定一组“优先数”和“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。
图1 优先权进程调度流程图
实验条件
1、装有Windows操作系统的微型计算机;
2、Borland C++软件。
实验过程
1、根据实验预习阶段的实验设计方案,编写应用程序。参考代码如下。
#include "stdio.h"
#include
#include
#define getpch(type) (type*)malloc(sizeof(type))
#define NULL 0
struct pcb { /* 定义进程控制块PCB */
char name[10];
char state;
int super;
int ntime;
int rtime;
struct pcb* link;
}*ready=NULL,*p;
typedef struct pcb PCB;
void sort() /* 建立对进程进行优先级排列函数*/
{