二、软考·系统架构师——操作系统

系列文章

一、程序员进阶架构师的基础知识【计算机基础】
二、程序员进阶架构师的基础知识【操作系统】
三、程序员进阶架构师的基础知识【计算机网络基础】
四、程序员进阶架构师的专业知识【软件工程基础】
五、程序员进阶架构师的专业知识【UML建模工具】
六、程序员进阶架构师的专业知识【系统分析】
七、程序员进阶架构师的专业知识【系统设计】
八、程序员进阶架构师的专业知识【架构设计】
九、程序员进阶架构师的专业知识【架构质量及评估】
十、程序员进阶架构师的专业知识【软件测试及维护】

文章目录

  • 系列文章
  • 概述
  • 处理机(CPU)管理
    • 处理机调度
    • 进程管理
      • 前驱图
      • 同步和互斥
  • 存储器管理
    • 分区存储管理
      • 固定(静态)分区
      • 可变分区
      • 可重定位分区
    • 分页存储管理
      • 地址转换
    • 分段存储管理
      • 地址转换
    • 段页式存储管理
    • 虚拟存储管理
  • 设备管理
    • 程序控制
    • 中断
    • DMA
  • 文件管理

概述

  计算机由硬件和软件组成,硬件包括CPU、存储器、输入输出设备、主板等《计算机基础》,软件包括系统软件以及其他应用软件,而操作系统就属于系统软件,它是硬件基础上第一层软件,是硬件和其他软件的沟通桥梁,目前常见的操作系统有Windows、Linux、unix、Mac OS等。
  操作系统在计算机中充当着指挥者,指挥硬件和软件去完成希望计算机能完成的任务,同时也充当着监视者,监视硬件资源、软件资源以及其他系统资源的使用情况。主要功能可以分为处理机(CPU)管理、存储器管理、设备管理、文件管理和用户接口。

处理机(CPU)管理

  处理机管理的工作是对CPU资源进行合理的分配使用,以提高处理机利用率,并使各用户公平地得到处理机资源。

处理机调度

  处理机调度分为:作业调度、内存调度、进程调度。

  • 作业调度:作业调度从外存的后备队列中选择一批作业进入内存,为它们建立进程,这些进程被送入就绪队列。
  • 进程调度:从就绪队列中选出一个进程,并把其状态改为运行状态,把CPU分配给它。
  • 内存调度:是为了提高内存的利用率,系统将那些暂时不能运行的进程挂起来。当内存空间宽松时,选择具备运行条件的进程,将其唤醒。

  可以看到处理机调度也就是对进程的调度,调度的过程中存在3个状态,分别是运行状态、就绪状态、阻塞状态,也叫三态模型。
二、软考·系统架构师——操作系统_第1张图片

进程管理

   进程通常由程序、数据集合、进程控制块PCB组成。PCB是一种数据结构,是进程存在的唯一标识,有以下三种数据结构:

  • 线性方式:把所有PCB组织在一张线性表中,每次查找需要扫描全表。
    二、软考·系统架构师——操作系统_第2张图片

  • 链接方式:把具有同一状态的PCB链接成一个队列,存储在连续的区域。
    二、软考·系统架构师——操作系统_第3张图片

  • 索引方式:同一状态的PCB归入一张索引表,多个状态对应多个不同的表。
    二、软考·系统架构师——操作系统_第4张图片

前驱图

  前驱图是一个有向无循环图,由节点和有向边组成。节点代表各程序段的操作,而节点间的有向边表示两个程序存在的前趋关系。用这种图可以描述多个程序或进程之间的执行顺序,执行顺序由左向右,由上向下执行。
  下图前驱图可记为:(P1,P2),(P1,P4),(P2,P3),(P2,P5),(P3,P4),(P3,P6),(P4,P7),(P5,P6),(P7,P6),(P6,P8)。同时有10个前驱关系,P1为初始节点,P8为终止节点。
二、软考·系统架构师——操作系统_第5张图片

