当前位置:首页 > 操作系统课程设计题目-2015
操作系统课程设计指导
(2) DeviceControl:本API直接向相应设备的驱动程序发出指令,以完成在函数参数中所指定的动作。
(3) WriteFile:本API用于向文件中写入数据,写入操作可以采用同步方式或者异步方式,写入操作从文件指针处开始,写操作后会被相应调整。磁盘设备被当作文件看待。
(4) ReadFile:本API用于文件中读出数据,读出操作从文件指针处开始,文件指针在读操作后会被相应调整。用法同写文件函数相似。
(5) SetFilePointer:用于移动一个打开的文件中的读写指针。 9. 处理机调度
目的:加深作业概念的理解,深入了解多道程序设计系统中如何组织作业、管理作业和调度作业,加深对作业调度算法的理解。
设计要求:采用短作业优先调度算法、先来先服务调度算法和最高响应比调度算法实现处理机对作业的调度。
作业调度算法的关键是在已有的作业后备队列上按照一定的规则选择一个作业,如何在已有的数据结构上进行操作的问题。 10. 页面置换算法
目的:深入掌握内存调度算法的概念原理和实现方法。 设计要求:编写程序实现:
(1) 先进先出页面置换算法(FIFO) (2) 最近最久未使用页面置换算法(LRU) (3) 最佳置换页面置换算法(OPT)
专题:设计一个虚拟存储区和内存工作区,编程序演示以上三种算法的具体实现过程,并计算访问命中率。演示页面置换的三种算法。通过随机数产生一个指令序列,将指令序列转换成为页地址流。计算并输出各种算法在不同内存容量下的命中率。 11. 售票员与乘客(信号量操作)
目的:了解进程同步的概念,理解信号量机制的原理,掌握运用信号量解决进程同步问题的方法,进而学会运用进程的同步与互斥。
设计要求:编程序模拟车站售票厅内进程同步问题,售票厅任何时刻最多可容纳20名购票者进入,否则需要在外面等待。每个购票者可看成一个进程。 12. 生产者—消费者问题
目的:掌握信号的使用方法和PV操作的定义,掌握使用PV操作实现进程之间同步与互斥的方法,加深对进程同步互斥概念的理解。
设计要求:设计一程序,由一个进程创建三个子进程,三个子进程一个是生产者进程,两
5
操作系统课程设计指导
个是消费者进程,父子进程都使用父进程创建的共享存储区进行通信,由生产者进程将一个数组中的十个数值发送到由5个缓冲区组成的共享内存中,两个消费者进程轮流接收并输出这十个数值,同时将两个消费者进程读出的数值进行累加求各和。 13. 驱动调度
目的:掌握驱动调度算法的原理
设计要求:模拟电梯调度算法,实现对磁盘的驱动调度。
要求模拟设计一个驱动调度程序,观察驱动程序的动态运行过程。通过实验理解和掌握驱动调度的职能。
通过输入一个0~1的数来确定函数执行“接受请求”命令,还是执行“驱动调度”命令。同时可以根据自已需要确定是否继续执行。
调用数组对输入的进程进行存储,并运用循环进行显示同时对I/O请求列表进行初始化。 运用电梯调度算法,对I/O列表中的磁盘请求进行调度,同时对I/O列表进行排序,调度完成后显示新的列表。 14. 银行家算法
目的:了解多道程序系统中,多个进程并发执行的资源分配。
设计要求:管理员可以把一定数量的作业供多个用户周转使用,为保证作业的安全,管理员规定:当一个用户对作业的最大需求量不超过管理员现有的资金就要接纳该用户;用户可以分期贷款,但贷款的总数不能超过最大需求量;当管理员现有的作业不能满足用户的所需数时,对用户的请求可以推迟支付,但总能使用户在有限的时间里得到请求。当用户得到所需的全部作业后,一定能在有限的时间里归还所有的作业。 15. 交通信号灯模拟
目的:了解信号量机制,了解并掌握进程同步和互斥机制,熟悉信号量的操作函数,利用信号量实现对共享资源的控制。
设计要求:编程模拟交通信号灯的控制。
问题描述:一个十字路口,共有四组红绿灯,每个路口的车辆都遵循“红灯停,绿灯行”的原则,假设将每一台汽车都作为一个进程,请设计良好的机制,展示出合理的“十字路口交通管理”情况。
车辆通行设定:路口宽度不限,对一个路口而言,只有当一辆车通过路口(越过对面路口的交通灯后),其后续车辆才能继续通过交通灯,车辆通过路口的时间可以固定,可以自行计算。
进程的互斥:交通灯进程实际上是互斥的,即不能同时为红或者同时为绿。
进程的消息通信或其通信方式:对车辆进程而言,每一个车辆在通过路口前,必须确认前面的车辆已经通过了路口。
6
操作系统课程设计指导
进程的调度:停留在一个路口的车辆,决定其前进或等候的因素是交通灯和前面车辆的状态,需要设计一个良好的进程调度机制来控制所有车辆的通行。 16. 哲学家进餐问题
目的:通过实现哲学家进餐问题的互步,深入了解和掌握进程互斥的原理。
设计要求:哲学家有N个,规定全体到齐后开始讨论,在讨论的间隙哲学家进餐,每人进餐时都需使用刀、叉合一把,所有哲学家刀和叉都拿到后才能进餐。哲学家的人数、餐桌上的布置自行设定,实现刀和叉的互斥使用算法的程序实现。 17. 司机与售票员(信号量操作)
目的:掌握信号的使用方法和PV操作的定义,掌握使用PV操作实现进程之间同步和互斥的方法,加深对进程同步互斥概念的理解。
设计要求:设计程序模拟在公共汽车上,司机和售票员操作的同步。司机:启动车辆,正常行车,到站停车。售票员:上乘客,关车门,售票,开车门,下乘客。用PV操作对其控制。 18. 磁盘调度算法
目的:了解磁盘管理的原理,掌握磁盘调度种算法。
设计要求:编程序实现下述磁盘调度算法,并求出每种算法的平均寻道长度:要求设计主界面可以灵活选择算法,且以下算法都要实现。
(1) 先来先服务算法(FCFS) (2) 最短寻道时间优先算法(SSTF) (3) 扫描算法(SCAN) (4) 循环扫描算法(CSCAN) 19. 收银员与顾客问题(信号量操作)
目的:了解信号量机制,了解并掌握进程同步和互斥机制,熟悉信号量的操作函数,利用信号量实现对共享资源的控制。
设计要求:编程模拟下面同步问题:在某超市有下收银员,且同时最多允许有n个顾客购物,我们可以将顾客和收银员看成是两类不同的进程,且工作流程如下图所示。为了利用PV操作正确地协调这两类进程之间的工作,设置了三个信号量S1、S2和Sn,且初值分别为0、0、和n。
20. 信号量的操作
目的:了解信号量机制,了解并掌握进程同步和互斥机制,熟悉信号量的操作函数,利用信号量实现对共享资源的控制。
设计要求:通过对windows系统的内核同步对象mutexes和semaphores的使用来实现进程同步的控制。利用CreateSemaphore、WaitForSingleObject等函数检测内核同步对象的状态。
7
操作系统课程设计指导
21. 男女生洗澡问题(信号量操作)
目的:了解信号量机制,了解并掌握进程同步和互斥机制,熟悉信号量的操作函数,利用信号量实现对共享资源的控制。
设计要求:编程模拟男女生洗澡问题。
问题描述:假设某宿舍楼有一共用浴室,学校颁布规定:当有一个女生正在使用浴室,则其他女生可以进入,但是男生不行,反之亦然。在每个浴室门上有一个滑动指示符号,表示当前处于以下三种可能状态之一:
(1) 空 (2)有女生 (3)有男生 选用一种程序设计语言编写下面的过程:
woman_wants_to_enter,man_wants_to_enter,woman_leaves,man_leaves。 22. 进程间的通信
目的:了解进程间通信的机制,实现进程的两种通信方式,多次执行,观察结果,并对两种通信方式进行比较。
设计要求:利用系统提供的通信系统调用,进行一种方式的进程通信的程序设计,并对结果进行分析,同时了解另一种通信方式,将两种方式进行比较分析。
(1) 消息的创建发送和接收
使用系统调用msgget()、msgsnd()、msgrev()、msgctl()来编写长度为500字节的发送和接收程序。用一个程序先后创建两个子进程server和client,进行消息队列方式通信。由server建立消息队列,等待其他进程发来消息,当遇到类型为1的消息,则作为通信结束的信号,取消消息队列,退出。Server每接收到一个消息显示在屏幕上。
Client判断一个数据中的整数是否为素数,然后使用server建立的消息队列,将某数是否为素数的消息依次发送给server,然后退出。Client每次发送时把消息显示在屏幕上。
(2) 共享存储区的创建,附接和断接
使用系统调用shmget(),shmat(),shmctl()编写一个与上面(1)中相同功能的程序。 23. 虚拟文件系统的实现
目的:过一个简单的多用户文件系统的设计,加深文件系统内部功能以及内部实现。 设计要求:
在Windows或者Linux下设计一个二级(或者树型)结构文件系统,要求至少实现以下功能:
login 用户登录 dir 列出文件目录 create 创建文件
8
共分享92篇相关文档