操作系统 课件全套 姚军财 第1-6章 操作系统概论 -Windows和LINUX_第1页
操作系统 课件全套 姚军财 第1-6章 操作系统概论 -Windows和LINUX_第2页
操作系统 课件全套 姚军财 第1-6章 操作系统概论 -Windows和LINUX_第3页
操作系统 课件全套 姚军财 第1-6章 操作系统概论 -Windows和LINUX_第4页
操作系统 课件全套 姚军财 第1-6章 操作系统概论 -Windows和LINUX_第5页
已阅读5页,还剩527页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章操作系统概论第2章处理器管理及并发进程第3章存储管理第4章设备管理第5章文件管理第6章Windows和LINUX介绍《操作系统》学时和教材教材:姚军财,徐金宝,王丹华,刘晓璐.操作系统原理与实践[M].北京:电子工业出版社,2026.参考教材:骆斌,葛季栋,费翔林.操作系统教程(第6版)[M].北京:高等教育出版社,2020.内容:第1章操作系统概论第2章处理器管理及并发进程第3章存储管理第4章设备管理第5章文件管理第6章Windows和LINUX介绍学时:48学时(建议)

理论讲授:36学时

上机实验:10学时操作系统3

现代计算机系统都是由硬件和软件组成的。操作系统是配置在计算机硬件上的第一层软件,是对硬件的扩充,用于控制硬件的工作,管理计算机系统的各种资源,并为系统中各种程序的运行提供服务。1.1操作系统的概念1.2操作系统的功能1.3操作系统的接口1.4操作系统的结构1.5流行操作系统简介41.1操作系统的概念一个完整的计算机系统由硬件资源和软件资源组成,其中硬件资源包括中央处理器、存储器和外部设备等机械装置和电子部件,它们共同构成了计算机系统运行软件和实现各种功能的物质基础;软件资源包括系统软件、支撑软件和应用软件。操作系统是所有软件中最基础和最核心的部分,是控制和管理计算机系统各种硬件和软件资源,有效地组织多道程序运行的系统软件,是计算机用户和计算机硬件之间的中介程序,它为用户执行程序提供更方便、更有效的环境。51.1.1操作系统的定义和目标操作系统作为控制应用程序执行的系统软件,已经存在很多年,其功能和内涵也在不断丰富和扩充,所以至今仍无法给出一个严格和统一的定义。但比较公认的定义是:管理系统资源、控制程序执行、改善人机界面、提供各种服务,合理组织计算机工作流程和为用户方便而有效地使用计算机提供良好运行环境的最基本的系统软件。任何一种计算机系统,均需配备操作系统,有的系统还同时配备了两种或两种以上的操作系统,因而操作系统是现代计算机系统不可分割的重要组成部分,它为人们营造各种以计算机为核心的应用环境奠定了坚实的基础。人们使用操作系统,最直截了当的目标是让用户更加有效和方便地使用计算机,同时也希望能充分发挥计算机硬件系统的最大效用,提高工作效率。6操作系统的主要目标可归结为以下5个方面:1.方便使用

操作系统通过对外提供各种接口,尽可能简化用户操作,提高计算机系统的易用性。例如,用户可以直接输入命令或点击屏幕上显示的菜单,操作程序的运行和计算机的使用;而计算机软件开发人员可以在程序中利用系统调用直接对磁盘的文件或外部设备上检测数据进行读写操作。2.扩充功能操作系统通过适当的管理机制和提供新的服务来扩大机器的功能。例如,操作系统可以采用虚拟机技术为用户提供不同的运行模拟环境和平台,采用虚拟存储管理技术为用户提供比实际内存大得多的运行存储空间,采用SPOOLING技术将独占设备模拟成共享设备等。3.管理资源操作系统应配置管理计算机系统中所有的软硬件资源的机制。如操作系统可以按照用户和程序的要求分配各种软硬件资源,然后在用户和程序不再使用时回收这些资源,以供下次重新分配。74.提高效率操作系统应合理组织计算机的工作流程,改善系统性能并提高系统效率。如采用多道程序技术实现多进程的并发执行,提高等系统资源的使用效率;提供多线程技术降低多进程并发执行时系统频繁切换所产生的管理开销。5.开放环境操作系统应遵循国际和行业标准来设计,构筑一个开放的环境,以便使用者共享应用软件和应用资源。国际和行业标准包括系统平台标准、通信标准和用户接口标准等,遵循这些标准可以解决各种应用的运行兼容性问题;支持应用程序在不同的平台上的可移植性。操作系统的主要目标可归结为以下5个方面:81.1.2操作系统的形成和发展1946年诞生第一台计算机至今,计算机经历了60多年的发展时期,操作系统伴随计算机硬件的发展及应用的日益广泛而发展。最初的计算机系统上没有操作系统,软件的概念也不明确。随着处理器集成技术、中断技术和通道技术等硬件技术的不断发展,促进了软件概念的形成,从而也推动了操作系统的形成和发展。而操作系统等软件的发展反过来也促进了硬件的发展。粗略地说,操作系统的发展是由人工操作阶段过渡到早期批处理阶段而具有其雏形,而后发展到多道程序系统时才逐步完善的。1.人工操作阶段2.批处理系统3.多道程序系统阶段4.操作系统的发展91.人工操作阶段早期的计算机运算速度慢,可用资源少,系统只支持机器语言或汇编语言,因而没有操作系统,由单个用户独占计算机。程序员通过卡片或纸带将程序和数据输入计算机,运行结果显示在屏幕上,或者穿孔于卡片或纸带上。人工操作方式的特点如下:(1)用户独占系统。用户使用计算机时独占全部机器资源,计算机资源的利用率和计算机运行效率极其低下。(2)人工介入多。程序员全程介入计算过程的输入、运算和输出等阶段,自动化程度较低,出错的机会较高。计算机的使用者通常是计算机专业技术人员,非专业人员难以操作。(3)计算时间长。整个计算过程中,数据的输入、程序的执行和结果的输出均是联机进行的,每个环节还必须进行校对,因而计算时间很长,浪费了大量的人力。第1章操作系统概论卡片卡片纸带纸带图1-1人工操作方式的计算过程102.批处理系统早期批处理系统借助于作业控制语言(JobControlLanguage,JCL)对人工操作方式进行了变革。用户可以通过脱机方式控制和实用计算机,通过作业控制卡来描述对作业的加工和控制步骤,并把作业控制卡连同程序、数据一起提交给操作员,操作员收集到一批作业后一起把它们放到卡片机上输入计算机。计算机上则运行一个驻留内存的执行程序,以对作业进行自动控制和成批处理。显然,这种系统能实现作业到作业的自动转换,缩短作业的准备和创建时间,减少人工操作和人工干预,提高了计算机的使用效率。早期批处理系统中,作业的输入和输出均是联机实现的,I/O设备和CPU是串行工作的,CPU利用率较低。为了解决这个问题,在批处理系统中引进了脱机I/O技术,方法是除主机外另设一台辅机,辅机的主要功能是与I/O设备打交道,需要进行输入操作时,输入设备上的作业通过辅机记录到磁带上(脱机输入);主机可以磁带上的作业读入内存执行,作业计算完成后,主机将结果记录到磁带上;接下来,辅机可以读出磁带上的结果,控制打印机输出结果。可以看出,主机和辅机是可以并行工作的,程序的处理和数据的输入输出速度明显提高,这种技术就是假脱机I/O技术,假脱机技术显然使批处理系统效率大大提高。

