文档库 最新最全的文档下载
当前位置:文档库 › OS实验大纲

OS实验大纲

OS实验大纲
OS实验大纲

实验一:操作系统的发展现状

1.1 实验目标

操作系统是随着计算机技术的发展而不断地向前发展,为了加深学生对操作系统概念的理解,了解操作系统的发展方向,培养学生合作、写文档和论文的能力,设计了本次实验。

1.2 实验环境

教学机房、图书馆。

1.3 实验内容及步骤

1.以“操作系统的发展现状”为题

2.书写论文形式3000-5000字综述报告

3.查资料,不许抄袭。

4.参考纲要如下:

(1)操作系统的研究意义

●对基础研究,着重结合国际科学发展趋势,论述操作系统研究的科学意义;

●对应用基础研究,着重结合学科前沿、围绕国民经济和社会发展中的重要科技

问题,论述其应用前景。

(2)国内外研究现状

(3)当前操作系统的创新之处和存在问题等

(4)主要参考文献及出处

实验二:时间片轮转

1.1 实验目标

掌握进程调度的各类算法,以时间片轮转算法为例,运用所学C语言知识,编写该算法的实现过程。

1.2 实验环境

教学机房,C语言程序平台。

1.3 实验内容及步骤

1.理解Round Robin(RR算法)原理:进程执行时间片到后,转入就绪状态。

2.了解RR算法特点:

(1)时间片过大:退化为FCFS

(2)时间片过小:常用命令需要多个时间片才能运行完毕。

3.分析决定时间片的因素

(1)响应时间的要求

(2)就绪队列中进程的数目

(3)系统的处理能力,时空开销

4.运用C语言编程实现下题的RR算法,要求程序运行后可根据输入时间片的值不同,输出相应的T和W的运算结果。

1.4 实验思考题

简述学习过的各种调度算法的特征,以及算法性能指标T和W值的意义。算法包括:先来先服务、短作业(进程)优先、静态优先数、动态优先数、时间片轮转算法。

实验三:生产者和消费者

1.1 实验目标

掌握操作系统对进程管理的同步和互斥问题,以经典同步问题“生产者和消费者”为例,运用所学C语言知识,编写该问题的模拟运行环境。

1.2 实验环境

教学机房,C语言程序平台。

1.3 实验内容及步骤

1.了解经典同步问题“生产者和消费者”

生产者与消费者可以通过一个环形缓冲池联系起来,环形缓冲池由几个大小相等的缓冲块组成,每个缓冲块容纳一个产品。每个生产者可不断地每次往缓冲池中送一个生产产品,而每个消费者则可不断地每次从缓冲池中取出一个产品。指针i和指针j分别指出当前的第一个空缓冲块和第一个满缓冲块。

2.分析和理解

(1)既存在合作同步问题,也存在临界区互斥问题

合作同步:当缓冲池全满时,表示供过于求,生产者必须等待,同时唤醒消费者;当缓冲池全空时,表示供不应求,消费者应等待,同时唤醒生产者。

互斥:缓冲池显然是临界资源,所在生产者与消费都要使用它,而且都要改变它的状态。

(2)基于环形缓冲区的生产者与消费者关系形式描述:

公用信号量mutex:初值为1,用于实现临界区互斥

生产者私用信号量empty:初值为n,指示空缓冲块数目

消费者私用信号量full:初值为0,指示满缓冲块数目

整型量i和j初值为0,i指示首空缓冲块序号,j指示首满缓冲块序号

(3)PV原语

var mutex,empty,full:semaphore;

i,j:integer;buffer:array[0...n-1] of item;

i:=j:=1;

Procedure producer;

begin

while true do

begin

produce a product;

P(empty);

P(mutex);

buffer(i):=product;

i:=(i+1) mod n;

V(mutex);

V(full);

end;

end;

Procedure consumer;

begin

P(full);

P(mutex);

goods:=buffer(j);

j:=(j+1) mod n;

V(mutex);

V(empty);

consume a product;

end;

end;

3.用C语言编程搭建“生产者和消费者”经典进程通信问题的环境。要求程序运行时,按任意键停止,显示当前系统的各个参数的值。

1.4 实验思考题

1.思考在“生产者和消费者”经典同步问题中,两个P操作是否可以互换位置,以及两个V操作是否可以互换位置。

2.思考在“哲学家就餐”经典同步问题中,如何修改程序,可以保证不会发生死锁现象。

3.思考在“读者与写者”经典同步问题中,如何修改程序,变为“写者优先”的算法。

4.分析以下进程运行环境中出现的同步和互斥现象,列出相应的变量和参数。

理发店理有一位理发师、一把理发椅和n把供等候理发的顾客坐的椅子。如果没有顾客,理发师便在理发椅上睡觉。一个顾客到来时,它必须叫醒理发师。如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,就坐下来等待,否则就离开。

实验四:银行家算法

1.1 实验目标

掌握进程运行过程中预防死锁的各种算法,以银行家算法为例,运用所学C语言知识,编写该算法实现后的运作过程。

1.2 实验环境

教学机房,C语言程序平台。

1.3 实验内容及步骤

1.了解银行家算法原理

(1)银行家

银行家拥有一笔周转资金

客户要求分期贷款,如果客户能够得到各期贷款,就一定能够归还贷款,否则就一定不能归还贷款

银行家应谨慎的贷款,防止出现坏帐

(2)用银行家算法避免死锁

操作系统(银行家)

操作系统管理的资源(周转资金)

进程(要求贷款的客户)

(3)实现:

检查申请者对资源的最大需求量,若系统知现有的资源可以满足申请者的要求,才进行分配。即只有申请者得到需要的资源后能运行下去,运行完后能够无条件释放它所占用的一切资源,使其他的申请者也能得到资源而运行下去,才能把资源分配给它。

——相当于向银行申请贷款,银行考察你的偿还能力。

2.理解银行家算法的数据结构和运算方式

(1)可利用资源向量Available[m]

m表示系统内资源类别数。每一个元素代表一类可利用的资源数目,初值是系统中所配置的该类全部可用资源数目。

例如:Available [j]=k,表示系统中现有j类资源k个。

(2)最大需求矩阵Max[n×m]

n 个进程中的每一个进程对m类资源的最大需求。

例如:Max[i×j]=k,表示进程i需要j类资源的最大数目为k 个。

(3)分配矩阵Allocation[n×m]

系统中每一类资源当前已分配给每一个进程的资源数。

例如:Allocation[i×j]=k,表示进程i当前已分到j类资源的数目为k。

(4)需求矩阵Need[n×m]

每一个进程还需要的各类资源的数目。

例如:Need[i×j]=k,表示进程i还需j类资源k个。

上述3个矩阵间存在关系:

Need[i×j ]= Max[i×j]-Allocation[i×j]

(5)运算过程中用到的向量和查找方法

①设置2个向量,并初始化:

