操作系统原理实验.ppt

上传人:小飞机 文档编号:6136722 上传时间:2023-09-27 格式:PPT 页数:243 大小:882.50KB
返回 下载 相关 举报
操作系统原理实验.ppt_第1页
第1页 / 共243页
操作系统原理实验.ppt_第2页
第2页 / 共243页
操作系统原理实验.ppt_第3页
第3页 / 共243页
操作系统原理实验.ppt_第4页
第4页 / 共243页
操作系统原理实验.ppt_第5页
第5页 / 共243页
点击查看更多>>
资源描述

《操作系统原理实验.ppt》由会员分享,可在线阅读,更多相关《操作系统原理实验.ppt(243页珍藏版)》请在三一办公上搜索。

1、操作系统原理实验,操作系统原理实验课程说明,教材操作系统原理实验,周苏 金海溶等编著,科学出版社,2003教学安排由教师结合“操作系统原理”课程进行实验环境Microsoft Windows 2000 ProfessionalRed Hat Linux 9.0,操作系统的各个主题 粗线表示从设计和实现的角度考虑关系非常紧密,实验1 安装操作系统,通过对Windows 2000 Professional和Red Hat Linux 9.0的安装操作,了解操作系统应用环境建立的初步过程,掌握操作系统的基本系统设置,掌握多操作系统的安装和设置。实验1.1 安装 Windows 2000 Profes

2、sional实验1.2 安装 Red Hat Linux 9.0,实验估计时间:120分钟,难度系数:4背景知识实验目的工具/准备工作实验内容与步骤实验提示,1.1 安装 Windows 2000 Professional,计算机执行的任何程序都必须首先读入内存,CPU通过内存来访问程序,而安装操作系统实际上是把存放在光盘上的操作系统执行代码存入硬盘的过程从硬盘上加载程序到内存很方便操作系统中的文件系统主要是靠硬盘提供物理支持安装操作系统到硬盘,实际上有两方面的作用在硬盘上建立文件系统把操作系统的全部内容事先存放在硬盘上以备使用当使用计算机时,从硬盘上加载操作系统到内存,然后将机器控制权转给操

3、作系统内核来执行,背景知识,在本实验中,通过 Windows 2000 Professional 的安装,来了解Windows操作系统的安装及配置,包括安装前的准备工作、驱动程序的配置以及系统的设定等内容Windows 2000一共有四个版本,即Professional、Server、Advanced Server和Datacenter Server,它们的差别在于功能以及支持CPU、RAM数量上的不同,背景知识,由于用户计算机环境的不同,需要的安装方式和内容也会有所不同。升级安装:保存计算机的现有文件及设置,并将原Windows系统升级为Windows 2000 Professional全新

4、安装:有助于提升系统性能。但不保存计算机中原有的文件及设置,机器中的所有应用程序都要重新安装多重开机安装:使计算机拥有多种操作系统,每次开机时,可以选择所要启动的系统,背景知识,多重开机安装Windows 2000 Professional的多重开机安装支持下列操作系统:Windows NT 3.51/4.0、Windows 9x、Windows 3.x和MS-DOS采用多重开机安装方式,首先需要进行硬盘分区,因为每个操作系统都要求安装在不同的分区此外,还提高了对硬件的需求,因为安装多个操作系统的硬盘空间用量非常大各个操作系统的安装次序也要注意,原则上次序是MS-DOS、Windows 3.x

5、、Windows 9x优先安装,然后是Windows NT,再安装Windows 2000,背景知识,通过对Windows 2000 Professional的安装操作,了解操作系统应用环境建立的初步过程掌握对Windows操作系统的基本系统设置了解Windows多操作系统安装的方法,实验目的,开始本实验之前,请回顾教科书的相关内容需要一台准备安装Windows 2000 Professional操作系统的计算机Windows 2000对系统的要求比较高CPU:Pentium 166MHz,建议Pentium II以上内存:32MB,建议64MB以上磁盘空间(可用空间/总空间):650MB/2

6、GB,建议1.5GB/4GBCD-ROM或DVD-ROM光驱网卡和调制解调器VGA显卡及显示器、键盘、鼠标,工具/准备工作,本实验以光盘启动、全新安装为例可以利用Windows 2000 Professional光盘来直接开机启动,开机后自动执行安装程序安装过程可分为两个阶段文字模式阶段:选择用来安装Windows 2000的硬盘。安装程序提供了建立分区、删除分区以及格式化等功能GUI图形界面阶段:进行系统设置与复制文件的动作,完成Windows 2000系统的安装,实验内容与步骤,同意接受Windows许可协议记录机器总的硬盘空间数据选择文件系统:FAT、FAT32和NTFS,但一般建议选择

