操作系统原理课程实践任务书详解.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程实践任务书 题目一 进程调度算法模拟 一、设计目的 编程实现进程调度的算法,更好地掌握操作系统的原理及实现方法,从而有利于把握进程调度细节。 二、设计要求 (1)要求实现先来先服务,短作业优先,时间片轮转,高优先权调度算法四种算法并进行对比分析. (2)要求界面简单,易懂,关键代码部分要注释. (3)编程语言可以采用自己任意精通的语言 三、设计思想说明 先来先服务:程序的执行调度顺序按先进入队列的先获得执行,并且其他进程都不能中断正在执行的进程,要等进程完成后才能,让出CPU给其他进程。执行的时候可以随时在队列中插入进程。 短作业优先:进程的调度顺序按程序的服务时间来决定,进程的执行顺序。服务时间短的先被调用。调度时先从队列中选取服务时间最短的进程来执行。进程中途不能中断,即使此时队列中存在服务时间比其更短的进程,仍需要等待该进程执行完后才能被执行。 高优先权调度:选取进程中优先级最高的一个,以优先级的值大,优先级就大。 调度时总是选取队列中进程优先级最高的来执行,不管是否有某个进程在执行,只要存在比正在执行进程优先级高的进程,则就会立刻中断正在执行的进程,让给跟高优先级的进程。 时间片轮转:本课程设计采用多级反馈队列调度算法,设立4个进程队列,分给队列1的时间片为3秒,队列2的时间片为6秒,队列3的时间片为12秒,队列4的时间片为24秒。队列1的优先级最高,队列4的优先级最低。高优先级的队列没执行完,即不为空,就永远不执行其下面的低优先级的队列里面的进程。当执行低优先级队列里面的进程时,突然间高优先级的队列插入了进程就立刻跳到高优先级的队列执行其里面的进程。每个队列的进程都是按先来先执行的顺序执行。进程初次执行肯定要进入队列1。如何从头到尾执行一遍队列1中的进程是,存在某些进程在队列1的时间片内还没执行完,就把进程移交到下一个队列中。每个队列都如此类推。直到最后一个队列4,如果在队列4还有进程在本时间片内还没没执行完,就把该程序放到队尾,从新等待时间片执行。 题目二 存储管理 一、实验目的 1加深对操作系统存储管理的理解 2模拟页面置换算法,加深理解操作系统对内存的管理 二、背景知识 先进先出的算法(FIFO) 最近最少使用的算法(LRU) 最佳淘汰算法(OPT) 三、设计内容 设计一个虚拟存储区和内存工作区,并使用下列算法计算访问命中率. 先进先出的算法(FIFO) 最近最少使用的算法(LRU) 最佳淘汰算法(OPT) 命中率=1-页面失效次数/页地址流长度 程序设计〉 本程序设计基本上按照设计内容进行。即首先用srand()和rand()函数定义和产生指令序列,然后将指令序列变换成相应的页地址流,并针对不同的算法计算出相应的命中率。相关定义如下: 1 数据结构 (1)页面类型 typedef struct{ int pn,pfn,counter,time; }pl-type; 其中pn 为页号,pfn为面号, counter为一个周期内访问该页面的次数, time为访问时间. (2) 页面控制结构 pfc-struct{ int pn,pfn; struct pfc_struct *next; } typedef struct pfc_struct pfc_type; pfc_type pfc_struct[total_vp],*freepf_head,*busypf_head; pfc_type *busypf_tail; 其中pfc[total_vp]定义用户进程虚页控制结构, *freepf_head为空页面头的指针, *busypf_head为忙页面头的指针, *busypf_tail为忙页面尾的指针. 2.函数定义 (1)Void initialize( ):初始化函数,给每个相关的页面赋值. (2)Void FIFO( ):计算使用FIFO算法时的命中率. (3)Void LRU( ):计算使用LRU算法时的命中率. (4)Void OPT( ):计算使用OPT算法时的命中率. (5)Void LFU( ):计算使用LFU算法时的命中率. (6)Void NUR( ):计算使用NUR算法时的命中率. 3.变量定义 (1)int a[total_instruction]: 指令流数据组. (2)int page[total_instruction]: 每条指令所属的页号. (3)int offset[total_instruction]: 每页装入10条指令后取模运算

文档评论(0)

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

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

1亿VIP精品文档

相关文档