Work(工作向量):系统提供给进程继续运行的各类资源数目,包含m个元素。

安全性算法开始执行时,Work=Available

Finish:系统是否由足够的资源分配给进程,使之运行完成。

开始时,Finish=false;当有足够资源分配给进程Pi时,令Finish=true。

②从进程集合中找到满足下列条件的进程:

Finish=false且Needi≤Work

若找到转③,否则转④;

③当进程Pi获得资源后,可顺利执行直到完成,并释放出全部资源,即:

Work=Work+Allocationi

Finish(i)=true

转②

④若所有进程的Finish(i)都为true,则系统处于安全状态,否则不安全。

3.掌握银行家算法,包括四个步骤

设Requesti是进程Pi的请求向量,Requesti(j)=k表示进程Pi请求分配j类资源k 个。

①若Requesti>Need,则出错(请求的资源数超过最大值),否则转②;

②若Requesti>Available则Pi等待(系统中尚无足够的资源满足Pi的申请),否则转③;

③试分配

将资源分配给进程,并修改有关的数据结构:

Available=Available-Requesti

Allocationci=Allocationci+Requesti

Needi=Needi-Requesti

④安全性检查

系统执行安全性算法,若安全则正式分配,否则废除试分配,让Pi进程等待。

4.用C语言编程实现下题中“银行家算法”,要求程序运行时,根据不同的要求,给

1.4 实验思考题

银行家算法又名资源分配拒绝法,思考在判断安全性问题上给出的安全序列的指针查找方式方向是否唯一?安全序列是否唯一?

实验五:可变式分区分配算法

1.1 实验目标

掌握操作系统如何对内存进行管理,以“可变式分区分配算法”为例,运用所学C语言知识,编写该算法实现后的运作情况。

1.2 实验环境

教学机房,C语言程序平台。

1.3 实验内容及步骤

1.理解可变式分区的分配和回收的方式

分区大小=作业大小,分区数目、大小可变,称为动态分区

(1)空闲分区的组织形式

(2)内存的分配与回收

(3)常用的分配算法

(4)可变式分区的地址重定位

2.用C语言编写程序模拟以下状态作业序列的内存运行环境,程序运行后可判断使用三种算法(首次适应算法、最佳适应算法、最差适应算法)在处理该作业序列中哪一种合适,给予结果反馈。

现在有一作业序列:

作业A(15K)、作业B(16K)、作业C(15K)

依次要求进入系统运行,假设此时系统的空闲区按地址顺序排列,分别是:

起始地址为40K的空闲区1(16K)、起始地址为70K的空闲区2(14K)、起始地址为100K的空闲区3(5K)、起始地址为150K的空闲区4(30K)

用看哪种算法是合适的。

1.4 实验思考题

思考如何改写程序,变成带紧凑格式的可变式分区分配算法。

实验六:页面置换-简单clock算法

1.1 实验目标

掌握操作系统在虚拟内存管理模式下的方法,以“简单clock”为例,运用所学C语言知识,编写该算法实现后的运作情况。

1.2 实验环境

教学机房,C语言程序平台。

1.3 实验内容及步骤

1.理解虚拟内存管理下的LRU算法原理

这种算法的基本思想是,如果某一页被访问了,那么它很可能马上又被访问;反之,如果某一页很长时间没有被访问,那么最近也不太可能会被访问。这种算法考虑了程序设计的局部性原理。其实质是,当需要置换一页时,选择在最近一段时间最久未使用的页面予以淘汰。

2.掌握近似LRU算法的原理,即clock算法

在存储分块表(或页表)中设一个“引用位”,当存储分块表中的某一页被访问时,该位由硬件自动置1,并由页面管理软件周期性把所有引用位置0。这样,在一个时间周期T 内,某些被访问过的页面其引用位为1,而未被访问过的页面其引用位为0。根据引用位的状态来判别各页面最近的使用情况。当需要置换一页面时,选择其引用位为0的页。

3.用C语言编写程序采用clock算法实现下题中作业运行情况,要求程序运行后根据输入物理块的个数,输出运用该算法后F、f的值。

在一个请求分页系统中,采用简单clock算法时,假如一个作业的页面走向为

4、3、2、1、4、3、

5、4、3、2、1、5,当分配给该作业的物理块数M发生变化时,访问过程中发生的缺页次数和缺页率为多少。

1.4 实验思考题

思考分析虚拟内存管理的方式下,程序分配的内存物理块的个数是否是越多越好?

计算机操作系统教学大纲

《计算机操作系统》课程教学大纲 一. 课程名称 操作系统原理 二. 学时与学分 学时共64学时(52+12+8) 其中,52为理论课学时,12为实验学时,8为课外实验学时 学分 4 三. 先修课程 《计算机组成原理》、《C语言程序设计》、 《IBM—PC宏汇编程序设计语言》、《数据结构》 四. 课程教学目标 通过本课程的学习,要达到如下目标: 1.掌握操作系统的基本原理与实现技术,包括现代操作系统对计算机系统资源的管理策略与方法、操作系统进程管理机制、现代操作系统的用户界面。 2.了解操作系统的结构与设计。 3.具备系统软件开发技能,为以后从事各种研究、开发工作(如:设计、分析或改进各种系统软件和应用软件) 提供必要的软件基础和基本技能。 4.为进一步学习数据库系统、计算机网络、分布式系统等课程打下基础。 五. 适用学科专业 信息大类各专业

六. 基本教学内容与学时安排 主要内容: 本课程全面系统地阐述计算机操作系统的基本原理、主要功能及实现技术,重点论述多用户、多任务操作系统的运行机制;系统资源管理的策略和方法;操作系统提供的用户界面。讨论现代操作系统采用的并行处理技术和虚拟技术。本书以Linux系统为实例,剖析了其特点和具体的实现技术。 理论课学时:52学时 (48学时,课堂讨论2学时,考试2学时) ?绪论4学时 ?操作系统的结构和硬件支持4学时 ?操作系统的用户界面4学时 ?进程及进程管理8学时 ?资源分配与调度4学时 ?存储管理6学时 ?设备管理4学时 ?文件系统6学时 ?Linux系统8学时 七、教材 《计算机操作系统》(第2版),庞丽萍阳富民人民邮电出版社,2014年2月 八、考核方式 闭卷考试

《操作系统原理》信管专业实验指导书资料

《操作系统原理》实验指导书 班级:_______________ 学号:_______________ 姓名:_______________ 山东建筑大学管理工程学院 信息管理与信息系统教研室

目录 引言 (1) 实验题目一 (2) 实验题目二 (4) 实验题目三 (6) 实验题目四 (8) 实验题目五 (10) 实验题目六 (12)

