SCU操作系统复习

OS

一、计算机系统概述

基本构成

处理器(CPU):控制操作,执行功能

  • 存储器:MAR(地址寄存器)和MBR(缓冲寄存器)
  • 指令寄存器(IR)
  • mode bit inCPU

内存(Main memory):存储数据和程序

输入输出模块(I/O module):辅助内外的数据移动

系统总线(System,bus):模块之间的通信

特殊处理机制

中断:提高CPU效率(进程替换),使CPU在I/O操作执行过程中,执行其他的指令

二、操作系统概述

目标和服务

  1. 方便;有效;扩展性强
  2. 程序开发和运行,系统访问,I/O设备访问,文件访问控制,错误检测和相应记账

操作系统发展史

  • 早期40-50串行处理:没有操作系统,直接和硬件打交道

    ​ 存在问题:调度和准备时间

    ​ 开始出现系统软件工具

  • 简单批处理50-60:IBM 701/704**(没有进程)**

    ​ 核心:监控程序(monitor)

    ​ 利用切换来实现中断,处理器交替释放和获取权利给监控程序

  • 多道批处理系统50-60

    ​ 核心:足够的内存空间和多道的程序设计

  • 分时系统60-70(终端):IBM 7094

    ​ 核心:多个用户分享处理器的时间,有交互

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ihfB0aac-1655216503140)(OS_Note.assets/image-20220612143657733.png)]

    Unix

    1. 最初在贝尔实验室开发,吸收了Multics的思想,1970年在PDP-7运行。

    2. 重点:

    3. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-29utnb3X-1655216556292)(OS_Note.assets/image-20220614222018688.png)]

      ​ Unix系统移植到了PDP-11上,暗示着Unix将被广泛使用

      ​ C语言重写了Unix

    4. 后续:AT&T参与开发并且改进

      ​ 1982 年,贝尔实验室将UNIX 的多个AT&T 变体合并成为了一个系统

    Linux

    1. Linux 最初是IBM PC ( Intel 80386) 上所用的一个UNIX 变体
    2. Linus Torvalds 编写(1991年);网上多人作出了重大贡献
    3. Linux 免费且源代码公开
    4. 今天, Linux已成为功能全面的UNIX 系统
    5. Linux 高度模块化且易于配置;源代码公开易于调整
    6. 没有采用微类核,但是由于其特殊的模块结构,因而也具有很多微内核方法的优点。

    Minix

    1. Minix是一种基于微内核架构的类UNIX计算机操作系统,于1987年由Andrew S. Tanenbaum教授发布
    2. 最初:为了课堂教学开发
    3. 优点:适用于低端的个人电脑、资源受限制系统和嵌入式应用
    4. 启发了Linux的诞生

三、进程(process)

产生背景

  1. 进程的概念、目标、定义

    进程是正在运行的程序;可分配给处理器并由处理器执行的一个单元

  2. 进程、程序(在磁盘上的永恒的存在)、线程的关系和异同点

    程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的

    进程有一定的生命期,而程序是指令的集合

  3. 多个切换的关系:进程状态切换、进程切换、CPU mode的切换

  4. 时钟中断:避免进程超时后仍要继续运行,当前进程切回就绪态,调入下一个进程执行

  5. 模式切换:操作系统和用户程序切换

  6. 进程:程序代码段、与代码相关联的数据集(两个基本元素)和进程控制块

  7. 进程控制块:一种数据结构,存放进程相关信息,可以中断和恢复进程的执行

  8. 上下文切换:保存当前进程的状态,恢复另一个进程的状态

HOW

  1. 进程控制块PCB

  2. 五状态图

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LG07o4nO-1655216503142)(OS_Note.assets/image-20220612143746577.png)]

  3. 单挂起模型

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d94tQRG5-1655216503143)(OS_Note.assets/image-20220612143817297.png)]

  4. 进程的理解

    • OS角度:访问所需求的文件(老师,视角全面)
    • CPU角度:进程的切换和OS控制(规则)
    • process角度:只管执行代码(学生,视角狭窄,只管本身)
  5. 进程切换的理解

    • 进程状态的切换:状态图,切换时系统状态会发生改变(进程不能自己改变自己的状态)

      系统状态的切换不一定导致进程状态的切换(进程请求系统调用接口)

    • 进程的切换:复杂成本更高,产生中断不一定有进程的切换

    • CPU mode/态切换:切换下一条指令/将程序计数器置为中断处理程序的开始地址。

