欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    操作系统实验题目及实验报告要求.pdf

    • 资源ID:80718042       资源大小:455.57KB        全文页数:8页
    • 资源格式: PDF        下载积分:19.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要19.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统实验题目及实验报告要求.pdf

    操作系统实验题目及实验报告要求 Prepared on 21 November 2021 实 验 报 告 实验课程:操作系统实验 学生姓名:王桥 学 号:24 专业班级:计科 123 班 2014 年 6 月 3 日 目 录 一、实验一 1 二、实验二 7 三、实验三 21 四、实验四 28 五、实验五 33 南昌大学实验报告 -(1)操作系统安装及其接口环境 学生姓名:王桥 学 号:24 专业班级:计科123班 实验类型:验证 综合 设计 创新 实验日期:实验成绩:一、实验目的 熟悉 Windows1(执行程序)2模拟 PV 操作同步机构,且用 PV 操作解决生产者消费者问题。模拟 PV 操作同步机构,且用 PV 操作解决生产者消费者问题。提示:(1)PV 操作同步机构,由 P 操作原语和 V 操作原语组成,它们的定义如下:P 操作原语 P(s):将信号量 s 减去 1,若结果小于 0,则执行原语的进程被置成等待信号量 s 的状态。V 操作原语 V(s):将信号量 s 加 1,若结果不大于 0,则释放一个等待信号量 s 的进程。这两条原语是如下的两个过程:procedure p (var s:semaphore);begin s:=s-1;if s0 then W(s)end p procedure v(var s:semaphore);begin s:=s+1;if s=0 then R(s)end V 其中 W(s)表示将调用过程的进程置为等待信号量s 的状态;R(s)表示释放一个等待信号量 s 的进程。在系统初始化时应把 semaphore 定义为某个类型,为简单起见,在模拟实验中可把上述的 semaphore 直接改成 integer。(2)生产者消费者问题。假定有一个生产者和消费者,生产者每次生产一件产品,并把生产的产品存入共享缓冲器以供消费者取走使用。消费者每次从缓冲器内取出一件产品去消费。禁止生产者将产品放入已满的缓冲器内,禁止消费者从空缓冲器内取产品。假定缓冲器内可同时存放 10 件产品。那么,用 PV 操作来实现生产者和消费者之间的同步,生产者和消费者两个进程的程序如下:B:array 0.9 of products;s1,s2:semaphore;IN,out;integer;IN:=0;out:=0;cobegin procedure producer;c:products;begin L1:produce(c);p(s1);BIN:=C;IN:=(IN+1)mod 10;v(s2);goto L1 end;procedure consumer;x:products;begin L2:P(s2);x:=Bout;out:=(out+1)mod 10;v(s1);consume(x);goto L2 end;coend 其中的 semaphore 和 products 是预先定义的两个类型,在模拟实现中semaphore 用integer 或 char 等代替。(3)进程控制块 PCB。为了纪录进程执行时的情况,以及进程让出处理器后的状态,断点等信息,每个进程都有一个进程控制块 PCB。在模拟实验中,假设进程控制块的结构如图4-1。其中进程的状态有:运行态、就绪态、等待态和完成态。当进程处于等待态时,在进程控制块 PCB 中要说明进程等待原因(在模拟实验中进程等待原因为等待信号量s1或s2);当进程处于等待态或就绪态时,PCB 中保留了断点信息,一旦进程再度占有处理器则就从断点位置继续运行;当进程处于完成状态,表示进程执行结束。图 4-1 进程控制块结构(4)处理器的模拟。计算机硬件提供了一组机器指令,处理器的主要职责是解释执行机器指令。为了模拟生产者和消费者进程的并发执行,我们必须模拟一组指令和处理器职能。模拟的一组指令见图 4-2,其中每条指令的功能由一个过程来实现。用变量 PC 来模拟“指令计数器”,假设模拟的指令长度为 1,每执行一条模拟指令后,PC 加 1,指出下一条指令地址。使用模拟的指令,可把生产者和消费者进程的程序表示为图 4-3 的形式。定义两个一维数组 PA0.4和 SA0.4,每一个 PAi存放生产者程序中的一条模拟指令执行的入口地址;每个 SAi存放消费者程序中的一条模拟指令执行的入口进程名 状态 等待原因 断点 地址。于是模拟处理器执行一条指令的过程为:取出 PC 之值,按 PAPC 或 SAPC得模拟指令执行的入口地址,将 PC 之值加 1,转向由入口地址确定的相应的过程执行。(5)程序设计 本实验中的程序由三部分组成:初始化程序、处理器调度程序、模拟处理器指令执行程序。各部分程序的功能及相互间的关系由图 4-4 至图 4-7 指出。模拟的指令 功能 P(s)执行 P 操作原语 V(s)执行 v 操作原语 put BIN:=product;IN:=(IN+1)mod 10 GET X:=Bout;out:=(out+1)mod 10 produce 输入一个字符放入 C 中 consume 打印或显示 x 中的字符 GOTO L PC:L NOP 空操作 图 4-2 模拟的处理器指令 序号 生产者程序 消费者程序 0 produce P(s2)1 P(s1)GET 2 PUT V(s1)3 V(s2)consume 4 goto 0 goto 0 图 4-3 生产者和消费者程序 初始化程序:模拟实验的程序从初始化程序入口启动,初始化工作包括对信号量 S1、S2 赋初值,对生产者、消费者进程的 PCB 初始化。初始化后转向处理器调度程序,其流程如图 4-4 处理器调度程序:在计算机系统中,进程并发执行时,任一进程占用处理器执行完一条指令后就有可能被打断而让出处理器由其他进程运行。故在模拟系统中也类似处理,每当执行一条模拟的指令后,保护当前进程的现场,让它成为非运行状态,由处理器调度程序按随机数再选择一个就绪进程占用处理器运行。处理器调度程序流程见图 4-5。图 4-4 初始化流程 模拟处理器指令执行程序:按“指令计数器”PC 之值执行指定的质量,且 PC 加 1指向下一条指令。模拟处理器指令执行的程序流程见图 4-6 和 4-7。开始 初始化信号量 S1,S2 S1:=10,S2:=0 生产者和消费者进程的PCB 中状态为就绪,断点为 0 另外,为了使得模拟程序有一个结束条件,在图 4-6 中附加了“生产者运行结束”的条件判断,模拟时可以采取人工选择的方法实现。图 4-7 给出了 P(S)和 V(S)模拟指令执行过程的流程。其他模拟指令的执行过程已在图 4-2 中指出。四、实验报告(1)实验题目。(2)打印源程序并附上注释。(3)从键盘上输入一组字符,由生产者每次读入一个字符供消费者输出。运行模拟程序,打印依次读入的字符和消费者输出的字符。(4)把生产者和消费者进程中的P 操作、V 操作都改成空操作指令,观察在两者不同步的情况下可能出现的与时间有关的错误。打印依次读入的字符和消费者输出的字符。图 4-5 处理器调度程序流程 (1)模拟 P(S)(2)模拟 V(S)图 4-7 模拟 PV 操作的执行 三、实验要求 1、linux 操作系统 2、Windows 操作系统 四、主要实验步骤 linux 操作系统下的操作步骤:gedit (编辑程序)gcc o semaphore (编译、链接程序)./semaphore(执行程序)生产者和消费者的代码:#include const unsigned short SIZE_OF_BUFFER=5;.;std:cerr Succeed std:endl;.;g_bufferin=ProductID;in=(in+1)%SIZE_OF_BUFFER;std:cerr Succeed PC 结束 保护现场,PC=当前进程 PCB的断点 有就绪进程 否 是 开始 SS-1 将调用 P(s)过程的进程置为就绪 将调用 P(s)过程的进程置为等待信号量 s的状态 S0 返回 否 是 开始 SS+1 将调用 V(s)过程的进程置为就绪 找一个等待 s 信号量的进程置为就绪态 S0 返回 否 是 P(s)GOTO 空操作 Put GET produce consume V(s)开始 j:=PC 按 j 转向各模拟指令对应的过程 现行进 程为生产者 否 是 j:=SAi j:=PAi PC:=i+1 置现行进程为就绪态 生产者运行结束 置生产者进程为完成态 是 否 图 4-6 模拟处理器指令执行 ConsumeID=g_bufferout;out=(out+1)%SIZE_OF_BUFFER;std:cerr Succeed std:endl;.;std:cerr Succeed std:endl;计算并输出下述各种算法在不同内存容量下的命中率。A.FIFO 先进先出的算法 B.LRU 最近最少使用算法 CLFU 最少访问页面算法 三、实验要求 1、需写出设计说明;2、设计实现代码及说明 3、运行结果;四、主要实验步骤 1、最少使用(LFU)页面置换算法设计说明 该算法主要是将最近时期页面使用最少的页面作为淘汰页。这里通过设立count32这个计数数组记录 32 页的调用次数,通过比较来确定要调出的页面。但如果没产生缺页就只需对所调页数对应的count 值加 1 即可。2、最近最久未使用(LRU)页面置换算法设计说明:这个算法同 FCFS 算法的不同之处在于,每产生一条随机指令,如果和4 个内存块中的某一个页数相同的话,就要对这4 个内存块中的页数重新排序,将每次要置换出去的页数放在 mem_volume3中,这样,在每次产生缺页的时候,都先将所缺页数写入到该内存块,然后再排序,将其放到mem_volume0中去。3、先进先出(FIFO)算法设计说明:按照所要求的产生随机指令序列,存放在 order320这个数组中。通过循环产生这些随机指令,每产生一条都要进行下列判断:是否和内存中即mem _volume4中存放的页面相同,如果相同则不做任何操作,如果不相同,则产生缺页,相应的缺页次数加一,按照 fcfs 将最先进入内存的页数淘汰,并将该页写到内存中去。重复上面的操作直到完成这 320 条指令。f%n,add/10,sum/10);printf(*n);return 0;*n);f%n,add/10,sum/10);printf(*n);return 0;f%n,add/10,sum/10);printf(*n);return 0;五、实验数据及处理结果 六、实验体会或对改进实验的建议 这次实验是最后一次实验,代码量比较大,但实现起来都比较容易,因为这三个算法之间总体的思路是不变的,即先判断是否和内存块中的页数相同,如果相同执行相应操作,如果不同,产生缺页,再执行相应操作。但有一个细节问题,要使第一次调入的页数产生缺页,于是将 mem_volume4中的值都初始化为 100(大于 32 即可),这样第一次调入便会产生缺页。这个细节虽然在结果中不能够得到体现,但是我想做不管怎样都应该全面的去考虑问题。总之,这次的操作系统实验使我受益匪浅。

    注意事项

    本文(操作系统实验题目及实验报告要求.pdf)为本站会员(l****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开