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

合集下载

操作系统原理实验指导书

操作系统原理实验指导书

目录实验一系统功能调用 (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的指针,用于接收功能调用后的返回值,即出口参数。

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来模拟进程的一次运行。

操作系统原理实验指导书

操作系统原理实验指导书

操作系统原理实验指导书实验一Linux基本操作实验LINUX常用命令1. cd (3)2. pwd (3)3. ls (3)4. passwd (4)5. who (4)6. cat (5)7. mkdir (5)8. rmdir (5)9. chmod (6)10. chown (6)11. chgrp (7)12. touch (7)13. cp (8)14. mv (8)15. rm (9)16. find (9)17. grep (9)18. more (10)19. less (10)20. head (10)21. tail (11)22. cut (11)23. crontab (11)24. sleep (12)25. kill (12)26. ps (13)28. top (14)29. man,info (14)30. alias (14)31. unalias (14)32. clear (14)1. cd格式: cd [dirName]说明: 变换工作目录至dirName。

其中dirName可为绝对路径或相对路径。

若目录命令省略,则变换至使用者登录时所在的目录(home directory )。

另外,"~" 也表示为home directory 的意思,"." 则是表示当前所在的目录,".." 则表示当前目录位置的上一层目录。

范例:1. 跳到当前目录的子目录(如:usr/bin)当中:cd /usr/bin2. 跳到自己的home directory :cd ~ (或cd )3. 跳到当前目录的上上两层:cd ../..4. 跳到父目录下的另外一个目录(如:conf):cd ../conf2. pwd格式: pwd说明: 显示当前所在目录3. ls格式: ls [-alrtAFR] [name...]说明: 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。

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

《操作系统原理》课程实验指导书
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)运行程序。
实验对象
本实验开设对象为计算机科学与技术和网络工程专业本科学生,本课程为必修课程。
课程简介
《操作系统原理》是计算机专业的核心课程之一。通过本课程的学习和实验,使学生掌握操作系统基本概念和原理,提高自身计算机的应用素质,并且培养学生熟练使用系统调用编程技能,为他们以后的专业学习奠定良好的基础。

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

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

操作系统原理实验指导书广东东软学院计算机系网络工程教研室编目录第一部分基础知识篇第一章安装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)选择语言,可以根据你自己的喜好选择,当然是选择中文(简体)了。

操作系统实验指导书

操作系统实验指导书

操作系统实验指导书一、实验说明1、实验目的实验是操作系统原理课程中不可缺少的重要教学环节,实验目的是使学生理论联系实际,使学生在实践探索中去发现问题、去解决问题,提高了学生获取知识和应用技术的能力,培养了学生分析和解决问题的能力。

《操作系统原理》要求理论与实践相结合,本门实验课程是对《操作系统原理》课堂教学的一个重要补充,与理论学习起着相辅相成的作用,是实施《操作系统原理》教学的一个重要组成部分。

通过本实验课的实践学习,可以增强本专业的学生对系统实现的认识。

对加深理解和掌握操作系统相关原理有重要帮助。

2、实验要求进一步了解和掌握操作系统原理,提高系统设计的能力。

对每一实验题目,应独立完成,并要求:·上机前,学生必须做好充分的实验准备工作,掌握与实验相关的背景知识,用任一种高级语言编写程序。

·上机时,认真调试,并观察、记录程序运行过程中出现的现象和问题。

·上机后,分析实验结果并写出实验报告。

3、实验报告要求每个实验(包括选做的)均应编写实验报告,学生实验后要写出严谨的、实事求是的、文字通顺的、字迹公整的实验报告。

实验报告应包括以下内容:(1)实验题目(2)实验目的(3)实验内容●程序中使用的数据结构及符号说明●流程图●源程序清单并附上注释(4)实验结果及分析●运行结果(必须是上面程序清单所对应输出的结果)●对运行情况所作的分析以及本次调试程序所取得的经验。

如果程序未能通过,应分析其原因。

