操作系统课程设计指导

发布 2022-10-02 10:56:28 阅读 5688

一、本课程的教学目的及基本要求。

1、教学目的。

操作系统课程设计是操作系统课程的重要实践环节,是操作系统课程内实验的有益补充,它旨在培养学生的实践能力,促进理论与实践的结合。要求学生通过上机编程,一、本课程的教学目的及基本要求。

1、教学目的。

操作系统课程设计是操作系统课程的重要实践环节,是操作系统课程内实验的有益补充,它旨在培养学生的实践能力,促进理论与实践的结合。要求学生通过上机编程,了解如何模拟操作系统原理的实现,从而加深对操作系统原理的领会,加深对操作系统实现方法的理解,与此同时使学生在程序设计方面也能够得到很大程度的提高。操作系统虽然是理论性很强的课程,但是仅仅是课堂讲授是绝对不够的,操作系统课程设计即是课堂教学基础上的实践环节,其重要程度决不亚于课堂的知识传授。

本课程设计的目的和任务是在课堂教学的基础上,使学生对操作系统运行机制有一个全面的认识和理解,锻炼学生的抽象思维、逻辑思维和实际动手能力,培养操作系统等大型系统程序的使用者、管理者、分析员和设计人才。促进理论与实践的结合,使学生在系统程序设计方面能够得到很大程度的提高。

先修课程:数据结构,操作系统。

2、教学基本要求。

要求学生通过上机编程,使学生对操作系统运行机制有一个全面的认识和理解,通过模拟文件系统及内存管理系统,锻炼学生的逻辑思维和实际动手能力,培养操作系统等大型系统程序的使用者、管理者、分析员和设计人才。促进理论与实践的结合,使学生在系统程序设计方面能够得到很大程度的提高。

课程设计基本要求:

1) 掌握课堂教学内容,主要包括:

1) 掌握操作系统四大资源管理的理论知识;

2) 熟悉linux或unix文件系统的结构;

3) 使用编程语言实现课程设计题目要求的功能。

2) 根据课程设计题目,按以下步骤进行:

1) 问题分析,理解问题,明确设计要求;

2) 根据要求进行概要设计和详细设计;

3) 编码实现、上机调试,数据测试;

4) 完成课程设计实习报告。

二、操作系统课程设计题目。

1、实现一个进程管理子系统。

问题描述】在linux/unix/windows下编制一个程序,模拟实现一个简单的进程管理子系统,它由进程建立模块、进程撤消模块、进程控制表组成,(此外还可能包括选作的进程切换和调度模块)。

设计要求】该子系统接收新进程建立请求的方式是循环显示“请输入新命令行”,然后根据用户键入内容启动相应进程,其后不等待子进程结束,马上显示下一个“请输入新命令行”如此循环往复。

当建立进程时,相应读写进程控制表,然后借助底层环境os中象fork和exec这样的函数将新进程投入运行(这与底层环境的实际os不同,实际os将新进程投入运行时要布置现场,最后时程序技术器寄存器)。进程撤消时,利用底层os的wait( )从子进程回到本子系统,相应修改pcb。

比较该子系统与实际系统中的相应功能的异同与差距,尤其在现场保存与恢复方面的比较。

2、实现一个进程管理子系统(实现进程切换)

问题描述】在linux/unix/windows下编制一个程序,模拟实现一个简单的进程管理子系统,它由进程建立模块、进程撤消模块、进程控制表组成,(此外还可能包括选作的进程切换和调度模块)。

设计要求】在1题的基础上,进一步可选做模拟实现进程切换。希望能实现时间片满或接到sleep调用(或信号时)进行进程切换(选择其一即可)。

若要实现时间片,假设时间片为1秒钟,设定底层环境os每个1秒向该系统发一个信号,本子系统将本子系统的进程切换和调度模块设定为该信号的处理程序。或者每当接到子进程发出的的sleep调用(或信号)时进行进程切换,这里子进程发出的sleep调用(或信号)代表实际系统中可能发生的sleep( )调用、等待某一时间发生等情况,进程调度采用简单的fifo算法。

本题作为一道思考选作实验题:由于是在实际os中模拟实现,故子系统无法完全控制其建立的所有子进程的进程状态变化,象当前进程这样的概念都不太好模拟,需要设法解决或假设。)