四、线程

目标:进一步提高CPU的利用率(人为创建线程)

PCB和TCB:先有进程控制块,后有线程控制块

用户态线程ULT和内核态线程KLT

用户态线程被阻塞,那么整个进程将会被阻塞;内核态线程被阻塞,会被系统感知,从而调用下一个线程,保证进程的继续运行

五、并发性,互斥与同步

核心:进程和线程的管理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qxhn5QP0-1655216503143)(OS_Note.assets/image-20220612143914971.png)]

临界区:并发进程中与共享变量有关的程序段称为临界区

临界资源:共享变量所代表的资源称为临界资源

进程的交互与存在的问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zn1pYevD-1655216503144)(OS_Note.assets/image-20220612143947159.png)]

互斥的要求

核心:驻留临界区时间有限、进程之间的干涉问题、临界区权限的分配问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IdUzjfQo-1655216503144)(OS_Note.assets/image-20220612144026306.png)]

互斥的实现

中断屏蔽

机械指令

信号量

分类:一般(整数类型的count)、二元(只能去0或1)、互斥(针对同一信号量)和强信号量(阻塞进程出队规则固定,弱信号量相反)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gsvb8diB-1655216503144)(OS_Note.assets/image-20220612144112859.png)]

semwait和semsignal

semwait:申请资源,-1,判断是否负数为阻塞进程

semsignal:释放资源,+1,判断是否<=0释放进程

同步和互斥并存时,先处理同步(semwait)即判断进程是否具备执行的条件(抢占临界资源的资格)

应用

进程数目,可申请资源数目mutex(仓库)、分析关系

同步信号量和互斥信号量(都要以0为判断点)

信号量的数目代表关系,信号量代数总和是资源的数量

生产者-消费者

读者-写者

引入局部变量的原因m

存在的不公平问题(饥饿的写)

Monitor管程(简化信号量)

cwait(挂起)

csignal(执行)

消息传递

分类:阻塞和非阻塞

send(des,mes)

receive(src,mes)

寻址

直接

间接(信箱)

只处理同步没处理互斥?

六、死锁和饥饿

死锁原理

死锁:相互竞争系统资源或者进行通信的进程间的永久阻塞(饥饿的一个子集)

饥饿:具备执行条件的进程得不到执行

可重用资源:指一次仅供一个进程安全使用且不因使用而耗尽的资源:、I/0 通道、内存和外存、设备,以及诸如文件、数据库和信号之类的数据结构

可消费资源:可被创建(生产)和销毁(消耗)的资源 (信号量):可消耗资源的例子有中断、信号、消息和1/0 缓冲区中的信息。

资源分配图:进程、资源、资源数量、有向箭头、方框(S)、圆圈(进程)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eCbqjEHs-1655216503145)(OS_Note.assets/image-20220614152817186.png)]

条件:

  1. 互斥
  2. 占有且等待
  3. 不可抢占
  4. 循环等待

允许发生

鸵鸟算法

死锁控制

死锁预防

互斥:临界资源的访问限制

占有且等待:一次性请求所有资源

不可占有:被拒绝后释放占有资源

消除循环等待:资源的线性顺序

死锁避免(动态)

进程启动拒绝(矩阵)

满足关系:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nAxTDrGf-1655216503145)(OS_Note.assets/image-20220612144152667.png)]

进程启动条件:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CzpwHnjs-1655216503146)(OS_Note.assets/image-20220612144219666.png)]

资源分配拒绝

状态:当前资源的分配状况

安全状态:可以找到可行的进程执行序列

需求矩阵:C-A

银行家算法(动态)

过程

  1. 进程请求,状态改变
  2. 判断改变后的状态是否安全
  3. 不安全的话就拒绝这个请求,回退
  4. 最终还是不行,会选择某个进程收回其已持有的资源

特点

  1. 事先声明进程请求的最大资源
  2. 占有资源不能退出

死锁检测

过程

  1. T时刻对进程的需求Q(动态需求数)矩阵
  2. 找全0行向量,标记
  3. W=V
  4. W更新,A更新(不能更新这表示出现死锁)

检测后处理

  1. 杀死所有进程
  2. 回退到某个检查点
  3. 连续退出进程
  4. 连续抢占资源

处理原则

  1. 耗费时间少
  2. 进程输出行数最少
  3. 估计剩下时间最长
  4. 分配资源最少
  5. 最低优先级