7、NTFS文件系统按提示安装“Service Pack”光盘软件的产品序列号(25个字符的产品密钥),实验提示,实验估计时间:120分钟,难度系数:4背景知识实验目的工具/准备工作实验内容与步骤实验提示,1.2 安装 Red Hat Linux 9.0,Linux是一种可运行于多种硬件平台(如PC及其兼容机、Alpha工作站、SUN Spare工作站)、源代码公开、免费提供用户使用、功能强大、遵守POSIX(可移植操作系统接口)标准、与UNIX兼容的操作系统。此外,Linux也支持多CPU计算机Linux发布的版本不下几十种,不同版本Linux的基本操作方法、用户界面、基本功能等大都相同Linu

8、x可以直接在裸机上安装,也可以在硬盘上与其他操作系统,如 MS-DOS、Windows或OS/2共存安装Linux所花费的时间依具体机器的运行速度和Linux版本等条件而定,背景知识,以安装Red Hat Linux 9.0为例,学习和掌握Linux操作系统的安装掌握对Linux操作系统的的基本系统设置掌握与Linux相关的多操作系统安装的方法,实验目的,在开始本实验之前,请回顾教科书的相关内容检查硬件Linux对计算机硬件的要求不高,大部分硬件都是普通用户和开发人员已经拥有的或很容易得到的用光盘进行安装之前,应检查计算机是否允许从光盘驱动器引导启动,否则应对机器的BIOS进行相应的设置某些硬

9、件在安装时需要驱动程序盘,以为安装程序不直接支持的硬件添加支持注意记录系统的有关信息,以帮助更顺利地完成Red Hat Linux安装进程,工具/准备工作,备份硬盘上的所有重要数据将硬盘上原有的重要数据备份到软盘、优盘或CD-R光盘上,以免发生意外时,造成不必要的数据损失为Linux的安装准备分区Linux使用自己的文件系统(Linux ext2),拥有自己的特别分区类型,这意味着不能将Linux安装到一个DOS或Windows分区上,所以必须在硬盘上留下一些空间(将被转换成Linux的分区)来安装Linux,工具/准备工作,在已安装DOS或Windows系统(系统中还留有足够Linux安装的

10、扩展分区)的计算机上安装,就使用DOS或者Linux的fdisk软件来给扩展分区重新划分逻辑分区,要求留出两个逻辑分区,在安装过程中用Linux自身带的分区程序将其中一个分为Linux的安装分区(完全安装要留2GB左右或者更大),另一个作为Linux的交换分区(建议留100M左右或者更大)如果所使用的是FAT32系统,就只能重新分区重装系统后再安装Linux(FIPS分区程序不识别FAT32文件系统),工具/准备工作,本实验中,假设机器中已经安装Windows操作系统,并以光盘安装、图形界面为例来学习安装Red Hat Linux安装准备配置一个双引导系统开始安装,实验内容与步骤,操作系统的各

11、个主题 粗线表示从设计和实现的角度考虑关系非常紧密,实验2 操作系统环境,通过调查研究活动和对Windows、Linux系统运行的观察分析,回顾计算环境的基本术语,加深理解有关操作系统的基础概念,掌握主流操作系统的命令和图形界面,学会在操作系统上的主要系统管理操作实验2.1 操作系统的计算环境实验2.2 Windows 2000系统管理实验2.3 访问Linux系统,实验估计时间:120分钟,难度系数:3,2.1 操作系统的计算环境,本实验帮助回顾Windows 2000/XP、UNIX和Linux的计算环境术语,加深理解有关操作系统的基础概念调查在学校或其他机构中Windows、UNIX和L

12、inux的使用情况,看哪些机构在使用Windows、UNIX或者Linux系统;研究Web站点,看哪些因特网网站(尤其是简体中文网站)分别支持着Windows、UNIX和Linux操作系统的应用,背景知识,通过实验,加深对以下内容的理解基本的计算机硬件组件;计算机操作系统;Windows的发展和版本UNIX和Linux的历史和版本;Windows 2000、UNIX或Linux操作环境。调查在机构、学校和学生中Windows、UNIX和Linux操作系统的使用情况分别研究支持Windows和Linux的Web站点,实验目的,在开始本实验之前,请回顾教科书的相关内容联系指导老师或者熟识网络技术的

