《操作系统》实验指导书2017

上传人:第*** 文档编号:30999987 上传时间:2018-02-03 格式:DOC 页数:42 大小:389KB
返回 下载 相关 举报
《操作系统》实验指导书2017_第1页
第1页 / 共42页
《操作系统》实验指导书2017_第2页
第2页 / 共42页
《操作系统》实验指导书2017_第3页
第3页 / 共42页
《操作系统》实验指导书2017_第4页
第4页 / 共42页
《操作系统》实验指导书2017_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《《操作系统》实验指导书2017》由会员分享,可在线阅读,更多相关《《操作系统》实验指导书2017(42页珍藏版)》请在金锄头文库上搜索。

1、操作系统实 验 指 导 书绍兴文理学院计算机系 前 言1实验总体目标通过学生自己动手设计实验验证理论知识,使学生掌握操作系统特征和功能,掌握不同调度算法下进程的调度、进程控制、进程调度与死锁,并必须掌握作业管理、存储器管理、设备管理和文件管理的主要原理。加深对操作系统基本原理理解。 适用专业计算机科学与技术 先修课程C 语言程序设计、计算机组成原理、数据结构 实验课时分配序号 实验名称 学时 实验要求 实验类型1 分析操作系统所面临的操作需求 2 必修 验证2 进程管理 4 必修 设计3 存储管理 4 必修 设计4 设备管理 2 必修 设计5 文件管理 4 必修 设计 实验环境有 70 台中等

2、配置的计算机组成的小型局域网的实验室环境。计算机的具体要求:(1)Pentium 133Hz 以上的 CPU; (2)建议至少 256MB 的内存;(3)建议硬盘至少 2GB,并有 1GB空闲空间。(4) 安装 Windows 操作系统及 C 语言编译程序或 Linux 虚拟环境。 实验总体要求培养计算机专业的学生的系统程序设计能力,是操作系统课程的一个非常重要的环节。通过操作系统上机实验,可以培养学生程序设计的方法和技巧,提高学生编制清晰、合理、可读性好的系统程序的能力,加深对操作系统课程的理解。使学生更好地掌握操作系统的基本概念、基本原理、及基本功能,具有分析实际操作系统、设计、构造和开发

3、现代操作系统的基本能力。实验要求做到:1) 详细描述实验设计思想、程序结构及各模块设计思路;2) 详细描述程序所用数据结构及算法;3) 明确给出测试用例和实验结果;4) 为增加程序可读性,在程序中进行适当注释说明;5) 认真进行实验总结,包括:设计中遇到的问题、解决方法与收获等;6) 实验报告撰写要求结构清晰、描述准确逻辑性强;7) 实验过程中,同学之间可以进行讨论互相提高,但绝对禁止抄袭。 本实验的重点、难点及教学方法建议重点:理解进程调度中 PCB 的设计,以实现对进程的调度。难点:进程调度程序的设计,设备管理程序的设计。教学方法建议:力争在本指导书的帮助下,独立设计程序以加深理解。实验一

4、 分析操作系统所面临的操作需求(一)实验目的使学生理解操作系统所面临的操作需求,掌握操作系统中的进程管理、存储管理、设备管理和文件管理等功能。(二)实验内容1. 分析操作系统所面临的操作需求;2. 熟悉实验环境;3. 资料搜集与整理,进行实验的前期准备。熟悉编程环境本课程中的实验题目既可以在 windows 下用控制台应用程序实现,也可以在 linux 下用全屏幕程序实现。这里我们首先介绍在 windows 下用 vc+6.0 设计控制台应用程序的步骤,然后介绍在 linux 下用 C 语言编写全屏幕程序的步骤。1. windows 的控制台应用程序 图 1-1 图 1-2图 1-3步骤 1:

5、开机,单击“开始” 按钮,选择“程序 -Microsoft Visual Studio 6.0-Microsoft Visual C+6.0”进入 Microsoft Visual C+6.0。见图 1-1。步骤 2:在 Microsoft Visual C+6.0 中,单击“File”菜单,选择“New ”菜单命令,见图 1-2。 步骤 3:在“Files”选项卡中选择“C+ Source File”,见图 1-32. linux 的 vi 应用编程登录 Linux 是一个多用户多任务操作系统,多个用户可以拥有自己独立的用户账号登录提示:Red Hat Linux release 6.0 (

6、Hedwing)Kernel 2.2.5-15 on an i686Login:此时输入用户户名(账号)并键入回车,则系统显示“passward” 。在输入密码和回车。登录后:roothawk/root#表示是按 root 方式登录,$ 表示是普通用户。Linux 大小写敏感,用“-” 加参数zlinux:# ls FHowTo/ HowToMin/ linux nag/ sag/获取帮助:Linux 带有联机手册,可以用 man 命令来阅读Zlinux:$ man ls虚拟终端 Linux 可有多个用户登录到同一个计算机,但一般微机只有一个终端难以体现。可以使用多个虚拟终端,用 Alt+F1

7、、 Alt+F2 等来切换。退出系统 在停止使用系统时,要退出系统。具体方法:exit 或 logout,或 Ctrl+D关机 如果没有用户在使用系统,可以关机。但是不能直接关闭电源,而要按正常顺序关机。一般用户是不能关机的,只有 root 用户可以关机。方法:可以使用 halt 或 shutdown 命令,也可以同时键入 Ctrl+Alt+Del。Windows 虚拟机环境:登录到系统点击桌面“VMware ”图标 Vmware Workstation 窗口CommandsStart this virtual machine进入 fedora 后,用户名: root口 令:123456使用编

