操作系统原理实验指导书

合集下载

操作系统实验指导书

操作系统实验指导书

淮海工学院计算机科学系操作系统原理实验指导书计算机专业教研室实验1 进程调度实验目的进程是操作系统最重要的概念之一,进程调度是操作系统内核的重要功能,本实验要求用C语言编写一个进程调度模拟程序,使用优先级或时间片轮转法实现进程调度。

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

实验环境Turbo C 2.0/3.0或VC++6.0实验学时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(允许优先级为负)。

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

程序中进程的运行时间以逻辑时间片为单位。

2、时间片轮转算法说明(1)PCB的结构(如下图所示):轮转法中,设PCB的结构如右图所示,其中各数据项的含义如下:Span:在某一轮中,分配给先运行进程的时间片数,取值1—3。

操作系统原理实验指导书

操作系统原理实验指导书

操作系统原理实验指导书实验一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...]说明: 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。

操作系统实验指导书

操作系统实验指导书

操作系统实验指导书实验概述本次操作系统实验是为了让学生通过实践了解操作系统的基本概念,原理和使用。

通过完成实验,学生将了解操作系统内核,进程调度,文件系统和输入输出等关键组成部分。

实验环境实验要求使用 Linux 操作系统,可以选择任意一种 Linux 发行版。

可以在物理机上安装 Linux,也可以使用虚拟机软件(如 VirtualBox)来运行 Linux 虚拟机。

实验准备在进行实验之前,需要完成以下准备工作:1.安装 Linux 操作系统(如 Ubuntu、Fedora 等)或虚拟机软件(如VirtualBox)。

2.熟悉 Linux 基本命令和操作,包括文件操作、进程管理等。

实验内容本次操作系统实验分为以下几个部分:1. 实验一:进程管理本部分实验要求学生了解进程管理的基本概念和原理,掌握进程创建、终止和状态转换等操作。

学生需要完成以下任务:•编写一个简单的 C 程序,实现进程的创建、终止和状态转换功能。

•使用 Linux 命令行工具编译、运行和调试 C 程序。

•观察和分析进程的状态转换过程。

2. 实验二:进程调度本部分实验要求学生了解进程调度算法的原理和实现方法,掌握优先级调度、轮转调度和最短作业优先调度等算法。

学生需要完成以下任务:•编写一个简单的 C 程序,模拟进程调度算法的执行过程。

•使用 Linux 命令行工具编译、运行和调试 C 程序。

•观察和分析不同调度算法对进程执行顺序的影响。

3. 实验三:文件系统本部分实验要求学生了解文件系统的基本概念和实现原理,掌握文件的创建、读写和删除等操作。

学生需要完成以下任务:•编写一个简单的 C 程序,实现文件的创建、读写和删除功能。

•使用 Linux 命令行工具编译、运行和调试 C 程序。

•观察和分析文件系统的存储结构和操作过程。

4. 实验四:输入输出本部分实验要求学生了解操作系统的输入输出机制和设备驱动程序的原理和实现方法,掌握文件读写、设备驱动和错误处理等操作。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

操作系统实验指导书

操作系统实验指导书

《操作系统原理》实验指导书吴微编前言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开发环境主窗口。

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 实验目的了解操作系统的概念、功能和作用。

熟悉操作系统的发展历程和主要特点。

1.2 实验内容介绍操作系统的定义和基本功能。

分析操作系统的核心组件和架构。

探讨操作系统的主要特点和应用场景。

1.3 实验步骤讲解操作系统的定义和基本功能。

分析操作系统的核心组件和架构。

讨论操作系统的主要特点和应用场景。

1.4 实验总结总结操作系统的核心概念和主要特点。

强调操作系统在计算机系统中的重要性。

第二章:处理器管理2.1 实验目的了解处理器管理的基本原理和作用。

熟悉进程调度和上下文切换。

2.2 实验内容介绍处理器管理的基本原理和关键技术。

分析进程调度算法和上下文切换的过程。

2.3 实验步骤讲解处理器管理的基本原理和关键技术。

分析进程调度算法和上下文切换的过程。

2.4 实验总结总结处理器管理的核心概念和关键技术。

强调处理器管理在操作系统中的重要性。

第三章:内存管理3.1 实验目的了解内存管理的基本原理和作用。

