操作系统原理实验指导

合集下载

操作系统原理实验指导书

操作系统原理实验指导书

目录实验一系统功能调用 (1)实验二熟悉Linux环境 (6)实验三 shell脚本 (14)实验四进程控制 (18)实验五进程间通信 (22)(一) 信号量机制实验 (22)实验五进程间通信 (28)(二) 进程的管道通信实验 (28)实验五进程间通信 (32)(三) 消息的发送与接收实验 (32)实验五进程间通信 (37)(四) 共享存储区通信 (37)实验六死锁避免的算法 (43)实验七存储管理 (45)1. 常用页面置换算法 (45)2.动态分区分配算法 (54)实验八文件操作 (55)实验一系统功能调用【实验目的】1.熟悉操作系统的系统功能调用。

2.掌握用C语言实现系统功能调用的方法和步骤。

3.掌握利用10H号功能调用(BIOS的显示I/O功能调用)来实现对屏幕的操作与控制。

【预习内容】1.预习DOS、BIOS系统功能调用。

2.预习C语言实现系统功能调用的方法。

【实验内容】1.在屏幕的指定区域内显示字符串。

(必做题)2.在屏幕的指定区域内画框,在框内显示字符串。

(提高题)3. 在屏幕的指定区域内动画显示字符串。

(附加题)【实验报告】1.列出调试通过程序的清单,并加注释。

2.给出必要的程序设计思路和方法(或列出流程图)。

3.总结上机调试过程中所遇到的问题和解决方法及感想。

【实验相关资料】int86(0X10, &r, &r)函数:对BIOS调用的标准函数其中0X10是BIOS调用类型号(相当于INT n调用的中断类型号n),是10H号中断调用,是一个显示I/O调用。

BIOS借助此中断产生的功能调用控制PC机屏幕上的文本和图形。

通过给AH 寄存器设置适当的值选择想要的功能调用,然后发中断10H。

第一个&r是指向联合类型REGS的指针,用于接收调用的功能号及其它一些指定的入口参数,以便传给相应寄存器。

第二个&r是指向联合类型REGS的指针,用于接收功能调用后的返回值,即出口参数。

操作系统原理实验指导

