操作系统笔记

第二章 进程管理

进程的三种状态
1就绪状态
2运行状态
3阻塞状态

进程实体=代码段+数据段+pcb
pcb是进程存在的唯一标志

原语
原语是由若干指令构成的原子操作过程,作为整体实现功能,不可被打断

同步
原则:空闲让进
忙则等等
有限等待
让权等待

整形信号量
p操作 wait(s) while s<0 s=s-1
v操作 signal(s) s=s+1;

线程
一个进程包含多个线程tcb
实现方式:用户线程 内核线程

进程和线程 比较:

 1、调度:进程是拥有资源和独立调度的基本单位     线程只是独立调度单位,运行时资源属于进程。

 2、拥有资源: 不管是有无线程的操作系统,进程都是拥有资源的基本单位,而线程只拥有极少的私有资源(程序计数器、一组寄存器、栈。用来保存线程的执行历史和线程的执行状态,这些资源也是进程的)

 3、并发性:有线程的操作系统,进程可以并发,线程也可以并发。可以理解为一个程序有好几个进程,每个进程又有好几个线程。

第三章 处理机调度与死锁
调度的层次与作用:
高级调度 中级调度 低级调度
进程调度方式:
非抢占方式
抢占方式
调度算法fcfs
1 先来先服务调度算法
不利于短作业
有利于cpu繁忙行作业 不利于i/o繁忙的作业
2 短进程优先调度算法sjf
能有效的降低作业的平均等待时间 提高系统吞吐量
对短作业有利 对长作业不利
不能保证紧迫性作业及时处理
3.高优先权优先调度算法hpf
照顾紧迫性作业 使其优先处理
4.高响应比优先调度算法hrrn
为每个作业引入动态优先权,使作业的优先级随着等待时间的增加而已速率a提高
5基于时间片的轮转调度算法rr
5多级反馈队列算法fb
最综合的一种算法

死锁
产生原因
1竞争资源
2进程间推进顺序非法
产生条件 4个缺一不可
1.互斥条件
2.请求和保持条件
3.不剥夺条件
4.环路等待条件
处理死锁的基本发法
预防死锁 避免死锁
检测死锁 解除死锁
银行家算法

前提:Requesti为进程Pi的请求向量,若Requsti[j]=k,表示进程Pi需要k个Rj类型的资源。

当Pi发出资源请求时,执行的步骤如下:

  1. 若Requesti[j]<=Need[i,j],则转向步骤2;否则认为出错。因为所需资源数已经大于它所宣布的最大值。

2.若Requesti[j]<=Available[j],则转向步骤3;否则让Pi等待。因为因为所需资源数大于可用资源。

3.系统试探着把资源分配给进程Pi,并修改下面数据结构的值:

1)Available[j]=Available[j] - Requesti[j];

2)Allocation[i,j] = Allocation[i,j] + Requesti[j];

3)Need[i,j] = Need[i,j] - Requesti[j]。

4.执行安全性算法,若检测此次资源分配后系统处于安全状态,则正式分配;否则恢复原来的资源分配,让Pi等待。

3、安全性算法

数据结构:含有两个向量。

1)work。初值为Avaliable。表示系统可提供给进程继续运行所需的资源数目。它代替Available来找安全序列,使Available能保持初值。

2)Finish。表示系统是否能有足够的资源分配给进程。初始值finish[i]=false。

步骤:

1)从进程中找到满足finish[i] = false & Need[i,j] <= work[j] 的进程;若找到,执行步骤2,否则执行步骤3.

2)执行 work[j] = work[j] + Allocation[i,j];finish[i] = true;go to step 2;

第四章 存储管理
分配方式
1、单一连续分配

分配方式:把内存分为系统区和用户区两部分,系统区仅提供给OS使用,放在内存的低地址部分。用户区则仅放一道用户程序,放在高地址部分。

使用场景:单用户、单任务操作系统

2、固定分区分配

分配方式:将整个用户空间划分为多个固定大小的区域。每个分区中只装入一道作业。有两种划分分区的方法,一种是分区大小相等,一种是不等。

为了便于内存分配,通常讲分区按大小排列,并建立一张分区使用表。

