(考研复试)操作系统笔记

合集下载

考研复试面试准备——操作系统篇

考研复试面试准备——操作系统篇

考研复试⾯试准备——操作系统篇⽬录第1章——计算机系统概述什么是操作系统控制和管理整个计算机系统硬件和软件资源,合理组织、调度计算机的⼯作与资源分配,进⽽为⽤户和其他软件提供⽅便接⼝和环境的程序集合操作系统的功能1. 管理计算机资源(处理机、存储器、⽂件、设备)2. 作为⽤户和硬件之间的接⼝3. ⽤作扩充机器多道批处理系统是什么,以及其特点将作业成批送进内存,并由作业调度程序⾃动选择作业运⾏特点:多道、宏观并⾏、微观串⾏、⽆⼈机交互、响应时间长分时操作系统是什么,以及特点将处理器运⾏时间分成很短的时间⽚,按时间⽚轮流把处理器分配给各联机作业使⽤特点:多⽤户、⼈机交互、响应时间短并⾏与并发的区别并⾏指同⼀时刻发⽣,并发指同⼀时间段发⽣什么是访管指令、访管中断⽤户在⽤户态执⾏访管指令,产⽣访管中断,进⼊内核态什么是特权指令、⾮特权指令在⽤户态下执⾏的是⾮特权指令,在内核态下执⾏的是特权指令异常和中断的区别异常(内中断):源于CPU执⾏指令内部的事件(缺页、访管指令,算数溢出)中断(外中断):来⾃CPU执⾏指令以外的事件,与当前运⾏的程序⽆关(时钟中断)什么是系统调⽤,它的作⽤是什么指⽤户在程序中调⽤操作系统提供的⼦功能,通过执⾏访管指令来发起系统调⽤避免⽤户直接执⾏系统特权指令第2章——进程管理为什么引⼊进程的概念多道程序技术背景下,多个程序的并发执⾏会产⽣相互制约的问题,此时,程序这⼀静态的概念⽆法描述这⼀并发过程中的状态,因此引⼊进程,更好地描述和控制程序的并发执⾏,实现操作系统的并发性和共享性什么是进程、进程映像(进程实体)、PCB进程是具有独⽴功能的程序在⼀个数据集合上运⾏的过程,是系统进⾏资源分配和调度的⼀个独⽴单位,是动态的进程映像是由程序段、相关数据段和PCB构成,是静态的,代表某⼀时刻进程的状态PCB是⽤于描述进程状态的数据结构,是进程存在的唯⼀标志进程的状态和转换进程和程序有什么区别1. 进程是程序及其数据在计算机上运⾏的⼀段过程,是动态的。

操作系统考研复试复习-2

操作系统考研复试复习-2

操作系统考研复试复习-2第⼆部分:进程管理回答问题应该从是什么,为什么,如果是⼀种解决问题的⽅案就说有什么优点,有什么缺点的顺序进⾏思考和回答;如果是⼀种问题就说解决问题的⽅法有哪些?1,关于进程1,是什么?进程就是运⾏中的程序,是资源分配和调度(没有线程的话)的独⽴单位。

进程实体(进程映像)=PCB+程序段+相关数据段PCB是什么?PCB是记录进程信息的数据结构,是OS为管理进程的调度和运⾏⽽创建的,每⼀个进程都有⼀个对应的PCB,随着进程的创建⽽创建,消失⽽消失,是进程存在的唯⼀标志。

2,为什么要有进程?因为现代操作系统需要实现CPU的虚拟化,即⼀个CPU等于逻辑上的多个CPU,需要实现多个程序在⼀段时间间隔内同时运⾏,所以同⼀段时间中可能有多个程序在电脑上切换运⾏(为了实现并发),会破坏程序之间的封闭性,需要有个数据结构来划分清除程序之间的界限。

