《操作系统》知识框架整理

编程入门 行业动态 更新时间:2024-10-28 04:24:09

文章目录

  • 第1章 计算机系统概述
    • 1.1 操作系统的基本概念
      • 1.1.1 操作系统的三大功能
      • 1.1.2 操作系统的四大特征
    • 1.2 操作系统的分类
    • 1.3 操作系统的运行机制和体系结构
      • 1.3.1 运行机制和体系结构
      • 1.3.2 中断和异常
      • 1.3.3 系统调用
  • 第 2 章 进程管理
    • 2.1 进程与线程
      • 2.1.1 进程的定义、特征、组成、组织
        • (1)进程的定义
        • (2)进程的特征
        • (3)进程的组成
        • (4)进程的组织
      • 2.1.2 进程的五种状态及状态转换
      • 2.1.3 原语实现对进程的控制
        • (1)什么是进程控制?
        • (2)进程控制的五种原语
      • 2.1.4 进程之间的三种通信
      • 2.1.5 线程概念与多线程模型
        • (1)什么是线程
        • (2)线程的属性
        • (3)多线程模型
    • 2.2 处理机的调度
      • 2.2.1 处理机的三种调度
        • (1)调度的概念
        • (2)高级调度( 作业调度)
        • (3)中级调度(内存调度)
        • (4)低级调度(进程调度)
        • (5)三种调度对比
      • 2.2.2 进程调度的时机、过程、方式
      • 2.2.3 调度算法的五种评价指标
        • (1)CPU利用率
        • (2)系统吞吐量
        • (3)周转时间
        • (4)等待时间
        • (5)响应时间
      • 2.2.4 六种作业/进程调度算法
        • (1)先来先服务(FCFS)
        • (2)短作业优先(SJF)
        • (3)高响应比优先(HRRN)
        • (4)前三种算法对比
        • (5)时间片轮(RR)
        • (6)优先级调度算法
        • (7)多级反馈队列调度算法
        • (8)后三种算法对比
    • 2.3 进程的同步与互斥
      • 2.3.1 进程的同步与互斥
    • 2.4 死锁
      • 2.4.1 什么是死锁?
      • 2.4.2 死锁产生的四个必要条件
      • 2.4.3 什么时候会发生死锁?
      • 2.4.4 死锁的处理策略
        • (1)预防死锁
        • (2)避免死锁:银行家算法
        • (3)死锁的检测和解除
  • 第 3 章 内存管理
    • 3.1 内存管理的概念
      • 3.1.1 什么是内存
        • (1)什么是内存?有何作用?
        • (2)常用数量单位&内存地址
        • (3)逻辑地址(相对地址)vs物理地址(绝对地址)
        • (4)从写程序到程序运行:编译、链接、装入
        • (5)装入的三种方式
        • (6)链接的三种方式
      • 3.1.2 内存管理的四个内容
        • (1)内存空间的分配与回收
        • (2)内存空间的扩展(实现虚拟性)
        • (3)地址转换
        • (4)内存保护
      • 3.1.3 覆盖技术与交换技术的思想
      • 3.1.4 内存的分配与回收
        • (1)单一连续分配
        • (2)固定分区分配
        • (3)动态分区分配(可变分区分配)
        • (4)外部碎片和内部碎片
      • 3.1.5 动态分区分配的四种算法
        • (1)首次适应算法
        • (2)最佳适应算法
        • (3)最坏(大)适应算法
        • (4)临近适应算法
        • (5)四种算法归纳比较
      • 3.1.6 分页存储
        • (1)为什么学习分页存储?
        • (2)基本分页存储管理的思想
        • (3)分页存储的重要概念
        • (4)如何实现地址的转换
        • (5)如何计算页号和页偏移量
        • (6)如何知道页面在内存中的起始地址?
      • 3.1.7 分页存储管理:1.基本地址变换结构
        • (1)页表寄存器
        • (2)地址变换过程
      • 3.1.8 分页存储管理:2.快表的地址变换结构
        • (1)局部性原理
        • (2)快表(TLB)
        • (3)基本地址变换与块表地址变换的比较
    • 3.2 虚拟内存管理
      • 3.2.1 虚拟内存的基本概念
        • (1)传统存储管理的特征、缺点
        • (2)局部性原理
        • (3)虚拟内存的定义和特征
        • (4)如何实现虚拟内存技术
  • 第 4 章 文件管理
    • 4.1 文件系统
      • 4.1.1 文件管理的概念和功能
      • 4.1.2 文件逻辑结构
        • (1)顺序文件
        • (2)索引文件
        • (3)索引顺序文件
        • (4)多级索引顺序文件
      • 4.1.3 文件目录结构
        • (1)单级目录
        • (2)两级目录结构
        • (3)多级目录结构(树形目录结构)
        • (4)无环图目录结构
      • 4.1.4 文件物理结构
        • (1)连续分配
        • (2)链接分配:隐式和显式
        • (3)索引分配
  • 第5章 I/O管理
    • 5.1 I/O管理概述
      • 5.1.1 I/O设备简介
        • (1)什么是I/O设备?
        • (2)I/O设备分类
        • (3)I/O设备组成
      • 5.1.2 I/O控制器
        • (1)四大功能
        • (2)三大组成
        • (3)两种寄存器编址方式
      • 5.1.3 OS控制I/O设备的四种方式
      • 5.1.4 I/O软件的层次结构
        • (1)I/O软件层次总览
    • 5.2 I/O核心子系统
      • 5.2.4 缓冲区管理
      • 5.1.4 I/O软件的层次结构
        • (1)I/O软件层次总览
    • 5.2 I/O核心子系统
      • 5.2.4 缓冲区管理