二、实验内容实验一熟悉使用计算机系统一、实验名称:熟悉使用计算机系统二、实验目的与要求通过对Windows操作系统的使用,熟悉Windows操作系统中的基本概念,如单用户、多任务、进程和文件等,熟悉Windows中命令行方式下常用命令的使用方法;进一步熟悉TC语言与开发环境,为以后的实验打好基础。

三、实验内容1.开机后,熟悉Windows的界面(桌面、任务栏、开始按钮<点击后出现“开始”菜单>、我的电脑图标、回收站、我的文档)。

操作系统课程设计任务指导书

操作系统课程设计任务指导书

《操作系统原理》课程设计--进程调度模拟程序一、课程设计目的《操作系统原理》是计算机科学与技术专业的一门专业核心课程,也是研究生入学考试中计算机专业综合中所涉及的内容。

该课程理论性强,纯粹的理论学习相对枯燥乏味,不易理解。

通过课程设计,可加强学生对原理知识的理解。

二、课程设计的任务和要求本次课程设计的题目是,时间片轮转调度算法的模拟实现。

要求在充分理解时间片轮转调度算法原理的基础上,编写一个可视化的算法模拟程序。

具体任务如下:1、根据需要,合理设计PCB(进程控制块)结构,以适用于时间片轮转调度算法;2、设计模拟指令格式,并以文件形式存储,程序能够读取文件并自动生成指令序列。

3、根据文件内容,建立模拟进程队列,并能采用时间片轮转调度算法对模拟进程进行调度。

任务要求:1、进程的个数,进程的内容(即进程的功能序列)来源于一个进程序列描述文件。

2、需将调度过程输出到一个运行日志文件。

3、开发平台及语言不限。

4、要求设计一个Windows可视化应用程序。

三、模拟程序的描述:模拟指令的格式:操作命令+操作时间● C :表示在CPU上计算●I :表示输入●O :表示输出●W :表示等待●H :表示进程结束操作时间代表该操作命令要执行多长时间。

这里假设I/O设备的数量没有限制,I和O设备都只有一类。

I,O,W三条指令实际上是不占有CPU的,执行这三条指令就应该将进程放入对应的等待队列(输入等待队列,输出等待队列,其他等待队列)。

例如,有一虚拟程序文件prc.txt描述如下:P1C10 // 在CPU上运算10个时间单位I20 // 输入,占用20个时间单位C40 // 在CPU上运算40个时间单位I30 // 输入,占用30个时间单位C20 // 在CPU上运算20个时间单位O30 // 输出,占用30个时间单位H00 // 进程结束P2I10C50O20H00P3C10I20W20 // 等待20个时间单位C40O10H00................四、实验报告要求除了编程实现设计的要求,在运行调试完成后,要书写出课程设计报告,总结归纳课设的各个方面,锻炼自己实践和总结报告的能力。

操作系统实验指导书

操作系统实验指导书

《操作系统原理》实验指导书吴微编前言1.实验总体目标通过学生自己动手设计实验验证理论知识,使学生掌握操作系统特征和功能,掌握不同调度算法下进程的调度、进程控制、进程调度与死锁,并必须掌握作业管理、存储器管理、设备管理和文件管理的主要原理。

加深对操作系统基本原理理解。

⒉适用专业计算机科学与技术⒊先修课程C语言程序设计、计算机组成原理、数据结构⒋⒌有40台中等配置的计算机组成的小型局域网的实验室环境。

计算机的具体要求:⒈Pentium 133Hz以上的CPU;⒉建议至少256MB的内存;⒊建议硬盘至少2GB,并有1GB空闲空间。

4.安装Windows操作系统及C语言编译程序。

⒍实验总体要求培养计算机专业的学生的系统程序设计能力,是操作系统课程的一个非常重要的环节。

通过操作系统上机实验,可以培养学生程序设计的方法和技巧,提高学生编制清晰、合理、可读性好的系统程序的能力,加深对操作系统课程的理解。

使学生更好地掌握操作系统的基本概念、基本原理、及基本功能,具有分析实际操作系统、设计、构造和开发现代操作系统的基本能力。