鸽笼原理求最大资源进程数

七、内存管理

术语

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AUcCSvG6-1655216503147)(OS_Note.assets/image-20220612144246010.png)]

内存管理需求

  1. 重定向(重新定位物理地址)

    (进程挂起等状态后改变,进程相关数据的地址变化)

    作业的逻辑地址翻译成内存的物理地址(重定位寄存器)

    基址寄存器

    限界寄存器

  2. 逻辑组织

  3. 保护(运行时进行地址安全检查)

  4. 共享

  5. 物理组织

内存分区

术语:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TA7AsIRf-1655216503148)(OS_Note.assets/image-20220419111925082.png)]

固定分区:内部碎片,利用率低

两种分配方式:1.时间换空间;2.空间换时间

动态分区:外部碎片(内存划分切换时,需要的内存不同)

空闲分区表:

空闲分区链:

适配规则

最佳适配:大小最接近的区域(从头到尾,但容易导致外部碎片)

首次适配:遍历发现的第一个(头部容易形成很多的外部碎片)

邻近适配:上一次的适配地址开始(查找指针)

快速适应:分类链表,空间换时间

外部碎片压缩技术

拼接和紧凑

动态重定位技术

缺点:需要对程序和数据的地址加以修改,故程序当前无法执行(需要等待,CPU时间浪费)

伙伴系统(二叉树)

关键:一劈两半,释放后合并,迭代伙伴,严格大于一半才可以分配

实例:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bC5rczEX-1655216503148)(OS_Note.assets/image-20220419114459394.png)]

物理地址翻译过程

分页

页帧:内存块

页号+页帧推算物理地址:

缺页:所需要的页不在CPU中

抖动:连续的缺页造成的情况

页表:每个进程加载都有一个页表

  • valid bit:是否在CPU中
  • use bit:是否最近使用
  • dirty bit:是否修改

分段

段号和偏移量

根据段号划分段的数量,根据偏移量划分段页内偏移量(不会影响可寻址空间的大小)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aNGuPW8y-1655216503149)(OS_Note.assets/image-20220517103840582.png)]

八、虚拟内存

术语:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OMnMJwiq-1655216503149)(OS_Note.assets/image-20220424102620297.png)]

常驻集:进程执行的任何时候都在内存的部分称为进程的常驻集(resident set)

缺页中断:导致CPU执行两次中断,两次磁盘I/O

局部性原理:程序的指令无论是顺序、分支、循环都会在小区域内有局部性

页表指针:指向对应进程的页表的首地址

多级页表:解决单层页表浪费过多空间的问题(根页表常驻内存),但是会有多次内存访问

倒排表:

  • 解决问题:页表大小和寻址空间成正比

  • 哈希函数和哈希冲突

  • 页号

  • 进程标识符

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-koungtE9-1655216503150)(OS_Note.assets/image-20220517104904528.png)]

转换检测缓冲区(TLB):高速缓存且并发访问;最坏情况:TLB miss+Page fault;更新和更新局部性实现

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tp0iZy8Y-1655216503151)(OS_Note.assets/image-20220517104952099.png)]

页的大小设置问题

  • 太大:内部碎片
  • 过小:过多的页表项

缺页率增加原因:相关性变差,局部性降低
缺页率降低的原因:尺寸变大,容量增大了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j7BEbJZI-1655216503152)(OS_Note.assets/image-20220517105119807.png)]

段页式管理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LtC6kqQB-1655216503152)(OS_Note.assets/image-20220517105325746.png)]

置换策略

原则:换出的页应该是近期最不可能被访问的页,基于过去的访问行为

帧锁定:操作系统内核、控制指令、I/O缓冲区(不可被置换)

算法:

  1. OPT(最佳):不可实现(看将来)

  2. LRU(最近最少使用):看访问时间(看过去)

  3. FIFO(先进先出):缺页中断

  4. 时钟算法(CLOCK):看使用位是否为1和查找指针(循环在新加载页后面开始遍历,遇到1后将其置为0(最多两轮遍历即可找到))

  5. 改进的时钟算法:添加修改位(modified)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8uI93bvH-1655216503153)(OS_Note.assets/image-20220426112017145.png)]

实例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z0dRsP5p-1655216503154)(OS_Note.assets/image-20220426111622488.png)]

驻留集大小

固定分配局部置换