本博客只为方便学习,不做其他用途。
本文档在此博客基础上整理:https://bithachi.blog.csdn/article/details/104415990

第1章 计算机系统概述

1.1 操作系统的基本概念

1.1.1 操作系统的三大功能

参考博客:https://blog.csdn/weixin_43914604/article/details/104408571

操作系统有以下三大功能:

1.1.2 操作系统的四大特征

参考博客:https://blog.csdn/weixin_43914604/article/details/104416461

四大特征:并发、共享、虚拟、异步

这里注意区别并发和并行的概念:

  • 并发:两个或多个事件在同一时间间隔内发生,这些事件在宏观上是同时发生的,在微观上是交替发生的。操作系统的并发性指系统中同时存在着多个运行的程序

  • 并行:两个或多个事件在同一时刻发生

  • 资源共享即共享,是指系统中的资源可以供内存中多个并发执行的进程共同使用

  • 虚拟是把一个物理上的实体变为若干逻辑上的对应物。

  • 异步:多道程序环境允许多个程序并发执行,但由于资源有限,如cpu只有一个,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进。

并发性和共享性互为存在条件

1.2 操作系统的分类

参考博客:https://blog.csdn/weixin_43914604/article/details/104445449

总共有以下8种,由前发展到后

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

1.3.1 运行机制和体系结构

参考博客:https://blog.csdn/weixin_43914604/article/details/104452762

1.3.2 中断和异常

参考链接:https://blog.csdn/weixin_43914604/article/details/104462974

1.3.3 系统调用

参考链接:https://blog.csdn/weixin_43914604/article/details/104464558

第 2 章 进程管理

2.1 进程与线程

2.1.1 进程的定义、特征、组成、组织

参考博客:https://blog.csdn/weixin_43914604/article/details/104758221

PCB是什么?

PCB:进程控制块

(1)进程的定义

(2)进程的特征

(3)进程的组成

(4)进程的组织

2.1.2 进程的五种状态及状态转换

参考链接:https://blog.csdn/weixin_43914604/article/details/104819326

2.1.3 原语实现对进程的控制

参考链接:https://blog.csdn/weixin_43914604/article/details/104880533

(1)什么是进程控制?

(2)进程控制的五种原语

进程的创建、终止、唤醒、阻塞、切换。

什么是原语呢?

系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可定义为原语。

具体细节内容就点上面博客链接了,这里主要是理一个大纲。

2.1.4 进程之间的三种通信

参考链接:https://blog.csdn/weixin_43914604/article/details/104882398

什么是进程通信呢?

进程通信是指进程间的信息交换。

三种通信:共享通信、消息传递、管道通信

2.1.5 线程概念与多线程模型

参考链接:https://blog.csdn/weixin_43914604/article/details/104885645

线程是处理机调度单位,进程是资源分配单位

(1)什么是线程

(2)线程的属性

(3)多线程模型

多对一模型

一对一模型

多对多模型

2.2 处理机的调度

2.2.1 处理机的三种调度

参考链接:https://blog.csdn/weixin_43914604/article/details/105323244

(1)调度的概念

(2)高级调度( 作业调度)

(3)中级调度(内存调度)

(4)低级调度(进程调度)

(5)三种调度对比

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

