ImageVerifierCode 换一换
格式:DOC , 页数:43 ,大小:78.04KB ,
资源ID:8190311      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8190311.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(2024年操作系统课程设计任务书级计算机软件网络.doc)为本站上传会员【天****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

2024年操作系统课程设计任务书级计算机软件网络.doc

1、 -第一学期 「操作系统」课程设计任务书 依照大纲和课程内容实践特点,结合《操作系统》、《LINUX操作系统》和《嵌入式程序设计》课程重要内容,课设的详细要求及任务如下: 一、设计成果的要求 课程设计应严格按照要求完成,在系统调试成功后, 需要提供「操作系统」 课程设计报告,详细包括: (1)设计目标 (1)设计内容 (3)设计准备(理论、技术) (4)设计过程(设计思想、代码实现) (5)设计成果并分析 (6)系统的结构、原理框图和模块等的详细阐明 (7)用户使用阐明书和参考资料 (8)设计体会。 注:1.(1)-(7)项能够打印,(8)设计体会必须手写。

2、 2. 报告的封皮、封底,采取给定的模板;报告的内容,在教师的指引下,独立完成,自主排版,不做统一要求。 二、设计任务(每名同学选一题,独立完成) 题目一:进程与线程—Linux进程与线程通讯 1. 设计目标 深刻了解线程和进程的概念,掌握线程与进程在组成成份上的差异以及与其相适应的通讯方式和应用目标。 Linux系统的fork()保持了UNIX的经典语义,被创建的进程具备独立于父进程的地址空间,二者之间的通讯一般可采取pipe机制,clone()是Linux系统特有的系统调用,能够通过参数确定父子进程之间是否共享存储空间等资源。在地址空间等资源共享的情况下,clone实质相

3、称于创建了一个轻进程或线程,这是clone的一般使用方法。实际在Linux系统中,fork以及用户级线程pthread都是基于clone实现的。 2. 设计内容 以Linux系统进程和线程机制为背景,掌握fork()和clone()系统调用的 形式和功效以及与其相适应的高级通讯方式。由fork派生的子进程之间通过pipe通讯,由clone创建的线程之间通过共享内存通讯,对于后者需要考虑互斥问题。 以生产者-消费者问题为例,通过试验了解fork()和clone()两个系统调用的区分。程序要求能够创建4个进程或线程,其中包括两个生产者和两个消费者,生产者和消费者之间能够传递数据。 题目二

4、处理机调度—实时调度算法EDF和RMS 1. 设计目标 深入了解处理机调度算法,了解硬实时概念,掌握最早截止期优先调度算法 EDF(Earliest Deadline First)和速率单调调度算法RMS(Rate Monotonic Scheduling)的可调度条件,并能在可调度情况下给出详细调度成果。 2. 设计内容 在Linux环境中采取用户级线程模拟实现EDF和RMS两种实时调度算法。给 定一组实时任务,按照EDF算法和RMS算法分别判断是否可调度。在可调度的情况下,创建一组用户级线程,分别代表各个实时任务,并按算法所确定的调度次序安排各个线程运行,运行时在终端上画出其

5、Gantt图。为防止图形绘制冲淡算法,Gantt图可用字符表示。 题目三:存储管理—动态异长存储资源分派算法 1. 设计目标 了解动态异长存储分区资源管理,掌握所需数据结构和管理程序,了解各种 存储分派算法的优点和缺陷。 2. 设计内容 (1)分析UNIX最先适应(First Fit,FF)存储分派算法,即map数据结构、存储分派函数malloc()和存储释放函数mfree(),找出与算法有关的成份。 (2) 修改上述与算法有关的成份,使其分别体现BF(Best Fit,最佳适应) 分派标准和WF(Worst Fit,最环适应)分派标准。 题目四:文献系统—Hash结

6、构文献 1. 设计目标 了解Linux文献系统的内部技术,掌握Linux与文献有关的系统调用命令, 并在此基础上建立面对随机检索的Hash结构文献。 Linux系统保持UNIX文献系统的格调,提供流式文献界面,这种结构具备简洁灵活的特点,但并不直接支持统计式文献和核心字检索。本设计在Linux文献系统基础上,设计一组库函数,以提供对随机检索的支持。 2. 设计内容 (1)参考教程中Hash文献结构算法,设计一组Hash文献函数,包括Hash文献创建、打开、关闭、读、写等。 (2)编写一个测试程序,通过统计保存、查找、删除等操作,检查上述Hash文献是否实既有关功效。

