操作系统速记(基础)—处理器管理

处理器管理

  • 程序:为完成特定任务的指令序列

  • 顺序执行:多个任务按顺序执行,多个任务多次执行结果一致

  • 并发执行:一个程序尚未结束,另一个程序已经开始执行,多个任务多次执行结果不一致


进程

  • 概念:程序的一次执行

  • 系统资源分配的基本单位

  • 进程的三个基本状态

  • 运行状态:获得CPU资源执行
  • 等待状态:等待资源
  • 就绪状态:获得除CPU外的必须资源
  • 进程状态的变化图

  • 进程控制块(PCB):保存与其他进程、系统资源以及进程所处状态的数据结构

  • 进程队列:PCB与PCB之间通过队列的形式进行存储

  • 处理器执行状态

    核心态:操作系统管理代码执行时机器的状态

    用户态:用户进程执行时机器的状态

  • 原语:执行时具有原子性的一系列指令

  • 进程调度的算法

    • 批处理系统

      • 先来先服务:谁先来谁先执行
      • 短作业优先调度算法:优先调度执行时间短的作业,会出现长作业饿死的情况
      • 最短剩余时间调度算法:新增加的作业比当前执行的作业所需时间短,则让出CPU给新增加的作业
    • 交互式系统

      • 优先数调度:为每个进程分配一个优先数,按优先数调度进程
      • 时间片轮转调度:每个进程执行固定的时间后挂起
      • 多级反馈队列:分为多个队列,第一队列优先级最高,时间片最少,第二队列优先级次高,时间片次低,以此类推,进程首先进入第一队列,时间片用完后,没执行完,进入第二队列

线程

  • 概念:进程中的一个实体,可以并发执行,具有相同的地址空间,是独立参与调度的基本单位

  • 线程控制块(TCB):记录了线程的标识符、线程执行时的状态信息

  • 分类:

    • 内核级线程:内核在其空间内执行线程的创建、调度和管理

    • 用户级线程:内核并不知道线程的存在,线程的创建、终止、同步和调度等在用户级完成

    • 混合级线程:同时支持内核级与用户级线程


进程同步与互斥

  • 临界区:对共享资源进行访问的程序段

  • 临界资源:共享的资源

  • 信号量:表示可使用的某一资源的个数,使用PV原语操作对其进行增减操作,P为减少信号量的值,V为增加信号量的值,信号量可为负,此时绝对值表明等待该资源的进程个数

  • 进程互斥

    • 概念:由于竞争共享资源导致进程执行具有先后顺序

    • 实现机制:

      • 互斥量:信号量取值只有0与1时,此时信号量为互斥量
  • 进程同步

    • 概念:由于进程之间的相互合作导致进程执行具有先后顺序,一个进程的执行依赖于另外一个进程的结果

    • 实现机制:

      • 信号量:一个信号量与一个进程运行的结果关联

      • 管程

        • 概念:任一时刻只有一个进程可以执行管程中的代码

        • 等待机制

          • 目的:由于缺乏资源而导致进程挂起,若没有等待机制,则没有任何进程可以执行管程中的代码

          • wait()操作:将进程阻塞在等待队列中,释放管程

          • signal()操作:将等待队列中的一个进程唤醒

          • 问题:管程中执行的进程可以执行signal()操作,此时会有两个进程在管程中,解决方案:

            • 执行signal的进程等待,直到被释放进程退出管程或进入等待队列
            • 被释放进程等待,直到执行signal的进程退出管程或进入等待队列
    • 经典同步问题:

      • 哲学家就餐问题

      • 读者写者问题

      • 生产者消费者问题

        经典同步问题的求解需要较多篇幅,此处不总结


进程通信

  • 概念:进程之间的相互作用

  • 分类

    • 低级通信:进程同步与互斥
    • 高级通信:用于传输大量信息
  • 高级通信

    • 分类

      • 共享存储器:进程通过某些数据结构或共享存储区进行通信

      • 管道通信

        • 概念:用于连接一个读进程与一个写进程,以实现它们之间通信的共享文件

        • 特点:

          • 互斥:不能同时读写
          • 同步:满写和空读的等待
          • 判断对方是否存在,双方存在才可以通信
        • 分类

          • 直接通信

            概念:每个进程都有一个名字,需指定信息接收进程的名字

            特点:自动建立链路,对应一对通信进程,链路可以是单向,也可以是双向

          • 间接通信:进程间发送或接收消息通过一个信道来进行,每个信箱有一个唯一的标识符,多个进程可共享一个信箱


死锁

  • 概念:每一个进程占用了某个资源而又等待另一进程所占用的资源,导致没有进程可以运行的情况

  • 原因

    1、资源竞争

    2、进程推进顺序不当

    两者共同作用造成了死锁

  • 产生死锁的必要条件

    必须同时满足下列四个必要条件

    • 互斥条件:任一时刻一个资源仅为一个进程占有
    • 占有且等待条件:一个进程无法运行时,不释放占有的资源
    • 不剥夺条件:资源不可抢占
    • 循环等待条件:存在一个进程资源循环等待链
  • 解决死锁的方法

    • 预防:限制并发进程对资源的请求

      • 破坏互斥条件:是资源可同时访问而不是互斥使用

      • 破坏占有和等待条件

        静态分配策略:一个进程必须在执行前就申请它所需要的全部资源

      • 破坏不剥夺条件:允许进程抢占资源

      • 破坏循环等待条件

        • 层次分配策略

          • 资源分层
          • 进程得到较低层的资源后,才可以申请高一层的资源
          • 进程释放完高层的资源后,才能释放底层的资源
          • 进程只能占有一层中的一个资源
        • 按序分配策略

          • 给系统的所有资源划分优先级
          • 进程只有占据低优先级的资源后,才可占用高优先级的资源
    • 避免:系统在分配资源时,根据资源使用情况进行预测,避免死锁的发生

      银行家算法

    • 检测:通过一个机构检测死锁是否发生

      资源分配图

    • 解除:与检测配套的措施,用于解除死锁状态

      • 结束所有进程,重启操作系统
      • 撤销涉及死锁的所有进程,解除死锁后继续运行
      • 逐个撤销涉及死锁的进程,看剩余进程是否可以执行
      • 从涉及死锁的某个进程中抢占资源,将其分配给其他进程,知道死锁解除
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值