参考博客:https://blog.csdn/weixin_43914604/article/details/105324472

2.2.3 调度算法的五种评价指标

参考链接:https://blog.csdn/weixin_43914604/article/details/105325136

(1)CPU利用率

(2)系统吞吐量

系统吞吐量:单位时间内完成作业的数量

(3)周转时间

(4)等待时间

(5)响应时间

2.2.4 六种作业/进程调度算法

前三种参考链接:https://blog.csdn/weixin_43914604/article/details/105328521

后三种参考链接:https://blog.csdn/weixin_43914604/article/details/105333646

  1. 先来先服务(FCFS)
  2. 短作业优先(SJF)
  3. 高响应比优先(HRRN)
  4. 时间片轮转调度算法(RR)
  5. 优先级调度算法
  6. 多级反馈队列调度算法

(1)先来先服务(FCFS)

  • First come first sever

(2)短作业优先(SJF)

  • Shortest Job First

(3)高响应比优先(HRRN)

  • Highest Response Ratio Next

问题:响应比是什么?

具体怎么计算参考链接博客

(4)前三种算法对比

(5)时间片轮(RR)

  • Round-Robin

通俗讲,一人几分钟,轮流来。

(6)优先级调度算法

(7)多级反馈队列调度算法

(8)后三种算法对比

2.3 进程的同步与互斥

2.3.1 进程的同步与互斥

参考链接:https://blog.csdn/weixin_43914604/article/details/104942405

临界区一次只能进一个进程

实现临界区进程互斥的软件实现方法:https://blog.csdn/weixin_43914604/article/details/104943004

实现临界区进程互斥的硬件实现方法:https://blog.csdn/weixin_43914604/article/details/104944962

2.4 死锁

参考链接:https://blog.csdn/weixin_43914604/article/details/105437474

2.4.1 什么是死锁?

2.4.2 死锁产生的四个必要条件

互斥条件、不剥夺条件、请求和保持条件、循环等待条件

2.4.3 什么时候会发生死锁?

对不可剥夺资源的不合理分配

2.4.4 死锁的处理策略

(1)预防死锁

① 破坏互斥条件

采用SPOOLing技术将互斥的资源改造为共享资源

缺点:不是所有的资源都能改造成共享资源

② 破坏不可剥夺条件

强行释放手里的资源

③ 破坏请求和保持条件

进程一下子申请完所有需要的资源。

缺点:资源利用率低,可能造成某些进程饥饿

④ 破坏循环等待条件

相当于成环的链式资源分配改为不成环的顺序资源分配

(2)避免死锁:银行家算法

系统处于不安全状态未必死锁,但死锁时一定处于不安全状态。系统处于安全状态一定不会死锁。

什么是安全序列?

(3)死锁的检测和解除

① 死锁的检测

② 死锁的解除

三种方法:资源剥夺法、撤销进程法、进程回退法

第 3 章 内存管理

3.1 内存管理的概念

3.1.1 什么是内存

参考链接:https://blog.csdn/weixin_43914604/article/details/105662331

(1)什么是内存?有何作用?

(2)常用数量单位&内存地址

(3)逻辑地址(相对地址)vs物理地址(绝对地址)

(4)从写程序到程序运行:编译、链接、装入

编译:将高级语言翻译成机器语言

链接:将编译后形成的一组目标模块与所需库函数链接在一起,形成一个完整的装入模块

装入:将装入模块装入内存运行

(5)装入的三种方式

绝对装入、静态重定位、 动态重定位

①绝对装入

②静态重定位

③ 动态重定位

允许程序在内存中移动

需要重定位寄存器的支持

(6)链接的三种方式

静态链接、装入时动态链接、运行时动态链接

① 静态链接

在程序运行之前,将各目标模块和所需的库函数就打包成一个完整的可执行文件

②装入时动态链接

将各目标模块装入内存时,边装入边链接的方式

③运行时动态链接

在程序执行中需要该目标模块时,才对它进行链接。

3.1.2 内存管理的四个内容

参考链接:https://blog.csdn/weixin_43914604/article/details/105667165

主要负责四种管理:

  • 内存空间的分配与回收
  • 内存空间的扩充
  • 地址转换
  • 存储保护

(1)内存空间的分配与回收

(2)内存空间的扩展(实现虚拟性)

(3)地址转换

逻辑地址与物理地址的转换,也称为地址重定位

有三种地址重定位方式,即三种装入方式

(4)内存保护

保证各进程在各自内存空间内运行,互不干扰