使用场景:多道程序系统

3、动态分区分配(可变分区分配)

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

分配算法

1、首次适应算法(FF)

其要求空闲分区链以地址递增的次序链接。分配内存时,从链首开始查找,直到找到一个大小能满足要求的空闲分区为止。若找不到,则分配失败。

优缺点:其保留了高地址的大空闲区,但是低地址部分留下许多难以利用的空闲碎片。

2、循环首次适应算法(NF)

从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个满足的空闲分区为止。若到最后一个空闲分区都不满足,则重新回到第一个空闲分区顺序查找。

优缺点:其能使内存中的空闲分区更均匀,减少了查找空闲分区时的开销,但是会缺乏大的空闲分区。

3、最佳适应算法(BF)

该算法要求将所有的空闲分区按照容量从小到大的顺序形成空闲分区链来顺序查找。

优缺点:能够避免“大材小用”,但是会留下许多空闲碎片。

4、最坏适应算法(WF)

其与最佳适应相反,它总是挑选一个最大的空闲分区来分割给作业使用。

优缺点:使剩下的空闲分区不至于太小,对中、小作业有利,但是使得存储器缺乏大的空闲分区。

动态重定位
1、 紧凑

为了解决内存碎片得不到利用的问题,出现了“紧凑”的做法。

含义:通过移动内存中作业的位置,把多个分散的小分区拼接成一个大分区的方法。

不足:每次“紧凑”后,都要对程序或数据重定位。大大影响系统效率。

2、动态重定位(解决紧凑的不足)

含义:地址变换过程推迟到了程序执行期间,随着对每条指令和数据的访问自动进行。当系统对内存进行了“紧凑”后,不需对变换位置的程序做任何修改,只需让该程序在内存的新起始地址置换原来的起始地址即可。

3、动态重定位分区分配算法

它与动态分区分配算法大致相同,差别仅在于增加了紧凑功能。

若该算法找不到一个足够大的空闲分区时,就要对内存进行紧凑,若仍找不到,则返回分配失败信息,否则分配。

分页存储

1、页面和物理块

1)页面:用户程序的地址空间分为若干个固定大小的区域,称为“页”或页面。

2)页面大小:若选择的页面大小过小,可减少内存碎片,但可能会导致页表过长,占用内存多;若选择过大,可提高页面换进换出的速度,但会使页碎片增大。页面大小应是2的幂,通常为512B-8KB。

3)块:内存的物理空间分成若干个块。在为进程分配内存时,以块为单位。

2、地址结构

它包含页号P和位(偏)移量W(页内地址)。对某特定机器,其地址结构是一定的。

若给定一个逻辑地址空间中的地址为A,页面的大小为L,则页号P和页内地址d可按下式求得:

P = INT[A/L],d = [A] MOD L.

例如,其系统的页面大小为1KB,设A=2170B,则P=2,d=122.

3、页表

每个进程都有一个页表。

作用:实现从页号到物理块号的地址映射。

组成:页号和内存中对应的物理块号。

分段系统的基本原理
含义:在分段式存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。例如,有主程序段MAIN、子程序X等。每个段均有自己的名字。 且每个段的长度并不相等。

分页和分段的主要区别

1.页是信息的物理单位。采用分页存储系统方式是为了实现离散分配方式,消除外零头(页间的碎片),提高内存利用率;段是信息的逻辑单位,分段的目的主要在于能更好地满足用户的需求。

2.页的大小固定且由系统决定;段的长度不固定,取决于其信息的性质。

3.分页的用户程序地址空间是一维的,它是系统行为;分段的用户程序地址空间是二维的,程序在识别一个地址时,即需给除段名,又需给出段内地址。

第五章 虚拟存储器

1、虚拟存储器的基本概念、理论依据、基本特征及关键技术;

虚存解决的问题:从逻辑上扩充内存容量
1、定义

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

其逻辑容量由内存和外存之和决定,其运行速度接近于内存速度,每位的成本又接近于外存。

逻辑容量决定举例:例如32位的操作系统,只能编写最多2的三十二次方(4G)的程序。

2、虚拟存储器的特征