操作系统原理实验指导
(3)计算页面命中率程序流程图
3、实验题
(1)设计一个内存分配模拟程序。假定在计算机系统作业后备队列中有六个等待调度运行的作业,参与分配的内存大小为32KB,采用简单页式管理,每个页帧的大小为1KB。根据要求进行内存的分配和回收。要求打印内存分配表。有关作业的组织和作业有关参数的设置请自行设计,要大致符合实际情况。
main()
{
int i;
if (fork())
{
i=wait();
printf(“It is parent process.\n”);
printf(“The child process, ID number %d, is finished.\n”,i);
}
else{
print(“It is child process.\n”);
(2)自选设计一个进程调度算法,并加以实现。
实验三存储器管理
1、目的与要求
目的:存储器管理是操作系统重要的组成部分,提高存储器的效率始终是操作系统研究的重要课题之一。虚拟存储技术是用来扩大存储容量的一种重要方法。学生应独立地使用一种开发工具或高级语言编写几个常用的存储分配算法,并能设计一个存储管理的模拟程序,对各种算法进行分析比较,评测其性能优劣,从而加深对这些算法的理解,巩固所学的知识。
操作系统实验指导
操作系统是计算机的最重要的系统软件,它在计算机中具有核心地位,其作用是对计算机系统资源进行统一的调度和管理,提供各种强有力的系统服务,为用户创造灵活而又方便的使用环境。一个精心设计的操作系统能极大地扩充计算机系统的功能,充分地发挥系统中各种资源的使用效率,提高系统工作的可靠性。
操作系统原理是计算机科学与技术专业的一门主要专业课程,它涉及计算机系统中各种软、硬资源管理的实现原理与方法,内容非常丰富,综合性非常强,并且还具有很强的实践性。只有把理论与实践紧密地结合起来,才能取得较好地学习效果。

0910264操作系统原理综合实验B实验指导书

0910264操作系统原理综合实验B实验指导书

《操作系统原理综合实验B》实验指导书华北电力大学计算机学院操作系统课程组2006-6-20一、单处理器系统的进程调度1.实验目的在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。

当就绪进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。

本实验模拟在单处理器情况下的处理器调度,帮助学生加深了解处理器调度的工作。

2.实验内容与要求(1)设计多个进程并发执行的模拟调度程序,每个程序由一个PCB表示。

(2)模拟调度程序可任选两种调度算法之一实现。

(3)程序执行中应能在屏幕上显示出各进程的状态变化,以便于观察调度的整个过程。

3.实验说明本实验有两个题,学生可选择其中的一题做实验。

第一题:设计一个按优先数调度算法实现处理器调度的程序。

(1) 假定系统有五个进程,每一个进程用一个进程控制块PCB来代表,进程控制块的格式为:P1,P2,P3,P4,P5。

指针——按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为“0”。

要求运行时间——假设进程需要运行的单位时间数。

优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。

状态——可假设有两种状态,“就绪”状态和“结束”状态。

五个进程的初始状态都为“就绪”,用“R”表示,当一个进程运行结束后,它的状态为“结束”,用“E”表示。

(2) 在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数”和“要求运行时间”。

(3) 为了调度方便,把五个进程按给定的优先数从大到小连成队列。

用一单元指出队首进程,用指针指出队列的连接情况。

例:队首标志K2K3K4K5PCB1 PCB2 PCB3 PCB4 PCB5(4) 处理器调度总是选队首进程运行。

采用动态改变优先数的办法,进程每运行一次优先数就减“1”。

由于本实验是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行:优先数-1要求运行时间-1来模拟进程的一次运行。

操作系统原理实验

操作系统原理实验

操作系统原理实验一、实验目的本实验旨在通过实际操作,加深对操作系统原理的理解,掌握操作系统的基本功能和调度算法。

二、实验环境1. 操作系统:Windows 102. 虚拟机软件:VirtualBox3. 实验工具:C语言编译器(如gcc)、汇编语言编译器(如nasm)、调试器(如gdb)三、实验内容1. 实验一:进程管理在这个实验中,我们将学习如何创建和管理进程。

具体步骤如下:a) 创建一个C语言程序,实现一个简单的计算器功能。

该计算器能够进行基本的加减乘除运算。

b) 使用fork()系统调用创建一个子进程,并在子进程中执行计算器程序。

c) 使用wait()系统调用等待子进程的结束,并获取子进程的退出状态。

2. 实验二:内存管理在这个实验中,我们将学习如何进行内存管理。

具体步骤如下:a) 创建一个C语言程序,模拟内存分配和释放的过程。

该程序能够动态地分配和释放内存块。

b) 使用malloc()函数分配一块内存,并将其用于存储数据。

c) 使用free()函数释放已分配的内存块。

3. 实验三:文件系统在这个实验中,我们将学习如何进行文件系统的管理。

具体步骤如下:a) 创建一个C语言程序,实现一个简单的文件系统。

该文件系统能够进行文件的创建、读取、写入和删除操作。

b) 使用open()系统调用打开一个文件,并进行读取和写入操作。

c) 使用unlink()系统调用删除一个文件。

四、实验步骤1. 安装虚拟机软件VirtualBox,并创建一个虚拟机。

2. 在虚拟机中安装操作系统Windows 10。

3. 在Windows 10中安装C语言编译器、汇编语言编译器和调试器。

4. 根据实验内容,编写相应的C语言程序并保存。

5. 在命令行中使用gcc编译C语言程序,并生成可执行文件。

6. 运行可执行文件,观察程序的执行结果。

7. 根据实验要求,进行相应的操作和测试。

8. 完成实验后,整理实验报告,包括实验目的、实验环境、实验内容、实验步骤和实验结果等。

《操作系统原理》课程实验指导书