7、 题目五:设备管理—Linux设备驱动程序安装 1. 设计目标 认识Linux设备的种类和设备工作方式,了解设备驱动程序的工作原理,掌 握设备驱动程序的编写规范,能编写并安装简单的设备驱动程序。 2. 设计内容 在Linux系统中,编写一个简单的字符型设备驱动程序模块,设备具备独 占特性,可执行读和写操作,有关系统调用为open,close,read,write。Open和close分别相称于祈求和释放设备,read和write将内容保存在设备模块内的绥冲区中。设备模块可动态注册和卸载,并建立与之对应的特殊文献/dev/mydev。 题目六:Bootloader引导程序设计

8、与实现 1.设计目标 认识Bootloader的作用,深入了解Bootloader的编程思想。以经典的引导程序vivi为例,对vivi程序的架构,vivi的开启流程,使用vivi完成系统引导程序的设计措施形成深刻的了解和认识。 2. 设计内容 在嵌入式操作系统中,Bootloader的作用与PC机上的BIOS类似,通过Bootloader能够完成对系统板上的重要部件如CPU、SDRAM、Flash、串行口等进行初始化。当运行操作系统时,它会在操作系统内核运行之前运行,通过它,能够分派内存空间的映射,从而将系统的软硬件环境带到一个适宜的状态,以便为最后调用操作系统准备好正

9、确的环境。 本设计要求同学首先分析老师提供的vivi程序源代码,理清vivi程序的架构分为哪几个模块,然后依照分析vivi程序的执行流程详细分为哪几个阶段,各阶段的重要任务是什么。最后要求同学编写内存映射初始化函数mem_map_init()和内存管理单元初始化函数mmu_init()。 题目七:嵌入式linux下键盘驱动程序的设计与实现 1.设计目标 通过完成对嵌入式linux下键盘驱动程序的设计和调试,掌握嵌入式linux驱动程序的编写措施,了解驱动程序动态模块的调试措施,掌握驱动程序添加到内核的流程。 2. 设计内容 设备驱动程序是操作系统内核和机器

10、硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,故在应用程序看来,硬件设备只是一个设备文献,应用程序能够像操作一般文献同样对硬件设备进行操作。 本设计要求同学按照标准设备驱动程序的步骤编写驱动程序。因为键盘的设备驱动程序属于字符设备的驱动,因此,应当按照字符设备的规则编写。要求同学编写键盘设备文献file_operations结构,以及如下几个键盘操作函数:键盘控制函数Kbd_Ioctl()、关闭键盘设备函数Kbd_Close()、打开键盘设备函数Kbd_Open()、获取键值函数Kbd_Getkey()、键盘服务子程序Kbd_ISR()、键盘设备的硬件初始化函数Setup_

11、Kbd()、注册键盘设备使用函数KbdInit()和卸载键盘设备函数Kbd_Exit()。 题目八:初次适应算法的动态分辨别配方式模拟 1. 设计目标 了解动态分辨别配中使用的数据结构和分派算法,并深入加深对动态分区存储管理方式及其实现过程的了解。 2. 设计内容 1)用C语言实现采取初次适应算法的动态分辨别配过程alloc()和回收过程free()。其中,空闲分区通过空闲分区链表来管理,在进行内存分派时,系统优先使用空闲区低端的空间。 2)假设初始状态如下,可用的内存空间为640KB,并有下列的祈求序列; 作业1申请130KB 作业2申请60KB 作业3申请100KB

12、 作业2释放60KB 作业4申请200 KB 作业3释放100 KB 作业1释放130 KB 作业5申请140 KB 作业6申请60 KB 作业7申请50KB 作业6释放60 KB 请采取初次适应算法进行内存块的分派和回收,同时显示内存块分派和回收后空闲内存分区链的情况。 题目九:循环初次适应算法的动态分辨别配方式模拟 1.设计目标 了解动态分辨别配中使用的数据结构和分派算法,并深入加深对动态分区存储管理方式及其实现过程的了解。 2.设计内容 1)用C语言实现采取循环初次适应算法的动态分辨别配过程alloc()和回收过程free()。其中,空闲分区通过空闲分区链表

