*参考书目:《清华大学计算机系列教材 计算机操作系统教程(第4版)》 张尧学 宋虹 长高

快速目录

  • 第一章 绪论
    • 1.1 操作系统的概念
      • 操作系统的定义
    • 1.2 操作系统的历史
      • 早期批处理
      • 多道程序系统
      • 分时操作系统
      • 实时操作系统
      • 通用操作系统
    • 1.3 操作系统的基本类型
      • 批处理操作系统
      • 分时系统
      • 实时系统
      • 通用操作系统
      • 个人计算机的操作系统
      • 网络操作系统
      • 分布式操作系统
      • 操作系统的功能
  • 第二章 操作系统用户界面
    • 2.1 作业的定义
    • 2.2 作业组织
    • 2.3 一般用户的输入输出方式
    • 2.4 系统调用
    • 2.5 自愿性中断、内中断
  • 第三章 进程管理
    • 3.1 程序的并发执行
    • 3.2 进程的定义与描述
      • 进程的定义
      • 进程的空间和大小
      • 进程的状态及其转换
    • 3.3 进程控制
      • 进程的创建与撤销
    • 3.4 进程互斥
      • 临界区
      • 间接制约
      • 互斥
    • 3.5 P、V原语
    • 3.6 进程同步
      • 生产者消费者问题
    • 3.7 进程通信
      • 进程的通信方式
    • 3.8 进程通信的实例——管道
    • 3.9 死锁问题
      • 死锁的定义和条件
      • 死锁的消除方法
    • 3.10 线程的概念
    • 3.11线程的分类
  • 第四章 处理机调度
    • 4.1 进程调度
    • 4.2 调度算法
      • 先来先服务(FCFS)调度算法
      • 轮转法(round robin)
      • 多级反馈轮转法(round robin with multiple feedback)
      • 优先级法
      • 最短作业优先法(shortest Job First, SJF)
      • 最高相应比优先法(Highest Response-ratio Next, HRN)
    • 4.3 实时系统调度方法
  • 第五章 存储管理
    • 5.1 虚拟存储器
    • 5.2 地址变换
      • 静态地址重定位
      • 动态地址重定位
      • 内外村数据传输的控制
      • 内存信息的共享和保护
    • 5.3 分区存储管理
      • 分区管理的基本原理
      • 分区的分配和回收
    • 5.3 覆盖与交换技术
      • 覆盖技术
      • 交换技术
      • 分页管理方式的总结
    • 5.4 页式管理
      • 基本原理
      • 静态页式管理
      • 分配算法
      • 地址变换
      • 动态页式管理
    • 5.5 段式和段页式管理
      • 页式管理对比段式管理
      • 段式管理的内存分配与释放
      • 段式管理的优缺点
    • 额外:局部性原理和抖动问题*
  • 第八章:文件系统
    • 8.1 文件的逻辑结构与存取方法
      • 字符流式无结构文件
      • 记录式结构文件
      • 存取方法
    • 8.2 文件的物理结构
    • 8.3 文件存储空间管理
      • 空闲块管理的方法
    • 8.4 文件目录管理
      • 文件的组成
      • 文件目录
      • 便于共享的文件目录
    • 8.5 文件存取控制
      • 存取控制矩阵
  • 第九章:设备管理
    • 9.1 设备管理的功能和任务
    • 9.2 数据传送控制方式
      • 程序直接控制方式
      • 中断方式
      • DMA方式
      • 通道控制方式
    • 9.3 中断技术
      • 中断的分类与优先级
    • 9.4 缓冲技术
      • 缓冲的种类
      • 缓冲池
    • 9.5 设备分配
      • 设备分配用数据结构
      • 设备分配的原则
      • I/O进程控制

第一章 绪论

1.1 操作系统的概念

操作系统的定义

操作系统是计算机系统中的一个系统软件,它是这样一些程序模块的集合——它们管理和控制计算机系统中的硬件及软件资源,合理地组织计算机工作流程,以便有效地利用这些资源为用户提供一个具有足够的功能、使用方便,可扩展、安全和可管理的工作环境,从而在计算机与其用户之间起到接口的作用。

1.2 操作系统的历史

操作系统经历了如下的发展工程:手工操作阶段(无操作系统)、批处理、执行系统、多道程序系统、分时系统、实时系统、通用操作系统、网络操作系统和分布式操作系统。

早期批处理

联机批处理和脱机批处理,每次只调用一个用户作业程序进入内存并运行,称为单道运行

联机批处理
慢速的输入输出设备和主机直接相连。
优点:解决了作业自动转接的问题,从而减少了作业建立和人工操作时间。
缺点:在作业的输入和执行结果的输出过程中,主机CPU仍处于等待状态,慢速的输入输出设备和快速主机之间仍处于串行工作,CPU的时间仍有很大的浪费。

脱机批处理
增加一台不与主机直接相连而专门用于与输入输出设别打交道的卫星机
卫星机的功能:
(1)输入设备通过卫星机把作业输入到输入带;
(2)输出带通过卫星机将作业执行结果输出到输出设备。

优点:主机与卫星机可以并行工作,二者分工明确,以充分发挥主机的高速计算能力。相比脱机批处理和早期联机批处理相比大大提高了系统的处理能力。

