【四剑客】操作系统体系(一)

操作系统

一、操作系统简介

1. 操作系统的概念、功能和目标

请添加图片描述

  • 操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件
  • 操作系统的功能和目标:
    • 作为系统资源的管理者
      在这里插入图片描述
    • 作为用户和计算机硬件之间的接口
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    • 作为最接近硬件的层次
      在这里插入图片描述
      在这里插入图片描述

2. 操作系统的特征

  • 并发
    • 指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
    • 并行:指两个或多个事件在同一时刻同时发生。
    • 操作系统的并发性指计算机系统中同时存在着多个运行着的程序。
    • 一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行(这些程序微观上是交替执行的,但宏观上看起来就像在同时执行)
    • 操作系统和程序并发是一起诞生的。
    • 4核CPU意味着同一时刻可以有4个程序并行执行。
  • 共享
    • 即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
    • 两种资源共享方式
      • 互斥共享方式
        • 系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。
          • 使用QQ和微信视频,同一时间段内摄像头只能分配给其中一个进程。
      • 同时共享方式
        • 系统中的某些资源,允许一个时间段内由多个进程"同时“对它们进行访问。
          • 使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取并发送文件。说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是交替着访问硬盘的。
            在这里插入图片描述
  • 虚拟
    • 是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的。
    • 一个程序需要放入内存并给它分配CPU才能执行。
      在这里插入图片描述
    • 空分复用技术(如虚拟存储器技术)
    • 时分复用技术(虚拟处理器)
  • 异步
    • 是指在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
      在这里插入图片描述
      在这里插入图片描述

3. 操作系统的发展与分类

  • 手工操作阶段
    • 主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低
  • 批处理阶段–单道批处理系统
    • 引入脱机输入/输出技术(用磁带完成),并监督程序负责控制作业的输入和输出
    • 主要优点:缓解了一定程序的人机速度矛盾,资源利用率有所提升。
    • 主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低。
  • 批处理阶段–多道批处理系统
    • 主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源保持"忙碌"状态,系统吞吐量增大。
    • 主要缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行)
  • 分时操作系统
    • 计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
    • 主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
    • 主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
  • 实时操作系统
    • 主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
    • 在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性
      在这里插入图片描述

4. 操作系统的运行机制和体系结构

在这里插入图片描述

  • 操作系统的内核程序是系统的管理者,既可以执行特权指令,也可以执行非特权指令,运行在核心态。
  • 运行机制
    • 两种指令:特权指令和非特权指令
    • 两种处理器状态:核心态和用户态
    • 两种程序:内核程序和应用程序
  • 操作系统的内核
    • 内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。
    • 实现操作系统内核功能的那些程序就是内核程序
      在这里插入图片描述
      在这里插入图片描述

5. 中断和异常

  • 本质:发生中断就意味着需要操作系统介入,开展管理工作
  • 中断的概念和作用
    • 当中断发生时,CPU立即进入核心态
    • 当中断发生时,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
    • 对于不同的中断信号,会进行不同的处理
  • 由于操作系统的管理工作(比如进程切换,分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。
  • 用户态” -> "核心态"是通过中断实现的。并且中断是唯一途径。
  • 核心态->用户态"的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为"用户态”。
    在这里插入图片描述
    请添加图片描述

6. 系统调用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

请添加图片描述
在这里插入图片描述

二、进程

1. 进程的定义、组成、组织方式、特征

在这里插入图片描述

  • 进程的定义
    • 程序:就是一个指令序列
    • 程序段、数据段、PCB三部分组成了进程实体进程映像)。
    • 所谓创建进程,实质上是创建进程实体中的PCB。而撤销进程,实质上是撤销进程实体的PCB。
    • PCB是进程存在的唯一标志!
    • 进程是程序的一次执行过程
    • PCB:操作系统通过PCB来管理进程,因此PCB中应该包含操作系统对其进行管理所需的各种信息。
    • 程序段:程序代码即存放在此。
    • 数据段:程序运行时使用、产生的运输数据。如全局变量、局部变量、宏定义的常量就存放在数据段内。
    • 进程是资源分配、接受调度的基本单位。
      在这里插入图片描述

2. 进程的状态与转换

  • 进程是程序的一次执行。在这个执行过程中,有时进程正在被CPU处理,有时又需要等待CPU服务,可见,进程的状态是会有各种变化。为了方便对各个进程的管理,操作系统需要对进程合理地划分为几种状态。
  • 三种基本状态
    • 运行态(Running):占有CPU,并在CPU上运行
      • 单核处理机环境下,每一时刻最多只有一个进程处于运行态。(双核环境下可以同时有两个进程处于运行态)
    • 就绪态(Ready):已经具备运行条件,但由于没有空闲CPU,而暂时不能运行
      • 进程已经拥有了除处理机之外所有需要的资源,一旦获得处理机,即可立即进入运行态开始运行
    • 阻塞态(Waiting/Blocked):因等待某一事件而暂时不能运行
      • 如:等待操作系统分配打印机、等待读磁盘操作的结果。CPU是计算机中最昂贵的部件,为了提高CPU的利用率,需要先将其他进程需要的资源分配到位,才能得到CPU的服务