引言 操作系统是信息管理与信息系统专业一门重要的专业理论课程,了解和掌握操作系统的基本概念、功能和实现原理,对认识整个计算机系统的工作原理十分重要。 操作系统实验是操作系统课程的一个重要组成部分,通过试验环节的锻炼使同学们不仅能够对以前的所学过的基础知识加以巩固,同时能够通过上机实验,对操作系统的抽象理论知识加以理解,最终达到融会贯通的目的,因此,实验环节是同学们理解、掌握操作系统基本理论的一个重要环节。 本实验指导书,根据教材中的重点内容设定了相应的实验题目,由于实验课程的学时有限,我们规定了必做题目和选做题目,其中必做题目必须在规定的上机学时中完成,必须有相应的预习报告和实验报告。选做题目是针对有能力或感兴趣的同学利用课余时间或上机学时的剩余时间完成。

实验题目一:模拟进程创建、终止、阻塞、唤醒原语 一、题目类型:必做题目。 二、实验目的:通过设计并调试创建、终止、阻塞、唤醒原语功能,有助于对操作系统中进 程控制功能的理解,掌握操作系统模块的设计方法和工作原理。 三、实验环境: 1、硬件:PC 机及其兼容机。 2、软件:Windows OS ,Turbo C 或C++、VC++、https://www.wendangku.net/doc/4418397112.html, 、Java 等。 四、实验内容: 1、设计创建、终止、阻塞、唤醒原语功能函数。 2、设计主函数,采用菜单结构(参见后面给出的流程图)。 3、设计“显示队列”函数,目的能将就绪、阻塞队列中的进程信息显示在屏幕上,以供 随时查看各队列中进程的变化情况。 五、实验要求: 1、进程PCB 中应包含以下内容: 2、系统总体结构: 其中: 进程名用P1,P2标识。 优先级及运行时间:为实验题目二做准备。 状态为:就绪、运行、阻塞,三种基本状态。 指针:指向下一个PCB 。

操作系统原理-进程调度实验报告

一、实验目的 通过对进程调度算法的设计,深入理解进程调度的原理。 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 进程调度分配处理机,是控制协调进程对CPU的竞争,即按一定的调度算法从就绪队列中选中一个进程,把CPU的使用权交给被选中的进程。 进程通过定义一个进程控制块的数据结构(PCB)来表示;每个进程需要赋予进程ID、进程到达时间、进程需要运行的总时间的属性;在RR中,以1为时间片单位;运行时,输入若干个进程序列,按照时间片输出其执行序列。 二、实验环境 VC++6.0 三、实验内容 实现短进程优先调度算法(SPF)和时间片轮转调度算法(RR) [提示]: (1) 先来先服务(FCFS)调度算法 原理:每次调度是从就绪队列中,选择一个最先进入就绪队列的进程,把处理器分配给该进程,使之得到执行。该进程一旦占有了处理器,它就一直运行下去,直到该进程完成或因发生事件而阻塞,才退出处理器。 将用户作业和就绪进程按提交顺序或变为就绪状态的先后排成队列,并按照先来先服务的方式进行调度处理,是一种最普遍和最简单的方法。它优先考虑在系统中等待时间最长的作业,而不管要求运行时间的长短。 按照就绪进程进入就绪队列的先后次序进行调度,简单易实现,利于长进程,CPU繁忙型作业,不利于短进程,排队时间相对过长。 (2) 时间片轮转调度算法RR

原理:时间片轮转法主要用于进程调度。采用此算法的系统,其程序就绪队列往往按进程到达的时间来排序。进程调度按一定时间片(q)轮番运行各个进程. 进程按到达时间在就绪队列中排队,调度程序每次把CPU分配给就绪队列首进程使用一个时间片,运行完一个时间片释放CPU,排到就绪队列末尾参加下一轮调度,CPU分配给就绪队列的首进程。 固定时间片轮转法: 1 所有就绪进程按 FCFS 规则排队。 2 处理机总是分配给就绪队列的队首进程。 3 如果运行的进程用完时间片,则系统就把该进程送回就绪队列的队尾,重新排队。 4 因等待某事件而阻塞的进程送到阻塞队列。 5 系统把被唤醒的进程送到就绪队列的队尾。 可变时间片轮转法: 1 进程状态的转换方法同固定时间片轮转法。 2 响应时间固定,时间片的长短依据进程数量的多少由T = N × ( q + t )给出的关系调整。 3 根据进程优先级的高低进一步调整时间片,优先级越高的进程,分配的时间片越长。 多就绪队列轮转法: (3) 算法类型 (4)模拟程序可由两部分组成,先来先服务(FCFS)调度算法,时间片轮转。流程图如下:

UbuntuLinux操作系统第2版(微课版)—教学大纲

《Ubuntu Linux操作系统》课程教学大纲 学分: 4 学时:48 适用专业: 高职高专类计算机专业 一、课程的性质与任务 课程的性质: 本课程是为计算机专业学生开设的课程。课程安排在第学期。 课程的任务: 通过本课程的学习,使学生熟悉Linux操作系统的基本操作,掌握Linux操作系统的配置管理、软件使用和编程环境部署。本课程将紧密结合实际,以首选的Linux桌面系统Ubuntu 为例讲解操作系统的使用和配置,为学生今后进行系统管理运维、软件开发和部署奠定基础。整个课程按照从基础到应用,从基本功能到高级功能的逻辑进行讲授,要求学生通过动手实践来掌握相关的技术操作技能。 前导课程: 《计算机原理》、《Windows操作系统》。 后续课程: 《Linux应用开发》 二、教学基本要求 理论上,要求学生掌握Ubuntu Linux操作系统的基础知识,包括配置管理、桌面应用、编程和软件开发环境。 技能上,要求学生能掌握Ubuntu Linux操作系统的配置方法和使用技能,涵盖系统安装和基本使用、图形界面与命令行、用户与组管理、文件与目录管理、磁盘存储管理、软件包管理、系统高级管理、桌面应用、Shell编程、C/C++编程、Java与Android应用开发、LAMP 平台与PHP、Python、Node.js开发环境部署,以及Ubuntu服务器安装与管理。 培养的IEET核心能力: ?具备系统管理方向的系统工程师的工程能力:掌握Linux配置管理和运维,包括用 户与组管理、文件与目录管理、磁盘存储管理、软件包管理、系统高级管理、服务器安装与管理。 ?具备应用开发工程师的开发环境部署能力,包括Shell编程、C/C++编程、Java与 Android应用开发、LAMP平台与PHP、Python、Node.js开发环境的部署和流程。 ?基本职业素养:具有良好的文化修养、职业道德、服务意识和敬业精神;接受企业 的文化;具有较强的语言文字表达、团结协作和社会活动等基本能力;具有基本的英语文档阅读能力,能较熟练地阅读理解Ubuntu Linux的相关英文资料。

操作系统课程教学大纲

