




已阅读5页,还剩238页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统原理实验,操作系统原理实验课程说明,教材操作系统原理实验,周苏金海溶等编著,科学出版社,2003教学安排由教师结合“操作系统原理”课程进行实验环境MicrosoftWindows2000ProfessionalRedHatLinux9.0,操作系统的各个主题粗线表示从设计和实现的角度考虑关系非常紧密,实验1安装操作系统,通过对Windows2000Professional和RedHatLinux9.0的安装操作,了解操作系统应用环境建立的初步过程,掌握操作系统的基本系统设置,掌握多操作系统的安装和设置。实验1.1安装Windows2000Professional实验1.2安装RedHatLinux9.0,实验估计时间:120分钟,难度系数:4背景知识实验目的工具/准备工作实验内容与步骤实验提示,1.1安装Windows2000Professional,计算机执行的任何程序都必须首先读入内存,CPU通过内存来访问程序,而安装操作系统实际上是把存放在光盘上的操作系统执行代码存入硬盘的过程从硬盘上加载程序到内存很方便操作系统中的文件系统主要是靠硬盘提供物理支持安装操作系统到硬盘,实际上有两方面的作用在硬盘上建立文件系统把操作系统的全部内容事先存放在硬盘上以备使用当使用计算机时,从硬盘上加载操作系统到内存,然后将机器控制权转给操作系统内核来执行,背景知识,在本实验中,通过Windows2000Professional的安装,来了解Windows操作系统的安装及配置,包括安装前的准备工作、驱动程序的配置以及系统的设定等内容Windows2000一共有四个版本,即Professional、Server、AdvancedServer和DatacenterServer,它们的差别在于功能以及支持CPU、RAM数量上的不同,背景知识,由于用户计算机环境的不同,需要的安装方式和内容也会有所不同。升级安装:保存计算机的现有文件及设置,并将原Windows系统升级为Windows2000Professional全新安装:有助于提升系统性能。但不保存计算机中原有的文件及设置,机器中的所有应用程序都要重新安装多重开机安装:使计算机拥有多种操作系统,每次开机时,可以选择所要启动的系统,背景知识,多重开机安装Windows2000Professional的多重开机安装支持下列操作系统:WindowsNT3.51/4.0、Windows9x、Windows3.x和MS-DOS采用多重开机安装方式,首先需要进行硬盘分区,因为每个操作系统都要求安装在不同的分区此外,还提高了对硬件的需求,因为安装多个操作系统的硬盘空间用量非常大各个操作系统的安装次序也要注意,原则上次序是MS-DOS、Windows3.x、Windows9x优先安装,然后是WindowsNT,再安装Windows2000,背景知识,通过对Windows2000Professional的安装操作,了解操作系统应用环境建立的初步过程掌握对Windows操作系统的基本系统设置了解Windows多操作系统安装的方法,实验目的,开始本实验之前,请回顾教科书的相关内容需要一台准备安装Windows2000Professional操作系统的计算机Windows2000对系统的要求比较高CPU:Pentium166MHz,建议PentiumII以上内存:32MB,建议64MB以上磁盘空间(可用空间/总空间):650MB/2GB,建议1.5GB/4GBCD-ROM或DVD-ROM光驱网卡和调制解调器VGA显卡及显示器、键盘、鼠标,工具/准备工作,本实验以光盘启动、全新安装为例可以利用Windows2000Professional光盘来直接开机启动,开机后自动执行安装程序安装过程可分为两个阶段文字模式阶段:选择用来安装Windows2000的硬盘。安装程序提供了建立分区、删除分区以及格式化等功能GUI图形界面阶段:进行系统设置与复制文件的动作,完成Windows2000系统的安装,实验内容与步骤,同意接受Windows许可协议记录机器总的硬盘空间数据选择文件系统:FAT、FAT32和NTFS,但一般建议选择NTFS文件系统按提示安装“ServicePack”光盘软件的产品序列号(25个字符的产品密钥),实验提示,实验估计时间:120分钟,难度系数:4背景知识实验目的工具/准备工作实验内容与步骤实验提示,1.2安装RedHatLinux9.0,Linux是一种可运行于多种硬件平台(如PC及其兼容机、Alpha工作站、SUNSpare工作站)、源代码公开、免费提供用户使用、功能强大、遵守POSIX(可移植操作系统接口)标准、与UNIX兼容的操作系统。此外,Linux也支持多CPU计算机Linux发布的版本不下几十种,不同版本Linux的基本操作方法、用户界面、基本功能等大都相同Linux可以直接在裸机上安装,也可以在硬盘上与其他操作系统,如MS-DOS、Windows或OS/2共存安装Linux所花费的时间依具体机器的运行速度和Linux版本等条件而定,背景知识,以安装RedHatLinux9.0为例,学习和掌握Linux操作系统的安装掌握对Linux操作系统的的基本系统设置掌握与Linux相关的多操作系统安装的方法,实验目的,在开始本实验之前,请回顾教科书的相关内容检查硬件Linux对计算机硬件的要求不高,大部分硬件都是普通用户和开发人员已经拥有的或很容易得到的用光盘进行安装之前,应检查计算机是否允许从光盘驱动器引导启动,否则应对机器的BIOS进行相应的设置某些硬件在安装时需要驱动程序盘,以为安装程序不直接支持的硬件添加支持注意记录系统的有关信息,以帮助更顺利地完成RedHatLinux安装进程,工具/准备工作,备份硬盘上的所有重要数据将硬盘上原有的重要数据备份到软盘、优盘或CD-R光盘上,以免发生意外时,造成不必要的数据损失为Linux的安装准备分区Linux使用自己的文件系统(Linuxext2),拥有自己的特别分区类型,这意味着不能将Linux安装到一个DOS或Windows分区上,所以必须在硬盘上留下一些空间(将被转换成Linux的分区)来安装Linux,工具/准备工作,在已安装DOS或Windows系统(系统中还留有足够Linux安装的扩展分区)的计算机上安装,就使用DOS或者Linux的fdisk软件来给扩展分区重新划分逻辑分区,要求留出两个逻辑分区,在安装过程中用Linux自身带的分区程序将其中一个分为Linux的安装分区(完全安装要留2GB左右或者更大),另一个作为Linux的交换分区(建议留100M左右或者更大)如果所使用的是FAT32系统,就只能重新分区重装系统后再安装Linux(FIPS分区程序不识别FAT32文件系统),工具/准备工作,本实验中,假设机器中已经安装Windows操作系统,并以光盘安装、图形界面为例来学习安装RedHatLinux安装准备配置一个双引导系统开始安装,实验内容与步骤,操作系统的各个主题粗线表示从设计和实现的角度考虑关系非常紧密,实验2操作系统环境,通过调查研究活动和对Windows、Linux系统运行的观察分析,回顾计算环境的基本术语,加深理解有关操作系统的基础概念,掌握主流操作系统的命令和图形界面,学会在操作系统上的主要系统管理操作实验2.1操作系统的计算环境实验2.2Windows2000系统管理实验2.3访问Linux系统,实验估计时间:120分钟,难度系数:3,2.1操作系统的计算环境,本实验帮助回顾Windows2000/XP、UNIX和Linux的计算环境术语,加深理解有关操作系统的基础概念调查在学校或其他机构中Windows、UNIX和Linux的使用情况,看哪些机构在使用Windows、UNIX或者Linux系统;研究Web站点,看哪些因特网网站(尤其是简体中文网站)分别支持着Windows、UNIX和Linux操作系统的应用,背景知识,通过实验,加深对以下内容的理解基本的计算机硬件组件;计算机操作系统;Windows的发展和版本UNIX和Linux的历史和版本;Windows2000、UNIX或Linux操作环境。调查在机构、学校和学生中Windows、UNIX和Linux操作系统的使用情况分别研究支持Windows和Linux的Web站点,实验目的,在开始本实验之前,请回顾教科书的相关内容联系指导老师或者熟识网络技术的人士,如学校或企业信息技术部门的职员,了解学校或者其他机构中使用了哪些服务器和网络操作系统,找出是否在用WindowsNT/2000/XP、UNIX和Linux以及在哪里使用这些操作系统需要准备一台带有浏览器,能够访问因特网的计算机,工具/准备工作,识别一台计算机的4个主要硬件组成部分复习3个概念:内核、shell或者文件系统Windows2000/XP操作系统的主要优点是什么?UNIX操作系统的主要优点是什么?Linux操作系统的主要优点是什么?列举Linux操作系统的主要组成部分Linux内核管理着哪几件事情?Linux系统的主要shell的名字和它们各自默认的提示符是什么?,实验内容与步骤,操作系统的文件系统由哪几部分组成的?在指导老师或者信息技术人员的帮助下,找出在学校或者其他机构中使用的几种操作系统。请列举其版本、支持厂商和服务器的功能,填入表中通过有关教科书和对Web网站的搜索了解,列举出你找到的Linux发行版本及其支持厂商和网站,填入表中,实验内容与步骤,实验估计时间:60分钟,难度系数:3,2.2Windows2000系统管理,Windows2000Professional的“管理工具”中集成了许多系统管理工具,利用这些工具,管理员可以方便地实现各种系统维护和管理功能这些工具集中在“控制面板”的“管理工具”选项下,用户和管理员可以很容易地对它们操作和使用,背景知识,默认情况下,只有一些常用工具随Windows2000系统的安装而安装服务:启动和停止由Windows系统提供的各项服务计算机管理器:管理磁盘以及使用其他系统工具来管理本地或远程计算机事件查看器:显示来自于Window和其他程序的监视与排错信息数据源(ODBC):添加、删除以及配置ODBC数据源和驱动程序性能:显示系统性能图表以及配置数据日志和警报组件服务:配置并管理COM+应用程序,背景知识,另一些工具则随系统服务的安装而添加到系统中,例如:Telnet服务器管理:查看以及修改Telnet服务器设置和连接Internet服务管理器:管理IIS、Internet和IntranetWeb站点的Web服务器本地安全策略:查看和修改本地安全策略,诸如用户权限和审计策略,背景知识,了解和学习Windows系统管理工具及其使用熟悉Windows系统工具的内容和应用进一步熟悉Windows操作系统的应用环境,实验目的,在开始本实验之前,请回顾教科书的相关内容需要准备一台运行Windows2000Professional操作系统的计算机,工具/准备工作,为了帮助用户管理和监视系统,Windows2000提供了多种系统管理工具,其中最主要的有计算机管理事件查看器性能监视服务数据源(ODBC),实验内容与步骤,实验估计时间:90分钟,难度系数:4,2.3访问Linux系统,Linux是一个与DOS或Windows完全不同的操作环境,具有它自己独特的风格登录Linux和使用GNOME首先回顾Linux登录ID和口令的要求,使用标准图形用户界面GNOME练习登录Linux系统,并修改登录口令接着,学习使用GNOME。GNOME是优秀的Linux桌面平台,也是目前Linux各版本中使用的对国际化支持最好的桌面平台。使用GNOME需要熟悉面板,练习使用鼠标和键盘管理视窗;还需要练习工作空间的切换和使用工作空间菜单然后通过Linux系统的Shell、Linux文件、目录和权限等诸方面来掌握Linux系统管理的有关知识最后,退出(或者注销)并返回Linux登录界面,背景知识,Linux系统的Shell使用Linux系统时,用户多数时间是通过Shell与系统进行对话的。Shell是一个接收用户输入命令并将其转换成指令的程序,它是用户与Linux系统之间的界面之一,背景知识,Linux系统中可以使用的Shell包括:bash:BourneAgainShell。这是Linux系统上最常用的Shell,它合乎POSIX标准且相容于BourneShell,是GNU工程(自由软件基金会)的产物,并且提供了编辑命令行的功能csh:CShell。由Berkeley(伯克利大学)开发,与BourneShell在交互式使用上很多是相兼容的,但在程序设计界面上却有很大的不同。它不提供编辑命令行的功能,但它有类似的功能叫命令历史记录ksh:KornShell。在UNIX系统下得到普遍使用,并最早将现代Shell技术(包括取自CShell的部分)引入BourneShell,提供了编辑命令行功能sh:BourneShell。是原始的Shell,不提供编辑命令行功能tcsh:CShell的加强版,提供了编辑命令行的功能zsh:ZShell。最新的Shell,与BourneShell兼容,提供编辑命令行的功能,背景知识,Linux系统的文件、目录和权限Linux的文件名与DOS有许多相似之处也有其自身的特点Linux文件名没有标准格式。通常文件名中可以包含任何字符(“/”字符除外,“”字符不能作为文件名的第一个字符),文件名的长度限制在256个字符以内。Linux的文件名也提供了功能强大且精确的通配符文件的权限是Linux系统安全的核心部分,包括Read(可读)权限:表示可以读取文件内的数据Write(可写)权限:表示可以改变或删除该文件Execute(可执行)权限:表示可以把该文件当成程序执行,背景知识,除文件权限之外,Linux系统上还有目录和很多其他类型的文件,其中包括特殊文件(设备)、Socket和符号连接等等(平时我们经常使用的Windows设备如软驱、光驱等在Linux中也是一种特殊的文件)拥有root口令的用户称为超级用户,超级用户有权访问整个系统,包括建立普通用户帐号、修改密码、安装与卸载软件等一切权限。超级用户的提示符为“#”,普通用户提示符为“$”几个用户在一个系统下共用一个帐号,其个人文件的安全就得不到保障。建立普通用户帐号后,系统能保证用户是唯一能够存取其个人文件的人。另一方面,即使没有与人共享一个系统,建立普通用户帐号也是必要的。因为如果总是以超级用户登录进行操作(超级用户的权限是整个系统),一旦出现误操作(如:破坏或移动、删除一个重要的系统文件)处理起来也很棘手,背景知识,Linux文件系统Linux的文件系统是文件和目录层次的集合。了解Linux文件系统的结构有助于更好地理解和使用Linux。在Linux文件系统根目录下,有如下子目录: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视窗,实验目的,使用LinuxShell了解用户Linux环境所使用的Shell更改用户系统的Shell初步了解bash熟悉Linux的文件和目录掌握Linux文件名通配符的使用了解Linux系统目录的特点了解Linux文件系统Linux文件系统根目录的子目录/bin目录中的文件/dev目录中的文件,实验目的,在开始本实验之前,请回顾教科书中的相关内容您需要做以下准备由指导老师分配的Linux登录用户ID(如user2)和口令一台运行RedHatLinux操作系统并带有GNOME的计算机,工具/准备工作,登录规则和口令规则登录Linux熟悉GNOMELinux系统中的ShellLinux系统中文件与目录Linux的文件系统注销GNOME,实验内容与步骤,Linux的常用命令有关目录的命令:pwd、cd有关文件的命令:ls、cat、chown、cp、date、dd、file、find其他的命令:kill、clear、mount、umount、reboot、passwd、su,可选练习,操作系统的各个主题粗线表示从设计和实现的角度考虑关系非常紧密,实验3进程控制与描述,通过在Windows任务管理器中对程序进程进行响应的管理操作和管理Linux进程的操作,熟悉操作系统进程管理的概念,观察操作系统运行的动态性能,获得包含多进程的应用程序编程经验实验3.1Windows任务管理器的进程管理实验3.2Windows2000编程实验3.3Windows2000进程的“一生”实验3.4管理Linux系统进程,实验估计时间:60分钟,难度系数:3,3.1Windows任务管理器的进程管理,Windows2000的任务管理器提供了用户计算机上正在运行的程序和进程的相关信息,也显示了最常用的度量进程性能的单位使用任务管理器可以打开监视计算机性能的关键指示器,快速查看正在运行的程序的状态,或者终止已停止响应的程序也可以使用多个参数评估正在运行的进程的活动,以及查看CPU和内存使用情况的图形和数据,背景知识,任务管理器中“应用程序”选项卡:显示正在运行程序的状态,用户能够结束、切换或者启动程序“进程”选项卡:显示正在运行的进程信息。例如,可以显示关于CPU和内存使用情况、页面错误、句柄计数以及许多其他参数的信息“性能”选项卡:显示计算机动态性能,包括CPU和内存使用情况的图表,正在运行的句柄、线程和进程的总数,物理、核心和认可的内存总数(KB)等,背景知识,通过在Windows任务管理器中对程序进程进行响应的管理操作熟悉操作系统进程管理的概念学习观察操作系统运行的动态性能,实验目的,在开始本实验之前,请回顾教科书的相关内容需要准备一台运行Windows2000Professional操作系统的计算机,工具/准备工作,使用任务管理器终止进程显示其他进程记数器更改正在运行的程序的优先级,实验内容与步骤,注意实验中所使用的是操作系统的哪个版本了解在当前机器中正在运行的应用程序在WindowsXP的任务管理器中,“进程”选项卡增加了一个“用户名”栏目,其中区分了SYSTEM、NETWORKSERVICE、LOCALSERVICE和用户的不同进程类别终止进程时要小心,有可能导致不希望发生的结果,包括数据丢失和系统不稳定等;终止进程将结束它直接或间接创建的所有子进程,实验提示,实验估计时间:120分钟,难度系数:4,3.2Windows2000编程,Windows2000可以识别的应用程序包括控制台应用程序、GUI应用程序和服务应用程序控制台应用程序可以创建GUI;GUI应用程序可以作为服务来运行;服务也可以向标准的输出流写入数据不同类型应用程序间的惟一重要区别是其启动方法,背景知识,Windows2000是以NT的技术构建的,它提供了创建控制台应用程序的能力,使用户可以利用标准的C+工具,如iostream库中的cout和cin对象,来创建小型应用程序。当系统运行时,Windows2000的服务通常要向系统用户提供所需功能服务应用程序类型需要ServiceMail()函数,由服务控制管理器(SCM)加以调用。SCM是操作系统的集成部分,负责响应系统启动以开始服务、指导用户控制或从另一个服务中来的请求。其本身负责使应用程序的行为像一个服务。通常,服务登录到特殊的LocalSystem账号下,此账号具有与开发人员创建的服务不同的权限,背景知识,当令C+编译器创建可执行程序时,编译器将源代码编译成OBJ文件,然后将其与标准库相链接。产生的EXE文件是装载器指令、机器指令和应用程序的数据的集合。装载器指令告诉系统从哪里装载机器代码。另一个装载器指令告诉系统从哪里开始执行进程的主线程。在进行某些设置后,进入开发者提供的main()、ServiceMain()或WinMain()函数的低级入口点。机器代码中包括有控制逻辑,它所做的事包括跳转到WindowsAPI函数,进行计算或向磁盘写入数据等Windows允许开发人员将大型应用程序分为较小的、互相有关系的服务模块,即动态链接库(DLL)代码块,在其中包含应用程序所使用的机器代码和应用程序的数据,背景知识,通过对Windows2000编程进一步熟悉操作系统的基本概念较好地理解Windows2000的结构,实验目的,在开始本实验之前,请回顾教科书的相关内容需要做以下准备一台运行Windows2000Professional操作系统的计算机计算机中需安装VisualC+6.0专业版或企业版,工具/准备工作,简单的控制台应用程序GUI应用程序进程对象,实验内容与步骤,在与本书配套提供的一张小光盘中,包含了在各个实验中用到的所有程序的源代码,这些源程序均通过调试运行,实验时可直接将文件输入也可以利用任何其他文本编辑器键入程序代码。如果这样(例如使用WORD来键入和编辑程序)则应该注意什么问题?,实验提示,实验估计时间:120分钟,难度系数:4,3.3Windows2000进程的“一生”,Windows所创建的每个进程都从调用CreateProcess()API函数开始,该函数的任务是在对象管理器子系统内初始化进程对象每一进程都以调用ExitProcess()或TerminateProcess()API函数终止。通常应用程序的框架负责调用ExitProcess()函数。对于C+运行库来说,这一调用发生在应用程序的main()函数返回之后,背景知识,创建进程CreateProcess()调用的核心参数是可执行文件运行时的文件名及其命令行,背景知识,正在运行的进程如果一个进程拥有至少一个执行线程,则为正在系统中运行的进程。通常,这种进程使用主线程来指示它的存在。当主线程结束时,调用ExitProcess()API函数,通知系统终止它所拥有的所有正在运行、准备运行或正在挂起的其他线程当进程正在运行时,可以通过一系列的API函数来查看它的许多特性,其中少数特性也允许加以修改,背景知识,终止进程所有进程都是以调用ExitProcess()或者TerminateProcess()函数结束的。但最好使用前者而不要使用后者,因为进程是在完成了它的所有的关闭“职责”之后以正常的终止方式来调用前者的。而外部进程通常调用后者即突然终止进程的进行,由于关闭时的途径不太正常,有可能引起错误的行为TerminateProcess()API函数只要打开带有PROCESS_TERMINATE访问权的进程对象,就可以终止进程,并向系统返回指定的代码。这是一种“野蛮”的终止进程的方式,但是有时却是需要的,背景知识,通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows2000进程的“一生”通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法,实验目的,在开始本实验之前,请回顾教科书的相关内容需要做以下准备:一台运行Windows2000Professional操作系统的计算机计算机中需安装VisualC+6.0专业版或企业版,工具/准备工作,创建进程正在运行的进程终止进程,实验内容与步骤,实验估计时间:90分钟,难度系数:4,3.4管理Linux系统进程,在本实验中,我们将使用Linux命令工作,来标识和控制系统进程。Linux操作系统使用进程管理作业,进程由系统或者用户初始化。用户在Linux环境下执行的作业大多数都会启动一个进程。进程可以启动或者派生一个子进程,这样创建了一个进程层次结构或者进程树,类似于具有父子关系的文件系统层次结构可以使用ps(进程状态)命令工作,监控系统进程,使用kill命令终止不想要的进程,背景知识,回顾系统进程的概念,加深对Linux/UNIX进程管理的理解回顾ps命令和选项列出当前shell中的进程列出运行在系统中的所有进程根据命令名搜索特定的进程确定一个进程,终止它使用kill命令终止进程根据用户查找和终止进程根据命令名终止进程,实验目的,在开始本实验之前,请回顾教科书的相关内容您需要做以下准备由指导老师分配的登录用户ID(如user2)和口令一台运行RedHatLinux操作系统的计算机,工具/准备工作,登录进入GNOME访问命令行回顾系统进程概念回顾ps命令和信息列出系统中运行的所有进程根据命令名搜索特定的进程确定一个要终止的进程使用kill命令终止一个进程按照用户查找和终止一个进程,实验内容与步骤,操作系统的各个主题粗线表示从设计和实现的角度考虑关系非常紧密,实验4并发与调度,通过对事件和互斥体对象以及对文件和文件映射对象的了解,来加深对操作系统进程同步、线程同步的理解;通过Linux并发程序的调试,学习操作系统并发程序的工作方式实验4.1Windows2000线程同步实验4.2Windows2000线程间的通讯实验4.3Linux并发程序设计,实验估计时间:120分钟,难度系数:4,4.1Windows2000线程同步,Windows2000提供的常用对象可分成三类:核心应用服务、线程同步和线程间通讯。其中,开发人员可以使用线程同步对象来协调线程和进程的工作,以使其共享信息并执行任务。此类对象包括互锁数据临界段事件互斥体信号,背景知识,多线程编程中关键的一步是保护所有的共享资源,工具主要有互锁函数、临界段和互斥体等;另一个实质性部分是协调线程使其完成应用程序的任务,为此,可利用内核中的事件对象和信号在进程内或进程间实现线程同步的最方便的方法是使用事件对象,这一组内核对象允许一个线程对其受信状态进行直接控制,背景知识,而互斥体则是另一个可命名且安全的内核对象,其主要目的是引导对共享资源的访问。拥有单一访问资源的线程创建互斥体,所有想要访问该资源的线程应该在实际执行操作之前获得互斥体,而在访问结束时立即释放互斥体,以允许下一个等待线程获得互斥体,然后接着进行下去与事件对象类似,互斥体容易创建、打开、使用并清除。利用CreateMutex()API可创建互斥体,创建时还可以指定一个初始的拥有权标志,通过使用这个标志,只有当线程完成了资源的所有的初始化工作时,才允许创建线程释放互斥体,背景知识,为了获得互斥体,首先,想要访问调用的线程可使用OpenMutex()API来获得指向对象的句柄;然后,线程将这个句柄提供给一个等待函数。当内核将互斥体对象发送给等待线程时,就表明该线程获得了互斥体的拥有权。当线程获得拥有权时,线程控制了对共享资源的访问必须设法尽快地放弃互斥体。放弃共享资源时需要在该对象上调用ReleaseMute()API。然后系统负责将互斥体拥有权传递给下一个等待着的线程(由到达时间决定顺序),背景知识,在本实验中,通过对事件和互斥体对象的了解,来加深对Windows2000线程同步的理解。回顾系统进程、线程的有关概念,加深对Windows2000线程的理解了解事件和互斥体对象通过分析实验程序,了解管理事件对象的API了解在进程中如何使用事件对象了解在进程中如何使用互斥体对象了解父进程创建子进程的程序设计方法,实验目的,在开始本实验之前,请回顾教科书的相关内容需要做以下准备一台运行Windows2000Professional操作系统的计算机计算机中需安装VisualC+6.0专业版或企业版,工具/准备工作,事件对象互斥体对象,实验内容与步骤,实验估计时间:120分钟,难度系数:5,4.2Windows2000线程间的通讯,Windows2000提供的线程间通讯类内核对象允许同一进程或跨进程的线程之间互相发送信息,包括文件、文件映射、邮件位和命名管道等,其中最常用的是文件和文件映射。这类对象允许一个线程很容易地向同一进程或其他进程中的另一线程发送信息,背景知识,文件对象文件对象是人们所熟悉的永久存储的传统元素。将一个文件看作是内核对象可使开发人员获得比标准C+文件操作更为强大的功能内核允许开发人员在系统设备或网络上创建代表永久存储数据块的文件对象。这些文件对象是对永久存储数据的低级访问者;用C+运行库或其他方法打开的所有文件最终都要变成对CreateFile()API的调用CreateFile()函数分配一个内核对象来代表一个永久的文件。当在磁盘上创建一个新文件或当打开一个已经存在的文件时,就调用这个API,背景知识,创建调用比创建事件、互斥体或信号量要复杂。首先必须在lpFilename中指定对象名,并且要指向文件系统中所访问的位置。接着必须用dwDesiredAccess参数提供所需的访问级别由创建函数要求的共享模式参数dwShareMode可以指定当另一进程企图同时访问数据时会发生什么。与所有其他第一级内核对象一样,可以利用lpSecurityAttributes参数指定所创建对象的安全性。接着,要通过dwCreationDisposition参数告诉创建函数,如果数据在指定的永久存储介质中存在或不存在时的行为,背景知识,可以使用dwFlagsAndAttributes参数来指定文件的属性(如只读),并确定对数据所执行的读写操作的行为。最后一个参数hTemplateFile可指定另一个文件对象作为模板,以便为新创建的文件复制属性或扩展属性Windows2000系统中包括许多文件对象的工具函数API通常可以使用ReadFile()和WriteFile()API在永久存储和应用程序间通过文件对象来移动数据。因为创建调用将对象的大多数复杂性封装起来了,这两个函数只是简单地利用指向要交换数据的文件对象的句柄(即指向内存内的数据缓存区的指针),然后计数移动数据的字节数。除此之外,这两个函数还执行重叠式的输入和输出,由于不会“堵塞”主线程,可用来传送大量的数据,背景知识,CreateFile()方法除了可访问标准的永久文件外,还可访问控制台输入和输出,以及从命名的管道来的数据GetFileType()API指明要处理的关键文件句柄的结构。除此之外,内核还提供了GetFileInformationByHandle()和GetFileSize()、GetFileTime()API用于获得关键数据的详细情况。其他用于在文件中改变数据的工具函数包括LockFile()、SetFilePointer()和SetEndOfFile()API除了这些基于句柄的API之外,内核还提供了大量的工具,用于按文件名对文件直接操作。文件对象用完之后,应该用CloseHandle()API加以清除,背景知识,文件映射对象比使用ReadFile()和WriteFile()API通过文件对象来读取和写入数据更为简单的是,Windows2000还提供了一种在文件中处理数据的方法,名为内存映射文件,也称为文件映射。文件映射对象是在虚拟内存中分配的永久或临时文件对象区域(如果可能的话,可大到整个文件),可将其看作是二进制的数据块。使用这类对象,可获得直接在内存中访问文件内容的能力文件映射对象提供了强大的扫描文件中数据的能力,而不必移动文件指针。对于多线程的读写操作来说,这一点特别有用,因为每个线程都可能想要把读取指针移动到不同的位置去为了防止这种情况,就需要使用某种线程同步机制保护文件,背景知识,在CreateFileMapping()API中,一个新的文件映射对象需要有一个永久的文件对象(由CreateFile()所创建)。该函数使用标准的安全性和命名参数,还有用于允许操作(如只读)的保护标志以及映射的最大容量。随后可根据来自OpenFileMapping()API的其他线程或进程使用该映射这与事件和互斥体的打开进程是非常类似的内存映射文件对象的另一个强大的应用是可请求系统创建一个运行映射的临时文件。该临时文件提供一个临时的区域,用于线程或进程互相发送大量数据,而不必创建或保护磁盘上的文件。利用向创建函数中发送INVALID_HANDLE_VALUE来代替真正的文件句柄,就可创建这一临时的内存映射文件;指令内核使用系统页式文件来建立支持映射的最大容量的临时数据区,背景知识,为了利用文件映射对象,进程必须将对文件的查看映射到它的内存空间中。也就是说,应该将文件映射对象想象为进程的第一步,在这一步中,当查看实际上允许访问的数据时,附加有共享数据的安全性和命名方式。为了获得指向内存区域的指针需要调用MapViewOfFile()API,此调用使用文件映射对象的句柄作为其主要参数。此外还有所需的访问等级(如读-写)和开始查看时文件内的偏移和要查看的容量。该函数返回一个指向进程内的内存的指针,此指针可有多种编程方面的应用(但不能超过访问权限)当结束文件映射查看时,必须用接受到的指针调用UnmapViewOfFlie()API,然后再根据映射对象调用CloseHandle()API,从而将其清除,背景知识,在本实验中,通过对文件和文件映射对象的了解,来加深对Windows2000线程同步的理解回顾系统进程、线程的有关概念,加深对Windows2000线程间通讯的理解了解文件和文件映射对象通过分析实验程序,了解线程如何通过文件对象发送数据了解在进程中如何使用文件对象通过分析实验程序,了解线程如何通过文件映射对象发送数据了解在进程中如何使用文件映射对象,实验目的,在开始本实验之前,请回顾教科书的相关内容您需要做以下准备:一台运行Windows2000Professional操作系统的计算机计算机中需安装VisualC+6.0专业版或企业版,工具/准备工作,文件对象文件映射对象,实验内容与步骤,实验估计时间:90分钟,难度系数:4,4.3Linux并发程序设计,管道是Linux中最常用的进程间通信IPC机制。利用管道时,一个进程的输出可成为另外一个进程的输入。当输入输出的数据量特别大时,这种IPC机制非常有用。可以想象,如果没有管道机制,而必须利用文件传递大量数据时,会造成许多空间和时间上的浪费在Linux中,通过将两个file结构指向同一个临时的索引节点,而两个索引节点又指向同一个物理页而实现管道,背景知识,通过在Linux进程之间进行的通信实例来学习并发程序设计的方法通过Linux进程通信的程序设计与实现,进一步熟悉操作系统的进程概念,理解Linux进程管理概念通过阅读和分析Linux实验程序,学习Linux程序设计、调试和运行的方法,实验目的,在开始本实验之前,请回顾教科书的相关内容需要准备一台运行Linux操作系统的计算机,工具/准备工作,并发程序的设计关键是使用创建进程的系统调用,使一个程序运行时可以生成几个同时运行的程序,如果程序中没有创建进程的动作则为顺序程序设计本实验中的并发程序例子完成两个程序child和father之间的数据传递工作,具体做法分为四步编制并发程序pipeline.c编制“管道写”程序father.c作为父进程的一部分工作编制“管道读”程序child.c作为子进程的一部分工作编译运行,实验内容与步骤,操作系统的各个主题粗线表示从设计和实现的角度考虑关系非常紧密,实验5存储管理,通过实验程序的分析与编制,了解操作系统内存的使用和管理;了解操作系统的内存结构和虚拟内存的管理等实验5.1提高Windows2000的内存性能实验5.2Windows2000内存结构实验5.3Windows2000虚拟内存实验5.4Linux用户程序的内存管理,实验估计时间:120分钟,难度系数:4,5.1提高Windows2000的内存性能,耗尽内存是Windows2000系统中最常见的问题之一。当系统耗尽内存时,所有进程对内存的总需求超出了系统的物理内存总量。Windows2000必须借助虚拟内存来维持系统和进程的运行虚拟内存机制是Windows2000操作系统的重要组成部分,但它的速度比物理内存慢得多,因此,应该尽量避免耗尽物理内存资源,以免导致性能下降,背景知识,解决内存不足问题的一个有效的方法就是添加更多的内存。但是,一旦提供了更多的内存,Windows2000很可以会立即“吞食”而事实上,添加更多的内存并非总是可行的,也可能只是推迟了实际问题的发生因此,应该相信,优化所拥有的内存是非常关键的,背景知识,分页过程当Windows2000求助于硬盘以获得虚拟内存时,这个过程被称为分页(paging)分页就是将信息从主内存移动到磁盘进行临时存储的过程。应用程序将物理内存和虚拟内存视为一个独立的实体,甚至不知道Windows2000使用了两种内存方案,而认为系统拥有比实际内存更多的内存。例如,系统的内存数量可能只有16MB,但每一个应用程序仍然认为有4GB内存可供使用使用分页方案是有代价的。进程所需要的代码或数据在硬盘和物理内存间交换,而硬盘与物理内存在性能上的差异极大。例如,硬盘的访问时间通常大约为4-10毫秒,而物理内存的访问时间为60us,甚至更快,背景知识,内存共享应用程序经常需要彼此通信和共享信息。为了提供这种能力,Windows2000必须允许访问某些内存空间而不危及它和其他应用程序的安全性和完整性从性能的角度来看,共享内存的能力大大减少了应用程序使用的内存数量。运行一个应用程序的多个副本时,每一个实例都可以使用相同的代码和数据,这意味着不必维护所加载应用程序代码的单独副本并使用相同的内存资源。无论正在运行多少个应用程序实例,充分支持应用程序代码所需求的内存数量都相对保持不变,背景知识,未分页合并内存与分页合并内存Windows2000决定了系统内存组件哪些可以以及哪些不可以交换到磁盘上。显然,不应该将某些代码(例如内核)交换出主内存。因此,Windows2000将系统使用的内存进一步划分为未分页合并内存和分页合并内存分页合并内存:是存储迟早需要的可分页代码或数据的内存部分。虽然可以将分页合并内存中的任何系统进程交换到磁盘上,但是它临时存储在主内存的这一部分,以防系统立刻需要它。在将系统进程交换到磁盘上之前,Windows2000会交换其他进程,背景知识,未分页合并内存:包含必须驻留在内存中的占用代码或数据。这种结构类似于早期的MS-DOS程序使用的结构,在MS-DOS中,相对较小的终止并驻留程序(TSR)在启动时加载到内存中。这些程序在系统重新启动或关闭之前一直驻留在内存的特定部分中。例如,防病毒程序将加载为TSR程序,以预防可能的病毒袭击未分页合并内存中包含的进程保留在主内存中,并且不能交换到磁盘上。物理内存的这个部分用于内核模式操作(例如,驱动程序)和必须保留在主内存中才能有效工作的其他进程。没有主内存的这个部分,内核组件就将是可分页的,系统本身就有变得不稳定的危险,背景知识,分配到未分页内存池的主内存数量取决于服务器拥有的物理内存数量以及进程对系统上的内存地空间的需求Windows2000将未分页合并内存限制为256MB(在WindowsNT4中的限制为128MB)。根据系统中的物理内存数量,复杂的算法在启动时动态确定Windows2000系统上的未分页合并内存的最大数量Windows2000内部的这一自我调节机制可以根据当前的内存配置自动调整大小。例如,如果增加或减少系统中的内存数量,那么Windows2000将自动调整未分页合并内存的大小,以反映这一更改,背景知识,提高分页性能只有一个物理硬盘驱动器的系统限制了优化分页性能的能力。驱动器必须处理系统和应用程序的请求以及对分页文件的访问。虽然物理驱动器可能有多个分区,但是将分页文件分布到多个分区的分页文件并不能提高硬盘驱动器的能力。只有当一个分区没有足够的空间来包含整个分页文件时,才将分页文件放在同一个硬盘的多个分区上,背景知识,拥有多个物理驱动器的服务器可以使用多个分页文件来提高分页性能。关键是将分页请求的负载分布到多个物理硬盘上。实际上,使用独立物理驱动器上的分页文件,系统可以同时处理多个分页请求。各个物理驱动器可以同时访问它自己的分页文件并写入信息,这将增加可以传输的信息量。多个分页文件的最佳配置是将各个分页文件放在拥有自己的控制器的独立驱动器上。不过,由于额外的费用并且系统上的可用中断很有限,因此对于大多数基于服务器的配置来说,这可能是不切实际的解决方案,背景知识,分页文件最重要的配置参数是大小。无论系统中有多少个分页文件,如果它们的大小不合适,那么系统就可能遇到性能问题如果初始值太小,那么系统可能必须扩大分页文件,以补偿额外的分页活动。当系统临时增加分页文件时,它必须在处理分页请求的同时创建新的空间。这时,系统将出现大量的页面错误,甚至可能出现系统失效。当系统必须在进程的工作区外部(在物理内存或分页文件中的其他位置)查找信息时,就会出现页面错误。当系统缺乏存储资源(物理内存及虚拟内存)来满足使用需求,从而遇到过多的分页时,就会出现系统失效。系统将花更多的时间来分页而不是执行应用程序。当系统失效时,Memory:Pages/see计数器将持续高于每秒100页。系统失效严重降低了系统的性能。此外,动态扩展分页文件将导致碎片化。分页文件将散布在整个磁盘上而不是在启动时的连续空间中创建,从而增加了系统的开销,并导致系统性能降低。因此,应该尽量避免系统增加分页文件的大小,背景知识,通过对Windows2000“任务管理器”、“计算机管理”、“我的电脑”属性、“系统信息”、“系统监视器”等程序的应用,学习提高Windows内存的性能,加深理解Windows操作系统的内存管理功能,理解操作系统存储管理、虚拟存储管理的知识,实验目的,在开始本实验之前,请回顾教科书的相关内容需要准备一台运行Windows2000Professional操作系统的计算机,工具/准备工作,查看包含多个实例的应用程序的内存需求未分页合并内存提高分页性能计算分页文件的大小使用任务管理器简单检查分页文件,实验内容与步骤,在NTFS驱动器上,总是至少保留25的空闲驱动器空间,以确保可以在连续的空间中创建分页文件Windows2000使用内存数量的1.5倍作为分页文件的最小容量,这个最小容量的两倍作为最大容量。它减少了系统因为错误配置的分页文件而崩溃的可能性。系统在崩溃之后能够将内存转储写入磁盘,所以系统分区必须有一个至少等于物理内存数量加上1的分页文件,实验提示,实验估计时间:120分钟,难度系数:4,5.2Windows2000内存结构,Windows2000是32位的操作系统,它使计算机CPU可以用32位地址对32位内存块进行操作。内存中的每一个字节都可以用一个32位的指针来寻址。这样,最大的存储空间就是232字节或4000兆字节(4GB)。这样,在Windows下运行的每一个应用程序都认为能独占可能的4GB大小的空间而另一方面,实际上没有几台机器的RAM能达到4GB,更不必说让每个进程都独享4GB内存了。Windows在幕后将虚拟内存(virtualmemor
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 放鬆心情的假日旅遊
- 造纸原料采购管理规定
- 农业基础设施建设与农村基础设施完善
- 2025重庆市南岸区天文街道公益性岗位招聘笔试备考试题及答案解析
- 如何利用网络营销提升品牌知名度
- 克服学习焦虑的心理咨询细则
- 船舶燃油消耗总结
- 2025云南省腾冲出入境边防检查站执勤队口岸协管(检)员招聘含答案
- 纺织行业数字化转型规划
- 环保纸张品牌推广规划
- 医院2025年院感防控及传染病考核试题及答案
- 老乡贷贷款管理办法
- 2025年职业技能内河船员证理论知识-理论知识参考题库含答案解析(5卷)
- 老师新学期个人工作计划表怎么写(5篇)
- 2025年高考全国二卷数学真题(原卷版)
- 安装大棚合同(标准版)
- 维稳工作汇报课件
- 统编版九年级上册道德与法治1.2 走向共同富裕 课件
- 汽车销售日常知识培训课件
- 患者身份识别管理标准WST840-2025学习解读课件
- 2025至2030中国乳清粉行业发展分析及前景趋势与投资报告
评论
0/150
提交评论