杭电(杭州电子科技大学)操作系统期末复习知识点

本篇是根据王道考研关于操作系统记录的一些笔记,随手记的,只记录了基本概念,仅供在脑海里建立知识框架。

目录


一6 二25 三15 四13 五8 共67

第一章 操作系统概论

1.1_1操作系统概念、功能、目标

文件管理 存储器管理 处理机管理 设备管理

联机接口 脱机接口 程序接口

图形用户界面

1.1_2操作系统的特征

并发 共享 虚拟 异步

1.1_3操作系统的发展和分类

手工操作 批处理 分时操作 实时操作 网络操作系统 分布式操作系统 个人计算机操作系统

1.1_4操作系统的运行机制和体系结构

指令 :特权指令不允许用户程序使用 非特权指令
用户态和核心态 目态 管态
内核程序 应用程序
内核:进程管理、存储器管理、设备管理
时钟管理、中断处理、原语
内核是底层软件
体系结构:大内核 微内核

1.1_5中断和异常

中断是唯一能让用户态到核心态的途径。
程序状态字:PSW
内中断和外中断
指令中断、硬件故障、软件中断
陷入(系统调用)、故障(缺页)、终止(/0)

1.1_6系统调用

int–interrupt
传递系统调用参数 执行陷入指令(用户态) 执行系统调用相应服务程序(核心态) 返回用户程序
陷入指令是唯一一个只能在用户态执行而不能在核心态执行的指令

第二章 进程管理

2.1_1进程的定义、组成、组织方式、特征

程序:一个指令序列
程序段 数据段 PCB

2.1_1进程的状态和转换

就绪态、阻塞态、运行态、创建态、终止态

2.1.3进程控制

进程的创建、终止、阻塞、唤醒、切换
阻塞和唤醒总是成对出现

2.1.4进程通信

共享存储、消息传递、管道通信

2.1.5线程概念和多线程模型

重点:①线程是处理机调度的单位,进程是资源分配的单位。
②内核级线程是处理机分配的单位。

多对一模型:多个用户即线程映射到一个内核级线程,每个用户进程只对应一个内核级线程
有点:用户及线程的切换在用户空间即可完成,不需要切换的核心态,线程管理的系统开销小,效率高
缺点:当一个用户及线程被阻塞吼,整个进程都会被阻塞,并发度不高。且多个线程不可在多核处理机上并行运行
一对一模型:一个用户及线程映射到一个内核级线程。
多对多模型:n用户对m个内核级线程

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

普通客户先到先服务
高级调度 中级调度 低级调度
作业调度 内存调度 进程调度

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

进程在操作系统内核程序临界区中不能进行调度和切换。
内核程序临界区一般是用来访问某种内核数据结构的,比如进程的就绪队列。
非抢占式、抢占式。
前者适合早起的批处理系统,后者适合分时操作系统、实时操作系统。

2.2.3调度算法的评价指标

CPU利用率、系统吞吐量、周转时间、等待时间、响应时间。
吞吐量:单位时间内完成作业的数量。
带权周转时间、平均带权周转时间。
等待时间=周转时间-运行时间

2.2.4FCFS、SJF、HRRN调度算法

响应比=(等待时间+要求服务时间)/要求服务时间。
不关心响应时间,这三种算法一把适用于早起的批处理系统。

2.2.5调度算法:时间片轮转、优先级调度算法、多级反馈队列调度算法。

不关心周转时间。
时间片轮转算法:
如果时间片太大,时间片轮转算法会退化为先来先服务算法,且会增大进程响应时间。
如果时间片太小,进程切换过于频繁,系统会花大量的时间来处理进程切换,导致进程执行的时间比例减小。
一般来说,设计时间片时要让切换进程的开销占比不超过1%。
适用于分时系统。
优先级调度算法适用于实时系统。
这三种算法适合用于交互式系统。

2.3.1进程同步、进程互斥

临界资源:一段时间内只允许一个进程使用的资源。
进入去、临界区、退出区、剩余区。
对临界资源的互斥访问,所遵循的原则:空闲让进、忙着等待、有限等待、让权等待。

2.3.2进程互斥的软件实现方法

