3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_服务器


3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_进程管理_02

3.01 操作系统概述

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_死锁_03


接口的区分:

  • 人机之间的接口:命令,窗口
  • 应用软件与硬件之间的接口:api的接口

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_进程管理_04

进程管理

3.02 进程管理——进程状态转换图

进程的状态:操作系统当中对进程进行管理的时候,为进程指定了几种状态,以便于给进程分配相应的资源,把它管理起来。

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_服务器_05

最初的进程状态(三种)

最初的状态分类

  • 运行:指这个进程需要的所有资源都已经配足了,并且给他了cpu资源
  • 就绪:指这个进程除了cpu资源,其他需要的所有资源都已经配足了
  • 等待:指这个进程除了cpu资源,还缺其他需要的所有资源

各个状态之间的转换关系

  • 运行—(等待某个事件)—>等待:当进程缺少某一个资源的时候就会进入到等待
  • 但是当进行补充好相应资源后不能直接去运行,需要去排队等待cpu资源的调用
  • 等待—(等待事件发生)—>就绪:当补充好相应资源后就进入到就绪状态
  • 就绪—(调度)—>运行:当资源配足的进程排到cpu进程时
  • 运行—(时间片到)—>就绪:一个进程从就绪到运行只能执行一个时间片,当时间片到了就返回就绪状态继续排队。

注:三种状态成熟后发现并不能满足所有的情况(比如人为暂停),所以提出来五态模型

升级的进程状态(五种)

状态分类中:运行(运行),活跃阻塞(等待),活跃就绪(就绪)两两对应,一个意思

与三态的不同点

  • 多了一个静止就绪和静止阻塞
  • 挂起:就和有人给你打电话,你放下手中的工作
  • 恢复或激活:电话打完了,再开始手中的工作

3.03 进程管理——前趋图【考点】

考题考点:前趋图一般和PV操作结合考察

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_进程管理_06


前趋图:用来表达要完成的一系列活动,它的先后的约束关系。

  • 想表达的内容:这样就可以看出那些任务可以并行,那些任务有先后关系
  • 比如:包饺子可以绞肉,切菜,搅拌,包饺子顺序执行,但是绞肉和切菜可以同时进行,但是搅拌要受前两部的约束,同理包饺子要受到搅拌的约束。

3.04 进程管理——进程的同步与互斥

学习目的:同步与互斥是进行PV操作一些分析的前提

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_java_07


互斥:

  • 概念:在同一时刻,只允许某一个进程去使用这个资源【同一个资源不能同时服务于多个进程】
  • 如果一个资源能同时服务于多个进程称为:共享

同步:

  • 概念:有速度匹配要求,当差距拉的比较大的时候,要求速度快的停下来等待速度慢的。
  • 官方:
  • 同步:是指一个进程在执行某个请求的时候,若这个请求没有执行完成,
    那么这个进程将会一直等待下去,直到这个请求执行完毕,才会继
    续执行下面的请求。
  • 异步:是指一个进程在执行某个请求的时候,如果这个请求没有执行完毕,进程不会等待,而是继续执行下面的请求。

讨论PV进程操作问题:生产者和消费者中关于同步,互斥问题

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_死锁_08


单缓冲区情况:

  • 互斥:生产者和消费者每次只能一位去市场操作
  • 同步:生产者在市场放入一个商品就不能再放入商品,直到消费者消费掉之后生产者才可以继续在市场里放东西

3.05 进程管理——PV操作

考察:难度大

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_java_09


一些概念:

  • 临界资源:独木桥
  • 临界区:是一个代码段【进程中访问临界资源的呢段代码】
  • 信号量:应用于PV操作的一种专属变量
  • 如:P(S)中的呢个S,就是信号量

PV操作:

  • 是两大原子操作的一个组合,分为P操作和V操作。
  • P(S):加锁的过程
  • 申请锁定资源操作:信号量​​-1​​,做判断
  • V(S):解锁的过程
  • 申请解锁资源操作:信号量​​+1​​,做判断

