前言:
第一个复习篇先讲一下我认为的重点和难点,就是进程管理.引入了线程和进程以后就有了相关的调度问题和算法问题,在想要进程同步而产生的一系列的算法问题.
1)为什么要引入进程?
在多道程序同时运行的背景下,进程之间需要共享系统资源,因此会导致个程序在执行过程中出现相互制约的关系,程序的执行会表现出阶段性的特征,这些特征都是在程序的执行过程中发生的,是动态的发生。而传统的程序本身是一组指令的集合,是一个静态的概念,无法描述程序在内存中的执行情况及我们无法从程序的字面上看出他何时执行,何时停顿,也无法看出他其他的执行程序的关系。因此,程序在这个静态概念已不能如实反映程序并发执行过程的特征,为了描述程序动态执行过程的性质更好地支持和管理多道程序的并发性,人们引入进程的概念.
2)什么是进程?进程由什么组成的?
为了使参与并发执行的程序能够独立地运行,必须为他配置一个专门的数据结构,称为进程控制块PCB 系统利用PCB来描述进程的基本情况和运行态,进而控制和管理进程。相应的由程序段、相关数据段和PCB 3部分构成了进程印象,也就是进程实体。所谓创建进程,实际上是创建进程印象中的PCB,而撤销进程实际上是撤销进程的PCB。值得注意的是,进程印象是静态的,进程则是动态
PCB是进程存在的唯一标志
3)进程是如何解决问题的?
进程能够识别程序运行台的一些变量存放在PCB中。通过这些变量,系统能够更好地了解进程的状况,并在适当时进行进程的切换,以避免一些资源的浪费,甚至划分为更小的调度单位,线程来提高系统的并发度
进程的状态
进程的五种状态运行态进程正在处理机上运行,在单处理机环境下,每个时刻最多只有一个进程处于运行状态
就绪态:进程一处于准备运行的状态及进程,获得了除处理器机外的一切所需资源,一旦得到处理机即可运行
阻塞态:又称等待态进程正在等待某一事件而暂停运行,如等待某资源为可用,或等待输入输出完成,即使处理机空闲,该进程也不能运行
创建态:进程正在被创建,尚未转到就绪态,创建进程需要多个步骤。首先申请一个空白的PCB,并向PCB中填写一些控制和管理进程的信息,然后由系统为该进程分配运行时所需的资源,最后把该进程转入就绪态
结束态:进程正从系统中消失,可能是进程正常结束或其他原因中断。退出进程需要结束运行时,系统首先必须至该进程为结束态,然后再进一步处理资源释放和回收等工作
一个进程从运行态变成阻塞态,是主动行为,而从阻塞态变成就绪态,是被动行为,需要其他相关进程协助.
处理机调度是多道程序操作系统的基础,是操作系统设计的核心问题
一个作业从提交开始直到完成,往往要经历三级调度,分别是作业调度、中级调度和进程调度
三级调度之间的联系
作业调度,从外存的后备队列中选取一批作业进入内存,为他们建立进程。这些进程被送入就绪队列
进程调度从就绪队列中选出一个进程,并把其状态改为运行态把cpu分配给他。
中级调度是为了提高内存的利用率,系统将那些暂时不能运行的进程挂起来,当内存空间宽松时,通过中级调度,选择具备运行条件的进程将其唤醒.
1)作业调度为进程活动做准备,进程调度,使进程正常活动起来。中级调度将暂时不能运行的进程挂起,中级调度处于作业调度和进程调度
2)作业调度次数少,中气调度次数,掠夺进程调度频率最高
3)进程调度是最基本的,不可或缺
现代操作系统中不能进行进程的调度与切换的情况有以下几种
1)在处理中断的过程中,中断处理过程复杂,在实际上很难做到进程切换,而且中断处理是系统工作的一部分,逻辑上不属于某一种进程,不应该被剥夺处理机资源
2)进程在操作系统内核程序临界区中进入临界区,需要独占式的访问共享数据理论上必须加速,以防止其他并行程序进入,在解锁前不应切换到其他进程进行。以加快该共享数据的释放
3)其他需要完全屏蔽中断的原子,操作过程中,如加锁、解锁、中断、现场保护、恢复等原子操作,在原子过程中连中断都要屏蔽,更不应该进行调度和切换.
典型的调度算法
先来先服务:最先进入队列的。
短作业优先:选择完成时间最短的
优先级调度:选择优先级别最高的
高响应比优先:选择相应比最高的
时间片轮转:总是选择就绪队列中的第一个进程,但仅能运行一个时间片
多级反馈:这个是时间片轮转调度算法和优先级调度算法的综合发展
为什么要引入进程同步的概念?
在多道程序共同执行的条件下,进程与进程是并发执行的,不同进程之间存在不同的相互制约关系,为了协调进程之间的相互制约关系,引入进程同步的概念
不同的进程之间会存在什么关系?
进程之间存在同步与互斥的制约关系。同步是指为完成某种任务而建立的两个或多个进程。这些进程,因为需要在某些位置上协调他们的工作秩序,而等待传递信息所产生的制约关系
互斥是指当一个进程进入去使用临界资源,使另一个进程必须等待。当占用临界资源的进程退出临界区后,另一个进程才允许访问此临界资源
如果我们单纯地用上面介绍的这些方法去解决问题的时候,又会遇到一些新的问题。当占有一些资源,而又需要对方的资源的时候,会因为争夺资源而造成一种相互等待的现象,若无外力作用,他们将无法推进下去。这种现象被称为死锁.
关于死锁相关的相关问题,在上一次发布的文章已经做了详细的解释,这里不再赘述.
页面更新:2024-03-14
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号