两种内存保护方式:

  1. 在CPU中设置一对上、下限寄存器
  2. 采用重定位寄存器和界地址寄存器进行越界检查

3.1.3 覆盖技术与交换技术的思想

参考链接:https://blog.csdn/weixin_43914604/article/details/105713460

感觉不太重要

3.1.4 内存的分配与回收

参考链接:https://blog.csdn/weixin_43914604/article/details/105714392

内存的分配与回收是内存管理的内容之一

分配分 :连续分配和非连续分配

连续分配:指为用户进程分配的必须是一个连续的内存空间

连续分配又包含三种:单一连续分配、固定分区分配、动态分区分配

(1)单一连续分配

(2)固定分区分配

(3)动态分区分配(可变分区分配)

(1)系统要用怎样的数据结构记录内存的使用情况呢?

空闲分区表和空闲分区链

(2)当多个空闲分区都能满足要求时,应该选择哪个分区进行分配?

(4)外部碎片和内部碎片

3.1.5 动态分区分配的四种算法

参考链接:https://blog.csdn/weixin_43914604/article/details/105718027

首次适应算法、最佳适应算法、最坏适应算法、临近适应算法

(1)首次适应算法

(2)最佳适应算法

(3)最坏(大)适应算法

(4)临近适应算法

(5)四种算法归纳比较

3.1.6 分页存储

参考链接:https://blog.csdn/weixin_43914604/article/details/105907291

前面说内存分配分连续分配和非连续分配;连续分配又有三种方法:单一连续分配、固定分区分配和动态分区分配。其中动态分区分配又有四种算法。

这里讲非连续分配;非连续分配又分三种,这里讲第一种分页存储

(1)为什么学习分页存储?

(2)基本分页存储管理的思想

(3)分页存储的重要概念

(4)如何实现地址的转换

地址转换即逻辑地址到物理地址

(5)如何计算页号和页偏移量

(6)如何知道页面在内存中的起始地址?

3.1.7 分页存储管理:1.基本地址变换结构

参考链接:https://blog.csdn/weixin_43914604/article/details/105909842

(1)页表寄存器

(2)地址变换过程

一道例题加深印象:

3.1.8 分页存储管理:2.快表的地址变换结构

参考链接:https://blog.csdn/weixin_43914604/article/details/105929440

基本地址变换的改进版

(1)局部性原理

(2)快表(TLB)

引入快表后,地址变换的过程的文字描述:

(3)基本地址变换与块表地址变换的比较

3.2 虚拟内存管理

内存管理的第二个内容,内存空间的扩展,即虚拟内存

3.2.1 虚拟内存的基本概念

参考链接:https://blog.csdn/weixin_43914604/article/details/105977595

(1)传统存储管理的特征、缺点

(2)局部性原理

(3)虚拟内存的定义和特征

虚拟内存的三大主要特征:

  1. 多次性:无需在作业运行时一次性全部装入内存,而是允许被分成多次调入内存。
  2. 对换性:在作业运行时无需一直常驻内存,而是允许在作业运行过程中,将作业换入、换出。
  3. 虚拟性:从逻辑上扩充了内存的容量,使用户看到的内存容量远大于实际的容量。

(4)如何实现虚拟内存技术

需要建立在离散分配的内存管理方式基础上

第 4 章 文件管理

4.1 文件系统

4.1.1 文件管理的概念和功能

参考链接:https://blog.csdn/weixin_43914604/article/details/106276876

作为系统资源的管理者是操作系统的三大功能之一;

文件管理又是作为系统资源的管理者提供四大功能之一。

操作系统应该向上提供哪些功能

从上往下看,文件应该如何存放在外存?

4.1.2 文件逻辑结构

参考链接:https://blog.csdn/weixin_43914604/article/details/106277412

1.无结构文件

又称流式文件

2.有结构文件

又称记录式文件

根据每条记录的长度是否相等,又分定长记录可变长记录两种

(1)顺序文件

(2)索引文件

(3)索引顺序文件

(4)多级索引顺序文件

将10^6个记录的文件分成100* 100* 10000

4.1.3 文件目录结构

参考链接:https://blog.csdn/weixin_43914604/article/details/106298565

文件控制块

可对目录的操作

(1)单级目录

(2)两级目录结构

(3)多级目录结构(树形目录结构)

绝对路径和相对路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2wntd4vg-1637133554643)(C:\Users\14051\AppData\Roaming\Typora\typora-user-images\image-20211117113610770.png)]