⒎本实验的重点、难点及教案方法建议重点:理解进程调度中PCB的设计,以实现对进程的调度。

难点:进程调度程序的设计,设备管理程序的设计。

教案方法建议:力争在本指导书的帮助下,独立设计程序以加深理解。

目录实验一、单处理器系统的进程调度 5 实验二设计一个有 N个进程共行的进程调度程序。

10 实验三批处理系统中作业调度15 实验四银行家算法18 实验五LRU页面置换调度算法25 实验六独占设备的分配和回收模拟29实验一单处理器系统的进程调度一、实验目的模拟单处理器系统的进程调度,采用动态优先权的进程调度算法作为进程设计算法,以加深对进程的概念及进程调度算法的理解.二、实验类型<含验证型、设计型或综合型)设计型三、实验仪器一台安装Windows操作系统及C语言编译程序的pc机。

四、实验原理五、实验方法与步骤<一)内容:<1)用C语言实现对N个进程使用动态优先权算法的进程调度。

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

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

《操作系统原理》实验指导书计算机科学与技术系2010年9月目录《操作系统原理》实验教学大纲(修订) (1)实验考核方式与基本要求 (3)实验一进程控制描述与控制 (12)实验二并发与调度 (24)实验三存储管理 (31)实验四设备管理 (40)实验五文件管理与系统安全 (44)附录实验报告参考规范 (64)《操作系统原理》实验教学大纲(修订)课程编号:0433314课程名称:操作系统原理实验学时:14一、本实验课的性质、任务与目的操作系统作为计算机专业的一门专业基础课,是计算机专业的核心课程之一,学好与否直接关系到学生是否能更好地学习后续课程。

通过本实验课程的学习,使学生理解与掌握操作系统设计所遵循的基本原理,基本方法,建立多道程序设计环境下的并行程序设计的思维方式。

此外,操作系统用到的各种算法也是学生加强算法锻炼的好机会,对日后从事系统开发方面的工作有直接的借鉴作用。

本实验课程在操作系统原理课程教学中占有重要地位,目的是让学生及时掌握和巩固所学的基本原理和基础理论,加深理解。

提高学生自适应能力,为将来使用和设计各类新的操作系统打下良好的基础。

二、本实验课所依据的课程基本理论计算机操作系统,操作系统中所介绍的重要算法。

三、实验类型与要求序号实验内容内容提要实验要求实验时数实验类型每组人数所在实验室名称备注一进程控制描述与控制操作系统界面、进程管理必修 2 验证 2 系机房二并发与调度进程并发、进程状态转换必修 2 验证 2 系机房三存储管理内存空间分配及虚拟存储器必修 2 验证 2 系机房四设备管理设备分配与回收必修 2 验证 2 系机房五文件管理与系统安全文件系统目录结构,文件操作及操作系统安全任选 2 验证 2 系机房六操作系统功能模拟设计实验操作系统功能模拟设计并实现必修 4 设计3-4 系机房四、每组人数与实验学时数序号实验内容实验时数每组人数一进程控制描述与控制 2 2二并发与调度 2 2三存储管理 2 2四设备管理 2 2五文件管理与系统安全 2 2六操作系统功能模拟设计实验 4 3-4五、考核方式与评分办法考核方式:在规定时间内,按要求设计相应的模拟系统并上机调试运行,写出详细的实验报告,在机上向教师演示自己设计的模拟系统。

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

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

操作系统原理课内实验指导书实验一:用户接口实验准备知识为了使用户通过操作系统完成各项管理任务,操作系统必须为用户提供各种接口来实现人机交互。

经典的操作系统理论将操作系统的接口分为控制台命令和系统调用两种。

前者主要提供给计算机的操作人员对计算机进行各种控制;而后者则提供个程序员,使他们可以方便地使用计算机的各种资源。

1.控制台命令接口操作系统向用户提供一组控制台命令,用户可以通过终端输入命令的方式获得操作系统的服务,并由此来控制自己作业的运行。