13、来管理,在进行内存分派时,系统优先使用空闲区低端的空间。 2)假设初始状态如下,可用的内存空间为640KB,并有下列的祈求序列; 作业1申请130KB 作业2申请60KB 作业3申请100KB 作业2释放60KB 作业4申请200 KB 作业3释放100 KB 作业1释放130 KB 作业5申请140 KB 作业6申请60 KB 作业7申请50KB 作业6释放60 KB 请采取循环初次适应算法进行内存块的分派和回收,同时显示内存块分派和回收后空闲内存分区链的情况。 题目十:最佳适应算法的动态分辨别配方式模拟 1.设计目标 了解动态分辨别配中使用的数据结构和分

14、派算法,并深入加深对动态分区存储管理方式及其实现过程的了解。 2.设计内容 1)用C语言分别实现采取最佳适应算法的动态分辨别配过程alloc()和回收过程free()。其中,空闲分区通过空闲分区链表来管理,在进行内存分派时,系统优先使用空闲区低端的空间。 2)假设初始状态如下,可用的内存空间为640KB,并有下列的祈求序列; 作业1申请130KB 作业2申请60KB 作业3申请100KB 作业2释放60KB 作业4申请200 KB 作业3释放100 KB 作业1释放130 KB 作业5申请140 KB 作业6申请60 KB 作业7申请50KB 作业6释放60 KB

15、 请采取最佳适应算法进行内存块的分派和回收,同时显示内存块分派和回收后空闲内存分区链的情况。 题目十一:最坏适应算法的动态分辨别配方式模拟 1.设计目标 了解动态分辨别配中使用的数据结构和分派算法,并深入加深对动态分区存储管理方式及其实现过程的了解。 2.设计内容 1)用C语言分别实现采取最坏适应算法的动态分辨别配过程alloc()和回收过程free()。其中,空闲分区通过空闲分区链表来管理,在进行内存分派时,系统优先使用空闲区低端的空间。 2)假设初始状态如下,可用的内存空间为640KB,并有下列的祈求序列; 作业1申请130KB 作业2申请60KB 作业3申请100K

16、B 作业2释放60KB 作业4申请200 KB 作业3释放100 KB 作业1释放130 KB 作业5申请140 KB 作业6申请60 KB 作业7申请50KB 作业6释放60 KB 请采取最坏适应算法进行内存块的分派和回收,同时显示内存块分派和回收后空闲内存分区链的情况。 题目十二: 进程调度模拟算法 1.设计目标 通过算法的模拟加深对进程概念和进程调度过程的了解,掌握进程状态之间的切换,同时掌握进程调度算法的实现措施和技巧。 2.设计内容 (1) 用C语言来实现对N个进程采取动态优先权优先算法的进程调度。 (2) 每个用来标识进程的进程控制块PCB用结构

17、来描述,包括如下字段: l 进程标识数ID; l 进程优先数PRIORITY,并要求优先数越大的进程,其优先权越高; l 进程已占用的CPU时间CPUTIME; l 进程还需占用的CPU时间ALLTIME。当进程运行完成时,ALLTIME变为0; l 进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,进程将进入阻塞状态; l 进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等候BLOCKTIME个时间片后,进程将转换成就绪状态; l 进程状态STATE; l 队列指针NEXT,用来将PCB排成队列。 (3) 优先数变化的标准: l 进

18、程在就绪队列中呆一个时间片,优先数增加1; l 进程每运行一个时间片,优先数减3。 (4) 假设在调度前,系统中有5个进程,它们的初始状态如下: ID 0 1 2 3 4 PRIORITY 9 38 30 29 0 CPUTIME 0 0 0 0 0 ALLTIME 3 3 6 3 4 STARTBLOCK 2 -1 -1 -1 -1 BLOCKTIME 3 0 0 0 0 STATE READY READY READY READY READY (5) 为了清楚地观测进程的调度过程,程序应将每个时间片内的进程的情况显示出来,参考的详细格式如下: RUNN

19、ING PROG: i READY_QUEUE:->id1->id2 BLOCK_QUEUE:->id3->id4 =============================================== ID 0 1 2 3 4 PRIORITY P0 P1 P2 P3 P4 CPUTIME C0 C1 C2 C3 C4 ALLTIME A0 A1 A2 A3 A4 STARTBLOCK T0 T1 T2 T3 T4 BLOCKTIME B0 B1 B2 B3 B4 STATE S0 S1 S2 S3 S4 题目十三:祈求调页存储管理方