通道 是一种专门处理部件,它能控制一台或多台输入输出设备工作,负责输入输出设备与主机之间的信息传输。

多道程序系统

在单处理机系统中,多道程序运行的特点如下:
(1)多道。计算机内存中同时存放几道相互独立的程序。
(2)宏观上运行。同时进入系统的几道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕。
(3)微观上串行。实际上,各道程序轮流使用CPU,交替执行。

需要解决的问题
(1)并行运行的程序要共享计算机系统的硬件和软件资源,既有对资源的竞争,又必须相互同步。因此同步与互斥机制称为操作系统设计中的重要问题。
(2)随着多道程序的增加,出现了内存不够用的问题,提高内存的使用效率也成为关键。因此同步与互斥机制成为操作系统设计中的重要问题。
(3)由于多道程序存在内存,为了保证系统程序存储区和各用户程序存储区的安全可靠,提出了内存保护的要求。

分时操作系统

分时技术就是把处理机的运行时间分为很短的时间片,按时间片轮流把处理机分配给各联机作业使用。

多用户分时操作系统是当今计算机操作系统中最普遍使用的一类操作系统

实时操作系统

实时操作系统是以允许的时间范围之内做出相应为特征的。

通用操作系统

在前面几种操作系统之上日益完善,出现了通用操作系统。

1.3 操作系统的基本类型

批处理操作系统

特征
(1)用户脱机使用计算机。
(2)成批处理。
(3)多道程序运行

分时系统

分时系统一般采用时间片轮转的方式,使一台计算机为多个终端用户服务,对每个用户能保证足够快的响应时间,并提供交互会话能力。
(1)交互性 1. 用户可以在程序动态运行情况下对其加以控制,从而加快调试过程,提供了软件开发的良好环境。2. 用户上机提交作业方便。特别对于远程终端用户,不必将其作业交给机房,在自己的终端上就可以提交、调试并运行其程序。3.分时系统还为用户之间进行合作提供方便。
(2)多用户同时性。多个用户同时在自己的终端上上机,共享CPU和其他资源,充分发挥系统的效率。
(3)独立性。

实时系统

实时系统的主要特点是提供及时响应和高可靠性。如订机票
设计实施操作系统要考虑这样一些因素:
(1)实时时钟管理(定时处理和延时处理)。
(2)连续的人-机对话,这对实时控制往往是必须的。
(3)过载保护。在实时系统中,进入系统的实时任务的时间和数目有很大的随意性,因而在某一时刻有可能超出系统的处理能力。

通用操作系统

扯淡

个人计算机的操作系统

扯淡

网络操作系统

计算机网络是通过通信设施将物理上分散的、具有自治功能的多个计算机系统互连起来的,实现信息交换、资源共享、可互操作和协作处理的系统。它具有以下特征:
(1)计算机网络是一个互联的计算机系统的群体。
(2)这些计算机是自治的,每台计算机有自己的操作系统,各自独立工作,它们在网络协议控制下协同工作。
(3)系统互联要通过通信设施(软件和硬件)来实现。
(4)系统通过通信设施执行信息交换、资源共享、互操作和协作处理,实现多种应用要求。

分布式操作系统

通过通信网络将物理上分布的、具有自治功能的数据处理系统或计算机系统互联起来,实现信息交换和资源共享,协作完成任务。

操作系统的功能

处理机管理
主要是在多道程序或多用户的情况下,要组织多个作业同时运行,就要解决处理机分配调度策略,分配实施和资源回收等问题。

存储管理
存储管理的主要工作是对存储器进行分配、保护和扩充的管理。
(1)内存分配。如何分配内存以保证系统及各用户程序的存储区互不冲突
(2)存储保护。保证一道程序在执行过程中不会有意或无意地破坏另一道程序。
(3)内存扩充。当用户作业所需要的内存量超过计算机系统所提供的内存容量时,把内部存储器和外部存储器结合起来管理,为用户提供一个容量比实际内存大得多的虚拟存储器。

设别管理
(1)通道、控制器和输入输出设备的分配和管理。根据一定地分配策略,把通道、控制器和输入输出设备分配给请求输入输出操作地程序,并启动折别管成实际的输入输出操作。
(2)设备独立性。输入输出设备种类很多,使用方法各不相同。设备管理应为用户提供一个良好的界面,而不必去涉及具体的设备特性,以使用户能方便、灵活地使用这些设备。

上述3种管理都是针对计算机的硬件资源的管理

信息管理(文件系统管理)
信息管理时对系统的软件资源的管理

上述4种是操作系统对资源的管理

用户接口
(1)程序一级接口。广义指令
(2)作业一级接口。控制操作指令

第二章 操作系统用户界面

2.1 作业的定义

用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。

2.2 作业组织

一个作业可以包含多个程序和多个数据集,但必须至少包含一个程序。

2.3 一般用户的输入输出方式

1. 联机输入输出方式
扯淡

2.脱机输入输出方式
扯淡

3.直接耦合方式
直接耦合方式把主机和外围机通过一个公用的大容量外存直接耦合起来,从而省去了在脱机输入中依靠人工干预来传递后援存储器的过程。