一般来讲,控制台命令应该包含:一组命令、终端处理程序以及命令解释程序。

1)bash的由来当登录Linux或者打开一个xterm时,当前默认的shell就是bash。

Bash是GNU Project 的shell。

GNU Project是自由软件基金会(Free Software Foundation)的一部分。

它对Linux 下的许多编程工具负责。

Bash(Bourne Again Shell)是自由软件基金会发布的Bourne shell 的兼容程序。

它包含了其他有些shell的许多良好的特性,功能非常的全面。

很多Linux版本都供bash。

2)bash的大致原理bash处理自己的脚本时,先找到需要处理的命令名称,进而在当前用户的默认命令目录中找到对应的命令,这些默认目录一般是/usr/bin、/bin或/sbin。

在执行这些命令时,先使用进程创建系统调用fork(),在使用exex()来执行这些命令。

3)建立bash脚本➢编辑文件可以用最熟悉的编辑器来编辑这个文本文件,比如文件名为script,在shell下输入:$ vi script#! /bin/bashEcho Hello World!然后保存,退出。

➢测试脚本。

使用指令:$ source script➢更改脚本属性使用指令:$ chmod a+x script将脚本程序设置为可执行。

➢执行脚本使用指令:$ ./script4)关键字参考Echo 在终端上显示Bash 特殊变量1~9,保存当前进程或脚本的前9个参数。

操作系统实验指导书

操作系统实验指导书

操作系统实验指导书《操作系统原理》实验指导书适用专业:课程代码: 8400220 学时: 10 学分:编写单位:编写人:审核人:审批人:年月《操作系统原理》实验指导书适用于计算科学与技术专业、信息科学专业前言操作系统原理是一门理论性与实践性较强的学科,开设本实验课程的目的在于培养学生的实践能力,促使理论与实践的结合。

实现操作系统功能和高级程序设计语言编程的应用,已成为我校计算机学科教学的主要内容。

本实验指导书介绍了实验环境、上机实验步骤、各实验项目的目的要求及内容,最后附有实验报告的格式,作为我校操作系统课程上机实验指导的主要依据。

根据实验大纲要求,包含两个实验及其相关实验作业。

要完成上述内容,单纯依靠课内上机是不够的,希望同学们课外多多花时间练习,熟能生巧。

对不同年级或专业的学生可根据学生具体情况调整实验内容。

目录前言 (1)一、实验环境 (3)二、上机实验步骤 (3)1.启动V ISUAL C++6.0开发环境 (3)2.创建一个项目 (3)3.关闭工作空间 (7)三、实验项目 (8)实验一进程的调度(5学时) (8)实验二存储管理(5学时) (10)四. 参考文献 (11)西华大学计算机系上机实践报告 (12)一、实验环境操作系统原理课程的实验环境如下:1. 硬件环境微型计算机(Intel x86系列CPU)一台2. 软件环境Windows98/2000/XP操作系统VC++6.0或其它的开发工具。

二、上机实验步骤下面以Visual C++ 6.0为例简单介绍开发Windows应用程序的步骤。

Visual C++ 6.0中的MFC AppWizard(应用程序向导)可以使用户自动生成一些常用的标准程序结构和编程风格。

例如一般的Windows 应用程序结构、DLL应用程序结构、单文档(SDI)应用程序结构、多文档(MDI)应用程序结构等。

下面详细介绍利用MFC AppWizard创建一个Windows应用程序的步骤:1.启动Visual C++ 6.0开发环境从“开始”菜单中选择“程序”| Microsoft Visual Studio 6.0 | Microsoft Visual C++6.0,显示Visual C++ 6.0开发环境主窗口。

操作系统实验指导书

