操作系统期末复习

写在前面

下面的内容是参考西安电子科技大学出版社的《计算机操作系统》(第四版) 一书和b站王道考研操作系统视频
最初是在幕布上编辑的,但是因为没法直接从幕布导出md文件,所以下面的排版可能会不太好看,想看排版好的可以移步操作系统复习(幕布版)

一、操作系统引论

操作系统定义:是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。

1.1操作系统的目标和作用

操作系统的目标:方便性、有效性、可扩充性、开放性

操作系统的作用

作为用户与计算机硬件系统之间的接口

作为计算机系统资源的管理者

实现了对计算机资源的抽象

1.2操作系统的发展过程

未配置操作系统的计算机系统

人工操作方式

缺点

用户独占全机

CPU等待人工操作

脱机输入\输出方式

优点

减少了CPU的空闲时间

提高了I/O时间

单道批处理系统

优点:提高系统资源利用率和系统吞吐量

缺点:不能充分利用系统资源

多道批处理系统

优点

资源利用率高

系统吞吐量大

缺点

平均周转时间长

无交互能力

适用于大型科学计算和数据处理

分时系统

优点:提供人机交互功能

缺点:不能优先处理紧急任务

特征:多路性、独立性、及时性、交互性

实时系统(将时间作为关键参数,对时间要求高)

类型

工业(武器)控制系统

信息查询系统

多媒体系统

嵌入式系统

实时任务类型

周期性实时任务和非周期性实时任务

硬实时任务和软实时任务

优点:能优先处理紧急任务,及时性,可靠性

实时系统和分时系统的比较P12

操作系统的基本特性

四个基本特征(并发共享是最基本的特征)

并发:两个或多个事件在同一时间间隔内发生

并行与并发的区别

并行是指两个或多个时间在同一时刻发生,并发指的是同一时间间隔

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

实现共享的方式

互斥共享:一段时间内,只允许一个进程访问该资源

同时访问(分时共享):一段时间内,允许多个进程"同时"访问该资源

虚拟:通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能

实现方式

时分复用技术

虚拟处理机技术

虚拟设备技术

空分复用技术

异步:多个进程并发执行

拥有并发性才能导致异步性

二、进程的描述与控制

2.1前趋图和程序 执行

前趋图:一个有向无循环图

程序顺序执行的特征

顺序性:处理机严格按照程序规定的顺序执行

封闭性:程序在封闭的环境下运行,程序运行时独占全机资源,执行结果不受外界因素影响

可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,都可获得相同的结果

程序并发执行的特征

间断性

失去封闭性 :并发执行程序时,系统资源被共享

不可再现性

2.2进程的描述

进程定义(引入线程后,进程只作为除cpu之外的系统资源的分配单元)

程序段、相关数据段、PCB构成的进程实体(进程映像)

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

进程的特征

动态性(最基本特征)进程的实质就是进程实体的执行过程

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

独立性:指进程实体是一个能独立运行、独立获得资源和独立接收调度的基本单位

异步性:进程按异步方式运行的

进程的三种基本状态

就绪状态:进程已处于准备好运行的状态(只需要CPU)

执行状态:已获得CPU。程序正在执行的状态。 对任何一个时刻而言,在单处理机系统中,只有一个进程处于执行状态

阻塞状态:正在执行的进程由于发生某事件暂时无法继续执行时的状态

创建和终止

创建状态

1.申请一个空白PCB

2.PCB中填写用于控制和管理进程的信息

3.为进程分配运行时必须的资源

4.将进程转入就绪状态并插入就绪队列

终止状态

1.等待操作系统进行善后处理

2.最后将PCB清零,并将PCB空间返还系统

五种状态的转换图

在这里插入图片描述

执行–>阻塞是一种程序自身做出的主动行为

阻塞–>就绪不是进程自身能控制的,是一种被动行为

引入挂起和激活原语后的状态转换

在这里插入图片描述

PCB的作用

作为独立运行基本单位的标志

能实现间断性运行方式

提供进程管理所需要的信息

提供进程调度所需要的信息

实现与其他进程的同步与通信

PCB包含的信息

进程标识符

处理机状态

进程调度信息

进程控制信息

PCB的组织方式

线性方式

链接方式

索引方式

2.3进程控制

进程控制一般由os的内核中的原语实现

处理机的执行状态

系统态:又称为管态,也称为内核态

用户态:又称为目态

支撑功能

中断处理:是内核最基本的功能

时钟管理

原语操作。

原语:由若干条指令组成的,用于完成一定功能的一个过程。

原子操作:一个操作中的所有动作要么全做,要么全不做

资源管理功能

进程管理

存储器管理

设备管理

进程的创建步骤

1 申请空白PCB

2 为新进程分配其运行所需的资源,包括各种物理和逻辑资源

3 初始化PCB