从例题体会PV操作的作用

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_java_10

  • 当不引入PV操作的时候,先执行生产者就会造成溢出的风险,同理先执行消费者也会出错。

引入PV操作之后:

首先执行生产者情况和循环执行生产者情况【不行,会进入进程队列】

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_数据库_11

  • 满足P,V操作判断语句的时候会进入进程队列,否则会继续执行

首先执行消费者情况

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_进程管理_12

  • 满足P,V操作判断语句的时候会进入进程队列,否则会继续执行

总结

  • PV操作其实是​​并发​​进程之间某些约束关系之间问题的解决。

3.06 进程管理——PV操作练习题

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_数据库_13

  • 先从收银员进程入手
  • 解题时可以先假设没有这些操作,会面临什么样的问题,从而找出​​约束关系​

3.07 进程管理——PV操作与前趋图【重点考点

将一个前趋图转为PV操作的形式,都转成相应的进程,让这些进程在并发执行的时候依然按前趋图约束的先后顺序去执行。

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_数据库_14

  • 进程D开头要有,进程A,B,C的加锁过程P【都解锁之后才能进行下面的操作
  • 每一个进程A,B,C都有一个解锁过程V
例题讲解【2021上】

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_死锁_15


3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_服务器_16


3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_java_17


3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_服务器_18

例题演示

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_死锁_19


解题步骤

  1. 先在​​前趋图中标出信号量S​​,遵循从左到右,从上到下。
  2. 则可以通过前趋图箭头指向写出P与V的分布【如p1箭尾是V(s1),p2箭尾是V(s2),p3箭头是P(s1)和P(s2);箭尾是V(s3)和V(s4)】
  • 箭头为P操作,箭尾为V操作
  1. 将所有的操作具体写到(p1-p5示意图)中,问题就解决了

3.08 进程管理——死锁问题

考察考点:

  • 计算不会死锁的情况
  • 死锁预防与避免问题
  • 会涉及到​​银行家算法​

概念:

  • 死锁:指系统当中有一系列的资源,有一系列需要用到这些资源的进程,这些进程需要系统给分配资源才能进行。如果系统在某一时刻发现所有可用的资源都已经分配出去了,而所有的进程都没有办法完成它本身的职责和任务,从而没办法释放占用的资源。

具体例题:

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_数据库_20

  • 求最少多少个资源不会发生死锁的情况:
  • 先给每个进程分配它所需的总数-1个资源
  • 然后有几个进程就乘几个
  • 最后+1之后就是:最少多少个资源不会发生死锁的情

3.09 进程管理——银行家算法

本节讲:死锁的预防和避免

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_进程管理_21

死锁的预防【了解】

发生死锁的四种情况:

  1. 互斥
  2. 环路等待
  3. 不剥夺
  4. 保持和等待

死锁的预防:打破会发生死锁的四种情况

死锁避免的解决方案【掌握】

两种解决方案:

  1. 有序资源分配法【效率低】
  2. 银行家算法【常用,也是考点】

银行家算法

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_死锁_22


思想:以银行房贷的思路,来做资源分配。

具体实例

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_服务器_23

  • 选B
  • 考试就从A选项进行模拟,看能否走通,如果走不通就进行B选项的模拟。

存储管理

3.10 存储管理——分区存储组织

本章从软件的层次,来考虑存储机制

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_java_24

  • 分配前的空白区域是因为:前面作业做完了内存资源返回造成的
  • 此时再分配作业4的时候,会有多种动态分配的方式

几种内存资源分配方式:【了解思想】

  1. 首次适应法:顺次找下来,找到第一个符合的空间
  2. 最佳适应法:将空闲区块按照​​从小到大顺序​​,练成一个链
  • 在分配的时候先用作业4的大小和​​小​​的空闲区块做比较,如果小于该空闲区块就将作业4分配到这里
  • 缺陷:系统运行一段时间,空闲碎块会非常多
  1. 最差适应法:将空闲区块按照​​从小到大顺序​​,练成一个链
  • 在分配的时候先用作业4的大小和​​大​​的空闲区块做比较,如果小于该空闲区块就将作业4分配到这里,切出来一个9k的内存出来
  1. 循环首次适应算法:将空闲的区域按顺序连成一个环,每次按顺序比较,分配完再对下一个空白区块进行比较,以此类推。
  • 优点:分配均匀,不会老是分配同一个块

