《操作系统原理》信管专业实验指导书资料
操作系统原理实验指导
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、目的与要求
目的:存储器管理是操作系统重要的组成部分,提高存储器的效率始终是操作系统研究的重要课题之一。虚拟存储技术是用来扩大存储容量的一种重要方法。学生应独立地使用一种开发工具或高级语言编写几个常用的存储分配算法,并能设计一个存储管理的模拟程序,对各种算法进行分析比较,评测其性能优劣,从而加深对这些算法的理解,巩固所学的知识。
操作系统实验指导
操作系统是计算机的最重要的系统软件,它在计算机中具有核心地位,其作用是对计算机系统资源进行统一的调度和管理,提供各种强有力的系统服务,为用户创造灵活而又方便的使用环境。一个精心设计的操作系统能极大地扩充计算机系统的功能,充分地发挥系统中各种资源的使用效率,提高系统工作的可靠性。
操作系统原理是计算机科学与技术专业的一门主要专业课程,它涉及计算机系统中各种软、硬资源管理的实现原理与方法,内容非常丰富,综合性非常强,并且还具有很强的实践性。只有把理论与实践紧密地结合起来,才能取得较好地学习效果。
操作系统实验指导书
操作系统实验指导书一、实验说明1、实验目的实验是操作系统原理课程中不可缺少的重要教学环节,实验目的是使学生理论联系实际,使学生在实践探索中去发现问题、去解决问题,提高了学生获取知识和应用技术的能力,培养了学生分析和解决问题的能力。
《操作系统原理》要求理论与实践相结合,本门实验课程是对《操作系统原理》课堂教学的一个重要补充,与理论学习起着相辅相成的作用,是实施《操作系统原理》教学的一个重要组成部分。
通过本实验课的实践学习,可以增强本专业的学生对系统实现的认识。
对加深理解和掌握操作系统相关原理有重要帮助。
2、实验要求进一步了解和掌握操作系统原理,提高系统设计的能力。
对每一实验题目,应独立完成,并要求:·上机前,学生必须做好充分的实验准备工作,掌握与实验相关的背景知识,用任一种高级语言编写程序。
·上机时,认真调试,并观察、记录程序运行过程中出现的现象和问题。
·上机后,分析实验结果并写出实验报告。
3、实验报告要求每个实验(包括选做的)均应编写实验报告,学生实验后要写出严谨的、实事求是的、文字通顺的、字迹公整的实验报告。
实验报告应包括以下内容:(1)实验题目(2)实验目的(3)实验内容●程序中使用的数据结构及符号说明●流程图●源程序清单并附上注释(4)实验结果及分析●运行结果(必须是上面程序清单所对应输出的结果)●对运行情况所作的分析以及本次调试程序所取得的经验。
如果程序未能通过,应分析其原因。
二、实验内容实验一熟悉使用计算机系统一、实验名称:熟悉使用计算机系统二、实验目的与要求通过对Windows操作系统的使用,熟悉Windows操作系统中的基本概念,如单用户、多任务、进程和文件等,熟悉Windows中命令行方式下常用命令的使用方法;进一步熟悉TC语言与开发环境,为以后的实验打好基础。
三、实验内容1.开机后,熟悉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开发环境主窗口。
操作系统实验指导1
《操作系统原理》实验指导书杨会君编写适用专业:计算机科学与技术软件工程西北农林科大信息工程学院电商系2010年10 月前言操作系统是计算机的核心和灵魂。
操作系统软件的设计对整个计算机的功能和性能起着至关重要的作用,所以此门课也是必不可少的,是面向计算机科学与技术、网络工程、软件工程等大多数计算机专业本科生开设的一门计算机专业课程。
操作系统是计算机系统的核心,《操作系统》课程是计算机科学与技术专业的重要必修课。
本课程的目的是使学生掌握现代计算机操作系统的基本原理、基本设计方法及实现技术,具有分析现行操作系统和设计、开发实际操作系统的基本能力。
操作系统实验是操作系统课程的重要组成部分,属于学科基础实验范畴。
作为与相关教学内容配合的实践性教学环节,应在操作系统理论课教学过程中开设。
操作系统是计算机科学与技术专业必修的专业基础课程,操作系统实验的作用是:理解操作系统的设计和实现思路,掌握典型算法。
基本要求是:理解进程的概念,理解死锁,掌握银行家算法;掌握请求页式存储管理的实现原理及页面置换算法。
学生应具有高级语言编程能力、具有数据结构等基础知识。
说明:本实验指导书所提供的源程序均已在VC6.0下调试运行过.目录实验一进程创建模拟 (1)实验二进程撤销模拟............................................................................... 错误!未定义书签。
实验三P、V 原语的模拟实现................................................................ 错误!未定义书签。
实验四带优先级的时间片轮换的进程调度算法的实现....................... 错误!未定义书签。
实验五银行家算法模拟........................................................................... 错误!未定义书签。
《操作系统原理》课程设计任务书0834131
《操作系统原理》课程设计任务书0834131河南城建学院《操作系统原理》课程设计任务书班级:0834131专业:信息管理与信息技术(本科)课程名称:操作系统原理指导教师:魏新红计算机科学与⼯程学院2015年12⽉《操作系统》课程设计任务书⼀、设计时间及地点1、设计时间本课程设计时间为2周,安排在第5学期期末最后2个教学周进⾏,上午:8:00-12:00,下午:14:00-15:45。
设计周的最后⼀天为验收时间,每个⼈都要对设计结果进⾏答辩,指导教师根据评分标准给出设计成绩。
2、设计地点设计地点为计算机系实验中⼼10#A301,如有变动另⾏通知。
3、设计时间安排具体的设计时间和地点安排详见附表1。
⼆、设计⽬的和要求1、设计⽬的学习计算机软件技术,特别是计算机操作系统技术,除了需要刻苦努⼒外,还需要掌握软件和操作系统的原理与设计技巧。
如何学习和掌握操作系统技术的原理与实际技巧呢?除了听课和读书之外,最好的⽅法恐怕就是在实践中练习。
例如,⾃⼰设计⼀个⼩型操作系统,多使⽤操作系统,多阅读和分析操作源代码等。
但由于我们的条件和学时有限,在理论学习过程中没有给同学们提供更多的实验机会。
本操作系统课程设计,是给同学提供⼀个集中实验的机会。
希望同学们通过该设计加深对所学习课程的理解。
2、设计要求(1)纪律要求设计期间必须在机房或教室,时间上午:8:00-12:00,下午:14:00-15:45。
不得迟到、早退,有事请假,不得⽆故旷课,缺课超过总学时的1/3者,不得参与答辩,并以不及格论处。
1)严格遵循软件实习和课程设计的有关安排,按时完成设计任务。
2)严格遵守学校的纪律和机房各项管理规定。
3)严格请假制度,需请假时。
请假需要有辅导员签字的假条,且必须经指导⽼师批准。
(2)技术要求按软件⼯程的思想和⽅法进⾏设计,并把它作为⼀个⼯程来做。
设计的每⼀步都有要形成⽂档,“成品”出来以后要有使⽤说明书和测试报告。
最后按院⽅统⼀要求整理出软件实习“论⽂”,并分别以电⼦和书⾯⽂档的形式上交。
操作系统原理实验大纲
《操作系统原理》实验教学大纲开课实验室:计算机基础实验室课程名称:操作系统原理适用专业:计算机科学与技术学时数: 20一、实验课的任务、性质与目的《操作系统》是计算机科学与技术专业及网络工程专业的一门专业必修课程,其特点是概念多、较抽象和涉及面广,同时,也是一门实践性很强的课程,既要掌握原理,又需编程验证。
只有通过上机实验,才能使学生在整体上对操作系统的工作原理有深入的理解和掌握。
因此,本实验课程是对《操作系统》课堂教学的一个重要补充,与理论学习起着相辅相成的作用,是实施《操作系统》原理教学的一个重要组成部分。
通过本实验课的实践学习,可以使学生熟悉Uni x操作系统环境,掌握Unix的基本使用,加深理解和掌握操作系统中主要功能模块的工作原理及其实现算法,并能熟练运用C或C++语言编程以实现处理机调度、存储管理、文件管理等主要模块的模拟系统,增强本专业学生对系统实现的认识。
二、主要仪器设备及环境:硬件设备:高档微机软件环境:Windows XPCVisual C++实验2、进程调度实验1.实验目的要求:用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。
2.实验主要内容:实现一个有 N个进程并发执行的进程调度程序。
说明:每个进程有一个进程控制块( PCB)表示。
进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。
进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。
进程的到达时间为进程输入的时间。
进程的运行时间以时间片为单位进行计算。
每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finis h)三种状态之一。
就绪进程获得 CPU后都只能运行一个时间片。
用已占用CPU 时间加1来表示。
如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。
操作系统实验指导书
操作系统原理实验指导书(2*5=10学时)实验1 操作系统环境通过调查研究活动和对Windows、Linux系统运行的观察分析,回顾计算环境的基本术语,加深理解有关操作系统的基础概念,掌握主流操作系统的命令和图形界面,学会操作系统的主要系统管理操作。
1.1 操作系统的计算环境1.2 Windows XP系统管理1.3 访问Linux系统§1.1 操作系统的计算环境背景知识本实验帮助回顾Windows 、UNIX和Linux的术语,加深理解有关操作系统的基础概念。
调查Windows、UNIX和Linux的使用情况,看哪些机构在使用Windows、UNIX或者Linux系统;研究Web站点,看哪些网站分别支持着Windows、UNIX和Linux操作系统的应用。
实验目的通过实验,加深对以下内容的理解基本的计算机硬件组件;计算机操作系统;Windows的发展和版本;UNIX和Linux的历史和版本;Windows XP、UNIX或Linux操作环境。
调查Windows、UNIX和Linux系统的使用情况,研究支持Windows和Linux的Web站点。
工具/准备工作在开始本实验之前,请回顾教材的相关内容,了解学校或者其他机构中使用了哪些操作系统,找出是否在用Windows、UNIX和Linux,以及在哪里使用这些操作系统。
实验内容与步骤1、识别一台计算机的4个主要硬件组成部分。
2、复习3个概念:内核、shell、文件系统。
3、Windows XP操作系统的主要优点是什么?4、UNIX操作系统的主要优点是什么?5、Linux操作系统的主要优点是什么?6、列举Linux操作系统的主要组成部分。
7、Linux内核管理着哪几件事情?8、Linux系统的主要shell的名字和它们各自默认的提示符是什么?9、操作系统的文件系统由哪几部分组成的?10、找出实际使用的几种操作系统,请列举其版本、支持厂商和服务器的功能。
《操作系统原理》报告
《操作系统原理》报告《操作系统原理》实验指导书班级:__信管***_____学号:__***__姓名:___***________信息管理与信息系统教研室目录实验题目二:模拟进程调度功能 (4)一、题目类型: (4)二、实验目的: (4)三、实验环境: (4)四、实验内容: (4)五、实验要求: (4)六、各功能简要说明: (5)七、程序清单: (5)八、程序中使用的数据结构及符号说明: (11)九、调试程序时出现问题说明及解决的方法: (11)实验题目五:模拟使用银行家算法判断系统的状态 (11)一、题目类型: (11)二、实验目的: (11)三、实验环境: (11)四、实验内容: (12)五、实验要求: (12)六、各功能简要说明: (13)七、程序清单: (13)(21)八、程序中使用的数据结构及符号说明: (21)九、程序调试时出现问题及解决的方法: (22)引言操作系统是信息管理与信息系统专业一门重要的专业理论课程,了解和掌握操作系统的基本概念、功能和实现原理,对认识整个计算机系统的工作原理十分重要。
操作系统实验是操作系统课程的一个重要组成部分,通过试验环节的锻炼使同学们不仅能够对以前的所学过的基础知识加以巩固,同时能够通过上机实验,对操作系统的抽象理论知识加以理解,最终达到融会贯通的目的,因此,实验环节是同学们理解、掌握操作系统基本理论的一个重要环节。
本实验指导书,根据教材中的重点内容设定了相应的实验题目,由于实验课程的学时有限,我们规定了必做题目和选做题目,其中必做题目必须在规定的上机学时中完成,必须有相应的预习报告和实验报告。
选做题目是针对有能力或感兴趣的同学利用课余时间或上机学时的剩余时间完成。
实验题目二:模拟进程调度功能一、题目类型:必做题目。
二、实验目的:通过本实验,进一步掌握进程调度的功能和实现原理。
三、实验环境:1、硬件:PC机及其兼容机。
2、软件:Windows OS,Turbo C或C++、VC++、、Java等。
操作系统原理实验指导书
目录实验一系统功能调用 (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. 掌握操作系统的基本概念、原理和方法,能够分析和解决实际问题。
2. 了解操作系统的体系结构和实现技术,能够设计和开发简单的操作系统。
3. 具备跨平台编程和移植性设计的理念和方法。
三、课程内容1. 操作系统概述:介绍操作系统的基本概念、作用和功能,以及操作系统的发展历程。
2. 操作系统结构:讲述操作系统的组成部分及其相互关系,包括进程管理、内存管理、文件系统和设备驱动程序等。
3. 进程管理:介绍进程和线程的基本概念、实现方式以及进程间的通信方式,如管道、消息队列、共享内存等。
4. 内存管理:讲述内存的分配和管理方式,包括虚拟内存和物理内存的概念和使用方法。
5. 文件系统:介绍文件系统的基本概念、数据结构、目录结构和访问控制,以及文件系统的实现和管理。
6. 设备驱动程序:讲述设备驱动程序的基本概念、接口和驱动方式,以及设备管理的实现方法。
四、教学方法本课程采用理论讲授和实践操作相结合的教学方法。
教师通过课堂讲解和演示,帮助学生理解操作系统的基本概念和原理;同时,学生需要通过实验和实践操作,掌握操作系统的实现技术和应用方法。
此外,教师还会组织小组讨论和案例分析,培养学生的团队精神和解决问题的能力。
五、学习资源本课程提供了丰富的教材和学习资源,包括电子课件、实验指导书、习题集和案例分析等。
学生可以通过互联网和图书馆等途径获取更多的学习资料和参考书籍,以扩大知识面和提高学习效果。
六、课程评估本课程的评估方法包括平时作业、实验报告和期末考试三个部分。
平时作业主要考察学生对课堂知识的掌握程度,实验报告则是对学生实践操作能力的评估,而期末考试则是对学生综合能力的全面考核。
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——消费者。
第三列:线程在生产和消费前的休眠时间,单位为秒。
第四及以后各列:消费的产品所对应的生产者线程号。
操作系统原理
就绪状态:已经准备就绪,一旦得到CPU,
就立即可以运行。(有多个进程处于此状态)
封锁状态:正在等待某个事件的发生(如等
待I/O的完成),而暂停执行,这时,即使给 它CPU时间,它也无法执行。
运行
?
就绪
挂起
?
进程的状态变化
PCB
基本内容的确定
进程的组成
n:=0; K1
n:=n+1; K2
程序B打印0
…… … ……
程序B
打印n S
程序B打印1
程序并发执行的特点
二、程序与计算不再一一对应
在程序顺序执行时,一个程序总是对应 一个具体的计算,但在程序的并发执行时, 可能有多用户共享使用同一个程序,但处理 (计算)的对象却是不同的,例如,在多用 户环境下,可能同时有多个用户调用C语言 的编译程序,这就是典型的一个程序对应多 个用户源程序的情况。
分时系统与多道批处理系统相比,具有完 全不同的特征,由上所述可以归纳成以下 几点:
(1)多路性 (2)独立性 (3)及时性 (4)交互性
什么是操作系统 操作系统的性质
操作系统是控制和管理计 算机系统内各种硬件和软件资 源、有效地组织多道程序运行 的系统软件(或程序集合),是用 户与计算机之间的接口。
的顺序;
同一独占资源上的不同作业的处理步骤不能
同时执行。
程序的顺序执行与并发执行
假设有一个程 序 由 S0 ~ Sn+1 个 语句,先顺序执 行 S0 , 然 后 并 发 执行 S1~Sn语句, 最后顺序执行 Sn+1 。
程序并发执行的特点
一、失去了程序的 封闭性
程序A
操作系统课内实验指导书
操作系统原理课内实验指导书实验一:进程管理实验指导准备知识1.基本概念1)进程的概念2)进程与程序的区别3)并发执行的概念4)进程互斥的概念5)进程通信的基本概念2.系统调用系统调用是一种进入系统空间的办法。
通常,在OS的核心中都设置了一组用于实现各种系统功能的子程序,并将他们提供给程序员使用。
程序员在需要OS提供某种服务的时候,便可以调用一条系统调用命令,去实现希望的功能,这就是系统调用。
因此,系统调用就像一个黑箱子一样,对用户屏蔽了操作系统的具体动作而只是提供了调用功能的接口。
不同的操作系统有各自的系统调用方法。
如Windows API,便是Windows的系统调用。
Linux的系统调用与之不同的是源于Linux内核代码完全公开,所以可以细致地分析出其系统调用的机制。
2.1系统调用和普通函数的区别1)运行于不同的状态用户程序可以通过系统调用进入系统空间,在核心态执行;而普通函数则只能在用户空间当中进行。
2)通过软中断切断由于用户程序使用系统调用后要进入系统空间,所以需要调用一个软中断;而普通函数在被调用时则没有这个进程。
2.2系统调用的类型系统调用的作用与它的宿主操作系统有密切关系。
根据操作系统的性质不同,它们所提供的系统调用会有一定的差异,不过对于普通操作系统而言,应该具有下面几类系统调用: 进程控制类文件操纵类进程通信类信息维护类2.3系统调用的实现机制由于操作系统的不同,其系统调用的实现方式可能不一样,然而实现机制应该大致相同的,一般包含下面两个步骤。
1)设置系统调用号在系统当中,往往设置多条系统调用命令,并赋予每条系统调用命令一个惟一的系统调用号。
根据分配系统调用号方式的不同分为:直接方式和参数表方式。
系统调用的参数表方式分为直接和间接两种方式,如图1所示。
图1 系统调用的参数表方式2)处理系统调用操作系统中有一张系统调用入口表。
表中的每个表目都对应一条系统调用命令,它包含有该系统调用自带参数的数目、系统调用命令处理程序的入口地址等等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《操作系统原理》实验指导书班级:_______________学号:_______________姓名:_______________山东建筑大学管理工程学院信息管理与信息系统教研室目录引言 (1)实验题目一 (2)实验题目二 (4)实验题目三 (6)实验题目四 (8)实验题目五 (10)实验题目六 (12)引言操作系统是信息管理与信息系统专业一门重要的专业理论课程,了解和掌握操作系统的基本概念、功能和实现原理,对认识整个计算机系统的工作原理十分重要。
操作系统实验是操作系统课程的一个重要组成部分,通过试验环节的锻炼使同学们不仅能够对以前的所学过的基础知识加以巩固,同时能够通过上机实验,对操作系统的抽象理论知识加以理解,最终达到融会贯通的目的,因此,实验环节是同学们理解、掌握操作系统基本理论的一个重要环节。
本实验指导书,根据教材中的重点内容设定了相应的实验题目,由于实验课程的学时有限,我们规定了必做题目和选做题目,其中必做题目必须在规定的上机学时中完成,必须有相应的预习报告和实验报告。
选做题目是针对有能力或感兴趣的同学利用课余时间或上机学时的剩余时间完成。
实验题目一:模拟进程创建、终止、阻塞、唤醒原语一、题目类型:必做题目。
二、实验目的:通过设计并调试创建、终止、阻塞、唤醒原语功能,有助于对操作系统中进程控制功能的理解,掌握操作系统模块的设计方法和工作原理。
三、实验环境:1、硬件:PC 机及其兼容机。
2、软件:Windows OS ,Turbo C 或C++、VC++、 、Java 等。
四、实验内容:1、设计创建、终止、阻塞、唤醒原语功能函数。
2、设计主函数,采用菜单结构(参见后面给出的流程图)。
3、设计“显示队列”函数,目的能将就绪、阻塞队列中的进程信息显示在屏幕上,以供随时查看各队列中进程的变化情况。
五、实验要求:1、进程PCB 中应包含以下内容:2、系统总体结构:其中:进程名用P1,P2标识。
优先级及运行时间:为实验题目二做准备。
状态为:就绪、运行、阻塞,三种基本状态。
指针:指向下一个PCB 。
六、各功能简要说明:1、创建:在本实验中,该功能仅实现建立PCB,初始化PCB,并将该PCB放入就绪队列中。
2、阻塞:在本实验中,实现的功能为,根据用户输入的进程名称在就绪队列中查找该进程,若该进程存在且在就绪队列中,则修改该进程PCB的状态,并将该进程从就绪队列转入阻塞队列;若该进程存在且已在阻塞队列中,则给出相应的提示信息;若该进程不存在,也需要给出相应的提示信息。
注意:若就绪队列为空,则不能执行阻塞功能。
3、唤醒:功能类似阻塞功能,注意:若阻塞队列为空,则不能执行唤醒功能。
4、终止:根据用户输入要结束的进程名称,从就绪队列或阻塞队列中找到相应的进程PCB,并将该PCB从相应队列中删除。
若该进程不存在,需要给出提示。
若就绪队列与阻塞队列均为空,则不能执行该功能。
5、显示:将就绪队列与阻塞队列中的进程列表显示出来。
七、其它注意事项:1、就绪队列与阻塞队列中不能存在同名进程,且总数最多为10个进程。
2、系统应有出错处理,如:功能选择不在0----5之间,应给出相应的提示,并重新选择功能。
3、界面应友好、美观,在任何情况下,都应有相应的提示信息。
例:创建进程时,屏幕上应提示用户输入什么信息:进程名:优先级:运行时间:4、完成时间: 4学时5、实验报告要求:第一页要求用专用的实验报告纸,其它可用8开的白纸。
报告内容包括:(1)实验题目:(2)实验目的:(3)实验环境:(4)实验内容:(5)算法流程图:(6)程序清单:(7)程序中使用的数据结构及符号说明:(8)调试程序时出现问题说明及解决的方法:实验题目二:模拟进程调度功能一、题目类型:必做题目。
二、实验目的:通过本实验,进一步掌握进程调度的功能和实现原理。
三、实验环境:同实验一。
四、实验内容:1、设计进程调度功能,至少模拟两种以上调度算法。
如:优先级调度算法、时间片调度算法等。
2、进程调度功能作为一个函数scheduler,加入到实验题目一中。
3、进程调度程序从就绪队列中挑选进程,若队列为空,应显示“无就绪进程无法调度”的提示信息。
4、若选上一个进程,以显示:进程名、状态、时间片、优先级等信息表示一个进程被执行。
若运行完,应删除相应PCB。
五、实验要求:1、在实验题目一中的主菜单中加入一个菜单项:6 调度,选择该菜单项后,系统进入进程调度。
2六、各功能简要说明:1、返回主菜单:当用户选择该项功能时,系统退出进程调度功能,返回到实验题目一中的主菜单。
2、优先级调度:选择该功能选项时,系统将从就绪队列中选择优先级最高的进程,使该进程处于执行状态(将进程PCB的内容显示在屏幕上,显示完成后,该进程结束,即撤销该进程的PCB)。
3、时间片调度:每选择一次该功能,将就绪队列中所有进程的内容显示在屏幕上,并将每个执行进程的执行时间减去一个时间片,若某进程的剩余时间小于等于0,则表明该进程运行结束,撤销该进程的PCB。
七、其它注意事项:1、设计界面要美观、友好。
2、若显示信息较多时,应考虑分屏显示。
3、完成时间:二周内。
4、时间充裕的同学,可参照下面的思想,对实验题目一、二进行修改:(1)为系统选定某种进程调度算法,选定后,系统将按照该调度算法进行进程的调度。
(2)创建进程:①当创建第一个进程时,该进程立即由就绪转入执行状态,作为运行的进程。
②若采用优先级调度算法,则考虑在创建新进程或唤醒某进程后,是否会引起重新调度。
(3)阻塞进程:只能阻塞当前正在执行的进程,阻塞后,需要按照调度算法,选择新的执行进程。
(4)唤醒进程:将阻塞队列中的某个进程唤醒转入就绪队列,注意,唤醒进程插入就绪队列后,是否会引起重新调度。
(5)终止进程:因为本实验中无法实现运行进程的自行终止,必须通过该功能实现进程的结束,因此,在设计系统时,要考虑,若终止的是执行进程,则会引起进程的重新调度。
若终止的不是执行进程,则不会引起重新调度。
(6)以上内容仅供同学们参考,有兴趣的同学可参照上面的基本思想及书上介绍的进程调度部分、进程基本状态之间的转换部分内容来完善该题目的设计。
八、实验报告要求:同实验一。
实验题目三:模拟动态分区首次适应分配和回收算法一、题目类型:必做题目。
二、实验目的:通过本实验,可加深理解动态分区分配、回收程序的功能和具体实现,特别是对回收分区的合并的理解。
三、实验环境:同实验一。
四、实验内容:1、 设计动态分区首次适应分配、回收算法。
2、 设计“未分配区说明表”,格式为:3、设计“已分配区说明表”,格式为:4、 设计显示程序,将“未分配区说明表”和“已分配区说明表”的内容,显示在屏幕上。
5、 初始分配从一个空闲区分配起,回收时要合并空区。
五、实验要求:1、 系统要求分配一个分区时,应输入:作业名、作业长度。
2、 回收一个分区时,应输入:回收的作业名。
回收的分区请注意是否需要进行合并。
3、五、各功能简要说明:1、分配功能:选择该功能后,首先输入需要分配空间的作业名及所需空间的大小。
然后,按照首次适用算法从空闲分区表中找到一个合适的分区,若找到,则划分相应的空闲分区给该作业(修改“未分配区说明表”和“已分配区说明表”中的内容);若没有找到,需要给出相应的提示信息。
2、回收算法:选择该功能后,首先输入需要回收的作业的名称,然后,系统按照该名称从“已分配区说明表”中找到该作业对应的表项,若找到,则回收该分区(修改“未分配区说明表”和“已分配区说明表”中的内容),要注意空闲分区的合并与空闲分区表需要按地址有序调整;若没有找到,则给出相应的提示信息。
3、显示分区表:将两个分区表的内容显示在屏幕上,以便随时查看程序的运行情况。
六、其它注意事项:1、“未分配区说明表”的初始化是指:将初始空闲分区的信息作为该表的第一个表项,且状态为1,其余空闲表项的状态为0。
2、分配时若剩余的碎片太小,则该小碎片不要作为空闲分区存在。
3、若无空闲分区满足一个作业的需求,但分散空闲分区的合并后能够满足该作业,考虑将适当的空闲分区合并。
4、“已分配区说明表”的初始化是指:将该表中每个表项的状态置为0。
5、显示分区表:只是将状态为1的表项显示出来。
6、完成时间:两周内。
七、实验报告要求:同实验一。
实验题目四:模拟请求分页管理中地址转换和缺页中断处理一、题目类型:必做题目。
二、实验目的:了解内存请求分页管理中地址转换过程与先进先出置换算法和缺页中断处理过程。
三、实验环境:同实验一。
四、实验内容:1、 在页式管理中,地址转换是由硬件完成的,实验中设计程序模拟地址转换过程。
2、 设计页表格式为:3、 设内存1块=1024B ,现有一个共8页的作业,其副本已存在磁盘上,设第0页至第2页已装入主存,其余5页都不在内存。
将页表进行初始化处理。
4、 假设每个作业只分配3块内存,按先进先出置换算法淘汰。
用“页面队列”表示淘汰的顺序。
页面队列5、设计缺页中断处理程序。
当对读入的逻辑地址,划分为页号、页内地址后,通过页表发现访问的页不在内存,转入“缺页中断处理”程序去处理。
1.指向最先调入的页2.采用“先进先出”页面置换算法进行缺页中断处理。
六、其它注意事项:1、输入的逻辑地址用十进制表示,但不超过7*1024 –1(因页表设了0---7个表目)。
2、可以尝试使用其它页面置换算法完成该题目。
3、完成时间:二周内。
七、实验报告要求:同实验一。
实验题目五:模拟使用银行家算法判断系统的状态一、题目类型:选作题目二、实验目的:银行家算法是操作系统中避免死锁的算法,本实验通过对银行家算法的模拟,加强学生对该算法的理解与应用。
三、实验环境:同实验一。
四、实验内容:1、建立T0时刻的资源分配表,初始化。
2、设计银行家算法,输入一个进程的资源请求,按银行家算法步骤进行检查。
3、设计安全性算法,检查某时系统是否安全。
4、设计显示函数,显示资源分配表,安全分配序列。
五、实验要求:1、T0时刻的资源分配表由进程数组,Max,Allocation,Need,Available 5个数组构成。
2、系统总体结构。
其中资源申请模块功能描述如下:六、各功能简要说明:1、资源申请:读入一个进程申请,按银行家算法,安全算法进行试分配。
2、显示资源分配表:分屏显示资源分配表某时刻状态。
3、退出:退出系统七、其它注意事项:1、设计界面要美观,友好2、显示资源分配表,可分屏显示3、完成时间:二周内(4学时)八、实验报告要求:同实验一。
实验题目六:模拟外存的分配与回收算法一、题目类型:选做题目。
二、实验目的:了解空闲盘块的组织方法,对空闲盘块的分配与回收,已分配盘块的组织方法。
三、实验环境:同实验题目一。