熟悉虚拟内存和分页/分段机制。

3.2 实验内容介绍内存管理的基本原理和关键技术。

分析虚拟内存的实现和分页/分段机制。

3.3 实验步骤讲解内存管理的基本原理和关键技术。

分析虚拟内存的实现和分页/分段机制。

3.4 实验总结总结内存管理的核心概念和关键技术。

强调内存管理在操作系统中的重要性。

第四章:文件系统4.1 实验目的了解文件系统的基本原理和作用。

熟悉文件存储和访问控制。

4.2 实验内容介绍文件系统的基本原理和关键技术。

分析文件存储结构和访问控制机制。

4.3 实验步骤讲解文件系统的基本原理和关键技术。

分析文件存储结构和访问控制机制。

4.4 实验总结总结文件系统的核心概念和关键技术。

强调文件系统在操作系统中的重要性。

第五章:设备管理5.1 实验目的了解设备管理的基本原理和作用。

熟悉输入/输出设备和驱动程序。

5.2 实验内容介绍设备管理的基本原理和关键技术。

分析输入/输出设备和驱动程序的交互过程。

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

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

目录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学时)。

操作系统实验指导书

操作系统实验指导书

《操作系统原理》实验指导书羊四清编写适用专业:计算机科学与技术网络工程湖南人文科技学院计算机科学技术系2008年8 月页脚内容1前言操作系统是计算机的核心和灵魂。

操作系统软件的设计对整个计算机的功能和性能起着至关重要的作用,所以此门课也是必不可少的,是面向计算机科学与技术、网络工程、软件工程等大多数计算机专业本科生开设的一门计算机专业课程。

操作系统是计算机系统的核心,《操作系统》课程是计算机科学与技术专业的重要必修课。

本课程的目的是使学生掌握现代计算机操作系统的基本原理、基本设计方法及实现技术,具有分析现行操作系统和设计、开发实际操作系统的基本能力。

操作系统实验是操作系统课程的重要组成部分,属于学科基础实验范畴。

作为与相关教学内容配合的实践性教学环节,应在操作系统理论课教学过程中开设。

操作系统是计算机科学与技术专业必修的专业基础课程,操作系统实验的作用是:理解操作系统的设计和实现思路,掌握典型算法。

基本要求是:理解进程的概念,理解死锁,掌握银行家算法;掌握请求页式存储管理的实现原理及页面置换算法。

学生应具有高级语言编程能力、具有数据结构等基础知识。

说明:本实验指导书所提供的源程序均已在VC6.0下调试运行过.页脚内容2目录实验一进程创建模拟 (1)实验二进程撤销模拟 (19)实验三P、V 原语的模拟实现 (21)实验四带优先级的时间片轮换的进程调度算法的实现 (35)实验五银行家算法模拟 (57)实验六连续动态内存管理模拟实现 (62)实验七请求页式存储管理中常用页面置换算法模拟 (66)实验八SCAN 磁盘调度模拟实现 (77)实验九UNIX基本操作 (79)页脚内容3实验一进程创建模拟实验学时:2实验类型:验证实验要求:必修一、实验目的1)理解进程创建相关理论;2)掌握进程创建方法;3)掌握进程相关数据结构。

二、实验内容本实验针对操作系统中进程创建相关理论进行实验。

要求实验者输入实验指导书提供的代码并进行测试。

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

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

《操作系统原理》实验指导书《操作系统原理》实验指导书罗琼⼴州⼤学物理与电⼦⼯程学院1、Linux环境下基本命令的使⽤2、进程管理实验3、命令解释程序的实现1、实验⼀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 函数的帮助说明。

按空格键,翻页浏览。

按<:>,再按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查看当前登录在系统中的⽤户列表、系统中的⽤户总数和系统启动时间。

操作系统原理实验指导书

操作系统原理实验指导书

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

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

软件学院课程实验指导书课程名称操作系统原理任课教师郭伟开课学期辽宁工程技术大学软件学院软件工程系目录实验一 Linux环境下进程管理 (1)实验二银行家算法 (9)实验三虚拟内存页面置换算法 (12)实验四 Spooling技术实现............... ... ... ... .... .15 实验五网络文件系统. (20)实验六 linux文件系统及系统调用 (26)实验一Linux环境下进程管理一、实验属性实验性质:验证性实验学时: 4学时实验要求:必做二、实验目的1. 加深对进程概念的理解,明确进程和程序的区别;2. 进一步认识并发执行的实质;3. 分析进程争用资源的现象,学习解决进程互斥的方法;4. 了解Linux系统中进程通信的基本原理。