在这里插入图片描述
在这里插入图片描述

3. 进程控制

  • 进程控制就是要实现进程状态转换。
  • 如何实现进程控制?
    • 用原语实现进程控制。
    • 原语的特点是执行期间不允许中断,只能一气呵成。
    • 这种不可被中断的操作即原子操作。
    • 原语运行在核心态。
  • 原语做的三类事情:
    • 更新 PCB 中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
      • 所有的进程控制原语一定都会修改进程状态标志
      • 剥夺当前运行进程的CPU使用权必然需要保存其运行环境
      • 某进程开始运行前必然要恢复其运行环境
    • 将 PCB 插入合适的队列
    • 分配/回收资源

在这里插入图片描述

4. 进程通信

  • 进程通信就是指进程之间的信息交换。
  • 进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立
  • 为了保证安全,一个进程不能直接访问另一个进程的地址空间。但是进程之间的信息交换又是必须实现的。为了保证进程间的安全通信,操作系统提供了一些方法。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

5. 线程概念和多线程模型

在这里插入图片描述
在这里插入图片描述

  • 线程是一个基本的CPU执行单元,也是程序执行流的最小单位
  • 引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频、文字聊天、传文件)
  • 引入线程后,进程只作为除CPU之外的系统资源的分配单元(如打印机、内存地址空间等都是分配给进程的)。
    在这里插入图片描述
  • 线程的属性
    • 线程是处理机调度的单位
    • 多CPU计算机中,各个线程可占用不同的CPU
    • 每个线程都有一个线程ID、线程控制块(TCB)
    • 线程也有就绪、阻塞、运行三种基本状态
    • 线程几乎不拥有系统资源
    • 同一进程的不同线程间共享进程的资源
    • 由于共享内存地址空间,同一进程中的线程间通信甚至无需系统干预
    • 同一进程中的线程切换,不会引起进程切换
    • 不同进程中的线程切换,会引起进程切换
    • 切换同进程内的线程,系统开销很小
    • 切换进程,系统开销较大
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

在这里插入图片描述

6. 处理机调度的概念、层次

在这里插入图片描述

  • "挂起"和"阻塞"的区别:
    • 都是暂时不能获得CPU的服务
    • 挂起态是将进程映像调到外存去
    • 阻塞态下进程映像还在内存中
      在这里插入图片描述
      在这里插入图片描述

7. 进程调度的时机、切换与过程、方式

在这里插入图片描述

  • 临界资源:一个时间段内只允许一个进程使用的资源。各进程需要互斥地访问临界资源。
  • 临界区:访问临界资源的那段代码。
  • 普通临界区访问的临界资源不会直接影响操作系统内核的管理工作。因此在访问普通临界区时可以进行调度与切换。
  • 内核程序临界区访问的临界资源如果不尽快释放的话,极有可能影响到操作系统内核的其它管理工作。因此在访问内核程序临界区期间不能进行调度与切换。在这里插入图片描述
    在这里插入图片描述

8. 调度算法的评价指标

  • CPU利用率:指CPU"忙碌"的时间占总时间的比例。
  • 系统吞吐量:单位时间内完成作业的数量。
  • 周转时间:从作业被提交给系统开始,到作业完成为止的这段时间间隔。
  • 等待时间:指进程/作业处于等待处理机状态时间之和,等待时间越长,用户满意度越低。
  • 响应时间:从用户提交请求到首次产生响应所用的时间。
    在这里插入图片描述

9. FCFS、SJF、HRRN调度算法

  • 先来先服务(FCFS):按照到达的先后顺序调度。
  • 短作业优先(SJF):每次调度时选择当前已到达且运行时间最短的作业/进程。
  • 高响应比优先(HRRN):非抢占式的调度算法,只有当前运行的进程主动放弃CPU时(正常/异常完成,或主动阻塞),才需要进行调度,调度时计算所有就绪进程的响应比,选响应比最高的进程上处理机。
    在这里插入图片描述