4.spooling
在spooling系统中,多台外围设备通过通道或DMA器件和主机与外存连接起来。

5.网络联机方式
扯淡

2.4 系统调用

系统调用是操作系统提供给编程人员的唯一接口。
系统调用大致分为几类:
(1)设备管理
(2)文件管理
(3)进程管理
(4)进程通信
(5)存储管理
(6)线程管理

为了保证操作系统程序不被用户程序破坏,一般操作系统都不允许用户程序直接访问操作系统的系统程序和数据。

Q:编程人员如何调用操作系统内部的程序或数据?
A:这需要有一个类似于硬件中断的处理机制。当用户使用系统调用时,产生一条相应的指令,处理机在执行到该指令时发生相应的中断,并发出有关信号给该处理机制。

在系统中为控制系统调用服务的处理机构称为陷阱(trap)处理机构。由于系统调用引起处理机中断的指令称为陷阱指令(访管指令)。

为了实现系统调用,系统设计人员还必须为实现各种系统调用功能的子程序编制入口地址表,每个入口地址都与相应的系统子程序名对应起来。由陷阱处理程序把陷阱指令中所包含的功能号与该入口地址表中的有关项对应起来,从而由系统调用功能号驱动有关系统子程序执行。

1.在系统调用结束之后,用户程序还需利用系统调用的返回结果继续执行。2.在系统调用处理结束之后,陷阱处理机构还要恢复处理机现场
因此,在进入系统调用处理之前,陷阱处理机构还需保护处理机现场。

Q:怎样实现用户程序和系统程序之间的参数传递?
A:1.陷阱指令自带参数;2.通过有关通用寄存器来传递参数,由于寄存器长度也是较短的,无法传递较多的参数。因此,在系统调用很多的系统中,大多在内存中开辟专用堆栈区来传递参数。

所谓处理机现场,就是指处理机在执行程序过程中任一时刻的状态信息的集合。处理机现场通常包括以下内容:指令计数器、程序状态寄存器、通用寄存器以及其他一些特殊控制寄存器等。

2.5 自愿性中断、内中断

望文生义

第三章 进程管理

采用进程的概念来描述计算机程序的执行过程和作为资源分配的基本单位,才能充分反映操作系统的执行并发、资源共享及用户随机的特点。

3.1 程序的并发执行

程序的顺序执行的特点
(1)顺序性
(2)封闭性
程序执行得到的最终结果由给定的初始条件决定,不受外部因素的影响
(3)可再现性
顺序执行的最终结果可再现是指它与执行速度无关。只要输入的初始条件相同,则无论何时重复执行该程序都会得到相同的结果。

多道程序系统中程序执行环境的变化
许多情况下,计算机需要能够同时处理多个具有独立功能的程序。批处理系统、分时系统、实时系统以及网络与分布式系统等都是这样的系统。
执行环境具有下述3个特点:
(1)独立性
在多道环境下执行的每道程序都是逻辑上独立的,它们之间不存在逻辑上的制约关系。
(2)随机性
在多道程序环境下,特别是在多用户环境下,程序和数据的输入与执行开始时间都是随机的。
(3)资源共享性
这里所说的资源,既包括硬件资源,也包括软件资源。

程序的并发执行
一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上相互重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。

3.2 进程的定义与描述

进程的定义

进程是:并发执行的程序在执行过程中分配和管理资源的基本单位。

进程和程序的区别和联系
(1)进程是一个动态概念,程序是一个静态概念;
(2)进程具有并发特征,而程序没有;
(3)进程是竞争计算机系统资源的基本单位,从而其并发性受到系统自己的制约;
(4)不同的进程可以包含同一程序,只要该程序所对应的数据集不同。

进程的静态描述
进程控制台(PCB),有关程序段、该程序段对其进行操作的数据结构集

进程控制块
进程控制块包含一个进程的描述信息、控制信息、资源信息,是进程的标志当一个进程完成其功能之后,系统则释放PCB,进程也随之消亡。

进程 = 程序 + PCB
程序 = 代码 + 数据

进程的上下文
进程的上下文是一个抽象的概念,它包含了每个进程执行过的、执行时的以及待执行的指令和数据。已执行过的进程指令和数据在相关寄存器与堆栈中的内容称为上文,正在执行的称为正文,待执行的称为下文

进程的空间和大小

任何一个进程,都有一个自己的地址空间,该空间称为进程空间或需空间。人们也把用户执行模式和系统执行模式分别称为用户态和系统态。

进程的状态及其转换

在进程的生命期内,一个进程至少具有5种基本状态:初始态、执行状态、等待状态、就绪状态、终止状态。

阻塞的时机/事件
(1)请求系统服务
(2)启动某种操作
(3)新数据尚未到达
(4)无新工作可做

3.3 进程控制

一般地,把系统态下执行的某些具有特定功能地程序段称为原语
机器指令级 执行期间不允许中断
功能级作为原语的程序段不允许并发执行

进程的创建与撤销

进程创建
(1)由系统模块统一创建
(2)由父进程创建
无论是系统创建方式还是父进程创建方式,都必须调用创建原语来实现