GDOU-B-11-213 《操作系统》课程教学大纲 课程简介 课程简介: 本课程主要讲述操作系统的原理,使学生不仅能够从系统内部了解操作系统的工作原理,而且可以学到软件设计的思想方法和技术方法。主要内容 包括:操作系统的概论;操作系统的作业管理;操作系统的文件管理原理; 操作系统的进程概念、进程调度和控制、进程互斥和同步等;操作系统的各 种存储管理方式以及存储保护和共享;操作系统的设备管理一般原理。其次 在实验环节介绍实例操作系统的若干实现技术,如:Windows操作系统、Linux 操作系统等。 课程大纲 一、课程的性质与任务: 本课程计算机学科的软件工程专业中是一门专业方向课,也可以面向计算机类的其它专业。其任务是讲授操作系统的原理,从系统内部了解操作系统的工作原理以级软件设计的思想方法和技术方法;同时介绍实例操作系统的若干实现技术。 二、课程的目的与基本要求: 通过本课程的教学使学生能够从操作系统内部获知操作系统的工作原理,理解操作系统几大管理模块的分工和管理思想,学习设计系统软件的思想方法,通过实验环节掌握操作系统实例的若干实现技术,如:Windows操作系统、Linux操作系统等。 三、面向专业: 软件工程、计算机类 四、先修课程: 计算系统基础,C/C++语言程序设计,计算机组成结构,数据结构。 五、本课程与其它课程的联系:

本课程以计算系统基础,C/C++语言程序设计,计算机组成结构,数据结构等为先修课程,在学习本课程之前要求学生掌握先修课程的知识,在学习本课程的过程中能将数据结构、计算机组成结构等课程的知识融入到本课程之中。 六、教学内容安排、要求、学时分配及作业: 第一章:操作系统概论(2学时) 第一节:操作系统的地位及作用 操作系统的地位(A);操作系统的作用(A)。 第二节:操作系统的功能 单道系统与多道系统(B);操作系统的功能(A)。 第三节:操作系统的分类 批处理操作系统(B);分时操作系统(B);实时操作系统(B)。 第二章:作业管理(2学时) 第一节:作业的组织 作业与作业步(B);作业的分类(B);作业的状态(B);作业控制块(B)。 第二节:操作系统的用户接口 程序级接口(A);作业控制级接口(A)。 第三节:作业调度 作业调度程序的功能(B);作业调度策略(B);作业调度算法(B)。 第四节:作业控制 脱机控制方式(A);联机控制方式(A)。 第三章:文件管理(8学时) 第一节:文件与文件系统(1学时) 文件(B);文件的种类(B);文件系统及其功能(A)。 第二节:文件的组织结构(1学时) 文件的逻辑结构(A);文件的物理结构(A)。 第三节:文件目录结构(1学时) 文件说明(B);文件目录的结构(A);当前目录和目录文件(B)。 第四节:文件存取与操作(1学时) 文件的存取方法(A);文件存储设备(C);活动文件(B);文件操作(A)。 第五节:文件存储空间的管理(2学时) 空闲块表(A);空闲区表(A);空闲块链(A);位示图(A)。 第六节:文件的共享和保护(2学时)

操作系统原理实验-系统内存使用统计5

上海电力学院 计算机操作系统原理 实验报告 题目:动态链接库的建立与调用 院系:计算机科学与技术学院 专业年级:信息安全2010级 学生姓名:李鑫学号:20103277 同组姓名:无 2012年11 月28 日上海电力学院

实验报告 课程名称计算机操作系统原理实验项目线程的同步 姓名李鑫学号20103277 班级2010251班专业信息安全 同组人姓名无指导教师姓名徐曼实验日期2012/11/28 实验目的和要求: (l)了解Windows内存管理机制,理解页式存储管理技术。 (2)熟悉Windows内存管理基本数据结构。 (3)掌握Windows内存管理基本API的使用。 实验原理与内容 使用Windows系统提供的函数和数据结构显示系统存储空间的使用情况,当内存和虚拟存储空间变化时,观察系统显示变化情况。 实验平台与要求 能正确使用系统函数GlobalMemoryStatus()和数据结构MEMORYSTATUS了解系统内存和虚拟空间使用情况,会使用VirtualAlloc()函数和VirtualFree()函数分配和释放虚拟存储空间。 操作系统:Windows 2000或Windows XP 实验平台:Visual Studio C++ 6.0 实验步骤与记录 1、启动安装好的Visual C++ 6.0。 2、选择File->New,新建Win32 Console Application程序, 由于内存分配、释放及系统存储 空间使用情况均是Microsoft Windows操作系统的系统调用,因此选择An application that support MFC。单击确定按钮,完成本次创建。 3、创建一个支持MFC的工程,单击完成。

操作系统原理实验指导

操作系统实验指导 操作系统是计算机的最重要的系统软件,它在计算机中具有核心地位,其作用是对计算机系统资源进行统一的调度和管理,提供各种强有力的系统服务,为用户创造灵活而又方便的使用环境。一个精心设计的操作系统能极大地扩充计算机系统的功能,充分地发挥系统中各种资源的使用效率,提高系统工作的可靠性。 操作系统原理是计算机科学与技术专业的一门主要专业课程,它涉及计算机系统中各种软、硬资源管理的实现原理与方法,内容非常丰富,综合性非常强,并且还具有很强的实践性。只有把理论与实践紧密地结合起来,才能取得较好地学习效果。 培养计算机专业学生的系统程序设计能力,也是本课程的重要环节。系统程序要求结构清晰、合理、可读性好,有准确而简明的注释。通过实验可以培养学生正规系统程序设计能力。 本实验包括下列六个方面: 实验一几种操作系统的界面 实验二进程调度 实验三存储器管理 实验四存储器管理 实验五磁盘驱动调度 实验六文件管理系统 上述每个实验约需要10个学时。可根据实际情况选用。最好学生自己独立完成,如有困难,可参考一些示例,弄清每个实验的思想和实现方法,上机调试通过,不能完全照搬示例。 实验一几种操作系统的界面 1、目的与要求 目的:通过本实验,学生应熟悉1~2种操作系统的界面。在熟练使用的基础上,能了解各种命令和调用在系统中的大致工作过程,也就是通过操作系统的外部特性,逐步深入到操作系统的内在实质内容中去。 要求:能熟练地在1~2种操作系统环境下工作。学会使用各种命令,熟悉系统提供的各种功能。主动而有效地使用计算机。 熟悉系统实用程序的调用方法和各种系统调用模块的功能和用法。 2、示例 用1~2种操作系统提供的各种手段,建立、修改、编辑、编译和运行程序,最后撤消一个简单程序。要尽可能多地使用系统提供的各种命令和功能。 操作系统可为如下两种序列: (1)Windows 98或Windows 2000或Windows XP。 (2)Linux或Unix。 下面简要介绍一下Unix操作系统。 Unix是一个分时操作系统,面向用户的界面shell是一种命令程序设计语言,这种语言向用户提供了从低到高,从简单到复杂的三个层次的使用方式。它们是简单命令、组合命令和shell过程。 简单命令:Unix命令一律使用小写字母。 例如:ls -l 显示文件目录(长格式) rm 删除一个文件 cat 合并和传送文件、 cp 复制文件 mv 文件改名 cc 编译C语言源程序 组合命令:shell简单命令可以用管道算符|组合构成功能更强的命令。