多次性:一个程序运行被分成多次调入内存运行。多次性虚拟存储系统是区别于其他存储管理方式的最重要特征。

对换性:程序运行在作业的运行过程中进行换进、换出。

多次性和对换性建立在离散分配的基础上。

虚拟性:指能从逻辑上扩充容量。其以多次行性和对换性为基础。

页面置换算法
页面置换算法即为选择换出页面的算法。一个好的页面置换算法应具有较低的页面更换频率。

5.3.1 最佳置换算法和先进先出算法
1、最佳(Optimal)置换算法(向未来看)

这是一种理论算法。其所选择的被淘汰页面将是以后永不使用的,或许是在最长(未来)时间内不再访问的页面。其可保证获得最低的缺页率。

2、先进先出(FIFO)页面置换算法

淘汰最先进入内存的页面。实现简单,不用硬件支持,但是效果不好。

5.3.2 最近最久未使用和最少使用置换算法
1、最近最久未使用算法(Least Recently Used)(向过去看)

选择最近最近未使用的页面予以淘汰。

不足:需要较多的硬件支持。每个内存中的页面都要配置一个移位寄存器。且需要用栈保存当前使用的各个页面的页面号。

3、最少使用置换算法(Least Fequently Used)

选择在最近使用最少的页面淘汰。其使用了移位寄存器,但是由于存储器具有较高的访问速度,在1ms内可能访问成千上万次,故用计数器不现实,只能用一个较大的时间间隔来纪录对某页的访问。故该算法不能能真正反应页面的使用情况,因为在某时间间隔内,对某页访问一次和1000次可能是完全等效的。

5.3.3 Clock置换算法/最近未用算法(Not Recently Used)
1、简单的Clock置换算法

其为每页设置一位访问位,将内存中所有的页面通过链接指针链接成一个循环队列。检查页面顺序为FIFO。与上相比,该算法无需硬件支持。过程如下图:

2、改进型Clock算法

在基本Clock算法基础上,增加置换代价的考虑。由访问位A和修改位M组成下面四种类型的页面:

1类(A=0,M=0):表示该页面最近既未被访问,又未被修改,是最佳淘汰页。

2类(A=0,M=1):表示该页最近未被访问,但已被修改,并不是很好的淘汰页。(故淘汰优先级,1类>2类)

3类(A=1,M=0):表示最近都已被访问,但未被修改,该页有可能再次被访问。

4类(A=1,M=1):表示最近已被访问且被修改,该页可能再被访问。
该算法与简单Clock比较,可减少磁盘的I/O次数,但是算法为了找到可置换页可能要经过几轮的扫描,故本身的开销有所增加。

第六章 设备管理

1、设备管理的任务、功能及目标;
隐藏物理设备细节
实现设备无关性
提高处理机合设备的并行性
对i/o设备进行控制
确保对设备正确共享
错误处理

2、I/O设备的分类,设备、控制器及通道的关系;
用户层软件
设备独立性软件
设备驱动程序
中断处理程序
硬件

I/O设备的类型

从设备的占用方式区分:独占设备和共享设备。

从数据的单位区分:块设备和流设备。

从设备传输速率区分:低速设备(键盘、鼠标)、中速设备(行式、激光打印机)和高速设备(磁带机、磁盘机、光盘机)。

从设备的使用特性区分:存储设备和I/O设备。

存储设备(即块设备):可寻址,一般为DMA方式,例如磁盘。

I/O设备:可分为输入、输出和交互式设备。不可寻址,一般为I/O中断驱动,传输速率较低。

2、设备与控制器之间的接口

通常,设备不是直接与CPU通信,而是与设备控制器通信。

数据信号线:用于在设备和设备控制器之间传输数据。

控制信号线:由设备控制器向I/O设备发送控制信号的通路(如读、写操作)。

状态信号线:用于传送指示设备与当前状态的信号(例如已读完成,已写完成等状态)。

通道类型
1字节多路通道
2数组选择通道
3数组多路通道

第七、八章 文件管理 磁盘存储器的管理