11为了进一步提高批处理系统的效率,计算机主机中逐渐加载一些管理程序,这些管理程序的功能包括自动控制和处理作业流,设备驱动和输入输出控制,程序加载和装配,以及简单的文件管理等等。这些管理程序丰富了输入输出设备类型,并对进入系统的程序和数据进行了有效的管理,从而缩短了作业的准备和创建时间,充分发挥了批处理系统的性能。这些管理程序就形成了操作系统的雏形。输入介质主计算机输出介质输出计算机输入计算机作业流运算结果批处理系统的计算过程图1-2批处理系统的计算过程123.多道程序系统阶段20世纪60年代初,中断和通道等两项技术取得了突破,它们的结合为实现CPU和I/O设备的并行工作提供了硬件基础。多道程序系统是指在主存中存放多道用户的作业,这些作业可以共享系统资源并交替计算。从宏观上说,这些作业都处在运行状态而尚未完成,因而这些作业可以并发执行;而从微观来说,这些作业又是串行执行的,因为任一时刻只有一个作业在使用CPU运算。严格地说,早期的多道程序系统仍旧属于批处理系统。引入多道程序设计技术的根本目的是提高CPU的利用率,充分发挥CPU和I/O设备的并行性,现代计算机系统一般都采用了多道程序设计技术。程序之间、设备之间、设备和CPU之间均可以并行工作。13图1-3多道程序设计系统多道程序系统具备多道、宏观并行和微观串行等特点,另外其还有一些显著特征:(1)无序性:多个作业完成的先后顺序与它们进入主存的顺序之间并无严格的对应关系。如先进入主存的程序不一定能保证首先完成,甚至可能最后完成,而后进入主存的程序也有可能先完成。(2)调度性:一个作业从提交给系统开始直至完成,可能需要经过多次作业调度和进程调度。具体的调度算法将在后续的章节中介绍。144.操作系统的发展通过多道程序系统,可以使批处理更加有效,提高了系统资源利用率和吞吐量。但是,对许多作业来说,需要提供一种新模式以便用户可以直接与计算机交互,分时系统的出现解决了人机交互的问题。分时系统与多道批处理系统之间有着截然不同的性能差别,它既实现了人机交互的功能,还实现了多个用户同时共享使用一台主机的功能,而且非常适合执行数据查询功能。分时系统的实现思想如下:每个用户在各自终端上以问答方式控制程序的运行,系统把CPU的时间划分成时间片段(也称时间片),轮流分配给各个联机终端用户,每个用户只能在极短的时间内执行,如果时间片用完,则挂起当前任务等待下次分配的时间片。人机交互的任务通常是发出简短命令的小任务,所用的时间片不会太多,因而每个终端用户的每次请求基本上都能获得系统较为快速的响应,感觉上是独占了这台计算机。可以看出,分时系统是多道程序系统的一个变种,CPU被若干个交互式的用户通过联机终端多路复用了。分时系统具有同时性、独立性、及时性和交互性等特征,得到了极为广泛的应用。15虽然多道程序系统和分时操作系统获得了较高的资源利用率和快速的响应时间,但它们难以满足实时控制和实时信息处理领域的需要。于是出现了实时操作系统,目前有三种典型的实时系统,过程控制系统、信息查询系统和事务处理系统。过程控制系统主要应用在现场实时数据采集、计算处理,进而控制相关执行机构的场合,如卫星测控系统、火炮自动控制系统等。信息查询系统应用在必须做出极快回答和响应的实时信息处理场合,如情报检索系统。事务处理系统不仅要对终端用户及时做出响应,而且要对系统中的文件和数据进行频繁的更新,如银行业务处理系统,电子商务系统等等。图1-4分时操作系统实时系统是指能及时响应外部事件的请求,并在规定的较短时间内完成对改事件的处理,并控制所有实时任务协调一致地运行的操作系统。实时系统具有多路性、独立性、及时性、交互性和可靠性等特征,与分时系统相比,及时性的特点更为明显。161.1.3操作系统的主要特性前面介绍的几种操作系统都各自具有自己的特征,如批处理系统可以实现多个作业的成批处理,简化用户使用难度,分时系统具有允许人机交互处理的特性,实时系统具有实时特性。但现代操作系统应该具备并发性、共享性、异步性和虚拟性等四种最基本特性,其中并性是最重要的特性。

1.并发性并发性是指两个或两个以上的事件在同一时间段内发生。操作系统是一个并发系统,操作系统的并发性体现在计算机系统中同时存在若干个运行着的程序,这些程序交替执行。并发性有效改善了包括CPU和I/O设备等系统资源的利用率,但也会产生一系列的系统管理问题,比如程序和程序之间如何切换,程序切换时如何保证程序和数据互不干扰,这都要求系统提供控制和管理程序的并发执行的机制和策略。2.共享性共享性是指计算机系统的资源可被多个并发执行的程序共同使用。通常计算机系统的资源都会按照进入系统的程序的个性要求进行分配,为了提高资源利用率,这种分配策略最好是动态的,也就是程序需要使用某类资源时,它可以向系统提出申请,系统根据资源使用情况予以分配;而当程序使用完毕后,应及时释放和归还资源,以便系统将资源分配给其他程序。173.异步性异步性是指多道程序环境中,程序的执行顺序和速度始终是动态变化和随机的。由于程序运行完全依赖于系统分配的资源,得到所有资源,程序就能正常运行。而在多道程序环境中,系统有限的资源必须分配给若干个程序,每个程序在获得运行所必须的资源前,它只能等待。因而,系统资源分配的随机性造成了程序执行的随机性。4.虚拟性虚拟性是指通过一定方法将一个物理实体转换为若干个逻辑上的对应物,或者将物理上的多个实体转换为逻辑上的一个对应物。物理实体是实际存在的,而逻辑对应物是虚拟的。采用虚拟技术的目的是为用户提供易于使用、方便高效的操作环境。例如现代操作系统采用SPOOLING技术把打印机这样的独占设备转变成逻辑上的多台虚拟设备,采用多道程序设计技术将一个CPU虚拟成可供多个程序共同使用的多个逻辑CPU等。181.2操作系统的功能操作系统的主要任务是为多道程序的运行提供良好的运行环境,以保证程序能有条不紊地高效运行,并能最大程度地提高系统中各种资源的利用率和方便用户的使用。为了实现上述目标,操作系统应具有以下几个方面的功能:处理器管理、存储管理、设备管理和文件管理。另外,为了方便用户使用操作系统,还须向用户提供良好的用户界面和用户接口。191.2.1处理器管理处理器是整个计算机系统的核心硬件资源,它的性能和使用情况对整个计算机系统的性能有着关键的影响。处理器也是计算机系统中最重要的资源,其运算速度往往要比其他硬件设备的工作速度快得多,其他设备的运行也常常需要处理器的介入。用户程序进入内存后,只有获得处理器,才能真正得以运行。因此,对处理器的有效管理,提高处理器的利用率是操作系统最重要的管理任务。(1)统计系统中每个作业程序的状态,以便将处理器分配给相关候选程序;(2)指定处理器调度策略,也是挑选待分配候选程序的必须遵循的原则;(3)实施处理器的分配,以便让获得处理器的程序真正投入运行。