进程撤销
以下几种情况导致进程被撤销:
(1)该进程已完成所要求的功能而正常终止;
(2)由于某种错误导致非正常终止;
(3)祖先进程要求撤销某个子进程。
无论是哪种方式导致进程被撤销,进程都必须释放它所占用的各种资源和PCB结构本身,以利于资源的有效利用。

3.4 进程互斥

临界区

临界资源
一次只允许一个进程独占访问(使用)的资源。

临界区
进程中访问临界资源的程序段。

间接制约

由于共享某一共有资源而引起的在临界区内不允许并发进程交叉执行的现象,称为由共享公有资源而造成的对并发进程执行速度的间接制约,简称间接制约。

互斥

定义:一组并发进程中的一个或多个程序段,因共享某一公有资源而导致它们必须以一个不允许交叉执行的单位执行。

一组并发进程互斥执行时必须满足如下准则:

(1)不能假设各并发进程的相对执行速度。即各并发进程享有平等地、独立地竞争共有资源的权利,且在不采取任何措施的条件下,在临界区内任一指令结束时,其他并发进程可以进入临界区。
(2)并发进程中的某个进程不在临界区时,它不阻止其他程序进入临界区。
(3)并发进程中的若干个进程申请进入临界区时,只能允许一个进程进入。

(1)、(2)、(3)是保证各并发进程享有平等地、独立地竞争和使用公有资源地权利,且保证每一时刻至多只有一个进程在临界区。

(4)并发进程中的某个进程从申请进入临界区时开始,应在有限时间内得以进入临界区。

(4)是并发进程不发生死锁的重要保证。

3.5 P、V原语

待续

3.6 进程同步

定义:把异步环境下的一组并发进程因直接制约而相互发送消息而进行相互合作、相互等待,使得各进程按一定的速度执行的过程称为进程间的同步。

生产者消费者问题

待续

3.7 进程通信

进程的通信方式

在单机系统中,进程间通信可分为4种形式:
主从式
(1)主进程可自由地使用从进程的资源或数据;
(2)从进程的动作受主进程的控制;
(3)主进程和从进程的关系是固定的。

会话式
通信进程双方可分别称为使用进程和服务进程。其中,使用进程调用服务进程提供的服务。它们具有如下特点:
(1)使用进程在使用服务进程所提供的服务之前,必须得到服务进程的许可。
(2)服务进程根据使用进程的要求提供服务,但对所提供服务的控制由服务进程自身完成。
(3)使用进程和服务进程在进行通信时有固定连续关系。

消息或邮箱机制
(1)只要存在空缓冲区或邮箱,发送进程就可以发送消息。
(2)与会话系统不同,发送进程和接收进程之间无直接连接关系,接收进程可能在收到某个发送进程发来的消息之后,又转去接收另一个发送进程发来的消息。
(3)发送进程和接收进程之间存在缓冲区或邮箱用来存放被传送的消息。

共享存储区方式

消息或邮件机制
(1)消息缓冲机制
它需要满足以下两个条件:1.在发送进程把消息写入缓冲区和把缓冲区挂入消息队列时,应禁止其他进程对该缓冲区消息队列的访问。2.当缓冲区中无消息存在时,接收进程不能接收到任何消息
(2)邮箱通信
它需要满足以下两个条件:1.发送进程发送消息时,邮箱中至少要有一个空格能存放该消息。2.接收进程接收消息时,邮箱中至少要有一个消息存在。
共享存储区方式

3.8 进程通信的实例——管道

管道:有名管道、无名管道

无名管道为建立管道的进程及其子孙提供一条以比特流方式传送信息的管道。
P66 书上实例中管道按FIFO方式传送消息,且只能单向传送消息。

3.9 死锁问题

死锁的定义和条件

定义:各并发进程相互等待对方所拥有的资源,且这些并发进程在得到对方的资源之前不会释放自己所拥有的资源。

死锁的起因:并发进程的资源竞争。
根本原因:系统提供的资源个数少于并发进程所要求的该类资源数。

产生死锁的必要条件
从死锁的概念,可以得到产生死锁的必要条件如下:
(1)互斥条件。并发进程所要求和占有的资源是不能同时被两个以上进程使用或操作的,进程对它所需要的资源进行排他性控制。
(2)不剥夺条件。进程所获得的资源在未使用完毕之前,不能被其他进程强行剥夺,而只能由获得该资源的进程自己释放。
(3)部分分配。进程每次申请它所需要的一部分资源,在等待新资源的同时,继续占用已分配到的资源。
(4)环路条件。存在一种进程循环链,链中每一个进程已获得的资源同时被下一个进程所请求。
只要上述4个必要条件中的某一个不满足,死锁就可以消除。

死锁的消除方法

死锁预防
1.打破资源的互斥和不可剥夺这两个条件。
2.打破资源的部分分配整个死锁产生的条件,即预先分配各并发进程所需要的全部资源。
3.打破死锁的环路条件。

死锁避免
将死锁分成不同的步。每个步所使用的资源是固定的,且在一个步内,进程所保持的资源数不变。

3.10 线程的概念

为了减少进程切换和创建的开销,提高执行效率和节省资源,人们开始在操作系统中引入“线程”的概念。

线程是进程的一部分,它没有自己的地址空间,它和进程内的其他进程一起共享分配给该进程的所有资源。