8、辑器 vi 编辑文件1. 进入 linux 的文本模式之后,在命令行键入 vi filename.c 然后回车。下面作一些简单的解释:首先 vi 命令是打开 vi 编辑器。后面的 filename.c 是用户即将编辑的 c 文件名字,注意扩展名字是.c;当然,vi 编辑器功能很强,可以用它来编辑其它格式的文件,比如汇编文件,其扩展名字是.s;也可以直接用 vi 打开一个新的未命名的文件,当保存的时候再给它命名,只是这样做不很方便。2. 最基本的命令 I :当进入刚打开的文件时,不能写入信息,这时按一下键盘上的 I键(insert) ,插入的意思,就可以进入编辑模式了。如下图所示: 3. a 与

9、 i 是相同的用法4. 当文件编辑完后,需要保存退出,这时需要经过以下几个步骤:1 )按一下键盘上的Esc 键;2 )键入冒号( :),紧跟在冒号后面是 wq(意思是保存并退出) 。如果不想保存退出,则在第二步键入冒号之后,键入!q(不带 w,机尾部保存) 。如下图所示:5. 退出 vi 编辑器的编辑模式之后,要对刚才编写的程序进行编译。编译的命令是:gcc filename.c -o outputfilename,其中 gcc 是 c 的编译器。参数:filename.c 是刚才编辑的 c 文件(当然也可以是以前编写好的 c 文件) ;后面中括号里面的参数是可选的,它是一个输出文件。如果不选

10、,默认的输出文件是 a.out ,选了之后输出文件就是outputfilename.out6. 最后一步是运行程序,方法如下:./outputfilename.out实验二 进程管理(一)实验目的掌握临界区的概念及临界区的设计原则;掌握信号量的概念、PV 操作的含义以及应用PV 操作实现进程的同步与互斥;分析进程争用资源的现象,学习解决进程互斥的方法;掌握进程的状态及状态转换;掌握常用的进程调度算法。(二)实验内容1分析进程的同步与互斥现象,编程实现经典的进程同步问题生产者消费者问题的模拟;2 编写允许进程并行执行的进程调度程序,在常用的进程(作业)调度算法:先来先服务算法、短作业优先算法、最

11、高响应比优先算法、高优先权优先算法等调度算法中至少选择三种调度算法进行模拟,并输出平均周转时间和平均带权周转时间。本实验涉及内容较多,可以在两个题目里选择一个完成。编程实现经典的进程同步问题生产者消费者问题的模拟模拟实现用同步机构避免发生进程执行时可能出现的与时间有关的错误。进程是程序在一个数据集合上运行的过程,进程是并发执行的,也即系统中的多个进程轮流地占用处理器运行。我们把若干个进程都能进行访问和修改的那些变量称为公共变量。由于进程是并发地执行的,所以,如果对进程访问公共变量不加限制,那么就会产生“与时间有关”的错误,即进程执行后所得到的结果与访问公共变量的时间有关。为了防止这类错误,系统

12、必须要用同步机构来控制进程对公共变量的访问。一般说,同步机构是由若干条原语同步原语所组成。本实验要求模拟 PV 操作同步机构的实现,模拟进程的并发执行,了解进程并发执行时同步机构的作用。此次用到的数据结构知识如下:typedef struct Pcb char name10; /进程名char state10; /运行状态char reason10; /若阻塞,其原因int breakp; /断点保护struct Pcb *next; /阻塞时的顺序Pcb,*link; 进程控制块结构定义两个进程: link p1;/生产者进程,link c1;/消费者进程。pc 程序计数器和 link re

13、ady; 就绪队列, link b_s1; s1 阻塞队列,link b_s2; s2 阻塞队列。实验指导:a. h 头文件#include#include#include /* malloc()等 */#include /* INT_MAX 等 */#include /* EOF(=Z 或 F6),NULL */#include /* atoi() */#include /* eof() */#include /* floor(),ceil(),abs() */#include /* exit() */#include using namespace std;#include #define

14、 BUF 10 /缓存的大小#define MAX 20 /最大可以输入的字符b. h 头文件/数据结构的定义和全局变量typedef struct Pcb char name10; /进程名char state10; /运行状态char reason10; /若阻塞,其原因int breakp; /断点保护struct Pcb *next; /阻塞时的顺序Pcb,*link;int s1,s2; /信号量link p1;/生产者进程link c1;/消费者进程char strMAX; /输入的字符串char bufferBUF; /缓冲池int len; /输入长度int sp=0; /st

15、ring 的指针进程名状态等待原因断点后继进程int in=0; /生产者指针int out=0; /消费者指针char temp; /供打印的临时产品char rec_pMAX;/生产记录int rp1=0;/生产记录指针char rec_cMAX;/消费记录int rp2=0;/消费记录指针link ready; /就绪队列link b_s1; /s1 阻塞队列link b_s2; /s2 阻塞队列int pc; /程序计数器int count; /字符计数器int con_cnt; /消费计数器c. h 头文件void init(); /初始化void p(int s); /P 操作void v(int s); /V 操作void block(int s);/阻塞函数void wakeup(int s);/唤醒函数void control(); /处理机调度void processor();/处理机执行void print(); /打印函数void init() /初始化s1=BUF

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号