《操作系统原理》课程实验指导书
x=3;
}
else { //大于0是父进程
printf("The parent:%d\n", getpid());
x=4;
}
printf("x=%d\n",x);
}
验证操作:
(45)程序运行共输出了几条语句?
(46)x的值输出了几次?
思考:
(47)x为什么会输出不同的值?
16.并发执行
#include <sys/types.h>
相关准备知识
Linux操作系统命令接口。
实验步骤
以图形化方式登录Linux系统,在桌面单击鼠标右键,选新建终端。
8.文件、目录管理。
(29)pwd
功能:显示用户当前所处的目录的绝对路径。
语法:pwd
例如,以root身份登录后,使用命令pwd将显示/root信息。
(30)ls
功能:列出目录的内容,类似于DOS下的dir命令。
(37)rm
功能:删除一个目录中的一个或多个文件或目录。
语法:rm 文件名…
例如,rm /tmp/my.c将删除/tmp目录下的my.c文件。
(38)clear
功能:清除屏幕上的信息,清屏后,提示符移动到屏幕左上角。
9.C程序开发
(39)使用vi编辑C语言源程序
(40)gcc编译和链接
(41)运行程序。
实验对象
本实验开设对象为计算机科学与技术和网络工程专业本科学生,本课程为必修课程。
课程简介
《操作系统原理》是计算机专业的核心课程之一。通过本课程的学习和实验,使学生掌握操作系统基本概念和原理,提高自身计算机的应用素质,并且培养学生熟练使用系统调用编程技能,为他们以后的专业学习奠定良好的基础。

计算机操作系统原理实验指导书

计算机操作系统原理实验指导书

目录1进程创建模拟实现 (6)1.1实验类型 (6)1.2实验目的 (6)1.3实验描述 (6)1.4实验内容 (6)1.5实验要求 (6)1.6测试要求 (6)1.7相关知识 (7)1.8实验设备 (9)1.9实验指导 (9)1.10实验成绩评定 (9)1.11实验报告 (9)1.12实验思考 (9)2P、V原语的模拟实现 (10)2.1实验类型 (10)2.2实验目的 (10)2.3实验描述 (10)2.4实验内容 (10)2.5实验要求 (10)2.6测试要求 (10)2.7相关知识 (11)2.8实验设备 (11)2.9实验指导 (11)2.10实验成绩评定 (12)2.11实验报告 (12)2.12实验思考 (12)3进程撤销模拟实现 (13)3.1实验类型 (13)3.2实验目的 (13)3.3实验描述 (13)3.4实验内容 (13)3.5实验要求 (13)3.6测试要求 (14)3.7相关知识 (14)3.8实验设备 (15)3.9实验成绩评定 (15)3.10实验报告 (16)3.11实验思考 (16)4FCFS进程调度模拟实现 (17)4.2实验目的 (17)4.3实验描述 (17)4.4实验内容 (17)4.5实验要求 (17)4.6测试要求 (18)4.7相关知识 (18)4.8实验设备 (18)4.9实验成绩评定 (19)4.10实验报告 (19)4.11实验思考 (19)5银行家算法实现 (20)5.1实验类型 (20)5.2实验目的 (20)5.3实验描述 (20)5.4实验内容 (20)5.5实验要求 (20)5.6测试要求 (21)5.7相关知识 (21)5.8实验设备 (22)5.9实验成绩评定 (22)5.10实验报告 (22)5.11实验思考 (22)6改进型CLOCK页面置换算法实现 (23)6.1实验类型 (23)6.2实验目的 (23)6.3实验描述 (23)6.4实验内容 (23)6.5实验要求 (23)6.6测试要求 (24)6.7相关知识 (24)6.8实验设备 (24)6.9实验成绩评定 (25)6.10实验报告 (25)6.11实验思考 (25)7SCAN磁盘调度模拟实现 (26)7.1实验类型 (26)7.2实验目的 (26)7.3实验描述 (26)7.4实验内容 (26)7.5实验要求 (26)7.6测试要求 (27)7.8实验设备 (27)7.9实验成绩评定 (27)7.10实验报告 (27)7.11实验思考 (27)8基于时间片的高优先级调度模拟实现 (29)8.1实验类型 (29)8.2实验目的 (29)8.3实验描述 (29)8.4实验内容 (29)8.5实验要求 (29)8.6测试要求 (30)8.7相关知识 (30)8.8实验设备 (31)8.9实验成绩评定 (31)8.10实验报告 (31)8.11实验思考 (31)9连续动态内存管理模拟实现 (32)9.1实验类型 (32)9.2实验目的 (32)9.3实验描述 (32)9.4实验内容 (32)9.5实验要求 (32)9.6测试要求 (33)9.7相关知识 (33)9.8实验设备 (34)9.9实验成绩评定 (34)9.10实验报告 (34)9.11实验思考 (34)10EXE文件装载实现 (35)10.1实验类型 (35)10.2实验目的 (35)10.3实验描述 (35)10.4实验内容 (35)10.5实验要求 (35)10.6测试要求 (35)10.7相关知识 (36)10.8实验设备 (37)10.9实验成绩评定 (37)10.10实验报告 (37)10.11实验思考 (37)11附录: (38)11.2实验二代码: (43)11.3BASIC.H文件 (48)1进程创建模拟实现1.1 实验类型验证型(2学时)。