4 如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列

引起进程阻塞与唤醒的事件

向系统请求共享资源失败

等待某种操作的完成

新数据尚未到达

等待新任务的到达

2.4进程同步

两种形式的制约关系

间接相互制约关系(互斥)

直接相互制约关系(同步)

临界资源:一次只允许一个进程使用的资源

临界区:一个访问共用资源的程序片段

同步机制应遵循的规则

空闲让进

忙则等待

有限等待

让权等待

硬件同步机制(缺点:不符合让权等待的原则)

1 关中断(实现互斥最简单的方法之一,只适用于内核进程)

2 利用TS指令实现互斥(实现简单,适用于多处理机)(执行过程是一条原语)

3 利用swap指令,又称为XCHG指令。(硬件实现,执行过程不能中断)

信号量机制

信号量:相当于一个变量,用来表示系统中某种资源的数量

1 整型信号量

wait()和signal()是两个原子操作

2 记录型信号量

未遵循让权等待的准则,而使进程处于忙等的状态

3 AND型信号量

管程机制

管程:一组数据以及定义在这组数据之上的对这组数据的操作组成的软件模块

2.5经典进程的同步问题

生产者-消费者问题p65

哲学家进餐问题p69

2.6进程通信

定义:指进程之间的信息交换

进程通信类型

1⃣️共享存储器系统(两个进程对共享空间的访问必须是互斥的)

1 基于共享数据结构的通信方式(通信效率低下,属于低级通信)

2 基于共享存储区的通信方式(属于高级通信)

2⃣️管道通信系统(半双工通信)

管道:指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件。

需提供三方面的协调能力:(没写满,不能读;没读空,不能写)

互斥

同步

确定对方是否存在

3⃣️消息传递系统(以格式化的消息为单位,属于高级通信机制)

应用最广泛的一类进程通信机制

两类:直接通信方式;间接通信方式

4⃣️客户机-服务器系统

2.7线程的基本概念

引入进程的目的:使多个程序能并发执行,以提高资源利用率和系统吞吐量

引入线程的目的:减少程序在并发执行时所付出的时空开销,使os具有更好的并发性

进程的两个基本属性

1⃣️是一个可拥有资源的独立单位

2⃣️是一个可独立调度和分派的基本单位

线程又称为轻型进程

线程运行的三个状态

1⃣️执行状态

2⃣️就绪状态

3⃣️阻塞状态

2.8线程的实现

实现方式

1⃣️内核支持线程KST

调度以线程为单位

线程切换需从用户态转到核心态

2⃣️用户级线程ULT(对用户不透明)

调度以进程为单位

线程切换不需要转换到内核空间

3⃣️组合方式

多对一模型

一对一模型

多对多模型

只有内核级线程才是处理机分配的单位

三、处理机调度与死锁

3.1处理机调度的层次和调度算法的目标

处理机调度的层次

1⃣️高级调度,又称长程调度/作业调度

对象:作业

主要功能:将外存上处于后备队列中的哪几个作业调入内存,为它们创建进程、分配必要的资源,并放入就绪队列。

主要用于多道批处理系统

发生频率最低

外存->内存

2⃣️中级调度,又称内存调度

主要目的:提高内存利用率和系统吞吐量

中级调度实际就是存储器管理中的对换功能

运行频率介于高级和低级调度

外存->内存

3⃣️低级调度,又称进程调度/短程调度