《计算机操作系统》教学大纲

《计算机操作系统》教学大纲 课程名称:计算机操作系统 总学时:68 理论学时:56 实验学时:12 一、课程性质及培养目标 《操作系统》是计算机科学与技术等专业的专业课之一。本课程将全面系统地介绍操作系统的基本理论与基本工作原理,包括操作系统内部工作过程与结构及相关概念、技术和理论,并作为实例介绍目前主流操作系统Windows的工作原理。在各章节中会介绍当前主流操作系统Windows的各部分功能及实现作为实例,以求学生对操作系统的基本理论和原理能够融会贯通。通过本课程的学习,要求学生理解操作系统在计算机系统中的作用、地位和特点,熟练掌握和运用操作系统在进行计算机软硬件资源管理和调度时常用的概念、方法、算法、策略等。 二、课程的教学原则与方法 在总结操作系统课程教学实践经验的基础上,结合课程自身的特点,制定本课程的教学原则为:理论讲解和实践相结合的教学原则。在教学过程中采用的教学方法主要有:以语言形式获得间接经验的方法(例如讲授法、讨论法、读书指导法等),以直观形式获得直接经验的方法(例如演示法),以实际训练形式形成技能、技巧的教学方法(例如讲练结合法、实验法等)。 三、教学内容与教学基本要求 第一单元操作系统引论 1、教学内容 任务1 操作系统概述 任务2 操作系统的发展历史 任务3 操作系统的分类 2、教学基本要求 让学生对操作系统形成初步的认识,对操作系统中的概念有整体的了解。了解操作系统的发展过程;掌握操作系统类型和功能、操作系统的基本特征;熟练掌握操作系统定义。 3、教学重点与难点 教学重点:操作系统的发展过程,操作系统的分类、基本特征和功能 教学难点:操作系统的基本特征,操作系统的结构设计 4、复习参考题 ⑴OS的作用可表现在哪几个方面? ⑵OS有哪几大特征?最基本得特征是什么? 第二单元操作系统原理基础 1、教学内容

操作系统课程设计2014教学大纲

《操作系统课程设计》大纲 一、设计目的和要求 目的:本课程设计是为配合计算机相关专业的重要专业课《操作系统》而开设的,其主要内容是让学生实际进行操作系统功能模块的设计和编程实现。通过本课程设计的实施,使学生能将操作系统的概念具体化,并从整体和动态的角度去理解和把握操作系统,以巩固和补充操作系统的原理教学,提高学生解决操作系统设计及实现过程中的具体问题的能力。 要求:通过本课程设计的实施,要求培养学生以下能力: (1)培养学生在模拟条件下与实际环境中实现功能模块和系统的能力:课程设计要求学生实际进行操作系统功能模块的设计和编程实现,具体包括:基于线程的多任务调度系统的设计与实现;一个简单文件系统的设计与实现。 (2)培养学生设计和实施工程实验的能力,合理分析试验结果的能力:学生在完成项目的过程中,需要进行实验设计、程序调试、错误分析,从而熟悉实验设计方法及实验结果的分析方法。 (3)培养学生综合运用理论和技术手段设计系统和过程的能力:学生需根据设计项目的功能要求及操作系统原理的相关理论提出自己的解决方案,需考虑项目实现的软硬件环境,设计相关数据结构及算法,在实现过程中发现解决方案的问题并进行分析改进。 (4)培养学生分析并清楚阐述设计合理性的能力:要求学生在项目上机验收和实验报告中分析阐述设计思路的合理性和正确性。 (5)培养学生的组织管理能力、人际交往能力、团队协作能力:课程设计分小组进行,每个小组有一个组长,负责组织本组成员的分工及合作。 二、设计学时和学分 学时:32 ;学分:1 三、设计的主要内容 以下三个题目中:1、2中选做一题,第3题必做。 1、基于线程的多任务调度系统的设计与实现 (1)线程的创建、撤消和CPU切换。 掌握线程的定义和特征,线程的基本状态,线程的私有堆栈,线程控制块TCB,理解线程与进程的区别,实现线程的创建、撤消和CPU切换。 (2)时间片轮转调度 理解各种调度算法、调度的原因,完成时钟中断的截取,具体实现调度程序。 (3)最高优先权优先调度 理解优先权的概念,并实现最高优先权优先调度策略。 (4)利用记录型信号量实现线程的同步

实验指导(2015完全版)

操作系统上机实验指导书 (第一版) 闫大顺李晟编著 吴家培主审 计算机科学与工程学院 2014.8

操作系统实验指导 本课程是为《计算机操作系统》课所开的实验。计算机操作系统课程是一门实践性很强的技术课程,本课程实验的目的在于培养学生的实践能力,促进理论与实践的结合。要求学生通过上机编程,熟悉对操作系统原理,并熟练使用程序接口,并了解如何模拟操作系统原理的实现,从而加深对操作系统原理的领会,加深对操作系统实现方法的理解,与此同时使学生在程序设计方面也能够得到很大程度的提高。 实验的目的是使学生理论联系实际,提高学生系统理解与开发能力。这里所列的实验分为必做和选做。具体实验题的选择,不仅要考虑课程内容,而且要考虑学生目前的编程能力,要由浅入深。教师可通过运行示例或动画,帮助学生理解实验要求。学生应选择自己熟悉的语言与开发环境去完成实验。根据以往的教学经验,Delphi、C++ Builder,JBuilder由于提供了许多可重用的构件,易于学习、使用,VC++学习、使用困难较多。实验要求尽量在windows操作系统下,也可以在Linux下完成,由于多数没有专门学习Linux,在其平台下做试验比较困难。实验的硬件要求是能够支持VC++、Delphi、C++ Builder,JBuilder的微机即可。每个学生都独立在一台计算机上完成自己的实验内容,杜绝学生的抄袭。 实验报告的要求 1. 每位同学准备实验报告本,上机前作好充分的准备工作,预习本次实验的内容,事先熟悉与实验有关的软硬件环境。 2. 实验时遵守实验室的规章制度,爱护实验设备,对于实验设备出现的问题,要及时向指导老师汇报。 3. 提交实验文件格式:[班级][学号]_[实验题号].[扩展名] 例:计051班学号为03的学生第四个实验的文件名为:j05103_4.c 4. 最终的实验报告按照实验名称、实验目的、实验内容,实验过程(程序设计、实现与调试)、实验总结五部分书写,按时上交。实验总结是对于实验过程中出现的问题或疑惑的分析与思考。认真按照要求填写到实验报告纸上。