使用线程的优点
在有多个任务需要处理机处理时可以减少处理机的切换时间;而且,线程的创建和结束所需要的系统开销也比进程要小得多。

线程的应用:
(1)服务器中的文件管理或通信控制;
(2)前后台处理;
(3)异步处理;

3.11线程的分类

线程的两个基本类型是用户级线程和内核级线程。
用户级线程 全部由用户程序完成,操作系统内核只对进程进行管理。
内核级线程 由操作系统内核进行管理。操作系统内核给应用程序提供相应的系统调用和应用程序接口(API),以使用户程序可以创建、执行和撤销线程。

第四章 处理机调度

作业的定义:作业是用户要求计算机所作的关于一次业务处理的全部工作,它包括作业的提交、执行和输出等过程。

一个作业从提交给计算机系统到执行结果退出系统,一般要经历提交、收容、执行和完成4个状态。
课本P80 讲得很详细,但我觉得没有比要看很详细

4.1 进程调度

进程调度的具体功能可总结如下:
(1)记录系统中所有进程的执行情况。
(2)选择占有处理机的进程。
(3)进行进程上下文切换。

4.2 调度算法

先来先服务(FCFS)调度算法

轮转法(round robin)

如果时间片长度过短,则调度程序剥夺处理机的次数增多,这将使进程上下文切换次数也大大增加,从而加重系统开销。
如果时间长度选择多长,就变成了先来先服务法。

多级反馈轮转法(round robin with multiple feedback)

优先级法

静态法 执行之前确定优先级
动态法 不断变化

线性优先级调度策略
简单,看王道一下就懂了。

最短作业优先法(shortest Job First, SJF)

最高相应比优先法(Highest Response-ratio Next, HRN)

相应比R定义如下:
R = (W + T) / T = 1 + W / T
wait, termite

4.3 实时系统调度方法

望文生义

第五章 存储管理

5.1 虚拟存储器

通常由用户编写的源程序,首先要由编译程序编译成CPU可执行的目标代码。然后,链接程序把一个进程的不同程序段链接起来以完成所要求的功能。有两种方法安排这些编译后的目标代码地址:
1.按照物理存储器中的位置赋予实际物理地址,这种方法的好处是CPU执行目标代码时的执行速度高。
2.编译链接程序把用户源程序编译后链接到一个以0地址为起始地址的线性或多维线性地址空间。每个指令或数据单元都在这个虚拟空间中拥有确定的地址,这个地址称为虚拟地址。虚拟地址组成的虚拟空间称为虚拟存储器。虚拟存储器不考虑物理存储器的大小和信息存放的实际位置,只规定每个进程中相互关连的信息的相对位置。

5.2 地址变换

实现地址重定位或地址映射的方法有两种:静态地址重定位或动态地址重定位。

静态地址重定位

在虚拟地址空间程序执行之前由装配程序完成地址映射工作。它在编译时确定逻辑地址和物理地址的映射管理。
优点:不需要硬件支持。
缺点:程序加载时,必须放在指定的内存区域;容易产生地址冲突,运行失败。

动态地址重定位

在程序执行过程中,在CPU访问内存之前,将要访问的程序或数据地址转换成内存地址。动态重定位依靠硬件地址变换机构完成

优点:
(1)可以对内存进行非连续分配。
(2)动态重定位提供了实现虚拟存储器的基础。
(3)有利于程序段的共享。

缺点:
(1)硬件支持(NMV:内存管理单元)。
(2)软件复杂。

内外村数据传输的控制

用户程序自己控制内外村之间的数据交换的例子时覆盖
操作系统控制方式分为两种:交换请求调入

望文生义

内存信息的共享和保护

方法:硬件法、软件法、软硬件结合法
举例:
上下界保护法
保护键法
内存保护方法

5.3 分区存储管理

分区管理的基本原理

固定分区法
把内存固定地划分为若干个大小不等的区域。适合单用户单任务系统,具有固定任务数地多道程序系统。

动态分区法
分区地建立实在作业处理过程中进行的,且其大小可随作业或进程对内存地要求而改变。

分区的分配和回收

固定分区时的分配和回收

动态分区时的分配和回收
(1)最先适应算法 要求可用表或自由链按起始地址递增的次序排列。特点:一旦找到大于或等于所要求内存长度的分区,则结束探索
(2)最佳适应算法要求按从小到大的次序组成空闲区可用表或自由链。特点:存储管理程序从表投开始查找,当找到第一个满足要求的空闲区时,停止查找
(3)最坏适应算法和最坏适应算法相反,是从大到小的。
*(1)最佳性能,搜索快,不用先对空闲区排队;回收时不用改变区在可用表中的位置。
(2)找到的空闲区是最佳的。但并不一定能提高内存利用率。
(3)避免内存浪费。

动态分区时的回收与拼接

P110 简单

5.3 覆盖与交换技术

覆盖技术

P113 一个程序有若干个程序段,不会同时运行的程序段可以共享一部分内存,类似C语言里面的union

交换技术

望文生义 简单

分页管理方式的总结

分页管理方式尽管实现方便较为简单,但存在着严重的碎片问题使得内存的利用率不高。由于各作业或进程对应于不同的分区以及在分区内各作业或进程连续存放,进程的大小仍受分区大小或内存可用空间的限制。