3、进程调度算法模块。

问题描述】编制一个进程调度算法模块。进程调度是处理机管理的核心内容。本设计要求用c语言编写和调试一个简单的进程调度程序。

通过设计本可以加深理解有关进程控制块、进程队列的概念,并体会和了解最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法的具体实施办法。

设计要求】1) 进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。

2) 每个进程有一个进程控制块(pcb)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用cpu时间、进程状态等等。

3) 进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。

4) 每个进程的状态可以是就绪w(wait)、运行r(run)、或完成f(finish)三种状态之一。

5) 就绪进程获得cpu后都只能运行一个时间片。用已占用cpu时间加1来表示。如果运行一个时间片后,进程的已占用cpu时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用cpu时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待cpu。

6) 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的pcb,以便进行检查。

7) 重复以上过程,直到所要进程都完成为止。

4、生产者—消费者问题实现。

问题描述】有一群生产者进程生产产品供给消费者进程消费,为使两者并发执行,在两者之间设置具有n个缓冲区的缓冲池,生产者进程所生产的产品放入一个缓冲区中,消费者进程可从一个缓冲区中取走产品去消费。要求掌握信号的使用方法和pv操作的定义,掌握使用pv操作实现进程之间同步与互斥的方法,加深对进程同步互斥概念的理解。

设计要求】设计一程序,由一个进程创建三个子进程,三个子进程一个是生产者进程,两个是消费者进程,父子进程都使用父进程创建的共享存储区进行通信,由生产者进程将一个数组中的十个数值发送到由5个缓冲区组成的共享内存中,两个消费者进程轮流接收并输出这十个数值,同时将两个消费者进程读出的数值进行累加求各和。

5、苹果问题。

问题描述】桌子上有一只盘子,最多可容纳两个水果,每次只能放入或取出一个水果。爸爸专向盘子放苹果(apple),妈妈专向盘子中放桔子(orange);两个儿子专等吃盘子中的桔子,两个女儿专等吃盘子中的苹果。请用p、v操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。

设计要求】了解信号量机制,了解并掌握进程同步和互斥机制,熟悉信号量的操作函数,利用信号量实现对共享资源的控制。编程模拟实现这一问题的程序控制,分析处理过程。

6、模拟请求页式存储管理算法。

问题描述】存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本次设计的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。

设计要求】设计一个请求页式存储管理方案。并编写模拟程序实现之。要求包含:

1) 过随机数产生一个指令序列,共320条指令。其地址按下述原则生成:

50%的指令是顺序执行的;

25%的指令是均匀分布在前地址部分;

25%的指令是均匀分布在后地址部分。

#具体的实施方法是:

在[0, 319]的指令地址之间随机选区一起点m;

顺序执行一条指令,即执行地址为m+1的指令;

在前地址[0, m+1]中随机选取一条指令并执行,该指令的地址为m';

顺序执行一条指令,其地址为m'+1;

在后地址[m'+2, 319]中随机选取一条指令并执行;

重复① ~直到执行320次指令。

2) 指令序列变换成页地址流。

设:① 页面大小为1k;

② 用户内存容量为4页到32页;

③ 用户虚存容量为32k。

第0条 ~ 第9条指令为第0页(对应虚存地址为[0, 9]);

第10条 ~ 第19条指令为第1页(对应虚存地址为[10, 19]);

操作系统课程设计指导

操作系统课程设计目的。本课程设计是计算机科学与技术专业重要核心课的 大型实验课。通过本课程设计,使学生对操作系统的核心概念和算法有一个透彻的理解,并对系统运行的机制有一个全面的掌握,从而加深理解操作系统的工作原理和实现方法。课程设计题目。用信号量机制解决生产者消费者问题 有若干生产者和若干消费者共享...

操作系统课程设计指导书

计算机工程学院。一 课程教学的目标。一 课程性质。操作系统基础 是计算机专业的核心专业课,操作系统课程设计 是理解和巩固操作系统基本理论 原理和方法的重要的实践环节。二 课程的目的。操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理 编译原理 汇编语言 计算机网络 程序设计等专业...

操作系统课程设计

课程设计 河北大学工商学院。装。订。线。操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专 操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专业计算机类 学号 姓名。指导教师。年 6 月 24 日。设备管理 2 2.1设计任务2 2.2设计要求...