第07章操作系统-2-本章内容安排引言演化组成部分主流操作系统-3-计算机系统-4-什么是操作系统OS?操作系统是介于计算机硬件和用户(程序和人)之间的接口;操作系统是一种使得其它程序更加方便有效执行的程序(或一组程序)。操作系统作为通用管理程序,管理着计算机系统中的每个部件的活动,确保计算机系统中的硬件和软件资源能够更加有效地使用;当出现资源使用冲突时,操作系统应能够及时处理排除冲突。-5-操作系统的目标操作系统是计算机硬件(程序和人)的接口,它使得其它程序更加方便有效地执行,并能方便地对计算机硬件和软件资源进行存取。两个设计目标:1)有效地使用硬件;2)容易地使用资源。-6-自举过程操作系统为其它程序提供支持,如装载程序,但其自身是如何装入内存并启动?方案一:使用ROM存储操作系统,可以将程序计数器初始为指向ROM,加电后启动系统并执行。问题:需要很大的ROM,而且只能被操作系统使用,占用较大的内存空间,效率低。方案二:只在ROM中存放一小部分程序(自举程序),加电后执行该程序,该程序的职责是负责将操作系统装入RAM中,载入完成后修改程序计数器并执行真正的操作系统部分。-7-自举过程-8-本章内容安排引言演化组成部分主流操作系统-9-1、(单道)批处理系统设计于上世纪50年代,为了控制大型计算机。使用穿孔卡片输入数据,用行式打印机输出结果,使用磁带作为辅助存储介质。作业:每个执行的程序称为作业。执行程序时,通过穿孔卡片将程序和数据输入计算机,并向控制器发送作业请求。穿孔卡片由操作员进行处理,程序员对系统没有控制和交互。保证计算机所有资源从一个作业转换到另一个计算机-10-2、分时系统多道程序:将多个作业同时装入存储器,允许多个作业“同时”执行。分时技术:资源可以被多个作业共享,每个作业分到一段时间轮流使用资源。采用分时技术的多道程序极大地改进了计算机使用效率。多道和分时对操作系统提出更高要求调度:为不同的程序分配资源并决定哪个程序什么时候使用哪一种资源。特点分时系统中,用户直接于系统进行交互,而不用通过操作员。进程的概念:在存储器中等待资源的程序。-11-分时操作系统交互性:用户与系统进行人机对话。多路性:多用户同时在各自终端上使用同一CPU。独立性:用户可彼此独立操作,互不干扰,互不混淆。及时性:用户在短时间内可得到系统的及时回答。影响响应时间的因素:终端数目多少、时间片的大小、信息交换量、信息交换速度网络操作系统:是网络上各计算机能方便而有效地共享网络资源,为网络用户提供所需的各种服务的软件和有关规程的集合。网络操作系统与通常的操作系统有所不同,它除了应具有通常操作系统应具有的处理机管理、存储器管理、设备管理和文件管理外,还应具有以下两大功能:(1)提供高效、可靠的网络通信能力;(2)提供多种网络服务功能,如:远程作业录入并进行处理的服务功能;文件转输服务功能;电子邮件服务功能;远程打印服务功能-12-3、个人系统适合个人计算机的操作系统,属于单用户操作系统。如80年代的DOS系统。-13-4、并行系统人们对更快、更高效的需求催生了并行系统在同一计算机中安装多个CPU,每个CPU可以执行一个程序或一个程序的一部分,可达到更高的速度和效率。多个任务可以并行处理而不再是利用“分时技术”的串行处理。-14-5、分布式系统随着网络化和互联网的发展,扩大了操作系统的内涵,一个以往必须在一台计算机上运行的作业现在可以由远隔千里的多台计算机共同完成。程序可以在一台计算机上运行一部分,而在另一台计算机上运行另一部分,它们通过互联网连接数据和资源也可以分布在联网的不同计算机中。-15-6、实时系统实时系统指在特定时间限制内完成任务。实时系统用在实时应用程序中,这些应用程序监控、响应或控制外部过程或环境。实时系统常应用在交通控制、病人监控或军事控制系统中等领域。-16-本章内容安排引言演化组成部分主流操作系统-17-操作系统组成部分-18-1、用户界面每个操作系统都有用户界面,用户界面是用来接收用户(进程)的输入并向操作系统解释这些请求的程序。一些操作系统的用户界面,如UNIX,被称为命令解释程序;另外一些操作系统的用户界面被称为窗口,提供由菜单驱动的图形界面GUI。-19-2、内存管理器存储管理是操作系统的一个重要职责,运行的程序和数据必须要加载到内存中;内存管理器要合理管理内存,以提高利用率和避免“内存不足”的错误。单道程序多道程序-20-单道程序一小部分内存用来装载操作系统,大多数内存专用于装载单一的程序。整个程序被装入内存运行,运行结束后由下一个程序取代。问题:大程序无法加载;单道执行,一个程序运行时,其它程序不能运行;CPU等待I/O操作,CPU利用率低。-21-多道程序同一时刻可以装入多个程序并同时执行,CPU轮流为它们服务。多个程序在内存中并存。-22-多道程序存储管理的分类-23-分区调度分区调度:内存预先被划分为不定长的若干分区,每个分区保存一个程序。CPU为各程序交替服务,当某个程序执行I/O操作或分配的时限达到后切换到另一个程序。每个程序完全载入内存,占用连续的地址。分区提高了CPU利用率。问题:分区大小预先决定,难以决断;随着程序的运行、退出,空闲区会增加;对空闲区的管理将增加系统的负担。-24-分区调度-25-分页调度分页调度:内存被分成大小相等的如干部分——帧,程序被划分为大小相等的部分——页。页和帧的大小通常相等。加载程序时,页被载入到帧中,程序可以占用内存中不连续的帧。进一步提高内存的利用率,避免了出现大的空闲区。问题要求把程序整体载入内存中,大程序无法加载。-26-分页调度-27-请求分页调度分页调度不需要把程序装载在连续的内存中,但需要加载整个程序。在请求分页调度中,内存管理器为程序分配部分帧(可以少于程序总页数),将当前需要的页加载到这些帧中,随着程序的执行,采用交换技术,淘汰不需要的页,把需要的页依次载入内存中。可加载执行大程序,甚至加载比内存还大的程序。-28-请求分页调度-29-请求分段调度分段调度:程序按模块划分为大小不等的段,段是从程序员的观点来划分的,每个段都是程序中的一个有机部分。请求分段调度:事先只加载部分段,需要的时候,再将有用的段载入内存覆盖不再有用的段。-30-请求分段调度-31-请求分页和分段调度结合请求分页和请求分段的优点,进一步提高系统效率。请求分段采用与分区调度类似的内存分配方法,由于段的大小不同,会产生空闲区。而单纯的分页,没有考虑模块的划分。请求分页和分段调度中,先将程序按模块分段,将每个段再细分为页,每个页再装入到不连续的帧中-32-虚拟内存在请求分页和请求分段调度中,一部分程序驻留内存,一部分则放在磁盘中。由于采用交换技术,虽然只有部分程序加载到内存中,但用户感觉到整个程序“已经”加载到内存中运行,这个感觉上的更大的内存就是虚拟内存。当今几乎所有的操作系统都使用了虚拟内存技术。-33-虚拟内存-34-3、进程管理器程序:程序是静态的概念,是由程序员编写的一组稳定的指令,存储在磁盘上,可能会也可能不会成为作业。作业:从被选中执行,到运行结束并再次成为程序的过程中的程序称为作业。进程:进程是执行中的程序,进程是驻留在内存中的作业,是从众多等待作业中选取出来并装入内存的作业。-35-状态图-36-状态变迁保持状态:程序被操作系统选中,程序→作业。就绪状态:作业全部或部分载入内存后,转为就绪状态,作业→进程。运行状态:轮到CPU执行该进程。运行的进程遇到输入/输出操作,变为等待状态;运行的进程分配的时间片用完,变为就绪状态;进程执行完成,变为终止状态。等待状态:输入/输出操作完成,变为就绪状态。-37-调度器调度器管理作业或进程的状态变迁。作业调度器:将作业从保持状态转入就绪状态,或从运行状态转入终止状态。作业调度负责创建并终止进程。进程调度器:调度进程在就绪、运行、等待状态之间转换。-38-作业调度器-39-进程调度器-40-队列在多道系统中,多个进程或作业会相互竞争计算机资源。如当一个进程正在使用CPU时,其它进程必须等待直到CPU空闲。操作系统使用作业控制块和进程控制块描述作业和进程信息,操作系统将等待同一种资源的作业或进程的控制块存储到队列中。队列代表了等候某种资源的进程或作业序列,进程管理器可以用不同的策略从队列中选择下一个占有资源的作业或进程。作业队列、就绪队列、I/O队列-41-队列-42-进程同步由于资源可以被多个用户(进程)同时使用,有可能会产生死锁和饥饿状态。下面是死锁的示例。两个小孩在一起玩耍,一个在玩皮球,另一个玩自动步枪,如果这两个小孩都要对方手中的玩具,而又不肯先放掉自己拿着的玩具,这时就发生了僵持局面。-43-死锁示例当操作系统没有对进程的资源进行限制时将会发生死锁。-44-死锁示例-45-死锁的必要条件当操作系统对进程的资源请求不做任何限制时,会发生死锁。死锁的四个必要条件:互斥:一个资源只能被一个进程占有;资源占有:进程请求得到一个资源后,在获得其它资源之前一直占有该资源;抢先:操作系统不能临时对资源重新分配,进程已得到的资源不能被剥夺;循环等待:资源和进程形成一个请求环。-46-饿死当操作系统对进程分配资源有太多限制的时候,可能会导致进程长期得不到资源的现象,此现象被称为饿死。例如,规定一个进程只有得到所请求的全部资源后才能执行,可能会产生饿死。-47-饿死示例-48-饿死示例-哲学家就餐问题-49-设备管理器系统中输入/输出设备速度相对CPU和内存低很多,设备之间差异大,设备管理器负责有效使用它们。不停监视所有输入/输出设备的状态,为进程分配设备;为每一个设备维护一个队列,维护等候进程的信息;控制用于访问输入/输出设备的不同策略。-50-文件管理器操作系统使用文件管理器控制对文件的访问。控制对文件的访问;管理对文件的创建、删除和修改;为文件命名;管理文件的存储;负责归档和备份。-51-本章内容安排引言演化组成部分主流操作系统-52-UNIXUNIX是多用户、多道程序、可移植的操作系统,它被设计来方便编程、文本处理、通信。构成:内核、命令解释器、标准工具、应用程序内核:操作系统最基本部分,内存、进程、设备、文件管理器命令解释器:用户可见部分,用户接口工具:是UNIX标准程序,为用户提供支持过程应用程序:非标准部分的扩展程序UNIX,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、DennisRitchie和DouglasMcIlroy于1969年在AT&T的贝尔实验室开发。-53-UNIX结构-54-Linux组成内核系统库:一组被应用程序使用的函数,用于与内核交互系统工具:使用系统库提供的服务,执行管理任务网络功能支持标准的因特网协议,支持三层:套接字接口、协议驱动和网络设备驱动;安全提供了传统上为UNIX定义的安全特性。-55-WindowsNT/2000/XP(experience)设计目标可扩展性:多层的模块化体系结构可移植性:用C或C++语言编写,独立于所运行计算机的机器语言可靠性:使用NT文件系统兼容性:支持早期或其它版本操作系统下的程序性能:运行在顶层的应用程序具有快速响应时间-56-体系结构根据在同一时间使用计算机用户的多少,操作系统可分为单用户操作系统和多用户操作系统。单用户操作系统是指一台计算机在同一时间只能由一个用户使用,一个用户独自享用系统的全部硬件和软件资源,而如果在同一时间允许多个用户同时使用计算机,则称为多用户操作系统。另外,如果用户在同一时间可以运行多个应用程序(每个应用程序被称作一个任务),则这样的操作系统被称为多任务操作系统。如果一个用户在