3,单个进程的状态转换创建态:为进程创建PCB,分配资源和内存空间就绪态:加⼊相应的就绪队列中,等待上CPU运⾏(所有的资源只差CPU)执⾏态:在CPU上运⾏阻塞态:进程调⽤了系统调⽤,申请某个资源(等待资源),是主动⾏为,当资源到来时进⼊就绪态终⽌态:执⾏完毕,或异常结束。

如何控制进程之间的状态转换呢?利⽤原语来实现:原语是⼀种执⾏期间不允许中断,不可分割的程序段。

(不可分割可以⽤开中段和关中断)4,多个进程之间的通信进程之间是如何配合的?(1)共享存储:低级:基于数据结构速度较慢⾼级:基于存储区速度较快(2)消息传递:直接通信⽅式:直接发送给接收进程,并挂⼊其消息缓冲队列上间接通信⽅式:通过中间实体:信箱,来传递消息(3)管道通信:通过Pipe⽂件来实现,半双⼯通信pipe⽂件的性质:pipe为⼀⽚内存缓冲区,读⽂件为⼀次性操作,读出就消失(允许⼀个读,多个写)当pipe为空的时候,读进程被阻塞,当pipe⽂件满的时候,写进程被阻塞2,关于线程是什么?在有线程的计算机中,线程是调度的基本单位(线程是处理机的分配单元),⽽进程只是资源分配的基本单位,线程⾃⼰不拥有资源,与其它线程共享进程资源。

操作系统考研复试知识点

操作系统考研复试知识点
操作系统是计算机科学中的重要领域,考研复试时可能会涉及到以下知识点:
1.
操作系统的基本概念:包括操作系统的定义、功能、发展历程等。
2.
3.
进程管理:包括进程的定义、进程状态、进程控制块、进程调度算法、进程同步、进程通信等。
4.
5.
内存管理:包括内存的分配方式、地址映射、虚拟内存、页面置换算法、内存保护等。
6.
7.
文件系统管理:包括文件的组织方式、文件的存储管理、文件的操作和保护、磁盘调度算法等。
8.
9.
设备管理:包括设备的定义、设备的分配和释放、设备的控制方式、设备驱动程序等包括访问控制、安全策略、用户认证、加密等。
12.
13.
操作系统的性能优化:包括系统调用的优化、进程调度算法的优化、内存管理的优化等。
14.
15.
分布式操作系统:包括分布式系统的定义、分布式系统的组成、分布式操作系统的架构等。
16.
17.
操作系统的应用:包括嵌入式操作系统、实时操作系统、移动操作系统等。
18.
以上是操作系统考研复试可能涉及到的一些知识点,考生可以根据自己的实际情况进行有针对性的复习。

操作系统复习笔记

操作系统复习笔记

操作系统复习笔记1. 操作系统概述操作系统是计算机系统中的关键部分,负责管理和协调硬件资源、提供用户和应用程序的接口,并执行各种系统任务。

它为计算机用户提供了一个友好的界面,使得用户可以方便地操作计算机。

操作系统主要由内核和外壳组成,内核负责管理和控制系统的各种资源,外壳则提供用户与系统的交互界面。

2. 操作系统的功能2.1 进程管理操作系统负责创建、调度和终止进程。

进程是一个程序的执行实例,操作系统通过分配时间片和控制进程的状态来实现多任务处理。

2.2 内存管理操作系统管理计算机的内存资源,包括内存的分配、回收和保护。

通过内存管理,操作系统可以为每个进程分配适当的内存空间,使得进程之间不会相互干扰。

2.3 文件系统管理操作系统负责管理计算机中的文件系统,包括文件的创建、删除、修改和访问控制等。

通过文件系统管理,用户可以方便地进行文件的存储和查找。

2.4 设备管理操作系统管理计算机中的各种硬件设备,包括输入输出设备、磁盘驱动器等。

它负责对设备进行初始化、分配和控制,以满足用户的需求。

3. 进程管理3.1 进程状态进程有五种状态:新建、运行、阻塞、准备和终止。