同步和互斥

  • 同步
    操作系统的并发性带来了异步性,有时需要通过进程同步解决这种异步问题。同步亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系。进程间的直接制约关系就是源于它们之间的相互合作。前驱图可以表示进程之间的同步关系。
  • 互斥
    互斥指系统中某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。我们把一个时间段内只允许一个进程使用的资源称为临界资源。对于临界资源的访问,必须互斥的进行。
    互斥,也叫间接制约关系。进程互斥指当一个进程访问某临界资源时,另一个进程想要访问该临界资源的进程必须等待。当前访问临界资源的进程访问结束,释放该资源之后,另一个进程才能去访问临界资源。
  • PV操作
    PV操作是用来解决同步互斥问题,在进入临界区先执行P操作(可能阻塞某个进程),离开临界区后执行V操作(可能唤醒某个进程)。为什么是可能呢?这里的被操作对象是临界资源或者称之为信号量,当进行P操作时对信号量进行-1,当信号量>=0时可以进入临界区,否则阻塞该线程。同样当进行V操作时对信号量进行+1,当信号量>0时说明等待队列有等待进程,这时需要唤醒等待进程。
    • PV同步问题
      P1、P2、P3、P4的前驱图如下所示
      二、软考·系统架构师——操作系统_第6张图片
      若用PV操作控制进程执行的过程,则需要5个信号量分别是S1、S2、S3、S4、S5,且信号量值都为0,则P1、P2、P3、P4执行前后需要以下操作:
      P1:执行前无P操作,执行后操作V(S1)V(S2)
      P2:执行前P(S1)P(S3),执行后操作V(S4)
      P3:执行前P(S2),执行后操作V(S3)V(S5)
      P4:执行前P(S4)P(S5),执行后无V操作
    • PV互斥问题
      假设系统中有n个进程共享3台打印机,任一进程只能使用一台打印机。若用PV操作控制n个进程使用打印机,则信号量S初始值为3,取值范围为3~-(n-3)。若信号量为-2时,系统中有2个进程等待。

存储器管理

  存储器管理的对象是主存,也称内存。它的主要功能包括分配和回收主存空间、提高主存利用率、扩充主存、对主存信息实现有效保护。
  存储管理方案的主要目的是解决多个用户使用主存的问题,其存储管理方案主要包括分区存储管理、分页存储管理、分段存储管理、段页式存储管理以及虚拟存储管理。

分区存储管理

  分区存储管理是把主存的用户区域划分成若干区域,每个区域分配给一个用户作业使用,并限制只能在自己的区域运行。分区管理划分为固定分区、可变分区、可重定位分区。

固定(静态)分区

  把可分配的主存储器空间分割成若干个连续区域,每个区域的大小可以相同,也可以不同。为了说明各分区的分配和使用情况,存储管理需设置一张“主存分配表”。主存分配表指出各分区的起始地址和长度,表中的占用标志位用来指示该分区是否被占用了,当占用的标志位为“0”时,表示该分区尚未被占用。进行主存分配时总是选择那些标志为“0”的分区,当某一分区分配给一个作业后,则在占用标志栏填上占用该分区的作业名。采用固定分区存储管理,主存空间的利用不高
二、软考·系统架构师——操作系统_第7张图片

可变分区

  可变分区方式是按作业的大小来划分分区。当要装入一个作业时,根据作业需要的主存量查看主存中是否有足够的空间。若有,则按需要量分割一个分区分配给该作业;若无,则令该作业等待主存空间。
可变分区可以克服固定分区方式中的主存空间的浪费
- 可变分区调度算法
首次适应算法:每次分配时,总是顺序查找未分配表,找到第一个能满足长度要求的空闲区为止,作业装入后剩余空间仍为空闲区,这种分配算法会造成较多的“碎片”。
二、软考·系统架构师——操作系统_第8张图片
最佳适应算法:从空闲区中挑选一个能满足作业要求的最小分区,这样可保证不去分割一个更大的区域。
二、软考·系统架构师——操作系统_第9张图片
最差适应算法:挑选一个最大的空闲区分割给作业使用。
二、软考·系统架构师——操作系统_第10张图片

可重定位分区

在可变分区分配方式中,经过一段时间的分配和回收后,内存中会产生很多小的空闲分区。可重定位分区分配方式就是在可变分区分配方式的基础上增加紧凑功能,即在找不到足够大的空闲分区、而空闲分区总和却能满足用户的要求时,对内存空间进行紧凑。

分页存储管理

  分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为,并为各页加以编号,从0开始,如第0页、第1页等,称为页号。相应地,也把内存空间物理地址分成与页面相同大小的若干个存储块,称为**(物理)块**,也同样为它们加以编号,如0#块、1#块等等称为块号

