一、进程

1.操作系统是否支持并发分类:单道批处理系统、多道程序系统

2.程序顺序执行特点:顺序性、封闭性、可再现性

3.程序并发执行特点:间断性、失去封闭性、不可再现性

4.目的:使程序可以并发执行,对并发执行的程序加以描述和控制。

5.定义:
进程是进程实体的运行过程,是系统进行资源分配和调度的独立单位。所谓的创建进程实际上指的是创建进程实体中的PCB,而撤销进程实际上指的是撤销进程的PCB。

6.创建:建立PCB、分配所需资源、将其控制块放入就绪队列

7.进程状态:三种基本状态+其它状态        

        就绪状态
:进程获取了除CPU资源之外的所有必须资源后的状态(如果系统中有多个进程都处于就绪状态,通常按照一定的优先策略将他们排成一个队列,该队列称为就绪队列)

        执行状态:进程已经获取了所有资源(包括CPU资源),当前正在运行。

        阻塞状态
:正在执行的进程由于某些事件(比如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态,也称进程的执行受到阻塞(阻塞状态、等待状态、封锁状态),当有多个进程处于阻塞状态时,也会将这些阻塞状态的进程排成一个或多个阻塞队列。

       创建状态:创建时所需资源不满足,创建工作尚未满足,不可被调度使用的现状态。

       终止状态:

8.进程有两种操作:

挂起操作:

       引入原因:终端用户的需要、父进程请求、负荷调节的需要、操作系统的需要。

激活操作:

9.PC的定义:(Process Control Block)

        PCB是系统为了描述和控制进程的运行而为进程定义的一种数据结构。

        它是进程实体的一部分,进程存在的唯一标志,是操作系统中最重要的结构体类型的数据结构。

        PCB中存放着操作系统所需的用于描述进程当前情况以及控制进程运行的全部信息。

10.PCB的作用:

        标识进程的存在:系统创建进程时,就为之创建一个PCB;进程结束时,系统回收其PCB,进程随之消亡。操作系统靠PCB感知进程的存在。

        为系统提供可并发执行的独立条件
:PCB使一个在多道程序环境下不能独立运行的程序成为一个能独立运行的基本单位,即一个能与其他进程并发执行的进程。没有为之建立PCB的程序是不能并发执行的。换而言之,操作系统是根据PCB来对并发执行的进程进行控制和管理的。

        为系统控制和管理进程提供所需的一切信息。

11.PCB中的主要信息(因系统而异)

        进程标识符、进程的现行状态、处理机的现场保留区、进程相应的程序和数据地址、进程资源清单、进程优先级:表示进程使用处理机的优先级别的整数、进程同步与通信机制、进程所在PCB的链接字、与进程有关的其他信息。

12.进程同步:进程的互斥和进程的同步统称为进程的同步。

        进程的互斥:对某个系统资源。一个进程正在使用它,另外一个想使用这个资源的进程就必须等待,而不能同时使用。

        进程的同步
:两个或多个进程为了合作完成同一个任务,在执行速度或某些确定的时序点上必须相互协调,即一个进程的执行完全依赖于另一个进程----其合作伙伴的消息,当一个进程到达了某一确定点而没有得到合作伙伴发来的“已完成某些事件”的信息时,必须等待,直到该消息到达被唤醒后,才能继续向前推进。

进程的阻塞、唤醒:向系统请求共享资源失败、等待某种操作的完成、新数据尚未到达、等待新任务到达,阻塞:通过调用block语句。

临界资源:凡是以互斥方式使用的共享资源都称为临界资源。临界资源具有一次只允许一个进程使用的属性。

临界区:每个进程互斥访问临界资源的那段代码称为临界区。

进程通信:直接通信:发送进程通过收、发原语直接将消息发送到接受进程的消息缓冲区。

                  间接通信:发送进程将消息发送到电子邮箱,接受进程再从中取出消息。

进程管理:p操作和v操作是不可中断的程序段,称为原语。P测试、V增加

P操作(wait 原语)[P-≥]  

     S.value := S.Value - 1;

   若 S.Value ≥ 0 进程继续执行。

   若 S.Value < 0 进程阻塞

V操作(Signal原语)[V+>]

S.value := S.Value + 1;

   若 S.Value > 0 进程继续执行。

   若 S.Value ≤ 0 进程就绪

二、调度

知识点补充:

处理机是处理计算机系统中存储程序和数据,并按照程序规定的步骤执行指令的部件。

调度:资源分配

处理机调度算法:根据处理机分配策略所规定处理机分配算法

程序是描述处理机完成某项任务的指令序列。

指令则是处理机能直接解释、执行的信息单位。

调度算法:

1.共同目标:

* 资源利用率:CPU利用率 = CPU有效工作时间/(有效工作时间+等待时间)
* 公平性
* 平衡性
* 策略强制执行
2.常见算法

2.1先来先服务

2.2短者优先、

2.3高响应比优先、

2.4最高优先级优先:

优先级类型

       静态优先级:在创建进程时确定,其在整个运行期间保持不变。(进程类型,进程对资源的需求,用户要求)

       动态优先级:在创建进程之初,先赋予进程一个优先级,然后优先级会随着进程的推进或等待时间的增加而改变,以便获得更好的调度性能。

2.5轮转调度算法:既让就绪队列上每个进程每次仅运行一个时间片,轮流运行

实时调度算法:

       抢占式:

             

       非抢占式

三、死锁

死锁的定义:

是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。称此时系统处于死锁状态或系统产生了死锁;称这些永远在互相等待的进程为死锁进程。

产生原因:主要是需要采用互斥访问方法的、不可被抢占的资源

竞争不可抢占资源引起死锁

竞争可消耗资源引起死锁

进程推进顺序不当引起死锁

产生死锁的必要条件:

互斥条件:每一个资源要么被分配给一个进程,或者空闲。

请求和保持条件:已分配到了一些资源的进程可以申请新的资源。

不可抢占条件:进程所获得的资源在未使用完毕之前,资源申请者不能强行地从资源占有者手中夺取资源,而只能由该资源的占有者进程自行释放。

循环等待条件:链中的每一个进程都在等待相邻进程所占用的资源。

死锁处理方法:

       预防死锁:

破坏“请求和保持”条件:

       破坏“不可抢占”条件:

       破坏“循环等待”条件:

       避免死锁

系统安全状态:

利用银行家算法避免死锁:要求进程预先提出自己的最大资源请求,并且假设系统拥有固定的资源总量。

       检测死锁:

       解除死锁:

四、存储器管理(编译—>链接—>装入)

地址绑定:

内存分配:程序执行的过程中分配或者回收存储空间的分配内存的方法。(静态内存分配/动态内存分配)

内存保护:为保证操作的正确性,要保护操作之间互不影响

                通过CPU硬件对用户态下产生的物理地址与寄存器的地址进行比较来完成的

                防止程序间相互越界访问

内存“扩充”技术:在现有的物理内存的基础上扩大内存的使用效率

对换:将一定数量的程序或者数据换入或换出内存

覆盖:内存中只保留需要的程序和数据,其它会被新装入的覆盖

紧凑:

虚拟存储器:

作业分配

1.连续分配方式:要求对作业分配连续的内存单元

不可变分区:

       1.单一连续分配

       2.固定连续分配:每个分区的大小可以不同但预先固定

可变分区:

       拼接技术:集中空闲区

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

              分配算法:(顺序分配和索引分配)

              顺序:

首次适应算法FF:地址递增次序链接

循环首次适应算法NF:从上次空闲分区的下一个分区开始查找,不可满足返回头

最佳适应算法BF:内存块按大小递增构成,构成空闲分区链

最坏适应算法WF:内存块从大到小,与最佳相反

        快速:

                快速适应算法

                伙伴系统

                哈希算法

2.动态重定位分区分配:把在装入时对目标程序中指令和数据地址修改的过程

2.分页存储管理方式:

将内存分为若干个固定大小的块,用户程序地址分为若干个固定大小的域
。以块为单位,装入多个可以不相邻的物理块中,由于经常装不满,形成的碎片称之为“业内碎片”或“内碎片”。

       地址变换机构:将用户地址空间中的逻辑地址变换为内存空间中的物理地址。

3.分段存储管理方式:

作业空间是以段为单位的,每个段将占据一个连续的存储区域,但各段之间不必连续。

不会产生内部碎片

信息共享、信息保护、方便编程、动态链接、动态增长

一个程序如何分段在用户编程时决定

段的大小受内存空间的限制

重定位:在整个系统中设置一个重定位寄存器

静态重定位:

定义:逻辑地址转换为物理地址的过程中,地址变换是在进程装入时一次完成的,以后不再改变。

优点:是无需增加硬件地址转换机构,便于实现程序的静态连接。在早期计算机系统中大多采用这种方案。 缺点
:内存空间不能移动;各个用户进程很难共享内存中同一程序的副本

动态重定位:

定义
:动态运行的装入程序把转入模块装入内存之后,并不立即把装入模块的逻辑地址进行转换,而是把这种地址转换推迟到程序执行时才进行,装入内存后的所有地址都仍是逻辑地址。这种方式需要寄存器的支持,其中放有当前正在执行的程序在内存空间中的起始地址。

优点:内存空间可以移动;各个用户进程可以共享内存中同一程序的副本。

缺点:增加了机器成本,而且实现存储管理的软件算法比较复杂。

五、虚拟存储器

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

特征:与传统的存储器管理方式比较:多次性、对换性、虚拟性。

实现方法:

       请求分页系统:在分页系统的基础上新加了请求调页功能和页面置换功能。

              硬件支持:

请求分页的页表机制  

缺页中断机构

地址变换机构

              软件支持:

                     实现请求调页的软件和页面置换的软件

       请求分段系统:

              硬件支持

                     请求分段的段表机制

缺段中断机构。

地址变换机构。

软件支持

       实现请求调段的软件和段置换的软件

请求分页存储管理方式:每次换入换出的基本单位都是长度固定的页面

      

缺页率:访问成功次数/访问总次数(成功+失败)

       影响因素:页面大小、进程所需分配物理块的数目、页面置换算法、程序固有特性

页面置换算法

  最佳页面置换算法:

  先进先出页面置换算法:

  最近最久未使用页面置换算法:

  最少使用页面置换算法

  Clock 页面置换算法

  页面缓存算法

七、输入输出系统

I/O系统功能:

    方便用户使用、提高处理机和I/O设备的利用率、共享设备提供方面,即发生错误可及时处理错误。

组成:

  硬件:

  软件:

     用户层软件:与用户交互的接口     

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

     设备驱动程序

     中断处理程序:保存被中断进程的CPU现场

接口:信息交换单位分类

  块设备接口:块设备管理程序与上层之间(存储器设备)

  流设备接口:字符设备

  网络通信接口

软件:

与设备无关软件—>实现设备独立性

  用户层I/O软件:

    假脱机系统:将一台CPU虚拟为多台逻辑CPU,从而允许多个用户共享一台主机。

       假脱机技术(SPOOLing):低速I/O设备传送高速磁盘

缓存区管理: 

通道:建立独立的I/O操作,即不仅是数据的传送能够独立于CPU,将IO的一系列操作独立于CPU,确保CPU有更多的时间进行数据处理。本质为
特殊的处理机,具有执行I/O指令的能力。

设备独立性:用户程序中使用的设备独立于具体的物理设备

为了实现设备独立性而引入了逻辑设备和物理设备
这两个概念。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能。

三种设备:

    独占设备:进程应互斥地访问这类设备,即系统一旦把这类设备分配给了某进程后,便由该进程独占。

   
共享设备:数据和程序的并发共享带来效率和方便。为了在解决设备与CPU的速度匹配问题上使设备和CPU的利用率达到最大程度,即优化性能,系统希望根据每个设备的特征来全局调度安排设备的操作。

    虚拟设备:提高慢速独占设备的利用率。

控制方式:

    使用轮询可编程式I/O控制方式

    使用中断可编程式I/O控制方式

    直接存储器(DMA)方式: I/O设备与存储设备进行数据交换不经过CPU

    I/O通道方式(最少):内存和外设数据的快速传输

                    通道程序是存放在主存中的

缓存:保存数据副本的高速内存区域,作为CPU 与I/O设备间信息的集散地。

为什么引入:

       1.缓解CPU与外设速度不匹配的问题。

       2.减少CPU中断响应次数,放宽响应时间。

       3.提高CPU与I/O设备,I/O设备之间的并行操作能力。

缓冲区的组织:

1.单缓冲区(single buffer)

2.双缓冲区(double  buffer)

3.循环缓冲(circular buffer)

当输入与输出的速度基本相配时,采用双缓冲能获得较好的效果。

但若两者的速度相差较大,双缓冲效果则不够理想。

4.缓冲池(buffer pool): 多个进程能有效地同时处理输入和输出

1.空闲缓冲区

2.装满输入数据的缓冲区

3.装满输出数据的缓冲区

缓冲池的工作方式 :

     1.收容输入(hin)工作方式(输入进程需要输入数据时)

     2.提取输入(sin)工作方式(计算进程需要输入数据时)

     3.收容输出(hout)工作方式(计算进程需要输出数据时)

     4.提取输出(sout)工作方式(输出进程需要输出数据时)

输入输出设备   缓冲池   用户程序

收容:数据流向为输入输出设备与用户程序到缓冲池

提取:数据流向为缓冲池到输入输出设备与用户程序                                   

输入:从左向右流动

输出:从右向左流动

虚拟设备管理基本思想:

用大容量的快速设备(磁盘)模拟慢速度的独占设备,把一台物理上的独占设备变为逻辑上的多台共享设备。

SPOOLing(虚拟设备技术):

     磁盘缓冲区—>用户进程申请—>打印

以空间换取时间

 1.输入井、输出井;    

 2.输入进程、输出进程;  

 3.I/O缓冲区

设备的分配和回收:

    设备控制表DCT:

    控制器控制表COCT

    通道控制表CHCT

    系统设备表SDT

独占设备:低速

八、文件系统:实现对文件的按名存取

文件结构:

1.逻辑结构:用户角度出发(例:流式文件)

2.物理结构:外存所形成

文件操作:

     创建:分配外存空间à目录项

     删除:找到目录项à收回分配外存空间

常用的文件存取方法:顺序存取、直接存取。

外存分配方法:

1、连续分配:将文件信息存放在连续编号的物理块中、磁带只适合顺序存储

       优点:结构简单,存取速度快,批量存取最佳

       缺点:长度事先确定,随后不允许增加长度。

2、链接分配:将文件信息存放在非连续编号的物理块中,文件随机存取时必须按指针进行

           优点:插入、删除方便,文件长度可变。

           缺点:查找困难、读写硬盘上的物理记录时,效率最低

3、索引文件  

优点:可以随机存取。

缺点:增加空间的开销。

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

       1.基本信息:文件名、文件物理位置、文件的逻辑结构、文件的物理结构。

      2.存取控制信息:用户的存取控制权(S、O、G、W)。

      3.使用信息:文件建立、修改的日期时间,当前使用信息。

索引结点:为了提高检索的速度,减少所需内存空间,将文件的描述信息单独构成一个数据结构

空闲存储空间的管理方法:

1、空闲表法

2、空闲链表法

3、位示图法

4、成组链接法

多种资源的银行家算法

显式链接:一个磁盘块内记录很多指针,指向文件数据块

隐式链接:磁盘块储存文件数据和指针,直接通过链表串起来

可变分区存储管理

1.可变式分区是指在作业装入时,依据它对内存空间实际的需求量来划分内存的分区,

   因此,每个分区的尺寸与进入它的作业大小相同。

2.它能有效解决固定式分区的内部碎片问题,是一种较为实用的存储管理方法。

3.因为在系统运行过程中,内存中分区的数目和大小都是可变的,所以这种可变式分区也称为动态分区。

文件共享:

判断题:

文件目录通常是存放在磁盘上的当文件很多时,文件目录可能会占用大量盘块。

文件系统为每个文件创建一张打开索引表存放该文件属性和文件在磁盘的存放位置等信息。

文件系统中分配存储空间的基本单位是盘块。

文件存储空间的管理实质上是个空闲块的组织和管理问题,包括空闲块组织,空闲块的分配和空闲块的回收等几个问题。

三级索引需要访问4次磁盘,3次磁盘索引块,1次读取数据。

物理文件的组织方式与外存的组织方式有关。

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信