1、测试题要搞明白 点击可得测试题详解
2、操作系统的四个基本特征,基本功能
操作系统的目标:方便性、有效性、可扩充性、开放性。
操作系统的四大基本特征:1、并发2、共享3、虚拟4、异步;
操作系统的五大功能分别是处理器管理、存储器管理、设备管理、文件管理和(作业管理)。
1、处理器管理
处理器管理最基本的功能是处理中断事件,配置了操作系统后,就可对各种事件进行处理。处理器管理还有一个功能就是处理器调度,针对不同情况采取不同的调度策略。
2、存储器管理
存储器管理主要是指针对内存储器的管理。主要任务是分配内存空间,保证各作业占用的存储空间不发生矛盾,并使各作业在自己所属存储区中不互相干扰。
3、设备管理
设备管理是指负责管理各类外围设备,包括分配、启动和故障处理等。主要任务是当用户使用外部设备时,必须提出要求,待操作系统进行统一分配后方可使用。
4、文件管理
文件管理是指操作系统对信息资源的管理。在操作系统中,将负责存取的管理信息的部分称为文件系统。文件管理支持文件的存储、检索和修改等操作以及文件的保护功能。
文件逻辑结构分类
按文件的有无结构分:1:有结构文件(记录式文件) 2:无结构文件(流式文件) 按文件组织方式分: 1:顺序文件,2:索引文件,3:索引顺序文件
5、作业管理
每个用户请求计算机系统完成的一个独立的操作称为作业。作业管理包括作业的输入和输出,作业的调度与控制,这是根据用户的需要来控制作业运行的。
3、多道批处理系统、分时系统、实时系统为什么引入,以及特征
为什么引入多道批处理系统:为了进一步提高资源的利用率和系统吞吐量。特点:(优点:)资源利用率高、系统吞吐量大、(缺点:)平均周转时间长、无交互能力。
为什么引入分时系统:为了满足用户对人—机交互的需求。特点:多路性、 独立性、及时性、交互性。
为什么引入实时系统:为了满足实时控制和实时信息处理两个领域的要求。特点:时间约束性、可预测性、可靠性、交互性、多路性、独立性、及时性。
1.多道批处理系统
在单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中的所有资源,致使系统性能较差。
在多道批处理系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”。然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。其优缺点为:
(1)资源利用率高;
(2)系统吞吐量大:系统吞吐量是指系统在单位时间内所完成的总工作量。能提高系统吞吐量的主要原因可归纳为:第一,CPU和其它资源保持“忙碌”状态;第二,仅当作业完成时或运行不下去时才进行切换,系统开销小;
(3)平均周转时间长;
(4)无交互能力。
2.分时系统
分时系统与多道批处理系统之间有着截然不同的性能差别,它能很好地将一台计算机提供给多个用户同时使用,提高计算机的利用率。分时系统是指,在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。其特征为:
(1)多路性:允许在一台主机上同时联接多台联机终端,系统按分时原则为每个用户服务。
(2)独立性:每个用户各占一个终端,彼此独立操作,互不干扰。
(3)及时性:用户的请求能在很短的时间获得响应。
(4)交互性:用户可通过终端与系统进行广泛的人机对话。
3.实时系统
所谓“实时”,是表示“及时”,而实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行。其应用需求主要在实时控制和实时信息处理。将作业按照它们的性质分bai组(或du分批),然后再成组(或成批zhi)地提交给dao计算机系统,由计算机自动完成后再输出结果,从而减少作业建立和结束过程中的时间浪费。根据在内存中允许存放的作业数,批处理系统又分为单道批处理系统和多道批处理系统。
优缺点
现在的批处理系统主要指多道批处理系统,它通常用在以科学计算为主的大中型计算机上,由于多道程序能交替使用CPU,提高了CPU及其他系统资源的利用率,同时也提高了系统的效率。多道批处理系统的缺点是延长了作业的周转时间,用户不能进行直接干预,缺少交互性,不利于程序的开发与调试。
特点
多道-在内存中同时存放多个作业,使之同时处于运行状态,这些作业共享CPU和外部设备等资源。
成批-用户和他的作业之间没有交互性。用户自己不能干预自己的作业的运行,发现作业错误不能及时改正
便于多用户对一个终端同时进行操作。
4、进程同步机制四条基本准则,要明白其含义
空闲让进、忙则等待、有限等待、让权等待。
进程在并发执行i时为了保证结果的可再现性,各进程执行序列必须加zhi以限制以保证互斥地使用临界资源,相互合作完成任务。多个相关进程在执行次序上的协调称为进程同步。用于保证多个进程在执行次序上的协调关系的相应机制称为进程同步机制。
所有的进程同步机制应遵循下述四条准则:
空闲让进
当无进程进入临界区时,相应的临界资源处于空闲状态,因而允许一个请求进入临界区的进程立即进入自己的临界区。
忙则等待
当已有进程进入自己的临界区时,即相应的临界资源正被访问,因而其它试图进入临界区的进程必须等待,以保证进程互斥地访问临界资源。
有限等待
对要求访问临界资源的进程,应保证进程能在有限时间进入临界区,以免陷入“饥饿”状态。
让权等待
当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入忙等。
5、记录型信号量PPT好好看看,理解信号量含义,PV具体操作
S是与临界区内所使用的的公有资源有关的信号量;
wait(s) :即P操作,表示申请一个资源;
signal(s):即V操作,表示释放一个资源;
初始化指定一个非负整数值,表示空闲资源总数;
在信号量经典定义下,信号量s的值不可能为负值;
S≥0时 S表示可供并发使用的资源数;
S<0时 其绝对值表示等待使用该资源的进程个数。
在信号量机制中,除了需要一个用于代表资源数目的整型变量value外,还有一个进程链表L,用于链接所有等待该信号量代表资源的进程。
记录型数据结构描述typedef struct {int value;list of process *L;}sem
wait操作(P操作)
申请一个资源,得到继续,得不到阻塞,可描述为if(s.value>0)s.value--;if(s.value≤0)s.value--;block(s.L);简练为: s.value--;if(s.value<0)block(s.L);wait原语:
void wait(static semaphore s)
{s.value--;if (s.value<0)block(s.L);}
signal操作(V操作)
释放一个资源,有进程等待则唤醒一个(被唤醒的进程进入就绪状态),可描述为if(s.value≥0)s.value++;if(s.value<0)s.value++;wakeup(s.L);简练为: s.value++;if(s.value≤0)wakeup(s.L);signal原语void signal(static semaphore s)
{s.value++;if (s.value≤0)wackup(s.L);}
tips:P、V操作必须成对出现。缺少P操作,将导致系统混乱,无法保证互斥;缺少V操作,临界资源得不到释放,从而使因等待该资源而阻塞的进程不再被唤醒。一般互斥信号量初始值都设置为1。
6、死锁的概念,产生死锁的四个必要条件(充分理解),处理死锁的四种方法
概念:死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。 也就是说,一组等待的进程,其中每一个进程都持有资源,并且等待着由这个组中其他进程所持有的资源。这时这组进程就处于死锁状态。
定义:所谓死锁是指在多道程序系统中,一组进程中的每一个进程均无限期地等待被该组进程中的另一个进程所占有且永远不会释放的资源;这种现象称系统处于死锁状态,简称死锁。处于死锁状态的进程称为死锁进程。 死锁发生后,死锁进程将一直等待下去,发生死锁时死锁进程至少有两个;所有死锁进程都在等待资源,并且其中至少有两个进程已占有资源。死锁不仅会浪费大量系统资源,甚至会导致整个系统崩溃,带来灾难性后果。
产生死锁的四个必要条件:互斥、请求和保持、不可抢占、循环等待。
处理死锁的四种方法:目前处理死锁的方法可归结为五种:鸵鸟策略、预防死锁、避免死锁、检测死锁、 解除死锁。
※忽略这个问题,假装系统中从未出现过死锁。这个方法被大部分的操作系统采用,包括UNIX)鸵鸟策略
※ (确保系统永远不会进入死锁状态)预防死锁,避免死锁
※允许系统进入死锁状态,然后恢复系统)死锁检测 (静态分配、可剥夺、有序分配)
什么是死锁,死锁产生的4个条件
死锁定义:
在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是两个或多个进程被无限期地阻塞、相互等待的一种状态。
产生条件:
1:互斥条件 – 一个资源一次只能被一个进程使用
2:请求保持条件– 一个进程因请求资源而阻塞时,对已经获得资源保持不放
3:不可抢占条件 – 进程已获得的资源在未使用完之前不能强行剥夺
4:循环等待条件 – 若干进程之间形成一种头尾相接的循环等待资源的关系
预防避免死锁的方法
1:破坏“请求和保持”条件:规定所有进程在开始运行之前,都必须一次性的申请其在整个运行过程所需要的全部资源。
优点:简单,安全。 缺点:资源严重浪费,恶化了系统的利用率;
2:破坏“不剥夺”条件:进程逐个的提出资源请求,当一个已经保持了某些资源的进程,再提出新的资源请求而不能立即得到满足时,必须释放它已经保持了的所有资源,待以后需要时再重新申请。
缺点:实现复杂,代价大,反复地申请和释放资源,而使进程的执行无限的推迟、延长了进程的周转时间增加系统开销、降低系统吞吐量。
3:破坏“环路等待”条件:将所有的资源按类型进行线性排队,并赋予不同的序号。所有进程请求资源必须按照资源递增的次序提出,防止出现环路。
缺点:1、序号必须相对稳定,限制了新设备类型的增加2、作业(进程)使用资源顺序和系统规定的顺序不同而造成资源的浪费3、限制了用户编程
注意:由于互斥条件是非共享设备所必需的,不能改变
死锁预防:破坏产生死锁的四个必要条件之一
死锁预防是计算机操作系统,在设计时确定资源分配算法,为保证不发生死锁,而破坏产生死锁的必要条件的行为过程。
破坏“互斥”条件
就是在系统里取消互斥。若资源不被一个进程独占使用,那么死锁是肯定不会发生的。
但一般来说在所列的四个条件中,“互斥”条件是无法破坏的。因此,在死锁预防里主要是破坏其他几个必要条件,而不去涉及破坏“互斥”条件。
.破坏“占有并等待”条件
破坏“占有并等待”条件,就是在系统中不允许进程在已获得某种资源的情况下,申请其他资源。即要想出一个办法,阻止进程在持有资源的同时申请其他资源。
方法一:
创建进程时,要求它申请所需的全部资源,系统或满足其所有要求,或什么也不给它。这是所谓的 “ 一次性分配”方案。
方法二:
要求每个进程提出新的资源申请前,释放它所占有的资源。这样,一个进程在需要资源S时,须先把它先前占有的资源R释放掉,然后才能提出对S的申请,即使它可能很快又要用到资源R。
破坏“不可抢占”条件
破坏“不可抢占”条件就是允许对资源实行抢夺。
方法一:如果占有某些资源的一个进程进行进一步资源请求被拒绝,则该进程必须释放它最初占有的资源,如果有必要,可再次请求这些资源和另外的资源。
方法二:如果一个进程请求当前被另一个进程占有的一个资源,则操作系统可以抢占另一个进程,要求它释放资源。只有在任意两个进程的优先级都不相同的条件下,方法二才能预防死锁。
破坏“循环等待”条件
破坏“循环等待”条件的一种方法,是将系统中的所有资源统一编号,进程可在任何时刻提出资源申请,但所有申请必须按照资源的编号顺序(升序)提出。这样做就能保证系统不出现死锁。
7、响应比公式,课本98页
响应比 =(等待时间+要求服务时间) / 要求服务时间;Q:一个作业8:00到达系统,估计运行时间为1小时,若10:00开始执行该作业,其响应比为( 3 )。(2+1)/1=3
8、动态分区分配算法思想
由于动态分区分配不是事先划分好区域,而是“按需分配”,所以不会出现区域划分出去后无法完全得到利用的情况,也即不会产生内部碎片;但是可能出现内存空间太小而无法被分配出去的情况,也即可能产生外部碎片。
9、磁盘的3种文件物理结构,好好看看第八章PPT
文件的物理结构:文件在物理存储空间中的存放方法和组织关系。文件的物理结构与存储设备的特性有很大关系。文件的存储设备通常划分为大小相等的物理块,物理块是分配及传输信息的基本单位。一个物理块中可以存放若干个逻辑记录,一个逻辑记录也可以存放在若干个物理块中。
顺序/连续文件:将一个文件中逻辑上连续的信息存放到磁盘上的依次相邻的块上便形成顺序结构,这类文件叫顺序/连续文件, 文件控制块需要记录该文件第一个盘块的盘块号和文
长度。最简单的物理文件结构,它将逻辑上连续的文件信息依次存放在外存连续的物理块中。
优点:简单 支持随机存取和顺序存取、顺序存取速度快、所需的磁道寻道次数和寻道时间最少。
缺点:要求有连续的存储空间,出现许多外部碎片、必须事先知道文件的长度、不能灵活地删除和插入记录、不支持动态扩充。
链接/串联文件:顺序的逻辑记录被存放在不连续的磁盘块上,用指针把这些磁盘块按逻辑记录的顺序链接起来,则形成了文件的链接结构,链接结构的文件称为链接/串联文件。
优点:消除了外部碎片、显著地提高外存,空间的利用率、无需事先知道文件长度 、对文件的增、删、改很容易。
最大的缺点是不支持随机存取。
索引文件:顺序结构支持随机存取,但有外碎片;链接结构没有外碎片,但不能直接存取; FAT可以随机存取,但需要占用较大的内存空间;事实上,打开某个文件时,只需知道该文件所在的盘块号;一个文件的信息存放在若干不连续物理块中,系统为每个文件建立一个索引表,并将这些块的块号存放在索引表中; 一个索引表就是磁盘块地址数组,其中第i个条目指向文件的第i块
定义:为每个文件分配一个索引块(用来存放索引的盘块),把分配给该文件的所有盘块号都记录在该索引块中,按照这种分配方式存储的文件就是索引文件 。索引分配支持随机存取而没有外碎片,但需要索引表(索引表需要占内存空间)。
保持链接结构的优点,又克服了其缺点。
优点:既能顺序存取又能随机存取、满足了文件动态增长/插入删除要求、能充分利用外存空间。
缺点:较多的寻道次数和寻道时间、索引表本身带来了系统开销,如:内外存空间,存取时间 。
10、文件存储空间的管理概念,四种方法
空闲表法(空闲文件目录、空闲区索引法):属于连续分配方式,它与内存的动态分配方式雷同,它为每个文件分配一块连续的存储空间。.空闲文件目录适用于连续文件结构的文件储存区的分配和回收.
空闲链表法(自由链法):是将所有的空闲盘区拉成一条空闲链。根据构成链的基本元素的不同,可有两种链表方式:空闲盘块链、空闲盘区链。
空闲盘块链
它是将磁盘上的所有空闲存储空间,以盘块为基本元素拉成一条链。优点是用于分配和回收一个盘块的过程非常简单;缺点是空闲盘块链可能很长。
空闲盘区链
这是将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链。在每个盘区上除了含有用于指示下一个空闲盘区的指针外,还应标有指明本盘区大小(盘块数)的信息。这方法分配和回收过程较复杂,但空闲盘区链较短。
位示图法:位示图是利用二进制的一位来表示磁盘中一个盘块的使用情况。用于分页式存储管理中内存空闲块的分配和回收
成组链接法空闲表法和空闲链表由于空闲表太长而不适合大型文件系统的使用。成组链接法是两种方法相结合的一种管理方法,兼备了两种方法的优点而克服了两种方法的缺点。其大致的思想是:把空闲的n个顺序(可以是地址,也可以说是其他)空闲扇区的地址保存在其第一个空闲扇区内,其后一个空闲扇区内则保存另一组顺序空闲扇区的地址,以此类推,直至所有空闲扇区都予以链接。
进程的特征与三种基本状态
1、特征:
1:动态性,2:并发性,3:独立性,4:异步性。
2、状态:
1:就绪状态 当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。
2:执行状态 当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。
3:阻塞状态 正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。
3、三种基本状态转换:
(1) 就绪→执行
处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。
(2) 执行→就绪
处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。
(3) 执行→阻塞
正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。
(4) 阻塞→就绪
处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。
在引入挂起原语Suspend和激活原语Active后,在它们的作用下,进程将可能发生以下几种状态的转换:
(1) 活动就绪→静止就绪。
(2) 活动阻塞→静止阻塞。
(3) 静止就绪→活动就绪。
(4) 静止阻塞→活动阻塞。
12、程序的装入方式,好好看第四章PPT
用户程序要在系统中运行,必须先将它装入内存,然后再将其转变为一个可以执行的程序,通常都要经过以下几个步骤:
(1) 编译,由编译程序对用户源程序进行编译,形成若干个目标模块;
(2) 链接,由链接程序将编译后形成的一组目标模块以及它们所需要的库函数链接在一起,形成一个完整的装入模块;
(3) 装入,由装入程序将装入模块装入内存。
在将一个装入模块装入内存时,可以有如下三种装入方式:
绝对装入方式(单道程序环境);
静态可重定位装入方式(多道程序环境);
动态运行时装入方式(运动中移动位置)。
13、几种页面置换算法理解
最佳置换算法
方法:淘汰那些以后永不使用,或者是在最长时间内不再被访问的页。可以保证获得最低的缺页率。
实现:确定要替换的时刻t;找出主存中每个页将来要用到的时刻ti;ti -t最大的页将被替换。
特点:命中率高,但难于实现(必须运行一遍,才能知道未来的时刻ti),是理想算法,只能作为其它置换算法的衡量标准 。
先进先出(FIFO)页面置换算法
方法:最早装入主存的页作为被替换的页,即选择在内存中驻留时间最久的页面予以淘汰。
实现:只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总可以指向最老的页面。
特点:利用历史信息,但不反映程序的局部性(最先进入的页可能是现在经常使用的页)。
LRU(Least Recently Used)置换算法
方法:近期最久未访问过的页作为被替换的页。
实现:赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,当须淘汰一个页面时,选择现有页面中其t值最大的页面予以淘汰。
特点:根据“历史”预测“未来”。 LRU算法是较好的一个算法,但是开销太大,要求系统有较多的支持硬件(移位寄存器或栈)。
最少使用(Least Frequently Used,LFU)置换算法
在采用LFU算法时,应为在内存中的每个页面设置一个移位寄存器,用来记录该页面被访问的频率。该置换算法选择在最近时期使用最少的页面作为淘汰页。
简单的Clock置换算法
当利用简单Clock算法时,只需为每页设置一位访问位,再将内存中的所有页面都通过链接指针链接成一个循环队列。
在将一个页面换出时,如果该页已被修改过,便须将该页重新写回到磁盘上;但如果该页未被修改过,则不必将它拷回磁盘。换而言之,对于修改过的页面,在换出时所付出
的开销比未修改过的页面大,或者说,置换代价大。在改进型Clock算法中,除须考虑页面的使用情况外,还须再增加一个因素——置换代价。
改进型Clock置换算法
算法:对于修改过的页面,在换出时所付出的开销比未修改过的页面大,或者说,置换代价大。因此,对简单Clock置换算法进行了改进:增加了置换代价。选择换出页面时,既要是未使用过的页面,又要是未被修改过的页面,把同时满足两条件的页面作为首选被淘汰的页。
特点:该算法与简单Clock算法比较,可减少磁盘的I/O操作次数 ,但实现该算法本身的开销将有所增加。
页面缓冲算法
影响页面换进换出效率的若干因素:页面置换算法、写回磁盘的频率、读入内存的频率。
页面缓冲算法PBA
PBA算法的主要特点是:① 显著地降低了页面换进、换出的频率,使磁盘I/O的操作次数大为减少,因而减少了页面换进、换出的开销;② 正是由于换入换出的开销大幅度减
小,才能使其采用一种较简单的置换策略,如先进先出(FIFO)算法,它不需要特殊硬件的支持,实现起来非常简单。
1) 空闲页面链表
2) 修改页面链表
计算题
1、四种磁盘调度算法
例:若干个等待访问磁盘者依次要访问的磁道为20,44,40,4,80,12,76,假设每移动一个磁道需要3ms时间,移动臂当前位于40号磁道,请按下列算法分别计算为完成上述各次访问总共花费的寻道时间以及寻道次序。
(1)先来先服务算法;
(2)最短寻道时间优先算法。
(3)电梯SCAN调度
(4)CSCAN
详解:
FIFO先来先服务算法
按照顺序
磁道访问顺序:20、44、40、4、80、12、76
寻道时间=(20+24+36+76+68+64+4)*3=876
SSTF最短寻道时间优先算法。
选择从当前磁头位置所需寻到时间最短的请求
(简单来说:每次选择与上一次距离最近的点,画图,最后相加)
磁道访问顺序:40、44、20、12、4、76、80
寻道时间=(4+24+8+8+72+4)3 = 360*
电梯SCAN调度
扫描算法/电梯算法
与磁头当前移动方向一致,而且是离当前磁头最近的那个点。
(题目会给方向)指定了磁头朝磁道号减小的方向(0的方向)
磁道访问顺序:40、20、12、4、44、76、80
寻道时间=(20+8+8+40+32+4)*3 = 336
CSCAN 循环扫描算法(顺时针或逆时针走到黑)
提供更均衡的等待时间。
和SCAN不同的是:当它到了另一端,就立刻回到磁盘开始处。
(题目会给方向)规定磁头朝着磁道号增加的方向移动。
磁道访问顺序:40、44、76、80、4、12、20
寻道时间=(4+32+4+76+8+8)3=396*
2、磁盘索引组织方式中混合式索引(直接、一级、二级索引)
例:某文件系统采用索引文件结构,设文件索引表的每个表目占3个字节,存放一个盘块的块号,磁盘块大小为512B。试问该文件系统采用直接、二级和三级索引能管理的最大磁盘空间为多少字节?
答:计算索引表项的大小,索引表项=512/3≈170个
直接索引,每项对应一个物理块,能管理的最大磁盘空间=170*512B=87040B=85KB
二级索引,能管理的最大磁盘空间=170170512B=28900*512B=7255KB
三级索引,能管理的最大磁盘空间=170170170512B=4913000512B=2456500KB
3、请求分页系统,页面置换算法缺页率
例:在一个请求分页存储系统中,一个进程的页面走向为4,3,2,1,4,3,5,3,2,1,设分配给该进程的内存块数M=4,采用FIFO和LRU页面置换算法(每调进一个新页认为发生一次缺页中断)。计算缺页次数和缺页率(写出计算过程)。
答案:
详解:(是该题的变形,思路都一样的)
假设一个进程的逻辑空间为n页,系统为其分配的内存物理块数为m(m<n)。
S:进程运行的过程中,访问页面的次数。
F:访问页面失败的次数为F。
A:该进程总的页面访问次数A=S+F。
那么该进程在其运行过程中的缺页率:f=F/A=F/(S+F) (失败/总访问)
FIFO先进先出页面置换算法:
最早装入主存的页被作为替换的页。(往回看,谁先进来把谁先换下来,从前往后看当碰到i的时候,往i的前面看而不是后面看)
页面置换看红色的数字个数。
LRU置换算法(最近最久未使用置换算法):
当需要淘汰一个页面时,选择现有页面中其t值最大的页面淘汰。
响应比 = (等待时间+要求服务时间) / 要求服务时间 = 响应时间 / 执行时间
4、信号量wait,signal操作,参考用记录型信号量解决生产者-消费者问题
注意:英文单词统一小写,括号用英文括号。
问题:
有一群生产者进程在生产产品,并将这些产品提供给消费者进程去消费。为使生产者进程与消费者进程能并发执行,在两者之间设置了一个具有n个缓冲区的缓冲池,生产者进程将其所生产的产品放入一个缓冲区中;消费者进程可从一个缓冲区中取走产品去消费。尽管所有的生产者进程和消费者进程都是以异步方式运行的,但它们之间必须保持同步,既不允许消费者进程到一个空缓冲区去取产品,也不允许生产者进程向一个已装满产品且尚未被取走的缓冲区投放产品。
注意:
生产者与消费者进程对资源信号量的申请与释放情况刚好相反(生产者是申请空,释放满;消费者是申请满,释放空)。
应先执行对资源信号量的申请,然后再对互斥信号量进行申请操作,否则会因起死锁(如果先申请互斥信号量再申请资源信号量,则可能发生一个进程申请互斥信号量成功,得到临界资源,再申请资源信号量失败,导致该进程带着临界资源进入阻塞状态,造成死锁)。
解答代码:
int in = 0, out = 0;//in: 输入指针, out: 输出指针;
item buffer[n];//n个缓冲区组成的数组;
semaphore mutex = 1, full = 0, empty = n;
//mutex: 互斥信号量, 生产者进程和消费者进程都只能互斥访问缓冲区;
//full: 资源信号量, 满缓冲区的数量;
//empty: 资源信号量, 空缓冲区的数量;//信号量不允许直接参与运算, 故都要定义;//生产者程序;
void Producer() {do {生产者生产一个产品nextp;wait(empty);//申请一个空缓冲区;wait(mutex);//申请临界资源;buffer[in] = nextp;//将产品添加到缓冲区;in = (in + 1) % n;//类似于循环队列;signal(mutex);//释放临界资源;signal(full);//释放一个满缓冲区;} while (TRUE);
}//消费者程序;
void Producer() {do {wait(full);//申请一个满缓冲区;wait(mutex);//申请临界资源;nextc = buffer[out];//将产品从缓冲区取出;out = (out + 1) % n;//类似于循环队列;signal(mutex);//释放临界资源;signal(empty);//释放一个空缓冲区;消费者将一个产品nextc消费; } while (TRUE);
}
分页存储管理方式
分页存储的基本方法:
1:页面和物理快 页面:分页存储管理将进程的逻辑地址空间分成若干页,并从0开始编号,把内存的物理地址分成若干块(物理快)
2:地址结构: 页号P ----- 偏移量W(包括页号P和偏移量W),对于特定的机器其地址结构一定,给定逻辑地址A,页面的大小为
L,则页号P和页内地址D有一下关系:P = int[A/L]; d=[A] MOD L 例如:页面大小1kb A=2170B 得:p=2 d=122
3:页表:记录相应页在内存中对应的物理块号
4:地址转换机构:将用户逻辑空间的地址,转变为空间中的物理地址
临界资源
一次仅允许一个进程使用的资源称为临界资源。输入机、打印机、磁带机等。
各进程采取互斥的方式,实现共享的资源称作临界资源。
在每个进程中访问临界资源的那段代码称为临界区。
动态分区分配算法
首次适应算法、循环首次适应算法、最佳适应算法:从最小的分区开始分配、最坏适应算法:从最大的分区开始分配、快速适应算法/分类搜索法:将空闲分区根据其容量的大小进行分类。
磁盘文件的物理结构
连续文件、顺序文件、链接文件(隐式链接、显式链接)、索引文件。
进程和程序
进程是程序的一次执行。
进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
进程特点:具有程序没有的PCB结构、动态性、并发性、独立性、异步性。
进程之间存在的两种形式制约关系
间接相互制约关系:间接相互制约源于资源共享。(资源:临界资源。)
直接相互制约关系:主要源于进程间的合作。
同步、互斥
同步:因合作进程之间协调彼此的工作而控制自己的执行速度,即因相互合作,相互等待而产生的制约关系。
互斥:进程之间竞争临界资源而禁止两个以上的进程同时进入临界区所发生的制约关系。