计算机操作系统实验指导书windows.docx
- 文档编号:11448120
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:117
- 大小:65.12KB
计算机操作系统实验指导书windows.docx
《计算机操作系统实验指导书windows.docx》由会员分享,可在线阅读,更多相关《计算机操作系统实验指导书windows.docx(117页珍藏版)》请在冰豆网上搜索。
计算机操作系统实验指导书windows
《操作系统原理》实验指导书
计算机科学与技术系
2010年9月
实验三存储管理31
《操作系统原理》实验教学大纲(修订)
课程编号:
0433314
课程名称:
操作系统原理
实验学时:
14
一、本实验课的性质、任务与目的
操作系统作为计算机专业的一门专业基础课,是计算机专业的核心课程之一,学好与否直接关系到学生是否能更好地学习后续课程。
通过本实验课程的学习,使学生理解与掌握操作系统设计所遵循的基本原理,基本方法,建立多道程序设计环境下的并行程序设计的思维方式。
此外,操作系统用到的各种算法也是学生加强算法锻炼的好机会,对日后从事系统开发方面的工作有直接的借鉴作用。
本实验课程在操作系统原理课程教学中占有重要地位,目的是让学生及时掌握和巩固所学的基本原理和基础理论,加深理解。
提高学生自适应能力,为将来使用和设计各类新的操作系统打下良好的基础。
二、本实验课所依据的课程基本理论
计算机操作系统,操作系统中所介绍的重要算法。
三、实验类型与要求
序号
实验内容
内容提要
实验要求
实验
时数
实验
类型
每组
人数
所在实验室名称
备注
一
进程控制描述与控制
操作系统界面、进程管理
必修
2
验证
2
系机房
二
并发与调度
进程并发、进程状态转换
必修
2
验证
2
系机房
三
存储管理
内存空间分配及虚拟存储器
必修
2
验证
2
系机房
四
设备管理
设备分配与回收
必修
2
验证
2
系机房
五
文件管理与系统安全
文件系统目录结构,文件操作及操作系统安全
任选
2
验证
2
系机房
六
操作系统功能模拟设计实验
操作系统功能模拟设计并实现
必修
4
设计
3-4
系机房
四、每组人数与实验学时数
序号
实验内容
实验时数
每组人数
一
进程控制描述与控制
2
2
二
并发与调度
2
2
三
存储管理
2
2
四
设备管理
2
2
五
文件管理与系统安全
2
2
六
操作系统功能模拟设计实验
4
3-4
五、考核方式与评分办法
考核方式:
在规定时间内,按要求设计相应的模拟系统并上机调试运行,写出详细的实验报告,在机上向教师演示自己设计的模拟系统。
评分办法:
视程序的质量、完成速度及实验报告分别给予优、良、中、及格、不及格等成绩。
六、本实验课配套教材或实验指导书
[1]周苏,金海溶等编著,操作系统原理实验,北京:
科学出版社,2003
七、实验报告要求
实验题目、问题描述、算法说明、算法框图、数据结构及符号说明、程序清单及运行结果。
八、其它
教研室:
计算机网络执笔人:
钟伯成系主任审核签名:
实验考核方式与基本要求
1)按要求设计相应的模拟系统并上机调试运行
2)写出详细的实验报告,实验报告要求如下:
(1)实验题目。
(2)程序中使用的数据结构及符号说明。
(3)流程图。
(4)打印一份源程序并附上注释。
(5)打印程序运行时的初值和运行结果。
基本要求:
3或4人为一小组,采取课内上机和业余上机相结合的方式进行,在规定时间内每个小组以论文形式上交实验(设计)结果并上机演示说明。
实验考核题目
㈠进程管理
㈡模拟PV操作同步机构,且用PV操作解决生产者——消费者问题。
㈢银行家算法
㈣模拟分页式存储管理中硬件的地址转换和产生缺页中断。
㈤用先进先出(FIFO)页面调度算法处理缺页中断。
㈥用最近最少用(LRU)页面调度算法处理缺页中断。
㈦设计一个按优先数调度算法实现处理器调度的进程。
㈧设计一个按时间片轮转法实现处理器调度的程序。
㈨模拟实现一个简单的固定(或可变)分区存储管理系统
㈩模拟实现单通路I/O系统中的设备分配程序。
{十一}模拟实现用位示图法管理文件存储空间的分配与回收。
实验提示
㈠进程管理
1.实验内容
至少要有:
创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。
2.实验提示
PCB结构通常包括以下信息:
进程名,进程优先数,轮转时间片,进程所占用的CPU时间,进程的状态,当前队列指针等。
可根据实验的不同,PCB结构的内容可以作适当的增删。
例:
实验运行结果
********************************************
*进程演示系统*
********************************************
1.创建新的进程2.查看运行进程
3.换出某个进程4.杀死运行进程
5.进程之间通信6.退出系统
********************************************
请选择(1~6)
然后根据你选择的不同,出现不同的结果。
㈡第一题:
模拟PV操作同步机构,且用PV操作解决生产者——消费者问题。
㈢第二题:
银行家算法
实验提示
[第一题]:
在系统初始化时应把信号量semaphore定义为某个类型,为简单起见,在模拟实验中可把上述的semaphore直接改成integer。
生产者——消费者问题。
假定有一个生产者和消费者,生产者每次生产一件产品,并把生产的产品存入共享缓冲器以供消费者取走使用。
消费者每次从缓冲器内取出一件产品去消费。
禁止生产者将产品放入已满的缓冲器内,禁止消费者从空缓冲器内取产品。
假定缓冲器内可同时存放10件产品。
进程控制块PCB。
在模拟实验中,假设进程控制块的结构如下图。
其中进程的状态有:
运行态、就绪态、等待态和完成态。
当进程处于等待态时,在进程控制块PCB中要说明进程等待原因(在模拟实验中进程等待原因为等待信号量s1或s2);当进程处于等待态或就绪态时,PCB中保留了断点信息,一旦进程再度占有处理器则就从断点位置继续运行;当进程处于完成状态,表示进程执行结束。
进程名
状态
等待原因
断点
处理器的模拟。
计算机硬件提供了一组机器指令,处理器的主要职责是解释执行机器指令。
为了模拟生产者和消费者进程的并发执行,我们必须模拟一组指令和处理器职能。
模拟的指令
功能
P(s)
执行P操作原语
V(s)
执行v操作原语
put
B[IN]:
=product;IN:
=(IN+1)mod10
GET
X:
=B[out];out:
=(out+1)mod10
produce
输入一个字符放入C中
consume
打印或显示x中的字符
GOTOL
PC:
L
NOP
空操作
模拟的处理器指令
模拟的一组指令见上图,其中每条指令的功能由一个过程来实现。
用变量PC来模拟“指令计数器”,假设模拟的指令长度为1,每执行一条模拟指令后,PC加1,指出下一条指令地址。
使用模拟的指令,可把生产者和消费者进程的程序表示为下图的形式。
序号
生产者程序
消费者程序
0
produce
P(s2)
1
P(s1)
GET
2
PUT
V(s1)
3
V(s2)
consume
4
goto0
goto0
生产者和消费者程序
定义两个一维数组PA[0..4]和SA[0..4],每一个PA[i]存放生产者程序中的一条模拟指令执行的入口地址;每个SA[i]存放消费者程序中的一条模拟指令执行的入口地址。
于是模拟处理器执行一条指令的过程为:
取出PC之值,按PA[PC]或SA[PC]得模拟指令执行的入口地址,将PC之值加1,转向由入口地址确定的相应的过程执行。
[第二题]:
编写银行家算法,要求对于书127页给出的资源分配表,可以对输入各种请求进行安全性判断,最后给出安全序列或者不能分配的原因。
㈣第一题:
模拟分页式存储管理中硬件的地址转换和产生缺页中断。
㈤第二题:
用先进先出(FIFO)页面调度算法处理缺页中断。
㈥第三题:
用最近最少用(LRU)页面调度算法处理缺页中断。
实验提示
第一题[提示]
(1)分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。
为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表的格式为:
页号
标志
主存块号
在磁盘上的位置
其中,标志----用来表示对应页是否已经装入主存,标志位=1,则表示该页已经在主存,标志位=0,则表示该页尚未装入主存。
主存块号----用来表示已经装入主存的页所占的块号。
在磁盘上的位置----用来指出作业副本的每一页被存放在磁盘上的位置。
(2)作业执行时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式:
绝对地址=块号×块长+单元号
计算出欲访问的主存单元地址。
如果块长为2的幂次,则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而成绝对地址。
若访问的页对应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,由操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。
(3)设计一个“地址转换”程序来模拟硬件的地址转换工作。
当访问的页在主存时,则形成绝对地址,但不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行。
当访问的页不在主存时,则输出“*该页页号”,表示产生了一次缺页中断。
(4)假定主存的每块长度为128个字节;现有一个共七页的作业,其中第0页至第3页已经装入主存,其余三页尚未装入主存;该作业的页表为:
0
1
5
011
1
1
8
012
2
1
9
013
3
1
1
021
4
0
022
5
0
023
6
0
121
如果作业依次执行的指令序列为:
操作
页号
单元号
操作
页号
单元号
+
0
70
移位
4
053
+
1
50
+
5
023
×
2
15
存
1
037
存
3
21
取
2
078
取
0
56
+
4
001
-
6
40
存
6
084
(5)运行设计的地址转换程序,显示或打印运行结果。
因仅模拟地址转换,并不模拟指令的执行,故可不考虑上述指令序列中的操作。
第二题[提示]:
(1)在分页式虚拟存储系统中,当硬件发出“缺页中断”后,引出操作系统来处理这个中断事件。
如果主存中已经没有空闲块,则可用FIFO页面调度算法把该作业中最先进入主存的一页调出,存放到磁盘上,然后再把当前要访问的页装入该块。
调出和装入后都要修改页表中对应页的标志。
(2)FIFO页面调度算法总是淘汰该作业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面。
假定作业被选中时,把开始的m个页面装入主存,则数组的元素可定为m个。
例如:
P[0],P[1],….,P[m-1]
其中每一个P[i](i=0,1,….,m-1)表示一个在主存中的页面号。
它们的初值为:
P[0]:
=0,P[1]:
=1,….,P[m-1]:
=m-1
用一指针k指示当要装入新页时,应淘汰的页在数组中的位置,k的初值为“0”。
当产生缺页中断后,操作系统选择P[k]所指出的页面调出,然后执行:
P[k]:
=要装入页的页号
k:
=(k+1)modm
再由装入程序把要访问的一页信息装入到主存中。
重新启动刚才那条指令执行。
(3)编制一个FIFO页面调度程序,为了提高系统效率,如果应淘汰的页在执行中没有修改过,则可不必把该页调出(因在磁盘上已有副本)而直接装入一个新页将其覆盖。
因此在页表中增加是否修改过的标志,为“1”表示修改过,为“0”表示未修改过,格式为:
页号标志主存块号修改标志在磁盘上的位置
由于是模拟调度算法,所以,不实际启动输出一页和装入一页的程序,而用输出调出的页号和装入的页号来代替一次调出和装入的过程。
把第一题中程序稍作修改,与本题结合起来,FIFO页面调度模拟算法如图2-2。
(4)磁盘上,在磁盘上的存放地址以及已装入主存的页和作业依次执行的指令序列都同第一题中(4)所示。
于是增加了“修改标志”后的初始页表为:
页号标志主存块号修改标志在磁盘上的位置
0
1
50
011
1
1
80
012
2
1
90
013
3
1
10
021
4
0
0
022
5
0
0
023
6
0
0
121
按依次执行的指令序列,运行你所设计的程序,显示或打印每次调出和装入的页号,以及执行了最后一条指令后的数组P的值。
(5)为了检查程序的正确性,可再任意确定一组指令序列,运行设计的程序,核对执行的结果。
第三题:
[提示]
(1)在分页式虚拟存储系统中,当硬件发出“缺页中断”后,引出操作系统来处理这个中断事件。
如果主存中已经没有空闲块,则可用LRU页面调度算法把该作业中最先进入主存的一页调出,存放到磁盘上,然后再把当前要访问的页装入该块。
调出和装入后都要修改页表中对应页的标志。
(2)LRU页面调度算法总是淘汰该作业中距现在最久没有访问过的那一页,因此可以用一个数组来表示该作业已在主存的页面。
数组中的第一个元素总是指出当前刚访问的页号,因此最久没被访问的页总是由最后一个元素指出。
如果主存中只有四块空闲块且执行第一题提示(4)假设的指令序列,采用LRU页面调度算法,那么在主存中的页面变化情况如下:
3
0
6
4
5
1
2
4
6
2
3
0
6
4
5
1
3
4
1
2
3
0
6
4
5
1
2
0
1
2
3
0
6
4
5
1
编制一个LRU页面调度程序,为了提高系统效率,如果应淘汰的页在执行中没有修改过,则可不必把该页调出。
参看第二题中提示(3)。
模拟调度算法不实际启动输出一页和装入一页的程序,而用输出调出的页号和装入的页号来代替。
(3)按第一题中提示(4)的要求,建立一张初始页表,表中为每一页增加“修改标志”位(参考第二题中提示(4))。
然后按依次执行的指令序列,运行你所设计的程序,显示或打印每次调出和装入的页号,以及执行了最后一条指令后的数组中的值。
(4)为了检查程序的正确性,可再任意确定一组指令序列,运行设计的程序,核对执行的结果。
㈦第一题:
设计一个按优先数调度算法实现处理器调度的进程。
㈧第二题:
设计一个按时间片轮转法实现处理器调度的程序。
实验提示
第一题[提示]:
(1)假定系统有五个进程,每一个进程用一个进程控制块PCB来代表。
进程控制块的格式为:
进程名
指针
要求运行时间
优先数
状态
其中,进程名----作为进程的标识,假设五个进程的进程名分别是P1,P2,P3,P4,P5。
指针----按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块
首地址,最后一个进程中的指针为“0”。
要求运行时间----假设进程需要运行的单位时间数。
优先数----赋予进程的优先数,调度时总是选取优先数大的进程先执行。
状态----可假设有两种状态,“就绪”状态和“结束“状态,五个进程的初始状态都为“就绪”状态,用“R”表示,当一个进程运行结束后,它的状态变为“结束”,
用“E”表示。
(2)在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数”和“要求运行时间”。
为了调度方便,把五个进程按给定的优先数从大到小连成队列,用一单元指出队首进程,用指针指出队列的连接情况。
(3)处理器调度总是选队首进程运行。
采用动态改变优先数的办法,进程每运行一次优先数就减“1”。
由于本实验是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行:
优先数-1
要求运行时间-1
来模拟进程的一次运行。
提醒注意的是:
在实际的系统中,当一个进程被选中运行时,必须恢复进程的现场,它占有处理器运行,直到出现等待事件或运行结束。
在这里省去了这些工作。
(4)进程运行一次后,若要求运行时间≠0,则再将它加入队列(按优先数大小插入,且置队首标志);若要求运行时间=0,则把它的状态修改为“结束”,且退出队列。
(5)若“就绪”状态的进程队列不为空,则重复上面(4)和(5)的步骤,直到所有进程都成为“结束”状态。
(6)在所设计的程序中应有显示或打印语句,能显示或打印每次被选中进程的进程名以及运行一次后进称对列的变化。
为五个进程任意确定一组“优先数”和“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。
第二题[提示]
(1)假定系统有五个进程,每一个进程用一个进程控制块PCB来代表。
进程控制块的格式为:
进程名
指针
要求运行时间
已运行时间
状态
其中,进程名----作为进程的标识,假设五个进程的进程名分别是Q1,Q2,Q3,Q4,Q5。
指针----进程按顺序排成循环队列,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针指出第一个进程的进程控制块首地址。
要求运行时间----假设进程需要运行的单位时间数。
已运行时间----假设进程已经运行的单位时间数,初始值为“0”。
状态----有两种状态,“就绪”状态和“结束”状态,初始状态都为“就绪”,用“R”表示,当一个进程运行结束后,它的状态变为“结束”,用“E”表示。
(2)每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“要求运行时间”。
把五个进程按顺序排成循环队列,用指针指出队列连接情况。
另用一标志单元记录轮到运行的进程。
(3)处理器调度总是选择标志单元指示的进程运行。
由于本实验是模拟处理器调度的功能,所以,对被选中的进程并不实际启动运行,而是执行:
已运行时间-1
来模拟进程的一次运行,表示进程已经运行过一个单位的时间。
请注意:
在实际的系统中,当一个进程被选中运行时,必须置上该进程可以运行的时间片值,以及恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行满一个时间片。
在这里省去了这些工作,仅用“已运行时间+1”来表示进程已经运行满一个时间片。
(4)进程运行一次后,应把该进程的进程控制块中的指针值送到标志单元,以指示下一个轮到运行的进程。
同时,应判断该进程的要求运行时间与已运行时间,若该进程要求运行时间≠已运行时间,则表示它尚未执行结束,应待到下一轮时再运行。
若该进程的要求运行时间=已运行时间,则表示它已经执行结束,应把它的状态修改为“结束”(E)且退出队列。
此时,应把该进程的进程控制块中的指针值送到前面一个进程的指针位置。
(5)若“就绪”状态的进程队列不为空,则重复上面(4)和(5)的步骤,直到所有进程都成为“结束”状态。
(6)在所设计的称序中应有显示或打印语句,能显示或打印每次被选中进程的进程名以及运行一次后进称对列的变化。
(7)为五个进程任意确定一组“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。
(九)模拟实现一个简单的固定(或可变)分区存储管理系统
实验提示
本实验要求完成如下任务:
(1)建立相关的数据结构,作业控制块、已分配分区及未分配分区
(2)实现一个分区分配算法,如最先适应分配算法、最优或最坏适应分配算法
(3)实现一个分区回收算法
(4)给定一批作业/进程,选择一个分配或回收算法,实现分区存储的模拟管理。
(十)编写单通路I/O系统中的设备分配程序。
实验提示
(1)设计:
系统设备表SDT控制器表COCT
设备控制表DCT通道表CHCT
逻辑设备表LUT
(2)给出各表目初态
(3)回答信息:
能够分配时,给出设备号、控制器号、通道号,
否则,给出无法分配的回答,插入相应的等待队列。
(十一)编写用位示图法管理文件存储空间的分配与回收程序。
实验提示
(1)给出位示图初态
(2)程序人口参数:
分配时:
参数为文件名及需要分配的块数,
回收时:
参数为文件名。
(3)回答信息:
分配时:
能够分配时,给出文件名和分配的具体块号,
否则,给出无法分配的信息。
显示位示图。
回收时:
给出回收的具体块号。
显示位示图。
实验一进程控制描述与控制
[1]Windows“任务管理器”的进程管理
背景知识
Windows2000的任务管理器提供了用户计算机上正在运行的程序和进程的相关信息,也显示了最常用的度量进程性能的单位。
使用任务管理器,可以打开监视计算机性能的关键指示器,快速查看正在运行的程序的状态,或者终止已停止响应的程序。
也可以使用多个参数评估正在运行的进程的活动,以及查看CPU和内存使用情况的图形和数据。
其中:
1)“应用程序”选项卡显示正在运行程序的状态,用户能够结束、切换或者启动程序。
2)“进程”选项卡显示正在运行的进程信息。
例如,可以显示关于CPU和内存使用情况、页面错误、句柄计数以及许多其他参数的信息。
3)“性能”选项卡显示计算机动态性能,包括CPU和内存使用情况的图表,正在运行的句柄、线程和进程的总数,物理、核心和认可的内存总数(KB)等。
实验目的
通过在Windows任务管理器中对程序进程进行响应的管理操作,熟悉操作系统进程管理的概念,学习观察操作系统运行的动态性能。
工具/准备工作
在开始本实验之前,请回顾教科书的相关内容。
需要准备一台运行Windows2000Professional操作系统的计算机。
实验内容与步骤
1.使用任务管理器终止进程
2.显示其他进程计数器
3.更改正在运行的程序的优先级
启动并进入Windows环境,单击Ctrl+Alt+Del键,或者右键单击任务栏,在快捷菜单中单击“任务管理器”命令,打开“任务管理器”窗口。
在本次实验中,你使用的操作系统版本是:
____________________________________________________________________
当前机器中由你打开,正在运行的应用程序有:
1)__________________________________________________________________
2)__________________________________________________________________
3)__________________________________________________________________
4)__________________________________________________________________
5)__________________________________________________________________
Windows“任务管理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 实验 指导书 windows