操作系统实验指导书
printf("pid %d is already exist!\n",para[0]); return -1; } if(p->node->pid == para[1]) //find parent pcb { pflag=1; pp = p; } } if(!pflag) { printf("parent id %d is not exist!\n",para[1]); return -2; } //init new pcb p1 = new pnode; p1->node=new pcb; p1->node->pid = para[0]; p1->node->ppid = para[1]; p1->node->prio = para[2]; p1->sub=NULL; p1->next=NULL; p1->brother=NULL; //add to process tree if(!pp->sub) pp->sub=p1; else { for(p=pp->sub;p->brother;p=p->brother); p->brother=p1; } // add to process link for(p=plink;p->next;p=p->next); p->next=p1;
三、实验原理
1)进程控制块 为了描述和控制进程的运行,系统为每个进程定义了一个进程控制块(PCB),它是进程 实体的一部分,是操作系统管理进程最重要的数据结构。其主要包含四类信息: (1) 进程标识符 它唯一地标识一个进程。通常包括进程号 pid,父进程号 ppid 和用户号 uid。 (2) 处理机状态 处理器的状态通常由处理机的各种寄存器中的内容组成。PCB 存放中断(阻塞,挂起)时的 各寄存器值,当该进程重新执行时,可以从断点处恢复。主要包括:

操作系统实验指导书(完整版)

操作系统实验指导书(完整版)

《计算机操作系统实验》指导书(第二版)实验一LINUX的安装与使用 (2)实验二进程管理与通信 (27)实验三存储管理——页面置换算法模拟 (51)实验四文件管理 (56)实验五LINUX服务器配置(选做) (62)实验报告撰写指导 (72)韶关学院信息工程学院计算机系教师:陈正铭2007-9-10实验一LINUX的安装与使用【实验目的】1、了解与掌握RED HAT LINUX 9.0的安装过程。

2、熟悉LINUX的命令及使用格式与常用基本命令。

【实验内容】1、使用图形化安装模式安装RED HAT LINUX 9.0。

2、使用WINDOWS操作系统中的远程登录程序telnet.exe 登录LINUX。

3、练习使用LINUX的常用基本命令如ls、cd、who、pwd、ps、pstree、top等。

4、掌握WINDOWS和LINUX之间的文件共享方法。

【实验指导】一、Red Hat Linux 9光盘启动安装过程1、准备工作(1)购买或下载Redhat9的安装光盘(3张盘)或镜像文件,下载地址:校园网FTP站点。

或从红帽子主站下载∶/(2)在硬盘中至少留2个分区给安装系统用,挂载点所用分区推荐4G以上,交换分区在256M 左右比较适合,文件系统格式不论,反正安装过程会重新格式化。

(假如使用虚拟机vm安装建议最少留6G存储空间)(3)记录下你电脑中下列设备型号∶鼠标、键盘、显卡、网卡、显示器。

及网络设置用到的IP地址、子网掩码、默认网关和DNS名称服务器地址等信息。

2、安装红帽子Red Hat Linux 9将光驱设为第一启动盘,放入第一张安装光盘后重新启动电脑,如果你的光驱支持自启动, 如无意外将出现如下图:直接按回车键后将出现如下图1 ,如果你不处理30秒后也会自动进入。

在图1中提示:是否测试安装CD的内容的完整性,选―OK‖开始测试安装CD;选―Skip‖不测试安装CD开始安装出现图6所示,如果是第一次安装当然要测试安装CD,选―OK‖后回车,出现如下图2选―Test‖测试安装光盘的文件,选―Eject CD‖测试光盘以外的安装文件,这里我选择―Test‖后回车,出现如下图3正在测试第一张安装CD,测试完后显示如下图4所示看到上图最后一行英文―It is OK to install from this med ia‖说明这张安装CD是OK的,按―Enter‖键回车后,显示如下图5所示选择―Continue‖并回车开始安装。

操作系统原理A实验指导书

操作系统原理A实验指导书

淮海工学院操作系统原理A 实验指导书计算机工程学院实验1 进程调度实验目的进程是操作系统最重要的概念之一,进程调度是操作系统内核的重要功能,本实验要求用Java或C/C++语言编写一个进程调度模拟程序,至少使用先来先服务、短进程优先、最高优先权优先或时间片轮转法四种算法中的两种算法来实现进程调度。

通过本实验可加深对进程调度算法的理解。

