关于操作系统

概念与目标

  • 概念:配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充

  • 目标:方便性、有效性、可扩充性、开放性

  • 作用:用户与计算机硬件系统之间的接口;计算机系统资源的管理者;实现了对计算机资源的抽象。

计算机资源的抽象

所谓资源抽象,是指通过创建软件来屏蔽硬件资源物理特性和接口细节,简化对硬件资源的操作、控制和使用的一类技术。

因此,OS是铺设在硬件上的多层软件集合,隐藏了对硬件操作的细节,实现了对硬件操作的多个层次的抽象模型。

发展

人工操作–脱机输入/输出–单道批处理–多道批处理

基本特征

  • 并发:一段时间内,宏观上有多个程序在同时运行,微观上程序分时运行。

  • 共享:系统中的资源可供内存中多个并发执行的进程同时使用

    • 互斥共享
    • 同时访问
  • 虚拟:通过某种技术将一个物理实体变为若干逻辑上的对应物

    • 时分复用
    • 空分复用
  • 异步:进程的运行“停停走走”

主要功能

  • 处理机管理:进程控制、进程同步、进程通信、调度

  • 存储器管理:内存分配、内存保护、地址映射、内存扩充

  • 设备管理:缓冲管理、设备分配、设备处理

  • 文件管理:文件存储空间管理、目录管理、文件的读写管理和保护

  • OS与用户的接口

操作系统与用户的接口

  • 用户接口:联机用户接口、脱机用户接口、图形用户接口

  • 程序接口:由一系列系统调用组成

进程与线程

并发执行的特征

  • 间断性:进程间相互制约

  • 失去封闭性:资源共享,运行的环境受其他程序影响

  • 不可在现性:程序多次执行,得到的结果不再相同

进程定义、PCB定义

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位

PCB–进程控制块,为使每个参与并发执行的程序能独立运行,OS为之配置的数据结构

进程特征

  • 动态性:由创建产生,由调度执行,由撤销消亡

  • 并发性:多个进程同时存在于内存中,能在一段时间内同时运行

  • 独立性:能独立运行、独立获得资源、独立接受调度的基本单位

  • 异步性:每个进程按照各自独立的不可预知的速度前进

进程的三种状态以及三种状态的转换

进程状态转换

系统内核,系统态,用户态

系统内核:与硬件紧密相关的模块、各种常用设备的驱动程序、运行频率较高的模块,都安排在紧靠硬件的软件层中常驻内存。

系统态/管态:具有较高特权,能执行一切指令,访问所有寄存器和存储区–OS在系统态运行

用户态/目态:具有较低特权的执行状态,只能执行规定的指令,访问指定的寄存器和存储区

进程同步

  • 对执行次序进行调节,使并发的进程按一定时序关系共享资源,使程序的执行具有可再现性

    • 间接相互制约关系:互斥共享

    • 直接相互制约关系:为了完成同一个任务

  • 临界资源

  • 临界区:在每个进程中访问临界资源的代码片段

  • 经典问题:生产者-消费者问题

线程的定义、要引入线程原因

线程:调度和分派的基本单位

为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性

线程与进程的比较

  • 进程使独立调度和分派的基本单位

  • 同一个或不同的进程内多个线程可以并发执行

  • 进程是拥有资源的基本单位,多个线程共享该进程拥有的资源

  • 同一个进程里不同线程的独立性比不同进程间的独立性低得多

  • 线程的系统开销小

  • 支持多处理机系统

调度的概念、处理机调度算法的层次

调度:资源分配

  • 高级调度:作业

  • 低级调度:进程

  • 中级调度:内存

处理机调度算法的共同目标

  • 提高资源利用率

  • 公平性

  • 平衡性

  • 策略强制执行

作业控制块–JCB

作业在系统中存在的标志,保存了系统对作业管理和调度所需的全部信息

作业调度算法

  • 先来先服务–FCFS

  • 短作业优先–SJF

  • 优先级调度算法–PSA

  • 高响应比优先调度算法–HRRN