三、实验环境及知识准备1.实验环境: Linux系统开发环境2.知识准备:(1) Linux系统开发环境搭建;(2) Linux环境下GCC编译器的使用;(3)语言中函数定义与调用、指针和类型的定义与使用、结构的定义、动态内存的申请等预备知识。

四、实验内容1. 进程的创建编写一段程序,使用系统调用fork()创建两个子进程。

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

让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。

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

2. 进程的控制修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。

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

3. 用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容;利用wait( )来控制进程执行顺序。

五、实验步骤及指导1.进程的创建1.1 进程UNIX中,进程既是一个独立拥有资源的基本单位,又是一个独立调度的基本单位。

一个进程实体由若干个区(段)组成,包括程序区、数据区、栈区、共享存储区等。

每个区又分为若干页,每个进程配置有唯一的进程控制块PCB,用于控制和管理进程。

PCB的数据结构如下:(1)进程表项(Process Table Entry)。

包括一些最常用的核心数据:进程标识符PID、用户标识符UID、进程状态、事件描述符、进程和U区在内存或外存的地址、软中断信号、计时域、进程的大小、偏置值nice、指向就绪队列中下一个PCB 的指针P_Link、指向U区进程正文、数据及栈在内存区域的指针。

(2)U区(U Area)。

用于存放进程表项的一些扩充信息。

每一个进程都有一个私用的U区,其中含有:进程表项指针、真正用户标识符u-ruid(read user ID)、有效用户标识符u-euid(effective user ID)、用户文件描述符表、计时器、内部I/O参数、限制字段、差错字段、返回值、信号处理数组。

由于UNIX系统采用段页式存储管理,为了把段的起始虚地址变换为段在系统中的物理地址,便于实现区的共享,所以还有:(3)系统区表项。

以存放各个段在物理存储器中的位置等信息。

系统把一个进程的虚地址空间划分为若干个连续的逻辑区,有正文区、数据区、栈区等。

这些区是可被共享和保护的独立实体,多个进程可共享一个区。

为了对区进行管理,核心中设置一个系统区表,各表项中记录了以下有关描述活动区的信息:区的类型和大小、区的状态、区在物理存储器中的位置、引用计数、指向文件索引结点的指针。

(4)进程区表系统为每个进程配置了一张进程区表。

表中,每一项记录一个区的起始虚地址及指向系统区表中对应的区表项。

核心通过查找进程区表和系统区表,便可将区的逻辑地址变换为物理地址。

1.2 进程映像UNIX系统中,进程是进程映像的执行过程,也就是正在执行的进程实体。

它由三部分组成:(1)用户级上、下文。

主要成分是用户程序;(2)寄存器上、下文。

由CPU中的一些寄存器的内容组成,如PC,PSW,SP及通用寄存器等;(3)系统级上、下文。

包括OS为管理进程所用的信息,有静态和动态之分。

1.3 所涉及的系统调用fork( )创建一个新进程。

系统调用格式:pid=fork( )参数定义:int fork( )fork( )返回值意义如下:0:在子进程中,pid变量保存的fork( )返回值为0,表示当前进程是子进程。

>0:在父进程中,pid变量保存的fork( )返回值为子进程的id值(进程唯一标识符)。

-1:创建失败。

如果fork( )调用成功,它向父进程返回子进程的PID,并向子进程返回0,即fork( )被调用了一次,但返回了两次。

此时OS在内存中建立一个新进程,所建的新进程是调用fork( )父进程(parent process)的副本,称为子进程(child process)。

子进程继承了父进程的许多特性,并具有与父进程完全相同的用户级上下文。

父进程与子进程并发执行。

1.4 核心为fork( )完成以下操作(1)为新进程分配一进程表项和进程标识符进入fork( )后,核心检查系统是否有足够的资源来建立一个新进程。

若资源不足,则fork( )系统调用失败;否则,核心为新进程分配一进程表项和唯一的进程标识符。

(2)检查同时运行的进程数目超过预先规定的最大数目时,fork( )系统调用失败。