20、式的模拟1 1.设计目标 通过对页面、页表、地址转换和页面置换过程的模拟,加深对祈求调页系统的原理和实现过程的了解。 2.设计内容 1)假设每个页面中可存储10条指令,分派给作业的内存块数为4。 2)用c语言模拟一个作业的执行过程,该作业共有320条指令,即它的地址空间为32页,目前它的所有页都尚未调入内存。在模拟过程中,假如所访问的指令已在内存,则显示其物理地址,并转下一条指令。假如所访问的指令尚未装入内存,则发生缺页,此时需统计缺页的次数,并将对应页调入内存。假如4个内存块均已装入该作业,则需进行页面置换,最后显示其物理地址,并转下一条指令。 在所有320指令执行完成后

21、请计算并显示作业运行过程中发生的缺页率。 3)置换算法:采取先进先出(FIFO)置换算法。 提示: (1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述标准生成: ① 50%的指令是次序执行的; ② 25%的指令是均匀分布在前地址部分; ③ 25%的指令是均匀分布在后地址部分; 详细的实行措施是: ① 在[0,319]的指令地址之间随机选用一起点m; ② 次序执行一条指令,即执行地址为m+1的指令; ③ 在前地址[0,m+1]中随机选用一条指令并执行,该指令的地址为m′; ④ 次序执行一条指令,其地址为m′+1的指令; ⑤ 在后地址[m′+

22、2,319]中随机选用一条指令并执行; ⑥ 重复上述步骤①~⑤,直到执行320次指令。 (2)将指令序列变换为页地址流 ① 设页面大小为1K; ② 用户内存容量为4页到32页; ③ 用户虚存容里为32K。 在用户虚存中,按每K存储10条指令排列虚存地址,即320条指令在虚存中的存储方式为: 第0条~第9条指令为第0页(对应虚存地址为[0,9]); 第10条~第19条指令为第1页(对应虚存地址为[10,19]); …… …… 第310条~第319条指令为第31页(对应虚存地址为[310,319])。 按以上方式,用户指令可组成32页。 (3)计算先进先出(FIFO)算法

23、在不一样内存容量下的命中率。 其中,命中率=1-页面失效次数/页地址流长度 题目十四:祈求调页存储管理方式的模拟2 1.设计目标 通过对页面、页表、地址转换和页面置换过程的模拟,加深对祈求调页系统的原理和实现过程的了解。 2.设计内容 1)假设每个页面中可存储10条指令,分派给作业的内存块数为4。 2)用C语言模拟一个作业的执行过程,该作业共有320条指令,即它的地址空间为32页,目前它的所有页都尚未调入内存。在模拟过程中,假如所访问的指令已在内存,则显示其物理地址,并转下一条指令。假如所访问的指令尚未装入内存,则发生缺页,此时需统计缺页的次数,并将对应页调入内存

24、假如4个内存块均已装入该作业,则需进行页面置换,最后显示其物理地址,并转下一条指令。 在所有320指令执行完成后,请计算并显示作业运行过程中发生的缺页率。 3)置换算法:最近最久未使用(LRU)算法。 提示: (1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述标准生成: ① 50%的指令是次序执行的; ② 25%的指令是均匀分布在前地址部分; ③ 25%的指令是均匀分布在后地址部分; 详细的实行措施是: ① 在[0,319]的指令地址之间随机选用一起点m; ② 次序执行一条指令,即执行地址为m+1的指令; ③ 在前地址[0,m+1]

25、中随机选用一条指令并执行,该指令的地址为m′; ④ 次序执行一条指令,其地址为m′+1的指令; ⑤ 在后地址[m′+2,319]中随机选用一条指令并执行; ⑥ 重复上述步骤①~⑤,直到执行320次指令。 (2)将指令序列变换为页地址流 ① 设页面大小为1K; ② 用户内存容量为4页到32页; ③ 用户虚存容里为32K。 在用户虚存中,按每K存储10条指令排列虚存地址,即320条指令在虚存中的存储方式为: 第0条~第9条指令为第0页(对应虚存地址为[0,9]); 第10条~第19条指令为第1页(对应虚存地址为[10,19]); …… …… 第310条~第319条指令为第

26、31页(对应虚存地址为[310,319])。 按以上方式,用户指令可组成32页。 (3)计算最近最少使用(LRU)算法在不一样内存容量下的命中率。 其中,命中率=1-页面失效次数/页地址流长度 题目十五:祈求调页存储管理方式的模拟3 1.设计目标 通过对页面、页表、地址转换和页面置换过程的模拟,加深对祈求调页系统的原理和实现过程的了解。 2.设计内容 1)假设每个页面中可存储10条指令,分派给作业的内存块数为4。 2)用C语言模拟一个作业的执行过程,该作业共有320条指令,即它的地址空间为32页,目前它的所有页都尚未调入内存。在模拟过程中,假如所访问的指令已在

