操作系统课程设计题目与要求_第1页
操作系统课程设计题目与要求_第2页
操作系统课程设计题目与要求_第3页
操作系统课程设计题目与要求_第4页
操作系统课程设计题目与要求_第5页
免费预览已结束,剩余32页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统课程设计题目与要求课程设计要求:1、 可以依据教材中的算法自行选题,也可以从下面给出的题目中选题。要求每两名同学之间课程设计内容应该不同。如果有选择相同题目的小组,则设计方案不同,否则视为抄袭。(可以两人一组,也可以一人一题)。选题确定后,不得更改。2、 分析设计要求,给出解决方案,建立必要的数据结构,然后设计总体流程(包括界面)、详细设计必要的算法,并最终显示出结果。基于Windows或Linux操作系统都可以,用何种编程语言都可以。3、 提交设计报告,包括设计要求、设计思想及流程、设计所涉及的主要数据结构、程序清单、运行结果、设计心得、参考资料等。4、 最终成绩决定因素=设计质量(

2、30)+设计报告(30)+答辩(40)5、 课程设计参考评分内容:设计思想说明;数据结构的说明;各模块的算法流程图;程序清单:注意加注释(包含关键字、方法、变量等),在每个模块前加注释;体会,总结及体会建议。6、设计报告内容与他人相同者无成绩。7、 要求同学们在上机前,尽量多做准备,编写好程序代码,上机时进行修改调试,以提高上机效率。8、 第15周周末提交设计报告,并进行答辩。地点在机房。不允许超过时间。、设计题目1 .睡眠理发师问题(1人)目的:了解信号量机制,了解并掌握进程同步和互斥机制,熟悉信号量的操作函数,利用信号量实现对共享资源的控制。设计要求:(1)编写程序实现理发师与顾客进程的同

3、步。问题描述:这是一种经典的IPC问题,理发店有一位理发师,一把理发椅和n把用来等候理发的椅子。如果没有顾客,则理发师在理发椅上睡觉,顾客理来时,如理发师闲则理发,否则如有空椅则坐等,没有空椅则离开,编写程序实现理发师和顾客程序,实现进程控制,要求不能出现竞争。(2)将(1)题中问题修改为有两位理发师,设计程序实现同步控制。问题提示:可以用一个变量waitting来记录等候理发的顾客数,另使用三个信号量:用来记录等候理发的顾客数customers;用来记录理发师是否空闲的信号量barbers,一个用于互斥访问waitting变量的mutex.。2 .进程调度模拟程序(1人)操作系统课程设计指导

4、目的:深入掌握进程调度的概念原理和实现方法。设计要求:编写一个进程调度程序,允许多个进程并行执行。进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)先来先服务算法、按时间片轮转调度算法,最终总结该算法的优缺点,写出设计体会。每个进程有一个进程控制块(PCB)表示,进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。进程的优先数及需要的运行时间可以事先人为指定(也可以由随机数产生)。进程的到达时间为输入进程的时间。进程的运行时间以时间片为单位进行计算。每个进程的状态可以是就绪W(wait)、运行R(run)或完成F(fin

5、ish)三种状态之一。3 .进程调度模拟程序2(1人)目的:深入掌握进程调度的概念原理和实现方法。设计要求:编写一个进程调度程序,允许多个进程并行执行。进程调度算法:采用最高优先数优先与按时间片轮转调度结合算法,最终总结该算法的优缺点,写出设计体会。如果运行下个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进行已占用CPU时间还未达到所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。重复以上过程,直到所

6、有进程都完成为止。4 .读者与写者问题(进程同步问题)(1人)目的:了解进程同步的概念,理解信号量机制的原理,掌握运用信号量解决进程同步问题的方法,进而学会运用进程的同步与互斥。设计要求:编程模拟读者与写者问题,要求显示结果。问题描述:(1)多个进程共享一个文件,其中只读文件的称之为读者,其余只写文件的称为写者。读者可以同时读,但是写者只能独立写。(2)对(1)修改,使得它对写者优先,即一旦有写者到,后续的读者都必须等待,而无论是否有读者在读文件。5 .模拟文件管理系统(1人)目的:深入了解文件管理系统,初步掌握文件管理系统的实现方法。设计要求:编写一程序,模拟一个简单的文件管理系统。树型结构