为了顺利完成工作任务,操作系统通过分别对作业、进程和线程进行相应的低级、中级和高级调度,实现处理机的管理和调度。处理器管理的主要工作内容如下:201.2.2存储管理存储器是计算机系统中除了处理器以外的另一种重要资源,主存储器(也称内存)是处理器和外部设备共享和快速访问程序和数据的部件,程序只有加载到主存储器后,才有可能获得执行。存储管理的主要任务是为多道程序提供良好的环境,方便用户使用存储器,并提高存储器的利用率以及从逻辑上扩充内存。现代操作系统中,存储器管理应具有内存分配、内存保护、地址映射、主存共享和内存扩充等功能。1.内存分配和回收内存分配和回收的主要任务是为每道程序分配内存空间,回收程序运行结束后释放的空间,提高存储器的利用率。内存分配的策略有静态和动态两种:静态分配方式中,每个作业的内存空间是在作业装入时确定的,在整个运行过程中不再接受新的请求,也不允许作业在内存中重新定位;动态分配方式中,每个作业所要求的基本内存空间也是在装入时确定的,但允许作业在运行过程中继续申请新的空间,也允许作业在内存中重新定位。系统对于用户不再需要的内存,通过用户的释放请求去完成系统的回收功能。2.内存保护

内存保护的主要任务是确保每道程序都只在自己的内存空间中运行,彼此互不干扰,既不允许用户程序访问系统程序和数据,也不允许用户程序转移到非共享的其他程序中运行。操作系统通过设置界限寄存器和越界检查机制保证执行程序的上界和下界。213.地址映射在多道程序环境下,每道程序不可能都从“0”地址开始装入内存,这就导致地址空间内的逻辑地址和内存空间中的物理地址不一致。地址映射的任务是把用逻辑地址编程的应用程序装入主存,并将逻辑地址转换成主存物理地址,此功能应在硬件的支持下完成。4.内存共享内存共享让主存中的多个应用程序实现存储共享,提高存储资源的利用率。多个应用程序共同访问同一段代码或者数据,可以通过内存共享技术将相关内存地址空间加载到应用程序的地址空间,而不必重复加载。

5.内存扩充内存扩充的任务不是扩大物理内存的容量,而是借助虚拟存储技术从逻辑上去扩充内存容量,使用户感觉到得内存容量比实际物理内存大得多。虚拟存储技术的基本思想来自程序运行的局部性特点,在辅助存储器的配合下,采取部分装入,用时调入,不用时置换到辅助存储器的机制。

221.2.3设备管理

设备管理用于管理计算机系统中的所有的外部设备,而设备管理的主要任务是:完成用户进程提出的I/O请求;为用户进程分配其所需的I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;方便用户使用I/O设备。设备管理的主要功能有缓冲区管理、设备分配、设备驱动和虚拟设备等功能。1.缓冲区管理

设置缓冲区的目的是匹配CPU的高速特性和I/O设备的相对低速特性,最常见的缓冲区机制有单缓冲、双缓冲和公用缓冲池等。2.设备分配

设备分配通常采用独享、共享和虚拟分配等三种技术,以满足不同用户程序对外部设备不同的输入输出要求。3.设备驱动

设备驱动程序也称为设备处理程序,其基本任务是实现CPU和设备控制器之间的通信,由CPU向设备控制器发出I/O指令,要求其完成指定的I/O操作,并能接收由设备控制器发来的中断请求,给予及时的响应和相应的处理。4.设备独立性和虚拟设备

设备独立性是指应用程序独立于物理设备,即用户在编制程序时所使用的设备与实际使用的设备无关,因此要求用户程序对I/O设备的请求采用逻辑设备名,而在程序实际执行时使用物理设备名。虚拟设备是指通过SPOOLING技术将独占设备改造成多个程序共享的设备,提高设备的利用率。231.2.4文件管理计算机系统中的信息资源(程序和数据)以文件的形式存放在外存储器上,需要时装入内存。文件管理的任务是有效地支持文件的存储、检索和修改等操作,解决文件的共享、保密和保护问题,以便用户方便、安全地访问文件。文件管理涉及到文件组织方法、文件的存取和使用、文件存储空间的管理、文件的目录管理和文件的共享和安全等多个方面的内容。1.文件的组织方法文件的组织方法包括文件的逻辑结构和组织、文件的物理结构和组织两个方面。文件的逻辑结构和组织是指从用户角度出发的信息组织形式,而文件的物理结构和组织是指逻辑文件在物理存储空间中的存放方法和组织关系。2.文件的存取和使用方法用户通过两类接口建立与文件系统的联系,并获得文件系统的服务:一是通过操作命令,二是通过系统调用。243.文件存储空间管理

文件系统为每个文件分配一定的外存空间并尽可能提高外存空间的利用率和文件访问的效率。4.文件的目录管理

文件系统为每个文件建立目录项,并有效组织目录项从而实现按名存取。5.文件的共享和安全性

文件共享是指不同的进程共同使用同一个文件时,只需建立一个文件,可节省辅存空间。安全性包括文件的读写权限管理及存取控制机制,用来防止文件的非法访问和篡改。25

1.3操作系统的接口操作系统除了上述的管理功能外,还应为程序和用户提供各种服务,并为程序的执行提供良好运行环境。为了方便用户能方便灵活地使用计算机和操作系统的功能,操作系统向用户提供了一组友好的使用操作系统的手段,这些手段也称用户接口,它包括操作接口和程序接口两大类。用户通过这些接口能方便地操作和调用系统所提供的服务,有效地组织作业及其工作和处理流程,使整个系统能高效地运行。261.3.1操作接口和操作命令操作接口又称为作业级接口,是操作系统为操作控制计算机并提供服务的手段的集合,通常可借助操作控制命令、图形操作界面和作业控制语言等方式实现。1.操作命令这是为联机用户提供的调用控制系统功能,请求系统为其服务的手段,由一组命令和命令解释程序组成,所以也成为命令接口。用户可通过终端设备输入一条或一批操作命令,向系统提出各种请求,操作系统将启用命令解释程序对其解释并予以执行,完成要求的功能后控制转回终端,用户又可以继续输入命令提出新的请求。2.图形操作界面输入操作命令的方式非常直接,便于用户灵活地进行人机对话,但对用户的要求较高,用户必须牢记操作命令的内容和格式。图形化的操作界面出现减轻了用户的负担,用户只须轻点鼠标便可达到输入操作命令同样的效果。图形化操作界面使用窗口、图标、菜单和鼠标等元素,采用事件驱动控制方式,轻松自如地完成各项任务。3.作业控制语言作业控制语言(JobControlLanguage,JCL)是早期操作系统专门为批处理作业的用户提供的,所以也成为批处理用户接口。用户提出的请求由作业控制语句或作业控制操作命令组成,用户向系统提交作业时同时提交JCL说明书,系统运行时,一边解释作业控制命令,一边执行该命令,直到完成所有任务。