地址转换

  在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中,在这期间会存在逻辑地址转换物理地址的过程,这里的转换主要是逻辑地址的页号转为物理地址的块号,在页表的帮助下,它将页号转换成块号,找到对应的物理地址。
二、软考·系统架构师——操作系统_第11张图片

  • 逻辑地址:页号+页内地址
  • 物理地址:块号+块内地址
  • 地址转换公式
    假设页大小和块大小都是1024B,那么:
    页号=逻辑地址/页大小
    页内地址=逻辑地址%页大小
    物理地址=页号对应的块号*页大小+页内地址
  • 地址转换技巧
    如果页大小为4KB,则逻辑地址的 0~11位低位表示页内地址,剩余的高位以上表示页号。为什么这么说?4KB=4096=2^12,逻辑地址的 0~11位转换成10进制也是2^12。举个例子:
    页大小为4K,页表如下,逻辑地址为16进制1D16H,物理地址为16进制3D16H。
    解析:1位16进制可以用4位2进制表示,如上述所讲可以看出,1D16H中的D16为低位可以用3位16进制可表示=2^12=4K=页内地址,剩下的高位1也就是逻辑地址的页号,对应的物理块号为3,所以物理地址为3+D16。
    二、软考·系统架构师——操作系统_第12张图片

分段存储管理

  分段存储管理为每个段分配一个连续的地址,而进程中的段可以离散的分配到主存的不同段中,在系统中为每个进程建立一张段表,通过段表找到每个段对应的主存区。
二、软考·系统架构师——操作系统_第13张图片

地址转换

  • 逻辑地址:段号+段内地址
  • 物理地址:段号+段内地址
  • 地址转换公式
    根据段号S查段表,如果段内地址<段长,物理地址=基地址+段内地址

段页式存储管理

  段页式系统的基本原理,是分段存储管理方式和分页存储管理方式原理的结合,即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。

虚拟存储管理

  不管是分区存储、分页存储、分段存储都是需要将整个程序装入内存才能运行,当程序的存储空间要求大于实际的内存空间时,就使得程序难以运行了。虚拟存储是把一个程序所需要的存储空间分成若干页或段,程序运行用到页和段就放在内存里,暂时不用就放在外存中.当用到外存中的页和段时,就把它们调到内存。

设备管理

  I/O设备是计算机组成的一部分,可以向计算机输入数据或者接收计算机的数据进行展示。设备管理是调整CPU与输入输出设备之间的关系。输入输出设备和CPU的关系可以分为两种,一种是两者串行工作,一种是两者并行工作,按照这两种关系可以分为程序控制、中断、DMA三种工作方式。

程序控制

  • 无条件传送:I/O端口总是准备好,CPU需要时随时直接访问。
  • 程序查询:CPU不断的访问/测试I/O设备的状态。
    二、软考·系统架构师——操作系统_第14张图片

中断

  当某进程要启动某个IO设备工作时,便由CPU向相应的设备控制器发出一条IO命令,然后立即返回继续执行原来的任务。
二、软考·系统架构师——操作系统_第15张图片

DMA

  中断驱动IO比程序IO方式更有效,但注意到,它仍是以字(节)为单位进行IO的,每当完成一个字(节)的IO时,控制器便要向CPU请求一次中断。采用中断驱动IO方式时的CPU,是以字(节)为单位进行干预的。如果将这种方式用于块设备的IO中,显然是极其低效的。为了进一步减少CPU对IO的干预而引入了直接存储器访问方式。该方式的特点:

  • 数据传输的基本单位是数据块
  • 所传送的数据是从设备直接送入内存,或者相反。
  • 仅在传送一个或多个数据块的开始或结束时,才需要CPU干预,整块数据的传送是在控制器的控制下。
    二、软考·系统架构师——操作系统_第16张图片

文件管理

  在现代计算机系统中,用户的程序和数据,操作系统自身的程序和数据,甚至各种输出输入设备,都是以文件形式出现在操作系统的管理者和用户面前。文件管理是对文件位于外存储器的存储空间进行组织,分配和回收,负责文件的存储,检索,共享和保护。

你可能感兴趣的:(软考,系统架构)