为什么需要高响应比优先算法、优缺点

同时考虑了作业的等待时间和执行时间

优点:实现了较好的折中;

缺点:计算响应比,增加了系统开销;

进程调度算法

抢占/非抢占

暂停某个正在执行的程序,重新分配处理机给另一个进程

轮转调度算法–RR

用时间片切换的方式执行FCFS策略

优先级调度算法

实时调度:抢占/非抢占,最早截至时间有限算法、最低松弛度优先算法

最早截止时间优先EDF算法

  • 抢占式调度算法基于周期实时任务

其中A周期20ms,每个周期处理时间10ms
B周期50ms,每个周期处理时间25ms

EDF

  • 非抢占式调度算法基于非周期实时任务

EDF_1

最低松弛度优先LLF算法

松弛度是实时变化的,即任务的距离截止时间的距离

优先级倒置

即高优先级进程(或线程)被低优先级进程(或线程)延迟或阻塞

死锁

资源

  • 可抢占资源

这类资源可以被系统从当前持有它的进程中强制收回,而不会对系统或进程造成灾难性影响。

  • 不可抢占资源

这类资源一旦被某个进程占用,除非发生错误或异常,否则不能被其他进程抢占。

死锁

因此,当一组进程中额每个进程都在等待一个事件,而这个事件只能由该组中的另一个进程来触发时,就发生了死锁

操作系统处理死锁的方法是什么都不做,由用户决定——鸵鸟算法

资源死锁的条件

  • 互斥条件:每个资源在任意时刻只能被一个进程占用,或者处于可用状态等待被分配

  • 保持和等待条件:已经持有至少一个资源的进程,还可以请求获取新的资源,并且在新资源被分配给它之前,不会释放已经持有的资源

  • 不可抢占条件:资源只能由持有它的进程释放,而不能被其他进程强制抢占

  • 循环等待条件:系统中必然存在一个或多个进程组成的循环连,其中每个进程都在等待下一个进程持有的资源,而最后一个进程又在等待第一个进程持有的资源

破坏死锁

即破坏以上四个条件,但实际上不会采用

避免死锁

  • 单个资源的银行家算法

死锁检测与恢复

  • 死锁检测:构建资源分配表

  • 死锁恢复:抢占式恢复、回滚恢复

程序的装入、链接方式

  • 绝对装入方式:物理地址=逻辑地址

  • 可重定位装入方式:物理地址=逻辑地址+offset,地址变换在装入时完成

  • 动态运行时的装入方式:程序真正执行时才进行地址转换,装入内存后的所有地址仍是逻辑地址

  • 静态链接:程序运行前

  • 装入时动态链接:边装入边链接

  • 运行时动态链接:在程序运行时链接

动态分区分配算法

  • 基于顺序搜索

    • 首次适应算法–First Fit:空闲分区链从地址递增的次序链接

    • 循环首次适应–NF:从上次找到的空闲分区的下一个分区开始找,直到找到一个空闲分区

    • 最佳适应–BF:要求按照容量从小到大的顺序排列空闲分区形成空闲分区链

    • 最坏适应–WF:要求按照容量从大到小的顺序排列空闲分区形成空闲分区链

  • 基于索引搜索

    • 快速适应算法–分类搜索法

    • 伙伴系统

分页存储管理方式

  • 页面/物理块

  • 地址结构:若逻辑地址为A,页面大小L。则页号=INT[A/L],页内地址=A MOD L

  • 页表

访问内存的有效时间

访问一次内存的时间为t

  • 没有快表:2t

  • 有快表:a为命中率,λ为访问一次快表的时间。有效访问时间EAT=t+aλ+(1-a)(λ+t)

分段和分页的区别

  • 页是信息的物理单位;段是信息的逻辑单位。

  • 页的大小固定且取决于系统;段长度不定取决于程序。

  • 页是一维的;段是二维的。

虚拟存储器

局部性原理定义、表现在哪几个方面

局部性原理:在一段较短时间内,程序的执行仅局限于某个部分。相应地,它所访问地存储空间也局限于某个区域。