树形目录结构可以很方便地对文件进行分类,但是不便于实现文件的共享,于是提出了无环图目录结构。

(4)无环图目录结构

索引节点(FCB的改进)瘦身

4.1.4 文件物理结构

参考链接:https://blog.csdn/weixin_43914604/article/details/106303759

文件块、磁盘块

(1)连续分配

连续分配缺点:

(2)链接分配:隐式和显式

链接分配采取离散分配的方式,可以为文件分配离散的磁盘块,分为隐式链接和显式链接两种。

隐式链接

磁盘利用率高,不会有碎片问题。

显式链接

链接分配总结

(3)索引分配

下面的不总结了;文件管理好像面试不问

第5章 I/O管理

5.1 I/O管理概述

5.1.1 I/O设备简介

参考链接:https://blog.csdn/weixin_43914604/article/details/106136127

(1)什么是I/O设备?

将数据输入到计算机的设备,或者可以接收计算机输出的外部设备。属于计算机中的硬件部分。

(2)I/O设备分类

按使用特性分

  1. 人机交互类外部设备:鼠标、键盘
  2. 存储设备:移动硬盘,光盘
  3. 网络通信设备:调制解调器

按传输速率分

  1. 低速设备:鼠标,键盘

  2. 中速设备:激光打印机

  3. 高速设备:磁盘

按信息交换单位分

  1. 块设备:传输速率较高,可寻址,即对它可随机读写任一块。如磁盘传输数据的基本单位:磁盘块
  2. 字符设备:传输速率较慢,不可寻址,在输入输出时常采用中断驱动方式。如鼠标键盘输入字符

(3)I/O设备组成

I/O设备由**机械部件和电子部件(I/O控制器、设备控制器)**组成。

下面细讲I/O控制器。

5.1.2 I/O控制器

参考链接:https://blog.csdn/weixin_43914604/article/details/106136990

(1)四大功能

  1. 接收和识别CPU发出的命令

  2. 向CPU报告设备的状态

  3. 数据交换

  4. 地址识别

(2)三大组成

  1. CPU与控制器之间的接口:实现控制器与CPU之间的通信
  2. I/O逻辑:负责识别CPU发出的命令,并向设备发出命令
  3. 控制器与设备之间的接口:实现控制器与设备之间的通信

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZJOIV57y-1637133554645)(C:\Users\14051\AppData\Roaming\Typora\typora-user-images\image-20211117144409457.png)]

(3)两种寄存器编址方式

  1. 物理映像
  2. 独立编址

5.1.3 OS控制I/O设备的四种方式

参考链接:https://blog.csdn/weixin_43914604/article/details/106144829

  1. 程序直接控制方式
  2. 中断驱动方式
  3. DMA方式
  4. 通道控制方式

每种方式需要注意的问题:

1.完成一次读写操作的流程

2.CPU干预的频率

3.数据传送的单位

4.数据的流向

5.主要缺点和主要优点

5.1.4 I/O软件的层次结构

参考链接:https://blog.csdn/weixin_43914604/article/details/106147270

(1)I/O软件层次总览

5.2 I/O核心子系统

什么是I/O核心子系统?

I/O核心子系统 = 设备独立性软件 + 设备驱动程序 + 中断处理程序

5.2.4 缓冲区管理

参考链接:https://blog.csdn/weixin_43914604/article/details/106274269

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1zYOKj9p-1637133554646)(C:\Users\14051\AppData\Roaming\Typora\typora-user-images\image-20211117151447198.png)]

/106144829

  1. 程序直接控制方式
  2. 中断驱动方式
  3. DMA方式
  4. 通道控制方式

每种方式需要注意的问题:

1.完成一次读写操作的流程

2.CPU干预的频率

3.数据传送的单位

4.数据的流向

5.主要缺点和主要优点

5.1.4 I/O软件的层次结构

参考链接:https://blog.csdn/weixin_43914604/article/details/106147270

(1)I/O软件层次总览

5.2 I/O核心子系统

什么是I/O核心子系统?

I/O核心子系统 = 设备独立性软件 + 设备驱动程序 + 中断处理程序

5.2.4 缓冲区管理

参考链接:https://blog.csdn/weixin_43914604/article/details/106274269

[外链图片转存中…(img-1zYOKj9p-1637133554646)]

更多推荐

《操作系统》知识框架整理

本文发布于:2023-06-11 00:03:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1357700.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:框架   操作系统   知识

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!