操作系统笔记(b站王道视频)

编程知识 更新时间:2023-04-24 01:53:55

文章目录

  • (一)
    • 1. 操作系统的概念和定义
      • 1.1. 操作系统的层次结构
      • 1.2.操作系统的功能和目标
      • 1.3. 操作系统的四个基本特征
      • 1.4.操作系统的发展和分类
      • 1.5.操作系统的运行机制 体系结构
      • 1.6.中断和异常
    • 总结
      • (1)操作系统总结
      • (2)操作系统四个特征总结
      • (3)操作系统的发展和分类的总结
      • (4)操作系统的运行机制 体系结构 总结
      • (5)中断和异常总结
  • (二)
    • 2.1 进程与线程
      • 2.1.1 进程
      • 2.1.2.进程的状态和转换
      • 2.1.3.进程控制
      • 2.1.4.进程通信
      • 2.1.5.线程 多线程模型
    • 总结
      • (1)进程总结
      • (2)进程的状态和转换 总结
      • (3)进程控制 总结
      • (4)进程通信 总结
      • (5)线程 多线程模型 总结
    • 2.2 进程的调度
      • 2.2.1.处理机调度
      • 2.2.2.进程调度的时机 切换与过程 调度方式
      • 2.2.3.调度算法的评价指标
      • 2.2.4.调度算法
      • 2.2.5.进程同步 进程互斥
      • 2.2.6.进程互斥的软件实现方法
      • 2.2.7. 进程互斥的硬件实现方法
      • 2.2.8. 信号量机制
      • 2.2.9. 信号量机制实现进程互斥、进程同步、前驱关系
      • 2.2.10. 生产者消费问题
      • 2.2.11. 多生产者多消费者(多类)
      • 2.2.12. 吸烟者问题(单生产者 多消费者)
      • 2.2.13. 读者-写者问题
      • 2.2.14. 哲学家进餐问题
      • 2.2.15.管程
      • 2.2.16.死锁
      • 2.2.17. 预防死锁
      • 2.2.18. 避免死锁
      • 2.2.19. 死锁的检测和解除
    • 总结
      • (1)处理机调度 总结
      • (2)进程调度的时机 切换与过程 调度方式 总结
      • (3)调度算法的评价指标 总结
      • (4)进程同步 进程互斥 总结
      • (5)进程互斥的软件实现方法 总结
      • (6) 进程互斥的硬件实现方法 总结
      • (7)信号量机制 总结
      • (8) 信号量机制实现互斥、同步、前驱关系 总结
      • (9)管程 总结
      • (10)死锁 总结
      • (11) 预防死锁 总结
      • (12) 避免死锁(银行家算法) 总结
      • (13)死锁的检测和解除 总结
  • (三)
    • 3. 内存
      • 3.1 内存的基础知识
      • 3.2 内存管理的概念
      • 3.3 内存空间的分配和回收
        • 3.3.1 连续分配管理方式
        • 3.3.2 内存空间的扩充
        • 3.3.3 动态分区分配算法
        • 3.3.4 非连续分配管理方式
          • (1)基本分页存储管理
          • (2)基本分段存储管理方式
    • 总结
      • (1)内存的基础知识
      • (2)内存管理的概念
      • (3)覆盖与交换
      • (4)连续分配管理
      • (5)动态分区算法
      • (6)基本分页存储管理
      • (7)基本地址变换机构
      • (8)具有快表的地址变换机构
      • (9)两级页表

https://www.bilibili/video/av31584226/?p=13

(一)

1. 操作系统的概念和定义

1.1. 操作系统的层次结构

从上至下,用户——应用程序——操作系统——裸机(纯硬件)。

操作系统OS(Operating System)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配(从当前层次结构中间往两边看),提供用户和其他软件方便的接口和环境(当前层次结构从下往上看),同时它是计算机系统中最基本的系统软件(层次结构从上往下看)。

1.2.操作系统的功能和目标

(1) 系统资源的管理者
(2)作为用户与计算机硬件之间的接口
联机命令接口又称为交互命令接口,给一句指令执行一句;脱机命令接口,给一堆命令执行一堆命令。
程序接口等于系统调用

(3) 作为最接近硬件的层次

1.3. 操作系统的四个基本特征

1.并发、共享、虚拟、异步。

(1)并发

并发:两个或多个事件同一时间间隔内发生,这些事件宏观上同时发生,微观上交替发生。
(易混淆概念 并行:指两个或多个事件在同一时刻同时发生)
操作系统的并发性是指计算机系统中同时存在着多个运行着的程序。


(2)共享
共享即资源共享,是指系统中资源可供内存众多个并发执行的进程共同使用。

并发和共享关系(互为存在条件)

(3)虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体实际存在,而逻辑对应物使用户感受到的。

空分复用技术时分复用技术

(4)异步
异步是指多到程序环境下,允许多个程序并发执行,但资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

1.4.操作系统的发展和分类


手工操作阶段:用户独占全机,人机速度矛盾导致资源利用率极低
批处理阶段:脱机输入/输出技术 (用磁带完成) 监督程序负责控制作业的输入、输出

多道批处理系统:

分时操作系统

实时操作系统

1.5.操作系统的运行机制 体系结构


(1)两种指令
指令就是处理器(cpu)能是别的执行的最基本的命令

(2)两种处理器状态

(3)两种程序
(4)操作系统的内核

内核是计算机上配置的底层软件,是操作系统最基本最核心的部分。实现操作系统内核功能的那些程序就是内核程序。

1.6.中断和异常


(1) 中断机制的诞生
早期计算机个程序只能串行执行,系统资源利用率低,为了解决该问题,人们发明了操作系统,引入了中断机制,实现了多道程序并发执行。

发生中断就意味着需要操作系统介入,开展管理工作

中断是CPU从用户态进入核心态的唯一途径

(2)中断的分类


(3)外中断的处理过程

总结

(1)操作系统总结

(2)操作系统四个特征总结

(3)操作系统的发展和分类的总结

(4)操作系统的运行机制 体系结构 总结

(5)中断和异常总结

(二)

2.1 进程与线程

2.1.1 进程

(1)定义
程序:就是一个指令序列
早期的计算机(只支持单道程序) 程序的代码放在程序段内,程序运行过程处理的数据放在数据段内(如变量)
引入多道程序技术后:

程序段、数据段、PCB三部分组成进程实体(进程映像) 进程实体简称进程。
PCB是进程存在的唯一标志。
进程是系统进行资源分配和调度的基本单位。


(2)组成
程序段、数据段、PCB
进程的管理者(操作系统)所需要的数据都在PCB中,程序本身运行所需的数据在程序段和数据段中。

== PCB==
(3)组织
进程的组织是多个进程之间的组织方式问题

链接方式

索引方式

(4)特征

2.1.2.进程的状态和转换


(1)进程的三种基本状态


进程的另外两种状态(创建态 终止态)

(2)进程状态的转换

2.1.3.进程控制


(1)进程控制的概念
进程控制就是实现进程状态的转换


原语 运行在核心态(在操作系统内核中)

关/开中断指令的权限非常大,只允许在核心态下执行的特权指令

进程控制一定会导致进程状态的转换

创建原语

撤销原语
阻塞原语和唤醒原语

== 切换原语==

2.1.4.进程通信


(1)进程通信概念
进程通信就是进程之间的信息交换。进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。为保证安全,**一个进程不能直接访问另一个进程的地址空间。**但是进程之间的信息交换又是必须实现,操作系统提供一些方法实现。

(2)共享存储
共享空间 对共享空间的访问是互斥的

(3)管道通信
半双工通信 若想双工 需要设置两个管道 各进程互斥的访问管道

(4)消息传递
进程中的数据交换以格式化的消息为单位 进程通过操作系统提供的 发送消息/接受消息 两个原语进行数据交换。

2.1.5.线程 多线程模型


(1)线程的引入

有的进程可能要同时做很多事,而传统的进程智只能串行地执行一列程序 为此引入线程来增加并发度。

传统的进程是程序执行流的最小单位

引入线程后:

  1. 线程可以理解为“轻量级进程” ,线程是一个基本的CPU执行单元,也是程序执行流的最小单位。
  2. 引入线程后,不仅是进程之间可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(qq视频 文字聊天 传文件)。
  3. 进程只作为除CPU外的系统资源的分配单元(如打印机 内存空间都是分配给进程的)

(2)引入线程机制的变化
(3)线程的属性

(4)线程的实现方式

  1. 用户级线程(user-Level Thread,ULT)

    2. 内核级线程(Kernel-Level Thread KLT 又称为内核支持的线程)

    3. 同时指挥用户级线程和内核级线程

    (5)多线程模型

    多对一

    一对一

    多对多

总结

(1)进程总结

(2)进程的状态和转换 总结

(3)进程控制 总结

(4)进程通信 总结

(5)线程 多线程模型 总结

2.2 进程的调度

2.2.1.处理机调度

  1. 概念
    当有一堆任务要处理,由于资源有限,事情没法同时处理。需要确定某种规则来决定处理这些任务的顺序,这就是调度研究的问题。
  2. 调度的三个层次

(1)高级调度

(2)中级调度


挂起态与七状态模型

(3)低级调度

(4)三种调度的练习与对比

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


(1)进程调度的时机


(2) 进程调度的方式
非剥夺调度方式 剥夺调度方式
(3)进程的切换与过程

2.2.3.调度算法的评价指标


(1)cpu利用率
忙碌时间/总时间=利用率
(2)系统吞吐量
单位时间内完成作业的数量 总共完成作业数/总共花的时间=系统吞吐量
(3)周转时间
从作业被提交给系统开始,到作业完成为止的时间间隔。
作业完成时间-作业提交时间=周转时间 平均周转时间=各作业周转时间之和/作业数
带权周转时间

(4)等待时间
进城作业处于等待处理机状态时间之和
(5)响应时间
用户从提交请求到首次产生响应的时间。

2.2.4.调度算法

先来先服务 最短作业优先 最高响应比优先

(1)先来先服务(FCFS first come first serve)

(2)短作业优先(SJF Shortest Job First)
抢占式、非抢占式

(3)高响应比优先算法(HRRN Highest Response Ratio Next )

(4)总结


(1)时间片轮转调度算法(RR round-robin)
时间片太大,退化为先来先服务调度算法
时间片太小,进程切换频繁,系统花费时间更多
(2)优先级调度算法

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

(4)总结

2.2.5.进程同步 进程互斥


(1)什么是进程同步

(2)什么是进程互斥


2.2.6.进程互斥的软件实现方法


(1)单标志法


(2)双标志先检查法

(3)双标志后检查法

(4)Peterson算法

2.2.7. 进程互斥的硬件实现方法


(1)中断屏蔽方法

不适用多处理机 关中断指令只对当前的处理机起作用
(2)TestAndSet指令(TS指令)

将检查和上锁的操作变为原子操作 防止异步带来的逻辑漏洞
(3)Swap指令

2.2.8. 信号量机制

(1)信号量机制


wait和signal操作简称P、V操作(荷兰语缩写 proberen verhogen)

(2)整型信号量

(3)记录型信号量


2.2.9. 信号量机制实现进程互斥、进程同步、前驱关系

(1)信号量机制实现进程互斥

(2)信号量机制实现进程同步


(3)前驱关系
前操作之后执行V操作
后操作之前执行P操作

2.2.10. 生产者消费问题






总结

2.2.11. 多生产者多消费者(多类)