单标志法、双标志先检查、双标志后检查、peterson算法

2.3.3进程互斥的硬件实现方法

中断屏蔽方法、TestAndSet(TS指令/TSL指令)、Swap指令(XCHG指令)

2.3.4信号量机制

整型信号量和记录型信号量。

2.3.5用信号量实现进程互斥、进程同步、前驱关系

semaphore mutex = 1; 互斥信号量mutex,初值1。
semaphore S = 0;同步信号量S,初值0。
在前操作之后执行V操作,在后操作之前执行P操作。

2.3.6生产者-消费者问题

mutex = 1;//生产者互斥访问
empty=n;//表示空闲缓冲区数量
full=0;//表示产品数量

实现互斥的P操作一定要放在实现同步的P操作之后。
V操作不会导致进程阻塞,因此两个V操作顺序可以交换。

2.3.7多生产者-消费者问题

多生产者多消费者问题。
mutex = 1;//父母互斥访问盘子
apple = 0;//苹果数量
orange = 0;//橘子数量
plant = n;//盘子数量

2.3.8吸烟者问题(单生产者-多消费者问题)

2.3.9读者写者问题

核心问题:如何实现读者进程同时访问。
semaphore rw = 1;//用于实现对文件的互斥访问
int count = 0;//记录当前有几个读进程在访问文件
semaphore mutex = 1;//用于保证对count变量的互斥访问
semaphore w = 1;//用于实现“写优先”

2.3.10哲学家进餐问题

①最多允许四个哲学家同时进餐
②奇数号哲学家优先拿左边的,偶数号哲学家优先拿右边的筷子
③在哲学家拿起左右筷子的前后添加互斥条件。但这样每次只能一个哲学家进餐。

2.3.11管程

信号量机制存在的问题:编写程序困难、容易出错。
可以把管程当做类。
每次仅允许一个进程在管程内执行某个内部过程(函数)。
Java中用关键字synchronized来实现管程。

2.4.1死锁

死锁产生的必要条件:①互斥条件②占有且等待条件③不可剥夺条件④循环等待条件
重点:循环等待未必死锁,死锁一定有循环等待。=>如果同类资源数大于1,则即使有循环等待,也未必发生死锁。
预防死锁:破坏死锁产生的四个必要条件
避免死锁:避免系统进入不安全状态(银行家算法)
死锁的检测和解锁:允许死锁发生,系统负责检测出死锁并解锁。

2.4.2死锁的处理策略–预防死锁

互斥条件:SPOOLing技术把独占设备在逻辑上改造成共享设备。
缺点:并不是所有的资源都可以改造成可共享使用的资源,并且为了系统安全,很多地方还必须保护这种互斥性。因此,很多时候都无法破坏互斥条件。
不可剥夺:①某个今晨请求行的资源得不到满足时,它必须立即释放保持的所有资源,待以后需要时再重新申请。②当某个进程需要的资源被其他进程所占有的时候,可以由操作系统协助,将想要的资源强行剥夺。这种方式一般需要考虑各进程的优先级。
缺点:①实现复杂②释放已获得的资源可能造成前一阶段工作的失效,因此只适用于易保存和恢复状态的资源,如CPU。③反复申请和释放资源会增加系统开销,降低系统吞吐量。④若采用方案一,可能导致进程饥饿。
占有且等待:运行前分配好所有需要的资源,之后一直保持
缺点:资源利用率低;可能导致饥饿。
循环等待:给资源编号,必须按编号从小到大顺序申请资源。
缺点:不方便增加新设备;会导致资源浪费;用户编程麻烦。

2.4.3死锁的处理策略–避免死锁

如果系统处于安全状态,就一定不会发生死锁;如果系统进入不安全状态,就可能发生死锁;如果死锁,则一定处于不安全状态。
银行家算法:①检查此次申请是否超过最大需求数②检查此次系统剩余的可用资源是否还能满足这次请求③试探着分配,更改各个数据机构④用安全性算法检查此次分配是否会导致系统进入不安全状态。

2.4.4死锁的处理策略–死锁的检测和解除

死锁定理:如果某时刻系统的资源分配图是不可以完全简化的,那么此时系统死锁。
如何解除:资源剥夺法;撤销进程法;进程回退法