新建状态表示进程正在被创建,运行状态表示进程正在执行,阻塞状态表示进程正在等待某个事件的发生,准备状态表示进程已经准备好运行但还未获得时间片,终止状态表示进程已经完成任务或被终止。

3.2 进程调度操作系统根据调度算法来选择下一个要执行的进程。

常见的调度算法有先来先服务、短作业优先和时间片轮转等。

不同的调度算法有不同的优缺点,可以根据实际需求选择适合的算法。

4. 内存管理4.1 内存分区内存分区是将计算机的物理内存划分为不同的区域,每个区域用于存放一个进程或多个进程。

常见的内存分区方式有固定分区和动态分区两种。

4.2 分页和分段分页和分段是常见的内存管理技术。

分页将进程的逻辑地址空间划分为固定大小的页,物理内存也被划分为相同大小的页框,进程的页与页框进行映射。

操作系统考研知识点必背

操作系统考研知识点必背

操作系统考研知识点必背操作系统考研知识点如下:操作系统概述随着计算机的发展,计算机系统的硬件和软件资源越来越丰富。

为了提高这些资源的利用率和增强系统的处理能力,出现了相应的操作管理程序,作为用户与计算机之间的接口。

操作系统(Operating System,OS)是计算机系统中最重要、最基本的系统软件,位于硬件和用户之间。

一方面,它能向用户提供接口,方便用户使用计算机;另一方面,它能管理计算机软、硬件资源,以便合理充分地利用它们。

根据考试大纲要求,*要求考生掌握以下知识点:(1)操作系统的概念、特征、功能和提供的服务;(2)操作系统的发展与分类;(3)操作系统的运行环境。

1.1 操作系统的基本概念操作系统的出现、使用和发展是近四十余年来计算机软件的一个重大进步,它的出现为人们使用各种各样的计算机奠定了重要基础。

1.1.1 操作系统概念计算机发展到今天,从个人机到巨型机,无一例外都配置一种或多种操作系统,操作系统已经成为现代计算机系统不可分割的重要组成部分,它为人们建立各种各样的应用环境奠定了重要基础。

计算机系统包括硬件和软件两个组成部分。

硬件是所有软件运行的物质基础,软件能充分发挥硬件潜能和扩充硬件功能,完成各种系统及应用任务,两者互相促进、相辅相成、缺一不可。

图1-1给出了一个计算机系统的软、硬件层次结构。

硬件层提供了基本的可计算性资源,包括处理器、寄存器、存储器,以及各种I/O设施和设备,是操作系统和上层软件赖以工作的基础。

操作系统层通常是最靠近硬件的软件层,对计算机硬件作首次扩充和改造,主要完成资源的调度和分配、信息的存取和保护、并发活动的协调和控制等许多工作。

操作系统是上层其他软件运行的基础,为编译程序和数据库管理系统等系统程序的设计者提供了有力支撑。

系统程序层的工作基础建立在操作系统改造和扩充过的机器上,利用操作系统提供的扩展指令集,可以较为容易地实现各种各样的语言处理程序、数据库管理系统和其他系统程序。

考研操作系统复习要点

考研操作系统复习要点

考研操作系统复习要点操作系统1.操作系统的定义、特征、功能?分类操作系统是计算机系统中的一个系统软件,是一些程序模块的集合——它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源; 合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能; 使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能高效地运行。

OS 有5个特征:并发、共享、虚拟、随机性和不确定性。

操作系统功能(按管理内容划分)1.进程和线程管理(CPU管理):完成处理机资源的分配调度等功能;2.存储管理:提高利用率、方便用户使用、提供足够的存储空间、方便进程并发运行;3.设备管理:方便的设备使用,提高CPU与I/O设备利用率;4.信息管理(文件管理):解决软件资源的存储、共享、保密和保护;5.用户接口(作业管理):提供一个友好的用户访问操作系统的接口。