操作系统课程设计实验大纲

《操作系统课程设计》实验指导手册 苏州大学计算机科学与技术学院 2009年9月

《操作系统课程设计》实验指导手册目录 目录 一、实验环境 二、实验内容 三、准备知识 四、实验步骤 实验一安装Red Hat Linux 实验二编译Linux内核 实验三观察Linux行为 实验四系统调用

一、实验环境 硬件平台:普通PC机硬件环境。 操作系统:Linux环境,Red Hat Linux 9.0以上版本,启动管理器使用LILO。 编译环境:伴随着操作系统的默认gcc环境。 工作源码环境:一个调试的内核源码,版本不低于2.4.18。 二、实验内容 本实验侧重于Linux操作系统的认识、应用,并对Linux内核进行初步探索。实验分为四个部分,每个部分大约2次实验。所有实验完成后,将在计算机上安装一个可用的Linux操作系统,并完成至少一个的可调试内核。 1.安装Red Hat Linux 2.编译Linux内核 3.观察Linux行为 4.系统调用

三、准备知识 1.Linux的内核 Unix操作系统家族将功能分为两类。首先,内核执行时CPU处于管态;其次,所有其他操作系统部件执行时CPU处于用户态。内核负责抽象与管理一台机器的硬件资源以及这些资源在执行程序之间的共享。因为Linux实现的是一种UNIX方式的接口,资源抽象和共享模型的通用定义已经被确定了。 资源抽象(Resource abstraction)是指编写软件(通常情况)来简化必须应用于硬件的操作以使该硬件能恰当的工作。Linux将计算机部件抽象为进程和资源。一个进程是执行一个目标程序的CPU操作的一个抽象。进程抽象使得操作系统能够控制一个程序中的每个实例的执行。操作系统中的所有执行进程抽象的所有方面称为进程管理。资源管理是创建资源抽象以及在进程执行时为它们分配和回收系统资源的过程。RAM是一种系统资源。另一种系统资源是CPU。内核的其他资源包括系统的所有设备,它们具有各自的抽象模型。UNIX 试图将除CPU和可执行内存之外的每一种资源视为一个文件。 Linux中,一个进程使用资源时,通常需要对该资源的独占使用。资源管理有两个关键的方面:对获得资源的竞争和对独占使用的确保。对资源的竞争由资源管理程序控制。操作系统必须包含一个部件来负责接收使用每个资源的请求、为一个进程分配资源,以及当一个进程释放资源时进行回收。如不能满足进程的资源请求,则阻塞该进程。Linux和其他现代操作系统用模式位来确保对系统资源,包括CPU、内存和设备的独占使用。模式位使系统可以工作在管态(supervisor mode)或用户态(user mode)。在一些情况下,两个或更多进程需要共享一个资源,Linux采用有控制的共享策略。 2.内核的组织结构 Linux内核被设计和实现为单内核。硬件设备日益发展,不断包括更新的设备,完全在一个设备驱动程序中提供适当的内核支持变得日益困难。Linux通过一个新的“容器”,称为模块(module),来解决这个问题,在模块中执行内核主要部分的扩展。 2.1 Linux的中断机制 同i386体系结构中的中断机制,使用cli()和sti()两个内核函数来清除和设置中断启用标志。 2.2 使用Linux的内核服务 用户将内核看作一个大的抽象数据类型(ADT),它保持状态并在其公共接口——系统调用接口上提供大量函数。在Linux中,系统调用接口名义上由POSIX.1规范定义。一个系统调用发生时,用户进程执行内核代码。存在一个问题,如何由用户进程(处在用户态)切换到内核代码(处在管态)? 具有模式位的CPU通常也具有硬件陷阱指令。陷阱指令(trap instruction)是一条用于将CPU转移到一个预定地址(有时作为一个指令操作数的函数)并将其自身切换为管态的指令。陷阱指令并不是一条特权指令,因此任何程序都可以执行一条陷阱指令。对于系统调用F,stub过程用于调用F。stub被链接到用户空间正调用的程序。一个进程在运行期间执行对F的调用,控制被转换到stub过程而不是直接转换到内核。利用陷阱指令和stub过程可以实现由用户空间向内核空间的安全转换。 2.3 串行执行 Linux的内核函数执行时处在一个临界区,即,一旦进程调用一个系统函数,该函数通

操作系统原理实验四

实验4 进程控制 1、实验目的 (1)通过对WindowsXP进行编程,来熟悉和了解系统。 (2)通过分析程序,来了解进程的创建、终止。 2、实验工具 (1)一台WindowsXP操作系统的计算机。 (2)计算机装有Microsoft Visual Studio C++6.0专业版或企业版。 3、预备知识 (3)·CreateProcess()调用:创建一个进程。 (4)·ExitProcess()调用:终止一个进程。 4、实验编程 (1)编程一利用CreateProcess()函数创建一个子进程并且装入画图程序(mspaint.exe)。阅读该程序,完成实验任务。源程序如下: # include < stdio.h > # include < windows.h > int main(VOID) ﹛STARTUPINFO si; PROCESS INFORMA TION pi; ZeroMemory(&si,sizeof(si)); Si.cb=sizeof(si); ZeroMemory(&pi,sizeof(pi)); if(!CreateProcess(NULL, “c: \ WINDOWS\system32\ mspaint.exe”, NULL, NULL, FALSE, 0, NULL, NULL, &si,&pi)) ﹛fprintf(stderr,”Creat Process Failed”); return—1; ﹜ WaitForSingleObject(pi.hProcess,INFINITE); Printf(“child Complete”); CloseHandle(pi.hProcess); CloseHandle(pi hThread); ﹜

操作系统教学大纲

