操作系统课程设计题目及任务

发布 2022-10-05 13:48:28 阅读 3242

题目1:时间片轮转调度算法模拟。

要求:用实验方法模拟单处理机系统的进程调度,并采用时间片轮转调度算法作为进程调度算法。

具体任务:1、理解掌握进程调度实现所涉及到的主要问题:如何组织进程、如何实现处理机调度。

进程控制块的作用和结构,进程控制块的链表组织。

进程调度程序包含从进程就绪队列选择并摘取进程、给该进程分配处理机。

2、设计进程控制块相关数据结构,进程状态跃迁的相关模拟;

3、实现时间片进程调度算法模拟程序设计、编码及调试。

题目2:静态优先级调度算法模拟。

要求:用实验方法模拟单处理机系统的进程调度,并采用静态优先级调度算法作为进程调度算法。

具体任务:1、理解掌握进程调度实现所涉及到的主要问题:如何组织进程、如何实现处理机调度。

进程控制块的作用和结构,进程控制块的链表组织。

进程调度程序包含从进程就绪队列选择并摘取进程、给该进程分配处理机。

2、设计进程控制块相关数据结构,进程状态跃迁的相关模拟;

3、实现静态优先级调度算法模拟程序设计、编码及调试。

题目3:最短剩余时间优先(动态优先)调度算法模拟。

要求:用实验方法模拟单处理机系统的进程调度,并采用最短剩余时间优先调度算法作为进程调度算法。

具体任务:1、理解掌握进程调度实现所涉及到的主要问题:如何组织进程、如何实现处理机调度。

进程控制块的作用和结构,进程控制块的链表组织。

进程调度程序包含从进程就绪队列选择并摘取进程、给该进程分配处理机。

2、设计进程控制块相关数据结构,进程状态跃迁的相关模拟;

3、实现最短剩余时间优先调度算法模拟程序设计、编码及调试。

题目4作业调度设计。

1、目的。本实验的目的是通过模拟作业调度算法的设计加深对作业管理基本原理的理解。

2、内容。在后备作业队列中,输入5个作业各自运行所需要的时间及存储空间。

按先来先服务的原则进行调度,输出作业调度的顺序及等待的时间。

按最短作业(即运行时间最短)优先的原则进行调度,输出作业调度的顺序及等待时间。

按最小作业(即存储空间最小)优先的原则进行调度,输出作业调度的顺序及等待的时间。根据运**况,比较各种算法。

在后备作业队列中,先输入5个作业各自运行所需要的时间,然后每输入一个作业的运行时间,就按响应比高优先的原则进行调度,直到输入作业的运行时间为0时,依次输出响应比高的其它作业。

3、要求。对输入的每个作业必须编号,输出时要有作业序号、运行时间、存储空间及等待时间(包括总的等待时间);

报告中的运**况要包括输入和输出情况;

比较上面几种调度算法的优劣。

4、举例。建主程序、三个子程序(例如:先来先服务fcfs、最短作业优先lsfs、最短运行时间作业优先srfs)、打印程序及原始数据。

五个作业运行时间,建文件其中包含num、runtime、storage、waittime和the waiting time。

题目5存储管理页面置换算法模拟实现及比较。

1、目的。通过请求页式管理中页面置换算法了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。

2、内容。通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成:

一半的指令是顺序执行的;

四分之一的指令是均匀分布在前地址部分;

四分之一的指令是均匀分布在前地址部分。

具体的实施办法是:

在[0,319]之间选一起点m;

顺序执行一条指令,即m+1条;③向前地址[0,m—1]中执行一条指令m';

顺序执行一条指令,即m'+1条;

向后地址(m'+2,319]执行一条指令m''

将指令序列变换成为页地址流。

假设:页面大小为1kb;

用户实寸容量为4页到32页;

用户虚存容量为32kb。

用户虚存容量32kb,每1kb中放10条指令,共320条指令(0~319)。其中0~9为0页,10~19为1页…310~319为31页。

使用不同的页面调度算法处理缺页中断,并计算不同实存容量下(4~32kb)的命中率。

先进先出算法(fifo);

最近最少使用算法(lru);

最佳淘汰算法(opt);先淘汰最不常用的页地址;

最少访问页面算法(lfu)。

命中率的算法为:

命中率=缺页中断次数/页地址流长度。

3、要求。实验报告中要有程序的详细框图,特别是有关算法本身的框图;

实验报告中要有程序清单及执行的结果;

对不同算法的性能进行评价。

题目6linux进程间同步与互斥。

1、目的。调用linux系统调用实现多进程的创建、进程间同步与互斥。

2、内容。进程的创建。

编制一段程序,使用系统调用fork( )创建两个子进程,这样在此程序运行时,在系统中就有一个父进程和两个自进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,自进程分别显示字符b和字符c。

试观察、记录并分析屏幕上进程调度的情况。

如果在程序中使用系统调用nice( )来改变各进程的优先级,会出现什么现象?

进程的控制。

修改已编制的程序,将每个进程输出一个字符修改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象。并分析出现问题的原因。进一步理解各个进程争夺临界资源的情况。

如果在程序中使用系统调用locking( )来给每一个进程加锁,可以实现进程之间的互斥,试观察并分析出现的现象。

进程的软中断通讯。

编制一段程序,实现进程的软中断通讯:使用系统调用fork( )创建两个子进程;再使用系统调用。signal( )让父进程捕捉键盘上来的中断信号(即按del键);在捕捉到中断信号后,父进程用系统调用kill( )向两个子进程发信号;子进程捕捉到信号后分别输出下列信息后终止:

child process1 is killed by parent!

child process2 is killed by parent!

父进程等待两个子进程都终止以后,输出如下信息后终止。

parent process in killed!

3、要求。仔细观察设计中的各种现象及出现的问题。分析产生各种现象的原因。寻找解决问题的办法。

报告应至少包括带注释的程序清单、输出的结果及对各种现象的分析意见。

题目7linux进程间管道通信实现生产者-消费者问题。

1、目的。调用linux系统调用实现多进程的创建、进程间利用管道进行通信。

2、内容。进程的创建。

编制一段程序,使用系统调用fork( )创建两个子进程,这样在此程序运行时,在系统中就有一个父进程和两个自进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,自进程分别显示字符b和字符c。

试观察、记录并分析屏幕上进程调度的情况。

如果在程序中使用系统调用nice( )来改变各进程的优先级,会出现什么现象?

2)进程的管道通讯。