10. 调度算法:时间片轮转、优先级调度、多级反馈队列

  • 时间片轮转:轮流让就绪队列中的进程依次执行一个时间片(每次选择的都是排在就绪队列队头的进程)
    • 如果时间片太大,使得每个进程都可以在一个时间片内就完成,则时间片轮转调度算法退化为先来先服务调度算法,并且会增大进程响应时间。因此时间片不能太大
    • 如果时间片太小,会导致进程切换过于频繁,系统会花大量的时间来处理进程切换,从而导致实际用于进程执行的时间比例减少。可见时间片也不能太小
    • 一般来说,设计时间片时要让切换进程的开销占比不超过1%。
    • 若进程未在一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队。
  • 优先级调度:每次调度时选择当前已到达且优先级最高的进程。
  • 多级反馈队列:设置多级就绪队列,各级队列优先级从高到低,时间片从小到大
    在这里插入图片描述
    在这里插入图片描述

11. 进程同步、进程互斥

  • 进程具有异步性的特征。异步性是指,各并发执行的进程以各自独立的、不可预知的速度向前推进。
  • 同步亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系。进程间的直接制约关系就是源于它们之间的相互合作。
  • 两种资源共享方式:
    • 互斥共享方式
      • 系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
    • 同时共享方式
      • 系统中的某些资源,允许一个时间段内由多个进程”同时“对它们进行访问
  • 一个时间段内只允许一个进程使用的资源称为临界资源
  • 对临界资源的访问,必须互斥地进行。
  • 进程互斥指当一个进程访问某临界资源时,另一个想要访问该临界资源的进程必须等待。当前访问临界资源的进程访问结束,释放该资源之后,另一个进程才能去访问临界资源。
    在这里插入图片描述

12. 进程互斥的软件实现方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13. 进程互斥的硬件实现方法

在这里插入图片描述

14. 信号量机制

  • 用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥、进程同步。
  • 信号量其实就是一个变量,可以用一个信号量来表示系统中某种资源的数量。比如:系统中只有一台打印机,就可以设置一个初值为1的信号量。
  • 原语是由关中断/开中断指令实现。
  • 一对原语:wait(S)原语和signal(S)原语,可以把原语理解为我们自己写的函数,简称为P、V操作。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

15. 用信号量机制实现进程互斥、同步、前驱关系

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16. 生产者-消费者问题

在这里插入图片描述

  • 生产者每次要消耗(P)一个空闲缓冲区,并生产(V)一个产品。消费者每次要消耗(P)一个产品,并释放一个空闲缓冲区(V)。往缓冲区放入/取走产品需要互斥。在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

17. 多生产者 - 多消费者

在这里插入图片描述
在这里插入图片描述

  • 结论:即使不设置在专门的互斥变量mutex,也不会出现多个进程同时访问盘子的现象
  • 原因在于:本题中的缓冲区大小为1,在任何时刻,apple、orange、plate三个同步信号量中最多只有一个是1.因此在任何时刻,最多只有一个进程的P操作不会被阻塞,并顺利地进入临界区。
    请添加图片描述
    在这里插入图片描述

18. 吸烟者问题

在这里插入图片描述

  • 本质上这题也属于”生产者-消费者”问题,更详细的说应该是“可生产多种产品的单生产者-多消费者”
    • 关系分析。找出题目中描述的各个进程,分析它们之间的同步、互斥关系。
      • 桌子可以抽象为容量为1的缓冲区,要互斥访问
      • 组合一:纸+胶水 组合二:烟草+胶水 组合三:烟草+纸
      • 同步关系(从事件的角度来分析):
        • 桌上有组合一 -> 第一个抽烟者取走东西
        • 桌上有组合二 -> 第二个抽烟者取走东西
        • 桌上有组合三 -> 第三个抽烟者取走东西
        • 发出完成信号 -> 供应者将下一个组合放到桌上
    • 整理思路。根据各进程的操作流程确定P、V操作的大致顺序
      • PV操作顺序:“前V后P”
    • 设置信号量。设置需要的信号量,并根据题目条件确定信号量初值。

在这里插入图片描述
请添加图片描述

19. 读者-写者问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

20. 哲学家进餐问题

在这里插入图片描述
请添加图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

21. 管程

在这里插入图片描述

  • 管程的定义
    • 管程是一种特殊的软件模块,有这些部分组成
      • 局部于管程的共享数据结构说明;
      • 对该数据结构进行操作的一组过程;(过程其实就是函数)
      • 对局部于管程的共享数据设置初始值的语句;
      • 管程有一个名字。
  • 管程的基本特征
    • 局部于管程的数据只能被局部于管程的过程所访问;
    • 一个进程只有通过调用管程内的过程才能进入管程访问共享数据;
    • 每次仅允许一个进程在管程内执行某个内部过程
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

22. 死锁

在这里插入图片描述

  • 每个人都占有一个资源,同时又在等待另一个人手里的资源。发生"死锁"。
  • 在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象,就是"死锁"。发生死锁后若无外力干涉,这些进程都将无法向前推进。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

23. 死锁的处理策略 – 预防死锁

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

24. 死锁的处理策略 – 避免死锁

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

25. 死锁的处理策略 – 检测和解除

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

柠檬小帽

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值