5.4 页式管理

基本原理

各进程的虚拟空间被划分成若干个长度相等的页。页长的划分和内存、外村之间的数据传输速度以及内存大小等有关。
经过页划分之后,进程的虚地址变为页号P与页内地址W所组成

页号P 页内地址W

优点:1.实现了内存中碎片的减少,因为任一碎片都会小于一个页面。
2.实现了由连续存储到非连续存储这个飞跃。

静态页式管理

静态页面管理方法是在作业或进程开始执行之前,把该作业或进程的程序段和数据全部装入内存的各个页面中,并通过页表和硬件地址变换机构实现虚拟地址到内存物理地址的地址映射。


内存地址=物理块号×页大小+页内地址。
更多访问:https://blog.csdn.net/qq_36795474/article/details/81226341
王道:P155

分配算法

待续

地址变换

待续

动态页式管理

待续
着重:FIFO算法等

5.5 段式和段页式管理

原理:
把程序内容或过程关系分成段,每段有自己的名字。一个用户作业或进程所包含的段对应于一个二维线性虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段位单位分配内存,然后通过地址映射机构把段式虚拟地址转换成实际的内存物理地址。
段式管理把一个进程的虚地址空间设计成二维结构,即段号s与段内相对地址w。

页式管理对比段式管理

页式管理中页号顺序排列,段式管理段号和段号之间无顺序关系。

段式管理的内存分配与释放

段式管理的内存分配与释放在作业或进程的执行过程中动态进行。
内存够 系统要用相应的表格或数据结构来管理内存空闲区,以便对用户进程或作业的有关程序段进行内存分配和回收。
内存不够 段式管理程序根据给定的置换算法淘汰内存中在今后一段时间内不再被CPU访问的段,也就是淘汰那些访问概率最低的段。

段式管理的优缺点

优点
(1)和动态页式管理一样,段式管理也提供了内外存统一管理的虚拟实现。
(2)在段式管理中,段长可根据需要动态增长。
(3)便于对具有完整逻辑功能的信息段进行共享。
(4)便于实现动态链接。

缺点
(1)更多的硬件支持。
(2)每个段的长度受内存可用区大小的限制。

额外:局部性原理和抖动问题*

如果内存和外村之间数据交换频繁,一个进程在执行过程中缺页率或缺段率过高,势必会造成对输入/输出设备的巨大压力和是得机器的主要开销大多用在反复调入调出数据和程序段上,从而无法完成用户所要求的工作。

试验证明,任何程序在局部性放入时,都有一个临界值要求。当内存分配小于这个临界值时,内存和外村之间的交换频率将会急剧增加,而内存分配大于这个临界值时,再增加内存分配也不能显著减少交换次数。这个内存要求的临界值被称为工作集

缺页的原因
1.并发进程所要求的工作集综合大于内存可提供的可用区。
2.系统无法再开始执行前选择适当的程序段和数据进入内存。

系统抖动
当给进程分配的内存小于所要求的工作集时,由于内存与外寸之间交换频率,访问外存和输入/输出处理时间大大增加,反而造成CPU因等待数据空转,使得真个系统性能大大下降。

第八章:文件系统

定义:文件是一段程序或数据的集合。

8.1 文件的逻辑结构与存取方法

文件的逻辑结构可分为两大类:字符流式的无结构文件和记录式的有结构文件。

字符流式无结构文件

查找文件基本信息单位困难,但管理简单,方便操作。

记录式结构文件

1.连续结构
一种把记录按生成的先后顺序连续排列的逻辑结构。
优点:适用性强
缺点:搜索性能差

2.多重结构
把记录按关键字和记录名排列成行列式结构。

3.转置结构

4.顺序结构

存取方法

顺序存取法
随机存取法
按关键字存取法
1.线性搜索法
2.散列法
3.二分搜索法

8.2 文件的物理结构

1.连续文件
数组

2.串联文件
链表

3.索引文件

逻辑块号 物理块号
0 20
1 15
2 22
3 25

8.3 文件存储空间管理

空闲块管理的方法

1.空闲文件目录
最简单的空闲块管理方法就是把文件存储设备中的空闲块的块号统一放在一个称为空闲文件目录的物理块中。

其中空闲文件目录的每个表项对应一个由多个空闲块构成的空闲区,它包括空闲块个数,空闲块号和第一个空闲块号等。

2.空闲块链
空间块链把文件存储设备上的所有空间快链接在一起。

当申请者需要空闲块时,分配程序从链头开始摘取所需要的空间块,然后调整链首指针。反之,当回收空闲块时,把释放的空闲块逐个插入链尾上。

3.位视图
为了提高空闲块的分配和回收速度,人们使用位视图的方式进行空间块管理。

系统首先从内存中划出若干个字节,为每个文件存储设备建立一张位视图。这张位视图反映每个文件存储设备的使用情况。在位视图中,每个文件存储设备的物理块都对应一个比特位。01

8.4 文件目录管理

文件的组成

从文件管理角度看,一个文件包括两个部分:文件说明和文件体