2. 多道程序系统的特点,并行和并发的区别?多道程序设计是指允许多个程序同时进入内存并运行,是OS所采用的最基本、最重要的技术,引入目的是为了提高系统效率。

1)程序的并发(Concurrency)执行:一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠。

(强调时间段)2)程序的并行(parallel)执行:一组在逻辑上互相独立的程序或程序段在同一时刻同时执行。

(强调同一时刻),只能在多机系统中出现。

在单CPU多道程序系统中,进程被交替执行,表现出一种并发执行的外部特征,即使不能实现真正的并行处理,并且即使在进程间来回切换需要一定的开销,交替执行在处理效率和程序构造上还是带来了重要的好处。

多道批处理系统的特点优点:资源利用率高:CPU和内存利用率较高;作业吞吐量大:单位时间内完成的工作总量大;缺点:用户交互性差:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改;作业平均周转时间长:短作业的周转时间显著增长;3.常用OS的特点(批处理OS,分时OS,实时OS)?分时系统的优点多路性:多个用户同时工作,共享CPU和其它资源,充分发挥系统效率。

(考研复试)操作系统笔记培训资料

(考研复试)操作系统笔记培训资料

(考研复试)操作系统笔记1:操作系统的目标:提高资源利用率,提高系统吞吐量,使用户使用更方便,兼容新的计算机硬件和软件。

2:操作系统的作用:用户和计算机硬件之间的接口,使用户方便的操纵硬件,计算机系统的管理者,对计算机资源进行抽象。

3:计算机系统的发展:人工操作方式(穿孔卡片),单道批处理系统(每次只从磁盘中调入一个程序进内存),多道批处理系统(调入多个程序,CPU可以切换),分时操作系统(将一台主机给多个用户使用)实时操作系统(响应快,同时面对大量的远程终端)。

4:操作系统特点:并发,共享,虚拟(空分,时分),异步。

5:操作系统的功能:CPU管理(进程控制,同步,通信,调度),存储器管理(内存分配,内存保护,地址映射,内存扩充)设备管理(缓冲管理,设备分配,设备处理)文件管理(存储管理,目录管理,读写保护管理)接口(用户接口管理,程序接口管理)6:操作系统结构:模块化操作系统,分层式操作系统,C/S操作系统(分布式),微内核结构(建立在前三者的基础上,微内核只提高“最基本”的服务,进程调度、进程间通信、存储管理、处理I/O设备。

其他服务,如文件管理、网络支持等通过接口连到微内核,微内核具有良好的移植性)。

7:传统操作系统中,进程是资源分配和独立运行的基本单位。

8:为了并发才引入进程。

9:进程控制块PCB:是一个记录型数据结构,记录了操作系统所需的用户描述进程的当前状况和控制进程运行的全部信息,使一个在多道环境环境下不能独立运行的程序成为一个可以独立运行的基本单位。

系统创建一个进程的时候就要顺带着创建PCB,OS要调用一个进程的时候就要先查看PCB,系统将PCB组织成若干个链队列或索引表,PCB中有进程标识符,处理机状态,进程调度信息,进程控制信息等。

10:进程的特性:动态,并发,独立(独立运行,独立分配资源,独立接受调度),异步(不可预知的速度前进)。

11:进程的三种基本状态:就绪,阻塞,执行(就绪到执行到阻塞再回到就绪,执行可以直接回到就绪),此外还有挂起,创建,终止。

操作系统复习笔记内容概括

