2.操作系统核心概念:系统架构师基础知识指南

  • 进程管理
  1. 操作系统概述
  1. 操作系统定义:能有效地组织和管理系统中的各种软硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。
  2. 操作系统3个重要的作用
    • 管理计算机中运行的程序和分配各种硬件资源
    • 为用户提供友善的人机界面
    • 为应用程序的开发和运行提供一个高效率的平台
  3. 操作系统4个特征:并发性、共享应、虚拟性和不确定性。
  4. 操作系统的功能:
    • 进程管理:实质上是对处理机的执行“时间”进行管理,采用多道程序等技术将CPU的时间合理地分配给每个任务,主要包括进程控制、进程同步、进程通信和进程调度。
    • 文件管理:主要包括文件存储空间管理、目录管理、文件的读写管理和存取控制。
    • 设备管理:实质上是对硬件设备的管理,包括对输入输出设备的分配、启动、完成和回收。
    • 作业管理:包括任务、界面管理、人机交互、图形界面、语言控制和虚拟现实等。
  5. 操作系统的分类
    • 批处理操作系统:单道批处理和多道批处理(主机与外设可并行)。
    • 分时操作系统:一个计算机系统与多个终端设备连接。将CPU的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务。
    • 实时操作系统:实时是指计算机对于外来信息能够以足够快的速度进行处理,并且再被控对象允许的时间范围内做出快速反应。实时系统对交互能力要求不高,但要求可靠性有保障。
    • 网络操作系统:是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议和有关协议的集合。三种模式:集中模式、客户端/服务器模式、对等模式。
    • 微型计算机操作系统:是一种基于微型计算机硬件系统的软件系统,‌它通过配置必要的外部设备和软件构成,‌旨在管理和控制微型计算机的各种资源,‌从而实现对数据的处理、‌存储和传输‌。常用的有windows、MacOS、Linux
  1. 进程组成和状态
  1. 进程的组成:进程控制块PCB(唯一标识)、程序(模式进行要做什么)、数据(存放进程执行时所需数据)。
  2. 进程基础的状态是下图的三态图。需要熟练掌握下图中的进程三态之间的转换。
  1. 前趋图

用来表示哪里任务可以并行执行,哪些任务之间有顺序关系,具体如下图:可知ABC可以并行执行,但是必须ABC都执行完后,才能执行D,这就确定了两点:任务间的并行、任务间的先后顺序。

  1. 进程资源图
  1. 用来表示进程和资源之间的分配和请求关系。

  1. P代表进程,R代表资源,R方框中有几个圆球就表示有几个这种资源,在上图中,R1指向P1,表示R1有一个资源已经分配给了P1,P1指向R2,表示P1还需要请求一个R2资源才能执行。
  2. 阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续。如上图中P2.
  3. 非阻塞结点: 某进程所请求的资源还有剩余,可以分配给该进程继续运行。如上图中P1、P3.
  4. 当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态。

  1. 进程同步与互斥
  1. 临界资源:各进程间需要以互斥方式对其进行访问的资源。
  2. 临界区:指进程中对临界资源实时操作的那段程序。本质是一段程序代码。
  3. 互斥:某资源(即临界资源)在同一时间内和只能由一个任务单独使用,使用时需要加锁,使用完后解锁才能被其他任务使用;如打印机。
  4. 同步:多个任务可以并发执行,只不过有速度上的差异,在一定情况下停下等待,不存在资源是否单独或共享的问题;如自行车和汽车。
  5. 互斥信号量:对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初值

为1。

  1. 同步信号量:对共享资源的访问控制,初值一般时共享资源的数量,
  2. P操作:申请资源,S=S-1,若S≥0,则执行P操作的进程继续执行;若S<0,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。
  3. V操作:释放资源,S = S+1,若S>0,则执行V操作的进程继续执行;若S≤0,则从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被P操作阻塞的进程可以继续执行),然后执行V操作的进程继续。
  1. 进程调度
  1. 进程调度方式是指当有更高优先级的进程到来时如何分配CPU。分为可剥夺和不可剥夺两种,可剥夺指当有更高优先级进程到来时,强行将正在运行进程的CPU分配给更高优先级进程;不可剥夺是指高优先级集成必须等待当前进程自动释放CPU。
  2. 在某些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度。
    • 高级调度。又称“长调度”、“作业调度”或“接纳调度”,它决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。在系统中一个作业只需经过一次高级调度。
    • 中级调度。又称“中程调度”或“对换调度”,它决定处于交换区中的哪个就绪进程可以调入内存,以便直接参与对CPU的竞争。
    • 低级调度。低级调度又称“短程调度”或“进程调度”,它决定处于内存中的哪个就绪进程可以占用CPU。低级调度是操作系统中最活跃、最重要的调度程序,对系统的影响很大。
  3. 调度算法
    • 先来先服务FCFS:先到达的进程优先分配CPU。用于宏观调度。
    • 时间片轮转:分配给每个进程CPU时间片,轮流使用CPU,每个进程时间大小相同,很公平,用于微观调度。
    • 优先级调度:每个进程都拥有一个优先级,优先级大的先分配CPU。
    • 多级反馈调度:时间片轮转和优先级调度结合而成,设置多个就绪队列1,2,3…n,每个队列分别赋予不同的优先级,分配不同的时间片长度;新进程先进入队列1的末尾,按FCFS原则,执行队列1的时间片,若未能执行完进程,则转入队列2的末尾,如此重复。

  1. 死锁
  1. 当一个进程在等待永远不可能发生的事件时,就会产生死锁,若系统中有多个进程处于死锁状态,就会造成系统死锁。
  2. 死锁产生的四个必要条件:资源互斥、每个进程占有资源并等待其他资源、系统不能剥夺进程资源、进程资源图时一个环路。
  3. 死锁产生后,解决措施是打破四大条件,有以下方法:
    • 死锁预防:采用某种策略限制并发进程对于资源的请求,破坏死锁产生的四个条件之一,使系统任何时刻都不满足死锁的条件。
    • 死锁避免:一般采用银行家算法来避免,银行家算法,就是提前计算出一条不会死锁的资源分配方法,才分配资源,否则不分配资源,相当于借贷,考虑对方还得起才借钱,提前考虑好以后,就可以避免死锁。
    • 死锁检测:允许死锁产生,但系统定时运行一个检测死锁的程序,若检测到系统中发生死锁,则设法加以解除。
    • 死锁解除:即死锁发生后的解除方法,如强制剥夺资源,撤销进程等。
    • 死锁资源计算:系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为n*(R-1).其不发生死锁的最小资源数为n*(R-1)+1。
  1. 线程
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    tester Jeffky

    慷慨解囊,感激不尽。

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

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

    余额充值