计算机操作系统

📑 目录

1. 计算机系统概述

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

1.1.1+1.1.2 操作系统的概念、功能和目标

结构:

  flowchart TB
  用户 --> Y
  用户 --> C
  Y[应用程序] --> C
  C[操作系统] --> 裸机

操作系统:控制和管理计算机系统的硬件和软件资源,组织调度计算机的工作和资源分配以提供给用户和其他软件方便的接口和环境,是系统最基础的系统软件

功能:

  • 处理器管理
  • 存储器管理
  • 文件管理
  • 设备管理
  • ……

一些服务:

  • GUI(比如windows的图形拖拽)
  • 命令接口:
    • 联机命令接口(交互式命令接口)
    • 脱机命令接口(批处理命令接口)
  • 程序接口,通过系统调用所有程序接口(比如C++中std::cout«“hello world"实际调用的系统的接口)
  • ……

1.1.3 操作系统的特征

特征:

  • 并发
    • 并发:同一时刻间隔发送,微观上交替发生
    • 并行:同时发生
  • 共享:
    • 互斥共享方式
    • 同时共享方式
  • 虚拟:将物理实体变化为逻辑产物,虚拟技术中如虚拟处理器技术,虚拟存储器技术等,分别采用了空分复用(拆分空间)和时分复用技术(拆分时间交替运行)
  • 异步:多个程序运行允许并发执行而不是串行(即走走停停,不可预知速度)

1.2 操作系统的发展与分类

  1. 手工操作阶段:通过纸带写程序,用户独占全机
  2. 批处理阶段:
    • 单道批处理系统:通过外围机存放到磁带机,引入脱机输入/输出技术,由监督程序复杂作业的输入,输出。
    • 多道批处理系统:多道程序并发执行,无人机交互
  3. 分时操作系统:划分时间处理不同用户,对各个用户完全公平
  4. 实时操作系统:可以处理紧急任务,及时且可靠
  5. 网络操作系统
  6. 分布式操作系统
  7. ……

1.3 操作系统的运行机制

1.3.1 操作系统的运行机制

  • 内核程序:操作系统
  • 应用程序:一般开发的程序,如QQ等

CPU的两种状态:CPU通过一个寄存器程序状态字寄存器(PSW)标记不同状态(1:内核态,0:用户态(不同CPU可能不同))

  • 内核态:通过特权指令蟹盖PSW改为用户态允许用户程序
  • 用户态:当触发中断时,操作系统强制切换为内核态

1.3.2 中断和异常

中断是让操作系统内核夺回CPU使用权的唯一途径

类型:

  • 内中断:陷入指令或特权指令
    • 故障(fault)
    • 终止(abort)
    • 陷入(trap)
  • 外中断:来自外部的中断信号,如时钟中断…
    • 时钟中断
    • I/O中断请求

基本原理:

CPU根据不同的中断信号用不同的中断程序处理,根据类型查询“中断向量表”

1.3.3 系统调用

按功能分类:

  • 设备管理
  • 文件管理
  • 进程管理
  • 进程通信
  • 内存管理
flowchart  LR
A[调用库函数] --> B[处理相关指令]
B --> C[传参指令,将系统调用需要的参数存放道某些通用寄存器中]
C --> D[陷入指令(trap指令/访管指令)]
D --> E[处理后续相关指令]

注:凡是与共享资源有关的操作,会直接影响其他进程的操作,就一定需要操作系统介入,陷入指令在用户态下完成。

1.4 操作系统体系结构

1.4 操作系统体系结构(上)

操作系统:

  • 非内核功能(如GUI)

  • 内核功能

    • 时钟管理
    • 中断处理
    • 原语(设备驱动,CPU切换等)
    • …
  • 大内核:

    • 优电:高性能
    • 缺点:庞大
  • 微内核:将更接近硬件的功能分为内核态而其余为应用态

    • 优点:内核功能少,结构清晰
    • 缺点:切换状态频繁

1.4 操作系统体系结构(下)

操作系统

1.5 操作系统引导

主存:

  • RAM
  • ROM(BIOS):包含ROM引导程序即自举程序(指示CPU读取磁盘的主引导记录进入RAM) 磁盘:(按照操作系统后)
  • 主引导记录(MBR):包含磁盘引导程序和分区表
  • C盘:
    • 引导记录(PBR):负责找到启动管理器(完成操作系统初始化等)
    • 根目录
    • 其他

1.6 虚拟机

  • 第一类VMM:
    • 直接运行在硬件上
    • 按照Guest OS时直接在硬盘上分配
    • 性能更好
    • 支持更多虚拟机
    • 迁移性更差
    • 运行在最高特权级(Ring 0)
  • 第二类VMM:
    • 运行在宿主机操作系统Host OS上,依赖Host OS分配资源
    • GuestOS有自己的虚拟磁盘,实际上是Host OS的文件
    • 性能更差
    • 支持的虚拟机数量更少
    • 更好的迁移性
    • 运行在用户态,部分运行在内核态,系统调用会被VMM截获转化为对Host OS的系统调用

2. 进程与线程

2.1 进程与线程

2.1.1+2.1.2 进程的概念、组成、特征

程序:静态的指令集合

进程:动态的执行过程

操作系统创建进程时分配唯一的PID并记录所属用户id(UID),分配资源(分配内存,枕在使用的I/O设备) ,运行情况(CPU使用时间,此磁盘使用情况,网络…),这些信息存储在进程控制块(PCB)中

进程实体组成:

  • PCB
  • 程序段:程序的代码
  • 数据段:程序产生的数据

进程是系统进行资源分配和调度的独立单位

进程的特征:

  • 动态性:动态产生,变化,消亡
  • 并发性:内存中有多个进程实体可并发运行
  • 独立性:进程可以独立运行,独立获取资源,接受调度的基本单位
  • 异步性:各进程以不可预知的速度推进
  • 结构性:每个进程都有一个PCB

2.1.3 进程的状态与转换

状态:

  • 创建态:进程正在被创建
  • 就绪态:已具备运行条件
  • 运行态:占用CPU运行
  • 阻塞态:当需要等待I/O等阻塞操作时阻塞
  • 终止态:回收资源和进程PCB
flowchart LR
A[创建态] --> B[就绪态]
B <--> C[运行态]
C --> E[终止态]
C --> D[阻塞态]
D --> B
  1. 当进程处于运行态但时间片用完会直接回到就绪态,当进程进行系统调用或某请求,某事件发生时转到阻塞态
  2. 阻塞态需要先到就绪态
  3. 就绪态没有处理机资源

基本状态:

  • 运行态
  • 就绪态
  • 阻塞态

进程的组织 进程链接方式

  • 链接方式
    • 执行指针:指向当前运行态的进程
    • 就绪队列指针:指向处于就绪态的进程
    • 等待xx的阻塞队列:根据阻塞原因分为不同阻塞队列
  • 索引方式
    • 从队列指向改为索引表

原语:执行具有原子性,不会被中断,实现用“关中断指令”与“开中断指令”两个特权指令实现原子性

  • 关中断指令:执行后不会检查中断信号直至开中断指令

进程控制相关原语: 进程创建:

  • 创建原语:
    • 申请空白PCB
    • 为新进程分配资源
    • 初始化PCB
    • 将PCB插入就绪队列
  • 引起创建事件:
    • 用户登录:分时系统中,用户登录成功会建立新进程
    • 作业调度:多道批处理系统中,有新作业放入内存时,会建立新进程
    • 提供服务:用户向操作系统提出某些请求时会创建新进程处理该请求
    • 应用请求:由用户进程主动请求创建子进程

2.1.4 进程控制

含义:实现进程转换

用原语实现(具有原子性)

具体通过:“开中断指令”和“关中断指令”实现

相关原语:

进程原语1 进程原语2 进程原语3 进程原语4 进程关系为树型结构,进程没了实际将资源归还给最先进程。

程序运行:

PSW:程序状态字寄存器,PC:程序计数器,IR:指令寄存器…

因为CPU中的寄存器是公用的,使用为了比卖你切换导致某进程的数据被覆盖等,会将其CPU的信息保存在PCB中,即保存运行环境(保存必要信息)。

2.1.5 进程通信

含义:进程之间产生的数据交互

各个进程之间的内存地址空间相互独立

进程通信:

  • 共享存储:在内存中开辟共享存储区。比如在linux中通过系统调用:shm_open(…)申请共享区,mmap(…)将共享内存区映射到自己进程的地址空间。为了避免进程对共享空间访问出错,需要进行互斥操作,各个进程可以使用操着系统的同步互斥工具(如P,V操作),以上基于存储区的共享,很自由,通信快,而基于数据结构的共享会将共享内存区划分为数据结构,比如只能为一个数组。
  • 消息传递:进程间交换格式化的消息为单位,通过“发生消息/接收消息”两个原语进行数据交换。
    • 直接通信:如进程P和Q,进程Q有自己的消息队列,一个消息有“消息头”“消息体”,进程P使用发送原语发送给Q,P负责接收。即点名道姓进行消息传递。
    • 间接通信:P向操着系统申请信箱A,P使用发送原语指明发送到信箱A,Q选择接受信箱A的信息。
  • 管道通信:单向通信,一端写一端读。这里管道是一个特殊的文件名为pipe文件,本质为内存中的大小固定的内存缓冲区。各个进程需要互斥访问管道。
2.1.5_1 进程通信
2.1.5_2 信号

含义:通知进程某个事件的情况以处理。

信号有信号名和序号及对应事件,由进程处理其信号。具体为PCB中由待处理信号pending向量和被阻塞信号blocked。其他进程通过系统函数发送信号,其中pending比如由1,2,3…8,发送1,8信号就会使1,8位置的数据由0变为1.其中blocked也称为信号掩码通过设置其可以屏蔽某信号,比如设置7,8为1则屏蔽了7,8信号。原理就是比如pending为10000001,blocked为00000011,处理时,blocked变为11111100,然后与pending&运算为10000000,则只有序号为1的信号会处理。

处理信号时机:当进程变态的时候。

2.1.6 线程

2.1.6_1 线程的概念与特点
2.1.6_2 线程的实现方式和多线程模型
2.1.6_3 线程的状态与转换

2.2 处理机调度

2.2.1 调度的概念、层次

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

2.2.2_1+2.2.4 进程调度的时机、切换与过程、方式
2.2.2_2 调度器和闲逛进程

2.2.3 调度的目标(调度算法的评价指标)

2.2.5 调度算法

2.2.5_1 调度算法:先来先服务、最短作业优先、最高响应比优先
2.2.5_2 调度算法:时间片轮转、优先级、多级反馈队列
2.2.5_3 调度算法:多级队列调度算法

2.2.6 多处理机调度

2.3 进程同步与互斥

2.3.1 同步与互斥的基本概念

2.3.2 进程互斥的实现方法

2.3.2_1 进程互斥的软件实现方法
2.3.2_2 进程互斥的硬件实现方法

2.3.3 互斥锁

2.3.4 信号量机制

2.3.4_1 信号量机制
2.3.4_2 用信号量实现进程互斥、同步、前驱关系

2.3.5 经典同步问题

2.3.5_1_1 生产者-消费者问题
2.3.5_1_2 多生产者-多消费者问题
2.3.5_2 读者-写者问题
2.3.5_3 哲学家进餐问题

2.3.6 管程

2.4 死锁

2.4.1 死锁的概念

2.4.2 死锁的处理策略—预防死锁

2.4.3 死锁的处理策略—避免死锁

2.4.4 死锁的处理策略—检测和解除

3. 内存管理

3.1 内存管理基础

3.1.1 内存的基础知识

3.1.1_1 内存的基础知识
3.1.1_2 内存管理的概念
3.1.1_3 进程的内存映像
3.1.1_4 (选修)覆盖与交换

3.1.2 连续分配管理方式

3.1.2_1 连续分配管理方式
3.1.2_2 动态分区分配算法

3.1.3 分页存储管理

3.1.3_1 基本分页存储管理的概念
3.1.3_2 基本地址变换机构
3.1.3_3 具有快表的地址变换机构
3.1.3_4 两级页表

3.1.4 基本分段存储管理方式

3.1.5 段页式管理方式

3.2 虚拟内存

3.2.1 虚拟内存的基本概念

3.2.2 请求分页管理方式

3.2.4 页面置换算法

3.2.5+3.2.3 页面分配策略

3.2.7 内存映射文件

4. 文件管理

4.1 文件系统基础

4.1_1 初识文件管理

4.1_2 文件的逻辑结构

4.1_3 文件目录

4.1_4 文件的物理结构

4.1_4 文件的物理结构(上)
4.1_4 文件的物理结构(下)

4.1_5 逻辑结构VS物理结构

4.1_6 文件存储空间管理

4.1_7 文件的基本操作

4.1_8 文件共享

4.1_9 文件保护

4.3 文件系统

4.3_1 文件系统的层次结构

4.3_2 文件系统布局

4.3_4 虚拟文件系统

5. 输入/输出(I/O)管理

5.1 I/O管理概述

5.1_1 I-O设备的概念和分类

5.1.2 I-O控制器

5.1_3 IO控制方式

5.1_4 I-O软件层次结构

5.1_5 输入输出应用程序接口和驱动程序接口

5.2 I/O核心子系统

5.2_1 IO核心子系统

5.2_2 假脱机技术

5.2_3 设备的分配与回收

5.2_4 缓冲区管理

5.3 磁盘与固态硬盘

5.3_1 磁盘的结构

5.3_2 磁盘的管理

5.3_3 磁盘调度算法

5.3_3 减少磁盘延迟时间的方法

5.3.4 固态硬盘

评论

加载评论中...