可变分配(观察缺页中断发生的次数)

全局置换

局部变换(实时更新局部的大小)

清除策略

页缓存队列(再次使用时会重新加载到页框架):

​ 修改队列和未修改队列(清除时批量写回磁盘)

加载控制

并发影响

进程挂起

驻留集最小

占用空间最大

最大剩余执行窗口

九、单处理器调度

调度类别

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U43b5McN-1655216503154)(OS_Note.assets/image-20220506081933394.png)]

评判标准:

  • 吞吐率:单位时间完成的进程数量
  • 公平性:不同等级的进程都可以在一定时间内得到执行
  • 响应时间:单个进程响应用户的时间
  • CPU效率:

分派器发生事件

功能:选择、保护、恢复上下

  • 时钟中断
  • I/O中断
  • 操作系统调用
  • 信号

调度算法(important)

准则:面向用户(关注响应时间)、面向系统(关注吞吐率)、可预测性

优先级:静态优先级和动态优先级

决策模式:抢占和非抢占式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ogydy8qE-1655216503155)(OS_Note.assets/image-20220506084910246.png)]

FCFS:先来先服务;静态优先级;对短进程不利;用户交互体验差

轮转:划分短的时间片计时并到时切换(排到就绪队列的末尾);动态;时间片如何选择?(平衡CPU切换时间,进程数量);

虚拟轮转:面向I/O密集的进程,引入辅助队列

SPN:最短进程优先;静态;难以预测需要的时间

SRT:最短剩余时间优先;动态;时间片到时选择

HRRN:最高响应比优先;动态;非抢占;w是等待时间,s是服务时间

反馈:处罚运行时间较长的作业(进程处于优先级最低的队列中后了就不会再降低,但会重复返回该队列);动态

进阶反馈机制:时间片的设置基于所处队列的序号q;

计算:Tr为周转时间或驻留时间,是在系统中的时间、等待时间和执行时间的总和;Ts为平均服务时间,是运行状态的平均时间: p 为处理器的利用率,归一化周转时间=Tr÷Ts

公平共享调度(针对不同的用户)

  1. 进程优先级计算(优先级,进程CPU计数、组CPU计数)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pHG9Zcsl-1655216503155)(OS_Note.assets/image-20220510105300157.png)]
  2. 顺序

十一、I/O管理和磁盘调度

基础

磁头定位到磁道所需要的时间称为寻道时间(seek time)

到达扇区开始位置的时间称为旋转延迟(rotational delay)

存取时间=旋转延迟+寻道时间

传输时间:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WXtIh5IR-1655216503156)(OS_Note.assets/image-20220517113046625.png)]

磁盘调度算法比较

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2q1IKEuu-1655216503156)(OS_Note.assets/image-20220517111918487.png)]

期末考试重点

3.

  1. PCB

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hrsnVe3k-1655216503157)(OS_Note.assets/image-20220613100459404.png)]

  2. 程序到进程的过程(编译、加载)

    创建进程

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-imsEQ3HX-1655216503157)(OS_Note.assets/image-20220613101225112.png)]

    进程派生与父子进程:操作系统为进程(父)的显示请求创建一个进程(子)

    新建态:程序保留在外存中,通常保留在磁盘中;进程控制块已经创建

    就绪态:做好准备,分配好一定的内存

  3. 操作系统为了实现进程功能需要哪些硬件的支持

    • 处理器状态(用户态和系统态)
    • 中断
  4. 操作系统就进程控制提供了哪些操作,并以linux为例

    5状态图

  5. 进程的创建流程,并以linux为例

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Yk89IUm-1655216503158)(OS_Note.assets/image-20220613103834897.png)]

  6. Mode切换、进程切换

    用户模式和系统模式:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-80w1K3bo-1655216503158)(OS_Note.assets/image-20220613104222632.png)]

    进程的切换一定伴随着Mode的切换

    由于中断引起的Mode切换

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4HwDbyoU-1655216503159)(OS_Note.assets/image-20220613104507958.png)]

  7. 看图从OS/CPU角度来讲解