操作系统原理实验指导书课案

操作系统原理实验指导书课案

操作系统原理实验指导书广东东软学院计算机系网络工程教研室编目录第一部分基础知识篇第一章安装Ubutnu8.04 (1)第二章Linux常用命令手册 (13)第二部分基本实验篇实验一UNIX/Linux操作系统的实际使用 (17)实验二命令解释程序 (24)实验三进程管理 (34)实验四处理器调度 (42)实验五存储管理 (46)第三部分综合实验篇实验六简单的数据库管理系统设计 (53)实验七输入/输出管理 (78)实验八Linux文件系统设计 (83)附录: (93)第一章安装Ubutnu8.041、备份资料如果以前没有安装过Ubuntu的可以跳过这一步。

如果你没有把/home目录单独挂载出来,建议你把他备份到一个安全的地方,至于其他系统分区、软件分区、都可以不管,保留软件设置比软件重要。

2、准备分区这是问题最多的地方,如果你以前使用Windows,那么你需要单独给Ubuntu 划分一个空白分区,可以使用Windows 自带的分区工具,也可以使用PQ分区管理工具。

建立Linux 分区的操作建议在Ubuntu安装过程中进行。

如果还是对硬盘分区有疑问的可以参考这里关于最简单可行的分区方法1、先在windows 下,我的电脑上点右键-----管理------磁盘管理-----删除最后一个分区(先备份再做,也可以进行先删除分区后再调整下分区大小,保留一个分区未分就行)2、安装desktop 版ubuntu,安装的时候让它自动分区并钩选最大的连续空闲空间。

3、详细安装步骤做好了上面的准备,就可以插入光盘开始安装了,在这里强烈建议在安装前把先把网线拔了,这样后面安装出错的机会大幅降低。

做好了上面的3 个准备,现在就可以插入光盘开始安装了。

见到这个画面时候记得按F2 选择语言为中文:选择第一项“试用 Ubuntu 而不改变计算机中的任何内容”,进入 live 桌面后点击“安装”图标。

1)选择语言,可以根据你自己的喜好选择,当然是选择中文(简体)了。

操作系统实验指导

操作系统实验指导

操作系统实验指导操作系统是计算机科学中的重要课程之一,通过实验可以让学生更好地理解和掌握操作系统的原理和功能。

本文将为大家介绍一些操作系统实验的指导。

一、实验准备在进行操作系统实验之前,需要先进行一些实验准备工作。

首先,需要安装一个操作系统,一般选择Linux或Windows。

其次,需要安装一些实验所需的软件和工具,例如编译器、调试器等。

此外,还需要准备一些实验材料,如实验手册、实验报告模板等。

二、实验目标每个操作系统实验都应该有明确的实验目标。

