操作系统原理实验指导.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统原理实验指导

操作系统原理实验指导 附:随机数产生方法 #include stdlib.h main() { int i; clrscr(); randomize(); /*初始化随机数产生器*/ for(i=1;i11;i++) printf(%d***,random(40000)); /*产生0到40000-1之间的随机数*/ getch(); } 进程调度实验 目的 掌握进程的调度方法。 内容 将进程的基本状态分为三种:运行、就绪、等待。 选用C语言编写程序,构造就绪和等待两个队列,根据不同的情况分别对就绪和等待两个队列进行出队和排队处理,并在计算机屏幕上给出相应的提示,如:“进程进入等待”、“进程进入就绪”、“进程开始运行”。 方法 先构造若干简单进程的PCB,其中应包含进程名称、队列指针; 利用PCB构造就绪和等待两个队列; 在main()中,可利用产生随机数函数random(int x)产生三个不同范围的数,它们分别对应进程的三种状态;当随机数落在某个范围时,便激活进程的相应状态和处理工作。 地址转换实验 目的 掌握地址转换的方法。 内容 分区存储管理方法中地址转换的方法; 页式存储管理方法中地址转换的方法; 段式存储管理方法中地址转换的方法; 方法 我们利用随机数来模拟有效地址,对于不同的存储管理方法,采用不同的地址转换方法。 分区存储管理方法中: 先给定基址寄存器BR和限长寄存器LR的值; 利用随机数模拟的有效地址,根据基址寄存器BR和限长寄存器LR的值,计算相应的物理地址,并判断是否越界,若出现越界现象,应给出警告信息。 页式存储管理方法中: 假设逻辑地址结构为(二进制表示、2个字节) 15 10 9 0 页号 页内偏移量 建立简单的页表PT,并填人页号、块号; 利用随机数模拟的有效地址,根据PT,计算相应的物理地址,并判断是否越界,若出现越界现象,应给出警告信息。否则对于每个有效地址给出相应的页号、内存块号、及相应的物理地址。 段式存储管理方法中: 假设逻辑地址结构为(二进制表示、2个字节) 15 10 9 0 段号 段内偏移量 建立简单的段表ST,并填人段号、段长、段首地址; 利用随机数模拟的有效地址,根据ST,计算相应的物理地址,并判断是否越界,若出现越界现象,应给出警告信息。否则对于每个有效地址给出相应的段号、段内偏移量、内存始地址及相应的物理地址。 P.V操作实验 目的 了解并掌握进程的同步和互斥。 内容 选用C语言编写程序,利用P.V操作解决单生产者和单消费者问题。 方法 分别改造P操作和V操作及生产、消费程序; 在main()中利用循环通过相关的控制量,分别激活生产者和消费者; 为了方简单起见,生产者和消费者只对单缓冲区进行操作,如:生产者将数值“1”填人缓冲区,而消费者将数值“0”填人缓冲区。 存储分配实验 目的 了解虚拟技术及存储分配的常用方法。 内容 选用C语言编写一个存储管理的模拟程序,管理方法采用请求页式存储管理。 方法 建立两个表格,页表PT(包含页号、内存块号、状态);内存块表MBT(包含内存块号、状态); 为了方便本实验规定为单作业的情况,用户地址空间为0~32K;页面大小为4K,内存块为8块 利用随机数模拟的有效地址系列,范围是0~32K; 分别读出地址系列中的地址: 每读出一个地址,先计算该地址的页号(页号=INT[虚地址/页面大小]); 然后在页表PT中查访该页的状态; 若为“1”,表示在内存,无须作其它处理; 若为“0”,表示不在内存,则需要查MBT表,看是否还有可提供分配的空白块; 若内存有空白块,则修改PT表中的该页的状态项,并记录分配到的内存块号,同时修改MBT表; 若内存无空白块,则根据某个算法从内存中挑选一页进行淘汰; 在PT表将被淘汰的页对应的状态改为“0”; 将当前页调人内存,同时修改PT表相应项; SPOOLING技术实验 目的 体会SPOOLING系统如何解决主机与慢速I/O设备之间的矛盾。 内容 选用C语言编写一个模拟SPOOLING系统,它们由三个模块组成。 输入模块(负责作业的输入) 首先查看是否有待输入的作业,若无则结束。 查看输入井是否满,若满,则保留待输入作业现场,结束。 将作业读入输入井,直到输入井满。 设有10道作业待输入,每道作业是一个字符串。长度不超过20,并以“#”作为结束符号。 处理模块(负责加工处理输入井中的作业) 首先查看是否还有已加工但未送到输出井的信息。若有,转向3)。 从输入井中读出一道作业,在作业中的每个字符间插入“.”。 查看输出井是否满,若满,则保留现场,结束;否则将处理过的作业送到输

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档