实验环境Turbo C 2.0/3.0或VC++6.0或Java语言实验学时4学时,必做实验。

实验内容1、设计有5个进程并发执行的模拟调度程序,每个程序由一个PCB表示。

2、模拟调度程序至少使用先来先服务、短进程优先、最高优先权优先或时间片轮转法四种算法中的两种算法来实现进程调度。

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

实验说明1、优先级算法说明(1)PCB的结构:优先级算法中,设PCB的结构如右图所示,其中各数据项的含义如下:Array Id:进程标识符号,取值1—5。

Prior:优先级,随机产生,范围1—5。

Used:目前已占用的CPU时间数,初值为0;当该进程被调用执行时,每执行一个时间片,Used加1。

Need:进程尚需的CPU时间数,初值表示该进程需要运行的总时间,取值范围为5—10。

并随机产生,每运行一个时间片need减1;need为0则进程结束。

Status:进程状态R(运行),J(就绪),F(完成);初始时都处于就绪状态。

Next:指向就绪队列中下一个进程的PCB的指针。

(2)初始状态及就绪队列组织:5个进程初始都处于就绪状态,进程标识1—5,used初值都为0。

各进程的优先级随机产生,范围1—5。

处于就绪状态的进程,用队列加以组织,队列按优先级由高到低依次排列,队首指针设为head,队尾指针设为tail。

(3)调度原则以及运行时间的处理:正在执行的进程每执行一个时间片,其优先级减1(允许优先级为负)。

进程调度将在以下情况发生:当正在运行的程序其优先级小于就绪队列队首进程的优先级时。

3操作系统原理实验指导书 (1)

3操作系统原理实验指导书 (1)

百度文库- 让每个人平等地提升自我!《操作系统原理》课程实验指导书(适用于网络工程专业)网络工程系辽宁工程技术大学软件学院年月日目录目录 (2)实验二银行家算法实现资源分配 (4)实验三调动算法的使用 (6)实验五文件管理实验 (12)实验一进程同步与互斥一、实验目的1.掌握基本的同步与互斥算法,理解生产者消费者模型。

2.学习使用Windows 2000/XP中基本的同步对象,掌握相关API的使用方法。

3.了解Windows 2000/XP中多线程的并发执行机制,实现进程的同步与互斥。

二、实验内容以生产者/消费者模型为依据,在Windows 2000环境下创建一个控制台进程,在该进程中创建n个线程模拟生产者和消费者,实现进程(线程)的同步与互斥。

三、实验性质验证性实验四、实验学时2学时五、实验环境《C与C++程序设计学习与实验系统》六、实验原理及步骤假设这些生产者和消费者相互是等效的,只要缓冲区不满,生产者便可将产品放入缓冲区;而只要缓冲区不为空,消费者便可从缓冲区取走一件产品。

需要两个私用信号量,empty表示缓冲区可接收产品的数目,full表示缓冲区已接收产品的数目。

empty的初值为N,即缓冲区的容量;full的初值为0。

我们还要增设一个公用信号量(mutex),初值为1,以保证这些生产者和消费者互斥地访问缓冲区。

此外,生产者和消费者必须同步,生产者不能向满缓冲区写数据,消费者不能从空缓冲区读数据。

1.测试用例文件测试用例文件用于描述各线程的有关信息,该文件内容及格式如下:31 P 32 P 43 C4 14 P 25 C 3 1 2 4说明:第一行给出的是程序中设置的临界区个数;其余各行是各进程信息。

每行中的数据之间用Tab键分隔。

第一列(除第一行外):线程号。

第二列:P——生产者,C——消费者。

第三列:线程在生产和消费前的休眠时间,单位为秒。

第四及以后各列:消费的产品所对应的生产者线程号。

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

《操作系统原理》实验指导书1、Linux环境下基本命令的使用2、进程管理实验3、命令解释程序的实现实验一Linux环境下基本命令的使用一、实验目的:(1)掌握Shell命令在Unix或Linux操作系统中的作用。

(2)理解Shell命令的解释和运行机制。