文件类型
按用途分类
系统文件
用户文件
库文件
按文件中数据的形式分类
源文件
目标文件
可执行文件
按存取控制属性分类
只执行文件
只读文件
读写文件
按组织形式和处理方式分类
普通文件
特殊文件
目录文件
文件的逻辑结构
文件的逻辑结构是指从用户的角度出发所观察到的文件逻辑组织
文件的物理结构是指外存上文件的存储组织形式

文件逻辑结构的类型
(1)有结构文件(记录式)
①定长记录 (更适合顺序文件)
②变长记录(更适合索引文件)
如何组织记录:
顺序文件。系统需按该类型记录“长度”,通常定长。
索引文件。系统需为文件建立索引表。
索引顺序文件。建索引表,记录每组记录的第一个记录位置。(较大文件可以组织成索引顺序文件)
(2)无结构文件(字符流式)
字节为单位,利用读写指针依次访问。
系统对该类文件不需格式处理。
2.顺序文件
(1)两种记录排列方式
串结构:按记录形成的时间顺序串行排序。记录顺序与关键字无关;
顺序结构:按关键字排序。
(2)具体的寻址过程:
第i条记录地址(定长) :
读写指针 + 记录长度: ptr + i*L
第i条记录地址(变长) :
扫描或读取前面0~i-1条记录
第i条记录地址(变长)
3.索引文件
为了方便单个记录的随机存取,为文件建立一个索引表,记录每项记录在文件的逻辑地址及记录长度;该索引表按关键字排序
(1)索引表内容:
索引号、长度、记录地址指针
(2)一个索引文件可以有多个索引表
为方便用户根据不同记录属性检索记录,为顺序文件建立多个索引表,每种能成为检索条件的域都配备一张索引表。
(3)索引文件的优缺点
适用于变长记录,可提高检索速度,实现直接存取
索引表增加了存储开销
4.索引顺序文件
(1)
将顺序文件的所有记录分组
还是建立索引表,但每个表项记录的是每组第1条记录的键值和地址。
组内记录仍按顺序方式检索和使用。
(2)检索一条记录的过程:
先计算记录是在第几组,然后再检索索引确定组在哪里后,在组内顺序查找。
5.直接文件
给定键值(如学号)不需顺序检索直接得到记录的物理地址(HASH函数)
6.外存分配方式
(1)常用三种方式:
连续分配
链接分配(不连续)
索引分配
(2)采用的磁盘分配方式决定了文件的“物理结构”
顺序结构;链接式结构;索引式结构。
(3)
a.连续分配 会产生外存碎片
为每一个文件分配一组相邻的盘块。
逻辑文件中的记录顺序与存储器中文件占用盘块的顺序一致。
directory
file(文件名) start(开始) length(长度)
count 0 2