27、内存,则显示其物理地址,并转下一条指令。假如所访问的指令尚未装入内存,则发生缺页,此时需统计缺页的次数,并将对应页调入内存。假如4个内存块均已装入该作业,则需进行页面置换,最后显示其物理地址,并转下一条指令。 在所有320指令执行完成后,请计算并显示作业运行过程中发生的缺页率。 3)置换算法:最佳置换(OPT)算法。 提示: (1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述标准生成: ① 50%的指令是次序执行的; ② 25%的指令是均匀分布在前地址部分; ③ 25%的指令是均匀分布在后地址部分; 详细的实行措施是: ① 在[0,319]的

28、指令地址之间随机选用一起点m; ② 次序执行一条指令,即执行地址为m+1的指令; ③ 在前地址[0,m+1]中随机选用一条指令并执行,该指令的地址为m′; ④ 次序执行一条指令,其地址为m′+1的指令; ⑤ 在后地址[m′+2,319]中随机选用一条指令并执行; ⑥ 重复上述步骤①~⑤,直到执行320次指令。 (2)将指令序列变换为页地址流 ① 设页面大小为1K; ② 用户内存容量为4页到32页; ③ 用户虚存容里为32K。 在用户虚存中,按每K存储10条指令排列虚存地址,即320条指令在虚存中的存储方式为: 第0条~第9条指令为第0页(对应虚存地址为[0,9]); 第

29、10条~第19条指令为第1页(对应虚存地址为[10,19]); …… …… 第310条~第319条指令为第31页(对应虚存地址为[310,319])。 按以上方式,用户指令可组成32页。 (3)计算最佳置换(OPT)算法在不一样内存容量下的命中率。 其中,命中率=1-页面失效次数/页地址流长度 题目十六:祈求调页存储管理方式的模拟4 1.设计目标 通过对页面、页表、地址转换和页面置换过程的模拟,加深对祈求调页系统的原理和实现过程的了解。 2.设计内容 1)假设每个页面中可存储10条指令,分派给作业的内存块数为4。 2)用C语言模拟一个作业的执行过程,该作

30、业共有320条指令,即它的地址空间为32页,目前它的所有页都尚未调入内存。在模拟过程中,假如所访问的指令已在内存,则显示其物理地址,并转下一条指令。假如所访问的指令尚未装入内存,则发生缺页,此时需统计缺页的次数,并将对应页调入内存。假如4个内存块均已装入该作业,则需进行页面置换,最后显示其物理地址,并转下一条指令。 在所有320指令执行完成后,请计算并显示作业运行过程中发生的缺页率。 3)置换算法:最少访问(LFU)算法。 提示: (1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述标准生成: ① 50%的指令是次序执行的; ② 25%的指令是均匀分

31、布在前地址部分; ③ 25%的指令是均匀分布在后地址部分; 详细的实行措施是: ① 在[0,319]的指令地址之间随机选用一起点m; ② 次序执行一条指令,即执行地址为m+1的指令; ③ 在前地址[0,m+1]中随机选用一条指令并执行,该指令的地址为m′; ④ 次序执行一条指令,其地址为m′+1的指令; ⑤ 在后地址[m′+2,319]中随机选用一条指令并执行; ⑥ 重复上述步骤①~⑤,直到执行320次指令。 (2)将指令序列变换为页地址流 ① 设页面大小为1K; ② 用户内存容量为4页到32页; ③ 用户虚存容里为32K。 在用户虚存中,按每K存储10条指令排列虚存

32、地址,即320条指令在虚存中的存储方式为: 第0条~第9条指令为第0页(对应虚存地址为[0,9]); 第10条~第19条指令为第1页(对应虚存地址为[10,19]); …… …… 第310条~第319条指令为第31页(对应虚存地址为[310,319])。 按以上方式,用户指令可组成32页。 (3)计算最少访问(LFU)算法在不一样内存容量下的命中率。 其中,命中率=1-页面失效次数/页地址流长度 题目十七:祈求调页存储管理方式的模拟5 1.设计目标 通过对页面、页表、地址转换和页面置换过程的模拟,加深对祈求调页系统的原理和实现过程的了解。 2.设计内容

33、 1)假设每个页面中可存储10条指令,分派给作业的内存块数为4。 2)用C语言模拟一个作业的执行过程,该作业共有320条指令,即它的地址空间为32页,目前它的所有页都尚未调入内存。在模拟过程中,假如所访问的指令已在内存,则显示其物理地址,并转下一条指令。假如所访问的指令尚未装入内存,则发生缺页,此时需统计缺页的次数,并将对应页调入内存。假如4个内存块均已装入该作业,则需进行页面置换,最后显示其物理地址,并转下一条指令。 在所有320指令执行完成后,请计算并显示作业运行过程中发生的缺页率。 3)置换算法:最近最不常常使用(NRU)算法。 提示: (1)通过随机数产生

