《操作系统原理(共24页).docx》由会员分享,可在线阅读,更多相关《操作系统原理(共24页).docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上全国计算机等级考试四级教程操作系统原理2017版第一章 操作系统概论1、计算机系统计算机系统是一种可以按照用户的饿要求接收和存储信息,自动进行数据处理并输出结果信息的系统。计算机系统包括硬件(子)系统、软件(子)系统。硬件系统是计算机系统赖以工作的实体;软件系统是保障计算机系统按照用户指定的要求协商工作。计算机系统的资源也包括:硬件资源和软件资源。硬件系统:中央处理器(CPU)、内存储器、外存储器(硬盘、磁带等)以及各种类型的输入/输出设备(键盘、鼠标、显示器、打印机等)软件系统:各种程序和数据2、操作系统操作系统是集中了资源管理能力和控制程序执行能力的一种软件。能够
2、有效地组织和管理计算机系统中的硬件及软件资源,合理地组织计算机的工作流程,控制程序的执行,并向用户提供各种服务,使用户能够灵活、方便、有效地使用计算机,并使得整个计算机系统能够高效地运行。操作系统的任务:一是组织和管理计算机系统中的硬件及软件资源。二是想用户提供各种服务功能。一方面向程序开发和设计人员提供高效的程序设计借口,另一方面想使用计算机系统的用户提供接口,使用户能够灵活、方便、有效的使用计算机。3、操作系统的特征(1)并发性。计算机系统中同时存在若干个运行着的程序。“并发性”体现在两个方面:用户程序与用户程序之间;用户程序与操作系统之间。宏观角度并发,微观角度不一定是并发的,例如在单处
3、理器环境下,这些程序实际是交替在中央处理器上运行。(2)共享性。指操作系统程序与多个用户程序公用系统中的各种资源。一般有两种形式:互斥共享和同时共享。互斥共享是在一段特定的时间内只能由某一个用户程序使用。同时共享是在同一时间段内可以被多个程序同时访问。(3)随机性。操作系统的运行是在一种随机的环境下进行的。操作系统正处于什么状态是无法确切的知道的。4、操作系统的功能操作系统的功能主要可以分为进程管理(处理器管理)、存储管理、文件管理、作业管理和设备管理。(1)进程管理。实质是对中央处理器进行管理,主要包括进程控制、进程同步、进程间通信、进程调度等。进程控制。主要任务就是创建进程、撤销结束的进程
4、、控制进程运行时的各种状态转换。进程同步。多个进程的执行是并发的,他们以异步方式运行,OS需要提供进程同步机制,以协调进程的执行进程间通信。是协作的进程之间相互交换数据和消息的手段调度。通常包括进程调度、线程调度、作业调度等。(2)存储管理。管理计算机内存的资源内存的分配与回收。当多个程序共享有限的内存资源时,如何为多个程序分配有限的内存空间;存储保护。存放在内存中的多个程序和数据应该彼此隔离、互不侵扰;内存扩充。将内存和外存结合起来管理,为用户提供一个比实际内存大得多的虚拟存储器。(3)文件管理。在计算机系统中的信息资源是以文件的形式存放在外存储器上。文件管理的任务是有效地支持文件操作,解决
5、文件的共享、保密和保护问题,使用户方便、安全地访问文件。(4)设备管理。指除了CPU和内存以外的所有输入、输出设备的管理。(5)用户接口。从用户的观点来看,操作系统是用户与计算机系统之间的接口。5、操作系统分类按照用户界面的使用环境和功能特征的不同,一般可以吧操作系统分为三种基本类型:批处理操作系统、分时操作系统、实时操作系统。只有又出现了许多类型的OS,如个人操作系统、网络操作系统、分布式操作系统、嵌入式操作系统等。(1)批处理操作系统。工作方式:用户将作业交给系统操作员,系统操作员在受到后,并不立即将作业输入计算机,而是在受到一定数量的用户作业之后,组成一批作业,再把这批作业输入到计算机中
6、。这批作业可以在系统中形成连续的、自动转接的作业流。(2)分时系统用户通过终端交互式地向系统提出命令请求,系统接收用户的命令之后,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。分时系统追求的目标是及时响应用户输入的交互命令。(3)实时操作系统(Real Time Operating System, RTOS)主要目标是在严格时间范围内,对外部请求作出反应,系统具有高度可靠性。需要具有实时时钟管理、过载防护、高可靠性能力。(4)嵌入式操作系统(Embedded OS)嵌入式操作系统就是运行在嵌入式芯片环境中,对整个芯片以及它所操作、控制的各种部件装置等资源进行统一协调、调
7、度、指挥和控制的系统软件。网络操作系统与分布式操作系统在概念上的主要不同之处在于网络操作系统可以构架与不同的操作系统之上,而分布式操作系统强调单一操作系统对整个系统的管理和调度。(5)个人计算机操作系统(Personal Computer OS)是一种单用户多任务的操作系统(6)网络操作系统(Network OS)基于计算机网络的操作系统,其目的是相互通信及资源共享。网络环境中的计算机不仅能够共享数据,资源及服务,还能共享运算处理能力。(7)分布式操作系统(Distributed OS)分布式操作系统是网络操作系统的更高级形式。在系统中所有的主机使用的是同一个操作系统,可以实现资源的深度共享,
8、对用户透明,具有自治性(各主机之间平等,不是主从关系)。(8)智能卡操作系统6、操作系统结构操作系统结构,是指操作系统各部分程序的存在方式及相互关系。(1)整体式结构模块组合结构,系统中的模块不是根据程序和数据本身的特性而是根据他们完成的功能划分的。模块独立性差,系统结构不清晰。模块组合合法的关键在于“接口”。(2)层次式结构各层之间的模块只能是单向依赖或单向调用关系。(3)微内核(客户机/服务器)结构效率比较低,所有的用户进程只能通过微内核相互通信。第二章 操作系统运行机制1、中央处理器(CPU)的构成一般的处理器由运算器、控制器、一系列寄存器、高速缓存构成。(1)运算器实现任何指令中的算术
9、和逻辑运算,是计算机计算的核心;(2)控制器负责控制程序运行的流程,包括取指令、维护CPU状态、CPU与内存交互等;(3)寄存器是指令在CPU内部作出理的过程中暂存数据、地址及指令信息。寄存器用户可见寄存器数据/通用寄存器(DR):主要用于算术逻辑指令和访存指令 地址寄存器(AR):存储数据集指令的物理地址、线地址或者有效地址条件码寄存器:保存CPU操作结果的各种标记位 控制和状态寄存器程序计数器PC:记录将要取出的指令地址 指令寄存器IR:最近取出的指令 程序状态字PSW:记录CPU的运行模式信息(PSW通常包括CPU的工作状态代码、反映执行后结果特征的条件码、中断屏蔽吗) (4)高速缓存处
10、于CPU和物理内存之间,一般由内存管理单元(Memory Management Unit,MMU)管理,它的访问速度快于内存,低于寄存器,利用程序局部性原理使得高速指令处理和低速内存访问得以匹配。2、CPU指令执行的基本过程处理器先从存储器中每次读取一条指令,然后执行该条指令。这样的单条指令处理过程称为一个指令周期。指令访问存储器指令:负责CPU与存储器之间的数据传送 I/O指令:负责CPU与I/O设备间的数据传送和命令发送算术逻辑指令:执行有关数据的算术和逻辑操作 控制转移指令:指定一个新的指令的知行起点 CPU控制指令:修改CPU状态,改变CPU工作方式 3、CPU的状态管态(系统态、特权
11、态):指操作系统管理程序运行的状态,特权级别高目态普通态、用户态:指用户程序运行时的状态,特权级别低 特权越高,可以运行的指令集合就越大;而且特权级别高的可运行指令集合包含低特权级的。目态到管态的转换:通过中断或异常。中断响应时交换中断向量,新的中断向量中的程序状态字(PSW)的CPU状态标志位为管态。管态到目态的转换:设置PSW指令。4、存储器的层次结构(容量、速度、成本)寄存器高速缓存内存储器硬盘存储器磁带和光盘从左向右,每比特的价格下降、容量增大、速度变慢、CPU访问频率下降。提高存储系统性能的关键在于程序的存储访问局部性原理5、中断与异常(1)中断、异常的概念中断是指CPU对系统中或者
12、系统外发生的异步事件的响应。异步事件是指没有一定时序关系的随机发生的事件。引起中断的那些事件成为中断事件或中断源;中断源向处理器发出的请求信号称为中断请求;把处理中断事件的程序称为中断处理程序;发生中断时正在执行的程序的暂停点称为中断断点;处理器暂停当前程序转而处理中断的过程为中断响应;中断处理结束后恢复原来程序的执行称为中断返回。中断是由外部事件引起的;异常是由正在执行的指令引起的。中断分类时钟中断:CPU内部计数器产生 I/O中断:由I/O控制器产生 I/O操作正常结束I/O异常 控制台中断:如系统操作员通过控制台发出命令 硬件故障中断:不能被屏蔽(程序状态字PSW中的中断屏蔽位)程序性中
13、断只能由操作系统完成可以由程序自己完成 (2)中断系统中断系统分为两大组成部分:中断系统的硬件中断装置和软件中断处理程序。硬件中断装置负责捕获中断源发出的中断请求,并以一定的方式响应中断源,然后将处理器的控制权交给待定的中断处理程序。中断处理程序针对中断事件的性质执行相应的操作。整个中断信号的接收、响应和处理过程可以简要的归纳为:接收和响应中断,保护中断断点现场,分析中断向量,调用中断处理程序,中断处理结束恢复现场,原有程序继续执行。6、系统调用(system call)系统调用,就是用户在程序中调用操作系统提供的一些子功能。可以被看做一个低级的过程,只能由汇编语言直接访问。系统调用是操作系统
14、提供给编程人员的唯一接口,但是对用户屏蔽了具体动作,只是提供有关功能。6.1系统调用与一般过程调用的区别:(1)运行在不同的系统状态一般过程调用,其调用程序和被调用程序都运行在相同的状态;而系统调用中,调用程序运行在用户态,被调用程序运行在系统态。(2)状态的转换一般过程调用不涉及系统状态的转换;而系统调用中,通常是通过软中断机制先由用户态转为系统态,在OS分析后再转向相应的系统调用子程序。(3)返回问题一般过程调用在被调用过程执行完成后,将返回到调用过程继续执行;而在系统调用中,由于采用抢占式调度方式,被调用程序执行完成后,系统将对所有要求运行的进程进行优先级的排名,若调用进程优先级比较低,
15、则系统把调用进程放入就绪队列。(4)嵌套调用系统调用同一般的过程调用一样,允许嵌套调用,但是在一般情况下,每个系统对嵌套调用的深度都有一定的限制。系统调用可以分为以下几类:1)进程控制类;2)文件操作类;3)进程通信类;4)设备管理类;5)信息维护类。6.2系统调用的处理过程:系统调用的过程类似于硬件中断处理中的中断处理机构。在系统中,为控制系统调用服务的机构称为“陷入(trap)”或“异常指令”(访管指令)1)保护处理现场;2)去系统调用功能号并寻找系统调用的子程序入口3)返回调用程序,恢复现场。在系统调用中,需要向系统子程序传递参数,实现用户程序和系统程序之间的参数传递方法有:1)由陷入指
16、令自带参数;2)通过有关通用寄存器(系统程序和用户程序都能访问);3)在内存中开辟专用堆栈区来传参。7、I/O技术1)I/O结构:在早期的计算机系统中,外部设备的控制器通过I/O硬件结构直接与CPU相连。2)通道(I/O处理机)通道独立于CPU,专门负责数据I/O传输工作。通道对外部设备实行统一管理,代替CPU对I/O操作进行控制,从而使得CPU与外设可以并行工作。通道的工作原理:CPU按照程序规定的顺序执行一条条指令,当执行到“启动外设”的指令时,按照指令中的参数启动设备,并对该外设的控制权转移给通道;在外设工作结束后,产生一个“输入/出操作结束”中断事件。3)直接存储器访问(DMA,Dir
17、ect Memory Access)DMA通过系统总线中的一个独立控制单元,即DMA控制器,自动控制成块数据在内存和I/O单元之间的传送。处理器只需要在整块数据开始传送和结束时关注一下即可。(结束时也要给处理器发送一个中断)4)缓冲技术缓存技术是用在外部设备与其他硬件之间的一种数据暂存技术。一般有两种途径:外设与外设的通信、外设与CPU的通信采用缓冲技术的根本原因是:CPU处理数据的速度与设备传输数据速度不匹配8、时钟时钟中断硬时钟:电路中的振荡器 软时钟:利用内存单元模拟时钟寄存器 绝对时钟:不受外界干扰(公元日历时间)相对时钟:时间间隔 第三章 进程线程模型1、多道程序多道程序同时在系统中
18、存在且并发执行,系统中的资源由几道程序共享。所谓并发执行,对于单CPU而言,这些并发程序按给定的时间片交替的在处理机上执行,其执行时间是重叠的;对于多CPU而言,并发程序在各自测处理机上运行。(宏观同时进行,微观单CPU顺序执行)衡量系统效率的尺度是系统吞吐量,即单位时间内系统所处理作业(程序)的道数(数量)。多道程序设计环境的特点:1)独立性。每道程序逻辑独立,执行速度与其他程序无关,执行起止时间独立2)随机性。程序和数据的输入与执行开始时间都是随机的3)资源共享性。程序并发执行的特性: 1)并发程序在执行期间具有相互制约关系。因为多道程序的并发执行总是伴随着资源共享和竞争,从而制约了其他各
19、道程序的执行速度。2)程序与计算不再一一对应。允许多个用户作业调用同一个共享程序段。3)并发程序执行结果不可再现。执行结果与其执行速度有关,是不确定的。2、进程模型的概念进程由程序、数据和程序控制块(PCB)组成。系统进程:执行操作系统程序,完成OS的某些功能用户进程:运行用户程序,直接为用户服务 进程与程序的联系与区别:1)联系:程序是进程的组成部分,一个进程的运行目标是执行它所对应的程序,若没有程序,进程就是去了意义。从静态角度分析,进程是由程序、数据、进程控制块(PCB)组成。2)区别:程序是静态的;进程是动态的,有生命周期。进程的特点:并发性、动态性、独立性、交往性、异步性3、三状态进
20、程模型:1)运行状态(Running)。2)就绪状态(Ready)。已具备运行条件但是没有获得CPU3)等待状态(Writing)。(又称阻塞或封锁状态)4、五状态进程模型:1)运行状态2)就绪状态3)阻塞状态(Blocked)4)创建状态(New)进程正在创建中,不能运行。5)结束状态(Exit)回收除了进程控制快(PCB)之外的其他资源5、七状态进程模块五状态进程模型没有区分进程地址空间位于内存还是外存,由于进程优先级的引入,一些低优先级进程可能等待时间较长而被转至外存。1)运行状态2)创建状态(New)进程正在创建中,不能运行。3)结束状态(Exit)回收除了进程控制快(PCB)之外的其
21、他资源4)就绪状态(Ready):进程在内存且可以立即进入运行状态5)阻塞状态(Blocked):进程在内存并等待某时间出现6)就绪挂起状态(Ready,Suspend):进程在外存,但只要进入内存即可运行7)阻塞挂起状态(Blocked,Suspend):进程在外存,并等待某时间出现挂起:把一个进程从内存转到外存6、进程控制块(PCB)PCB的内容调度信息:供进程调度使用,描述了进程当前的状况 现场信息:刻画了进程的运行情况,只记录那些可能会被其他进程更改的寄存器PCB的组织方式线性方式:所有的PCB不分状态组织在一个连续表(PCB表)中 索引方式:具有相同状态的进程分别设置各自的PCB索引
22、表 就绪索引表、等待索引表三个指针:指向就绪索引表的起始地址 等待索引表的起始地址、 执行态PCB在PCB表中的地址链接方式:具有相同状态进程的PCB通过链接字构成一个列队 就绪队列(可多个)、等待队列(可以有多个,因不同原因等待)7、进程控制进程控制的作用就是对进程在整个生命周期中各个状态之间的转换进行有效的控制。进程控制是通过原语来实现的。原语通常有若干条指令组成(由一组程序模块组成而不是由进程),原语是不可分割的或不可中断的程序,即原语的执行必须是连续的。原语必须在管态下进行,并且常驻内存。原语分类创建原语:父进程使用创建原语创建子进程,主要是建立PCB 撤销原语:撤销属于该进程的所有“
23、子孙进程” 阻塞原语:把进程由运行状态转换成阻塞状态 唤醒原语:将进程由等待状态转换为就绪状态 还有挂起进程、激活进程、改变优先级等作用的原语 8、进程与线程的区别与联系(1)引入进程的目的是为了使多个程序并发执行,以改善资源利用率及提高系统效率;引入线程的目的是为了减少程序的并发执行时所付出的时间和空间开销,是操作系统具有更好的并发性(因为进程是一个资源拥有者,因而在进程的创建、撤销和切换中系统必须为之付出较大的时空开销)。(2)进程具有两个基本属性:进程是一个可拥有资源的独立单位;一个可以独立调度和分派的基本单位。线程是进程中的一个实体,比进程更小,是CPU调度和分派的基本单位,基本不拥有
24、系统资源,但是可以与同属于一个进程的其他线程共享资源。【总结】进程与线程的比较:(1)调度。在引入线程的操作系统中,把线程作为调度和分派的基本单位而把进程作为资源拥有者的基本单位,从而使得传统进程的两个属性分开,可以显著的提高系统的并发程度。同一进程中,线程的切换不会引起进程的切换;而属于不同进程的线程在切换时需要进程切换。(2)并发性。在引入线程的操作系统中,不仅进程之间可以并发执行,同一进程中的多个线程也可以并发执行。(3)拥有资源。进程是拥有资源的独立单位,而线程虽然不拥有系统资源但是可以访问其所属进程的资源,与同一进程中的各个线程共享资源(代码段、数据段、内存地址等)(4)系统开销。进
25、程线程9、线程的实现机制(1)用户级线程(User-Level Threads)Linux操作系统用户级线程只存在于用户态中,不通过系统调用来实现,不依赖于内核,内核也不知道用户线程的存在。这使得用户级线程包可以在不支持线程的操作系统上实现。而且用户级线程允许每个进程有自己定制的调度算法。(2)内核级线程(Kernel-Supported Threads)Windows操作系统内核级线程依赖于内核,每个进程中没有线程表,而是在内核中有用来记录所有线程的线程表。(3)混合实现方式Solaris操作系统将用户级线程与某些或者全部内核线程多路复用,每个内核线程有一个可以轮流使用的用户线程集合。【总结
26、】用户级线程与内核级线程的比较:(1)线程的调度与切换速速。用户级内核级(2)系统调用。在用户级线程调用一个系统调用时,由于内核不知道该用户级线程的存在,因而把系统调用看做是整个进程的行为,于是使该进程等待,而调度另一个进程执行。在内核级线程中,则调度是以线程为单位,当一个线程调用一个系统调用时,内核把系统调用只看做是该线程的行为,因而封锁该线程。(3)线程执行时间。10、进程(线程)调度概念进程(线程)调度的任务是控制、协调进程(线程)对CPU的竞争,按照一定的调度算法,使得某一就绪进程获得CPU的控制权,转换成运行状态。可抢占方式:按优先级调度,就绪队列中一旦有优先级高于当前进程,就立即进
27、行调度,转让CPU不可抢占方式:一旦把CPU分配就一直占用,直到进入阻塞或时间片用完 进程计算密集型:大多数时间花在运算上 I/O密集型:在等待I/O上花费了绝大多数时间 11、进程(线程)调度算法进程(线程)调度算法解决以何种次序对各就绪进程(线程)进行处理机的分配以及按照何种时间比例让进程(线程)占用处理机。(1)先来先服务(First-Come First-Servered,FCFS)非抢占式(2)最短作业优先(Shortest Job First,SJF)非抢占式批处理调度算法周转时间(Turnaround Time):指从一个批处理作业提交时刻开始直到该作业完成时刻为止的统计平均时间
28、,度量了用户要得到输出所需的平均等待时间。例如有四个作业A、B、C、D运行时间分别为a,b,c,d分钟,若按照A、B、C、D的次序运行,则A的周转时间为a分钟,B的周转时间为(a+b)=12分钟,C的周转时间为(a+b+c)=16分钟,D的周转时间为(a+b+c+d)=20分钟,平均时间为(4a+3b+2c+d)/4分钟。由于A的a分钟对平均值影响最大(加了4次),所以它应该是最短作业。(3)最短剩余时间优先(Shortest Remaining Time Next,SRTN)(4)轮转发(Round-Robin,RR),最早来自分时系统将CPU的运行时间划分成一个个时间片,就绪队列中的进程轮
29、流运行一个时间片。当时间片结束时,就强迫运行进程让出CPU,该进程进入就绪队列,等待下一次调度。时间片设置过短会导致过多的进程切换降低CPU的效率;时间片过长可能会引起对短的交互申请的响应时间边长。(5)最高优先级优先(Highest Priority First,HPF)(6)多级反馈队列算法多级队列反馈法综合了先进先出调度算法、时间片轮转算法、可抢占式最高优先级算法的一种进程(线程)调度算法。 系统按照优先级别设置多个就绪队列,不同优先级的队列有不同的时间片,优先级越高时间片越小;同一个队列遵循先进先出;系统总是先调用级别高的队列,仅当级别高的队列为空时才调用次一级的队列;当正在执行的进程
30、(线程)用完其时间片后,进入次一级的就绪队列。当等待进程(线程)被唤醒时,该进程进入与其同级的队列中,若该进程的优先级高于正在执行的进程时,就抢占CPU。(7)最短进程优先(8)实时系统中的调度算法实时任务周期:以规则的时间间隔发生非周期:发生时间不可预知如果有m个周期事件,事件i以周期Pi发生,并且需要Ci秒CPU时间处理一个事件,那么可以处理负载的条件:i=1mCiPi1,满足这个条件的实时系统称为是可调度的。实时系统调度算法静态:速率单调调度算法(Rate Monotonic Scheduling,RMS)动态:最早最终时限优先调度(Eearliest Deadline First,ED
31、F)速率单调调度算法(RMS):适用于可抢先的周期性进程的经典静态实时调度算法“单调”是因为优先级是以程序触发事件发生的频率定义的,所以优先级与进程的速率(每秒运行进程的次数)呈线性关系。RMS要求:每个周期性的进程必须在其周期内完成;进程间相互独立;每个进程在一次突发中需要相同的CPU时间量;进程抢先即刻发生而没有系统开销;任何非周期性进程都没有最终时间最早最终时限优先调度(EDF):动态算法只要一个进程需要CPU时间,它就宣布它的到来时间和最终时间。调度程序维持一个可运行进程的列表,该列表按照最终时限排序。第四章 并发与同步进程间的相互作用相关进程:在逻辑上具有某种联系 无关进程:相互独立
32、,在逻辑上没有任何关系进程间的相互制约进程同步:多个进程中发生的事件存在某种时序关系,必须协同动作相互配合 进程互斥:由于共享资源所要求的排他性,进程间相互竞争以使用临界资源临界资源是指计算机系统中的需要互斥使用的硬件或 软件资源 计算机资源的共享程度互斥(Multual Exclusion):资源的互斥使用指多个进程不能同时使用同一个资源 死锁Deadlock:避免多个进程互不相让,出现都没有得到足够资源的情况 饥饿Starvation:避免某些进程一直得不到资源或者得到的几率很小 互斥的解决办法1、由竞争者平等协商 2、引入进程管理者 信号量 进程同步机制遵循准则空闲则入:任何时刻最多只有
33、一个进程位于临界区互斥资源 忙则等待:当有进程处于临界区时,其他进程只能在进入区等待 有限等待:避免死锁等现象 让权等待:在进入区等待而不能进入临界区的进程应释放CPU,转换到阻塞态进程互斥协商实现软件方法单标志方法:设置允许进入临界区的进程的一个标志位 双标志、先检查算法:设置一个标志数组,先检查后修改标志位 双标志、后检查算法:设置一个标志数组,先修改标志位后检查 先修改、后检查、后修改者等待算法算法:先修改后检查,后修改这等待 硬件方法指令TS指令:每个临界资源设置一个标志位标注资源的状态 SwapExchange指令:临界资源设置一个公共布尔变量lock、 每个进程设置一个私有布尔变量
34、key,与lock进行信息交换 【注】硬件与软件方法的比较:硬件优于软件,使用范围广,简单,支持多个临界区管理者实现-信号量Semaphore:由操作系统提供的管理公共资源的有效手段,代表可用资源实体的数量信号量只通过初始化和P、V两个原语来访问。P、V是OS核心代码的一部分,其执行不受进程调度和执行的打断。P原语相当于进入区,V原语相当于退出区,二者必须成对使用,不能错序、遗漏和重复。信号量s的count属性为非负数时,表示当前的空闲资源;为负值时表示当前等待临界区的进程数 1、经典的进程同步问题:1)、简单生产者消费者问题生产者和消费者通过一个缓冲区联系起来,缓冲区只能容纳一个产品。消费者
35、不断生产产品,然后送往缓冲区;消费者不断从缓冲区取出产品。2)、多个生产者消费者问题多个生产者和多个消费者通过一个环形缓冲池联系起来。缓冲池有多个缓冲区,每个缓冲区只能容纳一个产品。3)、读者写者问题有某个共享文件,系统允许若干个进程对文件进行读写。要读文件的进程称为读者,要写文件的称为写者。且读者和写者之间存在如下关系:允许多个进程同时读;有进程在写时,其他进程不能读写;有进程在读时,其他进程不能写。2、管程(Monitor)高级同步原语一个管程是一个由过程、变量及数据结构等组成的集合,他们组成一个特殊的模块或软件包。进程可在任何时候调用管程中的过程,但是不能在管程之外声明的过程中直接访问管
36、程内的数据结构。管程由四部分组成:管程名称、共享数据的说明、对数据进行操作的一组过程、对共享数据赋初值的语句。管程能保障共享资源的互斥执行,即一次只能有一个进程可以在管程内活动。该性能是由管程本身实现的,因此程序员可以不必显示编写程序代码去实现这种同步制约,管程不能使用C语言,因为管程是语言特性而C不支持。管程的特性:模块化、信息隐蔽、抽象数据类型管程是编程语言的组成部分,进入管程时的互斥由编译器负责,编译器知道管程的特殊性,因此采用与其他过程调用不同的方法来处理对管程的调用。管程通常是用来管理资源的。1)共享变量:管程的共享变量在管程外是不可见的,外部只能通过调用管程中所说明的外部过程(函数
37、)来间接访问共享变量。2)条件变量: 使得进程在无法继续运行时被阻塞。引入条件变量和两个操作wait和signalwait:导致调用进程自身阻塞,并将另一个等待进程调入管程signal:唤醒进程,将正在等待的进程变成执行状态 3、进程通信解决进程之间的大量信息通信的问题有三类方案:共享内存、消息机制、管道通信(共享文件)。三种方式都是高级通信原语;解决少量信息通信的问题,例如P/V操作,是一类低级通信原语。(1)共享内存在相互通信的进程之间设一个公共内存区,通过读写实现进程之间的信息交换。需要注意的两个问题:怎样提供共享内存;公共内存总的读写互斥(互斥问题由开发人员解决)(2)消息机制消息传递
38、机制消息缓冲通道:根据“生产者-消费者”,利用内存中的公共消息缓冲区信箱通信:信箱说明:可存信件数、已有信件数、可存信件的指针信箱体 (3)管道(Pipe)通信管道通信的基础是文件系统。管道连接两个进程间的一个打开的共享文件。发送进程和接收进程要实施正确的同步和互斥才能确保通信的正确性。而同步和互斥是操作系统自动进行的,对用户透明。第五章 内存管理计算机可以直接访问内存,但是不能直接访问外存,需要启动相应的I/O设备后才能使外存与内存交换信息。存储体系高速缓存器Cache:容量小、存取速度很快、昂贵、内容易变,几百KB 内存RAM:容量几千兆,中等速度、中等价格、内容易变系统区:用于存放OS常
39、驻内存部分用户区:分配给用户存放数据和程序 外存磁盘:低速、价廉、内容不易变,几百到几千GB 存储管理实质上就是管理供用户使用的部分(用户区)。1、操作系统中存储管理的主要任务:内存的分配和回收存储共享存储保护地址转换(1)内存的分配与回收有效的分配回收机制需要具有以下功能:记录每个存储区域的状态,记录内存空间中哪些是分配了的,哪些是空闲的。实施分配,按需分配,并修改相应的分配表格。回收,接收用户释放的区域,修改分配表格。(2)存储共享指两个或多个进程共用内存中的相同区域,包括代码共享和数据共享:代码共享节省内存空间,提高内存利用率;数据共享实现进程通信。(3)存储保护存储保护一般以硬件保护机
40、制为主,软件为辅,因为完全用软件实现系统开销太大,速度显著降低。当发生地址越界或非法操作时,由硬件产生中断,进入操作系统处理。保护内容保护系统程序区不被用户有意/无意侵犯 不允许用户程序读写不属于自己地址空间的数据(4)“扩充”内存容量借助虚拟存储技术活其他交换技术达到在逻辑上扩充内存容量,亦即为用户提供比内存物理空间大得多的地址空间。2、地址转换(地址重定位、地址映射)地址物理地址绝对地址:系统 物理存储空间 逻辑地址:用户程序中使用的地址逻辑存储空间 当用户程序进入计算机系统请求执行时,存储管理要为它分配合适的内存空间,该地址空间的起始地址不是固定的,而且,逻辑地址与分配到的屋里地址多数是
41、不一致的。为了保证程序的正确执行,必须根据分配给程序的内存区域对程序中指令和数据的存放地址进行重定位,即把逻辑地址转换成绝对地址(物理地址)。地址转换静态:在程序执行前集中完成 ,不支持“程序浮动”(执行时被改变存储区域仍能正确执行) 动态:每执行一条指令重定位一次:基地址+逻辑地址=绝对地址,支持“程序浮动” 内存管理方案单一用户连续区管理 分区管理(连续存储空间)()固定分区可变分区页式管理(不连续)()段式管理段页式管理 3、分区存储管理方案分区存储管理是能满足多道程序运行的最简单的存储管理方案。基本思想是把内存划分成若干个连续区域,每个分区装入一个运行程序。分区管理要求运行程序一次全部
42、装入内存之后,才能开始运行。(1)固定分区每个分区一旦划分好,在系统运行期间不再重新划分。程序运行时必须提供对内存资源的最大申请量。用于管理固定分区管理的内存分配表,按照顺序说明每个分区的序号、分区大小、分区起始地址、使用状态(占用或空闲)。(2)可变分区分区大小正好等于用户程序的需求量,而且分区的数目也是可变的。碎片:内存经过一段时间的分配回收后,存在很多很小的空闲块。有时候每个碎片的大小都不满足程序进一步分配要求,但是总和可以满足时,通过“移动技术”或者称为“紧凑技术、紧缩技术”来移动内存中的程序,把空闲碎片合并成一个连续的大空闲区。移动技术:可以集中分散的空闲区,提高内存的利用率,便于作业动态扩充内存。但是要尽可能减少需要移动的作业数和信息量,并不需要将所有的空闲碎片合并,根据用户程序的大小和使用情况综合考虑,也不一定要移动到内存一端。可变分区的实现:硬件设置两个专用的控制寄存器:基址寄存器和限长寄存器。程序执行的过程中,每执行一条指令都要取出该指令的逻辑地址。当逻辑地址小于限长寄存器中的限长值时,逻辑地址加上基地址得到绝对地址;当逻辑地址大于限长寄存器中的限长值时,表示欲访问的内存地址超出了所分配的分区范围,此时不允许访问,而形成一个“地址越界”的程序性中断事件。可辨分区存储管理方案中的内存分配表由两张表组成:一张是已分配区表,一张是未分配表区。4、可变分