271.3.2程序接口与系统调用程序接口又称为应用程序接口(ApplicationProgrammingInterface,API),程序中使用这个接口可以调用操作系统的服务功能。许多操作系统的程序接口由一组系统调用和标准库函数组成。系统调用是能完成特定功能的子程序,是操作系统提供给编程人员的唯一接口,编程人员利用系统调用动态请求和释放系统软硬件资源,调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。系统调用像一个黑盒子那样,对用户屏蔽了操作系统的具体动作,而只提供了有关的功能。它与一般程序、库函数的区别是,想通过系统调用运行在核心态,调用它们需要一个类似硬件中断处理的中断处理机制来提供系统服务。27图1-5系统调用的处理过程早期的系统调用都是用汇编语言提供的,因而只有在用汇编语言书写的程序中,才能直接使用系统调用;而在高级程序设计语言以及C语言中,往往提供了与各系统调用一一对应的库函数,编程人员便可通过调用对应的库函数来使用系统调用。281.4操作系统的结构操作系统是一个大型的程序系统,由不同的功能模块组成,每个模块包含数据、完成一定功能的程序以及该模块对外提供的接口。由于模块间的通信只能通过输出接口进行,因此模块间的通信的形式和风格与接口的复杂性相关。一般来说,操作系统的结构可以分为整体式结构、层次式结构、客户/服务器结构和虚拟机结构等几种形式。29南京工程学院计算机工程学院1.4.1整体式结构整体式结构又称为模块组合法结构,是早期操作系统通常采用的结构设计方式。其设计思想是把模块作为操作系统的基本单位,按照功能需要而不是根据程序和数据的特性把整个系统分解为若干模块,每个模块具有一定独立功能,若干个关联模块协作完成某个功能。图1-6整体式结构示意图301.4.2层次式结构层次结构的操作系统是模块化的,从资源管理观点出发,将操作系统划分成若干层次,每一层都是在它下一层模块的基础上实现。在某一层次只能调用低层次上的代码,使模块间的调用变得有序,有利于系统的可靠性和可维护性。图1-7层次式结构示意图311.4.3客户/服务器结构将操作系统分成两大部分:一是运行在用户态并以客户/服务器方式活动的进程;二是运行在核心态的内核。

除内核部分外,操作系统的其他部分被分成若干相对独立的进程,每一个进程实现一类服务,称服务器进程。客户和服务器进程之间采用消息传送进行通信,而内核被映射到所有进程的虚拟地址空间中,它可以控制所有进程。客户进程发出消息,内核将消息传送给服务器进程,服务器进程执行客户提出的服务请求,在满足客户的要求后再通过内核发送消息把结构返回给用户。客户/服务器结构的设计思想是:图1-8客户/服务器结构示意图321.4.4虚拟机结构虚拟机结构的核心部分是虚拟机监控程序,它运行在裸机上,并形成多道程序环境,它为上一层提供多台虚拟机。与其他操作系统结构不同,在这种结构中,这些虚拟机并不是具有文件及其他优良特性的扩展机器,而仅仅是裸机硬件的复制品,包括内核态/用户态、I/O机构、中断以及实际机器所应具有的全部内容。由于每台虚拟机在功能上等同一台实际的裸机,从效果上就呈现出多台裸机。不同的虚拟机往往运行不同的操作系统,因而这些虚拟机可以同时提供若干种不同的操作系统环境。如VMware已经实现了商业化的虚拟机,可以同时虚拟Windows、LINUX/UNIX和Solaris等操作系统,这些操作系统可同时运行并且互不干扰。图1-9虚拟机结构示意图331.5流行操作系统简介目前,不同类型的计算机运行着不同类型的操作系统。例如:大型计算机大多使用UNIX操作系统,通用微型计算机大多使用Windows或LINUX操作系统,移动终端计算机大多使用Android操作系统,苹果公司的微型计算机和移动终端使用苹果iOS操作系统。

下面对这几种操作系统做简单介绍。本书第六章将对Windows操作系统和LINUX操作系统进行较为详细的介绍。341.5.1Windows操作系统Windows操作系统是由美国微软(Microsoft)公司开发的窗口化操作系统,采用了GUI图形化操作模式,与在它以前使用的指令操作系统(如DOS)显得更为友好和人性化。Windows操作系统是目前世界上使用最广泛的操作系统。最新的版本是Windows8、Windows10。Microsoft公司成立于1975年,目前是世界上最大的软件公司。该公司从1983年开始研制Windows系统,30年来Windows操作系统取得了巨大成功,市场占有率始终名列第一。各版本的Windows的特点如下:1985年问世的Windows1.0是一个具有图形用户界面的系统软件;1987年推出的Windows2.0采用了相互叠盖的多窗口界面形式;1990年推出Windows3.0确定了窗口界面的基本形式;1992年发布的Windows3.1,为程序开发提供了功能强大的窗口控制能力,使Windows和在其环境下运行的应用程序具有了风格统一、操纵灵活、使用简便的用户界面,同时Windows3.1在内存管理上也取得了突破性进展,开始支持虚拟存储管理功能。351995年开始发布Windows9X系列,包括Windows95,Windows98,Windows98se以及WindowsMe。Windows9X是一种16位/32位混合源代码的准32位操作系统,它把浏览器技术整合到了操作系统,从而更好地满足了用户访问Internet资源的需要。2000年开始发布的Windows2000/XP/Vista是32位/64位操作系统,支持采用工具条访问和控制任务,整合了防火墙强化用户安全性。2007年发布Windows7既有独立的32位版本也有64位版本,其特点是针对笔记本电脑的特有设计;基于应用服务的设计;用户的个性化;视听娱乐的优化;用户易用性的新引擎等。2012年发布Windows8采用触控优先的Metro界面,既支持平板电脑(含智能手机),也支持桌面台式电脑,给使用者带来更好的使用体验,同时支持更多的外部设备,且具有更好的安全性。2015年7月29日零点起,微软正式开始向推送Windows10正式版安装包。win10系统对硬件有配置要求。

1.5.1Windows操作系统Timeerror36

1.5.2UNIX操作系统UNIX操作系统

其是美国AT&T公司的贝尔实验室的肯•汤普逊(KennethThompson)、丹尼斯•里奇(DennisRitchie)于1969年开发成功的操作系统,其首先在PDP-11上运行,该系统具有多用户、多任务的特点,支持多种处理器架构。UNIX的系统结构可分为两部分:

¤操作系统内核(由文件子系统和进程控制子系统构成,最贴近硬件),

¤

系统的外壳(贴近用户)。外壳由Shell解释程序、支持程序设计的各种语言、编译程序和解释程序、实用程序和系统调用接口等组成。系统大部分是由C语言编写的,这使得系统易读、易修改、易移植。UNIX提供了丰富的,精心挑选的系统调用,整个系统的实现十分紧凑,简洁;UNIX提供了功能强大的可编程的Shell语言(外壳语言)作为用户界面,具有简洁、高效的特点。①

系统采用树状目录结构,具有良好的安全性,保密性和可维护性。②系统采用进程对换的内存管理机制和请求调页的存储方式,实现了虚拟内存管理,大大提高了内存的使用效率。③

UNIX系统提供多种通信机制,如:管道通信,软中断通信,消息通信,共享存储器通信,信号灯通信。37