操作系统复习笔记内容概括
策略中, RM 策略是最优的.
4. RM 策略需要调度 个任务时, 最坏情况下的 CPU 利用率为
.
两个任务约为
, 无限多个任务时约为
.
3. 最早截止期限优先 (EDF)
三、内存管理
1. 内存管理: 管理所有和内存相关的操作和保存在主存中的资源, 使得多个进程能够使用主存和 资源.
6. 截止时间: 实时系统必须要满足截止时间.
7. 可预测性: 涉及多媒体的实时系统, 人的耳朵和眼睛十分灵敏, 所以进程调度必须是高度 可预测和有规律的.
2. 批处理系统的调度
1. 先来先服务 (FCFS, FIFO): 当新作业进入, 排到队尾; 当进程被堵塞, 就接着运行队 头任务; 当阻塞进程变为就绪时, 进入队尾.
3. 进程控制块 (PCB)
1. 在内核中, 每个进程都通过一个数据结构来保存它相关的状态, 如它的进程标识符 PID、 进程状态、虚拟内存状态、打开的文件等, 这个数据结构称为进程控制块 PCB.
4. 多道程序设计
1. 上下文切换
1. 将当前处理器的寄存器上下文保存到当前进程的系统级上下文的现场信息中;
3. 动态重定位: 使用基址寄存器和界限寄存器将每个进程的地址空间映射到物理内存的不同部分.
4. 连续内存分配:
1. 首次适配 (first fit): 沿着链表搜索, 直到找到一个空闲区.
2. 最佳适配 (best fit): 搜索整个链表, 找出能够容纳进程的最小空闲区.
3. 最差适配 (worst fit): 总是分配最大的可用空闲区.
2. 外部碎片: 与页相比, 段是不定长的, 多次替代和调换后, 就会形成空闲区, 这种现象称 为外部碎片. 这种现象可以通过内存紧缩来解决.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1:操作系统的目标:提高资源利用率,提高系统吞吐量,使用户使用更方便,兼容新的计算机硬件和软件。

2:操作系统的作用:用户和计算机硬件之间的接口,使用户方便的操纵硬件,计算机系统的管理者,对计算机资源进行抽象。

3:计算机系统的发展:人工操作方式(穿孔卡片),单道批处理系统(每次只从磁盘中调入一个程序进内存),多道批处理系统(调入多个程序,CPU可以切换),分时操作系统(将一台主机给多个用户使用)实时操作系统(响应快,同时面对大量的远程终端)。

4:操作系统特点:并发,共享,虚拟(空分,时分),异步。

5:操作系统的功能:CPU管理(进程控制,同步,通信,调度),存储器管理(内存分配,内存保护,地址映射,内存扩充)设备管理(缓冲管理,设备分配,设备处理)文件管理(存储管理,目录管理,读写保护管理)接口(用户接口管理,程序接口管理)6:操作系统结构:模块化操作系统,分层式操作系统,C/S 操作系统(分布式),微内核结构(建立在前三者的基础上,微内核只提高“最基本”的服务,进程调度、进程间通信、存储管理、处理I/O设备。

其他服务,如文件管理、网络支持等通过接口连到微内核,微内核具有良好的移植性)。

7:传统操作系统中,进程是资源分配和独立运行的基本单位。

8:为了并发才引入进程。

9:进程控制块PCB:是一个记录型数据结构,记录了操作系统所需的用户描述进程的当前状况和控制进程运行的全部信息,使一个在多道环境环境下不能独立运行的程序成为一个可以独立运行的基本单位。

系统创建一个进程的时候就要顺带着创建PCB,OS要调用一个进程的时候就要先查看PCB,系统将PCB组织成若干个链队列或索引表,PCB中有进程标识符,处理机状态,进程调度信息,进程控制信息等。

10:进程的特性:动态,并发,独立(独立运行,独立分配资源,独立接受调度),异步(不可预知的速度前进)。

11:进程的三种基本状态:就绪,阻塞,执行(就绪到执行到阻塞再回到就绪,执行可以直接回到就绪),此外还有挂起,创建,终止。

12:进程的创建:申请PCB,为新进程分配资源(子进程可以继承父进程,比如父进程打开的文件,和父进程的缓冲区等),初始化PCB,把新的进程插入队列。

13:进程的终止:找出PCB,读出进程状态,若进程在执行,就终止进程,若进程有子孙进程,还要把子进程终止。

