【操作系统】第二章--进程的描述与控制--笔记与理解(1)

笔记理解之后可以进行深入解释→【操作系统】第二章–进程的描述与控制–深入与解释(1)

【操作系统】第二章–进程的描述与控制–笔记与理解(1)

前驱图和程序执行

前趋图
  • A→B:B开始执行之前A必须完成 (A,B)∈→
程序顺序执行
  • 特征:
    1. 顺序性:处理机严格按程序规定顺序执行,每一个操作在下一个操作前结束
    2. 封闭性:程序在封闭环境下运行,程序一旦执行,其执行结果不受外界影响
    3. 可再现性:只要程序执行的环境与初始条件相同,则获得相同结果
程序并发执行
  • 特征:
    1. 间断性:相互制约将导致并发程序具有“执行→暂停→执行”的间断性
    2. 失去封闭性:多个并发程序,各种资源为其共享,任一程序运行,环境受其他程序影响,此时程序运行失去封闭性
    3. 不可再现性:由于失去封闭性,导致同时失去可再现性

进程的描述

进程的定义和特征
  1. 进程的定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
  2. 进程的特征:
    1. 动态性:进程的实质是进程实体的执行过程,由创建而产生,由调度而执行,由撤销而消亡
    2. 并发性:多个进程实体同时存在于内存中,且能在一段时间内同时运行
    3. 独立性:进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位
    4. 异步性:进程是按各自独立的、不可预知的速度向前推进的
进程的基本状态及转换
  1. 进程的三种基本状态:
    1. 就绪状态:已分配除CPU的所有资源(就绪队列)
    2. 执行状态:进程已获CPU,其程序正在执行的状态(一对一,多对多)
    3. 阻塞状态:正执行进程因某事咱是无法继续执行的状态,OS把处理机分配给另一个就绪进程(阻塞队列)
  2. 创建状态和终止状态:
    1. 创建状态:保证进程的调度必须在创建工作完成后进行,确保对进程控制的操作完整性,同时增加了管理灵活性
    2. 终止状态:等待OS进行善后处理,将其PCB清零,并将PCB空间返还给系统,进入终止状态的进程不能再执行,但OS仍做保留记录
    3. 进程状态
  3. 挂起操作和进程状态的转换
    1. 挂起操作的引入:
      1. 终端用户的需要
      2. 父进程的请求
      3. 负荷调节的需要
      4. 操作系统的需要
  4. 进程管理中的数据结构
    1. 操作系统中用于管理控制的数据结构:包括标识、描述、状态和指针
    2. 进程控制块PCB的作用:用于描述进程的当前情况以为及管理进程运行的全部信息,是操作系统中最重要的记录型数据结构
      1. 作为独立运行基本单位的标志
      2. 能实现间断性运行方式
      3. 提供进程管理所需要的信息
      4. 提供进程调度所需要的信息
      5. 实现与其他进程的同步与通信
    3. 进程控制块中信息
      1. 进程标识符:外部标识符方便用户对进程访问,内部标识符方便系统
      2. 处理机状态:通用寄存器用于暂存信息用户可以访问,指令计数器存放下一条指令的地址,程序状态字PSW含状态信息等,用户栈指针
      3. 进程调度信息:进程状态,进程优先级,进程调度所需其他信息,事件
      4. 进程控制信息:程序和数据地址,进程同步和通信机制,资源清单链接指针给出此PCB所在队列下一个进程PCB的首地址
    4. 进程控制块的组织方式
      • PCB组织方式

进程控制

  • 一般由OS内核中的原语来实现
操作系统内核
  • 一些与硬件紧密相关的模块,各种常用设备的驱动程序以及频率较高的模块,安排在紧靠硬件的软件层次中,将他们常驻内存
  • 安排方式的目的:
    1. 便于对这些软件进行保护
    2. 提高OS的运行效率
    • 系统态/管态/内核态:较高的特权,执行一切指令,访问所有寄存器存储区
    • 用户态/目态:较低的特权,仅能执行规定的指令,访问指定寄存器存储区
  1. 支撑功能:
    1. 中断处理:是内核最基本的功能,是整个操作系统赖以活动的基础
    2. 时钟管理:是内核的一项基本功能,OS中许多活动都需要得到他的支持
    3. 原语操作:由若干条指令组成的,用于完成一定功能的一个过程
  2. 资源管理功能:
    1. 进程管理:将它们放在内核中,以提高OS的性能
    2. 存储器管理:以保证存储器管理具有较高的运行速度
    3. 设备管理:用于实现设备分配和设备独立性功能的模块等