UNIX操作系统目前主要运行在大型计算机或各种专用工作站上,其版本有AIX(IBM公司开发)、Solaris(SUN公司开发)、HP-UX(HP公司开发)、IRIX(SGI公司开发)、Xenix(微软公司开发)和A/UX(苹果公司开发)等。常见的UNIX操作系统桌面环境381.5.3LINUX操作系统LINUX操作系统是UNIX操作系统的一种克隆系统,也是目前惟一的免费操作系统,它诞生于1991年,以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX类操作系统,并且使用人数还在迅猛增长。LINUX操作系统是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。LINUX继承了UNIX以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议,支持32位和64位硬件。此系统是由全世界各地成千上万的程序员设计和实现的,其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的UNIX兼容产品。LINUX以它的高效性和灵活性著称,LINUX模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的UNIX特性,具有多任务、多用户的能力。LINUX是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。LINUX操作系统软件包不仅包括完整的LINUX操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。39它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows一样,允许我们使用窗口、图标和菜单对系统进行操作。LINUX操作系统运行平台包括个人电脑、专用工作站、移动终端、嵌入式系统等。401.5.4iOS操作系统苹果iOS是由苹果公司开发的手持设备操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,iOS最初是专门为iPhone设计的,后来陆续套用到iPodtouch、iPad以及AppleTV等苹果产品上。iOS与苹果的MacOSX操作系统一样,它也是以Darwin为基础的,因此同样属于类UNIX的商业操作系统。原本这个系统名为iPhoneOS,直到2010年6月7日WWDC大会上宣布改名为iOS。截止至2011年11月,根据Canalys的数据显示,iOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%。iOS的系统结构分为以下四个层次:

核心操作系统(CoreOSlayer),核心服务层(CoreServiceslayer),

媒体层(Medialayer),

Cocoa触摸框架层(CocoaTouchlayer)。Objective-C是iOS的开发语言,Objective-C是C语言的升级版。对初学者来说,Objective-C有些令人费解,但实际上它们是非常优雅的。411.SiriSiri能够利用语音来完成发送信息、安排会议、查看最新比分等更多事务,只要说出你想做的事,Siri就能帮你办到。2.Facetime使用Facetime,用户可以通过WLAN网络或者蜂窝移动网络与联系人进行视频通话。3.iMessage

iMessage是一项比手机短信更出色的信息服务,用户可以通过网络连接与任何iOS设备或Mac用户免费收发信息,而且信息数量不受限制。4.Safari

Safari是一款极受欢迎的移动网络浏览器。在iOS6中,它变得比以往更强大。你不仅可以使用阅读器排除网页上的干扰,还可以保存阅读列表,以便进行离线浏览。iOS不断丰富的功能和内置APP,让iPhone、iPad和iPodtouch比以往更强大、更具创新精神,使用起来显得乐趣无穷。iOS的主要功能模块和突出特点如下:1.5.4iOS操作系统425.庞大的APP集合

iOS所拥有的应用程序是所有移动操作系统里面最多的。这是因为Apple为第三方开发者提供了丰富的工具和API,从而让他们设计的APP能充分利用每部iOS设备蕴含的先进技术。所有APP按照用途进行分类,用户使用AppleID,即可轻松访问、搜索和购买这些APP。6.iCloud

iCloud是苹果公司为用户提供的云空间,可以存放照片、APP、电子邮件、通讯录、日历和文档等内容,并以无线方式将它们推送到移动设备上。如果用户用iPad拍摄照片或编辑日历事件,iCloud能确保这些内容出现在用户的Mac、iPhone和iPodtouch设备上。7.安全可靠的设计苹果公司专门设计了低层级的硬件和固件功能,用以防止恶意软件和病毒;同时还设计有高层级的OS功能,有助于在访问个人信息和企业数据时确保安全性。为了保护用户隐私,从日历、通讯录、提醒事项和照片获取位置信息的APP必须。先获得用户的许可。用户可以设置密码锁,以防止有人未经授权访问私人设备,并进行相关配置,允许设备在多次尝试输入密码失败后删除所有数据。该密码还会为用户存储的邮件自动加密和提供保护,并能允许第三方APP为其存储的数据加密。iOS支持加密网络通信,它可供APP用于保护传输过程中的敏感信息。如果用户的设备丢失或失窃,可以利用“查找我的iPhone”功能在地图上定位设备,并远程擦除所有数据。一旦用户的iPhone失而复得,还能恢复上一次备份过的全部数据。1.5.4iOS操作系统431.5.4iOS操作系统苹果OSXMaverick的全新桌面操作系统441.5.5Android操作系统Android操作系统是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由AndyRubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。Android中,活动(Activity)是所有程序的根本,所有程序的流程都运行在活动之中,活动可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一。在Android的程序当中,活动一般代表手机屏幕的一个画面。如果把手机比作一个浏览器,那么活动就相当于一个网页,在活动当中可以添加一些按钮、复选框等控件,可以看出活动概念和网页的概念有些类似。45一般一个Android应用是由多个活动组成的,这多个活动之间可以进行相互跳转。例如,按下一个按钮后,可能会跳转到其他的活动。和网页跳转不同的是,活动之间的跳转有可能存在返回值,例如,从活动A跳转到活动B,那么当活动B运行结束后,有可能会给活动A发送一个返回值。这种返回机制为应用开发者提供了极大方便。另外,当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。可以选择性的移除一些没有必要保留的屏幕,因为Android会把每个应用的开始到当前的每个屏幕保存在堆栈中。Android平台的最大优势首先就是其开放性,开放的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。46本章小结本章主要介绍操作系统的基本概念。操作系统作为计算机系统中最基本的一种系统软件,控制和管理计算机系统中各种硬件和软件资源。操作系统的主要目标是方便使用、扩充功能、管理资源、提高效率和开放环境。操作系统的历史很长,从操作系统开始替代操作人员的那天开始,到现代多道程序系统,主要包括早期批处理系统、多道程序系统以及现代操作系统。现代操作系统具有并发性、共享性、异步性和虚拟性等四种基本特性,其中并发性是最重要的特性。操作系统的主要功能有处理器管理、存储管理、设备管理和文件管理等。为了方便用户更方便使用计算机,操作系统提供了操作接口和程序接口等两大类接口,操作接口包括操作命令、图形操作界面和作业控制语言;程序接口包括系统调用和标准库函数,供用户编程时使用。操作系统根据功能模块的不同组成方式,其结构可分为整体式、层次式、客户/服务器和虚拟机等形式。本章最后简单介绍了Windows、UNIX、LINUX、iOS和Android等流行的操作系统。47习题1.什么是操作系统?配置操作系统的目的是什么?2.操作系统经历了那几个发展阶段?3.什么是多道程序设计?多道程序设计的主要优点是什么?4.操作系统的基本功能有哪些?5.操作系统通常提供哪些服务?6.描述操作系统的体系结构和主要的管理模块。7.解释下列名词:共享性、并发性、异步性、虚拟性。8.为什么可以说用户使用的都是虚拟计算机?48设内存中有三道程序P1、P2、P3,按P1、P2、P3的优先次序执行,它们的计算和I/O操作的时间如下表所示(单位:ms毫秒)。假设三道程序使用相同设备进行I/O操作,即程序以串行方式使用设备,试画出单道运行和多道运行的时间关系图。两种情况下,完成这三道程序各需要多少时间?CPU的利用率又分别为多少?第2章处理器管理及并发进程计算机工程学院、人工智能学院2026.08第2章处理器管理及并发进程2.1多道程序设计