4.

  1. 线程的解释,和进程的关系

    解释:OS能运算和调度的最小单位

    线程:操作系统能够进行运算调度的最小单位

    关系:

    • 线程又称“轻量级进程”,被包含在进程之中,是进程中的实际运作单位
    • 分派给处理机的单位是线程,资源所有权的单位是进程
  2. 线程的实现方法(3类)

  3. ULT和KLT的优缺点

    概念:

    • ULT:纯ULT中,管理线程的所有工作都由应用程序完成,内核意识不到线程的存在
    • KLT:纯KLT 中,管理线程的所有工作均由内核完成。应用级没有线程管理代码,只有一个到内核线程设施的应用编程接口(API)

    ULT的优点:

    1. 进程不用为管理线程切换到内核模式,节省开销
    2. 可以做到为应用程序量身定做合适的调度算法
    3. ULT可以在任何操作系统中运行,不需要对底层进行修改

    ULT的缺点

    1. 执行系统调用时,不仅会引起本线程的阻塞,还会阻塞进程的所有线程
    2. 多线程程序不能使用多处理技术(内核不知道线程的存在,只分配一个处理器)

    混合方法:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bKrNkqMW-1655216503159)(OS_Note.assets/image-20220613111206781.png)]

  4. 讲述linux的线程机制,创建销毁

    创建:pthread_create[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iEIatNz4-1655216503160)(OS_Note.assets/image-20220613111802358.png)]

    销毁:pthread_exit()[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IdWsqjYX-1655216503160)(OS_Note.assets/image-20220613111834588.png)]

    fork:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FrOXNd9n-1655216503161)(OS_Note.assets/image-20220613112058576.png)]

5

  1. 讲述并发性要解决的四个问题(同步互斥,饥饿死锁)

    (同步互斥,饥饿死锁)

  2. 解决同步互斥的几类方法(软件、硬件、系统提供的信号量和管程)

    硬件:

    • 中断禁用(保持进程在运行,持续占有系统服务):代价大,面对多处理器不能保证互斥
    • 专用机器指令(禁止其他指令访问):简单且易于证明,但可能导致饥饿和死锁

    软件: int turn表示该谁进入临界区,boolean flag【】表示某进程是否准备好进入临界区

    • peterson算法
    • dekkers算法

    信号量:

    PV操作:P:-1;V:+1

    ​ 强信号量和弱信号量有什么区别?

    1. 强信号量:被阻塞时间最久的进程最先从队列释放(先进先出,FIFO)

    2. 弱信号量:没有规定进程从队列中移出顺序的信号量。

  3. 描述如何用硬件解决互斥,并描述其缺点(关中断。。。,特殊指令。。。)(上述已说明)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TM7Vhfg6-1655216503161)(OS_Note.assets/image-20220614134547440.png)]

  4. 为什么要关中断(在进程进入临界区之前关闭)

    保持进程在运行,不出现上下文切换,持续占有系统服务从而实现互斥

  5. 信号量和中断的利用

    ​ 参照梁刚老师的pdf和上面的笔记

  6. 条件竞争和其他的描述

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sBr4SwSp-1655216503162)(OS_Note.assets/image-20220614135453104.png)]

6

  1. 死锁的概念并举例描述

    (deadlock)**:**一组相互竞争系统资源或进行通信的进程间的“永久”阻塞。当一组进程中的每个进程都在等待某个事件(典型情况下是等待释放所请求的资源),而仅有这组进程中被阻塞的其他进程才可触发该事件时,就称这组进程发生了死锁。

    举例:

    1. 交通死锁,4 辆汽车都忽视这一规则而继续前行到十字路口时,每辆汽车都会占据一个资源( 一个象限) ,且由于所需要的第二个资源被另一辆汽车占有,因此它们都不能通行,千是发生真正的死锁。

    2. 联合进程图描述死锁:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ybuwNXTb-1655216503162)(OS_Note.assets/image-20220614141647284.png)]

      死锁情况一:Q 获得B; 然后P 获得A; 由千在继续执行时, Q 阻塞在A 上而P 阻塞在B 上,因而死锁
      不可避免。

      死锁和活锁的区别:

      处于活锁的实体是在不断的进行尝试,只是每次都失败。

      处于死锁的实体表现为等待,资源被占有而在进行等待。

  2. 死锁的条件

    • 互斥
    • 保持占有
    • 非抢占
    • 循环等待
  3. 死锁的数学描述方法(2个)

    资源分配图

    矩阵

  4. 解决死锁方法的类别(4)

    • 死锁预防(静态)

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PWKIrTry-1655216503163)(OS_Note.assets/image-20220614150220170.png)]

    • 死锁避免

      若一个进程的请求会导致死锁,则不启动该进程(进程启动拒绝)
      若一个进程增加的资源请求会导致死锁,则不允许这一资源分配(资源分配拒绝:银行家算法)

      特点:

      • 不能确切地预测死锁,它仅是预料死锁的可能性并确保永远不会出现这种可能性
      • 无须死锁预防中的抢占和回滚进程,且与死锁预防相比限制较少
      • 必须事先声明每个进程请求的最大资源
      • 所讨论的进程必须是无关的,即它们的执行顺序必须没有任何同步要求的限制
      • 分配的资源数量必须是固定的
      • 在占有资源时,进程不能退出。
    • 死锁检测(标记进程)

      检测到后的死锁恢复:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ML8ma9ep-1655216503163)(OS_Note.assets/image-20220614145429696.png)]

      特点:

      • 尽早检测死锁,算法简单
      • 频繁的检测会耗费较多的处理器时间
      • 检测算法类似银行家(额外定义请求矩阵),但是时机不同:
    • 死锁解除

      常用的方法是撤销或挂起一些进程,以便回收一些资源,再将这些资源分配给已经处于阻塞状态的进程,使之转为就绪态,以继续运行。