13、人士,如学校或企业信息技术部门的职员,了解学校或者其他机构 中使用了哪些服务器和网络操作系统,找出是否在用Windows NT/2000/XP、UNIX和Linux以及在哪里使用这些操作系统需要准备一台带有浏览器,能够访问因特网的计算机,工具/准备工作,识别一台计算机的4个主要硬件组成部分复习3个概念:内核、shell或者文件系统Windows 2000/XP操作系统的主要优点是什么?UNIX操作系统的主要优点是什么?Linux操作系统的主要优点是什么?列举Linux操作系统的主要组成部分Linux内核管理着哪几件事情?Linux系统的主要shell的名字和它们各自默认的提示符是什么?,实验内

14、容与步骤,操作系统的文件系统由哪几部分组成的?在指导老师或者信息技术人员的帮助下,找出在学校或者其他机构中使用的几种操作系统。请列举其版本、支持厂商和服务器的功能,填入表中通过有关教科书和对Web网站的搜索了解,列举出你找到的Linux发行版本及其支持厂商和网站,填入表中,实验内容与步骤,实验估计时间:60分钟,难度系数:3,2.2 Windows 2000 系统管理,Windows 2000 Professional的“管理工具”中集成了许多系统管理工具,利用这些工具,管理员可以方便地实现各种系统维护和管理功能这些工具集中在“控制面板”的“管理工具”选项下,用户和管理员可以很容易地对它们操作

15、和使用,背景知识,默认情况下,只有一些常用工具随Windows 2000系统的安装而安装服务:启动和停止由Windows系统提供的各项服务计算机管理器:管理磁盘以及使用其他系统工具来管理本地或远程计算机事件查看器:显示来自于Window和其他程序的监视与排错信息数据源(ODBC):添加、删除以及配置ODBC数据源和驱动程序性能:显示系统性能图表以及配置数据日志和警报组件服务:配置并管理COM+应用程序,背景知识,另一些工具则随系统服务的安装而添加到系统中,例如:Telnet服务器管理:查看以及修改Telnet服务器设置和连接Internet服务管理器:管理IIS、Internet和Intran

16、et Web站点的Web服务器本地安全策略:查看和修改本地安全策略,诸如用户权限和审计策略,背景知识,了解和学习Windows系统管理工具及其使用熟悉Windows系统工具的内容和应用进一步熟悉Windows操作系统的应用环境,实验目的,在开始本实验之前,请回顾教科书的相关内容需要准备一台运行 Windows 2000 Professional操作系统的计算机,工具/准备工作,为了帮助用户管理和监视系统,Windows 2000提供了多种系统管理工具,其中最主要的有计算机管理事件查看器性能监视服务数据源(ODBC),实验内容与步骤,实验估计时间:90分钟,难度系数:4,2.3 访问Linux系

17、统,Linux是一个与DOS或Windows完全不同的操作环境,具有它自己独特的风格登录Linux和使用GNOME首先回顾Linux登录ID和口令的要求,使用标准图形用户界面GNOME练习登录Linux系统,并修改登录口令接着,学习使用GNOME。GNOME是优秀的Linux桌面平台,也是目前Linux各版本中使用的对国际化支持最好的桌面平台。使用GNOME需要熟悉面板,练习使用鼠标和键盘管理视窗;还需要练习工作空间的切换和使用工作空间菜单然后通过Linux系统的Shell、Linux文件、目录和权限等诸方面来掌握Linux系统管理的有关知识最后,退出(或者注销)并返回Linux登录界面,背景

18、知识,Linux系统的Shell使用Linux系统时,用户多数时间是通过Shell与系统进行对话的。Shell是一个接收用户输入命令并将其转换成指令的程序,它是用户与Linux系统之间的界面之一,背景知识,Linux系统中可以使用的Shell包括:bash:Bourne Again Shell。这是Linux系统上最常用的Shell,它合乎POSIX标准且相容于Bourne Shell,是GNU工程(自由软件基金会)的产物,并且提供了编辑命令行的功能csh:C Shell。由Berkeley(伯克利大学)开发,与Bourne Shell在交互式使用上很多是相兼容的,但在程序设计界面上却有很大的