b.链接分配
可以为每一个文件分配一组不相邻的盘块。
设置链接指针,将同属于一个文件的多个离散盘块链接成一个链表,这样形成的文件称为链接文件。会有链接成本。
1)隐式链接
链接信息隐含记录在盘块数据中;
每个盘块拿出若干字节,记录指向下一盘块号的指针。
directory
file(文件名) start(开始) end(结束)
jeep 9 25
2)隐式链接
记录盘块链接的指针显示地记录为一张链接表
所有已分配的盘块号都记录在其中,称文件分配表
为了提高文件系统访问速度,FAT一般常驻内存
c.索引分配
系统运行时只涉及部分文件,FAT表无需全部调入内存
每个文件单独建索引表(物理盘块索引),记录所有分配给它的盘块号;
建立文件时,便分配一定的外存空间用于存放文件盘块索引表信息;
1)单级索引分配(适合大文件)
2)多级索引
若文件较大,存放索引表也需要多个盘块(索引盘块)。
索引盘块亦需要按顺序管理起来
若索引盘块数量较少用指针链接的方式即可;
若索引盘块较多,需对索引盘块也采用索引方式管理,形成多级索引。
7.存储空间的管理
为实现存储空间分配,系统需要:
记住空闲存储空间使用情况;为空间设置相应的数据结构;
提供对存储空间分配、回收的操作手段。
典型的管理方法:
1)空闲表和空闲链表法
a.空闲表法
常用于连续分配管理方式
数据结构
系统为外存上的所有空闲区建立一张空闲表
每个空闲区对应一个空闲表项
(表项包括序号、空闲区的第一个盘块号、空闲盘块数等。)
将所有空闲区按其起始盘块号递增的次序排列,
b.空闲链表法
将所有空闲盘区拉成一条空闲链。
数据结构:链
根据构成链所用基本元素的不同,可把链表分成两种形式:
空闲盘块链
空闲盘区链
2)位示图法
利用二进制的一位来表示一个盘块的使用情况。
值为0表示对应的盘块空闲,为1表示已分配。有的系统则相反。
磁盘上的所有盘块都有一个二进制位与之对应,这样由所有盘块所对应的位构成一个集合,称为位示图。
3)成组链接法
中心思想:
所有盘块按规定大小划分为组;
组间建立链接;
组内的盘块借助一个系统栈可快速处理,且支持离散分配回收。
二、目录管理
1.文件控制块—FCB(用于描述和控制文件的数据结构)
(1)文件与文件控制块一一对应
把文件控制块的有序集合称为文件目录,即一个文件控制块就是一个目录项。通常一个文件目录也被看作是一个文件,称为目录文件。
(2)在文件控制块中,通常含有以下三类信息:
基本信息类:包括文件名,文件物理位置,文件逻辑结构,文件的物理结构。
对于连续文件:文件起始块号;
对于链接文件:指向第一个物理块的指针;
对于索引文件:索引表地址。
存取控制信息类:包括文件主的存取权限,核准用户的存取权限和一般用户的存取权限。
使用信息类
2.目录结构
(1)目前常用的目录结构形式有
单级目录
两级目录
多级目录
(2)单级目录结构
整个文件系统中只建立一张目录表,每个文件一个目录项,含有文件相关信息。
每建立一个新文件:
先检索所有的目录项,保证文件名唯一。
获得一空白目录项,填入相关信息,修改状态位(表明每个目录项是否空闲)。
(3)两级目录结构
为每一个用户建立一个单独的用户文件目录UFD,UFD由用户所有文件的文件控制块组成。
系统建立一个主文件目录MFD, MFD中每个用户目录文件都占有一个目录项,其中包括用户名和指向UFD的指针。
(4)多级目录结构
适用于较大的文件系统管理。又称为树状目录
3.目录查询技术
用户要访问一个已存文件
目录数据调入内存;
按名检索:系统利用提供的文件名对目录(根据目录层次,需要做的检索次数也不同)进行查询
找该文件控制块
读FCB或对应索引结点;
从文件物理地址换算出文件在磁盘上的物理位置;
最后通过磁盘驱动程序,将所需文件读入内存。
目录查询方式:线性检索法和Hash方法
4.线性检索法
单级目录中
用户提供文件名,顺序查找文件目录
5.文件共享与保护
1)文件共享
多个用户共享一份文件,只保留文件的一份副本,节约存储空间
a.索引结点
基本FCB法:
名+详细信息。
直接在文件目录中包含文件的物理地址,该方法实现的共享不适用文件动态变化。一个用户对文件的修改(如物理块号增加),对其他用户不可见,共享文件的FCB信息记录同步更新困难。
文件名+索引结点指针。
一个用户修改指针指向地址里的内容,指针不变,其他用户通过指针总能感知索引结点中的最新内容
索引结点中增加count计数
b.符号链
创建一个link类型的文件:“文件名+共享文件路径”(类似快捷方式)
文件主人删除文件,共享者只会出现找不到文件错误。不会发生共享文件删除后出现悬空指针的情况。
该方法适用于网络文件共享,但根据路径检索共享文件的目标位置增加了访问开销,link文件独占索引结点也耗费一定的空间。

磁盘容错
防止磁盘故障造成的文件不安全

①SFT I:磁盘表面故障
双目录、双文件分配表(空间冗余)
写后读校验、热修复重定向(时间操作冗余)
写入磁盘后再读回内存做一致性校验
热修复写过程:从坏道重定向到专区并记录

②SFT II:磁盘驱动器、控制器故障
驱动器故障:磁盘镜像
控制器故障:磁盘双工——并行控制器,分离搜索加快读取

③SFT III:高级容错技术
双机热备份
双机互备份
公用磁盘模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值