7

局部性原理:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ezj4PhY2-1655216503164)(OS_Note.assets/image-20220614221341586.png)]

适配方法:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CuLXmNml-1655216503164)(OS_Note.assets/image-20220614221405403.png)]

三个地址:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fwXscE1h-1655216503165)(OS_Note.assets/image-20220614221426443.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4jJ0rICj-1655216503165)(OS_Note.assets/image-20220614153818362.png)]

  1. 分页
    • 页表给出了该进程每页对应的页框的位置
    • 逻辑地址到物理地址的转换需要由硬件完成
    • 导致内部碎片(碎片属于进程)
    • 对于程序员是透明的
  2. 分段
    • 段表不仅要表明段在内存的初始位置,还要指明长度(看偏移量,判断无效地址)
    • 对于程序员是可见的
    • 导致外部碎片(过小,无法使用)
    • 更容易实现信息的共享和保护
  3. 页表、段表的使用和构造的小问题

8

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hthcENIS-1655216503166)(OS_Note.assets/image-20220614153752408.png)]

  1. 虚拟内存的实现流程(TLB转换检测缓冲区)

    每次虚存访问都可能会引起两次物理内存访问: 一次取相应的页表项,另一次取需要的数据。

    因此,简单的虚拟内存方案会导致内存访问时间加倍。为克服这个问题,大多数虚拟内存方案都为页表项使用了一个特殊的高速缓存,通常称为转换检测缓冲区。

    • 在缓冲区,直接命中形成物理地址
    • 不再缓冲区,在内存,更新TLB,使TLB包含该页表项,命中形成物理地址
    • 不在内存,缺页中断,辅存换入,更新页表,重新查询TLB

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6yRij4h0-1655216503166)(OS_Note.assets/image-20220614155100516.png)]

  2. 内存管理设计基于的选择

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mMw79ei6-1655216503167)(OS_Note.assets/image-20220614154630399.png)]

  3. 页调度算法

    总体:全局和局部[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9JxJDWC4-1655216503167)(OS_Note.assets/image-20220614154730807.png)]

    局部:如何选择页

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HXY9ZoRz-1655216503167)(OS_Note.assets/image-20220614154556960.png)]

9

  1. 三个调度

    概念:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0vIIs9NM-1655216503168)(OS_Note.assets/image-20220614160126851.png)]

    解释:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jNWwczbN-1655216503168)(OS_Note.assets/image-20220614160306898.png)]

  2. 调度规则(选择题)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TnNGQ0ak-1655216503169)(OS_Note.assets/image-20220614160353724.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vq5uOHzn-1655216503169)(OS_Note.assets/image-20220614160829896.png)]

12

  1. 文件结构:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-46kdUGg1-1655216503170)(OS_Note.assets/image-20220614221843458.png)]

  2. 文件系统软件架构

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P876Cxj6-1655216503170)(OS_Note.assets/image-20220614221930318.png)]

  3. 五种逻辑组合方法

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y3Re5ih0-1655216503171)(OS_Note.assets/image-20220614222018688.png)]

  4. 物理层的三种方式

  5. 看图说话(各种方式下的索引分配)

  6. FAT

  7. SElinux和其安全机制

你可能感兴趣的:(unix,linux,服务器)