文件说明 (文件控制块(FCB)),它至少包括文件名、与文件名相对应的文件内部标识以及文件信息在文件存储设备上第一个物理块的地址。还包括关于文件逻辑结构、物理结构、存取控制、管理等信息。

文件说明组成文件目录。文件系统利用目录文件完成按名存取和对文件信息的共享与保护。

文件体 文件本身的信息,它可能时前面各节讨论的记录式文件或字符流式文件。

文件目录

文件目录可分为单机目录、二级目录和多级目录。
单级目录 一张目录表,每个文件在其中占有一项用来存放文件说明信息。文件系统通过该表提供的信息对文件进行创建、搜索和删除等操作,对文件系统空间的自动管理和按名存取。
缺点:1.只能按连续结构或顺序结构存放,因此,文件名与文件必须一一对应。不能重名。2.搜索效率低。

二级目录
优点:解决文件重名和文件共享的问题,并可获得较高的搜索速度。

多级目录
二级目录的推广
树形结构的特点:
(1)层次清楚。
(2)解决了文件重名问题。
(3)查找搜索速度快。

便于共享的文件目录

从系统管理的观点看,有3种方法可以实现文件共享:
(1)绕道法;
(2)链接法;
(3)基本文件目录表(BFD)

8.5 文件存取控制

简单

存取控制矩阵

权限啥玩意,类似安卓RE文件管理器

第九章:设备管理

9.1 设备管理的功能和任务

(1)提供和进程管理系统的接口。当进程要求设备资源时,该接口将进程要求转达给设备管理程序。
(2)进行设备管理。按照设备类型和相应的算法把设备和其他有关的硬件分配给请求设备的进程,并把未分配到所请求设备或其他有关硬件的进程放入等待队列。
(3)实现设备和设备、设备和CPU之间的并行操作。需要硬件支持
(4)进行缓冲区管理。*为了解决外部设备和内存与CPU之间的数据速度不匹配的问题,系统中一般设有缓冲区(器)来暂放数据。

9.2 数据传送控制方式

外围设备和内存之间的常用数据传送控制方式有4种:

程序直接控制方式

由用户进程来直接控制内存或CPU和外围设备之间的信息传送。这种方式的控制者是用户进程
优点:简单
缺点:
(1)CPU和外围设备只能串行工作。
(2)CPU在一段时间内只能和一台外围设备交换数据信息,从而不能实现设备之间的并行工作。
(3)无法发现和处理由于设备或其他硬件所产生的错误。

中断方式

优点:CPU利用率大大提高且能支持多道程序和设备的并行操作。

DMA方式

DMA(Direct Memory Access),直接存取方式

通道控制方式

通道控制(channel control)方式与DMA方式相似,也是一种以内存为中心,实现设备和内存交换数据的控制方式。
通道是一个独立于CPU的专管输入输出控制的处理机,它控制设备与内存直接进行数据交换。

9.3 中断技术

中断是指计算机在执行程序期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理机完成后又返回原来被中断处继续执行或调度新的进程执行的过程。
中断源 引起中断发生的事件。
中断请求 中断源向CPU发出的请求中断处理信号。
中断响应 CPU收到中断请求后转相应的事件处理程序。
禁止中断 有时候尽管产生了中断源和发出了中断请求,但CPU内部的处理机状态字的中断允许位已被清除,从而不允许CPU响应中断。
中断屏蔽 系统用软件方式有选择地封锁部分中断而允许其余部分的中断仍能得到相应。

中断的分类与优先级

1.硬中断
这些中断和陷阱要通过硬件产生相应的中断请求。
外中断和内中断
外中断指来自处理机和内存外部的中断。

内中断指在处理机和内存内部产生的中断。
内中断一般称为陷阱

2.软中断
它是通信进程之间用来模拟硬中断的一种信号通信方式。

9.4 缓冲技术

缓冲的种类

外围设备与处理机速度不匹配的问题可以采用设置缓冲区(器)的方式解决。
缓冲的实现方法有两种:
1.采用专用硬件缓冲器;
2.在内存中划出一个具有n个单元的专用缓冲区,以便存放输入输出的数据。内存缓冲区又称为软件缓冲。

缓冲池

定义:缓冲池由多个缓冲区组成。

一个缓冲区由两部分组成
一部分是用来标识该缓冲器和用于管理的缓冲首部;
一部分是用于存放数据的缓冲体。

9.5 设备分配

设备分配用数据结构

设备控制表 DCT
系统设备表 SDT
控制器表 COCT
通道控制表 CHCT

设备分配的原则

分配方式
静态分配、动态分配

设备分配策略
(1)先请求先分配。
(2)优先级高者先分配。

I/O进程控制

I/O控制的定义
给用户进程分配设备和启动有关设备进行I/O操作,以及在I/O操作完成之后响应中断,进行善后处理为止的整个系统控制过程称为I/O控制。

I/O控制的实现
(1)作为请求I/O操作的进程的一部分实现。
(2)作为当前进程的一部分实现。
(3)I/O控制由专门的系统进程——I/O进程完成。

I/O进程也可分为3种方式实现:
(1)每个设备设一个专门的I/O进程,且该进程只能在系统态下执行。
(2)整个系统设一个I/O进程,全面负责系统的数据传送工作。
(3)每类(个)设备设一个专门的I/O进程。可在用户态和系统态下执行。