34、一个指令序列,共320条指令。指令的地址按下述标准生成: ① 50%的指令是次序执行的; ② 25%的指令是均匀分布在前地址部分; ③ 25%的指令是均匀分布在后地址部分; 详细的实行措施是: ① 在[0,319]的指令地址之间随机选用一起点m; ② 次序执行一条指令,即执行地址为m+1的指令; ③ 在前地址[0,m+1]中随机选用一条指令并执行,该指令的地址为m′; ④ 次序执行一条指令,其地址为m′+1的指令; ⑤ 在后地址[m′+2,319]中随机选用一条指令并执行; ⑥ 重复上述步骤①~⑤,直到执行320次指令。 (2)将指令序列变换为页地址流 ① 设页面大

35、小为1K; ② 用户内存容量为4页到32页; ③ 用户虚存容里为32K。 在用户虚存中,按每K存储10条指令排列虚存地址,即320条指令在虚存中的存储方式为: 第0条~第9条指令为第0页(对应虚存地址为[0,9]); 第10条~第19条指令为第1页(对应虚存地址为[10,19]); …… …… 第310条~第319条指令为第31页(对应虚存地址为[310,319])。 按以上方式,用户指令可组成32页。 (3)计算最近最不常常使用(NRU)算法在不一样内存容量下的命中率。 其中,命中率=1-页面失效次数/页地址流长度 题目十八: P、V操作及进程同时的实现1

36、 1.设计目标 掌握信号量通信方式的一般措施,了解系统实现“阻塞”和“唤醒”功效的措施和技巧。同时掌握进程同时和互斥的概念及实现技术。 2.设计内容 1)用语言编程实现P、V原语并用P、V原语描述如下剪发师-用户问题: 有一个剪发师,一把剪发椅和n把提供应等候剪发的用户座的椅子。假如没有用户,则剪发师便在剪发椅子上睡觉;当第一个用户到来时,必须唤醒该剪发师进行剪发;假如剪发师正在剪发时又有用户到来,则假如有空椅子可坐,他就坐下来等候,假如没有空椅子,他就离开剪发店。 为剪发师和用户各编一段程序描述他们的行为,要求不能带有竞争条件,试用P、V操作实现。 2)试验要求及阐明 ① 定

37、义信号量并将P、V操作定义为带参数 ② 以输出字符串的形式表示剪发师和用户的行为。 ③ 设计适当的数据结构和函数描述用户等候队列和“唤醒”剪发师剪发过程,以及没有用户时的“阻塞”剪发师过程。 ④ 编程时需考虑剪发师和用户对应的程序是并发操作的。 提示:可利用随机函数模拟并发操作。 ⑤ 剪发师和用户两个进程各自调用一个函数模拟生产及消费的操作。 题目十九: P、V操作及进程同时的实现2 1.设计目标 掌握信号量通信方式的一般措施,了解系统实现“阻塞”和“唤醒”功效的措施和技巧。同时掌握进程同时和互斥的概念及实现技术。 2.设计内容 用语言编程实现P、V原语并用P、V原

