第一章操作系统引论1.1操作系统的目标、作用1.1.1操作系统的目标计算机操作系统是随着计算机研究和应用的发展逐步形成并发展起来的,它是计算机系统中最基本的系统软件。设置操作系统的主要目标是:1.方便性;2.有效性;3.可扩充性;4.开放性;1.1.2操作系统的作用(1)提供用户与硬件系统之间的软件接口,使用户能通过操作系统方便地使用计算机。(2)控制和管理计算机系统的软、硬件资源,使之得到有效利用。(3)作为虚拟机,合理组织计算机系统的工作流程,以增强系统的处理能力。总之,所谓计算机操作系统是指控制和管理计算机的软、硬件资源,合理组织计算机的工作流程,方便用户使用的程序和数据的集合。操作系统能够把一台“裸机”改造成一台功能更强大,用户使用更方便灵活,更安全可靠的“虚拟机”。所谓虚拟,是指把一个物理上的实体变为若干个逻辑上的对应物。前者是实际存在的,而后者是虚的,只是用户的一种感觉。1.1.3操作系统功能从资源管理的角度看,操作系统具备五大功能。1.进程管理进程管理又称“处理机管理”,其主要功能是对中央处理器(CPU)进行管理。为了提高宝贵的CPU资源的利用率,克服单道程序技术的缺点,操作系统采用多道程序技术,即在内存中同时驻留若干道已经开始但又尚未结束的程序,当一个程序因等待某一条件而不能运行下去时,就把CPU的使用权交给另一个程序;或者,当出现了一个比当前运行的程序更重要的可执行程序时,后者应能抢占CPU的使用权。多道程序设计的特点是多个程序共享CPU资源,CPU的利用率较高。在多道环境下,程序之间并不再是孤立的,它们之间存在着直接或间接的联系,需要通过同步、互斥等通信手段协调它们之间的关系。如果多道程序之间的关系失调,则可能产生死锁,必须采取各种手段预防、避免、检测和解决死锁问题。在多道程序设计环境中,为了保证系统的安全,将指令分成特权指令和非特权指令。只允许操作系统程序执行的指令称为特权指令,一般用户不允许使用特权指令。指令集合中除特权指令之外的指令称为非特权指令。在多道程序设计环境中,中央处理器交替她执行操作系统程序和用户程序。当CPU正在执行操作系统程序时,称CPU处于系统态(又称管态、核心态);当CPU正在执行用户程序时,称CPU处于用户态(又称目态)。2.存储管理存储管理的主要功能是管理内存资源。由于多道程序共享内存资源,需要合理地为它们分配内存空间,将程序地址空间快速正确地映射到物理地址空间,并保证用户的程序和数据能够相互隔离、互不干扰。随着用户程序的不断增大,内存资源常常捉襟见肘,所以需要解决内存扩充的问题。即把内存和外存统一起来管理,只需要把程序的一部分调入内存,另一部分仍留在外存中,程序可以在内、外存之间互换,为用户提供一个容量比实际内存大得多的虚拟存储器,以保证大程序的运行。3、设备管理计算机外部设备的种类繁多、功能差异很大,管理困难。操作系统设备管理的主要功能是按一定的策略为进程分配外设、启动外设进行数据传送,使用户不必了解设备以及接口的技术细节就可以方便地对设备进行操作。为了弥补CPU和外部设备速度的差异,提高CPU和外设之间的并行能力,系统采用了中断技术、通道技术、缓冲技术和虚拟设备技术等,为用户提供了功能强大、界面友好的设备使用手段。4.文件管理计算机系统中大量信息总是以文件形式保存在外存储器上。操作系统必须向用户提供能快速、有效、合理地存取这些数据的手段。文件管理的主要任务是有效管理文件的存储空间,合理组织和管理文件系统的目录,支持对文件的存储、读写操作,解决文件信息的共享、保护及访问控制等。5作业管理作业是用户需要计算机完成任务的总和,它是完成用户任务所需要的程序、数据以及如何对这些程序、数据进行处理的命令的集合。作业管理的主要任务是根据用户的要求对作业的实际运行进行合理的组织和相应的控制,即作业的调度和控制。l.l.4操作系统的分类从操作系统的功能出发可以把它分成以下几种类型:(1)批处理(操作)系统;(2)分时系统;(3)实时系统;(4)网络操作系统;(5)分布式操作系统。1.批处理系统(单道和多道)批处理系统也称为作业处理系统。在批处理系统中,操作人员将作业成批地装入计算机中,由操作系统在计算机中某个特定区域(一般称为输入井)将其组织好并按一定的算法选择其中的一个或几个作业,将其调人内存使其运行。运行结束后,把结果放入“输出井”,由计算机统一输出后,交给用户。批处理系统的主要优点是系统吞吐量大,资源利用率高。所谓“吞吐量”是指单位时间内系统所能完成的任务的总和。批处理系统的主要缺点是交互能力比较差。2.分时系统所谓“分时”,是指在不同的时间间隔内,不同设备访问(共享)同一个其他设备。分时系统允许多个用户同时使用一台计算机。不同用户通过各自的终端以交互方式使用计算机,共享主机的各种软、硬件资源。分时系统的主要特点是:(1)同时性:也称为多路性。若干用户同时与一台计算机相连,宏观上看各个用户在同时使用计算机,他们是并行的;微观上看各个用户在轮流使用计算机。(2)交互性:用户通过终端设备(如键盘、鼠标)向系统发出请求,并根据系统的响应结果再向系统发出请求,直至得到满意的结果。这种“你问,我答”式的人机交互方式是分时系统的显著特征,所以分时系统也称为交互式系统。(3)独立性:每个用户使用各自的终端与系统交互,彼此独立、互不干扰。从用户角度来说,他好像独占整个计算机,其他用户根本就不存在一样。(4)及时性:所谓及时性是指用户向系统发出请求后,应该在较短的时间内得到响应。这里“响应时间”是衡量分时系统性能的重要指标之一。所谓响应时间是指从用户发出命令到系统给予反应所经历的时间。该时间间隔的大小由用户所能接受的等待时间来确定,一般为2~3s。影响响应时间的因素很多,主要有系统开销、用户数目、时间片的大小,以及系统和用户之间交换的数据量的多少等。分时系统的出现提高了系统资源的利用率,减少了系统维护人员,节省了开支,促进了计算机的普及,显著地提高了研究、检查和调试程序的效率。3.实时系统实时系统是指能够及时响应随机发生的外部事件,并在规定的时间范围内完成对该事件处理的系统。实时系统可分为实时控制系统和实时信息处理系统。(1)实时控制系统:实时控制系统要求尽快地测量出被控系统的各种数据,并尽快地做出响应(处理)。这种系统的特点是响应速度快,可靠性要求高,在军事和工业控制领域应用广泛。(2)实时信息处理系统:根据用户提出的查询请求进行信息检索和处理,并在较短的时间内对用户做出正确的响应。例如,把计算机用于民航飞机票的预定、查询、售票及情报检索系统等。(3)实时系统的特征:实时系统最主要的特征就是其快速的处理能力,适应这种实时性的要求。实时系统在设计时力求简单而实用。一般的实时系统都拥有高精度的实时时钟;具有快速的中断响应和中断处理能力;支持多道程序设计,任务调度算法简单、实用,数据结构简洁、明了,任务切换速度快,能够处理时间驱动的任务(周期性任务)和事件驱动的任务;可靠性高;具有较强的系统再生能力。4.网络操作系统计算机网络是通过通信设施把地理上分散的具有自制能力的计算机连接起来,以实现数据交换、资源共享和互操作为目的的计算机系统。网络操作系统是建立在主机操作系统基础上,用于管理网络通信和共享资源,协调各主机上任务的运行,并向用户提供统一的、有效的网络接口的软件集合,包括网络管理、通信、资源共享、系统安全和多种网络应用服务。5.分布式操作系统分布式操作系统也是通过通信网络将物理上分散且具有自制能力的计算机系统互连起来,实现信息和资源共享,协作完成任务。但分布式系统要求一个统一的操作系统实现系统资源的统一般地说管理。分布式操作系统负责管理分布式系统中的所有资源,包括整个系统的资源分配和调度、任务划分、数据传输、协调工作,并为用户提供一个统一的界面,用户通过该界面使用系统资源时无须了解资源的位置。1.1.5操作系统的特征操作系统具有4个基本特征。1.并发性并发性又称为同时性,是指在操作系统中同时存在许多活动,这些活动都已经开始但又没有结束。在操作系统中,并发性和并行性是既相似又有区别的两个概念。其中并发性是指两个或多个事件在同一时间间隔内发生;而并行性是指两个或多个事件在同一时刻发生。在单处理机系统中,每一时刻仅能执行一道程序。因此,宏观上程序是并发运行的,微观上程序是交替运行的。2.共享性由于操作系统的共发性,这时整个系统的软、硬件资源不再为某个程序所独占,而是由许多程序共同使用,即许多程序共享系统中的各种资源。资源共享是由于并发而引起的,如果没有共发性,系统中只允许一个程序运行,所有资源都由该程序独享,自然不存在共享性的问题;但是,如果操作系统不对被共享的资源实施有效的管理,并发程序也无法正常运行。可以说,并发性和共享性是操作系统的两个最基本的特征。3.不确定性在多道程序设计中,各个程序之间存在着直接或间接的联系,程序的推进速度受它的运行环境的影响。这时同一程序和数据的多次运行可能得到不同的结果;程序的运行时间、运行顺序也具有不确定性;外部输入的请求、运行故障发生的时间不可预测。这些都是不确定性的表现。4.虚拟性操作系统中经常使用“虚拟”这个概念。在只有一个CPU的计算机上可以同时运行多个程序,每个程序都好像独占了一个CPU;苦于用户分时使用同一台计算机,好像每人都在使用一台独立的计算机一样;在一台物理内存只有IMB的计算机上运行了总容量超过5MB的程序,好像用户拥有一台内存为5MB甚至更大的计算机一样,等等,都是操作系统虚拟性的表现。1.1.6操作系统的性能评价一般从5个方面对操作系统的性能进行评价。1.可靠性作为用户来说,希望操作系统是绝对可靠的。但由于操作系统的并发性、共享性等特点,要做到绝对可靠是比较困难的。一般采取如下措施希望产生一个可靠性较好的操作系统。(1)在系统设计时尽可能避免可能的软、硬件故障。(2)在系统运行过程中,一旦出错应能及时检测,减少损失。(3)系统一旦出现错误,要能迅速找出其原因,确定其发生的位置,尽快地排除错误。(4)尽快地对因错误造成的损失进行修复。2.方便性计算机硬件只能识别二进制0和1代码,用户如果直接使用裸机很不方便,裸机上配置了操作系统以后,大大地提高了计算机系统处理能力。用户通过操作系统提供的接口使用计算机,更易学习,更方便。3.效率效率是操作系统的一个重要的性能指标。一般由4个参数来衡量系统的效率。(1)系统的吞吐量:即在单位时间内系统处理作业的数量。吞吐量越大,系统的效率越高。(2)资源利用率:即系统中各部件的使用程度,要求资源利用率要高。(3)批处理系统的作业周转时间:要求作业周转时间越短越好。(4)响应时间:从用户向系统发出请求到获得系统的应答所需的时间。响应时间越短越好。4.可维护性系统维护是指对已经交付给用户的操作系统所进行的软件工程活动。其中包括改正性维护、适应性维护和完善性维护等。5可移植性操作系统应能适应不同系列机型的变化,即当计算机CPU的系列发生变化时,相应的操作系统应做到不作修改或少作修改,就能在新的计算机上运行。1.1.7操作系统的结构分析1.模块化结构这种操作系统由许多标准的、可兼容的基本单位构成,称之为模块。采用模块化结构的操作系统被划分成若干模块,各个模块功能上相对独立,模块之间通过规定的接口相互调用。各个模块可以单独设计,最后把各个模块连接起来合成一个完整的软件系统。设计时要求模块之间的关系尽可能地少。模块化结构的操作系统可由多人分工,同时设计一个系统,缩短了系统开发周期。但由于模块之间形成了较复杂的调用关系,相互依赖,造成结构不清晰,从而使得分析、移植和维护系统较为困难。2.层次化结构为了避免模块化结构的缺陷,采用层次化结构。所谓层次化结构是将操作系统分成许多基本的模块,将这些模块按照某种逻辑关系排成若干层,各层之间只能单向依赖,即上层软件基于下层软件之上,不能构成循环。层次化结构的特点是把整体问题局部化,把一个大型复杂系统分解成若干单向依赖的层次,大大地简化了接口设计,整个系统的正确性由各层次的正确性来保证