0%

速成笔记

💡 TIP

放一些选择填空会出的点

相关链接|

操作系统概述

知识点

操作系统四个基本特征

并发、共享、虚拟、异步

操作系统的主要功能包括
  • 处理机管理

  • 存储管理

  • 设备管理

  • 文件管理

  • 用户接口

人机交互的历程
  • 手工操作阶段

    • 人机速度矛盾
  • 单道批处理阶段

    • 系统资源利用率还是很低
  • 多道批处理阶段

    • 缺乏人机交互,进程运行无法终止
  • 分时操作系统

    • 不支持插队,不能处理紧急事件
    • 分时系统中,时间片一定,用户数越多,响应时间越长
      • 分时系统中,像是给每个用户分一个时间片,排队的进行访问,故用户数越多,排到的时间越长,响应时间越长
  • 实时操作系统

基本概念

  • 特权指令:不允许用户程序使用(只允许操作系统使用)如IO指令,中断进程

  • 非特权指令:普通的运算指令

  • 内核程序:系统的管理者,可执行一切指令、运行在核心态

  • 应用程序:普通引用程序只能执行非特权指令,运行在用户态

💡 TIP

还有一个**“访管指令”**,访管指令是在用户态使用的,该指令的还以是用户资源进入核心态。

核心态无需再次进入核心态

故,CPU处于核心态时,它可以执行出“访管”指令外的全部指令

处理机状态

  • 用户态(目态):CPU只能执行非特权指令

  • 核心态(又称管态、内核态):可以执行所有指令

  • 用户态到核心态:通过中断(是硬件完成的)

⚠️ WARNING

用户态到核心态的转换时通过中断,即硬件完成的,并不是操作系统,也不是中断处理程序。

核心态到用户态的转换,是通过操作系统完成的。

原语

  • 处在操作系统最底层,是最接近硬件的部分

  • 这些程序的运行具有原子性其操作只能一气喝成

  • 这些程序的运行时间都较短,而且调用频繁

中断、系统调用、体系结构

  • 内中断(异常,信号来自内部)

    • 自愿中断————指令中断
    • 强迫中断:硬件中断、软件中断(eg:0/0)
  • 外中断(中断,信号来自于外部):外设请求、人工干预(打印机)

  • 系统调用:

    • 系统给程序员(应用程序)提供的唯一接口,可获得OS的服务,在用户态发生核心态处理
  • 体系结构:大内核、微内核

进程管理

💡 TIP

进程的组成

包括程序、数据、进程控制块

image-20241224145205278

处理机调度

是对处理机进行分配,即从就绪队列中按照指定的算法,选择一个进程并将处理机分配给它运行,以实现进程并发的执行