3.11 存储管理——页式存储、段式存储、段页式存储

考点掌握:

  • 页式存储当中的逻辑地址和物理地址之间的转化
  • 页式存储、段式存储、段页式存储它们基本的特点,以及运作的方式

页式存储【掌握】

  • 页式存储有了页表的中间件,而不是直接在用户程序和内存之间转换,从而增加了系统开销。
  • 物理块号又称页帧号

如何通过逻辑地址来求物理地址呢?

  • 先知道逻辑地址当中那些是页号,那些是页内地址
  • 页内地址直接就对应,物理地址中的页内地址
  • 再通过页号去查找相应的块号
  • 将查到的块号和页内地址组合起来就是物理地址了

习题讲解

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_进程管理_25

例题讲解【2021上】

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_数据库_26


3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_进程管理_27

段式存储

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_服务器_28

  • 按逻辑结构来划分的
  • 段的大小不要求一致【页式存储不允许】
  • 段号包括:段长和基址

优点:

  • 便于共享

缺点:

  • 内存利用率低

段页式存储

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_java_29

  • 先分段,再分页

优缺点折中:

  • 优点:空间小,存储共享容易
  • 缺点:复杂性和开销增加,执行速度下降

快表与慢表

快表

  • 页式,段式,段页式存储放到Cache【高速缓存器】当中称为快表

慢表

  • 页式,段式,段页式存储放到内存当中称为慢表

3.12 存储管理——【页面置换算法】页面淘汰算法

  • 应用到:分层存储体系当中

由来:内存体系面临的问题,比如页式存储有100个页,但是内存有限只有3个页,这时候就不可避免的要淘汰不用的页和将用的页存调入进去,这就需要用的一些淘汰算法【共有四种】

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_数据库_30

  • 考点:先进先出,最近最少使用
  • 抖动:我分配给你更多资源,想要更好的结果,但是给你更多资源反而结果并不好【如下图就出现了抖动现象】
  • 第一行黄色,要访问的页面序列
  • 第一列黄色,内存上的三个页面
  • 当内存里没有相应页面序列就调入到内存当中
  • 内存里没有就称为缺页

例题讲解淘汰机制

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_数据库_31

  • FIFO淘汰机制:先进入内存的先淘汰【只考虑谁先进来】
    • 本题3的页面序列位置,对于FIFO来说内存空间为【0,1,2】先进来的是0,则淘汰0
  • LRU淘汰机制:最近最少使用的先淘汰【考虑访问的情况,最近被访问到了就不会被淘汰】
    • 本题3的页面序列位置,对于LRU视角来说内存空间为【1,2,0】,0刚刚被访问,1最久没被访问,则淘汰1

3.13 存储管理——页面淘汰算法练习题

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_java_32


第一问内存访问次数解题思路:

  1. ​没有使用快表​​说明每读一次程序的块,先在内存上查一下表,查一下表之后才能够读取相应的内存块
    • 所以每一个内存块要进行2次的访问
  2. 题目中说明有6个页面块,则需要访问12次内存

第二问缺页中断次数解题思路:

  1. 这里有个约定俗成:
    • 默认指令无论占几个块,都会一次性调入。
      • 本题占了两个块,所以缺页中断一次
    • 但是操作数是占几个块,就会调入几次
      • 本题也是占了两个块,缺页中断两次
  2. 本题一个指令,两个操作数都占用2个块,根据上面约定俗成的规则得出结果1+2+2=5
    • 占用2个块的原因:指令从内存的1023单元开始存储(1单元=1字节),题中给出页面大小为1kb(1kb=1024字节),在8位计算机系统中存16位的指令(1字节=8位,则只存了一半,另一半存到了下一块当中),则该指令一半存到了0页号中,一半存到了1页号中