收回资源,移出PCB。

14:进程的阻塞:停止执行,PCB插入阻塞队列,CPU给另外一个就绪进程。

15:进程的唤醒:从阻塞队列中移出,PCB插入就绪列队中。

16:临界资源是指每次仅允许一个进程访问的资源,每个进程中访问临界资源的那段代码叫做临界区。

17:整形信号量:用S表示资源数目,一个wait就资源减一,一个signal就资源加一。

其中执行wait前如果资源数小于0,就要一直等待下去,用while循环。

18:记录型信号量:防止进程一直while而等待,记录型信号量先S-1,然后判断S如果小于0了就调用block阻塞。

于是就会有很多进程被阻塞,于是创建一个进程链表指针,链接阻塞进程。

19:AND型信号量:一个进程需要多个临界资源,AND信号量控制多个临界资源,只有当所有的临界资源的S都大于1的时候,才允许执行并所有的S都减一。

20:信号量集:一个进程需要多个临界资源,而又有多个进程,信号量集就是为多个进程服务,只有这些进程都可以启动的时候才一起启动,每个资源都有不同的数量,所以有资源数目,需求数目,下限数目 si,ti,di….21:计算机把各种硬件和软件都用数据结构抽象的描述其资源特性,用少量信息和对资源所执行的操作来表征该资源,而忽略内部结构和细节特性。

同样,共享资源也用数据结构来表示,代表共享资源的数据结构,以及由对共享数据结构实施操作的一组过程所组成的资源管理程序,就是管程,管程把数据结构包起来。

只允许自己访问它,所有进程要访问临界资源都要通过管程。

而管程每次只允许一个进程进入管程,从而实现进程互斥。

22:生产者消费者问题:用一个数组代表n个缓冲区构成一个缓冲池,用mutex实现互斥,empty表示缓冲池中空缓冲区的数量,full表示满缓冲区的数量。

生产者方面,先wait (empty),一定要等到empty>0了,才执行empty--,才能执行下一句wait(mutex),当缓冲池中没人,mutex=1,于是通过,生产者把货物放进缓冲池,缓冲区数组下标加1,然后释放signal(mutex),然后signal(full)加1。

消费者就是先wait(full),然后wait(mutex),然后数组下标--,然后释放mutex和empty。

23:哲学家进餐:第i位哲学家要用到第i个筷子和第i+1个筷子,有多少个筷子就会有多少个信号量,用信号量数组来表示,第i个哲学家,要wait(s[i])wait(s[i+1]) 。

然后吃,然后释放两个信号量。

24:读者写者问题:只要有一个reader,writer就不允许。

设置两个信号量rmutex(表示有rmutex个人可以同时读)和wmutex,和readcount,readcount等于0的时候才允许写。

读者方面:首先wait(rmutex),通过后要做一个判断readcount=0,如果等于0,说明可能有进程在写,那么再wait(wmutex)(也就是说,如果有进程在写,就会导致wmutext等于0,那么这个wait就会阻塞),一直到没有进程在写了,然后readcount++,并释放rmutex,然后执行读操作,因为允许多个进程读,所以要释放rmutex,前面对于rmutex的执行仅仅是保证只有一个读进程对wmutex进行操作,此时wmutex是临界资源。

执行完了读操作以后,又要对wmutex进行判断,先readcount--,如果readcount=0,说明允许写了,于是就释放写进程,siganl(wmutex),这一步的前后依然要加上wait (rmutex)和signal(rmutex)。

写者很简单。

就是先wait (wmutex)然后执行写操作,然后signal(wmutex)25:进程通信:共享存储器系统(基于共享数据结构,基于共享存储区,通过关键字),消息传递系统(进程间的数据交换以格式化的消息为单位来传递,分为直接通信方式(直接发给目标进程)和间接通信方式(类似邮箱)),管道通信(直接连接读进程和一个写进程,把数据流入管道即可)。