分类

  • 高级调度(作业调度

  • 中级调度(内存置换

  • 多级调度(进程调度

进程同步

原因

  • 协调进程之间相互制约关系

制约关系

  • 同步:进程同步也是进程之间直接的制约关系,是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作层次而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于他们之间的合作

  • 互斥:也称间接制约关系。当一个进程进入临界区使用临界资源时,另给进程必须等待,当占用临界资源的进程退出临界区后,另进程才允许去访问此临界资源

临界资源

  • 一次仅允许一个进程使用的资源

临界区

  • 在每个进程访问临界资源的那段程序,当多个线程并发执行时,如果它们都能够访问和修改同一资源,就可能导致数据的不一致和程序的错误行为。为了避免这种情况,临界区通常通过限制同时执行这段代码的线程数量,来确保对共享资源的访问是互斥的

临界区的作用
  • 保护共享资源

  • 防止竞态条件

  • 提高程序稳定性

临界区的实现通常依赖于同步机制,如互斥锁、信号量、或条件变量

同步机制

  • 互斥锁(Mutex):互斥锁是最常用的同步机制之一。当一个线程进入临界区时,它会获取一个互斥锁;当进程退出临界区时,它会释放互斥锁。其他进程进入临界区时,如果锁已被占用,则会被阻塞,直到互斥锁被释放

  • 信号量(Semaphore):信号量是一种更通用的同步机制,它可以用来控制多个线程对多个资源的访问。在临界区场景中,信号量可以被设置为1,以模拟互斥锁的行为

  • 条件变量(Condition Variable):条件变量通常与互斥锁一起使用,用于在多个进程之间传递信号。虽然条件变量不直接用于实现临界区,但它可以在线程鞥带进入临界区时提供有效的等待和唤醒机制

临界区互斥

原则
  • 空闲让进

  • 忙则等待

  • 有限等待

  • 让权等待

PV操作

PV必须成对出现

image-20241224162602748

死锁

定义

多个进程因争夺资源而造成的一种僵局,如果没有外力,这些进程将无法推进

产生的原因

非剥夺资源的竞争和进程的不恰当推进顺序

必要的条件
  • 互斥

  • 环路等待

  • 不可剥夺

  • 请求和保持

解决方法
  1. 预防死锁

    • 破坏互斥条件
    • 破坏不剥夺条件
    • 破坏请求和保持条件
    • 破坏循环等待条件
  2. 避免死锁

    • 安全状态、银行家算法
  3. 检测死锁

    • 利用死锁定理
  4. 解除死锁

    • 资源剥夺法
    • 撤销进程法
    • 进程回退法

内存管理

内存管理的目的和意义

引入目的

更好的至此多道程序的并发执行,提高系统性能

主要功能

  1. 内存空间的分配与回收

  2. 存储的保护与共享

    保证各道作业在各自的存储空间内运行,互不干扰

  3. 地址变换

    在多道程序环境下,程序中的逻辑地址与内存中的物理地址不可能一致,因此存储管理必须提供地址变换功能,把逻辑地址转换成相应的物理地址

  4. 内存扩充

    利用虚拟存储技术或自动覆盖技术,从逻辑上扩充内存

用户程序的主要处理阶段

  1. 编辑阶段:创建源文件

  2. 编译阶段:由编译程序将用户进程源代码编译成若干目标模块,生成目标文件

  3. 链接阶段:由链接程序编译后形成的一组目标模块及所需的库函数链接到一起,形成一个完整的装入模块,生成可执行文件

  4. 装入阶段:由装入程序将装入模块装入内存运行

  5. 运行阶段

相关概念

程序的装入

绝对装入

在编译时,如果知道程序将驻留在内存什么位置,那么,编译程序将产生绝对地址的目标代码。即按照物理内存的位置赋予实际的物理地址

  • 优点:在时间上效率很高

  • 缺点

    1. 由于内存大小限制,能够装入内存的并发执行的进程大大减少
    2. 编译程序必须知道内存当前空闲地址部分和其地址,而在多道程序下,编译程序根本不可能知道当前空闲地址的部分,因此绝对装入方式只适用于弹道程序环境
静态重定位

在程序装入对目标代码装入内存的过程中完成,是指在程序开始运行前,程序中指令数据的各个地址均已完成重定位,即完成虚拟地址到内存地址的映射。地址变换通常是在装入时一次完成的,以后不会改变

  • 优点:不需要硬件支持(这里的硬件,指的是后文提到的重定位寄存器)(对比动态重定位)

  • 缺点:程序在静态重定位之后就不能在内存中搬动了,并且要求程序的存储空间是连续的(对比动态重定位)

动态重定位

动态重定位的方式是把地址转换推迟到程序真正执行时才进行。但这种方式需要硬件支持,也就是重定位寄存器的支持,否则会影响指令执行速度

  • 优点:可以解决碎片问题。(因为不需要像静态重定位一样要求程序装入,每个模块之间的存储位置不一定需要相联,只需要由自己的重定位寄存器就行)

  • 缺点:需要硬件支持

程序的链接

  • 静态链接:在程序运行之前,先将各目标及他们所需要的库函数链接生成一个完整的可执行程序,以后不在拆开

  • 装入式链接:将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的链接方式

  • 运行时链接:对某些目标模块的链接,是在程序执行中需要该目标模块时,才对它进行的链接。其优点时便于修改和更新,便于实现对目标模块的共享。

内存空间的分配与回收

连续分配管理方式

  • 单一连续分配:分配到内存固定的区域(单用户/单任务的操作系统)

  • 固定连续分配:分配到内存不同的固定区域,分区可以相等可以不等,但要求一定是固定。

  • 动态连续分区

    • 最佳适应
    • 最坏适应
    • 邻近适应

分页分段

image-20241224200835246

image-20241224200851462

页面置换算法

image-20241224201231675

文件系统

文件是以计算机硬盘为载体的存储在计算机上的信息集合

文件系统:就是操作系统中负责操纵和管理文件的一整套设施,它实现文件的共享和保护,方便文件“按名存取”

功能

  • 文件管理

  • 目录管理

  • 文件空间管理

  • 文件共享和保护

  • 提供方便的接口

文件的逻辑结构

  1. 无结构文件

    • 无结构文件按顺序组织起记录并积累保存,他是有序相关信息项的集合,以字节为单位(或称,字节流文件)
  2. 有结构文件(记录式文件)

    • 顺序文件:文件中的记录一个接一个的顺序排列,在访问时需要顺序搜索文件
    • 索引文件:通过一个索引表来检索文件
    • 索引顺序文件:上述两者结合

目录和目录结构

文件控制块

在文件系统内部给每个文件唯一的设置一个文件控制块,它用于描述和控制文件的数据结构,与文件一一对应

FCB中包含了文件的基本信息(文件名,物理地址,逻辑地址,物理结构等),存取控制信息(是否可读/可写、禁止访问的用户名单等),使用信息(如文件的建立时间、修改时间等)

最重要,最基本的还是文件名、文件存放的物理地址。

目录结构

单级目录,二级目录,树形目录,图形目录

文件实现

文件分配方式

连续分配,链接分配,索引分配

对应的结构分别是顺序结构,链式结构,索引结构

文件存储空间管理

  1. 空闲表法

    image-20241224204044181

  2. 空闲链表法

    image-20241224204144283

  3. 位示图法

    image-20241224204252872

磁盘管理

磁盘的物理结构

  • 柱面号、盘面号、扇面号

磁盘调度算法

  • 先来先服务(FCFS

  • 最短查找时间优先算法(SSTF

  • 扫描算法(电梯算法(SCAN

  • 循环扫描算法(CSCAN

设备管理

目标

使用方便、与设备无关、效率高、管理统一

IO设备

分类

存储设备或者输入输出设备、块设备或字节设备、低速中高速设备。

IO控制方式

  1. 程序直接控制方式(查询方式

    CPU不断的去查询设备控制器是否将数据放到了数据存储器中,或者从数据存储器存到设备中,当完成IO时CPU才能去干别的事

  2. 中断方式

    这种方式当CPU发出指令后就可以去干别的时,当设备控制器把数据存在数据寄存器后向CPU发出中断请求,然后CPU再来处理这部分数据。

  3. DMA方式

    虽然中断方式提高了CPU的利用率,但是数据基础器有限,中断是以字节单位进行中断,也就是说读取或存储一个字节后就需要进行中断,那么其实CPU的利用率还是很低的,所以就诞生了DMA方式,这种方式由DMA控制器直接将设备中的数据以数据块为单位直接传输到内存中,当传输结束后才向CPU发起总段

  4. IO通道控制方式

    DMA虽然大大提升了CPU的利用率,但是DMA只能传输一个连续的数据块。所以引入了IO通道的控制方式,IO通道控制方式可以传输不连续的数据块,减少了CPU干预。CPU通过对IO通道发出指令,然后让IO通道自己工作,等待数据传输完才向CPU发起中断

缓冲区

引入目的

  1. 缓和CPU与外设间速度不匹配的矛盾

  2. 提高CPU与外设之间的并行性

  3. 减少CPU的中断次数

设置方式

  1. 单缓冲

    当数据到达率与离去率相差很大时,可采用单缓冲方式

  2. 双缓冲

    当信息输入和输出率相同(或相差不大)时,可利用双缓冲区,实现两者的并行

  3. 多缓冲

    对应阵发性的输入、输出,为了解决速度不匹配问题,可以建立多个缓冲区

设备的分类

  1. 独占设备:

    不能共享的设备,即:在一段时间内,该设备只允许一个进程独占。如打印机

  2. 共享设备

    可由若干各进程同时共享的设备,如磁盘

  3. 虚拟设备

    是利用某种技术把独占设备改造成可由多个进程共享的设备

三种分配技术

  1. 独占分配技术

  2. 共享分配技术:通常用于高速、大容量的直接存取存储设备

  3. 虚拟分配技术:利用共享设备去模拟独占设备,从而使独占设备变成可共享的、快速IO的设备。实现虚拟分配的最有名的是SPOOLing技术,也称作假脱机操作


(完)