对象:进程(或内核级线程

主要功能:决定就绪队列中的哪个进程应获得处理机,并由分派程序将处理机分配给被选中的进程

低级调度是最基本的一种调度在多道批处理、分时和实时三种os中,都必须配置

运行频率最高

内存->CPU

处理机调度算法的目标

资源利用率计算公式:CPU有效工作时间/(CPU有效工作时间+CPU空闲等待时间)

批处理系统的目标

1⃣️平均周转时间短

周转时间:从作业被提交给系统开始,到作业完成为止的这段时间间隔(称为作业周转时间)

周转时间=作业完成时间-提交时间(到达时间)

2⃣️系统吞吐量高

吞吐量:单位时间内系统所完成的作业数

3⃣️处理机利用率高

分时系统的目标

响应时间快

均衡性

实时系统的目标

截止时间的保证

可预测性

3.2作业与作业调度(接纳调度)

批处理系统中,是以作业为基本单位从外存调入内存的

作业控制快JCB:作业在系统中存在的标志,保存了系统对作业进行管理和调度所需的全部信息

作业运行的三个阶段和三种状态

收容阶段-后备状态

运行阶段-运行状态

完成阶段-完成状态

作业调度的主要任务

根据JCB的信息,检查系统中的资源能否满足作业对资源的需求,以及按照一定的调度算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后将新创建的进程排在就绪队列上等待调度。

先来先服务调度算法FCFS

最简单的调度算法

机制:系统按照作业到达的先后次序进行调度

优点:公平、简单

缺点:对短作业不利

短作业优先算法SJF

作业越短,优先级越高

缺点:1⃣️必须预知作业的运行时间2⃣️对长作业非常不利3⃣️人机无法交互4⃣️不能保证紧迫性作业得到及时处理

优先级调度算法PSA

基于作业的紧迫程度

高响应比优先调度算法HRRN

优先权计算公式:(等待时间+要求服务时间)/ 要求服务时间

缺点:增加系统开销

3.3进程调度

进程调度的任务

1⃣️保存处理机的现场信息

2⃣️按某种算法选取进程

3⃣️把处理器分配给进程

进程调度方式

非抢占式(只允许进程主动放弃处理机)

优点:实现简单,系统开销小

缺点:不能用于分时系统和大多数实时系统

抢占式(允许调度程序根据某种规则,去暂停某个正在执行的进程)

抢占需要遵循的原则

1⃣️优先权原则

2⃣️短进程优先原则

3⃣️时间片原则

轮转调度算法RR

分时系统中最简单的算法

抢占式

优点:公平、响应快

缺点:增加系统开销

一个较为可取的时间片大小是略大于一次典型的交互所需要的时间

优先级调度算法

类型:抢占式和非抢占式

抢占式常用于对实时性要求较高的系统

优先级的类型

静态优先级(设置优先数)

确定优先级的依据

1⃣️进程类型

2⃣️进程对资源的需求

3⃣️用户要求

动态优先级

在创建进程之初,先赋予一个优先级,然后其值随进程的推进或等待时间的增加而改变

多队列调度算法

多级反馈队列调度算法

调度机制

1⃣️设置多个就绪队列

2⃣️每个队列都采用FCFS算法

3⃣️按队列优先级调度

3.4实时调度

3.5死锁概述

死锁定义如果一组进程中的每一个进程都在等待仅由该组进程中的其它进程才能引发的事件,那么该组进程是死锁的。

引起死锁的原因

1⃣️竞争不可抢占性资源

2⃣️竞争可消耗资源

3⃣️进程推进顺序不当

产生死锁的必要条件

1⃣️互斥条件

2⃣️请求和保持条件

3⃣️不可抢占条件

4⃣️循环等待条件

处理死锁的方法

1预防死锁

1⃣️破坏请求和保持条件

2⃣️破坏不可抢占条件

3⃣️破坏循环等待条件

2避免死锁(银行家算法p120)(安全序列不唯一)

3检测死锁

资源分配图

4解除死锁

1⃣️抢占资源:抢占资源分配给死锁进程

2⃣️终止(或撤销)进程:终止或撤销一个多个死锁进程

四、存储器管理

4.1存储器的层次结构

在这里插入图片描述

存储层次示意图(层次越高,访问速度越快)

寄存器和主存储器又称为可执行存储器

4.2程序的装入和链接

三个定义

编译:由编译程序对用户源程序进行编译,形成若干个目标模块

装入:由装入程序将装入模块装入内存

链接:由链接程序将编译后形成的一组目标模块以及它们所需要的库函数链接在一起,形成一个完整的装入模块

程序的装入

三种方式

1⃣️绝对装入方式

只适用于单道程序环境

2⃣️可重定位装入方式(静态重定位)

可用于多道程序环境

装入时逻辑地址转换为物理地址

缺点:不允许程序运行时在内存中移动位置

3⃣️动态运行时的装入方式(动态重定位)

需要一个重定位寄存器

运行时将逻辑地址转换为物理地址

允许程序在内存中移动

装入内存后的地址仍是逻辑地址

程序的链接

三种方式

1⃣️静态链接

事先进行链接而以后不再拆开的链接方式

2⃣️装入时动态链接

边装入边链接

3⃣️运行时动态链接

运行时需要目标模块才装入并链接

4.3连续分配存储管理方式

连续分配方式是最早出现的一种存储器分配方式,该分配方式为一个用户程序分配一个连续的内存空间

四种方式

1⃣️单一连续分配

优点:简单,无外部碎片

2⃣️固定分区分配

将整个用户空间划分为若干个固定大小的区域,在每个分区中只装入一道作业

固定分区分配是最早出现的、可用于多道程序系统的管理存储方式

无外部碎片,有内部碎片

划分分区的方法

1 分区大小相等

2 分区大小不等

内存分配-固定分区使用表

3⃣️动态分区分配(可变分区分配)

根据进程的实际需要,动态地为之分配内存空间

用到的数据结构:空闲分区表、空闲链结构

基于顺序搜索的动态分区分配算法

1⃣️首次适应算法FF

要求空闲分区链以地址递增的次序链接

2⃣️循环首次适应算法NF

3⃣️最佳适应算法BF

4⃣️最坏适应算法

基于索引搜索的动态分区分配算法

1快速适应算法

2伙伴系统

4⃣️动态可重定位分区分配

紧凑/拼接:把原来多个分散的小分区拼接成一个大分区的方法

动态重定位

4.4对换(交换)中级调度

概念:指把内存中暂时不能运行的进程或者暂时不用的进程和数据换到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据换入内存

对换的类型

①整体对换

②页面(分段)对换

进程的换出

选择被换出的进程:1.选择处于阻塞或睡眠状态的进程 2.当有多个这样的进程时,选择优先级最低的换出

进程换出过程:只换出非共享的程序和数据段

进程的换入

1.先查看PCB中所有进程的状态,找出就绪但已换出的进程 2.当有许多这样的进程时,选择换出时间最久的换入 3.为它申请内存,申请成功则换入;失败,则将内存中的某些进程换出再换入

4.5分页存储管理方式p148(离散分配)(不会产生外部碎片

给定一个逻辑地址空间中的地址为A,页面大小为L,页号为P,页内地址为d

P=int[A/L]取整 d=A mod L

页面大小若为2^kB,则末尾k位即为页内偏移量,其余部分是页号

页表的作用:实现从页号到物理块号的映射(各级页表的大小不能超过一个页面)

地址变换机构的任务:实现从逻辑地址到物理地址的转换(借助页表完成)

几个概念

页表长度:这个页表中总共有几个页表项,即总共有几页

页表项长度:每个页表项占多大的存储空间

页面大小:一个页面占多大的存储空间

基本的地址变换机构(两次访存)

将有效地址(相对地址)分为页号页内地址两部分,再以页号为索引去检索页表。

再将页号与页表长度进行比较(因为各级页表的大小不能超过一个页面),如果页号>=页表长度,发生越界中断;反之,可得到物理块号

物理地址=块号✖️页面大小➕偏移量

在这里插入图片描述

具有快表的地址变换机构(快表命中,一次访存;未命中,两次访存)

快表:具有并行查寻能力的特殊高速缓冲寄存器,又称"联想寄存器",或称为"快表"。

快表存放内容:当前访问的那些页表项

该种机构的查询流程图

在这里插入图片描述

两级页表(三次访存)

增设一个外层页表寄存器,存放外存页表的始址

三次访存:1.访问内存中的页目录表 2.访问内存中的二级页表 3.访问目标内存单元

在这里插入图片描述

总结:没有快表时,n级页表访存n+1次

4.6分段存储管理方式(离散分配)

引入的原因:

1.方便编程

2.信息共享

3.信息保护

4.动态增长

5.动态链接

分段系统的基本原理(会产生外部碎片)

两次访存:1.查段表 2.访问内存单元

每个段从0开始编址,并采用一段连续的地址空间

每个段既包含一部分地址空间,又标识了逻辑关系

> [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vj5AuCHv-1639372771060)(media/l0wiffuvvpc27mgs42rj6.png)]{width="4.166666666666667in" height="1.0887357830271216in"}

段号的位数决定每个进程最多可以分几段

段内地址决定了每个段的最大长度

利用段表实现地址映射

在这里插入图片描述

主程序段MAIN、子程序段X、数据段D、栈段S

物理地址=基址➕偏移量

分段系统的地址变换过程

在这里插入图片描述

分页和分段的区别

1.页是信息的物理单位,分页是系统行为,对用户不可见。段是信息的逻辑单位,分段是为了满足用户需要,对用户是可见的。

2.页的大小固定且由系统决定;段的长度不固定,取决于用户编写的程序。

分页的用户程序地址空间是一维的;分段的用户地址空间是二维的。

分段比分页更容易实现信息的共享

可重入代码又称为"纯代码",是一种允许多个进程同时访问的代码。是一种不允许任何进程对它进行修改的代码

段页式存储管理方式(地址结构是二维)

三次访存:1.访问段表 2.访问页表 3.访问内存单元

可引入快表,命中只需一次访存

需设置一个段表寄存器

在这里插入图片描述

利用段表和页表实现地址映射

段页式系统中的地址变换机构
在这里插入图片描述

五、虚拟存储器

5.1虚拟存储器概述

常规存储器管理方式的特征

一次性:指作业必须一次性全部装入内存后才能开始运行

驻留性:作业被装入内存后,整个作业都一直驻留在内存中,其中任何部分都不会被换出,直至运行结束。

局限性表现的两方面:

1.时间局限性 典型原因:程序中存在大量循环操作

2.空间局限性 典型情况:程序顺序执行

虚拟存储器的定义和特征

定义:指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。

特征:

1.多次性:允许作业被分成多次调入内存

2.对换性:允许在作业的运行过程中进行换进、换出

3.虚拟性:能从逻辑上扩充内存容量

虚拟性是以多次性和对换性为基础的

虚拟存储器的实现方法(离散分配

1.分页请求系统(实现请求分页和页面置换功能)

2.请求分段系统(通过调段功能和段的置换功能将暂时不运行的段调出)

5.2请求分页存储管理方式(最常用的一种实现虚拟存储器方式)

请求调页:当访问的信息不在内存时,由操作系统将所需信息从外存调到内存

页面置换:将内存中暂时用不到的信息换出到外存

1请求页表机制。包含状态位p,访问字段A,修改位M,外存地址。

2缺页中断机构。

与一般中断的区别:1⃣️在指令执行期间产生和处理中断信号 2⃣️一条指令在执行期间可能产生多次缺页中断

3地址变换机构

请求分页中的地址变换过程

在这里插入图片描述

请求分页中的内存分配策略

1⃣️固定分配局部置换

固定分配:为每个进程分配一组固定数目的物理块

局部置换:如果进程运行中发生缺页,只能从中选出一页换出,再调入一页。

2⃣️可变分配全局置换

可变分配:先为每个进程分配一定数目的物理块,在进程运行期间,可根据情况做适当的增加或减少

全局置换:如果进程运行中出现缺页,将os保留的空闲物理块取出一块分配给该进程,或者以所有进程的全部物理块为标的,选择一块换出,然后将缺页调入。

3⃣️可变分配局部置换

页面调入策略

1何时调入

1⃣️预调页策略(用于进程首次调入)

2⃣️请求调页策略(进程运行中调入)

2何处调入

1⃣️系统拥有足够的对换区空间,则从对换区调入

2⃣️缺少足够的对换区空间

3⃣️UNIX方式

5.3页面置换算法

最佳置换算法(实际上无法实现,但可作为标准评价其它算法)

先进先出页面置换算法FIFO

是最早出现的算法。该算法总是淘汰最先进入内存的页面

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

根据页面调入内存后的使用情况决定,选择最近最久未使用的页面淘汰

最少使用置换算法LFU

选择最近时期使用最少的页面淘汰

简单的clock置换算法(淘汰页面最多经过2轮扫描)

在这里插入图片描述

改进型clock置换算法(淘汰页面最多进行四轮扫描)

由访问位A和修改位M组合成四种类型的页面

(A=0,M=0):最近既未被访问,又未被修改,是最佳淘汰页

(A=0,M=1):最近未被访问,但被修改,不是很好的淘汰页

(A=1,M=0):最近已被访问,但未被修改,有可能被再访问

(A=1,M=1):最近已被访问且修改,可能被再访问

页面缓冲算法PBA

影响页面换进换出效率的若干因素

1.页面置换算法

2.写回磁盘的频率

3.读入内存的频率

5.4"抖动"与工作集

抖动:如果分配给进程的存储块数量小于进程所需要的最小值,进程的运行将很频繁地产生缺页中断,这种频率非常高的页面置换现象称为抖动

发生"抖动"的根本原因:进程频繁访问的页面数目高于可用的物理块数

工作集:在某段时间间隔里,进程实际所要访问页面的集合

抖动的预防方法

①采取局部置换策略

②把工作集算法融入到处理机调度中

③利用"L=S"准则调节缺页率

L是缺页之间的平均时间,S是平均缺页服务时间

④选择暂停的进程

5.5请求分段存储管理方式

1.请求段表机制

请求段表项

在这里插入图片描述

2.缺页中断机构

3.地址变换机构

六、输入输出系统

6.1 I/O系统的功能、模型和接口

I/O系统管理的主要对象:I/O设备和相应的设备控制器

I/O系统的基本功能

1.隐藏物理设备的细节

2.与设备的无关性

3.提高处理机和I/O设备的利用率

4.对I/O设备进行控制(4种方式)

①采用轮询的可编程I/O方式

②采用中断的可编程I/O方式

③直接存储器访问方式

④I/O通道方式

5.确保对设备的正确共享

6.错误处理

I/O系统的层次结构和模型

层次结构

在这里插入图片描述

I/O系统接口

1.块设备接口

块设备:数据的存取和传输都是以数据块为单位的设备。磁盘是典型的块设备

2.流设备接口(字符设备接口)

字符设备:指数据的存取和传输是以字符为单位的设备

3.网络通信接口

6.2 I/O设备和设备控制器

设备类型

按使用特性分类

①存储设备,也称外存、辅存

②I/O设备

按传输速率分类

①低速设备

②中速设备

③高速设备

设备控制器的主要功能:控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换

设备控制器的基本功能

1.接收和识别命令

2.数据交换

3.标识和报告设备的状态

4.地址识别

5.数据缓冲区

6.差错控制

控制器由三部分组成:1.设备控制器与处理机的接口 2.设备控制器与设备的接口 3. I/O逻辑

I/O通道是一种特殊的处理机,具有执行I/O指令的能力,并通过执行通道程序来控制I/O操作。

通道类型:

1.字节多路通道(不适于连接高速设备)

2.数组选择通道(只允许一个设备传输数据)

3.数组多路通道

6.3 中断机构和中断处理程序

中断处理程序是I/O系统中最低的一层,它是整个I/O系统的基础

中断:指CPU对I/O设备发来的中断信号的一种响应

中断是由外部设备引起的,故又称外中断

由CPU内部事件引起的中断,称为内中断陷入

中断处理程序的处理步骤:

1.测定是否有未响应的中断信号

2.保护被中断进程的CPU环境

3.转入相应的设备处理程序

4.中断处理

5.恢复CPU的现场并退出中断

6.4设备驱动程序

四个功能:

1.接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的低层操作序列

2.检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式

3.发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者的请求块挂在设备队列上等待

4.及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理

设备处理方式

1.为每一类设备设置一个进程,专门用于执行这类设备的I/O操作

2.在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作

3.不设置专门的设备处理进程,而只为各类设备设置相应的设备驱动程序,供用户或系统进程调用

设备驱动程序的处理过程

1.将抽象要求转换为具体要求

2.对服务请求进行校验

3.检查设备的状态

4.传送必要的参数

5.启动I/O设备

对I/O设备的控制方式

1⃣️使用轮询的可编程I/O方式

2⃣️使用中断的可编程I/O方式

3⃣️直接存储器访问方式

特点:

1 数据传输的基本单位是数据块

2所传送的数据是从设备直接送入内存的,或者相反

3整块数据的传送是在控制器的控制下完成的

4⃣️I/O通道控制方式

6.5与设备无关的I/O软件

设备独立性:应用程序中所用的设备,不局限于使用某个具体的物理设备

与设备无关软件的基本概念

1 以物理设备名使用设备

2 引入了逻辑设备名

3 逻辑设备名称到物理设备名称的转换

逻辑设备名到物理设备名映射的实现

1⃣️逻辑设备表LUT
在这里插入图片描述

6.6用户层的I/O软件

系统调用是应用程序取得os所有服务的唯一途径

假脱机系统(spooling)

通过假脱机技术,可将一台物理I/O设备虚拟为多台逻辑I/O设备,这样也就允许多个用户共享一台物理I/O设备

spooling技术是对脱机输入/输出系统的模拟

主要由四个部分组成:

1⃣️输入井和输出井

2⃣️输入缓冲区和输出缓冲区

3⃣️输入进程和输出进程

4⃣️井管理程序

1

在这里插入图片描述

工作原理

在这里插入图片描述

spooling系统的特点

1⃣️提高了I/O的速度

2⃣️将独占设备改造为共享设备

3⃣️实现了虚拟设备功能

6.7缓冲区管理

引入缓冲区的原因

1⃣️缓和CPU与I/O设备间速度不匹配的矛盾

2⃣️减少对CPU的中断频率,放宽对CPU中断响应时间的限制

3⃣️解决数据粒度不匹配的问题

4⃣️提高CPU和I/O设备之间的并行性

单缓冲区,只能实现单方向的数据传输

双缓冲区(又称缓冲对换)

环形缓冲区

缓冲池

6.8磁盘存储器的性能和调度

磁盘存储器是计算机系统中的最重要的存储设备

改善磁盘系统性能的方法:

1.选择好的磁盘调度算法,减少磁盘寻道时间

2.提高磁盘I/O速度,以提高对文件的访问速度

3.采取冗余技术,提高磁盘系统的可靠性

磁盘访问时间

1.寻道时间Ts:指把磁臂移动到指定磁道上所经历的时间。该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和,m是移动一条磁道花的时间 。即 Ts=mn+s

2.传输时间Tt。指把数据从磁盘读出或向磁盘写入数据所经历的时间。设每次读/写的字节数为b,r为磁盘每秒钟转数,N为一条磁道上的字节数。即Tt=b/rN

3.访问时间Ta=Ts+Tt+1/2r

早期的磁盘调度算法

先来先服务FCFS

是最简单的算法。

根据进程请求访问磁盘的先后次序进行调度

优点:公平、简单

仅适用于请求磁盘I/O的进程数目较少的场合

最短寻道时间优先SSTF

要求访问的磁道与当前磁头所在的磁道距离最近

每次寻道时间最断,但不能保证平均寻道时间最短。可能导致饥饿

实质是优先级的调度算法

基于扫描的磁盘调度算法

扫描算法(电梯调度算法)

不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向

避免出现饥饿现象

循环扫描算法

NStepSCAN算法

FSCAN算法

七、文件管理

7.1 文件和文件系统

基于文件系统的概念,数据组成分为数据项记录文件三级

数据项

数据项是最低级的数据组织形式。

两种类型:

①基本数据项。是数据组织中可以命名的最小逻辑数据单位,又称为字段

②组合数据项,简称组项。

记录

定义:记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。

在很多的记录中,为了能够唯一标识一个记录,需要确定一个或几个数据项,把它们的集合成为关键字。关键字是唯一能标识一个记录的数据项。

文件

定义:文件是指由创建者所定义的、具有文件名的一组相关元素的集合。

类型:有结构文件和无结构文件

文件在文件系统中是一个最大的数据单位

文件属性:

1.文件类型

2.文件长度

3.文件的物理位置

4.文件的建立时间

文件类型(可能考填空题)

1.按用途分

系统文件

用户文件

库文件

2.按文件中数据的形式分

源文件

目标文件

可执行文件

3.按存取控制属性分

只执行文件

只读文件

读写文件

4.按组织形式和处理方式分

普通文件

目录文件

特殊文件

文件系统的层次结构

文件系统模型

在这里插入图片描述

文件管理系统管理的对象(填空题)

1.文件

2.目录

3.磁盘存储空间

最基本的文件操作

1.创建文件

2.删除文件

3.读文件

4.写文件

5.设置文件的读/写位置

7.2 文件的逻辑结构

系统中的所有文件都存在着一下两种形式的文件结构:

1.逻辑结构,又称为文件组织

2.物理结构,又称为存储结构

文件逻辑结构的分类

1.按文件是否有结构分类

有结构文件

无结构文件(即流式文件)

2.按文件的组织方式分类

顺序文件

索引文件

索引顺序文件

顺序文件(最基本最常见的)

排列方式:①串结构 ②顺序结构

记录寻址

隐式寻址

显示寻址

可变长度记录不能利用显示寻址方式

该方式可用于对定长记录的的文件实现直接或随机访问

索引文件

1.按关键字建立索引

△索引表中记录的是逻辑地址空间的首址(考判断题)

索引顺序文件(最常见的一种逻辑文件形式)

两个特征:

1.引入了文件索引表,实现对索引顺序文件的随机访问

2.增加了溢出文件,用来记录新增加的、删除的和修改的记录

一级索引文件

两级索引文件

直接文件

根据给定的关键字直接获得指定记录的物理地址

哈希文件(目前应用最广泛的一种直接文件)

7.3 文件目录

目录管理要求

1.实现"按名存取"

2.提高对目录的检索速度

3.文件共享

4.允许文件重名

文件控制块和索引结点

文件控制块FCB:用于描述和控制文件的数据结构

文件控制块的有序集合称为文件目录,即一个文件控制块就是一个文件目录项

FCB通常含有三类信息:

1.基本信息

包括:①文件名 ②文件物理位置 ③文件逻辑结构 ④文件的物理结构

2.存取控制信息

包括文件主的存取权限核准用户的存取权限以及一般用户的存取权限

3.使用信息

包括文件的建立日期和时间文件上一次修改的日期和时间,以及当前使用信息

索引结点

使文件描述信息单独形成一个称为索引结点的数据结构

简单的文件目录

1.单级文件目录(最简单的文件目录)

优点:简单,能实现按名存取

不满足对文件目录的其他三方面的要求:

①查找速度慢

②不允许重名

③不便于实现文件共享

2.两级文件目录

用户文件目录UFD

主文件目录MFD

在这里插入图片描述

树形结构目录(最通用且实用的)

优点:明显提高对目录的检索速度和文件系统的性能

缺点:不便于实现对文件的共享

目录操作:

1.创建目录

2.删除目录

3.改变目录

4.移动目录

5.链接操作

6.查找

7.4 文件共享

两种文件共享方法:

基于有向无循环图

有向无循环图DAG

利用索引结点

利用符号链接

利用符号链接

7.5 文件保护

影响文件安全性的主要因素:

1.人为因素

2.系统因素

3.自然因素

为确保安全性,可针对上述三点采取措施:

1.通过存取控制机制,防止由人为因素所造成的文件不安全性

2.采取系统容错技术,防止系统部分的故障所造成的文件不安全性

3.建立后备系统,防止由自然因素造成的不安全性

访问权:一个进程能对某对象执行操作的权力

域:是进程对一组对象访问权的集合

八、磁盘存储器的管理

8.1 外存的组织方式

三种方式:

1.连续组织方式

2.链接组织方式

3.索引组织方式

连续组织方式

优点:

1.顺序访问容易

2.顺序访问速度快

缺点:

1.要求为一个文件分配连续的存储空间

2.必须事先知道文件的长度

3.不能灵活地删除和插入记录

4.对于动态增长的文件,难以为其分配空间

链接组织方式

优点:

1.消除了磁盘的外部碎片,提高了外存的利用率

2.对插入、删除和修改记录都非常容易

3.能适应文件的动态增长

两种形式:

1.隐式链接(只适合顺序访问)

2.显示链接(把不会产生外部碎片)

把用于链接文件各物理块的指针显示地存放在内存的一张链接表中。该表为文件分配表FAT

显示链接结构

在这里插入图片描述

索引组织方式

1.单级索引组织方式

优点:支持直接访问,不会产生外部碎片,适合大文件

缺点:对小文件而言,索引块的利用率极低

2.多级索引组织方式

优点:大大加快对大型文件的查找速度

缺点:启动磁盘的次数随着索引级数的增加而增多

3.增量式索引组织方式(混合组织方式)

UNIX系统采用的就是这种方式

既采用了直接寻址方式,又采用了单级和多级索引组织方式(间接寻址)

FAT技术(文件系统中最重要的数据结构)

文件分配表FAT,记录每个文件中所有盘块之间的链接

一个物理磁盘分成四个逻辑磁盘,每个逻辑磁盘就是一个卷(也称为分区)

一个卷包含:文件系统信息、一组文件、空闲空间

每个卷都划出一个单独的区域来存放自己的目录和FAT表,以及自己的逻辑驱动器字母

FAT12(以盘块为基本分配单位)p272

每个FAT表项为12位,因此FAT表中最多允许有4096(2^12)个表项

以簇为单位的FAT文件系统

簇是一组相邻的扇区,在FAT中作为一个虚拟扇区。

FAT32

每一簇在FAT表中的表项长度固定为4字节

FAT中簇的大小与最大分区的对应关系

在这里插入图片描述

8.2 文件存储空间的管理

存储空间的基本分配单位是磁盘块

空闲表法(连续分配)(不适合大型文件系统)

空闲盘块表

在这里插入图片描述

存储空间的分配与回收

采用首次适应算法最佳适应算法

空闲链表法(不适合大型文件系统)

空闲盘块链

将磁盘上的所有空闲空间以盘块为单位拉成一条链

优点:过程简单

缺点:效率较低

空闲盘区链(离散分配、连续分配都适用)

将磁盘上的所有空闲盘区拉成一条链

通常采用首次适应算法

优缺点和空闲盘块链相反

位示图法

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

位示图从1开始(书上的)

在这里插入图片描述

设i为行,j为列,n为每行的位数

相应的盘块号计算公式:b = n(i-1) + j

回收的盘块号转换成位示图的行号和列号:

i = (b-1)/(n+1)

j = (b-1) mod (n+1)

位示图从0开始

在这里插入图片描述

相应的盘块号计算公式:b = ni+ j

回收的盘块号转换成位示图的行号和列号:

i = b/n

j = b mod n

成组链接法(UNIX)

空闲盘块的组织

空闲盘块号栈,用来存放当前可用的一组空闲盘块的盘块号,以及栈中尚有的空闲盘块(号)数

  • 13
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
P3-18是一个假设的变量或数据点的编号,通常在工业自动化中,比如PLC(可编程逻辑控制器)或SCADA系统中,用于表示某个测量值或控制信号。要将P3-18的数据转换成Modbus RTU协议,你需要知道这个数据的具体内容,比如数值、数据类型和它在Modbus通信中的地址。 Modbus RTU是一种基于ASCII编码的串行通信协议,数据以16位数据块传输。每条报文由起始字符、功能码、寄存器地址、寄存器值、校验和和结束字符组成。下面是基本步骤: 1. **确定地址**:在Modbus的世界里,每个输入/输出寄存器有一个唯一的地址,如P3-18对应的地址可能是0x0003或0x0004(取决于PLC设置,前导的0通常被忽略)。 2. **数据组织**:如果P3-18是数值型数据,将其转换成16位的二进制形式。例如,如果P3-18的值是100,十六进制就是64。 3. **创建报文**: - **起始字符(STX)**:0x02(十六进制,ASCII的开始符) - **功能码(FC)**:通常是0x03(读输入寄存器,对应单次读取一个或多个输入寄存器) - **寄存器地址(RA)**:P3-18对应的十六进制地址 - **数量(QL)**:1(读取一个寄存器) - **数据段**:P3-18的十六进制数值 - **停止字符(ETX)**:0x03(十六进制,ASCII的结束符) - **校验和(CRC)**:根据报文内容计算校验和,通常使用CRC-16算法 4. **发送报文**:将这些字节按顺序连接起来形成完整的RTU帧,并通过串口或其他通信接口发送出去。 由于实际报文生成涉及到二进制处理,这里我无法直接提供一个完整的报文,但你可以用上述步骤和一个Modbus库或者工具来生成。如果你需要详细的示例,请告诉我P3-18的具体数值,以及你的设备支持的起始地址和是否包含其他配置信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Restart222

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值