(3)拷贝进程表项中的数据将父进程的当前目录和所有已打开的数据拷贝到子进程表项中,并置进程的状态为“创建”状态。

(4)子进程继承父进程的所有文件对父进程当前目录和所有已打开的文件表项中的引用计数加1。

(5)为子进程创建进程上、下文进程创建结束,设子进程状态为“内存中就绪”并返回子进程的标识符。

(6)子进程执行虽然父进程与子进程程序完全相同,但每个进程都有自己的程序计数器PC(注意子进程的PC开始位置),然后根据pid变量保存的fork( )返回值的不同,执行了不同的分支语句。

1.5 参考程序#include <stdio.h>main( ){int p1,p2;while((p1=fork( ))= = -1); /*创建子进程p1*/if (p1= =0) putchar('b');else{while((p2=fork( ))= = -1); /*创建子进程p2*/if(p2= =0) putchar('c');else putchar('a');}}<运行结果>bca(有时会出现abc的任意的排列)分析:从进程执行并发来看,输出abc的排列都是有可能的。

原因:fork()创建进程所需的时间虽然可能多于输出一个字符的时间,但各个进程的时间片的获得却不是一定是顺序的,所以输出abc的排列都是有可能的。

2.进程的控制修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。

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

2.1 实验指导(1)所涉及的系统调用lockf()lockf(files,function,size):用作锁定文件的某些段或者整个文件,本函数适用的头文件为:#include<unistd.h>参数定义:int lockf(files,function,size)int files,function;long size;其中:files是文件描述符:function是锁定和解锁;1表示锁定,0表示解锁。

size是锁定和解锁的字节数,若用0,表示从文件的当前位置到文件尾。

(2)参考程序〈程序1〉#include <stdio.h>main( ){int p1,p2,i;while((p1=fork( ))= = -1); /*创建子进程p1*/if (p1= =0)for(i=0;i<100;i++)printf("daughter %d/n",i);else{while((p2=fork( ))= = -1); /*创建子进程p2*/if(p2= =0)for(i=0;i<100;i++)printf("son %d/n",i);elsefor(i=0;i<100;i++)printf("parent %d/n",i);}}〈运行结果〉parent…son…daughter..daughter..或parent…son…parent…daughter…等分析:由于函数printf()输出的字符串之间不会被中断,因此,每个字符串内部的字符顺序输出时不变。

但是, 由于进程并发执行时的调度顺序和父子进程的抢占处理机问题,输出字符串的顺序和先后随着执行的不同而发生变化。

这与打印单字符的结果相同。

〈程序2〉#include<stdio.h>#include<unistd.h>main(){int p1,p2,i;while((p1=fork())==-1);if(p1==0){lockf(1,1,0);for(i=0;i<50;i++)printf("child %d/n",i);lockf(1,0,0);}else{while((p2=fork())==-1);if(p2==0){lockf(1,1,0);for(i=0;i<50;i++)printf("son %d/n",i);lockf(1,0,0);}else{lockf(1,1,0);for(i=0;i<50;i++)printf("daughter %d/n",i);lockf(1,0,0);}}}<运行结果〉输出parent块,son块,grandchild块的顺序可能不同,但是每个块的输出过程不会被打断。

分析:因为上述程序执行时,lockf(1,1,0)锁定标准输出设备,lockf(1,0,0)解锁标准输出设备,在lockf(1,1,0)与lockf(1,0,0)中间的for循环输出不会被中断,加锁与不加锁效果不相同。

六、注意事项本课程每个实验为LINUX环境下进行实验,要求使用GCC编译器,能够熟练使用VIM编辑器进行文件编辑和代码开发,使用操作系统RedHat Enterprise 6 以上操作系统。

七、实验报告内容及要求1.实验的程序源码;2.运行程序,给出运行结果截图;3.分析实验结果,给出实验结论。

实验二银行家算法一、实验属性实验性质:验证性实验学时: 4学时实验要求:必做二、实验目的1.进一步理解利用银行家算法避免死锁的问题;2.在了解和掌握银行家算法的基础上,编制银行家算法通用程序,将调试结果显示在计算机屏幕上,再检测和笔算的一致性;3.理解和掌握安全序列、安全性算法。

相关文档
最新文档