计算机操作系统实验讲义文档格式.docx
- 文档编号:18012741
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:34
- 大小:393.36KB
计算机操作系统实验讲义文档格式.docx
《计算机操作系统实验讲义文档格式.docx》由会员分享,可在线阅读,更多相关《计算机操作系统实验讲义文档格式.docx(34页珍藏版)》请在冰豆网上搜索。
熟悉各种物理设备驱动程序的安装。
(2)熟悉WINDOWSXP的用户界面。
重点掌握各类操作系统的各类用户接口;
掌握资源管理器的使用。
(3)掌握对操作系统的配置和维护,掌握控制面板的使用。
掌握安装和删除硬件设备的方法,熟练对打印机、鼠标、键盘、网卡、显示卡、声卡等硬件设备进行配置。
(4)了解网络的配置和网络协议的原理和设置,熟练对计算机进行网络设置。
(5)熟练掌握WINDOWSXP的管理工具。
利用“计算机管理”选项对计算机进行设置。
“计算机管理工具”为用户提供六种系统工具:
“事件查看器”,“系统信息”、“性能日志和警报”,“共享文件夹”、设备管理器“和”本地用户和组。
(6)了解WINDOWSXP活动目录。
目录是一个存储对象信息的分层结构,要求学生掌握配置活动目录的方法。
(7)掌握WINDOWSXP的存储管理。
要求学生掌握以下内容:
WINDOWSXP的基本存储和动态存储;
智能镜像、存储工具、视图的设置和硬盘转换、动态磁盘中的卷以与相关卷的操作、磁盘碎片整理程序。
(8)熟悉用WINDOWS任务管理器来观察计算机的应用程序列表、进程列表以与系统的处理机使用情况、内存分配和使用情况、句柄数、线程数等等。
6.思考
WINDOWS操作系统中如何实现了处理机管理、内存管理、设备管理、文件管理和磁盘管理?
如何操作?
有条件的同学可参阅有关LINUX书籍和上机实践,思考和了解在LINUX操作系统中是如何实现了处理机管理、内存管理、设备管理、文件管理和磁盘管理?
实习二处理器调度
一、实习内容
选择一个调度算法,实现处理器调度。
二、实习目的
在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。
当就绪进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。
本实习模拟在单处理器情况下的处理器调度,帮助学生加深了解处理器调度的工作。
实验时间:
三、实习题目
本实习有两个题,学生可选择其中的一题做实习。
第一题:
设计一个按优先数调度算法实现处理器调度的程序。
[提示]:
(1)假定系统有五个进程,每一个进程用一个进程控制块PCB来代表,进程控制块的格式为:
进程名
指针
要求运行时间
优先数
状态
其中,进程名——作为进程的标识,假设五个进程的进程名分别为P1,P2,P3,P4,P5。
指针——按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为“0”。
要求运行时间——假设进程需要运行的单位时间数。
优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。
状态——可假设有两种状态,“就绪”状态和“结束”状态。
五个进程的初始状态都为“就绪”,用“R”表示,当一个进程运行结束后,它的状态为“结束”,用“E”表示。
(2)在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数”和“要求运行时间”。
(3)为了调度方便,把五个进程按给定的优先数从大到小连成队列。
用一单元指出队首进程,用指针指出队列的连接情况。
例:
队首标志
K2
K1
P1
K2
P2
K3
P3
K4
P4
K5
P5
K4
K5
K3
2
3
1
4
5
R
PCB1
PCB2
PCB3
PCB4
PCB5
(4)处理器调度总是选队首进程运行。
采用动态改变优先数的办法,进程每运行一次优先数就减“1”。
由于本实习是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行:
优先数-1
要求运行时间-1
来模拟进程的一次运行。
提醒注意的是:
在实际的系统中,当一个进程被选中运行时,必须恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行结束。
在这里省去了这些工作。
(5)进程运行一次后,若要求运行时间¹
0,则再将它加入队列(按优先数大小插入,且置队首标志);
若要求运行时间=0,则把它的状态修改成“结束”(E),且退出队列。
(6)若“就绪”状态的进程队列不为空,则重复上面(4)和(5)的步骤,直到所有进程都成为“结束”状态。
(7)在所设计的程序中应有显示或打印语句,能显示或打印每次被选中进程的进程名以与运行一次后进程队列的变化。
(8)为五个进程任意确定一组“优先数”和“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以与进程控制块的动态变化过程。
第二题:
设计一个按时间片轮转法实现处理器调度的程序。
(1)假定系统有五个进程,每一个进程用一个进程控制块PCB来代表。
进程控制块的格式为:
已运行时间
其中,进程名——作为进程的标识,假设五个进程的进程名分别为Q1,Q2,Q3,Q4,Q5。
指针——进程按顺序排成循环队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程的指针指出第一个进程的进程控制块首地址。
已运行时间——假设进程已经运行的单位时间数,初始值为“0”。
状态——有两种状态,“就绪”和“结束”,初始状态都为“就绪”,用“R”表示。
当一个进程运行结束后,它的状态为“结束”,用“E”表示。
(2)每次运行所设计的处理器调度程序前,为每个进程任意确定它的“要求运行时间”。
(3)把五个进程按顺序排成循环队列,用指针指出队列连接情况。
另用一标志单元记录轮到运行的进程。
例如,当前轮到P2执行,则有:
标志单元
Q1
Q2
Q3
Q4
Q5
K2
(4)处理器调度总是选择标志单元指示的进程运行。
由于本实习是模拟处理器调度的功能,所以,对被选中的进程并不实际的启动运行,而是执行:
已运行时间+1
来模拟进程的一次运行,表示进程已经运行过一个单位的时间。
请同学注意:
在实际的系统中,当一个进程被选中运行时,必须置上该进程可以运行的时间片值,以与恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行满一个时间片。
在这时省去了这些工作,仅用“已运行时间+1”来表示进程已经运行满一个时间片。
(5)进程运行一次后,应把该进程的进程控制块中的指针值送到标志单元,以指示下一个轮到运行的进程。
同时,应判断该进程的要求运行时间与已运行时间,若该进程的要求运行时间¹
已运行时间,则表示它尚未执行结束,应待到下一轮时再运行。
若该进程的要求运行时间=已运行时间,则表示它已经执行结束,应指导它的状态修改成“结束”(E)且退出队列。
此时,应把该进程的进程控制块中的指针值送到前面一个进程的指针位置。
(6)若“就绪”状态的进程队列不为空,则重复上面的(4)和(5)的步骤,直到所有的进程都成为“结束”状态。
(7)在所设计的程序中应有显示或打印语句,能显示或打印每次选中进程的进程名以与运行一次后进程队列的变化。
(8)为五个进程任意确定一组“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中的进程名以与进程控制块的动态变化过程。
四、实习报告
(1)实习题目。
(2)程序中使用的数据结构与符号说明。
(3)流程图。
(4)打印一份源程序并附上注释。
(5)打印程序运行时的初值和运行结果。
要求如下:
ⅰ进程控制块的初始状态。
ⅱ选中运行的进程名以与选中进程运行后的各进程控制块状态。
对于ⅱ要求每选中一个进程运行后都要打印。
实验三生产者和消费者的问题
(1)加深对进程概念的理解,明确进程和程序的区别。
(2)进一步认识并发执行的实质。
(3)验证用信号量机制实现进程互斥的方法。
(4)验证用信号机制实现进程同步的方法。
2.实验预备内容
(1)阅读课本有关进程管理以与进程同步的有关章节,对临界区和临界资源概念要清晰,充分理解信号信号量机制。
(2)阅读几种经典进程同步问题的算法并理解。
熟练掌握生产者—消费者的算法思想。
(1)一台运行WindowsXPprofessional操作系统的计算机。
(2)选用visualc++、Delphi、c++builder或visualbasic等任何一种语言。
问题描述:
考虑有一些生产者和消费者进程,生产者进程生产信息并把它们放入缓冲池中,消费者从缓冲池中取走信息。
生产者—消费者问题是相互合作的进程关系的一种抽象,如在输入时,输入进程是生产者,计算进程是消费者;
而在输出时,则计算进程是生产者,打印进程是消费者。
请使用信号量机制来解决生产者—消费者问题。
缓冲区
互斥关系:
(I)设缓冲池有n个单元。
(II)当n个单元装满时,生产者必须等待。
(III)当缓冲池空时,消费者必须等待。
6.参考算法
Varmutex,empty,full:
semaphore:
=1,n,0;
buffer:
array[0,…,n-1]ofitem;
in,out:
integer:
=0,0;
生产者进程:
repeat
produceaniteminnextp
wait(empty);
wait(mutex);
buffer(in):
=nextp;
in:
=(in+1)modn;
signal(mutex);
signal(full);
untilfalse;
消费者进程:
wait(full);
nextc:
=buffer(out);
out:
=(out+1)modn;
signal(empty);
consumetheiteminnextc
wait(S)操作:
S=S-1;
若S>
=0,则进程继续运行。
若S<
0,则该进程被阻塞,并将它插入该信号量的等待队列中。
Signal(S)操作:
S=S+1;
若S>
0,则进程继续执行;
若S<
=0,则从信号量等待队列中移处第一个进程,使其变为就绪状态,然后再返回原进程继续执行。
7.实验要求
在程序编制中,应有数据显示,最好采用图形界面显示。
生产者和消费者的进程采用程序模拟的方法运行。
实验四银行家调度算法
(1)使学生加深对死锁的理解,理解预防死锁的思想和方法,使学生明确系统安全状态的概念。
(2)使学生能利用银行家调度算法实现避免死锁。
阅读死锁的基本概念,产生死锁的原因、产生死锁的必要条件以与处理死锁的基本方法,重点阅读关于死锁避免的章节。
(2)选用visualc++、delphi、c++builder或visualbasic等任何一种语言,建议用c++。
(1)设置银行家算法中的数据结构
(a)可利用资源向量Available
它是一个含有m个元素的数组,其中的每一个元素代表一类可利用资源的数目,其初始值是系统中所配置该类全部可用资源数目。
其数值随该类资源的分配和回收而动态地改变。
如果Available[j]=k表示系统中现有
类资源k个。
(b)最大需求矩阵Max
这是一个
的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。
如果Max(i,j)=k,表示进程i需要
类资源的最大数目为k。
(c)分配矩阵Allocation
的矩阵,它定义了系统中每一类资源当前已分配该每一进程的资源数。
如果Allocation(i,j)=k,表示进程i当前已分得
类资源的数目为k。
(d)分配矩阵Need
的矩阵,用以表示每一个进程尚需的各类资源数。
如果Need(i,j)=k表示进程i还需要
类资源k个,方能完成其任务。
上述三个矩阵存在如下关系:
Need(i,j)=Max(i,j)-Allocation(i,j)
(2)银行家算法
设
是进程
的请求向量。
如果
[j]=k,表示进程
需要k个
类的资源。
当
发出资源请求后,系统按下述步骤进行检查:
①如果
则转向步骤②;
否则,认为出错,因为它所需要的资源数已超过它所宣布的最大值。
②如果
,则转向步骤③;
否则,表示系统中尚无足够的的资源,
必须等待。
③系统试探把要求的资源分配给进程
,并修改下面数据结构中的数值:
Available
Available-
;
④系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。
若安全,才正式将资源分配给进程
,以完成本次分配;
否则,将试探分配作废,恢复原来的资源分配状态,让进程
等待。
(3)安全性算法
系统所执行的安全性算法描述如下:
①设置两个向量
(a)工作向量Work。
它表示系统可提供给进程继续运行所需要的各类资源数目,它含有m个元素,执行安全算法开始时,Work:
=Available。
(b)Finish。
它表示系统是否有足够的资源分配给进程,使之运行完成,开始时先做Finish[i]:
=false;
当有足够资源分配给进程时,令Finish[i]:
=true。
②从进程集合中找到一个能满足下列条件的进程:
(a)Finish[i]:
=false
(b)
如找到,执行步骤③;
否则执行步骤④。
③当进程
获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:
Work:
=Work+Allocationi;
Finish[i]:
=true;
gotostep
(2)
④如果所有进程的Finish[i]:
=true,则表示系统处于安全状态;
否则,系统处于不安全状态。
实验五主存储器空间的分配和回收
主存储器空间的分配和回收。
一个好的计算机系统不仅要有一个足够容量的、存取速度高的、稳定可靠的主存储器,而且要能合理地分配和使用这些存储空间。
当用户提出申请存储器空间时,存储管理必须根据申请者的要求,按一定的策略分析主存空间的使用情况,找出足够的空闲区域分配给申请者。
当作业撤离或主动归还主存资源时,则存储管理要收回作业占用的主存空间或归还部分主存空间。
主存的分配和回收的实现虽与主存储器的管理方式有关的,通过本实习帮助学生理解在不同的存储管理方式下应怎样实现主存空间的分配和回收。
4个机时。
本实习模拟在两种存储管理方式下的主存分配和回收。
在可变分区管理方式下采用最先适应算法实现主存分配和实现主存回收。
可变分区方式是按作业需要的主存空间大小来分割分区的。
当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;
若无,则作业不能装入。
随着作业的装入、撤离,主存空间被分成许多个分区,有的分区被作业占用,而有的分区是空闲的。
例如:
5k
10k
14k
26k
32k
128k
操作系统
作业1
作业3
空闲区
作业2
为了说明哪些区是空闲的,可以用来装入新作业,必须要有一张空闲区说明表,格式如下:
起址
长度
状态
第一栏
14K
12K
未分配
第二栏
32K
96K
M
空表目
M
其中,起址——指出一个空闲区的主存起始地址。
长度——指出从起始地址开始的一个连续空闲的长度。
状态——有两种状态,一种是“未分配”状态,指出对应的由起址指出的某个长度的区域是空闲区;
另一种是“空表目”状态,表示表中对应的登记项目是空白(无效),可用来登记新的空闲区(例如,作业撤离后,它所占的区域就成了空闲区,应找一个“空表目”栏登记归还区的起址和长度且修改状态)。
由于分区的个数不定,所以空闲区说明表中应有适量的状态为“空表目”的登记栏目,否则造成表格“溢出”无法登记。
上述的这张说明表的登记情况是按提示
(1)中的例所装入的三个作业占用的主存区域后填写的。
(2)当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大的空闲区。
有时找到的空闲区可能大于作业需要量,这时应把原来的空闲区变成两部分:
一部分分给作业占用;
另一部分又成为一个较小的空闲区。
为了尽量减少由于分割造成的空闲区,而尽量保存高地址部分有较大的连续空闲区域,以利于大型作业的装入。
为此,在空闲区说明表中,把每个空闲区按其地址顺序登记,即每个后继的空闲区其起始地址总是比前者大。
为了方便查找还可使表格“紧缩”,总是让“空表目”栏集中在表格的后部。
(3)采用最先适应算法(顺序分配算法)分配主存空间。
按照作业的需要量,查空闲区说明表,顺序查看登记栏,找到第一个能满足要求的空闲区。
当空闲区大于需要量时,一部分用来装入作业,另一部分仍为空闲区登记在空闲区说明表中。
由于本实习是模拟主存的分配,所以把主存区分配给作业后并不实际启动装入程序装入作业,而用输出“分配情况”来代替。
最先适应分配算法如图4-1。
(4)当一个作业执行结束撤离时,作业所占的区域应该归还,归还的区域如果与其它空闲区相邻,则应合成一个较大的空闲区,登记在空闲区说明表中。
例如,在提示
(1)中列举的情况下,如果作业2撤离,归还所占主存区域时,应与上、下相邻的空闲区一起合成一个大的空闲区登记在空闲区说明表中。
归还主存时的回收算法如图4-2。
(5)请按最先适应算法设计主存分配和回收的程序。
然后按
(1)中假设主存中已装入三个作业,且形成两个空闲区,确定空闲区说明表的初值。
现有一个需要主存量为6K的作业4申请装入主存;
然后作业3撤离;
再作业2撤离。
请你为它们进行主存分配和回收,把空闲区说明表的初值以与每次分配或回收后的变化显示出来或打印出来。
在分页式管理方式下采用位示图来表示主存分配情况,实现主存空间的分配和回收。
(1)分页式存储器把主存分成大小相等的若干块,作业的信息也按块的大小分页,作业装入主存时可把作业的信息按页分散存放在主存的空闲块中,为了说明主存中哪些块已经被占用,哪些块是尚未分配的空闲块,可用一张位示图来指出。
位示图可由若干存储单元来构成,其中每一位与一个物理块对应,用0/1表示对应块为空闲/已占用。
(2)假设某系统的主存被分成大小相等的64块,则位示图可用8个字节来构成,另用一单元记录当前空闲块数。
如果已有第0,1,4,5,6,9,11,13,24,31,共10个主存块被占用了,那么位示图情况如下:
字位
节数
号
6
7
0
1
2
3
4
5
6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 实验 讲义