操作系统第1章操作系统概述本章知识点:操作系统定义及其功能;多道程序设计技术;批处理操作系统、实时操作系统与分时操作系统的主要特点与区别;操作系统的主要特征;操作系统的逻辑结构。1.1操作系统的定义及其功能操作系统的定义:(本质)是一个大型的软件系统;(对内)负责计算机的全部软件、硬件资源的管理,控制和协调并发活动,实现信息的存储和保护;(对外)为用户使用计算机系统提供方便的用户界面;(结果)使计算机系统实现高效率和高自动化。操作系统的宗旨操作系统在计算机系统中充当计算机硬件系统与应用程序之间的界面,所以,操作系统既面向系统资源又面向用户。面向系统资源,操作系统必须尽可能提高资源利用率;面向用户,操作系统必须提供方便易用的用户界面。这是操作系统追求的目标和宗旨,也是贯穿课程各知识点展开讨论的一根红线,是问题得以提出和解决的唯一出发点。从资源管理的角度看操作系统的主要功能处理机管理存储管理设备管理文件管理(信息管理)网络管理提供良好的用户界面1.处理机管理在操作系统所管理的系统资源中,处理机是最紧俏的资源。操作系统要支持多用户、多任务对处理机的共享,因此对处理机的管理成为操作系统最重要的一个组成部分。操作系统处理机管理模块的主要任务是确定对处理机的分配策略,实施对进程或线程的调度和管理。处理机的调度一般以进程为单位,如果系统支持线程则以线程为单位进行调度。操作系统所采用的处理机管理策略决定了操作系统的主要性能。2.存储管理存储管理涉及系统另一个紧俏资源——内存,它一方面要为系统进程及各个用户进程提供其运行所需要的内存空间,另一方面还要保证各用户进程之间互不影响,此外,还要保证用户进程不能破坏系统进程,提供内存保护。由于系统中内存容量有限,如何使用有限的内存运行比其大得多的作业并且使尽可能多的进程进入内存并发执行,是操作系统需要解决的问题。所以操作系统必须提供虚拟存储来提高内存的利用率和提高进程的并发度。2.存储管理操作系统存储管理的功能是实现对内存的组织、分配、回收、保护与虚拟(扩充)。内存的管理方式也有很多种,不同的管理方式下,系统对内存的组织、分配、回收、保护、虚拟以及地址映射的方式存在着很大的差异。操作系统对内存管理的实现在很大程度上依赖于硬件机制,操作系统必须针对不同CPU所提供的不同硬件机制提供统一的接口,做到在不同的硬件支持环境下得到相同的操作系统界面和系统功能,这就要求操作系统有很好的可移植性。3.设备管理计算机系统所配置的外部设备是多种多样的,其工作原理、I/O传输速度、传输方式都有很大的差异。操作系统采取统一的文件系统界面来管理外部设备,而将设备本身的物理特征交由设备驱动程序去解决,从而提高系统对多种设备的适应性。为了方便用户,也为了提高设备利用率,操作系统采用“设备独立性”的概念,即操作系统仅向用户提供逻辑设备名,而将物理设备的分配交由操作系统控制和管理。这样既便于用户在使用设备时不必关心设备的使用细节,同时也便于操作系统实施设备的分配管理,避免用户在不知情的情况下盲目地在某个设备上排长队,而其余的同类设备却处于空闲状态,从而提高设备的利用率。3.设备管理外部设备与CPU是并发执行的,但CPU与设备的运行速度并不匹配,因此通常需要采用缓冲技术来平滑速度上的差异。不同的操作系统对于缓冲技术的管理算法不尽相同,Unix所采用的算法是通过对缓冲区的管理以及减少读写磁盘次数的方式来提高I/O速度。操作系统设备管理还必须利用处理机提供的中断机制来实现外部设备与CPU之间的并行,为此操作系统要提供设备中断服务程序来控制当CPU响应外部设备发来的中断请求后所需要执行的任务,即根据设备完成I/O的情况决定需要服务的内容:若设备I/O没有结束,则继续启动设备I/O;若设备的I/O已经结束,则需要将请求设备I/O的进程唤醒,等待分配CPU继续执行。4.文件管理操作系统的文件管理子系统是最接近用户的部分,它给用户提供一个方便、快捷、可以共享、同时又提供保护的对文件的使用环境。操作系统给用户提供一个方便的“按名存取”的文件使用方式,用户只需要给出文件名即可实现对文件的存取,实现过程交由操作系统解决。为了方便不同用户对各自文件的自主管理,也为了实现对文件的快速查询,操作系统通常采用树型目录结构来实现对文件的管理和控制。4.文件管理文件的存储介质是磁盘,文件在磁盘上以何种结构进行组织和存放涉及到文件的读盘次数和存取速度,不同的操作系统对文件的物理结构有不同的组织方式,本书主要介绍Unix的文件物理结构。对于空闲磁盘块的分配和回收也涉及系统的时空效率,因为磁盘的容量越来越大,空闲块数量非常大,其数据结构所占的空间也相应很大,如何节省对于磁盘空闲块进行管理的时间和空间是操作系统需要解决的问题,Unix给出了很好的解决方案。对于文件的共享和保护是当今操作系统都必须提供的,不同的操作系统有不同的解决方案,我们主要介绍Unix所提供的共享和保护方式。5.网络管理随着计算机网络功能的不断加强,网络的应用不断深入社会的各个角落,操作系统必须提供计算机与网络进行数据传输和网络安全防护的功能。6.提供良好的用户界面操作系统是计算机与用户之间的接口,最终是用户在使用计算机,所以它必须为用户提供一个良好的用户界面。用户界面的好坏是直接关系到操作系统能否得到用户认可的一个不容忽略的关键问题。1.2操作系统的分类操作系统按功能可以分为以下几种类型:多道批处理系统分时操作系统实时操作系统网络操作系统分布式操作系统1.2操作系统的分类按照硬件环境个人计算机操作系统嵌入式操作系统(手机、PDA、MP3)多处理机操作系统手机操作系统一般只应用在高端智能化手机上。目前,在智能手机市场上,中国市场仍以个人信息管理型手机为主,随着更多厂商的加入,整体市场的竞争已经开始呈现出分散化的态势。从市场容量、竞争状态和应用状况上来看,整个市场仍处于启动阶段。目前应用在手机上的操作系统主要有PalmOS、Symbian、Windowsmobile、Linux和Android、iPhoneOS,黑莓七种。1.2.1多道程序设计技术与批处理系统1.多道程序设计技术在通道技术和中断技术的支持下,产生了多道程序设计技术。在下页所示的图中,当程序A占用CPU时,程序B在占用设备,在宏观上两个程序都处于并发执行之中。而对于I/O设备和CPU来说,任一时刻只能处理一个程序,即在微观上是串行的。这就是程序并发的特点,也是多道程序设计技术的特点。多道程序:计算I/O请求启动I/O用户程序操作系统I/O操作设备完成I/O完成处理继续计算单道程序:程序ACPU设备1设备2程序B并行区1.2.1多道程序设计技术与批处理系统多道程序设计技术是在计算机内存中同时存放几道相互独立的程序,它们在操作系统管理程序的控制下相互穿插地运行。多道特征:多道——同时有多个程序都在系统的某个硬件(CPU或外设)上执行或等待执行。宏观上并行——站在用户的角度看,所有的程序都在运行之中。微观上串行——站在硬件设备的角度看,每次只运行一道程序。比如CPU和输入输出设备,任何时刻最多只被一个程序占有。1.2.1多道程序设计技术与批处理系统2.多道批处理系统多道批处理系统是针对作业单道执行进行的改进。用户可以将多个作业组织在一个批处理文件中,然后通过执行这个批处理文件,由操作系统按作业控制语言给定的控制流程进行作业选择,并将选中的若干作业调入内存以多道方式投入运行。批处理文件中的每一个作业都是一个可以单独执行的可执行文件或命令。批处理系统的优点是系统吞吐量大,资源利用率高。但是在批处理环境下,用户作业一旦投入运行就不再由用户控制,直到运行结束。所以批处理系统不具有交互性,这是其缺点。现代的通用型计算机系统中一般都保留了批处理功能。常见的如DOS中扩展名为.bat的文件。1.2.2分时操作系统分时操作系统采用“时间片”、动态优先数等方式使CPU轮流为多个用户终端或多个任务服务。对于每个终端,CPU每轮转一次为它服务的时间间隔称为响应时间。由于分时系统面向的是分时用户,其响应时间以满足人的感觉为度,系统管理员可以通过调整时间片的长度或调整优先数的值来调整响应时间,因而在分时系统中,各终端用户的请求总是能够得到快速的响应。1.2.2分时操作系统分时系统的主要特点是:1.多路调制性:指同时有多个程序并发执行,CPU以分时方式轮流地为它们服务。2.独占性:站在终端用户的角度看,只要响应速度满足要求,用户的感觉就像是独占了CPU一样。独占性是指逻辑上的,而物理上并非独占而是多用户共享CPU。3.交互性:交互性是分时系统的一个重要特征,它指用户与系统之间可以通过操作系统提供的多种界面进行人机“会话”,进行交互。分时操作系统会以窗口菜单方式或键盘命令方式提供给用户使用系统资源。1.2.3实时操作系统“实时”是指能够及时地响应随机发生的外部事件,并在规定的时间内完成对该事件的处理。实时操作系统可以分为实时控制系统和实时信息处理系统。实时控制系统要求快速的响应时间,一般在毫秒、微秒级,用于军事武器的实时控制系统对响应时间的要求则更高。这种实时控制系统的主要特点是响应速度快,可靠性要求高。实时信息处理系统主要对用户通过终端提出的操作请求进行查询检索和处理,其对响应时间的要求与分时系统相同,都以人的感觉为度。比如银行提供的全国连网通存通兑系统、民航飞机订票系统、情报检索系统等等。这种实时信息处理系统在响应时间上与分时系统处于同一级别,区别在于实时信息处理系统更强调系统的安全性和可靠性,而不具备分时系统的强交互性。1.2.3实时操作系统实时系统的主要特点是:1.对响应时间的实时要求(可高可低)。2.系统可靠性和安全性放在第一位,系统效率放在次要地位,交互性差或根本没有交互性。3.系统整体性强。很多实时系统同时又是分布式系统,具有分布式系统整体性强的优点。1.3操作系统的特性采用了多道程序设计技术的操作系统具有以下特性:并发性共享性不确定性(异步性)虚拟性1.3.1并发性由于多道程序同时在内存中,可能分别占有CPU或I/O设备,在不同的硬件或设备上同时运行,这就是并发性。并发执行的好处是能够使CPU与外设同时并行执行,提高了资源的利用率。弊端在于并发必然导致共享资源的矛盾,同时还带来诸如:多道程序执行过程的中断、同一程序在不同硬件上的调度转换、同一CPU上不同程序的现场切换、存储保护、以及合作进程如何同步等问题。这些都是导致操作系统变得复杂的原因。1.3.2.共享性由于操作系统的并发性,使得系统资源不再由一个程序独占,而由多道程序共享。因而要求操作系统必须首先解决共享资源所带来的一系列问题,才有可能真正实现多道程序并发。因此,并发与共享是一对矛盾,也是演绎出操作系统诸多算法和策略的两个最基本的特征。1.3.3.不确定性在多道程序并发执行的环境中,各程序之间存在着直接或间接的联系,程序的推进速度会受到运行环境的影响,若不能正确控制,则执行结果会因为运行环境不同而不同。由于多道并发环境下,程序执行的过程与其它并发程序相互之间有干扰,其执行过程中在何时何地由于时间片耗尽而被中断,其请求的I/O何时完成以及其继续执行所需的消息或信号何时到来等等,都具有随机性和不确定性。另外,分时系统中用户随时从终端上发出的终止执行命令,也导致操作系统具有不确定性。因此,操作系统必须具备处理随机事件的能力。1.3.4.虚拟性所谓虚拟是指物理上没有提供,但是逻辑上却具备的功能,在用户看来好象是物理上原来就具有的功能一样。操作系统的虚拟性体现在两个方面:⑴.操作系统虚拟机操作系统运行在硬件提供的功能支持之下,为用户提供方便易用的功能界面。在用户看来,似乎是计算机硬件本身具有的功能,这就是操作系统虚拟机。操作系统采用不断扩充功能、逐层虚拟的分层结构,其每一层都依赖于下层功能的支持,同时为上层提供一个功能更加强大支撑平台,每一层都是一个虚拟机。1.3.4.虚拟性⑵.操作系统对于系统的硬件和软件资源都采用了一定的虚拟机制。比如: