admin 管理员组

文章数量: 887021

第一章 计算机系统概述

文章目录

  • 前言
  • 1.1.1 操作系统的概念、功能和目标
    • 思维导图
    • 本节内容
  • 1.1.2操作系统的特征
    • 思维导图
    • 本节内容
  • 1.1.3操作系统的发展与分类
    • 思维导图
    • 本节内容
  • 1.1.4操作系统的运行机制与体系结构
    • 思维导图
    • 本节内容
      • 1.运行机制
        • 两种指令
        • 两种处理器状态
      • 2.操作系统的内核
  • 1.1.5中断和异常
    • 思维导图
    • 本节内容
  • 1.1.6系统调用
    • 思维导图
    • 本节内容
  • 2.1.1进程的定义、组成、组织方式
    • 思维导图
    • 本节内容
  • 2.1.2进程的状态与转换
    • 思维导图
    • 本节内容
  • 2.1.3进程控制
    • 思维导图
    • 本节内容
  • 2.1.4进程通信
    • 思维导图
    • 本节内容
  • 2.1.5线程概念和多线程模型
    • 思维导图
    • 本节内容
  • 2.2.1处理机调度的概念、层次
    • 思维导图
    • 本节内容
  • 2.2.2进程调度的时机、切换与过程
    • 思维导图
    • 本节内容
  • 2.2.3调度算法的评价指标
    • 思维导图
    • 本节内容
  • 2.2.4FCFS、SJF、HRRN调度算法
    • 思维导图
    • 本节内容
  • 2.2.5时间轮转法、优先级、多级反馈队列
    • 思维导图
    • 本节内容
  • 2.3.1进程同步、进程互斥
    • 思维导图
    • 本节内容
  • 2.3.2进程互斥的软件实现方法
    • 思维导图
    • 本节内容
  • 2.3.3进程互斥的硬件实现方法
    • 思维导图
    • 本节内容
  • 2.3.4信号量机制
    • 思维导图
    • 本节内容
  • 2.3.5用信号量实现进程互斥、同步、前驱关系
    • 思维导图
    • 本节内容
  • 2.3.6生产者-消费者问题
    • 本节内容
  • 2.3.7多生产者-多消费者
    • 本节内容
  • 2.3.8吸烟者问题
    • 本节内容
  • 2.3.9读者-写者问题
    • 本节内容
  • 2.3.10哲学家进餐问题
    • 本节内容
  • 2.3.11 管程
    • 思维导图
    • 本节内容
  • 2.4.1死锁的概念
    • 思维导图
    • 本节内容
  • 2.4.2死锁的处理策略-预防死锁
    • 思维导图
    • 本节内容
  • 2.4.3死锁的处理策略-避免死锁
    • 思维导图
    • 本节内容
  • 2.4.4死锁的处理策略-检测和解除
    • 思维导图
    • 本节内容
  • 3.1.1内存地基础知识
    • 思维导图
    • 本节内容
  • 3.1.2内存管理的概念
    • 思维导图
    • 本节内容
  • 3.1.3覆盖与交换
    • 思维导图
    • 本节内容
  • 3.1.4连续分配管理方式
    • 思维导图
    • 本节内容
  • 3.1.5动态分区分配算法
    • 思维导图
    • 本节内容
  • 3.1.6基本分页存储管理的基本概念
    • 思维导图
    • 本节内容
  • 3.1.7基本地址变换机构
    • 思维导图
    • 本节内容
  • 3.1.8具有快表的地址变换机构
    • 思维导图
    • 本节内容
  • 3.1.9两级页表
    • 思维导图
    • 本节内容
  • 3.1.10基本分段存储管理方式
    • 思维导图
    • 本节内容
  • 3.1.11段页式管理方式
    • 思维导图
    • 本节内容
  • 3.2.1虚拟内存的基本概念
    • 思维导图
    • 本节内容
  • 3.2.2请求分页管理方式
    • 思维导图
    • 本节内容
  • 3.2.3页面置换算法
    • 思维导图
    • 本节内容
  • 3.2.4页面分配策略
    • 思维导图
    • 本节内容
  • 4.1.1初识文件管理
    • 思维导图
    • 本节内容
  • 4.1.2文件的逻辑结构
    • 思维导图
    • 本节内容
  • 4.1.3文件目录
    • 思维导图
    • 本节内容
  • 4.1.4文件的物理结构(上)
    • 本节内容
  • 4.1.4文件的物理结构(下)
    • 思维导图
    • 本节内容
  • 4.1.5文件存储空间管理
    • 思维导图
    • 本节内容
  • 4.1.6文件的基本操作
    • 思维导图
    • 本节内容
  • 4.1.7文件共享
    • 思维导图
    • 本节内容
  • 4.1.8文件保护
    • 思维导图
    • 本节内容
  • 4.1.9文件系统的层次结构
    • 本节内容
  • 4.2.1磁盘的结构
    • 思维导图
    • 本节内容
  • 4.2.2磁盘调度算法
    • 思维导图
    • 本节内容
  • 4.2.3减少磁盘延迟时间的方法
    • 思维导图
    • 本节内容
  • 4.2.4磁盘的管理
    • 思维导图
    • 本节内容
  • 5.1.1 I-O设备的概念和分类
    • 思维导图
    • 本节内容
  • 5.1.2 I-O控制器
    • 思维导图
    • 本节内容
  • 5.1.3 I-O控制方式
    • 思维导图
    • 本节内容
  • 5.1.4 I-O软件层次结构
    • 知识点与重要考点
    • 本节内容
  • 5.1.5 I-O核心子系统
    • 本节内容
  • 5.1.6 I-O假脱机技术
    • 思维导图
    • 本节内容
  • 5.1.7 I-O 设别的分配和回收
    • 思维导图
    • 本节内容
  • 5.1.8 I-O 缓冲区管理
    • 思维导图
    • 本节内容

前言

  • 参考书籍《计算机操作系统》 汤小丹、《2022年 操作系统考研复习资料》 王道。(个人认为王道的书整体顺序安排更合理,更好用)
  • B站王道计算机考研 操作系统视频课
  • 原本是小张期末考试整理的王道笔记,后来复习过程中使用笔记可以快速的根据目录或者文字检索去查找某个概念、知识点。所以分享给大家,需要文本文件的可以留言评论。
  • 思维导图和文字内容是手敲的,所以可能有一些错别字,评论我会修改。
  • 如果只是为了期末考试可以看我的这篇操作系统期末考试总结_鬼才小张同学的博客-CSDN博客
  • 码字不易,严禁盗用!好用的话给小张个点赞收藏!

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

思维导图

本节内容

操作系统(Operating System,OS) 是指控制和管理整个计算机系统的硬件和软件资源,并合理地调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。

eg:进程是一个程序执行过程,执行前需要将该程序放到内存中,才能被CPU处理。

功能:

  1. 命令接口,允许用户直接使用。联机命令接口:用户说一句,系统做一句,eg:使用cmd执行一句命令。脱机命令接口,用户说一堆,系统做一堆,脱机命令接口=批处理命令接口,eg:执行一个.bat的文件。
  2. 程序接口,只能通过用户间接使用,。eg:调用C:\Windows\System32\user32.dll。
  3. GUI,图形用户界面。用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令、参数。eg:在Windows操作系统中,删除文件夹只需要把文件拖拽到回收站。

目标:

  1. 方便性:使用编译命令将用户采用高级语言书写的程序翻译成机器代码或者直接 通过OS所提供的各种命令操作计算机系统,极大地方便用户,使计算机变得易学易用
  2. 有效性:提高系统资源的利用率,提高系统的吞吐量。
  3. 可扩充性:方便地增添新的功能和模块。
  4. 开放性:系统能遵循国际标准规范,所开发的软硬件都能彼此兼容。

1.1.2操作系统的特征

理解并发和并行的区别,并发和共享互为存在条件,没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本特征

思维导图

本节内容

特征

  1. 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生地,但微观上是交替发生的。操作系统的并发性指计算机系统中同时存在着多个运行着的程序。并行:指两个或多个事件在同一时刻同时发生。
  2. 共享:指资源共享,是指系统中的资源可供内存中多个并发执行的进程共同调用。

​ 互斥共享:系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。

​ 同时共享:系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问。(宏观上是同时,微观上可能是交替对资源进行 访问,即分时共享)。

​ eg:使用QQ发送文件A,使用微信发送文件B

​ 两个进程正在并发执行(并发性)

​ 需要共享地访问硬盘资源(共享性)

​ eg:使用QQ和微信视频,同一时间段内摄像头只能分配给其中一个进程(互斥共享)

​ 使用QQ发送文件A,同时使用微信发送文件B,宏观上看,两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从 中读取数据。从微观上看,两个进程是交替着访问硬盘的(互斥共享)。

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

​ eg:一个程序需要放入内存并给他分配CPU才能执行,那么为什么单核CPU可以同时运行多个程序。因为虚拟处理技术,实际上只有 一个单核CPU,在用户看来似乎由多个CPU同时为自己服务。

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

    eg:

1.1.3操作系统的发展与分类

思维导图

本节内容

手工操作阶段: 早期的操作方式是由程序员将事先已经穿好孔的纸带(或卡片),装入纸带输入机(或卡片输入机),再启动它们将纸带(或卡片)上的程序和数据输入计算机,然后启动计算机运行。仅当程序运行完毕并取走计算结果后,才允许下一用户上机。

缺点: 1).用户独占全机。即一台计算机的全部资源由上机用户所独占。

​ 2).人机速度矛盾导致资源利用率极低。CPU等待人工操作。当用户进行装带(卡)、卸带(卡)等人工操作时,CPU及内存等资源是空闲的。

单道批处理系统: 引入脱机输入/输出技术(用磁带完成),并监督程序负责控制作业的输入、输出。

利用外围机把纸带读入磁带

优点:(自动性)缓解了一定程序的人机速度矛盾,资源利用率有所提升。

缺点:(顺序性、单道性)内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低。

多道批处理系统: 允许多个程序同时进入内存并允许他们在CPU中交替地运行。这些程序共享系统中的各种硬/软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。

优点: 多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源保持"忙碌"状态,系统吞吐量大。

缺点: 用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行)。

分时操作系统: 计算机以时间片为单位,轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。

优点: 用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用同一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。

缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。

实时操作系统: 在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完时件。实时操作系统的主要特点是及时性和可靠性。分时操作系统分为硬实时系统和软实时系统。硬实时系统: 必须在绝对严格的规定时间内完成处理。eg:导弹控制系统、自动驾驶系统。软实时系统: 能接受偶尔违反时间规定。eg:12306火车订票系统。

优点: 能够优先响应一些紧急任务,某些紧急任务不需要时间片排队。

以下做简单了解

网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源地共享(eg:文件共享)和各台计算机之间地通信(eg:Windows NT就是一种典型地网络操作系统,网站服务器就可以使用)。

分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成个人任务。

个人计算机操作系统:eg:Windows XP、MacOS,方便个人使用。

1.1.4操作系统的运行机制与体系结构

指令与代码有什么区别?

eg:

指令就是处理器(CPU)能识别、执行的最基本命令。

新的问题:有的指令“人畜无害”。有的指令有很高的权限,eg:内存清零指令,如果用户程序可以使用这个指令,就意味着一个用户可以将其他用户的内存数据随意清零,这样做很危险。

思维导图

本节内容

1.运行机制

两种指令

特权指令:如内存清零指令,不允许用户程序使用。

非特权指令:如普通的运算指令。

两种处理器状态

核心态(管态):特权指令,非特权指令都能执行。

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

#### 两种程序

内核程序:操作系统的内核程序是系统的管理者,既可以执行特权指令,也可以执行非特权指令,运行在核心态。

应用程序:为了保证系统运行安全,普通应用程序只能执行非特权指令,运行在用户态。

2.操作系统的内核

内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。

实现操作系统内核功能的那些程序就是内核程序

大内核:将操作系统的主要功能模块都作为系统内核,运行在核心态。优点,高性能。缺点,内核代码庞大,结构混乱,难以维护

微内核:只要把基本的功能保留在内核。优点,内核功能少,结构清晰,方便维护。缺点:需要频繁地在核心态和用户态之间切换,性能低。

eg:操作系统地体系结构问题与企业管理问题很相似。

内核就是企业的管理层,负责一些重要地工作。只有管理层才能执行特权指令,普通员工只能执行非特权指令用户态、核心态之间地切换相当于普通员工和管理层之间的工作交接。

大内核:企业初创时体量不大,管理层的人会负责大部分的事情。优点是效率高,缺点是组织结构混乱,难以维护。

微内核:随着企业体量越来越大,管理层只负责最核心的一些工作。优点是组织结构清晰,方便维护。缺点是效率低。

1.1.5中断和异常

思维导图

本节内容

各个程序只能串行执行,系统资源利用率低。

中断机制的诞生:为了解决资源利用率低,人们发明了操作系统(作为计算机的管理者),引入中断机制,实现了多道程序并发执行。

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

  1. 当中断发生时,CPU立即进入核心态
  2. 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
  3. 对于不同的中断信号,会进行不同的处理

​ 发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I\O设备等)需要使用特权指令,因此CPU要从用户态转换为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。

2:30-6:20有详细讲解动画过程。

王道计算机考研 操作系统

用户态、核心态之间的切换是怎么实现的?

用户态→核心态是通过中断实现的。并且中断是唯一途径。

核心态→用户态的切换是通过执行一个特权指令,将程序状态字(RSW)的标志位设置为“用户态”

外中断的处理过程

1.1.6系统调用

思维导图

本节内容

什么是系统调用?有什么作用?
操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。

“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。

应用程序通过系统调用请求操作系统的服务,系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如储存分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统提供服务请求,由操作系统代为完成,这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

系统调用与库函数的区别

系统调用背后地过程

第二章 进程管理

2.1.1进程的定义、组成、组织方式

思维导图

本节内容

进程的概念

进程的组成

进程(进程实体)由程序段、数据段、PCB三部分组成。

进程的组织

在一个系统中,通常有数十、数百乃至数千个PCB。为了能对他们加以有效的管理,应当用适当的方式把这些PCB组织起来。
注:进程的组成讨论的是一个进程内部由哪些部分构成的问题,而进程组织讨论的是多个进程之间的组织方式问题。

链接方式

索引方式

进程的特征

进程和程序是两个截然不同的概念,相比于程序,进程拥有以下特征:

  1. 动态性(最基本特征):进程是程序的一次执行过程,是动态地产生、变化和消亡地。
  2. 并发性:内存中有多个进程实体,各进程可并发执行。
  3. 独立性:进程是能独立运行、独立获得资源、独立接受调度地基本单位
  4. 异步性:各进程按各自独立的、不可预知地速度向前推进,操作系统要提供“进程同步机制”来解决异步问题,可能导致运行结果地不确定性。
  5. 结构性:每个进程都会配置一个PCB。结构上看,进程由程序段、数据段、PCB组成。

2.1.2进程的状态与转换

思维导图

本节内容

进程是程序的一次执行。在这个执行过程中,有时进程正在被CPU处理,有时需要等待CPU服务,可见,进程的状态是会有各种变化。为了方便对各个进程的管理,操作系统需要将进程合理地划分为几种状态。

三种基本状态

运行态:占有CPU,并在CPU上运行
就绪态:已经具备运行条件,但由于没有空闲CPU,而暂时不能运行。
阻塞态:因等待某一事件而暂时不能运行。
注意单核处理机环境下,每一时刻最多只有一个进程处于运行态。双核环境下可以同时有两个进程处于运行态。

另外另种状态

创建态:进程正在被创建,操作系统为进程分配资源、初始化PCB。

终止态:进程正在从系统中撤销,操作系统回收进程拥有的资源、撤销PCB。

进程的状态转换

2.1.3进程控制

思维导图

本节内容

什么是进程控制?
进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。
简单理解:进程控制就是要实现进程状态转换。

如何实现进程控制?动画讲解

1:13-5:00

王道计算机考研 操作系统

原语实现进程控制。原语的特点是执行期间不允许中断,只能一气呵成。
这种不可被中断的操作即原子操作。原语采用“关中断”和开中断指令实现。

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

进程控制相关的原语

各原语可以实现怎样状态转换,各原语大概做了哪些事(理解了在选择题分析出答案即可,不用背)

2.1.4进程通信

思维导图

本节内容

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

共享存储

管道通信

消息传递

进程间的数据交换以格式化的消息为单位。进程通过操作系统提供的“发送消息/接受消息”两个原语进行数据交换。动画讲解9:00-11:00

王道计算机考研 操作系统

2.1.5线程概念和多线程模型

思维导图

本节内容

什么是线程?为什么要引入线程?
还没引入进程之前,系统中各程序只能串行执行。

可以把线程理解为"轻量级进程"。线程是一个基本的CPU执行单元,也是程序执行流的最小单位。引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频、文字聊天、传文件)。

引入线程后,进程只作为除CPU之外的系统资源分配单元(如打印机、内存地址空间等都是分配给进程的)。

引入线程机制后,有什么变化?

线程的属性

线程的实现方式

用户级线程

内核级线程

二者组合

多线程模型

在同时支持用户级线程和内核级线程的系统中,由几个用户级线程映射到几个内核级线程的问题引出了“多线程模型”问题。

多对一

一对一模型

多对多,集二者之所长

2.2.1处理机调度的概念、层次

思维导图

本节内容

调度的基本概念

调度的三个层次-高级调度

中级调度

补充知识:进程的挂起状态与七状态模型

暂时调到外存等待的进程状态为挂起状态(挂起态)
挂起态又可以进一步细分为就绪挂起、阻塞挂起两种状态。

低级调度

三层调度的联系、对比

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

思维导图

本节内容

进程调度的时机

进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机。

进程调度的方式

进程与进程切换过程

2.2.3调度算法的评价指标

思维导图

本节内容

CPU利用率

CPU“忙碌”的时间占总时间的比例
利用率= 忙 碌 时 间 总 时 间 \frac{忙碌时间}{总时间}

系统吞吐量

对于计算机来说,希望能用尽可能少的时间处理完尽可能多的作业。
单位时间内完成作业的数量

系统吞吐量= 总 共 完 成 了 多 少 道 作 业 总 共 花 了 多 少 时 间 \frac{总共完成了多少道作业}{总共花了多少时间}

本文标签: 知识点 王道 思维 操作系统 目录