《操作系统》课程教学大纲 一、课程基本信息课程名称:《操作系统》总学时与学分:72学时 4学分 课程性质:专业必修课授课对象:计算机科学与技术专业 二、课程教学目标与任务 操作系统原理是一门专业基础课程,是涉及考研等进一步进修的重要课程,是计算机 体系中必不可少的组成部分。本课程的目的和任务是使学生通过本课程的学习,理解操作 系统的基本概念和主要功能,掌握操作系统的使用和一般的管理方法,从而为学生以后的 学习和工作打下基础。 三、学时安排 课程内容与学时分配表 章 节 内 容学 时 第一章 操作系统引论5第二章 进程管理12第三章 处理机调度与死锁12第四章 存储管理12第五章 设备管理10第六章 文件管理8第七章 操作系统接口4第八章 网络操作系统3第九章 系统安全性3第十章 UNIX 操作系统3四、课程教学内容与基本要求 第一章 操作系统引论 教学目标:通过本章的学习,使学生掌握操作系统的概念,操作系统的作用和发展过 程,知道操作系统是配置在计算机硬件上的第一层软件,是对计算机系统的首次扩充,是 现代计算机系统必须配置的软件。 基本要求:掌握操作系统的目标和作用、发展过程、基本特征及主要功能;了解操作 系统的结构设计 本章重点:操作系统的概念、作用,操作系统的基本特征以及操作系统的主要功能。 本章难点:操作系统基本特征的理解,操作系统主要功能的体现。 教学方法:讲授与演示相结合、管路敷设技术通过管线不仅可以解决吊顶层配置不规范高中资料试卷问题,而且可保障各类管路习题到位。在管路敷设过程中,要加强看护关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置保护层防腐跨接地线弯曲半径标高等,要求技术交底。管线敷设技术包含线槽、管架等多项方式,为解决高中语文电气课件中管壁薄、接口不严等问题,合理利用管线敷设技术。线缆敷设原则:在分线盒处,当不同电压回路交、电气课件中调试试卷相互作用与相互关系,根据生产工艺高中资料试卷要求,对电气设备进行空载与带负荷下高中资料试卷调控试验;对设备进行调整使其在正常工况下与过度工作下都可以正常工作;对于继电保护进行整核对定值,审核与校对图纸,编写复杂设备与装置高中资料试卷调试方案,编写重要设备高中资料试卷试验方案以及系统启动方案;对整套启动过程中高中资料试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。对于调试过程中高中资料试卷、电气设备调试高中资料试卷技术电力保护装置调试技术,电力保护高中资料试卷配置技术是指机组在进行继电保护高中资料试卷总体配置时,需要在最大限度内来确保机组高中资料试卷安全,并且尽可能地缩小故障高中资料试卷破坏范围,或者对某些异常高中资料试卷工况进行自动处理,尤其要避免错误高中资料试卷保护装置动作,并且拒绝动作,来避免不必要高中资料试卷突然停机。因此,电力高中资料试卷保护装置调试技术,要求电力保护装置做到准确灵活。对于差动保护装置高中资料试

操作系统课内实验大纲(2014)

操作系统原理课内实验大纲(2014版) 实验一:用户接口实验 实验目的 1)理解面向操作命令的接口Shell。 2)学会简单的shell编码。 3)理解操作系统调用的运行机制。 4)掌握创建系统调用的方法。 操作系统给用户提供了命令接口和程序接口(系统调用)两种操作方式。用户接口实验也因此而分为两大部分。首先要熟悉Linux的基本操作命令,并在此基础上学会简单的shell 编程方法。然后通过想Linux内核添加一个自己设计的系统调用,来理解系统调用的实现方法和运行机制。在本次实验中,最具有吸引力的地方是:通过内核编译,将一组源代码变成操作系统的内核,并由此重新引导系统,这对我们初步了解操作系统的生成过程极为有利。 实验内容 1)控制台命令接口实验 该实验是通过“几种操作系统的控制台命令”、“终端处理程序”、“命令解释程序”和“Linux操作系统的bash”来让实验者理解面向操作命令的接口shell和进行简单的shell 编程。 查看bash版本。 编写bash脚本,统计/my目录下c语言文件的个数 2)系统调用实验 该实验是通过实验者对“Linux操作系统的系统调用机制”的进一步了解来理解操作系统调用的运行机制;同时通过“自己创建一个系统调用mycall()”和“编程调用自己创建的系统调用”进一步掌握创建和调用系统调用的方法。 编程调用一个系统调用fork(),观察结果。

编程调用创建的系统调用foo(),观察结果。 自己创建一个系统调用mycall(),实现功能:显示字符串到屏幕上。 编程调用自己创建的系统调用。 实验要求 1)按照实验内容,认真完成各项实验,并完成实验报告。 2)实验报告必须包括:程序清单(含注释)、实验结果、实验中出现的问题、观察到 的现象的解释和说明,以及实验体会。

操作系统原理实验报告(终版)

操作系统原理实验报告(终版)

————————————————————————————————作者:————————————————————————————————日期:

[键入文字] XX学校 实验报告 课程名称: 学院: 专业班: 姓名: 学号: 指导教师: 2011 年3 月

目录 实验1 进程管理 (3) 一、实验目的 (3) 二、实验内容 (3) 三、实验要求 (3) 四、程序说明和程序流程图 (4) 五、程序代码 (5) 六、程序运行结果及分析 (7) 七.指导教师评议 (8) 实验2 进程通信 (9) 一、实验目的 (9) 二、实验内容 (9) 三、实验要求 (9) 四、程序说明和程序流程图 (9) 五、程序代码 (11) 七.指导教师评议 (14) 实验3 存储管理 (15) 一、实验目的 (15) 二、实验内容 (15) 三、实验要求 (15) 四、程序说明和程序流程图 (16) 六、程序运行结果及分析 (23)

七.指导教师评议 (23) 实验4 文件系统 (24) 一、实验目的 (24) 二、实验内容 (24) 三、实验要求 (24) 四、程序说明和程序流程图 (24) 五、程序代码 (26) 六、程序运行结果及分析 (26) 七.指导教师评议 (27)

实验1 进程管理 一、实验目的 1. 弄清进程和程序的区别,加深对进程概念的理解。 2. 了解并发进程的执行过程,进一步认识并发执行的实质。 3. 掌握解决进程互斥使用资源的方法。 二、实验内容 1. 管道通信 使用系统调用pipe( )建立一个管道,然后使用系统调用fork( )创建2个子进程p1和p2。这2个子进程分别向管道中写入字符串:“Child process p1 is sending message!”和“Child process p2 is sending message!”,而父进程则从管道中读出来自两个子进程的信息,并显示在屏幕上。 2. 软中断通信 使用系统调用fork( )创建2个子进程p1和p2,在父进程中使用系统调用signal( )捕捉来自键盘上的软中断信号SIGINT(即按Ctrl-C),当捕捉到软中断信号SIGINT后,父进程使用系统调用kill( )分别向2个子进程发出软中断信号SIGUSR1和SIGUSR2,子进程捕捉到信号后分别输出信息“Child process p1 is killed by parent!”和“Child process p2 is killed by parent!”后终止。而父进程等待2个子进程终止后,输出信息“Parent process is killed!”后终止。 三、实验要求 1. 根据实验内容编写C程序。 2. 上机调试程序。 3. 记录并分析程序运行结果。

《操作系统大型实验》课程教学大纲