2.6并发进程的概念2.2进程

2.7进程的互斥和同步2.3进程的控制2.8管程2.4进程调度

2.9进程通信2.5线程及其实现2.10死锁学习目标:2.1.1程序的顺序执行

对于一个要解决的问题,往往需要按一定的顺序执行,典型的是输入、计算,然后进行打印输出。程序的运行方式参见图2-1,图中Ii(i=1,2,3)代表第i个程序的输入,Pi代表第i个程序的计算处理,Oi代表第i个程序的打印输出。图2-1程序的顺序执行2.1多道程序设计问题?第i-1个程序第i个程序第i+1个程序依次而行缺点?上图是程序顺序执行的流程。程序每次运行先从输入机读入数据,然后进行计算处理,最后将产生的结果打印输出,然后再从输入机输入下一批数据,进行计算,再输出结果,如此不断循环进行。从程序的顺序运行的过程中,明显发现:

当输入机在工作时,处理器和打印机是空闲的,

当处理器进行运算时,输入机和打印机是空闲的,

★当程序在打印结果时,处理器和输入机则没事可做。

显然,这种程序运行方式下,计算机的系统资源利用效率很低。I1P1O1I2P2O2I3P3O3图2-1程序的顺序执行2.1.1程序的顺序执行解决:顺序程序设计方式具有以下一些特点:简单、方便,容易理解。程序的顺序执行很容易理解和实现,非常简单。程序的执行总是严格按照顺序进行,下个操作必须在上一个操作完成结束后,方可进行。当然,顺序程序设计很不利于资源使用效率的提高。确定性。程序运行的结果,不会因为在运行过程中出现一些中断事件而受影响。程序运行的结果与程序推进的速率没有关系。封闭性。在顺序执行状态下,运行程序独占整个计算机系统资源,除了初始状态以外,该程序所处的环境只有本身决定,只有程序本身才能改变系统资源状态和环境。可再现性。一个程序,在某一个确定的数据集合下运行的结果,肯定是相同的。也就是说,一个程序,只要初始输入条件相同,运行结果也必然相同,而不会受外部条件的影响。2.1.1程序的顺序执行顺序程序设计的四个特点,使得编程和调试很方便,缺点就是计算机资源使用效率不高。操作系统是管理和控制计算机系统资源并方便用户使用的一种最重要的系统软件,提高资源的使用效率是操作系统设计的主要目标之一。因此,必须要提出一种程序的执行方式,提高系统的效率,这就是程序的并发执行。2.1.1程序的顺序执行2.1.2程序的并发执行程序的并发执行的“并发(Concurrency)”,是指:一个程序的执行还没有结束,另一个程序就已经开始。因此,从某个宏观时间段来考察,在这段时间内,“同时”完成了几个程序,这就叫并发,但从微观某个时刻来看,任何时刻却只有一个程序在运行。并发性有两层含义:①内部顺序性,对于一个程序而言,它的所有指令是按序执行的;②外部的并发性,对于多个程序而言,它们是交叉运行的。除了并发,还有“并行(Parallel)”,并行是指若干个程序在微观上也是同时执行的,当然,对于程序的并行执行,需要多个处理器。本书中,主要讨论单CPU的情况,因此,程序的执行是并发执行。但现代计算机系统由于采用了通道等技术,使得处理器与外围设备能够并行工作。于是,为了充分利用处理器与外围设备并行工作的能力,可以将程序工作方式设计为并发运行方式。用“图2-2程序的并发执行”实例说明对每一个程序而言,它的运行,不再是封闭的了,每个程序都有可能去竞争使用系统资源,如竞争处理器、输入机等,假如第一个程序输入完成,占用了处理器进行计算处理,而这时第二个程序的输入也已完成,但它不能占用处理器,这时就必须等待。O3P3I3O2P2I2O1P1I1

图2-2程序的并发执行2.1.2程序的并发执行从图中可以看出,现在处理器交替执行几个程序,这几个程序就是并发执行。因此,①在程序并发执行的环境下,各个程序之间相互影响,使得系统资源状态可以由多个程序来改变。对某一个程序的运行来说,它的运行轨迹就是“走走停停,停停走走”的。②

由于在并发环境下,各个程序不再独立,因此,顺序环境下的确定性和可再现性也不复存在。这是因为,并发环境下,程序执行不再“封闭”,程序推进的速率和中断的产生,对于相同的输入,可能得到的是不相同的输出,即程序结果“不可再现性”。③在程序并发环境下,系统资源得到了较高利用,但导致了一些新的问题,如破坏了顺序程序的确定性、封闭性和可再现性,使得程序间的运行需要考虑很多问题,如进程的同步和互斥,同时资源管理也更加复杂。2.1.3多道程序设计主存中每次只存在一个程序,该程序运行时独占整个计算机系统资源,这种程序设计方式就是“单道程序设计”,而让多个程序同时进入一个计算机系统的主存储器并发执行,这种程序设计方式就是“多道程序设计”。具有多道程序设计能力的计算机系统称为多道程序设计系统。程序的并发执行方式是多道程序设计的基础,实际上,多道程序设计就是把程序的并发执行思想应用到了单处理器的系统中。采用多道程序设计的优势是:充分发挥了计算机硬件的并行性,消除了处理器和外围设备的互相等待现象,大大提高了系统的效率。因此,从总体上看,采用多道程序设计技术可以增加单位时间内执行的作业数,但是,对于某一个作业而言,它的执行时间可能会延长,这是因为,多道环境下的作业有可能共享某些资源,在需要使用但不能获得时,需要等待,最好情况下,执行时间与该作业需要执行的时间相等,这当然要非常的“巧”,在该作业申请资源时都能够满足才行。【例2-1】在一个单处理器的系统中,假设有两道作业,一道单纯计算11分钟,另一道先计算3分钟,再打印6分钟。请问在单道程序设计系统中,两道作业的执行总时间至少为多少分钟?而在多道程序设计系统中,这一时间又至少为多少分钟?2.1.3多道程序设计在单道系统中,两道作业必须顺序运行,因此执行的总时间是11+(3+6)=20(分钟)。而在多道程序设计系统中,可以让第二道作业先进行执行,计算3分钟后,进行打印,接下去第一道作业进行计算,这时处理器和打印机真正并行工作,因此,这时,两道作业的执行总时间是3+11=14(分钟)。解答:【例2-2】在一个单处理器的多道程序设计系统中,现在有两道作业将要同时执行,一道作业以计算为主,一道作业以I/O操作(输入输出)为主,请问,先调度哪个作业进程?为什么?