如果缓冲区大小为1,有时可以不设置互斥信号量(根据具体问题分析)

缓冲区为2或以上,如果不设置互斥信号量可能会导致数据覆盖问题

总结

2.2.12. 吸烟者问题(单生产者 多消费者)



缓冲区(桌子)大小为1,不需要设置互斥信号量

总结

2.2.13. 读者-写者问题




听懵逼了
总结

2.2.14. 哲学家进餐问题


代码不会写
总结

2.2.15.管程


(1)为什么引入管程

(2)管程的定义和基本特征
管程类似于面向对象的类

特征1、2: 类似于类中的private变量 特征3:进程访问缓冲区互斥(对共享数据的访问只能有一个)

(3)用管程解决生产者消费者问题

封装思想

2.2.16.死锁


(1)什么是死锁
(2)死锁 饥饿 死循环

(3)死锁产生的必要条件
(4)什么时候发生死锁

(5)死锁的处理策略

2.2.17. 预防死锁


(1)破坏互斥条件

(2)破坏不可剥夺条件

(3)破坏请求和保持条件

(4)破坏循环等待条件

2.2.18. 避免死锁


(1)什么是安全序列


(2)安全序列 不安全状态 死锁的联系

迪杰特斯拉算法

寻找安全序列的情况
找不到安全序列的情况

代码实现

2.2.19. 死锁的检测和解除


(1)死锁的检测

不能消除所有边 发生死锁


(2)死锁的解除

总结

(1)处理机调度 总结

(2)进程调度的时机 切换与过程 调度方式 总结

(3)调度算法的评价指标 总结

(4)进程同步 进程互斥 总结

(5)进程互斥的软件实现方法 总结

(6) 进程互斥的硬件实现方法 总结

(7)信号量机制 总结

(8) 信号量机制实现互斥、同步、前驱关系 总结

(9)管程 总结

(10)死锁 总结

(11) 预防死锁 总结

(12) 避免死锁(银行家算法) 总结

(13)死锁的检测和解除 总结

(三)

3. 内存

3.1 内存的基础知识









3.2 内存管理的概念



3.3 内存空间的分配和回收

3.3.1 连续分配管理方式

1.连续分配管理方式 系统为用户分配的必须是一个连续的内存空间

(1)单一连续分配

(2)固定分区分配


(3)动态分区分配




2.非连续分配管理方式

3.3.2 内存空间的扩充

(1)覆盖技术


(2)交换技术

3.3.3 动态分区分配算法


(1)首次适应算法

(2)最佳适应算法


(3)最坏适应算法


(4)邻近适应算法

3.3.4 非连续分配管理方式

(1)基本分页存储管理





(2)基本地址变换机构



(3)具有快表的地址变换机构

  • 局部性原理
  • 什么是快表 TLB 联想寄存器


(4)两级页表

单级页表存在的问题:
问题1:需要一段较大的连续页来存储页表项,当页表很大时,需要占用多个连续的页框,又违背了离散存储的优点。
问题2:没必要让整个页表常驻内存,因为进程一段时间可能只访问特定几个页面,造成内存空间的浪费。

  • 问题1解决办法 : 两级页表

  • 问题2解决办法 : 虚拟存储

    -各级页表的大小不能超过一个页面

    -多级页表访问内存需要更多的时间
(2)基本分段存储管理方式

分段


段表

总结

(1)内存的基础知识

(2)内存管理的概念

(3)覆盖与交换

(4)连续分配管理

(5)动态分区算法

(6)基本分页存储管理

(7)基本地址变换机构

(8)具有快表的地址变换机构

基本地址变换机构两次访问内存:
第一次访问内存--------查页表
第二次访问内存--------访问实际目标内存单元

(9)两级页表

更多推荐

操作系统笔记(b站王道视频)

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

发布评论

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

>www.elefans.com

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

  • 85290文章数
  • 14803阅读数
  • 0评论数