19、不同。它不提供编辑命令行的功能,但它有类似的功能叫命令历史记录ksh:Korn Shell。在UNIX系统下得到普遍使用,并最早将现代Shell技术(包括取自C Shell的部分)引入Bourne Shell,提供了编辑命令行功能sh:Bourne Shell。是原始的Shell,不提供编辑命令行功能tcsh:C Shell的加强版,提供了编辑命令行的功能zsh:Z Shell。最新的Shell,与Bourne Shell兼容,提供编辑命令行的功能,背景知识,Linux系统的文件、目录和权限Linux的文件名与DOS有许多相似之处也有其自身的特点Linux文件名没有标准格式。通常文件名中可以包

20、含任何字符(“/”字符除外,“”字符不能作为文件名的第一个字符),文件名的长度限制在256个字符以内。Linux的文件名也提供了功能强大且精确的通配符文件的权限是Linux系统安全的核心部分,包括Read(可读)权限:表示可以读取文件内的数据Write(可写)权限:表示可以改变或删除该文件Execute(可执行)权限:表示可以把该文件当成程序执行,背景知识,除文件权限之外,Linux系统上还有目录和很多其他类型的文件,其中包括特殊文件(设备)、Socket和符号连接等等(平时我们经常使用的Windows设备如软驱、光驱等在Linux中也是一种特殊的文件)拥有root口令的用户称为超级用户,超级

21、用户有权访问整个系统,包括建立普通用户帐号、修改密码、安装与卸载软件等一切权限。超级用户的提示符为“#”,普通用户提示符为“$”几个用户在一个系统下共用一个帐号,其个人文件的安全就得不到保障。建立普通用户帐号后,系统能保证用户是唯一能够存取其个人文件的人。另一方面,即使没有与人共享一个系统,建立普通用户帐号也是必要的。因为如果总是以超级用户登录进行操作(超级用户的权限是整个系统),一旦出现误操作(如:破坏或移动、删除一个重要的系统文件)处理起来也很棘手,背景知识,Linux文件系统Linux的文件系统是文件和目录层次的集合。了解Linux文件系统的结构有助于更好地理解和使用Linux。在Lin

22、ux文件系统根目录下,有如下子目录:bin、dev、etc、home、install、lib、mnt、proc、root、tmp、user、var(不同版本,目录会略有不同)/bin目录 该目录中存放许多基本的系统程序。/dev目录 该目录中存放的文件是设备驱动程序,用来访问系统设备和资源,如磁盘设备、调制解调器、内存等,背景知识,登录Linux和熟悉GNOME通过登录Linux操作理解以下内容Linux登录ID的要求在GNOME环境下登录进入Linux系统修改口令正确退出或者注销Linux系统通过以下操作熟悉GNOME界面回顾GNOME面板图标和菜单管理GNOME视窗,实验目的,使用Linu

23、x Shell了解用户Linux环境所使用的Shell更改用户系统的Shell初步了解bash熟悉Linux的文件和目录掌握Linux文件名通配符的使用了解Linux系统目录的特点了解Linux文件系统Linux文件系统根目录的子目录/bin目录中的文件/dev目录中的文件,实验目的,在开始本实验之前,请回顾教科书中的相关内容您需要做以下准备由指导老师分配的Linux登录用户ID(如user2)和口令一台运行Red Hat Linux操作系统并带有GNOME的计算机,工具/准备工作,登录规则和口令规则登录Linux熟悉GNOMELinux系统中的ShellLinux系统中文件与目录 Linux

24、的文件系统注销GNOME,实验内容与步骤,Linux的常用命令有关目录的命令:pwd、cd有关文件的命令:ls、cat、chown、cp、date、dd、file、find其他的命令:kill、clear、mount、umount、reboot、passwd、su,可选练习,操作系统的各个主题 粗线表示从设计和实现的角度考虑关系非常紧密,实验3 进程控制与描述,通过在Windows任务管理器中对程序进程进行响应的管理操作和管理Linux进程的操作,熟悉操作系统进程管理的概念,观察操作系统运行的动态性能,获得包含多进程的应用程序编程经验 实验3.1 Windows 任务管理器的进程管理实验3.2

25、 Windows 2000 编程实验3.3 Windows 2000 进程的“一生”实验3.4 管理 Linux 系统进程,实验估计时间:60分钟,难度系数:3,3.1 Windows 任务管理器的进程管理,Windows 2000的任务管理器提供了用户计算机上正在运行的程序和进程的相关信息,也显示了最常用的度量进程性能的单位使用任务管理器可以打开监视计算机性能的关键指示器,快速查看正在运行的程序的状态,或者终止已停止响应的程序也可以使用多个参数评估正在运行的进程的活动,以及查看CPU 和内存使用情况的图形和数据,背景知识,任务管理器中“应用程序”选项卡:显示正在运行程序的状态,用户能够结束、

