第8章操作系统2计算机科学导论学习目标了解操作系统的发展历史、操作系统的分类、操作系统的体系结构、常用主流操作系统、操作系统的新发展。掌握操作系统概念、操作系统的功能、操作系统的一些基本概念及组成。操作系统(OperatingSystem)是建立在裸机上的第一层软件系统,属于计算机的系统软件。没有操作系统,整个计算机将无法正常工作。第8章操作系统3计算机科学导论8.1操作系统概念8.1.1操作系统要理解操作系统的概念,首先要清楚两点:操作系统属于软件,它是最接近于硬件的第一层软件。一台计算机,首先必须为它安装操作系统,计算机才能够正常工作。“操作系统就是合理管理并控制计算机系统内各种软、硬件资源,并能够合理组织工作流程、方便用户使用的程序的集合”。例如:Windows,Unix,Linux等4计算机科学导论8.1.1操作系统现代操作系统通常都有着一些共同的基本概念。1.并发并发通常指多个任务可以在同一个时间段内同时执行,即允许多个任务在宏观上并行,微观上仍然串行(对于单CPU系统而言)。而并行则指的是多个任务真正意义上的同时执行2.操作系统内核(1)处理机的工作状态。通常除了嵌入式系统中非常简单的CPU之外,多数CPU都有两个工作模式,分别称为核心模式和用户模式。(2)操作系统内核。操作系统在核心态下运行的部分称为操作系统内核。通常,内核应该具有的基本功能有处理机调度、存储管理、I/O管理和文件管理等。5计算机科学导论3.进程和线程进程(Process)指的是程序的一次执行。在操作系统中,进程是资源分配的最小单位。如果系统不支持线程,那么进程同时也是处理机调度的基本单位。4.死锁当多个进程在系统中运行时,如果对于这些资源的使用不加限制或规范,就可能引起系统中所有进程集合中的进程都无法执行完成,它们都在等待本进程集合中的进程释放相应的资源,这些进程就处于死锁状态。8.1.1操作系统6计算机科学导论一个简单的例子,可以通过它来理解死锁的概念AB打印机CD刻录机设有两个进程A、B,为了完成各自的应用它们都需要使用打印机和CD刻录机。假设系统首先已经将打印机分配给了进程A,CD刻录机分配给了进程B,并且两个进程都已经开始执行,用实箭头分别指向这两个进程表示这样的资源分配;如果A在执行过程中,还要请求使用CD刻录机才能最终完成它的应用,而B在执行中也要请求使用打印机才能结束,用虚箭头表示这样的资源请求。运行结果是,A、B进程都会在某个时刻无法继续执行完成,A因为要使用B已经拥有的CD刻录机而无法得到,处于一个阻塞等待状态;而B也会因为要使用已经分配给A的打印机处于阻塞等待状态;最终,进程A、B谁都无法执行完成,处于一个永远等待的状态,这就是死锁。8.1.1操作系统7计算机科学导论5.地址空间每台计算机都配备有一定大小的物理内存,这些物理内存由一些连续的物理单元组成,为这些物理单元分别编址,就是内存的物理地址。任何程序要得以执行,就必须映射到物理地址空间。每个进程也有它的地址空间,通常称为逻辑地址空间或虚地址空间,指的是进程的逻辑地址的集合,这个地址的开始值通常为0,一直到某个最大值232-1。这个最大值与系统的地址结构有关,例如,如果采用32位地址结构,这个最大值就是。一个进程的虚空间通常有如图所示的布局。映射到操作系统内核数据段程序段For0高地址用户栈空闲区堆8.1.1操作系统8计算机科学导论6.输入/输出(I/O)设备操作系统通常将输入/输出设备分为两类:字符设备和块设备。记录设备状态,设备分配,缓冲功能,设备独立性功能。7.文件管理逻辑结构,物理结构,存取方式,方便的操作,目录管理,安全,可靠性,共享等。/表示目录节点表示文件节点8.1.1操作系统9计算机科学导论8.安全随着计算机技术应用的普及以及与信息技术的不断结合、发展。信息安全本身已经成为一门重要的学科,引起了广泛的关注和研究。9.shell脚本shell实际上是操作系统的命令解释器,同时,它也是命令级的用户接口。同时其本身也是一种高级编程语言,它有变量和程序控制结构。系统管理员通常编写一些shell脚本来方便地对系统进行管理和维护,通过执行shell脚本程序,用户能够简单并且迅速地开始一系列复杂的任务或者执行一个重复的程序。8.1.1操作系统10计算机科学导论8.1.2操作系统的基本组成现代操作系统一般由用户接口、进程管理、存储管理、I/O设备管理、文件管理5个部分组成,如图所示。操作系统进程管理输入/输出设备管理文件管理用户接口存储管理11计算机科学导论1.用户接口操作系统通常都提供两类用户接口:命令接口(如shell命令)和程序接口(也称系统调用,大多数系统以函数形式提供给用户使用)。编程人员通过系统调用请求系统资源,它就像是一个黑匣子,向用户屏蔽了系统内部的控制。系统调用的过程如图所示。用户空间核心空间陷入…系统调用…8.1.2操作系统的基本组成12计算机科学导论2.进程管理(1)进程的描述。进程是程序的一次执行,它是一个动态的概念。(2)进程的状态及转换。进程一般有3个最基本的状态:运行态、就绪态、阻塞态(3)进程控制和调度。可以暂且将进程调度看作是处理机调度。运行态就绪态阻塞态8.1.2操作系统的基本组成13计算机科学导论(4)进程间通信。•进程与进程之间往往有着不同的联系,通常把这些联系划分为两类:•进程之间需要共享系统内的某些资源而引发的进程之间的约束。(例如,有两个进程都要使用系统打印机资源,如果打印机先分配给了其中一个进程,另外一个进程就只有等待前面那个进程释放该资源•进程间的联系是运行在系统内的进程,它们需要互相发送消息、相互等待、相互合作,即进程之间有着直接的相互影响。(例如,有一批数据需要按顺序分别计算并打印输出,两个进程—计算进程和打印进程共同完成)8.1.2操作系统的基本组成14计算机科学导论3.存储管理存储管理方式主要有单一分区、多分区、分页、分段及段页等多种不同的方式。(1)单一分区存储管理方式整个内存除了操作系统外,其余的内存空间只分配给一个进程使用。(2)多分区存储管理方式。多分区存储管理方式将内存除操作系统之外的空间划分成多个分区。进程1用户进程进程2进程3…操作系统操作系统(a)单一分区(b)多分区8.1.2操作系统的基本组成15计算机科学导论(3)分页存储管理方式动态分区存储管理虽然可以在一定程度上实现虚拟存储,但是,仍然有它的局限性:有时需要在内、外存之间交换多个进程,这一操作系统开销非常大。另外,可用分区的大小仍然会限制一个进程能否运行。321进程空间物理空间00高地址………8.1.2操作系统的基本组成16计算机科学导论(4)分段存储管理方式这种管理方式将进程的虚空间按照逻辑性来加以划分,可以分为程序段、数据段、堆栈段等,然后利用动态分区存储管理的方式进行内存管理,只不过内存分配的对象不再是整个进程,而是进程的一个段。(5)段页存储管理方式段页式的存储管理方式将分页与分段两种方式相结合。8.1.2操作系统的基本组成17计算机科学导论5.输入/输出设备管理(1)中断。当设备完成了输入/输出后,会通过中断控制器向CPU发出硬件中断,这些硬件中断都事先有固定的编号,称为中断号。每个硬件中断都有相应的中断服务程序。CPU中断响应中断控制器中断请求…外设产生中断总线8.1.2操作系统的基本组成18计算机科学导论(2)输入/输出软件。输入/输出软件通常组织成如图所示的层次结构。①中断处理程序。②设备驱动程序。③设备无关软件层。④用户层输入/输出软件。设备驱动程序中断处理程序设备无关软件层用户层输入/输出软件8.1.2操作系统的基本组成19计算机科学导论5.文件管理文件是保存信息的一种主要形式,文件的命名、组织、操作、逻辑结构、存取方式、物理结构、目录管理等都是文件管理的内容。通常把操作系统中进行文件管理的部分归为文件系统。8.1.2操作系统的基本组成20计算机科学导论8.1.3操作系统在计算机系统中的地位计算机系统通常可以划分成如图所示的层次结构。第一层为裸机硬件,第二层到第四层都可以称为软件层,其中,第二层和第三层为系统软件层,第二层即为操作系统层。物理设备操作系统编译程序/编辑程序/DBMS银行应用系统飞机票预定系统Web浏览器21计算机科学导论8.1.4操作系统的启动操作系统的启动是由引导程序来完成,这个程序通常放在基本输入/输出系统中。操作系统控制机器的所有活动。具体的启动步骤如下:(1)系统加电,处理器复位,查找含有计算机启动指令的BIOS。(2)BIOS执行加电自检,检测系统各个部件,同时显示检测信息。22计算机科学导论8.1.4操作系统的启动一般情况下,可以根据电脑启动时发出的声音判定相关的故障,如:1短——系统正常启动。2短——常规错误。1长1短——RAM或主板出错。1长2短——显示器或显示卡错误。1长3短——键盘控制器错误。1长9短——主板FlashRAM或EPROM错误,BIOS损坏。不断地响(长声)——内存条未插紧或损坏。不停地响——电源、显示器未和显卡连接好。重复短响——电源有问题。无声音无显示——电源有问题。23计算机科学导论(3)将自检结果与CMOS(ComplementaryMetal-Oxide-Semiconductor,一种特殊的只读存储器,其中存储了计算机的配置信息)中系统配置信息相比较,如果有问题,系统会做出相应的处理。(4)如果自检成功,BIOS就会到外存中读取分区引导块进入内存,并执行引导块程序对操作系统核心进行引导,操作系统核心进入内存后即接管系统,继续系统的初始化等工作。(5)操作系统根据系统配置信息,执行并启动一些系统程序,完成整个系统的启动。8.1.4操作系统的启动24计算机科学导论8.2操作系统的发展计算机硬件发展与计算机应用相结合的角度,通常把操作系统的发展划分为手工操作、批处理系统、多道程序系统、现代操作系统等4个阶段。25计算机科学导论8.2.1手工操作阶段主要元器件是电子管,CPU运算速度比较慢(只有几千次/s)。系统资源利用率低。计算机系统的可靠性也低。卡片机的出现,程序可以直接写在卡片上,由读卡机读入计算机,从而替代了插件板的方式,但是仍然存在许多人工操作。输入机计算机输出机纸带、卡片程序、数据结果用户26计算机科学导论8.2.2批处理系统阶段20世纪50年代中期,出现了晶体管元器件CPU的处理速度得到了提高计算机系统的可靠性提高出现了一些早期的程序设计语言,如汇编语言、FORTRAN语言。提出了批处理系统输入机磁带输出机纸带、卡片作业结果用户主机作业27计算机科学导论8.2.3多道程序系统阶段20世纪60年代出现了集成电路制造工艺CPU的处理速度有了更大提高系统的性价比有了很大的提高人们提出了多道程序设计技术基本思想:将内存划分为几个部分,每一部分称为一个内存分区,每个分区中存放不同的作业,如图所示这样CPU的利用率可以得到很大程度的提高。28计算机科学导论8.2.3多道程序系统阶段内存分区作业2作业1作业3操作系统29计算机科学导论8.2.4现代操作系统阶段20世纪80年代起,大规模集成电路得到了进一步发展,硬件成本不断降低计算机系统的应用已经又从商业领域扩展到了普通的企业及个人。具有图形用户界面出现了网络操作系统、多处理机系统、分布式操作系统,嵌入式操作系统也飞速发展。30计算机科学导论8.2.4现代操作系统阶段DOS是磁盘操作系统(DiskOperatingSystem)英文的缩写,是个人计算机上的一类操作系统。1981年,微软公司花费了5万美元购买了西雅图电脑产品公司的一名24岁程序员蒂姆·帕特森(TimPaterson)花费了四个月时间编写出的86-DOS操作系统,更名为MS-DOS并且改进后作为了IBM发布的第一台个人计算机操作系统。31计算机科学导论8