38、语哲学家就餐问题: 为每个哲学家各编一段程序描述他们的行为,试用P、V操作实现。 题目二十:银行家算法 1.设计目标 1)了解多道程序系统中,多个进程并发执行的资源分派。 2)掌握银行家算法,了解资源在进程并发执行中的资源分派情况。 3)掌握预防死锁的措施,系统安全状态的基本概念。 2.设计内容 设计一个n个并发进程共享m个系统资源的程序以实现银行家算法。要求: 1) 简单的选择界面; 2) 能显示目前系统资源的占用和剩余情况。 3) 为进程分派资源,假如进程要求的资源不小于系统剩余的资源,不与分派并且提示分派不成功; 4) 撤消作业,释放资源。 编写和调试一个系

39、统动态分派资源的简单模拟程序,观测死锁产生的条件,并采取适当的算法,有效地预防和防止死锁的发生。 银行家算法分派资源的标准是:系统掌握每个进程对资源的最大需求量,当进程要求申请资源时,系统就测试该进程尚需资源的最大量,假如系统中现存的资源数不小于或等于该进程尚需求资源最大量时,就满足进程的目前申请。这么就能够确保最少有一个进程也许得到所有资源而执行到结束,然后偿还它所占有的所有资源供其他进程使用。 银行家算法中的数据结构 (1)可利用资源向量Available(一维数组)      是一个含有m个元素,其中的每一个元素代表一类可利用的资源数目,其初值是系统中所配备的该类所有可用资源数目

40、假如Available[j]=k, 表示系统中既有Rj类资源k个。 (2)最大需求矩阵Max(二维数组) m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。假如Max(i,j)=k, 表示进程i需要Rj类资源的最大数目为k。 (3)分派矩阵Allocation(二维数组) m的矩阵,它定义了系统中每一类资源目前已分派给每一进程的资源数。假如Allocation(i,j)=k, 表示进程i目前已分得Rj类资源k个。 (4)需求矩阵Need (二维数组)      是一个含有n*m的矩阵,用以表示每一个进程尚需的各类资源数。假如Need(i,j)=k, 表示进程i还

41、需要Rj类资源k个,方能完成其任务。 Need(i,j)= Max(i,j)-Allocation(i,j)  题目二十一:SPOOLING技术 1.设计目标 设计一个SPOOLING假脱机输出的模拟程序,愈加好地了解和掌握SPOOLING技术的实现原理。 2.设计内容 SPOOLING技术广泛地应用于各种计算机的I/O。该技术通过预输出和缓输出的措施,使用共享设备的一部分来模拟独占设备。 1)设计一个实现SPOOLING技术的进程 设计一个SPOOLING输出服务进程、一个SPOOLING输出进程、两个用户祈求进程。用户进程祈求输出一系列信息,调用输出服务进程,由输出服务

42、进程将该信息送入输出井。等候SPOOLING进程进行输出。SPOOLING输出进程工作时,依照祈求块统计的各进程要输出的信息将其输出。 2)设计进程调度算法 进程调度采取随机算法,两个祈求输出的用户进程的调度概率各为45%,SPOOLING输出进程为10%,这由随机数发生器产生的随机数来模拟决定。 1) 进程状态 2) 进程基本状态有可执行、等候、结束三种。可执行状态就是进程正在运行或等候调度的状态;等候状态又分为等候状态1、等候状态2、等候状态3。 状态变化的条件为: ① 进程执行完成时,置为“结束”态。 ② 服务程序在将输出信息送输出井时,如发觉输出井已满,将调用进程置为“等

43、候状态1”。 ③ SPOOLING进程在进行输出时,若输出井空,则进入“等候状态2”。 ④ SPOOLING进程输出一个信息块后,应立即释放该信息块所占的输出井空间,并将正在等候输出的进程置为“可执行状态”。 ⑤ 服务程序在输出信息到输出井并形成输出祈求信息块后,若SPOOLING进程处在等候态,则将其置为“可执行态”。 ⑥ 当用户进程申请祈求输出块时,若没有可用祈求时,调用进程进入“等候状态3”。 题目二十二:进程间通信 1.设计目标 Linux系统的进程通信机构(IPC)允许在任意进程间大批量的互换数据。本试验的目标是了解和熟悉Linux支持的通信机制、共享存储区机制及信