进程的创建
  1. 进程的层次结构:允许一个进程创建另一个进程,把创建进程的进程称作父进程,把被创建的进程称作子进程
  2. 进程图:树状,根结点为相应叶子结点的父进程,同理:相应叶子结点为根结点的父进程
  3. 引起创建进程的事件:为使进程之间能并发执行,应先为其创建进程
    1. 用户登录:若登陆成功,系统将为用户建立一个进程,并把它插入到就绪队列中
    2. 作业调度:多道批处理系统中,调度到作业便装入内存,为他们创建进程,并插入到就绪队列中
    3. 提供服务:当运行中的用户程序提出某种请求后,系统将专门创建一个进程来提供用户所需要的服务
    4. 应用请求:由用户进程自己创建新进程,以便使新进程以同创建者进程并发运行的方式完成特定任务
  4. 进程的创建:调用进程创建原语Create进行创建
    1. 申请空白PCB:申请获得唯一的数字标识符,从PCB集合索取空白PCB
    2. 分配其运行所需资源:
      1. 对于批处理作业其大小可在用户提出创建进程要求时提供
      2. 为应用进程创建子进程应在该进程提出请求中给出所需内存的大小
      3. 对于交互型作业,可不给出内存要求,由系统分配一定的空间
    3. 初始化进程控制块PCB:标识信息,处理机状态信息,处理机控制信息
    4. 若进程就绪队列可接纳新进程,插入就绪队列
进程的终止
  1. 引起进程终止的事件:
    1. 正常结束
    2. 异常结束:越界错,保护错,非法指令,特权指令错,运行超时,等待超时,算术运算错,I/O故障
    3. 外界干预:操作员/操作系统干预,父进程请求,因父进程终止
  2. 进程的终止过程:发生了要求终止进程的某事件,OS调用进程终止原语
    1. 根据被终止进程的标识符,从PCB集合中检索出该PCB,读出该进程状态
    2. 执行状态:立即终止进程执行,置调度标志为真(指示进程被终止后应重新进行调度)
    3. 子孙进程均终止(防止成为不可控进程)
    4. 所有资源归还给父进程或系统
    5. PCB从所在链表/队列中移出
进程的阻塞与唤醒
  1. 引起进城阻塞与唤醒的事件:
    1. 向系统请求资源失败
    2. 等待某种操作的完成
    3. 新数据尚未到达
    4. 等待新任务的到达
  2. 进程阻塞过程:阻塞是进程自身的一种主动行为
    1. 立即进行停止执行,把进程控制块中的现行状态由“执行”改为“阻塞”并将PCB插入阻塞队列
    2. 转调度程序进行重新调度(保留被阻塞进程的处理机状态,按新PCB处理状态设置CPU的环境)
  3. 进程唤醒过程:
    1. 从等待该事件的阻塞队列中移出
    2. 将其PCB中的现行状态由“阻塞”改为“就绪”
    3. 将该PCB插入到就绪队列中
进程的挂起与激活
  1. 进程的挂起:
    1. 检查被挂起进程状态:活动就绪→静止就绪,活动阻塞→静止阻塞
    2. 为方便考察进程状态,PCB复制到指定内存区域
    3. 若被挂起进程正在执行,转向调度程序重新调度
  2. 进程的激活过程:
    1. 与上述转换相反
    2. 优先级比较,高于则立即剥夺当前进程的运行,把进城分配给刚刚被激活的进程

进程同步

进程同步的基本概念
  1. 两种形式的制约关系:
    1. 间接相互制约关系:由系统实施统一分配,即用户要使用前,应先提出申请,不允许用户进程直接使用
    2. 直接相互制约关系:源于为完成某任务而相互合作的两个或多个进程
  2. 临界资源:为了预防产生“失去再现性”这种错误,应把一些变量作为临界资源处理,即各进程互斥地访问该变量
  3. 临界区:每个进程中访问临界资源的那段代码
  4. 同步机制应遵循的规则:
    1. 空闲让进
    2. 忙则等待
    3. 有限等待
    4. 让权等待
硬件同步机制
  • 为防止多个进程同时测试到锁开,故测试和关锁为连续的
  • 关中断:不响应中断,不引发调度,不发生进程/线程切换,保持测试关锁的连续性与完整性,保证了互斥
    • 缺点:
      1. 滥用权力可能导致严重后果
      2. 关中断时间过长,会影响系统效率,限制处理机交叉执行程序的能力
      3. 不适用于多CPU系统,在一个处理机上关中断不能防止其他处理机执行相同的临界段代码
信号量机制
  1. 信号量定义:信号量(或叫信号灯)由信号量的值和指向 PCB 的指针两部分组成
  2. 信号量的物理意义:
    1. 信号量初值为非负的整数变量,代表资源数
    2. 信号量的值大于0:表示当前资源可用数量
    3. 信号量的值小于0:其绝对值表示等待使用该资源的进程个数
    4. 信号量值可变,但仅能由P、V操作来改变
  3. P、V 操作原语
    • P 操作原语 P(S):
      1. P操作一次,S 值减1,即 S=S-1(请求分配一资源)
      2. 如果 S≥0,则该进程继续执行;如果S<0表示无资源,则该进程的状态置为阻塞态,把相应的 PCB连入该信号量队列的末尾,并放弃处理机,进行等待(直至另一个进程执行 V(S)操作)
    • V 操作原语 V(S):
      1. V 操作一次,S 值加 1,即 S=S+1(释放一个单位量资源)
      2. 如果 S>0,表示有资源,则该进程继续执行如果S≤0,则释放信号量队列上的第一个PCB所对应的进程(阻塞态改为就绪态),执行 V 操作的进程继续执行。

猜你喜欢

转载自blog.csdn.net/weixin_44321600/article/details/107366998
今日推荐