《操作系统大型实验》课程教学大纲 一、课程的性质和教学目标 课程性质: 本大型实验是“操作系统原理”课程的实践课程,旨在培养学生操作系统综合设计能力。 教学目标: 通过本课程,提高学生对于操作系统的认识,并从系统的可扩展性、可移植性和服务与对象的协调性方面着手,培养学生实际动手能力和解决实际问题的能力,提高学生运用工程化思想进行软/硬件系统解决方案构建和开发的能力。 1. 巩固和加深对操作系统原理的理解,提高综合运用本课程所学知识的能力。 2. 培养学生选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。 3. 通过实际操作系统的分析设计、编程调试,掌握系统软件的分析方法和工程设计方法。 4. 能够按要求编写课程设计报告书,能正确阐述设计和实验结果、正确绘制系统和程序框图。 二、课程支撑的毕业要求及其指标点 该课程支撑以下毕业要求和具体细分指标点: 【毕业要求3】设计/开发解决方案:能够设计针对复杂工程问题的解决方案,设计满足特定需求的系统、单元(部件)或工艺流程,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。 支撑指标点3.1:能够针对复杂工程问题中的软件单个特定环节进行分析、设计,能发现问题、提出问题并就改进的可能性提出初步分析。 三、课程教学内容及学时分配 1.理论教学安排 以小组讨论、自主完成为主,不单独安排集中授课时间。 2.实践教学安排 实验要求一开发工具:word,visio等 1 / 3

阅读和分析Linux下的ROMFS文件系统代码(inode.c),说明其功能和实现的思路,给代码写出注释。 画出流程图。 实验要求二开发工具:word,vc,win32api 设计和实现一个模拟文件系统,要求包括目录、普通文件和文件的存储。必须有自定义的数据结构,不能直接调用windows 的API函数,即不能只实现一个壳。 文件系统的目录结构采用类似Linux的树状结构。 要求模拟的操作包括: 目录的添加、删除、重命名; 目录的显示(列表) 文件的添加、删除、重命名 文件和目录的拷贝 文件的读写操作 用户进入时显示可用命令列表;用户输入help时显示所有命令的帮助文档;输入某个命令+?时显示该条命令的使用说明。 用户输入exit时退出该系统。 实验实现基于windows平台。 实验开发语言必须选用C/C++,不能选用JA V A。 实验要求三开发工具:linux ,vim ,kdevelop 设计和实现一个模拟文件系统,要求包括目录、普通文件和文件的存储。。 文件系统的目录结构采用类似Linux的树状结构。 要求模拟的操作包括: 目录的添加、删除、重命名; 目录的显示(列表) 文件的添加、删除、重命名 文件和目录的拷贝 文件的读写操作 用户进入时显示可用命令列表;用户输入help时显示所有命令的帮助文档;输入某个命令+?时显示该条命令的使用说明。 用户输入exit时退出该系统。 实验实现基于LINUX平台。 实验开发语言必须选用C/C++,不能选用JA V A。 实验报告模板 该实验报告不采用统一的模板,但要求必须包含以下内容: 实验者身份信息,如班级姓名等 实验设计说明,如流程图,类图等; 2 / 3

操作系统原理实验五

实验五线程的同步 1、实验目的 (1)进一步掌握Windows系统环境下线程的创建与撤销。 (2)熟悉Windows系统提供的线程同步API。 (3)使用Windows系统提供的线程同步API解决实际问题。 2、实验准备知识:相关API函数介绍 ①等待对象 等待对象(wait functions)函数包括等待一个对象(WaitForSingleObject ())和等待多个对象(WaitForMultipleObject())两个API函数。 1)等待一个对象 WaitForSingleObject()用于等待一个对象。它等待的对象可以为以下对象 之一。 ·Change ontification:变化通知。 ·Console input: 控制台输入。 ·Event:事件。 ·Job:作业。 ·Mutex:互斥信号量。 ·Process:进程。 ·Semaphore:计数信号量。 ·Thread:线程。 ·Waitable timer:定时器。 原型: DWORD WaitForSingleObject( HANDLE hHandle, // 对象句柄 DWORD dwMilliseconds // 等待时间 ); 参数说明: (1)hHandle:等待对象的对象句柄。该对象句柄必须为SYNCHRONIZE访问。 (2)dwMilliseconds:等待时间,单位为ms。若该值为0,函数在测试对象的状态后立即返回,若为INFINITE,函数一直等待下去,直到接收到 一个信号将其唤醒,如表2-1所示。 返回值: 如果成功返回,其返回值说明是何种事件导致函数返回。

Static HANDLE hHandlel = NULL; DWORD dRes; dRes = WaitForSingleObject(hHandlel,10); //等待对象的句柄为hHandlel,等待时间为10ms 2)等待对个对象 WaitForMultiple()bject()在指定时间内等待多个对象,它等待的对象与 WaitForSingleObject()相同。 原型: DWORD WaitForMultipleObjects( DWORD nCount, //句柄数组中的句柄数 CONST HANDLE * lpHandles, //指向对象句柄数组的指针 BOOL fWaitAll, //等待类型 DWORD dwMilliseconds //等待时间 ); 参数说明: (1)nCount:由指针 * lpHandles指定的句柄数组中的句柄数,最大数是MAXIMUM WAIT OBJECTS。 (2)* lpHandles:指向对象句柄数组的指针。 (3)fWaitAll:等待类型。若为TRUE,当由lpHandles数组指定的所有对象被唤醒时函数返回;若为FALSE,当由lpHandles数组指定的某一个 对象被唤醒时函数返回,且由返回值说明是由于哪个对象引起的函数 返回。 (4)dwMilliseconds:等待时间,单位为ms。若该值为0,函数测试对象的状态后立即返回;若为INFINITE,函数一直等待下去,直到接收到 一个信号将其唤醒。 返回值:、 如果成功返回,其返回值说明是何种事件导致函数返回。 各参数的描述如表2-2所示。

操作系统原理课程设计

操作系统原理课程设计 ——银行家算法模拟 指导老师:周敏唐洪英杨宏雨 杨承玉傅由甲黄贤英 院系:计算机学院计算机科学与技术班级:0237-6 学号:2002370609 姓名:刘洪彬 同组者:杨志 时间:2005/1/10---2005/1/14

银行家算法模拟 一、设计目的 本课程设计是学生学习完《计算机操作系统》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。 二、设计要求 银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。 从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求:两人一组,每组从所给题目中任选一个(如自拟题目,需经教师同意),每个学生必须独立完成课程设计,不能相互抄袭,同组者文档不能相同; 设计完成后,将所完成的工作交由老师检查; 要求写出一份详细的设计报告。 三、设计内容 编制银行家算法通用程序,并检测所给状态的系统安全性。 1)银行家算法中的数据结构 假设有n个进程m类资源,则有如下数据结构: 可利用资源向量Available。这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。Available[j]=K,则表示系统中现有Rj 类资源K个。 最大需求矩阵Max。这是一个n*m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max[i,j]=K,则表示进程i需要Rj类资源的最大数目为K。 分配矩阵Allocation。这也是一个n*m的矩阵,它定义了系统中每一类资源当前已分配给没一进程的资源数。如果Allocation[i,j]=K,则表示进程i 当前已分得Rj类资源的数目为K。 需求矩阵Need。这也是一个n*m的矩阵,用以表示每一个进程尚需的各类资源数。如果Need[i,j]=K,则表示进程i还需要Rj类资源K个,方能完成其任务。

相关文档
相关文档 最新文档