解答:在现代计算机系统中,处理器可以和外部设备真正并行工作。因此,本题中,应该先调度I/O型的作业进程,赋予I/O型的作业进程更高的优先级,这样做的好处是可以提高系统资源的使用效率。这是因为,将I/O型的作业进程先调度运行,利用CPU进行运算,完成后让出CPU处理器,进行输入输出处理,而此时可以调度计算型作业进程到处理器上运行,这样做到CPU与外部设备并行工作,提高了资源利用率。例2-1用到了这一思想。【例2-3】有一台计算机,配置有1MB主存,操作系统占用200KB,每个用户进程各占用200KB,如果用户进程等待I/O的时间为70%,若增加1MB主存,则CPU的利用率提高多少?再增加1MB主存,则CPU的利用率比只有1MB主存时又提高多少?解答:当只有1MB主存时,除了操作系统占用的200KB,则其余的800KB主存可以容纳4个用户进程。由于每个进程等待I/O的时间为70%,那么只有四个进程都同时等待时,CPU才是空闲的,那么CPU的利用率是1-(0.7)4=0.7599≈0.76;假如再增加1MB主存,则主存中的用户进程共4+5=9个,CPU的利用率是1-(0.7)9≈0.9596≈0.96,那么CPU的利用率提高了(0.96-0.76)/0.76×100%≈26%。若再增加1MB主存,则CPU的利用率是1-(0.7)14≈0.99,CPU的利用率又提高了(0.99-0.76)/0.76×100%≈30%。2.1.4并发程序执行的条件

关于这个问题,Bernstein作过研究,并于1966年提出了两个程序并发执行的条件,故又称之为Bernstein条件,即并发进程如果是无关的,则这些进程可以并发执行。并发进程的无关性是指它们分别在不同的变量集合上运行。下面对Bernstein条件做简单介绍。约定程序Pi在执行期间所需引用的变量的集合,记作R(Pi)={a1,a2,a3,…,an},实际上,R(Pi)就是Pi的读集。约定程序Pi在执行期间所需修改的变量的集合,记作W(Pi)={b1,b2,b3,…,bm},实际上,W(Pi)就是Pi的写集。

有了以上的约定,Bernstein条件就可以表述为:如果两个程序P1和P2满足R(P1)∩W(P2)∪R(P2)∩W(P1)∪W(P1)∩W(P2)={},它们就能够并发执行,否则不能并发执行,会发生与时间有关的错误。具有何种特性的两个程序并发执行呢?【例2-4】对于下列四条语句,将它们的读集和写集都写出来。解答:语句读集R(si)

写集W(si)

s1:a=x*y; R(s1)={x,y} W(s1)={a}s2:b=z-1; R(s2)={z} W(s2)={b}s3:c=b+a+8; R(s3)={a,b} W(s3)={c}s4:w=c+5; R(s2)={c} W(s2)={w}运用Bernstein条件,有:R(s1)∩W(s2)∪R(s2)∩W(s1)∪W(s1)∩W(s2)={},因此,语句s1和s2可以并发执行;R(s1)∩W(s3)∪R(s3)∩W(s1)∪W(s1)∩W(s3)={a}≠{},因此语句s1和s3不能并发执行。同理语句s2和s3,s3和s4也不能并发执行。值得注意的是,Bernstein条件是一个理论上保证程序能够并发执行的充分条件。在操作系统中,由于进程间共享某些资源而不满足Bernstein条件的情况十分普遍,从理论上讲,它们是不能够并发执行的,否则会发生与时间有关的错误。但是,只要采取适当的措施,这些进程就可以正确、安全地并发执行,这可以通过信号量和PV操作或者管程机制等来予以解决。这些是涉及到进程互斥和同步部分的内容,本章后面会详细介绍。2.2进程

多道程序设计促进了操作系统的形成和发展。在多道程序系统中,程序是并发执行的,它们相互制约,它们的运行轨迹是“走走停停,停停走走”的,是动态的,同时,在并发环境下,一个程序可以产成多个运行实例,这些实例共享该程序。因此,传统的程序在多道环境下就不能很好地刻画并发程序的执行情况和特征。因此,必须要提出一个新的概念来准确、形象地表示具有动态、共享、并发等特征的“程序”,这就是进程。

进程是操作系统中最基础也是最重要的概念,当今得到广泛使用。进程的概念最早由美国麻省理工学院(MIT)于1960年在MULTICS操作系统中首先提出并实现的。理解进程的概念对理解操作系统的运行机制、操作系统的分析和设计以及多进程/多线程程序设计等具有重要意义。2.2.1进程的定义及其属性

虽然操作系统的进程概念非常重要,且广泛应用,但对进程的定义,并不统一。为了对进程有一个全面的理解,我们采用进程定义如下:进程是并发环境下,一个具有独立功能的程序在某个数据集上的一次执行活动,它是操作系统进行资源分配和保护的基本单位,也是执行的单位。因此,进程不是程序,而是程序的一次执行活动,和传统的程序概念有着本质的区别。在日常生活中,很容易找到类似于“程序”和“进程”的例子,例如厨师炒菜,菜谱相当于程序,一次炒菜过程就是一个“进程”;再如乐谱和演奏,乐谱相当于程序,而一次演奏就相当于一个进程;此外,火车时刻表以及列车的运行,课程表和上课,都有类似关系。2.2.1进程的定义及其属性动态性:进程是程序的一次执行活动,执行轨迹是“走走停停,停停走走”,并且进程具有创建、运行到终止的生命历程。因此,动态性是进程的一个重要属性.而程序是静态的,没有生命周期,程序作为一种系统资源(文件形式)可以长久存在。程序和进程的本质区别就是:程序是静态的,进程是动态的。结构性:进程不仅包括了运行于其上的程序,还包括了某个数据集合。为了在操作系统内部实现进程,就需要一个数表结构,即进程控制块来记录和描述进程的动态运行情况。因此,一个进程都是有程序代码段、数据块和进程控制块三部分组成。独立性:在传统的操作系统中,进程既是资源的分配和保护的基本单位,也是处理器调度的基本单位。在具有并发活动的系统中,没有建立进程的程序,是不能够作为独立单位进行运行的。在现代操作系统中,具有多进程多线程能力,进程仍然作为资源的分配和保护的独立单位,而调度和执行的基本单位改为由线程来完成。2.2.1进程的定义及其属性从进程的定义中,可以看出进程具有以下六个属性。并发性:并发性是进程的固有特性,引入进程的目的之一就是让进程能够并发执行。并发性也是现代操作系统的一个重要属性。并发就是指一个进程运行没有结束,另一个进程就已经开始,各个进程运行在时间上可以有重叠。制约性:并发进程由于共享资源和相互协作,从而产生制约关系,使得进程在关键点上需要相互等待或互相通信,采取一些必要的措施,才能保证进程执行的结果的确定性、唯一性和可再现性。共享性:同一个程序的各个进程对应的程序代码是相同的,此外,不同进程之间还可以共享公共变量,以竞争或协作的方式进行工作。2.2.1进程的定义及其属性

从进程的结构特性可以看出,进程包含程序,但进程和程序并非一一对应,一个程序可以对应多个进程(数据集不同),而同样,有的进程对应一个程序,而有的程序可被属于不同的进程的几个程序进行调用,每次调用就对数据进行一次处理,而这个处理过程只是相应进程的一部分。2.2.1进程的定义及其属性简单介绍程序和进程的联系:2.2.2进程的状态及其转换

进程具有并发性、制约性、动态性、结构性以及独立性,运行轨迹是“走走停停,停停走走”,有时在占用处理器,有时又在申请外部设备,有时又在进行I/O处理。为了刻画每个进程活动的过程和状态的变化,以及为了进程控制和调度的方便,就要记录和控制进程的运行过程,这就是进程的状态。不同的操作系统,进程的状态是不同的。但为了管理上的方便,大多数系统中进程都具有以下三种基本的状态。