26:处理机调度层次:高级调度(作业级调度,把外存作业调入内存,作业进入系统后,就分配一个JCB,系统对JCB 进行控制。

),低级调度(进程调度,保存处理机现场信息,选取进程,把处理机分配给进程,有抢占和非抢占两种),中级调度(把不能运行的进程调到外存去),27:调度算法要求:周转时间短,响应时间快,截止时间有保证,优先权,系统吞吐量高,处理利用率高,各资源平衡利用。

28:调度算法:先来先服务,短作业调度算法,优先权调度算法(抢占和非抢占),响应比优先调度算法(动态优先权,(等待时间+要求服务时间/等待时间)),时间片轮转法,多级反馈队列调度(按照每个优先级划分队列,程序一来,就是最高优先级队列,然后执行一个时间片,执行完以后放入下一个优先级队列,每个优先级队列的对应的时间片长度不一样优先级越高,就时间片越小)29:实时调度算法:要求系统处理能力强,大部分采用抢占式,具有快速切换机制。

最早截止时间优先EDF,最低松弛度优先级LLF(least laxity first)(紧急程度越高,就优先级越高,比如人物要在200ms内完成且自身时间就要100ms,这就是紧急程度。

)30:产生死锁的必要条件:互斥,请求和保持,不剥夺,环路等到。

31:预防死锁:摒弃“请求和保持”条件(运行之前申请到所有资源),摒弃不剥夺条件(当进程提出的资源请求得不到满足的时候,就放弃手上的所有资源),摒弃环路等待条件(所有进程都必须按照一定的顺序申请资源,比如打印进程必须先申请输入机,再申请打印机,再。

)32:银行家算法:维护6种数据结构。

(1)available[j]=K,表示系统中现在有空闲的J类资源K个。

(2)MAX[i][j]=K,表示进程i需要j类资源最多k个。

(3)allocation[i][j]=k,表示进程i已经得到j类资源k 个。

(4)need[i][j]=k,表示进程i还需要j类资源k个。

(5)work[j]=k,表示整个系统含有可用的j资源的数目k。

和available类似,只不过work用于安全性算法中。

(6)finish[i]=true,表示系统是否有足够多的资源分配给进程i执行时,进程i发出request[j]=k,表示要j资源k个,然后判断是不是request[j]《= need[i][j],如果不是就出错,如果是就判断request[j]《= available[j],如果不是就等待,如果是就试探分配资源,并修改available,allocation,need。

然后执行安全性算法,如果安全,就分配资源,如果不是,就恢复被修改的available,allocation,need,进程等待。

安全性算法:在所有进程中,找到一个进程,finish=false,并且need[i,j]《=work[i]。

如果没找到,if所有的finish都是true,就都处于安全状态,if need[i,j]》work[i] 说明系统不安全。

如果找到了,就work[i]= work[i]+ allocation[i][j] finish[i]=true 比如现在有01234 五个进程,ABC三种资源,维护maxallocation need available 4张表,首先对现在进行安全性算法,一开始 work=available finish都是false ,然后看work是不是大于0的need,发现小于,那么看1,work 大于1的need,于是执行1(不是真正的执行),然后收回1的资源,work变多了,然后判断是不是大于2的need,不大于,然后判断是不是大于3的need,大于,再收回3的allocation,然后判断是不是大于4的,大于,收回,再判断是不是大于0的,大于,收回,再判断是不是大于2的,大于,每次收回以后都要把finish=true,最后全部的finish 都是true这样就得到一个安全序列,13420。

下面就开始真正的执行,进程1发出request(1.0.2)小于need也小于available,说明可以分配,然后修改四个表,再判断分配给进程1后的安全性算法,得到一个安全序列。

进程4发出request(3.3.0),request(3.3.0)小于need但是大于available 由于1进程占据资源,于是进程4等待。

相关文档
最新文档