实验目标可以根据学生的实际情况和课程要求进行设定。

例如,可以通过实验来掌握进程管理、文件系统、内存管理等操作系统相关知识。

同时,实验目标应该具有可衡量性,可以通过实验结果来评估学生的实验成果。

三、实验内容1.进程管理实验:通过编写一个简单的多进程程序,来了解进程的创建、调度和终止等过程。

2.文件系统实验:通过创建、读写和删除文件,来了解文件系统的组织结构和基本操作。

3.内存管理实验:通过编写一个简单的分页存储管理程序,来了解分页存储管理的原理和实现方法。

4.设备管理实验:通过模拟设备的申请、释放和使用过程,来了解设备管理的原理和调度算法。

四、实验步骤每个操作系统实验都有具体的实验步骤,学生需要按照这些步骤进行实验。

以下是一些常见的实验步骤:1.实验环境准备:包括安装操作系统、配置软件和工具等。

2.实验预备:包括阅读实验手册、了解实验目标和要求等。

3.实验设计:根据实验目标和要求,设计实验方案和实验程序。

4.实验实施:按照实验方案和实验程序,进行实验操作并记录实验数据。

5.实验分析:根据实验数据,进行分析和总结,并得出实验结论。

6.实验报告:根据实验分析和总结,编写实验报告并提交。

五、实验评估实验结果的评估可以根据实验目标和要求来确定。

例如,如果实验目标是了解进程管理,可以通过观察进程的创建和调度情况来评估学生的实验结果。

实验报告的评估可以根据实验报告的内容和结构来确定。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统原理实验指导
附:随机数产生方法
#include "stdlib.h"
main()
{
int i;
clrscr();
randomize(); /*初始化随机数产生器*/
for(i=1;i<11;i++)
printf("%d***",random(40000)); /*产生0到40000-1之间的随机数*/
getch();
}
1.进程调度实验
●目的
掌握进程的调度方法。

●内容
将进程的基本状态分为三种:运行、就绪、等待。

选用C语言编写程序,构造就绪和等待两个队列,根据不同的情况分别对
就绪和等待两个队列进行出队和排队处理,并在计算机屏幕上给出相应的
提示,如:“进程进入等待”、“进程进入就绪”、“进程开始运行”。

●方法
1.先构造若干简单进程的PCB,其中应包含进程名称、队列指针;
2.利用PCB构造就绪和等待两个队列;
3.在main()中,可利用产生随机数函数random(int x)产生三个不同
范围的数,它们分别对应进程的三种状态;当随机数落在某个范围时,
便激活进程的相应状态和处理工作。

2.地址转换实验
●目的
掌握地址转换的方法。

●内容
1分区存储管理方法中地址转换的方法;
2页式存储管理方法中地址转换的方法;
3段式存储管理方法中地址转换的方法;
●方法
我们利用随机数来模拟有效地址,对于不同的存储管理方法,采用不同的
地址转换方法。

✧分区存储管理方法中:
1.先给定基址寄存器BR和限长寄存器LR的值;
2.利用随机数模拟的有效地址,根据基址寄存器BR和限长寄
存器LR的值,计算相应的物理地址,并判断是否越界,若出现越
界现象,应给出警告信息。

✧页式存储管理方法中:
1)假设逻辑地址结构为(二进制表示、2个字节)
15 10 9 0
2)建立简单的页表PT,并填人页号、块号;
3)利用随机数模拟的有效地址,根据PT,计算相应的物理地
址,并判断是否越界,若出现越界现象,应给出警告信息。

否则对于每个有效地址给出相应的页号、内存块号、及相应
的物理地址。

✧段式存储管理方法中:
1)假设逻辑地址结构为(二进制表示、2个字节)
15 10 9 0
2)建立简单的段表ST,并填人段号、段长、段首地址;
3)利用随机数模拟的有效地址,根据ST,计算相应的物理地
址,并判断是否越界,若出现越界现象,应给出警告信息。

否则对于每个有效地址给出相应的段号、段内偏移量、内存
始地址及相应的物理地址。

