二、操作系统 ☞ 进程管理

2019-07-14 10:33发布

1、进程:是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。(动态的、过程性的概念,以便使多道程序并发执行,实现操作系统的并发性和共享性)    进程数据块(Process Control Block,PCB),来描述进程的基本情况和运行状态,进而控制、管理进程。 PCB是进程存在的唯一标志!(PCB是有效地) 2、进程的特征:动态性(最基本的特征)、并发性、独立性、异步性、结构性    结构性(进程的组织):程序段+数据段+进程控制段 3、进程的状态与转换:    运行状态:进程正在处理机上运行    就绪状态:进程已处于准备运行的状态(获得除处理机之外的一切资源)有处理机就可    阻塞状态:进程正在等待某一件事而暂停运行(如等待某资源)有处理机也不行    创建状态:进程正在被创建,且未被转到就绪状态    结束状态:正在从系统中消失 4、进程控制:一般把进程控制用的程序段称为原语,原语的特点是执行期间不允许中断    创建进程过程: 为新进程分配一个唯一的进程标识号,并申请一个空白的PCB,为进程分配资源 5、进程调度:调度是指决定资源分配给哪个进程的行为 6、进程通信:(进程间的信息交互)    共享存储、消息传递、管道通信(所谓管道,就是一个共享文件)    管道机制需提供以下三方面的协调能力:互斥、同步和确定对方的存在    管道读数据是一次性的操作,数据一旦被读取,它就从管道中被抛弃 7、线程(为了减小程序在并发时所付出的时空开销,提高操作系统的并发性能)    程序执行的最小单元,多个线程可以并发。基本不拥有任何系统资源,因此这些线程之间的同步和通信非常容易实现。 8处理机调度:操作系统设计的核心问题 (为什么?因为在多道程序系统中,进程的数量往往多于处理机的个数,进程争用处理机的情况在所难免) 8、调度层次:      作业调度(使作业获得竞争处理机的权利)      中级调度(将外部等待状态的进程调入内存)      进程调度(选取一进程,将处理机分配给他、最基本的一种调度,不可或缺)      高级  -》  中级  -》  低级 9、进程调度方式:    非剥夺调度方式:指当一个进程正在处理机上执行时,即使有某个更加紧迫的进程需要处理,仍然让这个正在处理的进程继续执行。    剥夺调度方式:指当一个进程正在处理机上执行时,若有某个更加紧迫的进程需要处理,立即暂停正在处理的进程,将处理机分配给更加重要紧迫的进程。 10、调度基本准则:(考虑特性)    CPU利用率(使CPU保持“忙”状态)    系统吞吐量(单位时间内CPU完成作业的数量)    周转时间(从作业提交到作业完成所经历的时间)    等待时间(进程处于等待处理机状态时间之和)    响应时间(从用户提交请求到系统首次发生响应所用的时间) 11、典型的调度算法    先来先服务调度算法(最简单的调度算法,可以用于作业调度、也可以用于进程调度)                                       不可剥夺算法,对长作业有利、对短作业无利    短作业优先调度算法(对长作业不利)    优先级调度算法(优先级用于描述作业运行的紧迫程度,可以用于作业调度、也可以用于进程调度    高响应比优先调度算法(主要用于作业调度)                                响应比是考虑作业的等待时间和估计的运行时间                                响应比 = (等待时间+要求服务时间)/ 要求服务时间    时间片轮转调度算法(主要用于分时系统)先来先服务仅运行一个时间片,循环运行    多级反馈队列调度算法(集合了前几种算法的优点)                                 设置多个就绪队列、赋予每个队列时间片不同 12、作业与进程      作业是从用户角度出发:由用户提交以用户任务为单位      进程是从操作系统出发:由系统生成,是操作系统的资源分配和独立运行的基本单位 13进程同步:(使用一些机制,让进程有次序进行,比如加法在乘法之后进行)         临界资源:一次仅允许一个进程使用的资源称为临界资源         同步:直接制约关系,源于他们的相互合作         互斥:间接制约关系(加锁的方法、软件标注法、硬件指令法) 14、信号量(P操作 访问临界资源 加锁、V操作 访问结束 解锁)         正在使用时占用资源P操作,使用结束时释放资源V操作         PV操作是一种低级进程通信原语,原语不可被中断执行 15、经典生产者与消费者问题(同步)       一组生产者进程和一组消费者进程共享一个初始为空、大小为n的缓冲区,       只有缓冲区未满时,生产者才能把消息放入缓冲区,否则必须等待;       只有缓冲区不空时,消费者才能从中取出消息,否则必须等待。 16死锁:指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。 17银行家算法:著名的死锁避免问题。         操作系统看成是银行家,操作系统管理的资源看成相当于银行家管理的资金,进程请求分配资源,相当于是贷款。         当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源满足则可按需分配资源,否则推迟分配;         如果进程在执行过程中继续申请资源,先测试该进程已申请的资源数+本次申请的资源数是否超过了它的最大需求量,超过则拒绝分配,没有超过且系统内有相应量的资源则分配,如果系统内的资源不够也要推迟分配。