7、,目录下可以是目录,也可以是文件。操作系统课程设计指导在此文件管理系统,可实现的操作有:改变目录:格式:cd目录名显示目录:格式:dir目录名创建目录:格式:md目录名删除目录:格式:rd目录名新建文件:格式:edit文件名删除文件:格式:del文件名退出文件系统:exit实现参考:(1) 文件系统采用二叉树型存储结构,结点结构如下:StructFileNode(CharfilenameFILENAME_LEN;文件名/目录名Intisdir;/目录、文件的识别标志Inti_nlink;/文件链接数Intadr;/文件的地址StructFileNode*parent,*child;/指向父亲的

8、指针和左孩子的指针StructFileNode*sibling_prev,*sibling_next;/指向前一个兄弟的指针和后一个兄弟的指针。(2) 目录名和文件名支持全路径名和相对路径名,路径名各分量间用“/”隔开(3) 功能具体描述:改变目录:改变当前工作目录,目录不存在是给出出错信息显示目录:显示指定目录下或当前目录下所有文件和一级目录(选做:带/s参数的dir命令,显示所有子目录)创建目录:在指定路径或当前路径下创建指定目录。重名时给出出错信息。删除目录:删除指定目录下所有文件和子目录。要删目录不空时,要给出提示是否要删除。创建文件:创建指定名字的文件,只要创建表示文件的节点即可,内

9、容及大小不考虑。删除文件:删除指定文件,不存在时给出出错信息。退出文件系统:exit(4) 总体流程:初始化文件目录输出提示符,等待接受命令,分析键入的命令;操作系统课程设计指导对合法的命令,执行相应的处理程序,否则输出错误信息,继续等待新命令。直到键入exit退出为止。6 .内存的申请与释放(1人)目的:了解操作系统内存分配的算法。设计要求:(1) 定义一个自由存储块链表,按块地址排序,表中记录块的大小。当请求分配内存时,扫描自由存储块链表,址到找到一个足够大的可供分配的内存块,若找到的块大小正好等于所请求的大小时,就把这一块从自由链表中取下来,返回给申请者。若找到的块太大,即对其分割,并从

10、该块的高地址部分往低地址部分分割,取出大小合适的块返回给申请者,余下的低地址部分留在链表中。若找不到足够大的块,就从操作系统中请求另外一块足够大的内存区域,并把它链接到自由块链表中,然后再继续搜索。释放存储块也要搜索自由链表,目的是找到适当的位置将要释放的块插进去,如果被释放的块的任何一边与链表中的某一块临接,即对其进行合并操作,直到没有合并的临接块为止,这样可以防止存储空间变得过于零碎。(2) 空闲区采用分区说明表的方法实现(1)中的功能。要求同上。7 .Windows磁盘直接读写实验(1人)目的:了解磁盘设备编程的特点。设计要求:通过本实验了解在windows系统中如何直接使用磁盘的读写功

11、能;所编应用程序能够响应用户指定的读写磁盘扇区的请求,也能提供查看磁盘相关参数的功能。技术的关键是使用了windows提供的API(应用程序接口)来实现所要求的功能。用户可以利用API进行底层的磁盘操作。相关知识:(下列函数的详细使用方法参看VC+的MSDN文档)(1) CreateFile:用来创建或者打开一个文件、管道、磁盘设备等,它返回一个句柄用于以后对这信对象的访问。(2) DeviceControl:本API直接向相应设备的驱动程序发出指令,以完成在函数参数中所指定的动作。(3) WriteFile:本API用于向文件中写入数据,写入操作可以采用同步方式或者异步方式,写入操作从文件指

12、针处开始,写操作后会被相应调整。磁盘设备被当作文件看待。(4) ReadFile:本API用于文件中读出数据,读出操作从文件指针处开始,文件指针在读操作后会被相应调整。用法同写文件函数相似。(5) SetFilePointer:用于移动一个打开的文件中的读写指针。8 .处理机调度(1人)操作系统课程设计指导目的:加深作业概念的理解,深入了解多道程序设计系统中如何组织作业、管理作业和调度作业,加深对作业调度算法的理解。设计要求:采用短作业优先调度算法、先来先服务调度算法和最高响应比调度算法实现处理机对作业的调度。作业调度算法的关键是在已有的作业后备队列上按照一定的规则选择一个作业,如何在已有的数

13、据结构上进行操作的问题。9 .页面置换算法(1人)目的:深入掌握内存调度算法的概念原理和实现方法。设计要求:编写程序实现:(1) 先进先出页面置换算法(FIFO)(2) 最近最久未使用页面置换算法(LRU)(3) 最佳置换页面置换算法(OPT)专题:设计一个虚拟存储区和内存工作区,编程序演示以上三种算法的具体实现过程,并计算访问命中率。演示页面置换的三种算法。通过随机数产生一个指令序列,将指令序列转换成为页地址流。计算并输出各种算法在不同内存容量下的命中率。10 .售票员与乘客(信号量操作)(1人)目的:了解进程同步的概念,理解信号量机制的原理,掌握运用信号量解决进程同步问题的方法,进而学会运

14、用进程的同步与互斥。设计要求:编程序模拟车站售票厅内进程同步问题,售票厅任何时刻最多可容纳20名购票者进入,否则需要在外面等待。每个购票者可看成一个进程。11 .生产者一消费者问题(1人)目的:掌握信号的使用方法和PV操作的定义,掌握使用PV操作实现进程之间同步与互斥的方法,加深对进程同步互斥概念的理解。设计要求:设计一程序,由一个进程创建三个子进程,三个子进程一个是生产者进程,两个是消费者进程,父子进程都使用父进程创建的共享存储区进行通信,由生产者进程将一个数组中的十个数值发送到由5个缓冲区组成的共享内存中,两个消费者进程轮流接收并输出这十个数值,同时将两个消费者进程读出的数值进行累加求各和

15、。12 .驱动调度(1人)目的:掌握驱动调度算法的原理设计要求:模拟电梯调度算法,实现对磁盘的驱动调度。要求模拟设计一个驱动调度程序,观察驱动程序的动态运行过程。通过实验理解和掌握驱动调度的职能。操作系统课程设计指导通过输入一个01的数来确定函数执行“接受请求”命令,还是执行“驱动调度”命令。同时可以根据自已需要确定是否继续执行。调用数组对输入的进程进行存储,并运用循环进行显示同时对I/O请求列表进行初始化。运用电梯调度算法,对I/O列表中的磁盘请求进行调度,同时对I/O列表进行排序,调度完成后显示新的列表。13 .银行家算法(1人)目的:了解多道程序系统中,多个进程并发执行的资源分配。设计要

16、求:管理员可以把一定数量的作业供多个用户周转使用,为保证作业的安全,管理员规定:当一个用户对作业的最大需求量不超过管理员现有的资金就要接纳该用户;用户可以分期贷款,但贷款的总数不能超过最大需求量;当管理员现有的作业不能满足用户的所需数时,对用户的请求可以推迟支付,但总能使用户在有限的时间里得到请求。当用户得到所需的全部作业后,一定能在有限的时间里归还所有的作业。14 .交通信号灯模拟(1人)目的:了解信号量机制,了解并掌握进程同步和互斥机制,熟悉信号量的操作函数,利用信号量实现对共享资源的控制。设计要求:编程模拟交通信号灯的控制。问题描述:一个十字路口,共有四组红绿灯,每个路口的车辆都遵循“红

17、灯停,绿灯行”的原则,假设将每一台汽车都作为一个进程,请设计良好的机制,展示出合理的“十字路口交通管理”情况。车辆通行设定:路口宽度不限,对一个路口而言,只有当一辆车通过路口(越过对面路口的交通灯后),其后续车辆才能继续通过交通灯,车辆通过路口的时间可以固定,可以自行计算。进程的互斥:交通灯进程实际上是互斥的,即不能同时为红或者同时为绿。进程的消息通信或其通信方式:对车辆进程而言,每一个车辆在通过路口前,必须确认前面的车辆已经通过了路口。进程的调度:停留在一个路口的车辆,决定其前进或等候的因素是交通灯和前面车辆的状态,需要设计一个良好的进程调度机制来控制所有车辆的通行。15 .哲学家进餐问题(

18、1人)目的:通过实现哲学家进餐问题的互步,深入了解和掌握进程互斥的原理。设计要求:哲学家有N个,规定全体到齐后开始讨论,在讨论的间隙哲学家进餐,每人进餐时都需使用刀、叉合一把,所有哲学家刀和叉都拿到后才能进餐。哲学家的人数、餐桌上的布置自行设定,实现刀和叉的互斥使用算法的程序实现。16 .司机与售票员(信号量操作)(1人)操作系统课程设计指导目的:掌握信号的使用方法和PV操作的定义,掌握使用PV操作实现进程之间同步和互斥的方法,加深对进程同步互斥概念的理解。设计要求:设计程序模拟在公共汽车上,司机和售票员操作的同步。司机:启动车辆,正常行车,到站停车。售票员:上乘客,关车门,售票,开车门,下乘

19、客。用PV操作对其控制。17 .磁盘调度算法(1人)目的:了解磁盘管理的原理,掌握磁盘调度种算法。设计要求:编程序实现下述磁盘调度算法,并求出每种算法的平均寻道长度:要求设计主界面可以灵活选择算法,且以下算法都要实现。(1) 先来先服务算法(FCFS)(2) 最短寻道时间优先算法(SSTF)(3) 扫描算法(SCAN)(4) 循环扫描算法(CSCAN)18 .收银员与顾客问题(信号量操作)(1人)目的:了解信号量机制,了解并掌握进程同步和互斥机制,熟悉信号量的操作函数,利用信号量实现对共享资源的控制。设计要求:编程模拟下面同步问题:在某超市有下收银员,且同时最多允许有n个顾客购物,我们可以将顾

20、客和收银员看成是两类不同的进程,且工作流程如下图所示。为了利用PV操作正确地协调这两类进程之间的工作,设置了三个信号量S1、S2和Sn,且初值分别为0、0、和n。19 .信号量白操作2(1人)目的:了解信号量机制,了解并掌握进程同步和互斥机制,熟悉信号量的操作函数,利用信号量实现对共享资源的控制。设计要求:通过对windows系统的内核同步对象mutexes和semaphores的使用来实现进程同步的控制。利用CreateSemaphoreWaitForSingleObject等函数检测内核同步对象的状态。20 .信号量的操作实验目的:了解信号量机制,了解并掌握进行同步和机制,熟悉信号量的操作

21、函数,利用信号量实现对共享资源的控制。实验要求:通过对Windows系统的内核同步对象Mutexes和Semaphores的使用来实现进程同步的控制。利用CreateSemaphoreWaitForSingleObject等函数检测内核同步对象的状态。假设某宿舍楼有一共用浴室,学校颁布法令:当有一个女生正在使用浴室,则其他女生可以进入,但是男生不行,反之亦然。在每个浴室门上有一个滑动指示符号,表示当前处于以下三种可能状态之一:操作系统课程设计指导1 .空2 .有女生3 .有男生选用一种程序设计语言编写下面的过程:woman_wants_to_enter,man_wants_to_enter,w

22、oman_leaves,man_leaves.21 .进程间的通信(1人)目的:了解进程间通信的机制,实现进程的两种通信方式,多次执行,观察结果,并对两种通信方式进行比较。设计要求:利用系统提供的通信系统调用,进行一种方式的进程通信的程序设计,并对结果进行分析,同时了解另一种通信方式,将两种方式进行比较分析。(1) 消息的创建发送和接收使用系统调用msgget()、msgsnd()、msgrev()、msgctl()来编写长度为500字节的发送和接收程序。用一个程序先后创建两个子进程server和client,进行消息队列方式通信。由server建立消息队列,等待其他进程发来消息,当遇到类型为

23、1的消息,则作为通信结束的信号,取消消息队列,退出。Server每接收到一个消息显示在屏幕上。Client判断一个数据中的整数是否为素数,然后使用server建立的消息队列,将某数是否为素数的消息依次发送给server然后退出。Client每次发送时把消息显示在屏幕上。(2) 共享存储区的创建,附接和断接使用系统调用shmget(),shmat(),shmctl()编写一个与上面(1)中相同功能的程序。22 .虚拟文件系统的实现(1人)目的:过一个简单的多用户文件系统的设计,加深文件系统内部功能以及内部实现。设计要求:在Windows或者Linux下设计一个二级(或者树型)结构文件系统,要求至

24、少实现以下功能:login用户登录dir列出文件目录create创建文件del删除文件open打开文件close关闭文件read读文件write写文件cd进入子目录操作系统课程设计指导rd删除子目录md创建子目录设计提示:实现虚拟文件系统的一般思路是调用系统的文件创建(如c中的fopen函数的w方式即可)一个新文件,将此文件作为虚拟磁盘,在完成本设计要求的内容时,要求所生成的文件目录以及文件等内容都是存储在此磁盘中。23 .分时系统实现目的:了解计算机系统的启动过程,实模式和保护模式的区别,进程管理功能的具体实现。设计要求:(1)制作计算机启动盘。(2)实现由实模式进入到保护模式。(3)静态建

25、立几个进程,采用时间片轮转调度策略调度进程执行。24.苹果问题(1人)目的:了解信号量机制,了解并掌握进程同步和互斥机制,熟悉信号量的操作函数,利用信号量实现对共享资源的控制。设计要求:编程模拟实现这一问题的程序控制,分析处理过程,问题描述:桌子上有一只盘子,最多可容纳两个水果,每次只能放入或取出一个水果。爸爸专向盘子放苹果(apple),妈妈专向盘子中放桔子(orange);两个儿子专等吃盘子中的桔子,两个女儿专等吃盘子中的苹果。请用P、V操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。26 .设计一个虚拟存储区和内存工作区,编程序演示下述算法的具体实现过程,并计算访问命中率:1、先进

26、先出的算法(FIFO)2、最近最少使用算法(LRU)3、最佳淘汰算法(LFU)4、最少访问页面算法(NUR)5、最近最不经常使用算法(NUR)27 .编程序实现下述磁盘调度算法,并求出每种算法的平均寻道长度:1、先来先服务算法(FCFS)2、最短寻道时间优先算法(SSTF)3、扫描算法(SCAN)4、循环扫描算法(CSCAN)28 .编程序模拟银行家算法,要求能体现算法的全过程。操作系统课程设计指导29 .编程序模拟至少三种进程调度算法,要求能体现算法的全过程。(1) :时间片轮转调度算法模拟要求:用实验方法模拟单处理机系统的进程调度,并采用时间片轮转调度算法作为进程调度算法。具体任务:1、理

27、解掌握进程调度实现所涉及到的主要问题:如何组织进程、如何实现处理机调度。进程控制块的作用和结构,进程控制块的链表组织。进程调度程序包含从进程就绪队列选择并摘取进程、给该进程分配处理机。2、设计进程控制块相关数据结构,进程状态跃迁的相关模拟;3、实现时间片进程调度算法模拟程序设计、编码及调试。题目2:静态优先级调度算法模拟要求:用实验方法模拟单处理机系统的进程调度,并采用静态优先级调度算法作为进程调度算法。具体任务:1、理解掌握进程调度实现所涉及到的主要问题:如何组织进程、如何实现处理机调度。进程控制块的作用和结构,进程控制块的链表组织。进程调度程序包含从进程就绪队列选择并摘取进程、给该进程分配

28、处理机。2、设计进程控制块相关数据结构,进程状态跃迁的相关模拟;10操作系统课程设计指导3、实现静态优先级调度算法模拟程序设计、编码及调试。题目3:最短剩余时间优先(动态优先)调度算法模拟要求:用实验方法模拟单处理机系统的进程调度,并采用最短剩余时间优先调度算法作为进程调度算法。具体任务:1、理解掌握进程调度实现所涉及到的主要问题:如何组织进程、如何实现处理机调度。进程控制块的作用和结构,进程控制块的链表组织。进程调度程序包含从进程就绪队列选择并摘取进程、给该进程分配处理机。2、设计进程控制块相关数据结构,进程状态跃迁的相关模拟;3、实现最短剩余时间优先调度算法模拟程序设计、编码及调试。题目4

29、作业调度设计1、目的本实验的目的是通过模拟作业调度算法的设计加深对作业管理基本原理的理解。2、内容在后备作业队列中,输入5个作业各自运行所需要的时间及存储空间。按先来先服务的原则进行调度,输出作业调度的顺序及等待的时间。按最短作业(即运行时间最短)优先的原则进行调度,输出作业调度的顺序及等待时间。按最小作业(即存储空间最小)优先的原则进行调度,输出作业调度的顺序及等待的时间。根据运行情况,比较各种算法。11操作系统课程设计指导在后备作业队列中,先输入5个作业各自运行所需要的时间,然后每输入一个作业的运行时间,就按响应比高优先的原则进行调度,直到输入作业的运行时间为0时,依次输出响应比高的其它作

30、业。3、要求对输入的每个作业必须编号,输出时要有作业序号、运行时间、存储空间及等待时间(包括总的等待时间);报告中的运行情况要包括输入和输出情况;比较上面几种调度算法的优劣。4、举例建主程序、三个子程序(例如:先来先服务FCFS最短作业优先LSFS最短运行时间作业优先SRFS、打印程序及原始数据。五个作业运行时间,建文件DATA.DAT其中包含numruntime、storage、waittime和Thewaitingtime。题目5存储管理页面置换算法模拟实现及比较1、目的通过请求页式管理中页面置换算法了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。2、内容通过随机数产生一个指令

31、序列,共320条指令。指令的地址按下述原则生成:一半的指令是顺序执行的;四分之一的指令是均匀分布在前地址部分;四分之一的指令是均匀分布在前地址部分。具体的实施办法是:12操作系统课程设计指导在0,319之间选一起点m;顺序执行一条指令,即m+1条;向前地址0,m-1中执行一条指令m';顺序执行一条指令,即m'+1条;向后地址(m'+2,319执行一条指令m''将指令序列变换成为页地址流。假设:页面大小为1KK用户实寸容量为4页到32页;用户虚存容量为32KB用户虚存容量32KB每1KB中放10条指令,共320条指令(0319)。其中09为0页,1019为

32、1页,310319为31页。使用不同的页面调度算法处理缺页中断,并计算不同实存容量下(432KB的命中率。先进先出算法(FIFO);最近最少使用算法(LRU;最佳淘汰算法(OPT;先淘汰最不常用的页地址;最少访问页面算法(LFU。命中率的算法为:命中率=缺页中断次数/页地址流长度3、要求实验报告中要有程序的详细框图,特别是有关算法本身的框图;实验报告中要有程序清单及执行的结果;对不同算法的性能进行评价。13操作系统课程设计指导题目6linux进程间同步与互斥1、目的调用linux系统调用实现多进程的创建、进程间同步与互斥。2、内容进程的创建编制一段程序,使用系统调用fork()创建两个子进程,

33、这样在此程序运行时,在系统中就有一个父进程和两个自进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,自进程分别显示字符b和字符co试观察、记录并分析屏幕上进程调度的情况。如果在程序中使用系统调用nice()来改变各进程的优先级,会出现什么现象?进程的控制修改已编制的程序,将每个进程输出一个字符修改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象。并分析出现问题的原因。进一步理解各个进程争夺临界资源的情况。如果在程序中使用系统调用locking()来给每一个进程加锁,可以实现进程之间的互斥,试观察并分析出现的现象。进程的软中断通讯编制一段程序,实现进程的软中断通讯:使用系统调

34、用fork()创建两个子进程;再使用系统调用。signal()让父进程捕捉键盘上来的中断信号(即按Del键);在捕捉到中断信号后,父进程用系统调用kill()向两个子进程发信号;子进程捕捉到信号后分别输出下列信息后终止:childprocess1iskilledbyparent!childprocess2iskilledbyparent!父进程等待两个子进程都终止以后,输出如下信息后终止parentprocessinkilled!3、要求14操作系统课程设计指导仔细观察设计中的各种现象及出现的问题。分析产生各种现象的原因。寻找解决问题的办法。报告应至少包括带注释的程序清单、输出的结果及对各种现

35、象的分析意见。题目7linux进程间管道通信实现生产者-消费者问题1、目的调用linux系统调用实现多进程的创建、进程间利用管道进行通信。2、内容进程的创建编制一段程序,使用系统调用fork()创建两个子进程,这样在此程序运行时,在系统中就有一个父进程和两个自进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,自进程分别显示字符b和字符co试观察、记录并分析屏幕上进程调度的情况。如果在程序中使用系统调用nice()来改变各进程的优先级,会出现什么现象?(2)进程的管道通讯编制一段程序,实现进程的管道通讯:使用系统调用pipe()建立一条管道线;两个子进程分别循环向这条管道写一句话:

36、child1issendingamessage!child2issendingamessage!而父进程则循环从管道中读出信息,显示在屏幕上。用管道进行通讯,实质上是一个多生产者单消费者的问题,必须考虑其中都有哪些同步和互斥,同时向管道输入端写的字节数必须和从输出端读的字节数一致,若不一致,则会出现什么问题。3、要求15操作系统课程设计指导仔细观察设计中的各种现象及出现的问题。分析产生各种现象的原因。寻找解决问题的办法。报告应至少包括带注释的程序清单、输出的结果及对各种现象的分析意见。题目8linux进程软中断实现进程间通信1、目的调用linux系统调用实现多进程的创建、进程间利用软中断进行通

37、信2、内容进程的创建编制一段程序,使用系统调用fork()创建两个子进程,这样在此程序运行时,在系统中就有一个父进程和两个自进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,自进程分别显示字符b和字符co试观察、记录并分析屏幕上进程调度的情况。如果在程序中使用系统调用nice()来改变各进程的优先级,会出现什么现象?(2)进程的“软中断”通信它可用于同一用户的进程之间通信。其方式是:一个进程通过系统调用kill(pid,sig)向同一用户的其它进程pid发送一个软中断信号:另一进程通过系统调用signal(sig,func)捕捉到信号sig后,执行予先约定的动作func,从而实现

38、这两个进程间的通信。发送信号kill(pid,sig),本进程将指定信号sig发送给指定进程pid,其中参数为pid进程号,pid与sig均为整数值。接收信号signal(sig,func),本进程接收到其它进程发送给它的信号后,完成指定的功能funcofunc一般是函数。在程序中系统调用sleep(second)用于进程的同步与互斥,自变量是暂停秒数。其功能是使现行进程暂停执行由自变量规定的秒数。类似的系统调用有pause(),它的功能是暂停执行本进程,等待kill发来的信号收到信号后再继续执行。16操作系统课程设计指导在特殊情况下,常用到如下语句signal(SIGINT,SIG_IGN)

39、。它表示遇到了中断信号SIGINT(按Del键)。本进程不做任何动作,即勿略该中断信号对本进程的影响。(3) 编写一个程序,实现进程的“软中断”通信。使用系统调用fork()创建2个子进程,再使用系统调用signal()让父进程捕捉键盘上来的中断信号(即按Del键),在捕捉到中断信号后,父进程用系统调用kill()向2个子进程发信号,子进程捕捉到信号后分别输出下列信息后终止:Childprocess1iskilledbyparent!Childprocess3iskilledbyparent!父进程等待2个子进程都终止后,输出如下信息后终止:Parentprocessiskilled!3、要求

40、仔细观察设计中的各种现象及出现的问题。分析产生各种现象的原因。寻找解决问题的办法。报告应至少包括带注释的程序清单、输出的结果及对各种现象的分析意见。题目9linux进程锁实现进程间同步与互斥1、目的调用linux系统调用实现多进程的创建、进程间利用软中断进行通信2、内容进程的创建编制一段程序,使用系统调用fork()创建两个子进程,这样在此程序运行时,在系统中就有一个父进程和两个自进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,自进程分别显示字符b和字符co试观察、记录并分析屏幕上进程调度的情况。(2)系统调用locking进程的控制17操作系统课程设计指导利用系统调用lock

41、ing(fd,mode,size),对指定文件的指定区域(由size指示)进行加锁或解锁,以实现进程的同步与互斥。其中fd是文件描述字;mode是锁定方一式,=1表示加锁,=0表示解锁,size是指定文件fd的指定区域,用0表示从当前位置到文件尾。常用程序段fd=open("a.out",2);i=fork();if(i=0)locking(fd,1,0);locking(fd,0,0);(3)编写一个程序,创建一个文件,文件名为lock.dat,同时父进程创建2个子进程,通过系统调用locking(),分别让2个子进程对文件加锁,再输出有关信息,然后解锁。3、要求仔细观察

42、设计中的各种现象及出现的问题。分析产生各种现象的原因。寻找解决问题的办法。报告应至少包括带注释的程序清单、输出的结果及对各种现象的分析意见。题目10利用进程同步与互斥实现吃水果问题1、目的调用linux系统调用实现多进程的创建、进程间同步与互斥解决具体问题2、内容18操作系统课程设计指导进程的创建编制一段程序,使用系统调用fork()创建两个子进程,这样在此程序运行时,在系统中就有一个父进程和两个自进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,自进程分别显示字符b和字符co试观察、记录并分析屏幕上进程调度的情况。(2)利用进程同步与互斥编程实现吃水果问题:桌上有一盘子,桌上有

43、一个空盘,允许存放一只水果,爸爸可向盘内放苹果,妈妈可向盘内放桔子,儿子专等吃盘内的桔子,女儿专等吃盘中的苹果。3、要求仔细观察设计中的各种现象及出现的问题。分析产生各种现象的原因。寻找解决问题的办法。报告应至少包括带注释的程序清单、输出的结果及对各种现象的分析意见题目11利用进程同步与互斥实现理发师问题1、目的调用linux系统调用实现多进程的创建、进程间同步与互斥解决具体问题。2、内容进程的创建编制一段程序,使用系统调用fork()创建两个子进程,这样在此程序运行时,在系统中就有一个父进程和两个自进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,自进程分别显示字符b和字符co

44、试观察、记录并分析屏幕上进程调度的情况。(2)利用进程同步与互斥编程实现理发师问题:(4) 一个理发店接待室有n张椅子,工作室有1张椅子;(2)没有顾客时,理发师睡觉;19操作系统课程设计指导(3)第一个顾客来到时,必须将理发师唤醒;(4)顾客来时如果还有空座的话,他就坐在一个座位上等待;(5)如果顾客来时没有空座位了,他就离开,不理发了;(6)当理发师处理完所有顾客,而又没有新顾客来时,他又开始睡觉。3、要求仔细观察设计中的各种现象及出现的问题。分析产生各种现象的原因。寻找解决问题的办法。报告应至少包括带注释的程序清单、输出的结果及对各种现象的分析意见。题目12利用进程同步与互斥实现面包房算

45、法1、目的调用linux系统调用实现多进程的创建、进程间同步与互斥解决具体问题2、内容进程的创建编制一段程序,使用系统调用fork()创建两个子进程,这样在此程序运行时,在系统中就有一个父进程和两个自进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,自进程分别显示字符b和字符co试观察、记录并分析屏幕上进程调度的情况。(2)利用进程同步与互斥编程实现面包房算法:这是由Lamport于1974年提出的解决互斥问题的另一个软件算法。面包房不断制作面包,由若干个(n个)销售员销售;每个来到面包房的顾客按次序领到一个号码(号码每次加1),并等着叫号,当一个销售员空闲下来,就叫下一个最小的号码并为顾客服务。3、要求20操作系统课程设计指导仔细观察设计中的各种现象及出现的问题。分析产生各种现象的原因。寻找解决问题的办法。报告应至少包括带注释的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论