3.P.V操作实验
●目的
了解并掌握进程的同步和互斥。

●内容
选用C语言编写程序,利用P.V操作解决单生产者和单消费者问题。

●方法
1.分别改造P操作和V操作及生产、消费程序;
2.在main()中利用循环通过相关的控制量,分别激活生产者和消费者;
3.为了方简单起见,生产者和消费者只对单缓冲区进行操作,如:生产
者将数值“1”填人缓冲区,而消费者将数值“0”填人缓冲区。

4.存储分配实验
●目的
了解虚拟技术及存储分配的常用方法。

●内容
选用C语言编写一个存储管理的模拟程序,管理方法采用请求页式存储管
理。

●方法
1.建立两个表格,页表PT(包含页号、内存块号、状态);内
存块表MBT(包含内存块号、状态);
2.为了方便本实验规定为单作业的情况,用户地址空间为
0~32K;页面大小为4K,内存块为8块
3.利用随机数模拟的有效地址系列,范围是0~32K;
4.分别读出地址系列中的地址:
1)每读出一个地址,先计算该地址的页号(页号=INT[虚
地址/页面大小]);
2)然后在页表PT中查访该页的状态;
3)若为“1”,表示在内存,无须作其它处理;
4)若为“0”,表示不在内存,则需要查MBT表,看是否
还有可提供分配的空白块;
5)若内存有空白块,则修改PT表中的该页的状态项,并
记录分配到的内存块号,同时修改MBT表;
6)若内存无空白块,则根据某个算法从内存中挑选一页
进行淘汰;
7)在PT表将被淘汰的页对应的状态改为“0”;
8)将当前页调人内存,同时修改PT表相应项;
5.SPOOLING技术实验
●目的
体会SPOOLING系统如何解决主机与慢速I/O设备之间的矛盾。

●内容
选用C语言编写一个模拟SPOOLING系统,它们由三个模块组成。

1.输入模块(负责作业的输入)
1)首先查看是否有待输入的作业,若无则结束。

2)查看输入井是否满,若满,则保留待输入作业现场,结束。

3)将作业读入输入井,直到输入井满。

设有10道作业待输入,每道作业是一个字符串。

长度不超过20,并以“#”
作为结束符号。

2.处理模块(负责加工处理输入井中的作业)
1)首先查看是否还有已加工但未送到输出井的信息。

若有,转向3)。

2)从输入井中读出一道作业,在作业中的每个字符间插入“.”。

3)查看输出井是否满,若满,则保留现场,结束;否则将处理过的
作业送到输出井中。

若作业全部送入,则结束;否则说明作业还
未送完而输出井满了,则保留现场,结束。

3.输出模块
查看输出井是否空,若空,则结束;否则从输出井中依次读出字符送
到计算机屏幕显示,遇到“#”需换行。

●方法
1)用字符数组JOB[10][20]存储10道作业,并预先将作业全部存入数组;
2)用数值数组SJ[2]保留输入作业的信息,其中SJ[0]记录待输入作业的编
号,SJ[1] 记录待输入作业中要输入的字符位置。

3)数值变量JT为计数器,初值为10,每输完一道作业,JT的值减1,当
JT的值为0时,表示作业已全部输入完毕。

4)用字符数组BUF[40]存放从输入井读出并处理过的作业。

5)用两个循环队列分别表示输入井和输出井,长度分别为30、20。

6)相应于编写函数,并在主函数中根据某种调度算法调度三个函数,直
到10个作业全部输出完为止。

6.文件系统实验
●目的
了解和体会文件系统的工作过程。

●内容
1.可显示文件系统的提示符(自定义)。

2.识别以下的键盘命令。

1)列目录OSDIR
2)拷贝文件OSCOPY
3)建立目录OSMDIR
4)建立文件OSCR
5)查看文本文件内容OSTYPE
●方法
选用C语言,并利用其中的有关的文件操作函数,编写一个模拟文件管理系
统。

相关文档
最新文档