第三章 存储器管理

3.1.1内存的基础知识

从写程序到程序运行:
编译:将源代码文件生成目标模块
链接:将目标模块生成装入模块
装入:将装入模块装入内存,装入后形成物理地址。

三种装入方式:
绝对装入:编译时产生绝对地址。(单道程序阶段)
可重定位装入:装入时将逻辑地址转换为物理地址。(早起的多道批处理操作系统)
动态运行时装入:运行时将逻辑地址转换为物理地址,需设置重定位寄存器。(现代操作系统)

3.1.2内存管理的概念

包括四个功能:
内存空间的分配与回收
内存空间的扩充(实现虚拟性)
地址转换
存储保护:①设置上下限寄存器②利用重定位寄存器(基地址寄存器)、界地址寄存器(限长寄存器)进行判断

3.1.3覆盖与交换

3.1.4连续分配管理方式

单一连续分配、固定分区分配、动态分区分配。
前两者有内部碎片无外部碎片,后者有外部碎片无内部碎片。
内部碎片:分配给某进程的内存区域中,有些部分没有用上。
外部碎片:内存中的某些空闲分区由于太小而难以利用。

3.1.5动态分区分配算法

首次适应算法、最佳适应算法、最坏适应算法、邻近适应算法。

3.1.6基本分页存储管理的基本概念

非连续分配管理方式:基本分页存储管理、基本分段存储管理、段页式存储管理
如果有K位表示“页内偏移量”,则说明该系统中一个页面的大小是2的k次方个内存单元。
如果有M位表示“页号”,则说明在该系统中,一个进程最多允许有2的m次方个页面。

3.1.7基本地址变换机构

虽然3B可以表示内存块号的范围,但是为了方便页表的查询,常常会让一个页表项占更多的字节,使得每个页面恰好可以装得下整数个页表项。
两次访存:第一次查页表得到页表项、第二次访问目标内存单元

3.1.8具有快表的地址变换机构

时间局部性和空间局部性
快表命中,则只需一次访存;快表未命中,需要两次访存。

3.1.9二级页表

多级页表中,各级页表的大小不能超过一个页面,若二级页表不够,可以分更多级。

3.1.10基本分段存储管理方式

段号 段内地址
要检查段内地址是否超过段长。
分段和分页的对比:
分页对用户不可见,分段对用户可见。
分页的地址空间是一维的,分段的地址空间是二维的。
分段更容易实现信息的共享和保护(纯代码/可重入代码可以共享)
分页(单级页表)、分段访问一个逻辑地址都需要两次访存,分段存储中也可以引入快表机构,若快表命中则只需要访问一次内存。

3.1.11段页式管理方式

段号 页号 页内偏移量
段表包括段号(隐含)、页表长度、页表存放地址。
页表包括页号(隐含)、页面存放的内存块号。
需要三次访存:查段表、查页表、访问目标单元。

3.2.1虚拟内存的基本概念

虚拟内存的最大容量是由计算机的地址结构(CPU寻址范围)确定的
虚拟内存的实际容量 = min(内存和外存容量之和,CPU寻址范围)
如何实现:请求调页功能、页面置换功能

3.2.2请求分页管理方式

状态位、访问字段、修改位、外存地址。

3.2.3页面置换算法

最佳置换算法(OPT)、先进先出置换算法(FIFO)、最近最久未使用(LRU)、时钟置换算法(CLOCK)、改进型的时钟置换算法
缺页时未必发生页面置换。若还有可用的空闲内存快,就不用进行页面置换。
Belady异常–当为进程分配的物理块数增大时,缺页次数不减反增的异常现象。只有FIFO算法会产生这种异常。
简单的CLOCK算法(最近未用算法):设置一个访问位。当需要换出的时候,检查访问位,如果是0则换出该页,如果是1则暂不换出并将其置为0。
改进型的CLOCK算法:设置一个访问位和修改位。
第一轮:对(0,0)进行淘汰,本轮不进行修改。
第二轮:查找第一个(0,1)进行淘汰,本轮将所有扫描过的帧的访问位设为0。
第三轮:同第一轮。
第四轮:若第三轮扫描失败,则重新扫描,查找第一个(0,1)的帧用于替换。