26、切换或者启动程序“进程”选项卡:显示正在运行的进程信息。例如,可以显示关于CPU 和内存使用情况、页面错误、句柄计数以及许多其他参数的信息“性能”选项卡:显示计算机动态性能,包括CPU 和内存使用情况的图表,正在运行的句柄、线程和进程的总数,物理、核心和认可的内存总数(KB)等,背景知识,通过在Windows 任务管理器中对程序进程进行响应的管理操作熟悉操作系统进程管理的概念学习观察操作系统运行的动态性能,实验目的,在开始本实验之前,请回顾教科书的相关内容需要准备一台运行Windows 2000 Professional操作系统的计算机,工具/准备工作,使用任务管理器终止进程显示其他进程记数器

27、更改正在运行的程序的优先级,实验内容与步骤,注意实验中所使用的是操作系统的哪个版本了解在当前机器中正在运行的应用程序在Windows XP的任务管理器中,“进程”选项卡增加了一个“用户名”栏目,其中区分了SYSTEM、NETWORK SERVICE、LOCAL SERVICE和用户的不同进程类别终止进程时要小心,有可能导致不希望发生的结果,包括数据丢失和系统不稳定等;终止进程将结束它直接或间接创建的所有子进程,实验提示,实验估计时间:120分钟,难度系数:4,3.2 Windows 2000 编程,Windows 2000可以识别的应用程序包括控制台应用程序、GUI应用程序和服务应用程序控制台

28、应用程序可以创建GUI;GUI应用程序可以作为服务来运行;服务也可以向标准的输出流写入数据不同类型应用程序间的惟一重要区别是其启动方法,背景知识,Windows 2000是以NT的技术构建的,它提供了创建控制台应用程序的能力,使用户可以利用标准的C+工具,如iostream库中的cout和cin对象,来创建小型应用程序。当系统运行时,Windows 2000的服务通常要向系统用户提供所需功能服务应用程序类型需要ServiceMail()函数,由服务控制管理器(SCM)加以调用。SCM是操作系统的集成部分,负责响应系统启动以开始服务、指导用户控制或从另一个服务中来的请求。其本身负责使应用程序的行

29、为像一个服务。通常,服务登录到特殊的LocalSystem账号下,此账号具有与开发人员创建的服务不同的权限,背景知识,当令C+编译器创建可执行程序时,编译器将源代码编译成OBJ文件,然后将其与标准库相链接。产生的EXE文件是装载器指令、机器指令和应用程序的数据的集合。装载器指令告诉系统从哪里装载机器代码。另一个装载器指令告诉系统从哪里开始执行进程的主线程。在进行某些设置后,进入开发者提供的main()、ServiceMain()或WinMain()函数的低级入口点。机器代码中包括有控制逻辑,它所做的事包括跳转到Windows API函数,进行计算或向磁盘写入数据等Windows允许开发人员将大

30、型应用程序分为较小的、互相有关系的服务模块,即动态链接库(DLL)代码块,在其中包含应用程序所使用的机器代码和应用程序的数据,背景知识,通过对Windows 2000编程进一步熟悉操作系统的基本概念较好地理解Windows 2000的结构,实验目的,在开始本实验之前,请回顾教科书的相关内容需要做以下准备一台运行Windows 2000 Professional操作系统的计算机计算机中需安装Visual C+6.0专业版或企业版,工具/准备工作,简单的控制台应用程序GUI应用程序进程对象,实验内容与步骤,在与本书配套提供的一张小光盘中,包含了在各个实验中用到的所有程序的源代码,这些源程序均通过调

31、试运行,实验时可直接将文件输入也可以利用任何其他文本编辑器键入程序代码。如果这样(例如使用WORD来键入和编辑程序)则应该注意什么问题?,实验提示,实验估计时间:120分钟,难度系数:4,3.3 Windows 2000 进程的“一生”,Windows 所创建的每个进程都从调用CreateProcess()API函数开始,该函数的任务是在对象管理器子系统内初始化进程对象每一进程都以调用ExitProcess()或TerminateProcess()API函数终止。通常应用程序的框架负责调用 ExitProcess()函数。对于C+运行库来说,这一调用发生在应用程序的main()函数返回之后,背