44、号量机制。 2.设计内容 (1) 共享存储区的创建,链接和断开 (2) 消息的创建,发送和接收 (3) 编写程序1,实现利用共享存储区进行进程通信。使用系统调用shmget(),shmat(), shmdt()及shmctl()编制一长度为1k的消息发送和接收程序。 (4) 编写程序2,实现利用消息队列进行进程通信。使用系统调用shmget(),shmat(), shmdt()及shmctl()编制一长度为1k的消息发送和接收程序。 <程序设计提示> (1) 为了便于操作和观测成果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。 (2

45、 SERVER端建立一个Key为75的共享区,并将第一个字节置为-1,作为数据空的标志,等候其他进程发来的消息。当该字节的值发生变化时,表示收到了消息,进行处理。然后再次把它的值设为-1。假如遇到的值为0,则视为结束信号,取消该队列,并退出SERVER。SERVER每接收到一个消息后显示一句“(server)received”。 (3) CLIENT端使用Key为75的共享区,当共享取得第一个字节为-1时,SERVER端空闲,可发送祈求。CLIENT随即填入9到0。期间等候SERVER端再次空闲。进行完这些操作后,CLIENT退出。CLIENT每发送一条信息后显示一句“(client)se

46、nt”。 (4) 父进程在SERVER和CLIENT均退出后结束。 题目二十三:进程的管道通信和软中断通信 1.设计目标 加深对进程概念的了解,明确进程和程序的区分。深入认识并发执行的实质,并了解Linux系统中进程通信的基本原理。 2.设计内容 (1)编制一段程序,实现进程的管道通信。 使用系统调用pipe()建立一条管道线,两个子进程P1和P2分别向管道各写一句话: Child 1 is sending a message! Child 2 is sending a message! 而父进程则从管道中读出来自两个子进程的信息,显示在屏幕上。 要求父进程先接收子进

47、程P1发来的消息,再接收子进程P2发来的消息。 (2)编制一段程序,实现进程的软中断通信。 使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号(即按DEL键);当捕捉到中断信号后,父进程用系统调用Kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止: Child 1 is killed by parent! Child 2 is killed by parent! 父进程等候两个子进程终止后,输出下列信息后终止。 Parent is killed! 题目二十四:linux进程与线程通讯 1.设计目标:

48、深刻了解线程和进程的概念,掌握线程和进程在组成成份上的差异以及与其相适应的通信方式和应用目标。 2.设计内容: 以Linux系统进程和线程机制为背景,掌握fork()和clone()系统调用的形式和功效以及与其相适应的高级通信方式。由fork派生的子进程之间通过pipe通信,由clone创建的线程之间通过共享内存通信。 以生产者-消费者为例,通过试验了解fork和clone两个系统调用的区分。程序要求能够创建4个进程或线程,其中包括两个生产者和两个消费者,生产者和消费者之间能够传递数据。 题目二十五:动态不等长存储资源分派算法 1.设计目标: 了解动态异常存储分区资源管理,

49、掌握所需数据结构和管理程序,了解各种存储分派算法的优缺陷。 2.设计内容: (1)分析Unix最先适应(first fit,ff)存储分派算法。即map数据结构、存储分派函数ma lloc()和存储释放函数mfree(),找出与算法有关的成份。 (2)修改上述算法有关成份,使其分别体现BF(best fit,最佳适应)分派标准WF(worst fit,最坏适应)分派标准。 题目二十六:编程演示三种存储管理方式的地址换算过程 1.设计目标: 了解页式、段式、段页式的逻辑地址向物理地址的转换过程。了解重定位的含义。 要求演示正确、清楚,编程所用工具不限 2.设计内容: 编程实

50、现演示页式、段式、段页式的地址转换过程 1、分页方式的地址换算 2、分段方式的地址换算 3、段页式的地址换算 题目二十七:编程模拟多进程共享临界资源 1.设计目标:了解多进程共享临界资源的原理,并编程实现 2.设计内容: 要求产生3 个进程: (1) 两个进程模拟需要进入临界区的用户进程,当需要进入临界区时,显示: “进程x祈求进入临界区…”,同时向管理进程提出申请;申请返回,表示进入了临界区。在临界区中等候一段随机时间,并显示:“进程x 正在临界区…”;当初间结束,显示:“进程x 退出临界区…”,同时向管理进程提出退出申请;当申请返回,显示:“进程x 已退出临界区。”

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服