3.2.4页面分配策略

可变分配全局置换:只要缺页就给分配新物理块。
可变分配局部置换:要根据发生缺页的频率来动态的增加或减少进程的物理块。
抖动:页面频繁换入换出的现象。主要原因是分配给进程的物理块不够。
驻留集:指请求分页存储管理汇总给进程分配的内存块的集合,相当于题目中的系统为某个进程分配了n个物理块。
工作集:在某段时间间隔里,进程实际访问页面的集合。助留集大小一般不能小于工作集大小。

第四章 文件管理

4.1.1初识文件管理

流式文件、记录式文件。
文件共享:使多个用户可以共享使用一个文件。硬链接、软链接。
文件保护:如何保证不同的用户对文件有不同的操作权限。访问控制矩阵、访问控制表、用户权限表。

4.1.2文件的逻辑结构

顺序文件、索引文件、索引顺序文件

4.1.3文件目录

树形结构不便于实现文件的共享

4.1.4文件的物理结构(上)

连续分配方式:支持顺序访问和随机访问、顺序读写速度最快、文件拓展不方便、会产生很多磁盘碎片(外部碎片)
链接分配方式:
隐式:只支持顺序访问不支持随机访问、查找效率低、文件拓展方便、不会有碎片、外存利用率高
显式:FAT表。支持随机访问、不需要访问磁盘,访问效率高、不会有碎片问题、方便拓展

4.1.4文件的物理结构(下)

链接方案、多级索引、混合索引

4.1.5文件存储空间管理

空闲表法、空闲链表法(盘块、盘区)、位示图法、成组链接法(UNIX)

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控制器

组成:CPU与控制器之间的接口、I/O逻辑、控制器与设备之间的接口
寄存器编制方式:内存映射I/O和寄存器独立编制

5.1.3 I/O控制方式

程序直接控制方式、中断驱动方式、DMA方式(直接存储器存取)、通道控制方式
DMA:数据寄存器、地址寄存器、字节计数器、命令寄存器

5.1.4 I/O软件层次结构

用户层软件、设备独立性软件、设备驱动程序、中断处理程序、硬件

5.1.5 I/O核心子系统

设备独立性软件、设备驱动程序、中断处理程序即I/O核心子系统

5.1.6假脱机技术(SPOOLing)

输入井和输出井、输入进程和输出进程、输入缓冲区和输出缓冲区

5.1.7设备的分配与回收

设备的固有属性:独占设备、共享设备、虚拟设备。

5.1.8缓冲区管理

引入缓冲区的原因:
①缓和CPU与I/O设备之间速度不匹配的矛盾
②减少对CPU的中断频率,放宽对CPU中断响应时间的限制
③解决数据粒度不匹配的问题
④提高CPU与I/O设备之间的并行性
单缓冲、双缓冲、循环缓冲区、缓冲池(空缓冲队列、输入队列、输出队列)

名词解释

PSW(Program State Word):程序状态字

指在电脑中,一段包含被操作系统和潜在硬件使用的程序状态的内存或硬件区域。一般用一个专门的寄存器来指示处理器状态。

TCB(Thread Control Block):线程控制块

FCFS(first-come first-service):先来先服务

SJF(Shortest Job First):最短作业优先
SPF(Short Process First):最短进程优先

HRRN(Highest Response Ratio Next):高响应比优先

SRTF(Short Remain Time First):最短剩余时间优先

RR(Round-Robin):时间片轮转

PTE(page table entry):页表项

OPT(optimal replacement):最佳置换算法

FIFO(First Input First Output):先进先出置换算法

LRU(Least Recently Used):最近最久未使用

CLOCK:时钟置换算法

RFC(Request For Comments):请求评论

是一系列以编号排定的文件。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件

IPC(Inter-Process Communication):进程间通信

svc(super visor call):访管指令

ISP(Interrupt Service Routines):中断服务程序

VFS(virtual File System)

采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统,即为各类文件系统提供了一个统一的操作界面和应用编程接口。

CFS(Completely Fair Scheduler):完全公平调度

linux中实现动态优先级的算法

  • 8
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值