运行态(Running):此时的进程获得了当时运行所需的系统资源,并且正在占有CPU进行处理。

等待态(Waiting),也叫阻塞态(Blocked):运行中的进程,由于要申请使用某个系统资源,或者申请到了某个外部设备正在进行与外部设备进行数据传输,或者进程运行中出现了异常需要等待用户进行干涉处理,这时的进程就不能继续运行下去,而不得不放弃CPU,从而转入等待态。

就绪态(Ready):处于等待态的进程,由于所等待的事件得到了满足,这时就转入到就绪态。就绪态的进程,运行所需要的系统资源,除了CPU之外,全部得到了满足,可是说“万事俱备,只欠CPU”。1.进行状态及其转换除了以上三种基本状态之外,进程还具有以下两种状态:

创建态:就是进程被创建的状态。被创建后的进程处于就绪态。

终止态:就是进程的生命周期结束,进入消亡状态。一般地,运行态的进程运行完毕进入终止态。以上进程的五种状态及其状态转换,可以参见图发生等待事件调度时间片到等待事件结束运行态创建态就绪态等待态终止态图2-3进程状态及其转换图

有些操作系统,为了缓解内存资源的紧张,或者调整系统的负荷或提高性能,还引入了挂起功能。挂起功能,就是将进程从内存换到外存,相反地,从外存调入内存称为激活。这样,进程的状态,就增加了两种:挂起就绪态和挂起等待态,相应地,原来的就绪态可以称为活动就绪态和活动等待态。挂起等待态的进程表示它在等待某个事件,且在外存中,挂起就绪态表明进程满足运行条件,但当前处在外存中,因此该进程不能被调度执行,只有进程激活进入活动就绪方可参加进程调度(低级调度)。

具有挂起功能的进程状态及其转换,见下图2.具有挂起功能的进程状态及其转换新建态

挂起就绪态:新创建的进程,如果当时内存资源比较紧张,或者系统负荷较重,为了提高系统性能,可以将该新进程放到外存中,成为挂起就绪态的进程。活动就绪态

挂起就绪态:根据当前系统的内存使用情况以及系统性能,可以将活动就绪态的进程对换到外存中,变为挂起就绪态进程。挂起就绪态

活动就绪态:当内存比较空闲,或者内存中没有活动就绪态进程,或者挂起就绪态进程的优先级比活动就绪态的高,这时操作系统就可以将处于挂起就绪态的进程调入内存,变为活动就绪态进程。等待态

挂起等待态:为了提高系统效率,系统可以根据当时系统资源使用情况和系统负荷程度,可以将活动等待态的进程对换出内存成为挂起等待态;还有一种情况是,当系统的内存中没有活动就绪进程时,CPU空闲,此时,就必须将至少一个处于活动等待态的进程对换到外存,以腾出空间调进一个挂起就绪态的进程成为活动就绪态进程。挂起等待态

等待态:在具有挂起功能的系统中,一个处于挂起等待态的进程,在等待事件的发生,将它调入内存,意义并不大。但当内存空间比较空闲,或者可以预知该进程的等待事件很快就会结束,或者这个进程的优先级较高,为了提高系统效率,可以将该挂起态的进程调入内存,成为活动等待态进程,当等待事件结束时,该进程直接转为活动就绪态进程。挂起等待态

挂起就绪态:对于挂起等待态的进程,当它等待的事件结束时,就转为挂起就绪态。对图2-4中的一些状态转换的介绍2.2.3进程控制块前面介绍了进程的概念和属性,以及进程的状态及其转换,知道进程由三个要素组成,即程序块、数据块和堆栈。那么进程在操作系统内部是怎么表示的呢?为了在操作系统中刻画和实现进程这一重要概念,就引入了进程控制块。进程控制块(ProcessControlBlock,PCB),是为了描述和控制进程的运行而定义的一种数表结构,它是进程存在的唯一标志,也是进程实体的一部分。操作系统对进程的管理和控制主要以PCB为依据。PCB中包括了操作系统所需要的进程运行的所有信息。2.2.3进程控制块虽然不同的操作系统中,PCB的信息有所差异,但大多数操作系统中的PCB都具有以下四部分信息:(1)标识信息。这是系统内部为进程分配的一个唯一的数值型编号,又叫进程名或进程号,相当于人的身份证号码。当创建一个进程时,有的系统允许创建该进程的用户可以为该进程取一个方便记忆的名字,这个名字叫做进程外部标识符,而被系统内部使用的进程号叫做进程内部标识符。(2)描述信息。用来描述进程的一些基本情况,如进程当前所处的状态,如果是等待态,还要指出等待的原因,该进程对应的程序代码存放的位置,以及数据存放的位置等等。(3)现场信息。用来保存进程存放在处理器中的各种信息。进程的状态是不断转换的,例如进程从运行态到等待态,就需要保护一些必要的信息,以便进程可以正确地运行。现场信息一般包括控制寄存器内容,通用寄存器内容,程序状态字(PSW)寄存器内容,系统堆栈指针,用户堆栈指针等等。(4)管理和控制信息。用于管理和调度一个进程。包括进程优先级,队列指针,CPU资源的占用和使用的时间,进程间通信信息,进程特权信息以及资源需求和占有情况等信息。2.2.3进程控制块进程控制块是操作系统中最重要的数据结构,是进程存在的唯一标志,它为系统提供可并发执行的独立单位。当系统创建一个进程时,就为它分配一个PCB,并填上适当信息,并随着进程的推进,PCB的信息不断调整和修改,以准确刻画动态的进程的运行轨迹;当一个进程运行结束时,系统就回收该进程的PCB,从而该进程消亡。操作系统是根据PCB来实现对并发环境下的进程管理和控制的,没有建立PCB的程序是不能并发运行的。2.2.4进程队列在并发环境下,系统中存在着很多进程,有的处于运行态,有的处于就绪态,有的处于等待态,并且等待的原因可能各不相同。这些进程是零散的,并且数目很多,可达成百上千个,如果不进行有效管理,系统效率会大大降低。由于对进程的访问很多时候是根据进程的状态进行的,例如进程调度就是只从就绪态的进程中选择一个占有CPU去运行,唤醒原语只是访问处于等待态的相应进程,因此,如果能够根据其状态将进程组织成若干个队列,就能大大提高进程的访问效率。这种设想是可行的,因为PCB是描述进程的最重要的一种数表结构,它标志了进程的存在,包括了系统控制和管理进程所需的所有信息,并且有一个指针信息,这样就很容易形成队列。这样,可以把具有相同状态的进程的PCB按照某种原则链接在一起,形成一种队列,这就是进程队列,实际上,进程队列是一种PCB链。2.2.4进程队列进程队列根据进程的状态不同,可以有进程就绪队列,进程等待队列,由于在单CPU环境下,处于运行态的进程不超过一个,因此,没有必要建立进程运行队列。更进一步,可以根据进程调度的策略,将就绪队列根据优先级的不同划分为若干了就绪队列,如有的系统将就绪队列分为前台就绪队列和后台就绪队列,优先调度前台就绪队列中的进程,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论