编制一段程序,实现进程的管道通讯:使用系统调用pipe()建立一条管道线;两个子进程分别循环向这条管道写一句话:

child 1 is sending a message!

child 2 is sending a message!

而父进程则循环从管道中读出信息,显示在屏幕上。

用管道进行通讯,实质上是一个多生产者单消费者的问题,必须考虑其中都有哪些同步和互斥,同时向管道输入端写的字节数必须和从输出端读的字节数一致,若不一致,则会出现什么问题。

3、要求。仔细观察设计中的各种现象及出现的问题。分析产生各种现象的原因。寻找解决问题的办法。

报告应至少包括带注释的程序清单、输出的结果及对各种现象的分析意见。

题目8linux进程软中断实现进程间通信。

1、目的。调用linux系统调用实现多进程的创建、进程间利用软中断进行通信。

2、内容。进程的创建。

编制一段程序,使用系统调用fork( )创建两个子进程,这样在此程序运行时,在系统中就有一个父进程和两个自进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,自进程分别显示字符b和字符c。

试观察、记录并分析屏幕上进程调度的情况。

如果在程序中使用系统调用nice( )来改变各进程的优先级,会出现什么现象?

2)进程的“软中断”通信。

它可用于同一用户的进程之间通信。其方式是:一个进程通过系统调用kill(pid,sig)向同一用户的其它进程pid发送一个软中断信号:

另一进程通过系统调用signal(sig,func)捕捉到信号sig后,执行予先约定的动作func,从而实现这两个进程间的通信。

发送信号kill(pid,sig),本进程将指定信号sig发送给指定进程pid,其中参数为pid进程号,pid与sig均为整数值。

接收信号signal(sig,func),本进程接收到其它进程发送给它的信号后,完成指定的功能func。func一般是函数。

在程序中系统调用sleep(second)用于进程的同步与互斥,自变量是暂停秒数。其功能是使现行进程暂停执行由自变量规定的秒数。

类似的系统调用有pause(),它的功能是暂停执行本进程,等待kill发来的信号,收到信号后再继续执行。

在特殊情况下,常用到如下语句signal(sigint,sig_ign)。它表示遇到了中断信号sigint(按del键)。本进程不做任何动作,即勿略该中断信号对本进程的影响。

3)编写一个程序,实现进程的“软中断”通信。使用系统调用fork()创建2个子进程,再使用系统调用signal()让父进程捕捉键盘上来的中断信号(即按del键),在捕捉到中断信号后,父进程用系统调用kill()向2个子进程发信号,子进程捕捉到信号后分别输出下列信息后终止:

child process 1 is killed by parent !

child process 3 is killed by parent !

父进程等待2个子进程都终止后,输出如下信息后终止:

parent process is killed !

3、要求。仔细观察设计中的各种现象及出现的问题。分析产生各种现象的原因。寻找解决问题的办法。

报告应至少包括带注释的程序清单、输出的结果及对各种现象的分析意见。

操作系统课程设计题目及要求

5 最近未使用算法 nur 命中率 页面失效次数 页地址流长度。分析 本实验的程序设计基本上按照实验内容进行。即首先用srand 和rand 函数定义和产生指令序列,然后将指令序列变换成相应的页地址流,并针对不同的算法计算出相应的命中率。1 通过随机数产生一个指令序列,共320条指令。指令的地址按下...

操作系统新课程设计题目

学习完 操作系统 课程,通过一个具体的课程设计实践,可使学生对操作系统原理有更进一步的理解与应用,通过设计对操作系统有一个实现的尝试和创新的思维,同时发挥团队协作精神和个人创造能力。选题 以下可任选一个。分组 每组不可超过四人 包括四个 每组指定一个组长,每人设计系统中的一部分,集体协商整合。组长能...

lly操作系统课程设计题目

操作系统课程设计。一 基本要求。1.每位同学至少完成1个题目。2.程序验收后,要提交如下材料 1 课程设计报告。a4纸打印,同时提交电子版。2 源程序。加注释,参考的模块或 需要加以声明,标注出处。二 题目。1.进程调度算法。编程实现进程调度的基本过程。设计要求 1 能够选择进程调度算法 先来先服务...