32、景知识,创建进程CreateProcess()调用的核心参数是可执行文件运行时的文件名及其命令行,背景知识,正在运行的进程如果一个进程拥有至少一个执行线程,则为正在系统中运行的进程。通常,这种进程使用主线程来指示它的存在。当主线程结束时,调用ExitProcess()API函数,通知系统终止它所拥有的所有正在运行、准备运行或正在挂起的其他线程当进程正在运行时,可以通过一系列的API函数来查看它的许多特性,其中少数特性也允许加以修改,背景知识,终止进程所有进程都是以调用ExitProcess()或者TerminateProcess()函数结束的。但最好使用前者而不要使用后者,因为进程是在完成了它

33、的所有的关闭“职责”之后以正常的终止方式来调用前者的。而外部进程通常调用后者即突然终止进程的进行,由于关闭时的途径不太正常,有可能引起错误的行为TerminateProcess()API函数只要打开带有PROCESS_TERMINATE访问权的进程对象,就可以终止进程,并向系统返回指定的代码。这是一种“野蛮”的终止进程的方式,但是有时却是需要的,背景知识,通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows 2000进程的“一生”通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法,实验目的,在开始本实验之前,请回顾

34、教科书的相关内容需要做以下准备:一台运行Windows 2000 Professional操作系统的计算机计算机中需安装Visual C+6.0专业版或企业版,工具/准备工作,创建进程正在运行的进程终止进程,实验内容与步骤,实验估计时间:90分钟,难度系数:4,3.4 管理 Linux 系统进程,在本实验中,我们将使用Linux命令工作,来标识和控制系统进程。Linux操作系统使用进程管理作业,进程由系统或者用户初始化。用户在Linux环境下执行的作业大多数都会启动一个进程。进程可以启动或者派生一个子进程,这样创建了一个进程层次结构或者进程树,类似于具有父子关系的文件系统层次结构可以使用ps(

35、进程状态)命令工作,监控系统进程,使用kill命令终止不想要的进程,背景知识,回顾系统进程的概念,加深对Linux/UNIX进程管理的理解回顾ps命令和选项列出当前shell中的进程列出运行在系统中的所有进程根据命令名搜索特定的进程确定一个进程,终止它使用kill命令终止进程根据用户查找和终止进程根据命令名终止进程,实验目的,在开始本实验之前,请回顾教科书的相关内容您需要做以下准备由指导老师分配的登录用户 ID(如user2)和口令一台运行Red Hat Linux操作系统的计算机,工具/准备工作,登录进入GNOME访问命令行回顾系统进程概念回顾ps命令和信息列出系统中运行的所有进程根据命令名

36、搜索特定的进程确定一个要终止的进程使用kill命令终止一个进程按照用户查找和终止一个进程,实验内容与步骤,操作系统的各个主题 粗线表示从设计和实现的角度考虑关系非常紧密,实验4 并发与调度,通过对事件和互斥体对象以及对文件和文件映射对象的了解,来加深对操作系统进程同步、线程同步的理解;通过Linux并发程序的调试,学习操作系统并发程序的工作方式实验4.1 Windows 2000 线程同步实验4.2 Windows 2000 线程间的通讯实验4.3 Linux 并发程序设计,实验估计时间:120分钟,难度系数:4,4.1 Windows 2000 线程同步,Windows 2000提供的常用对

37、象可分成三类:核心应用服务、线程同步和线程间通讯。其中,开发人员可以使用线程同步对象来协调线程和进程的工作,以使其共享信息并执行任务。此类对象包括互锁数据临界段事件互斥体信号,背景知识,多线程编程中关键的一步是保护所有的共享资源,工具主要有互锁函数、临界段和互斥体等;另一个实质性部分是协调线程使其完成应用程序的任务,为此,可利用内核中的事件对象和信号在进程内或进程间实现线程同步的最方便的方法是使用事件对象,这一组内核对象允许一个线程对其受信状态进行直接控制,背景知识,而互斥体则是另一个可命名且安全的内核对象,其主要目的是引导对共享资源的访问。拥有单一访问资源的线程创建互斥体,所有想要访问该资源