文件管理

3.14 文件管理——索引文件结构

文件的一种扩展机制

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_数据库_33


索引文件结构:直接索引,一级,二级,三级间接索引

  • 一般是以13个结点的结构,对应的是地址,连接的是物理盘块(用来存内容)
  • 在10这个结点位置链接的物理盘块不在存文件内容,而是存的地址
  • 间接索引级别越高,访问效率越低

实例演示

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_死锁_34

3.15 文件管理——文件和树型目录结构

考察:相对路径,绝对路径,全文件名的概念

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_数据库_35

  • 根目录一般是盘符,而Linux和unix是用/来做根文件
  • 可以在不同的文件下面,存在相同的文件名【同级目录不行】
  • 绝对路径:是从盘符开始的路径
  • 相对路径:是从当前目录开始的路径
  • 全文件名:绝对路径+文件名(包括格式扩展名)
  • 注:上面打开访问磁盘的次数都只要一次,通过命令打开,并不是一层一层的进入【相对路径先进入,才进行的打开命令】

例题讲解【2017年上,67】

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_java_36

例题讲解

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_死锁_37


3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_数据库_38

  • 第一空选:C
  • 第二空选:B

3.16 文件管理——空闲存储空间的管理【位示图】

掌握:位示图法的计算问题

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_java_39


空闲存储空间的管理:

  • 指的是磁盘上有大量的空间,需要把空闲的空间管理起来,以便在某个文件要申请空间的时候,能有依据的分配空间。
    • 有很多的方法,我们重点掌握​​位示图法​
      • 空闲区表法:用一个表来记录那些是空闲的
      • 空闲链表法:把空闲区域都链起来,形成一个链表
      • 位示图法:
      • 成组链接法:分组也分链的方式

位示图法

  • 画一个位示图【把整个存储空间分成了很多个物理块】,其中​​1​​表示已经被占用,​​0​​表示空闲

试题讲解

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_死锁_40


3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_java_41

  • 由题知,一个字是32位
  • 注:​​字的概念​
  • 4195号物理块,其实有4196个物理块(0开始)
  • 字是从1开始算
  • 位置是从0开始算

例题讲解【2021上】

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_java_42


3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_死锁_43

设备管理

3.17 设备管理——数据传输控制方式

掌握:前三种方式

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_java_44


数据传输控制方式:

  • 指的是​​内存​​和​​外设​​之间的数据的传输控制问题

几种程序控制方式的介绍:

程序控制方式:

  • 程序控制方式也称为​​程序查询方式​
  • 最低级,也是cpu介入最多的方式,与外设的完成查询形成时间差

程序中断方式:

  • 机制一样,但是主动性变强了,加入了一些中断方式
  • 外设完成了程序的数据的一些传输,就会发出一个中断,系统就会做下一步的处理

DMA方式:

  • 也称为​​直接存取控制方式​
  • 会有专门的DMA控制器,只要是外设和内存的数据交换,过程中就会由控制器来管控,CPU只要在开头的时候做一些记录,之后都有DMA来管控,做完之后再由CPU接管

例题讲解【2021上】

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_进程管理_45

例题讲解【2012上】

考点:异常,中断

  • 异常:是​​指令​​执行过程中在处理器内部发生的特殊事件
  • 中断:是来自处理器外部的请求事件
  • 3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_进程管理_46


  • 3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_数据库_47


例题演示:2017下

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_java_48

3.18 设备管理——虚设备与SPOOLING技术

考察:了解基本原则即可

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_进程管理_49


SPOOLING技术:核心就是开辟了缓冲区,将输出和输入的数据先缓冲起来

  • 比如打印a,b,打印a的时候就把b缓冲起来了,打印完a就会自动开始b,这样打印者等着拿打印的文件即可。

3.19 微内核操作系统

掌握:用户态和核心态都有那些

3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】_服务器_50