第2章操作系统硬件环境2.1.2处理机状态1.特权指令和非特权指令(1)特权指令:是指在指令系统中那能由操作系统使用的指令。(2)用户只能执行非特权指令,只有操作系统才可以使用系统所有指令(包括非特权和特权)。(3)指令系统分为:特权指令和非特权指令。2.处理机状态(1)多数系统将处理机工作状态分为:管态和目态。(2)管态:一般指操作系统管理程序时的状态,具有较高的特权级别,又称为特权态(特态)、系统态。(3)目态:一般指用户程序运行时的状态,具有较低的特权级别,又称为普通态(普态)、用户态。(4)当处理机处于管态时,全部指令(包括特权指令)可以执行,可以使用所有资源,并具有改变处理机状态的能力。(5)当处理机处于目态时,就只有非特权指令能执行。(6)特权级别越高,可以指向的指令集合越大,而且高特权级别对应的可运行指令集合包含低特权级的可运行指令集。第3章操作进程与进程的管理3.1进程的引入1.引入目的:为了解决不可再现性引入(PCB)进程控制器来解决。3.1.4多道程序设计2.多道程序设计(1)定义:在采用多道程序设计的计算机系统中,允许多个程序同时进入一个计算机系统的内存并运行。(2)例题:P533.2进程3.2.1进程概念1.进程定义:进程是具有独立功能的可并发执行的程序在一个数据集合上的运行过程,是系统在资源分配和调度的独立单位。(1)程序在处理机上执行时所发生的活动成为进程。(2)进程是一个程序及其数据在处理机上顺序执行所发生的活动。(3)进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。(4)进程是进程实体的运行过程。(5)进程是可以和别的计算并发执行的计算。2.程序与进程的区别和联系区别:(1)进程是程序的一次执行,它是一个动态的概念。程序是完成某个特定功能的指令的有序序列,它是一个静态的过程。(2)进程可以执行一个或几个程序。(3)进程是系统进行资源分配和调度的一个独立单位;程序则不是。(4)程序可以作为一种软件资源长期保护,而进程是程序的一次执行过程。联系:进程是具有结构的。3.进程的特征(1)动态性(2)并发性(引入程序的目的也正是为了使其程序的执行能和其他程序的执行并发执行,而程序是不能并发执行的。)(3)独立性(4)异步性(5)结构特征进程实体是由程序段、数据段及进程控制块三个部分组成。3.2.2进程的基本状态及其转换4.进程的基本状态及其转换(1)进程的三种状态①就绪状态:当进程已分配到除处理机以外的所有必要资源(内存,I/O,设备,唯独CPU资源不给它)后,只要能再有处理机便可立刻执行。②执行状态/运行状态:指进程已获得处理机,其程序正在执行。③阻塞状态:进程因发生某种事件而暂停执行时的状态,或进程的执行受到阻塞。(2)进程状态的转换①就绪—执行状态:当进程调度为处于就绪状态的进程分配了处理机后。②执行—阻塞状态:正在执行的进程因出现某种事件而无法执行。③执行—就绪状态。④阻塞—就绪状态:处于阻塞状态的进程,在其等待的事件已经发生。注意点:进程诞生开始就属于就绪态。阻塞状态不占用CPU资源,执行状态占用CPU资源。不能一下子从阻塞到执行。阻塞状态—执行状态占用内存。阻塞状态占用内存资源。(3)进程的挂起状态①活动就绪—静止就绪:当进程处于未被挂起的就绪状态时。suspend()②活动阻塞—静止阻塞:当进程处于未被挂起的阻塞状态时。suspend()③静止就绪—活动就绪:处于静止就绪状态的进程。active()④静止阻塞—活动阻塞:处于静止阻塞状态的进程。active()注意点:静止阻塞没办法直接运行,静止就绪有机会执行。在内存充足时应该分配给静止就绪。活动就绪时进程处于内存,活动阻塞时阻塞态在内存,静止就绪时进程处于外存,静止阻塞时阻塞态处于外存。只可以执行—活动阻塞,不可以活动阻塞—执行。处于静止就绪状态的进程不再被调度执行。活动阻塞和活动就绪在内存不够时应该先挂哪一个?活动就绪,因为活动静止只差一个CPU就可以运行。引入挂起的目的:(从内存移到外存)转移阻塞态内存资源3.23进程控制块5.进程控制块(1)进程控制块PCB是进程实体的一部分,是操作系统中最重要的数据结构。PCB记录了操作系统所需的、用于描述进程情况及控制进程运行所需的全部信息。(2)进程控制块PCB是进程存在的唯一标准。(3)当系统创建一个新进程时就为它建立一个进程控制块PCB,当进程结束时,又收回其PCB,进程也随之消亡。(4)作用:使一个在多道程序环境下不能独立运行的程序(含数据),成为一个独立的基本单位,一个能与其他进程并发执行进程。也就是说,系统是根据PCB来对并发执行的进程进行控制和管理的。(5)进程控制块的组织方式:链接方式,索引方式。3.24进程控制6.进程控制(1)操作系统内核通常是运行在系统态(管态又叫系统态)的。(2)(名词解释)内核:是计算机硬件的一层扩充软件,它们为系统对进程进程控制、对存储器进行管理提供了有效的机制。是计算中最核心的部分。(3)(名词解释)原子操作:由若干条机器指令构成用以完成特点指令的一段程序,一个操作中的动作,要么全做,要么不做。3.3进程调度3.3.1调度基本概念1.调度的定义:在一个队列中,按照某种方式(算法),选择一个合适的个体。2.调度分为:高级调度(又称作业调度),低级调度(又称进程调度),中级调度。3.高级和中级(外存—内存),低级(内存—CPU).4.进程调度的方式:非剥夺方式,剥夺方式。3.3.2进程调度算法1.先进先出算法(FIFO):T=(A+(A+B)+(A+B+C)+(A+B+C+D)+(A+B+C+D+E))/52.最短时间处理机运行优先调度算法T=(最短1+(最短1+最短2)+(最短1+最短2+最短3)+(最短1+最短2+最短3)+(最短1+最短2+最短3+最短4)+(最短1+最短2+最短3+最短4+最短5))/53.优先级调度算法T=(优先数1+(优先数1+优先数2)+(优先数1+优先数2+优先数3)+(优先数1+优先数2+优先数3)+(优先数1+优先数2+优先数3+优先数4)+(优先数1+优先数2+优先数3+优先数4+优先数5))/53.4线程的基本概念1.引入进程的目的:使多个程序并发执行以改善资源利用率及提高系统的吞吐量;引入线程的目的:为了减少程序并发执行时所付出的时空开销,使操作系统具有良好的并发性。2.进程的两个属性:一是可以拥有资源的独立单位,同时又是一个可以独立调度和分派的基本单位。3.定义:线程是进程的一个实体,是被系统独立调用和分派的基本单位。4.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程的全部资源。一个线程可以创建和撤销另一个线程;同一进程中的多个线程之间可以并发执行。5.线程与进程的比较:(1)调度。在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程,而在引入线程的操作系统中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位。在同一进程中,线程的切换不会引起进程切换;在由一个进程中的线程切换到另一个进程中的线程时,将会引起进程切换。(2)并发性。在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程亦可以并发执行,因而使操作系统具有更好的并发性,从而能够更有效地使用到资源和提高系统吞吐量。(3)拥有资源。进程都是拥有资源的一个独立单位,它可以拥有自己的资源。而线程一般不拥有自己系统资源,但它可以访问其隶属进程的资源。(4)系统开销。进程切换的开销远大于线程切换的开销。第4章进程同步与通信4.1进程的相互作用4.1.1进程间的联系1.进程之间存在的关系:资源共享关系,相互合作关系2.临界资源:(1)(名词解释)定义:同一时刻只允许一个进程访问的资源。(2)生产者—消费者问题(进程同步)semaphonemutex=1,empty=n,full=0;//full:满缓冲区单元个数,empty:控缓冲区单元个数,mutex:互斥itembuffer[n];intin=out=0;//初始化,指向一个缓冲器voidproducer(inti){while(1){produceraniteminnextp;//生产一个数据wait(empty);//空缓冲区数量+1wait(mutex);//进入临界区buffer[in]=nextp;//将一个数据进入缓冲区in=(in+1)modn;//修改in指针signal(mutex);//退出临界区signal(full);//将满缓冲区数量+1}}voidconsumer(intj){while(1){wait(full);//满缓冲区数量-1wait(mutex);//进入临界区nextc=buffer[out];out=(out+1)modn;signal(mutex);signal(empty);consumertheiteminnextc;}}main(){cobegin{producer(1);producer(n);consumer(1);consumer(m);}}3.临界区(名词解释)定义:把在美国进程中访问临界资源的那段代码称为临界区。4.同步机制应遵循的准则:空闲让进,忙则等待,有限等待,让权等待。4.1.4信号量机制1.分为:整型信号量机制,记录型信号量机制2.信号量机制分为;AND型信号量集机制,一般“信号量集”机制。3.当一个进程在修改某个信号量时,没有其他进程可同时对该信号量进行修改:voidwait(staticsemaphores){s.value--;if(s.value0)//进程阻塞,进程进入s.L队列block(s.L);}voidsignal(staticsemaphores){s.value++;if(s.value=0)//唤醒队首进程,将进程从s.L阻塞队列中唤醒wakeup(s.L);}4.信号量mutex1是资源信号量,mutex=1是互斥信号量。5.wait(mutex);//申请资源,signal(mutex);//释放资源6.PPT里面S.value看7.AND同步机制的基本思想:对若干个临界资源的分配采取原子操作方式,要么全部分配到进程,要么一个也不分配。8.生产者—消费者问题(1)互斥:生产者与生产者,生产者与消费者,消费者与消费者,生产者与消费者(2)申请的必须是一个空的,释放的是一个满的。(3)只有在缓冲全满或缓冲全空的情况下,指针in和out才会指向同一缓冲。4.3死锁1.死锁(名词解释)定义:是指在多道程序系统中,一组进程中的每一个进程均无限期地等待被该组进程中的另一个进程占用且永远不会释放资源。2.产生死锁的原因:一是竞争资源,二是进程推进顺序不当。3.产生死锁的必要条件:互斥条件,请求和保持条件,不剥夺条件,环路等待条件。4.解决死锁的办法:预防死锁,避免死锁,检测死锁,解除死锁。5.预防死锁:摒弃“请求和保持”条件,摒弃“不剥夺”条件,摒弃“环路等待”条件。6.避免死锁:银行家算法(P124)第5章存储器管理5.1概述1.存储器管理讨论的主要对象是内存。2.存储管理的任务:地址转换,内存的分配和回收,内存的地址保护,内存的共享,内存的扩充。(这里所说内存的扩充不是硬件设备上的扩充,而是用虚拟技术来实现逻辑上的扩充,即虚拟存储概念。)3.存储管理方式可以分为连续分配方式和离散分配方式。5.2连续存储管理方式1.单一连续分配只能用于单用户、单任务的操作系统中。5.4分页存储管理1.基本思想:在分页存储管理中将程序的逻辑地址空间和内存空间按相同长度为单位进行等量划分。2.页表的作用:是实现从页号到物理块号的地址映射。3.为了提高存储速度,在地址变换机构中增设了一个具有并行查寻能力的特殊高速缓存存储器。4.分页和分段的主要区别:(1)页是信息的物理单位,分页是为了系统管理内存的方便而进行的。故对用户而言,分页是