- 1、本文档共43页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
操作系统实验指导书
操作系统实验指导书
课 程 号:1002060106
适用专业:计算机各专业
制 定 人:吴江红
教 研 室:计算机科学与技术教研室
计算机科学与信息工程学院
2012 年5 月
前言
操作系统是计算机的核心和灵魂。操作系统软件的设计对整个计算机的功能和性能起着至关重要的作用,所以此门课也是必不可少的,是面向计算机科学与技术、网络工程、软件工程等大多数计算机专业本科生和研究生开设的一门计算机专业课程。
操作系统是计算机系统的核心,《操作系统》课程是计算机科学与技术专业的重要必修课。本课程的目的是使学生掌握现代计算机操作系统的基本原理、基本设计方法及实现技术,具有分析现行操作系统和设计、开发实际操作系统的基本能力。
本课程的理论性强,内容抽象,特别是进程管理,需要通过严密的逻辑思维来想象微观时间世界中的处理机调度与运行。
通过学习使学生掌握计算机操作系统的基本原理及组成;计算机操作系统的基本概念和相关的新概念、名词及术语;了解计算机操作系统的发展特点、设计技巧和方法;对常用计算机操作系统(Dos、Windows和Unix或 Linux) 会进行基本的操作使用。
实验要求
为了顺利完成编译原理课程实验,学生应做到:
熟练掌握一种高级程序设计语言。
实验前,认真学习教材以及实验指导书的相关内容,提前做好实验准备。
每次实验先分析后编程,在实验报告中应写明自己的编程思路和设计流程。
实验结束一周后提交实验报告。实验报告内容应包括:实验目的、实验内容、设计思路和流程框图,源程序(含注释)清单、测试结果以及实验总结。
遵守机房纪律,服从辅导教师指挥,爱护实验设备。
实验的验收将分为两个部分。第一部分是上机操作,随机抽查程序运行和即时提问;第二部分是提交书面的实验报告。此外杜绝抄袭现象,一经发现雷同,双方成绩均以0分计算。
目 录
实验一 Windows多线程..................................................1实验二 Windows线程同步机制 ...........................................5
实验三 Windows线程通信................................................9
实验四 银行家算法模拟.................................................15
实验五 页面置换算法模拟...............................................22
PAGE
PAGE 38
实验一 Windows多线程
【开发语言及实现平台或实验环境】
C++/C#
Microsoft Visual Studio 6.0/ Microsoft Visual Studio .NET
【实验目的】
(1) 进一步理解操作系统的并发性;
(2) 了解Windows线程创建方法,并通过查阅资料理解各参数的含义;
(3) 了解多线程程序设计方法,并进行简单应用。
【实验要求】
(1) 逐程序进行简要分析、运行各程序并仔细阅读注释;
(2) 查阅MSDN或其他资料,掌握相关系统调用使用方法和参数含义;
(3) 完成实验报告。
【相关知识】
一、内核对象
(一) 内核对象的概念
内核对象是内核分配的一个内存块,这种内存块是一个数据结构,表示内核对象的各种特征。并且只能由内核来访问。应用程序若需要访问内核对象,需要通过操作系统提供的函数来进行,不能直接访问内核对象(Windows?从安全性方面来考虑的)。
内核对象通过?Create*?来创建,返回一个用于标识内核对象的句柄,这些句柄(而不是内核对象)可在创建进程范围内使用,不能够被传递到其他进程中被使用。
(二) 内核对象使用的计数
因为内核对象的所有者是内核,而不是进程,所以何时撤销内核对象由内核决定,而内核做这个决定的依据就是该内核对象是否仍然被使用。那么如何判断内核对象是否被使用呢?可以通过内核对象的“使用计数”属性,一旦这个值变成0了,内核就可以释放该对象了。
(三) 创建内核对象
1、进程与句柄表
每个进程在初始化的时候,将被分配一个句柄表,该句柄表中只存储内核对象的句柄,不存储用户对象的句柄。句柄表的详细结构微软没有公布,但是大致包含三个内容:内核对象句柄,内核对象地址,访问屏蔽标志。
2、创建内核对象及操作系统内部机制
利用?CreateSomeObject?的函数来创建内核对象。调用该函数的时候内核就为该对象分配一个内存块,并进行初始化,然后内核再扫描该进程的句柄表,初始化一条记录并放在句柄表中。
3、进程中使用内核对象的内部机制
假设
文档评论(0)