38、的线程应该在实际执行操作之前获得互斥体,而在访问结束时立即释放互斥体,以允许下一个等待线程获得互斥体,然后接着进行下去与事件对象类似,互斥体容易创建、打开、使用并清除。利用CreateMutex()API可创建互斥体,创建时还可以指定一个初始的拥有权标志,通过使用这个标志,只有当线程完成了资源的所有的初始化工作时,才允许创建线程释放互斥体,背景知识,为了获得互斥体,首先,想要访问调用的线程可使用OpenMutex()API来获得指向对象的句柄;然后,线程将这个句柄提供给一个等待函数。当内核将互斥体对象发送给等待线程时,就表明该线程获得了互斥体的拥有权。当线程获得拥有权时,线程控制了对共享资源的

39、访问必须设法尽快地放弃互斥体。放弃共享资源时需要在该对象上调用ReleaseMute()API。然后系统负责将互斥体拥有权传递给下一个等待着的线程(由到达时间决定顺序),背景知识,在本实验中,通过对事件和互斥体对象的了解,来加深对Windows 2000线程同步的理解。回顾系统进程、线程的有关概念,加深对Windows 2000线程的理解了解事件和互斥体对象通过分析实验程序,了解管理事件对象的API了解在进程中如何使用事件对象了解在进程中如何使用互斥体对象了解父进程创建子进程的程序设计方法,实验目的,在开始本实验之前,请回顾教科书的相关内容需要做以下准备一台运行Windows 2000 Pro

40、fessional操作系统的计算机计算机中需安装Visual C+6.0专业版或企业版,工具/准备工作,事件对象互斥体对象,实验内容与步骤,实验估计时间:120分钟,难度系数:5,4.2 Windows 2000 线程间的通讯,Windows 2000提供的线程间通讯类内核对象允许同一进程或跨进程的线程之间互相发送信息,包括文件、文件映射、邮件位和命名管道等,其中最常用的是文件和文件映射。这类对象允许一个线程很容易地向同一进程或其他进程中的另一线程发送信息,背景知识,文件对象文件对象是人们所熟悉的永久存储的传统元素。将一个文件看作是内核对象可使开发人员获得比标准C+文件操作更为强大的功能内核允

41、许开发人员在系统设备或网络上创建代表永久存储数据块的文件对象。这些文件对象是对永久存储数据的低级访问者;用C+运行库或其他方法打开的所有文件最终都要变成对CreateFile()API的调用CreateFile()函数分配一个内核对象来代表一个永久的文件。当在磁盘上创建一个新文件或当打开一个已经存在的文件时,就调用这个API,背景知识,创建调用比创建事件、互斥体或信号量要复杂。首先必须在lpFilename中指定对象名,并且要指向文件系统中所访问的位置。接着必须用dwDesiredAccess参数提供所需的访问级别由创建函数要求的共享模式参数dwShareMode可以指定当另一进程企图同时访问

42、数据时会发生什么。与所有其他第一级内核对象一样,可以利用lpSecurityAttributes参数指定所创建对象的安全性。接着,要通过dwCreationDisposition参数告诉创建函数,如果数据在指定的永久存储介质中存在或不存在时的行为,背景知识,可以使用dwFlagsAndAttributes参数来指定文件的属性(如只读),并确定对数据所执行的读写操作的行为。最后一个参数hTemplateFile可指定另一个文件对象作为模板,以便为新创建的文件复制属性或扩展属性Windows 2000系统中包括许多文件对象的工具函数API通常可以使用ReadFile()和WriteFile()AP

43、I在永久存储和应用程序间通过文件对象来移动数据。因为创建调用将对象的大多数复杂性封装起来了,这两个函数只是简单地利用指向要交换数据的文件对象的句柄(即指向内存内的数据缓存区的指针),然后计数移动数据的字节数。除此之外,这两个函数还执行重叠式的输入和输出,由于不会“堵塞”主线程,可用来传送大量的数据,背景知识,CreateFile()方法除了可访问标准的永久文件外,还可访问控制台输入和输出,以及从命名的管道来的数据GetFileType()API指明要处理的关键文件句柄的结构。除此之外,内核还提供了GetFileInformationByHandle()和GetFileSize()、GetFil