(3)掌握Unix或Linux系统环境下的常用的Shell基本操作命令。

二、实验内容:(1)查看系统的命令提示符,确定系统使用的Shell程序类型,列出Linux系统常见的Shell种类。

(2)查看当前登录在系统中的用户列表、系统中的用户总数和系统启动时间。

(3)查看当前的日期和时间。

(4)显示当前目录,改变到用户主目录并列出当前目录的内容。

(5)在当前目录下,创建名为“自己姓名(用自己学号代替)”的新目录。

在所创建的目录下创建名为“newfile”的新文件。

(6)在屏幕上显示文件newfile的内容。

(7)删除“自己姓名”中的newfile文件。

(8)当前目录的目录“自己姓名”。

(9)列出所有文件。

三、实验步骤:1、登录和退出<1> 登录服务器系统: root (实际的用户名自己设置)。

<2> 在login:后输入用户帐号(第一次进入输入 root):密码:未知<3> 登录后,输入passwd命令来修改密码。

根据提示输入当前密码,再输入两次新的密码。

<4> 输入logout命令或exit命令退出系统。

2、获取帮助信息命令man提供了系统操作命令的在线帮助。

例如,输入man passwd 可以获取命令passwd 的帮助说明;输入man open 可以获取open 函数的帮助说明。

按空格键,翻页浏览。

按<shift><:>,再按q退出帮助。

3、基本操作命令<1>pwd:确定你当前的工作目录<2> ls -al:显示当前工作目录的内容<3> mkdir:建立一个子目录<4> cd:转换目录<5> cat或more:查看文件内容<6> cp:复制文件<7> rm -i:删除文件<8> mv:重命名文件<9> find:查找文件<10> vi编辑命令新文件<11> who查看当前登录在系统中的用户列表、系统中的用户总数和系统启动时间。

各个命令的具体使用方法,可以用man命令查看。

4、vi编辑器vi编辑器是一个小巧但功能强大的程序。

vi编辑器有三种不同的模式:插入模式——这个模式是通过在命令模式按下“i”键进入的。

命令模式——这是用户输入单键命令的模式。

在其他模式中按下ESC键就可以进入命令模式。

常见的执行删除操作的命令有:dd 删除整个行#dd 按照输入的数字(#),从当前行删除几行D 删除光标位置后面全部内容dw 删除光标所在位置的单词冒号模式——从命令模式输入一个冒号(:)就可以进入这个模式。

常见的冒号模式命令有::wq 保存且退出编辑器:w 保存但不退出:q 退出且不保存:q! 强行退出vi,不保存。

:help 获取帮助1)在系统提示符($)下输入命令vi和想要编辑(建立)的文件名vi test.c <enter>2)按键I进入插入模式。

屏幕上看不到字符i,屏幕下方出现--INSERT--字样。

