《操作系统》课件-11.ppt
操作系统 人民邮电出版社 宗大华,宗涛 编著主讲:曹均阔电话:18976789676邮箱:1课程计划o学时n54理论+18实验o考核n考试(80%)+考评(20%)n部分考试题目上课讲解,做好笔记o考勤n不许累计旷课3次n回答问题列入平时成绩2参考教材o现代操作系统 陈向群 等译 机械工业出版社UNIX操作系统教程 张红光 机械工业出版社计算机操作系统教程 张尧学 史美林 清华大学出版社计算机操作系统教程 周长林 左万历 高等教育出版社操作系统基础 屠立德 屠祁 清华大学出版社操作系统教程 孟庆昌 西安电子科技大学出版社 计算机操作系统 汤子赢 西安电子科技大学出版社操作系统教程 王素华 人民邮电出版社3第1章 操作系统概述1.计算机系统2.操作系统的定义与功能3.操作系统的历史、发展与分类4今日提纲o计算机系统组成o操作系统的地位o为什么学习操作系统o操作系统的定义与功能51.1 计算机系统计算机系统运算器控制器存储器输入设备输出设备CPU主 机外部设备.1.计算机系统计算机系统一个完整的计算机系统由硬件系统和软件系统两个部分组成。2.硬件硬件运算器控制器存储器输入设备输出设备3.软件软件程序与程序相关的文档61.1 计算机系统计算机系统计算机系统计算机系统 计算机硬件及固件计算机硬件及固件计算机软件计算机软件系统软件系统软件应用软件应用软件操作系统操作系统编译软件、编辑软件编译软件、编辑软件游戏游戏办公自动化,等等办公自动化,等等71.2 操作系统的定义与功能o裸机n把未配置任何软件的计算机称为“裸机”。o虚拟机n操作系统为用户提供了一台功能经过扩展了机器o操作系统n控制和管理计算机硬件和软件资源,合理地组织计算机工作流程以及方便用户使用计算机的大型软件(p4.l4)81.2 操作系统的定义与功能o操作系统别称监控(督)程序(系统)(Monitor)执行系统(程序)(Executive System)控制系统(程序)(Control System program)管理程序(Supervisor,Supervisory System)核心程序(Kernel)操作系统(Operating System)91.2 操作系统的定义与功能o为什么学习操作系统为什么学习操作系统n设计操作系统设计操作系统 或者或者 修改现有的系统修改现有的系统p存在大量操作系统存在大量操作系统 如嵌入式系统如嵌入式系统n 加深对使用的加深对使用的OS的理解,有利于深入编程的理解,有利于深入编程p用户为了开发应用程序必须与操作系统打交道用户为了开发应用程序必须与操作系统打交道p编程时借鉴操作系统的设计思想和算法编程时借鉴操作系统的设计思想和算法p操作系统中所用的许多概念和技巧可以推广应用操作系统中所用的许多概念和技巧可以推广应用到其他领域到其他领域n选择购买操作系统选择购买操作系统n涉及到计算机科学的很多领域涉及到计算机科学的很多领域p硬件,软件,程序设计,数据结构,算法,网络等等101.2 操作系统的定义与功能o操作系统地位111.2 操作系统的定义与功能o操作系统目标目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重。通常在计算机硬件上配置的OS,其目标有以下几点:1.方便性2.有效性 3.可扩充性 4.开放性121.2 操作系统的定义与功能o操作系统基本特性n并发并发(Cooccurrence)n共享共享(Sharing)n虚拟虚拟(Virtual)n异步性异步性(Asynchronism)131.2 操作系统的定义与功能o并发性n并行性和并发性是既相似又有区别的两个概念,并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。n在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。n倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可同时执行。141.2 操作系统的定义与功能o共享n所谓共享是指系统中的资源可供内存中多个并发执行的进程共同使用。目前主要有以下两种资源共享方式:互斥共享和同时共享。n并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件。一方面,资源共享是以程序的并发执行为条件的,若系统不允许程序并发执行,自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效管理,也必然影响到程序并发执行的程度,甚至根本无法并发执行。151.2 操作系统的定义与功能o虚拟虚拟n操作系统中的所谓“虚拟”,是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。物理实体(前者)是实的,即实际存在的;而后者是虚的,是用户感觉上的东西。相应地,用于实现虚拟的技术,称为虚拟技术。在OS中利用了多种虚拟技术,分别用来实现虚拟处理机、虚拟内存、虚拟外部设备和虚拟信道等。161.2 操作系统的定义与功能o异步性异步性n由于资源等因素的限制,使进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。n内存中的每个进程在何时能获得处理机运行,何时又因提出某种资源请求而暂停,以及进程以怎样的速度向前推进,每道程序总共需多少时间才能完成等等,都是不可预知的。n这样,很可能是先进入内存的作业后完成;而后进入内存的作业先完成。或者说,进程是以人们不可预知的速度向前推进,此即进程的异步性。171.2 操作系统的定义与功能o操作系统的作用操作系统的作用n作为用户与计算机硬件系统之间的接口作为用户与计算机硬件系统之间的接口n作为计算机系统资源的管理者作为计算机系统资源的管理者n用作扩充机器用作扩充机器181.2 操作系统的定义与功能OS作为接口的示意图 191.2 操作系统的定义与功能o命令方式n这是指由OS提供了一组联机命令(语言),用户可通过键盘输入有关命令,来直接操纵计算机系统。o系统调用方式n提供了一组系统调用,用户可在自己的应用程序中通过相应的系统调用,来操纵计算机。o图形、窗口方式n用户通过屏幕上的窗口和图标来操纵计算机系统和运行自己的程序。201.2 操作系统的定义与功能o计算机系统资源的管理者计算机系统资源的管理者n处理机管理,用于分配和控制处理机;n存储器管理,主要负责内存的分配与回收;nI/O设备管理,负责I/O设备的分配与操纵;n文件管理,负责文件的存取、共享和保护。可见,OS确是计算机系统资源的管理者。211.2 操作系统的定义与功能o扩充机器扩充机器n对于一台完全无软件的计算机系统(即裸机),即使其功能再强,也必定是难于使用的。n通常把覆盖了软件的机器称为扩充机器或虚机器。此时,用户所看到的是台功能更强的虚机器。221.2 操作系统的定义与功能o处理机管理功能处理机管理功能n进程控制进程控制n进程同步进程同步n进程通信进程通信n进程调度进程调度231.2 操作系统的定义与功能o进程控制进程控制n要使作业运行,必须先为它创建一个或几个进程,并为之分配必要的资源。n当进程运行结束时,立即撤消该进程,以便能及时回收该进程所占用的各类资源。n进程控制的主要功能是为作业创建进程、撤消已结束的进程,以及控制进程在运行过程中的状态转换。n在现代OS中,进程控制还应具有为一个进程创建若干个线程的功能和撤消(终止)已完成任务的线程的功能。241.2 操作系统的定义与功能o进程同步进程同步n为使多个进程能有条不紊地运行,系统中必须设置进程同步机制。进程同步的主要任务是为多个进程(含线程)的运行进行协调。有两种协调方式:进程互斥方式,这是指诸进程(线程)在对临界资源进行访问时,应采用互斥方式;进程同步方式,指在相互合作去完成共同任务的诸进程(线程)间,由同步机构对它们的执行次序加以协调。n为了实现进程同步,最简单的进行进程互斥,为每一个临界资源配置一把锁W,当锁打开时,进程(线程)可以对该临界资源进行访问;而当锁关上时,则禁止进程(线程)访问该临界资源。251.2 操作系统的定义与功能o进程通信进程通信n为了加速应用程序的运行,应在系统中建立多个进程,由这些进程相互合作去完成一个共同的任务。n而这些进程之间往往需要交换信息。例如,有三个相互合作的进程,它们是输入进程、计算进程和打印进程。输入进程负责将数据传送给计算进程;计算进程进行计算,并把结果传送给打印进程;最后,由打印进程把结果打印出来。n当相互合作的进程处于同一计算机系统时,通常在它们之前是采用直接通信方式,即由源进程利用发送命令直接将消息(message)挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出消息。261.2 操作系统的定义与功能o调度调度n在后备队列上等待的每个作业,都要调度才能执行。n在传统操作系统中,包括作业调度和进程调度两步。n作业调度的基本任务,是从后备队列中按照一定的算法,选择出若干个作业,为它们分配其必需的资源(首先是分配内存)。并按照一定的算法插入就绪队列。n而进程调度的任务,则是从进程的就绪队列中选出一新进程,把处理机分配给它,并为它设置运行现场,使进程投入执行。n值得提出的是,在多线程OS中,通常是把线程作为独立运行和分配处理机的基本单位271.2 操作系统的定义与功能o存储器管理功能存储器管理功能n内存分配内存分配n内存保护内存保护n地址映射地址映射n内存扩充内存扩充281.2 操作系统的定义与功能o内存分配内存分配nOS在实现内存分配时,可采取静态和动态两种方式。n在静态分配方式中,每个作业的内存空间是在作业装入时确定的;在作业装入后的整个运行期间,不允许该作业再申请新的内存空间,也不允许作业在内存中“移动”;n在动态分配方式中,每个作业所要求的基本内存空间,也是在装入时确定的,但允许作业在运行过程中,继续申请新的附加内存空间,以适应程序和数据的动态增涨,也允许作业在内存中“移动”。291.2 操作系统的定义与功能o内存分配内存分配n内存分配数据结构,该结构用于记录内存空间的使用情况,作为内存分配的依据;n内存分配功能,系统按照一定的内存分配算法,为用户程序分配内存空间;n内存回收功能,系统对于用户不再需要的内存,通过用户的释放请求,去完成系统的回收功能。301.2 操作系统的定义与功能o内存保护内存保护n内存保护的主要任务,是确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰。n一种比较简单的内存保护机制,是设置两个界限寄存器,系统须对每条指令所要访问的地址进行检查,如果发生越界,便发出越界中断请求,以停止该程序的执行。n如果检查完全用软件实现,则每执行一条指令,便须增加若干条指令进行检查,这将显著降低程序的运行速度。因此,越界检查都由硬件实现。当然,还须与软件配合来完成311.2 操作系统的定义与功能o地址映射地址映射n应用程序经编译后通常会形成若干个目标程序,这些程序地址都是从“0”开始,其它地址都是相对于起始地址计算的;由这些地址所形成的地址范围称为“地址空间”,称为“逻辑地址”或“相对地址”。此外,由内存中所限定的地址范围称为“内存空间”,称为“物理地址”。n在多道程序环境下,每道程序不可能都从“0”地址开始装入(内存),这就致使地址空间内的逻辑地址和内存空间中的物理地址不相一致,存储器管理必须提供地址映射功能,以将逻辑地址转换为与之对应的物理地址。321.2 操作系统的定义与功能o内存扩充内存扩充n存储器管理中的内存扩充任务,并非是去扩大物理内存的容量。n借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户感觉内存容量比实际容量大或者让更多的用户程序能并发运行。n为了能在逻辑上扩充内存,系统必须具有内存扩充机制,用于实现下述各功能:p请求调入功能p置换功能331.2 操作系统的定义与功能o设备管理功能设备管理功能n设备管理用于管理计算机系统中所有的外围设备,而设备管理的主要任务是,完成用户进程提出的I/O请求;为用户进程分配其所需的I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;方便用户使用I/O设备。为实现上述任务,具体包括:n缓冲管理n设备分配n设备处理n虚拟设备341.2 操作系统的定义与功能o缓冲管理nCPU运行的高速性和I/O低速性间的矛盾,严重降低了CPU的利用率。n如果在I/O设备和CPU之间引入缓冲,则可有效地缓和CPU和I/O设备速度不匹配的矛盾,提高CPU的利用率,进而提高系统吞吐量。n最常见的缓冲区机制有单缓冲机制、能实现双向同时传送数据的双缓冲机制,以及能供多个设备同时使用的公用缓冲池机制。351.2 操作系统的定义与功能o设备分配设备分配n设备分配的基本任务,是根据用户请求、系统资源情况以及设备分配策略,为之分配。如果在I/O设备和CPU之间,还存在着设备控制器和I/O通道,还须为分配相应的控制器和通道。n系统中应设置设备控制表、控制器控制表等数据结构,用于记录设备及控制器状态。据这些表格可以了解指定设备当前是否可用,是否忙碌,以供分配参考。n在进行设备分配时,应针对不同的设备类型而采用不同的设备分配方式。对于独占设备(临界资源)的分配,还应考虑到该设备被分配出去后,系统是否安全。n设备使用完后,还应立即由系统回收。361.2 操作系统的定义与功能o设备处理设备处理n设备处理程序又称为设备驱动程序。其基本任务是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。n处理过程:设备处理程序首先检查I/O请求的合法性,了解设备状态是否是空闲的,了解有关的传递参数及工作方式。然后,便向设备控制器发出I/O命令,启动I/O设备去完成指定的I/O操作。n设备驱动程序还应能及时响应由控制器发来的中断请求,并根据中断请求类型,调用相应的中断处理程序进行处理。371.2 操作系统的定义与功能o文件管理功能文件管理功能n文件存储空间的管理文件存储空间的管理n目录管理目录管理n文件的读文件的读/写管理和保护写管理和保护381.2 操作系统的定义与功能o文件存储空间的管理文件存储空间的管理n其主要任务是为每个文件分配必要的外存空间,提高外存利用率,并能有助于提高文件系统的运行速度。n系统应设置相应的数据结构,用于记录文件存储空间的使用情况,以供分配存储空间时参考n系统具有对存储空间进行分配和回收的功能。n为了提高存储空间的利用率,减少外存零头,通常以盘块为基本分配单位。盘块的大小通常为512 B8 KB。391.2 操作系统的定义与功能o目录管理目录管理n为了使用户能方便地在外存上找到自己所需的文件,通常由系统为每个文件建立一个目录项。包括文件名、文件属性、文件在磁盘上的物理位置等。n若干个目录项又可构成一个目录文件。n目录管理的主要任务,是为每个文件建立其目录项,并加以有效的组织,以实现方便的按名存取。n目录管理还应能实现文件共享。n提供快速目录查询手段,提高对文件检索速度。401.2 操作系统的定义与功能o文件的读文件的读/写管理和保护写管理和保护n文件的读文件的读/写管理写管理是根据用户的请求,从外存中读取数据;或将数据写入外存。在进行文件读(写)时,系统先根据用户给出的文件名,去检索文件目录,从中获得文件在外存中的位置。然后,利用文件读(写)指针,对文件进行读(写)。n文件保护。文件保护。防止未经核准的用户存取文件;防止冒名顶替存取文件;防止以不正确的方式使用文件。411.2 操作系统的定义与功能o操作系统能做什么?看一个简单例子#include int main(int argc,char*argv)puts(hello world);return 0;421.2 操作系统的定义与功能o用户告诉操作系统执行用户告诉操作系统执行hello程序程序o操作系统找到该程序,检查其类型操作系统找到该程序,检查其类型o检查程序首部,找出正文和数据的地址检查程序首部,找出正文和数据的地址o文件系统找到第一个磁盘块文件系统找到第一个磁盘块o父进程需要创建一个新的子进程,执行父进程需要创建一个新的子进程,执行hello程序程序o操作系统需要将执行文件映射到进程结构操作系统需要将执行文件映射到进程结构o操作系统设置操作系统设置CPU上下文环境,并跳到程序开始处上下文环境,并跳到程序开始处o程序的第一条指令执行,失败,缺页中断发生程序的第一条指令执行,失败,缺页中断发生o操作系统分配一页内存,并将代码从磁盘读入,继续操作系统分配一页内存,并将代码从磁盘读入,继续执行执行o更多的缺页中断,读入更多的页面更多的缺页中断,读入更多的页面o程序执行系统调用,在文件描述符中写一字符串程序执行系统调用,在文件描述符中写一字符串431.2 操作系统的定义与功能o操作系统检查字符串的位置是否正确操作系统检查字符串的位置是否正确o操作系统找到字符串被送往的设备操作系统找到字符串被送往的设备o设备是一个伪终端,由一个进程控制设备是一个伪终端,由一个进程控制o操作系统将字符串送给该进程操作系统将字符串送给该进程o该进程告诉窗口系统它要显示字符串该进程告诉窗口系统它要显示字符串o窗口系统确定这是一个合法的操作,然后将字符串转窗口系统确定这是一个合法的操作,然后将字符串转换成像素换成像素o窗口系统将像素写入存储映像区窗口系统将像素写入存储映像区o视频硬件将像素表示转换成一组模拟信号控制显示器视频硬件将像素表示转换成一组模拟信号控制显示器o显示器发射电子束显示器发射电子束o在屏幕上看到在屏幕上看到hello world44