44、eTime()API用于获得关键数据的详细情况。其他用于在文件中改变数据的工具函数包括LockFile()、SetFilePointer()和SetEndOfFile()API除了这些基于句柄的API之外,内核还提供了大量的工具,用于按文件名对文件直接操作。文件对象用完之后,应该用CloseHandle()API加以清除,背景知识,文件映射对象比使用ReadFile()和WriteFile()API通过文件对象来读取和写入数据更为简单的是,Windows 2000还提供了一种在文件中处理数据的方法,名为内存映射文件,也称为文件映射。文件映射对象是在虚拟内存中分配的永久或临时文件对象区域(如果可

45、能的话,可大到整个文件),可将其看作是二进制的数据块。使用这类对象,可获得直接在内存中访问文件内容的能力文件映射对象提供了强大的扫描文件中数据的能力,而不必移动文件指针。对于多线程的读写操作来说,这一点特别有用,因为每个线程都可能想要把读取指针移动到不同的位置去为了防止这种情况,就需要使用某种线程同步机制保护文件,背景知识,在CreateFileMapping()API中,一个新的文件映射对象需要有一个永久的文件对象(由CreateFile()所创建)。该函数使用标准的安全性和命名参数,还有用于允许操作(如只读)的保护标志以及映射的最大容量。随后可根据来自OpenFileMapping()AP

46、I的其他线程或进程使用该映射这与事件和互斥体的打开进程是非常类似的内存映射文件对象的另一个强大的应用是可请求系统创建一个运行映射的临时文件。该临时文件提供一个临时的区域,用于线程或进程互相发送大量数据,而不必创建或保护磁盘上的文件。利用向创建函数中发送INVALID_HANDLE_VALUE来代替真正的文件句柄,就可创建这一临时的内存映射文件;指令内核使用系统页式文件来建立支持映射的最大容量的临时数据区,背景知识,为了利用文件映射对象,进程必须将对文件的查看映射到它的内存空间中。也就是说,应该将文件映射对象想象为进程的第一步,在这一步中,当查看实际上允许访问的数据时,附加有共享数据的安全性和命

47、名方式。为了获得指向内存区域的指针需要调用MapViewOfFile()API,此调用使用文件映射对象的句柄作为其主要参数。此外还有所需的访问等级(如读-写)和开始查看时文件内的偏移和要查看的容量。该函数返回一个指向进程内的内存的指针,此指针可有多种编程方面的应用(但不能超过访问权限)当结束文件映射查看时,必须用接受到的指针调用UnmapViewOfFlie()API,然后再根据映射对象调用CloseHandle()API,从而将其清除,背景知识,在本实验中,通过对文件和文件映射对象的了解,来加深对Windows 2000线程同步的理解回顾系统进程、线程的有关概念,加深对Windows 200

48、0线程间通讯的理解了解文件和文件映射对象通过分析实验程序,了解线程如何通过文件对象发送数据了解在进程中如何使用文件对象通过分析实验程序,了解线程如何通过文件映射对象发送数据了解在进程中如何使用文件映射对象,实验目的,在开始本实验之前,请回顾教科书的相关内容您需要做以下准备:一台运行Windows 2000 Professional 操作系统的计算机计算机中需安装Visual C+6.0专业版或企业版,工具/准备工作,文件对象 文件映射对象,实验内容与步骤,实验估计时间:90分钟,难度系数:4,4.3 Linux 并发程序设计,管道是Linux中最常用的进程间通信IPC机制。利用管道时,一个进程

49、的输出可成为另外一个进程的输入。当输入输出的数据量特别大时,这种IPC机制非常有用。可以想象,如果没有管道机制,而必须利用文件传递大量数据时,会造成许多空间和时间上的浪费在Linux中,通过将两个file结构指向同一个临时的索引节点,而两个索引节点又指向同一个物理页而实现管道,背景知识,通过在Linux进程之间进行的通信实例来学习并发程序设计的方法通过Linux进程通信的程序设计与实现,进一步熟悉操作系统的进程概念,理解Linux进程管理概念通过阅读和分析Linux实验程序,学习Linux程序设计、调试和运行的方法,实验目的,在开始本实验之前,请回顾教科书的相关内容需要准备一台运行Linux操

50、作系统的计算机,工具/准备工作,并发程序的设计关键是使用创建进程的系统调用,使一个程序运行时可以生成几个同时运行的程序,如果程序中没有创建进程的动作则为顺序程序设计本实验中的并发程序例子完成两个程序child和father之间的数据传递工作,具体做法分为四步编制并发程序pipeline.c编制“管道写”程序father.c作为父进程的一部分工作编制“管道读”程序child.c作为子进程的一部分工作编译运行,实验内容与步骤,操作系统的各个主题 粗线表示从设计和实现的角度考虑关系非常紧密,实验5 存储管理,通过实验程序的分析与编制,了解操作系统内存的使用和管理;了解操作系统的内存结构和虚拟内存的管

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号