【定期更新】操作系统通读课本相关推荐

  1. 栋的周评 | 第二回合(定期更新、动态、架构、云技术、后端、前端、收听/收看、英文、哲学、书籍、影视、好歌、新奇)

    开篇词 大家好!以下是我在 2020 年 1 月 6 日至 12 日的所见.所闻.所学和所悟. 现在,我把它们安利给你们. 定期更新 原创专栏: 一文搞定 Linux 管理员手册:既简单又深刻 官方授 ...

  2. 栋的月结 | 第二回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)[含泪总结.. 憋泪分享!]

    开篇词 大家好!以下是我在 2020 年 2 月 1 日至 29 日的所见.所闻.所学和所悟. 现在,我把它们安利给你们. 定期更新 原创专栏: 一文搞定 Linux 管理员手册:既简单又深刻 官方授 ...

  3. 栋的周评 | 第七回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)

    开篇词 大家好!以下是我在 2020 年 2 月 10 日至 16 日的所见.所闻.所学和所悟. 现在,我把它们安利给你们. 定期更新 原创专栏: 栋的周评 一文搞定 Linux 管理员手册:既简单又 ...

  4. 栋的周评 | 第八回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)

    开篇词 大家好!以下是我在 2020 年 2 月 17 日至 23 日的所见.所闻.所学和所悟. 现在,我把它们安利给你们. 定期更新 原创专栏: 栋的周评 一文搞定 Linux 管理员手册:既简单又 ...

  5. cad布局教程_「推荐收藏」室内设计师进阶视频教程学习合集 私聊我定期更新...

    [推荐收藏]室内设计师进阶视频教程学习合集 私聊我定期更新 选你比较需要或感兴趣的教程类别即可~!如果不想投票,可直接下拉看目前已有教程哦~ 看好需要的教程或素材,关注点赞转发以后私聊我即可 官方每月 ...

  6. 栋的月结 | 第一回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)[含泪总结.. 憋泪分享!]

    开篇词 大家好!以下是我在 2020 年 1 月 1 日至 31 日的所见.所闻.所学和所悟. 现在,我把它们安利给你们. 定期更新 原创专栏: 栋的周评 一文搞定 Linux 管理员手册:既简单又深 ...

  7. 栋的周评 | 第六回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)

    开篇词 大家好!以下是我在 2020 年 2 月 3 日至 9 日的所见.所闻.所学和所悟. 现在,我把它们安利给你们. 定期更新 原创专栏: 栋的周评 一文搞定 Linux 管理员手册:既简单又深刻 ...

  8. raspbian mysql_定期更新树莓派和Raspbian的5个理由

    描述 您已经拥有Raspberry Pi已有一段时间了,但是发现它不能正常工作.事情进展缓慢,应用程序丢失或已停止运行--有点混乱.但为什么?也许是因为您尚未更新! 从长远来看,Raspberry P ...

  9. 前端面试题整理(定期更新)

    前言 因为面试的原因,最近又开始关注前端面试题,浏览过网上很多面试题集合,有很多小伙伴整理的很全面,但是我发现其中有很多技术点在当下已不再流行,而面试题一般都是映射开发中常遇到的一些技能和问题,再结合 ...

最新文章

  1. c# SQLServer导入大批量数据
  2. 波士顿动力双足机器人Atlas放出逆天体操表演,网友:比我还强
  3. 图像处理之log---log算子
  4. 一次难忘的产品发布经历
  5. SpringMVC框架--学习笔记(上)
  6. tp3 普通模式url模式_[tp3.2.1]开启URL(重写模式),省略URL中的index.php
  7. 三十六亿票房的《哪吒》,如何利用 AI 成为国漫界的黑马?
  8. 产品结构bom设计 mongodb_产品设计人员看过来!儿童智能机器人产品结构设计解析(二)...
  9. 西电华为交换设备配置(6506)
  10. x264编码指南——码率控制
  11. OpenLayers 官网例子的中文详解 1
  12. MVC3.0+knockout.js+Ajax 实现简单的增删改查
  13. Microsoft官网 Windows10 系统重装教程
  14. 移动硬盘写速度不到1M
  15. 程控增益放大器电路原理图
  16. 线性代数:置换、转置矩阵和向量空间
  17. WIN7旗舰版下安装SQL SERVER 2008安装报错解决方案
  18. Word中的公式编辑器
  19. 蓝鲸财经新闻记者实战培训
  20. 鱼刺图java_使用java实现鱼刺图

热门文章

  1. Intellij IDEA Select Opened File 快捷键好像没起作用
  2. 法国银行推出区块链ETN
  3. Java jsp 人力资源管理系统,飞机票网上订购系统,快递管理系统毕业设计论文+成套源码 免费分享
  4. 老子要笑着走下去,没有什么能影响我~
  5. 2023泰晤士高等教育世界大学排名发布(附TOP200榜单)
  6. 鲜花自动售货机方案设计详解
  7. 机器视觉:为什么追踪网球的技术不能用在足球和篮球上?
  8. SURF: speed up robust feature
  9. 跳过硬件检查升级win11
  10. 推荐给大家,java随机抽题系统