表现在:

  • 时间局部性:一段时间内

  • 空间局部性:一旦程序访问了某个存储单元,不久之后,其附近存储单元将被访问

虚拟存储器定义

具有请求调入和置换功能,能从逻辑上对内存的容量加以扩充的一种存储器系统。其容量由内存容量和外存容量之和决定,速度接近于内存。

页面置换算法

  • 最佳置换算法

  • 先进先出页面置换算法FIFO:先淘汰先进入内存的页面

  • 最近最久未使用LRU置换算法

  • 最少使用LFU

  • clock置换算法:链成循环队列;设置访问位,被访问置为1,转一圈置为0;换走访问位为0的页面

  • 页面缓冲算法PBA:系统为每个进程分配一定数目的物理块,自己保留一部分。空闲页面链表,修改页面链表。

IO

IO系统的基本功能

隐藏物理设备细节,与设备的无关性,提高处理机和IO设备的利用率,对IO设备进行控制,确保对设备的正确共享和错误处理。

IO软件的层次结构

层次结构

IO系统接口类型

块设备接口、流设备接口、网络通信接口

对IO设备的控制方式

  • 轮询的可编程I/O方式

  • 中断的可编程I/O方式

  • 直接存储器访问方式

  • I/O通道控制方式

与设备无关的IO软件定义

应用程序中所用的设备,不局限于使用某个具体的物理设备,应用程序为实现设备独立性引入了逻辑设备和物理设备,在应用程序中使用逻辑设备名,系统执行时使用物理设备名

什么是假脱机技术–SPOOLING系统

缓和CPU和I/O的速度矛盾

引入缓冲区的原因

  • 缓和CPU与I/O设备速度不匹配的矛盾

  • 减少对CPU的中断效率,放宽对CPU中断响应时间的限制

  • 解决数据粒度不匹配的问题

  • 提高CPU和I/O设备之间的并行性

磁盘管理

磁盘调度算法

  • 先来先服务FCFS

  • 最短寻道时间优先SSTF

  • 扫描SCAN

  • 循环扫描CSCAN

文件系统

文件扩展名

文件的逻辑结构:按文件组织方式分类

顺序文件,索引文件,索引顺序文件

顺序文件记录寻址方式

  • 隐式寻址:指针+偏移量

  • 显式寻址:

    • n*偏移量,随机访问
    • 关键字,逐个比较

文件控制块FCB

用于描述和控制文件。包含基本信息、存取控制信息、使用信息。

树形目录、当前目录定义

  • 树形目录:数据文件称为树叶,其他目录作为结点

  • 当前目录(工作目录):从树根到树叶的路径名

外存的组织方式

  • 连续组织方式:连续的磁盘空间

  • 链接组织方式:用指针链在一起

  • 索引组织方式:索引式文件结构

连续方式的优缺点

  • 优点:顺序访问容易、速度快

  • 缺点:要求为一个文件分配连续的存储空间;必须事先知道文件长度;不能灵活删除和插入记录;对于动态增长的文件难以分配

链接方式(隐式和显式)的优缺点

  • 优点:消除磁盘外部碎片,提高外存利用率;对插入删除修改记录都很容易;适应文件的动态增长,无需事先知道文件大小

  • 缺点:隐式只适合顺序访问,随机访问极其低效;可靠性较差;增大了内部碎片;

windows常用组织方式:FAT12、FAT16、FAT32、NTFS

文件存储空间的管理

  • 空闲表法:空闲盘号+空闲盘块数

  • 空闲链表法:空闲盘块链、空闲盘区链

位视图法

利用二进制的一位来表示磁盘中一个盘块的使用情况

RAID定义

廉价磁盘冗余阵列:并行交叉存取、磁盘镜像、校验

系统调用

  • 用户程序获取OS服务的唯一途径。

  • 提供了用户程序和操作系统内核间的接口。

  • 本质上是应用程序请求OS内核完成某种功能时的一种特殊的过程调用。