3)输入你的程序:/*********************************************************************#include <stdio.h>void my_print1(char *);void my_print2(char *);main (){char string[] = “hello world”;my_print1 (string);my_print2 (string);}void my_print1(char *string){printf(“The string is %s\n”, string);}void my_print2(char *string){char *string2;int size, i;size = strlen (string);string2 = (char *) malloc (size + 1);for (i = 0; i < size; i++){string2[size – i] = string[i];}string2[size+1] = ‘\0’;printf (“The string printed backward is %s\n”, string2); }4)按〈Esc〉键,从插入模式进入冒号模式。

5)输入wq,保存退出四、实验报告要求:1.记录输入LINUX相关命令后系统输出。

2.使用过程出现的问题及解决方法实验二:进程管理实验一、实验目的:(1)了解有关Linux系统调用。

(2)学习有关Linux的进程创建,理解进程创建后两个并发进程的执行。

(3)加深对进程概念的理解,明确进程和程序的区别。

二、实验内容(1)进程的创建。

在Linux环境下,编写一个程序使用系统调用fork()创建2个子进程。

当此子进程运行时,在系统中由一个父进程和两个子进程活动。

让每个进程在屏幕上显示一个字符;父进程显示字符’x’,子进程分别显示’y’和’z’。

试记录屏幕上的显示结果,并分析原因。

(2)进程的管道通信。

编写一个程序使用系统调用fork生成3个子进程,并使用系统调用pipe创建一个管道,使得这3个子进程和父进程公用同一管道进行信息通信要求该程序实现数据的输入、输出以及信息提示(3)加深对进程概念的理解,明确进程和程序的区别。

三、实验提示:(一)、Linux的系统调用1. 进程控制的系统调用1)fork系统调用创建新的子进程格式: pid=int fork()fork调用返回时,系统中已有两个用户级环境完全相同的进程存在,这两个进程从fork调用中得到的返回值不同,其中子进程得到的返回值为零,父进程得到的返回值是新创建子进程的进程标识号。

2)exec系统调用格式:int execl(path,arg0,arg1,…,argn,(char *)0)char *path, *arg0, *arg1, …, *argn ;exec调用进程的正文段被指定的目标文件的正文段所覆盖,其属性的变化方式与fork成功后从父进程那里继承属性的方式几乎是一样的。

系统中绝大多数命令都是通过exec来执行的,不但shell进程所创建的子进程使用它来执行用户命令,shell进程本身和它的祖先进程也是用exec来启动执行的。

3) exit 系统调用终止进程执行格式:void exit(status) ;int status ;参数status是调用进程终止时传递给其父进程的值。

如调用进程还有子进程,则将其所有子进程的父进程改为1号进程。

4) wait 系统调用等待子进程暂仃或终止格式:int wait(stat_loc) int wait((int *)0)int stat_loc ;wait 调用将调用进程挂起,直到该进程收到一个被其捕获的信号或者它的任何一个子进程暂仃或终止为止。

如果wait 调用之前已有子进程暂仃或终止,则该调用立即返回。

5) lockf 锁定文件格式:int lockf(fd,fuction,size)int files, fuction; long size; fd –锁定文件标识function=0表示不锁定;function =1(锁定);function=2(测试和锁定);function=3测试有否被锁定size --锁定或解锁的字节数,0表示从文件的当前位置到文件尾。

(二)、进程创建程序#include <stdio.h>void main(int argc, char *argv[ ]){ int pid;pid=fork(); /* fork child process */if (pid<0){ fprintf(stderr, “Fork Failed”); exit(-1);}elseif (pid= =0) /* child process */{ execlp(“/bin/ls”,”ls”,NULL);}else /* 进入父进程 */{wait(NULL);printf(“child Complete”);exit(0);}}(三)、进程通信的系统调用函数实例1)pipe系统调用格式: int pipe (filedes)int filedes [2];管道通信程序#include <stdio.h>#include <fcntl.h>char parent[]={“A message from parent .”};char child[]={“A message from child .”};main(){int chan1[2],chan2[2];char buf[100];if (pipe(chan1)==-1 || pipe(chan2)==-1) errexit(“pipe”);if (fork()){close(chan1[0]); close(chan2[1]);write(chan1[1],parent,sizeof parent);close(chan1[1]);read(chan2[0],buf,100);printf(“parent process : %s \n”,buf);close(chan2[0]);}else{close(chan1[1]); close(chan2[0]);read(chan1[0],buf,100);printf(“child process : %s \n”,buf);write(chan2[1],child,sizeof child);close(chan2[1]); close(chan1[0]);}}四、程序实现1、进程的创建2、进程间通信的实现五、实验报告要求1.记录输入LINUX相关命令后系统输出。

2.记录C程序,进行编译运行和调试。

3.分析运行结果。

4.体会实验三综合上机-命令解释程序的实现一、实验目的:实现一个简单的命令解释程序,掌握操作系统命令解释程序的实现原理。

二、实验内容:编写C程序parse来完成一个简单的命令解释程序,能够支持以下四个命令:quit、disp、list、changedir。

三、实验要求:(1)parse应提供一个命令提示符,如parse>,表示接收用户的输入,每次执行完成后再打印下一个命令提示符parse>。

相关文档
最新文档