操作系统复习文档
引自https://blog.csdn.net/y_universe/article/details/78950927?tdsourcetag=s_pctim_aiomsg
操作系统复习文档
答案为个人理解,仅供参考,如有问题欢迎留言
在百度脑图放了个思维导图(建议使用谷歌Chrome浏览器浏览)
链接:
http://naotu.baidu.com/file/1f639c5b8fb28272cc9678358df4508f?token=aeeb10bce33223b2
密码:xixi ~ . ~
问题及解析:
重点题目:20、21、22、23、24、32、48、53、61、65
1、 什么是OS?其四大管理功能是什么?
(1)操作系统的描述性定义:操作系统是合理组织计算机的工作流程,有效控制和管理计算机系统的各类资源,并方便用户使用计算机的程序集合。它是一个最重要也是最基本的系统软件。
(2)四大管理功能:处理机管理、存储器管理、设备管理、文件管理。
2、为什么引入分时OS?
(答出分时OS的优点,解决了批处理OS的哪些缺点即可)
分时OS的优点:
(1)交互性。用户能够通过终端与系统进行广泛的对话
(2)及时性。终端用户的请求能在很短的时间内获得响应。
(3)独占性。每个用户各占一个终端,彼此独立操作,互不干扰,感觉好像自己独占主机一样。
(4)同时性(也称多路性)。提高了系统资源利用率,节省了开支,促进了计算机的广泛应用。
3、若按系统能同时响应的用户数及任务数来划分,则OS可分为哪几类?服务器上应该安装哪一类?手机上应该安装哪一类?
(1)按操作系统能同时响应的用户数及任务数可划分为3类:单用户单任务操作系统、单用户多任务操作系统、多用户多任务操作系统
(2)服务器上应该安装多用户多任务操作系统
(3)手机上应安装单用户多任务操作系统
4、若按系统处理任务的方式来划分,则OS可分为哪几类?
(1)可分为六类:批处理操作系统、分时操作系统、实时操作系统、单用户操作系统、网络操作系统、分布式操作系统
(2)或者分为两类:集中式操作系统(包括批处理操作系统、分时操作系统、实时操作系统、单用户操作系统、网络操作系统)、分布式操作系统
(3)其中最基本的是批处理操作系统、分时操作系统和实时操作系统
网络操作系统与分布式操作系统不同,其区别为:
(1)分布性。分布式操作系统的处理和控制功能均为分布式的;而网络操作系统虽具分布处理功能,但其控制功能却是集中在某个或某些主机或网络服务器中,即集中式控制方式。
(2)并行性。分布式操作系统具有任务分配功能,可将多个任务分配到多个处理单元上,使这些任务并行执行,从而加速了任务的执行;而网络操作系统通常无任务分配功能,网络中每个用户的一个或多个任务通常都在本地计算机上处理。
(3)透明性。分布式操作系统通常能很好地隐藏系统内部的实现细节。包括对象的物理位置、并发控制和系统故障等对用户都是透明的。例如,当用户要访问某个文件时,只需提供文件名而无须知道(所要访问的对象)它是驻留在那个站点上,即可对它进行访问,以即具有物理位置的透明性。网络操作系统的透明性则主要指操作实现上的透明性。例如,当用户要访问服务器上的文件时,只需发出相应的文件存取命令,而无需了解对该文件的存取是如何实现的。
(4)共享性。分布式操作系统支持系统中所有用户对分布在各个站点上的软硬件资源的共享和透明方式访问。而网络操作系统所提供的资源共享功能仅局限于主机或网络服务器中资源,对于其它机器上的资源通常仅有使用该机的用户独占。
(5)健壮性。分布式操作系统由于处理和控制功能的分布性而具有较好的可用性和可靠性,即健壮性。而网络操作系统由于控制功能的集中式特点而使系统重构功能较弱,且具有潜在的不可靠性。
5、OS提供的用户界面有哪几类?对应的一个实例分别是什么?
对于OS提供给用户的界面而言,其形式取决于操作系统的类型。具有交互操作方式的系统一般提供键盘命令或图形化用户界面,具有脱机操作方式的系统则提供作业控制语言。
OS提供的用户界面有三类:命令接口,程序接口,图形用户接口
(1)命令接口:又分为联机命令接口和脱机命令接口。联机命令接口例如Unix,Linux,Dos。脱机命令接口例如OS/390,VES,MVS,MS-DOS,在脱机操作方式下(如批处理系统)提供作业控制语言,操作系统根据作业申请表来分配作业所需的资源并注册该作业,通过作业说明书对作业的运行实施控制。
(3)程序接口:是为用户程序在执行过程中访问系统资源而设定的,是用户程序取得操作系统服务的唯一途径。例如:MS-DOS的INT中断调用、UNIX的系统调用函数、Windows的API函数等。
(3)图形用户接口:例如Windows,Mac OS。图形化用户界面是良好的用户交互界面,它将菜单驱动方式、图符驱动方式、面向对象技术等集成在一起,形成一个图文并茂的视窗操作环境。
6、不同时期的软件开发方法决定了OS的结构,UNIX和Windows的结构分别是什么?
首先,操作系统的结构分为四类:整体式系统、层次式系统、虚拟机系统、客户-服务器系统。
UNIX为层次式系统。其开发方式为按照模块化的方式开发。其设计哲学为:建立小的模块化的应用,只做一件事情并把它做好。Unix程序员更加重视模块化、更注重正交性和紧凑性等问题。
另外linux属于宏内核,除了最基本的进程、线程管理、内存管理外,文件系统,驱动,网络协议等等都在内核里面。优点是效率高。缺点是稳定性差,开发过程中的bug经常会导致整个系统挂掉。
windows是客户-服务器系统与层次式系统相结合的一种结构。其可以算是微内核结构。微内核中只有最基本的调度、内存管理。驱动、文件系统等都是用户态的守护进程去实现的。优点是超级稳定,驱动等的错误只会导致相应进程死掉,不会导致整个系统都崩溃。缺点是效率低。
7、系统靠什么从用户态进入核心态执行?
3种主要方式,一般大家比较了解的是以中断的方式
(1)系统调用这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作。而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的int 80h中断。
(2) 异常当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。
(3) 外围设备的中断当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。
这3种方式是系统在运行时由用户态转到内核态的最主要方式,其中系统调用可以认为是用户进程主动发起的,异常和外围设备中断则是被动的。
8、你认为设置分时系统中的时间片时主要应该考虑哪些因素?或者说,你认为时间片大点儿好,还是小点儿好?为什么?
时间片设得太短会导致过多的进程切换,降低了CPU效率;而设得太长又可能引起对短的交互请求的响应变差。将时间片设为100毫秒通常是一个比较合理的折衷。
注:有的操作系统有CPU时间片大小这个参数,但很容易理解这是偷换概念,本质改变这个参数仍是改变分配给线程的CPU时钟频率大小,而不是时间
9、处理机为什么有两种执行状态?
限制不同的程序之间的访问能力,即为了构造安全可靠的操作系统。
CPU处于管态时,既可以执行特权指令,也可以执行非特权指令;CPU处于目态时,只可执行非特权指令。
10、硬件指令集为什么要划分出特权指令真子集?
为了系统的安全,防止任何程序都可以随意执行影响系统安全的指令。
11、当没有用户程序要运行时,CPU在做什么?
执行系统中一个特殊的死循环进程——idle(闲置)进程,其作用是不断循环捕获用户的请求。
idle是一个进程,其pid号为 0。其前身是系统创建的第一个进程,也是唯一一个没有通过fork()产生的进程。在smp系统中,每个处理器单元有独立的一个运行队列,而每个运行队列上又有一个idle进程,即有多少处理器单元,就有多少idle进程。系统的空闲时间,其实就是指idle进程的"运行时间"。idle进程pid==o,也就是init_task.
12、操作系统中许多任务不满足Bernstein条件,它们不能并发执行吗?该怎么办?
(1)不满足Bernstein条件,不能直接并发执行(2)可以通过添加互斥同步制约来使其并发执行。
13、为什么要引入进程?在系统响应了60个终端用户几乎同时提出的编译他的C语言源程序的实例中,产生了多少个用户进程?对应多少个程序?
(1)原因:程序并发执行时产生了一系列程序顺序执行时所没有的新的特点,传统的“程序”概念已不足以描述和刻画它们,为此引入“进程”的概念,以实现程序在多道系统中的并发执行。进程具有动态性、并发性、独立性和异步性等,而程序不具有这些特征。
(2)产生了60个进程,1个程序。1个编译程序响应60个用户的请求,产生60个进程。根据进程的定义,用户程序的地位为数据集合。注:进程的三个组成部分中的程序段是指可执行的程序,而用户提交至服务器的程序还未经过编译,不能算作进程的程序段部分,应为数据集合部分,而60个进程的程序段部分应为同一个程序(编译程序)。
14、进程存在于系统的唯一标志是什么?
进程控制块PCB是进程存在的唯一标志,也是操作系统中最重要的结构体类型的数据结构。PCB中存放着操作系统所需的用于描述进程的当前情况以及控制进程运行的全部信息。
顺便提一下PCB的作用吧:标识进程的存在;为系统提供可并发执行的独立单位;为系统控制和管理进程提供所需的一切信息。
15、一般操作系统教科书上所说的“进程的组织”指的是什么?
进程的组织 = PCB的组织
16、你知道临界区和临界资源的不同吗?
首先说一下什么是临界资源:临界资源指一次仅允许一个进程使用的资源。例如:共享的变量或者表格、打印机等。
临界区(又称临界段):是指进程中访问临界资源的那段程序代码。另外,使用同一临界资源的不同进程中的临界区称为同类临界区或相关临界区。
另外,临界区的使用原则为:空则让进,忙则等待,等则有限,等则让权。
17、如果使用记录型信号量正确地描述了进程的互斥,能完全满足临界区的使用原则吗?
可以哒^ _ ^
18、记录型信号量的整型分量值的物理含义是什么?
首先我们应该知道,信号量类型是复合类型,其中一个分量是整型分量S,另一个分量是进程的等待队列指针Q。
信号量的整型分量S的值的物理含义:当S>=0时,表示某类可用资源的数目,或者说表示可以执行P操作而不会被阻塞的进程数目;当S<0时,其绝对值表示信号量S的阻塞队列中的进程数,即系统中因请求该类资源而被阻塞的进程的数目,亦即被信号灯挡住的进程数目,这些进程需要其他进程发出相应的信号灯来唤醒。
19、P操作和V操作的物理含义是什么?
P(S)操作表示“等信号”,即测试一个要等的信号是否到达;V(S)操作表示“发信号”,这个信号在实现同步时就是“合作者的伙伴进程已完成前驱任务”,在实现互斥时就是“临界资源可用”。另外,在互斥问题中,每执行一次P(S)操作的含义,也可以理解为进程请求一个单位的S类资源;每执行一次V(S)操作的含义,也可以理解为进程释放一个单位的S类资源。
P = Wait = Down = -1
V = Signal = Up = +1
20、在学过的两个终端售票进程发售同一班次车票的问题实例中,如何解决“票已售完”?
在执行完P操作之后,先判断余票数量是否大于顾客订票数,若是则改变余票数量,执行V操作,并显示所售出的票;否则,不改变余票数量,执行V操作,显示票已售完。
注:无论余票数量是否足够,都需执行V操作。
21、在生产者-消费者问题解答中,如果某进程中的P操作顺序颠倒了,会怎么样?
可能会产生死锁现象
若此进程是生产者进程,则是P(empty)和P(mutex)两个P操作颠倒顺序。对于缓冲区充满的状态,若一生产者进程抢先执行了P(mutex)操作并成功,当下一步执行P(empty)操作时,就会因失败而进入阻塞状态,此时此进程需要消费者进程执行V(empty)操作来唤醒它。可是因为此进程无法执行V(mutex)操作,使得执行P(mutex)操作的其他生产者进程和所有消费者进程全部进入阻塞状态,从而系统进入了死锁状态。
若此进程是消费者进程,则是P(full)和P(mutex)两个操作颠倒顺序。对于缓冲区为空的状态,若一消费者进程抢先执行了P(mutex)操作并成功,当下一步执行P(full)操作时,就会因失败而进入阻塞状态,此时此进程需要生产者进程执行V(full)操作来唤醒它。可是因为此进程无法执行V(mutex)操作,使得执行P(mutex)操作的其他消费者进程和所有生产者进程全部进入阻塞状态,从而系统进入了死锁状态。
22、在生产者-消费者问题解答中,如果某程序员漏写了一个V操作,会怎么样?
可能会产生死锁现象
若漏写了任意一个V(mutex),则其余进程都将无法访问缓冲区这一临界资源。
若漏写了生产者进程的V(full),则当缓冲区为空时,消费者进程执行P(full)操作时就会失败,即会一直执行无V(full)的生产者进程。
若漏写了消费者进程的V(empty),则当缓冲区满时,生产者进程执行P(empty)操作时就会失败,之后就会一直执行无V(empty)的消费者进程
23、如何用信号量机制描述两人下象棋的过程?
纯互斥问题的解法往往比较单一,而同步问题通常可一题多解。二人对弈过程是个纯粹的同步过程,对弈双方之间没有互斥制约关系。这里给出两种解法:
解法一:
(1)用信号量设置如下:
a. 同步信号量hei,初值为1,表示黑方已走子,开始时可以使红方先行不受阻
b. 同步信号量hong,初值为0,表示红方尚未走子,开始时可使黑方先行受阻
(2)用信号量机制描述的二人下象棋过程如下:
红方 黑方
P(hei); P(hong);
若被黑方将死,则投子认输,结束; 若被红方将死,则投子认输,结束;
若同意与黑方作何,则结束; 若同意与红方作何,则结束;
否则,根据棋局思考后走一子; 否则,根据棋局思考后走一子;
V(hong); V(hei);
————————————————————————————————————
解法二:(若将上述同步信号量hei的初值设为0~~~)
(1)用信号量设置如下:
a. 同步信号量hei,初值为0,表示黑方尚未应对
b. 同步信号量hong,初值为0,表示红方尚未走子,开始时可使黑方先行受阻
(2)用信号量机制描述的二人下象棋过程如下:
红方 黑方
P(hong);
若被黑方将死,则投子认输,结束; 若被红方将死,则投子认输,结束;
若同意与黑方作何,则结束; 若同意与红方作何,则结束;
否则,根据棋局思考后走一子; 否则,根据棋局思考后走一子;
V(hong); V(hei);
P(hei);
24、为什么说哲学家进餐问题的经典解法不正确?你能给个正确的解答吗?
(1)说经典解法不正确是因为有这样一种次序:5个进程都刚刚执行完第一个P操作后的“拿起左边的叉子”操作,即这5位哲学家同时饥饿而各自拿起左边的叉子。这时5个互斥信号量S[i]的值均为0,此后,当他们执行第二个P操作申请拿右手叉子时,均因无叉子可拿而阻塞,且永远阻塞,因为他们彼此之间都在等待右边的哲学家来唤醒自己,但没有一位哲学家进程能继续执行。于是这5个哲学家进程陷入死锁状态。
(2)一种解决方法:把哲学家使用叉子进餐的过程看成是初值为4的临界资源,即限定至多有4位哲学家可以同时去拿左边的叉子,这样就能保证最终至少有一位哲学家能够拿到左右两边的叉子,并吃完通心粉放下叉子,从而使更多的哲学家能够进餐。
注:此哲学家就餐问题不具有同步制约关系,仅具有互斥制约关系。因为相互的等待顺序不是固定的。
25、你能说出进程之间互斥与同步这两种制约关系的不同之处吗?
互斥是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序。
一般情况的同步是指在互斥的基础上实现访问者对资源的有序访问。但有少数情况可以允许多个访问者同时访问资源。
同步是一种更为复杂的互斥,而互斥是一种特殊的同步。
区别同步和互斥的一个有效办法是:观察是否限制了访问者对资源的访问是有序的。若限制为有序的,则说明为同步制约关系;若无此限制,则说明是互斥制约关系。并且,同步与互斥制约可能同时存在。
26、20个进程,竞争使用65个同类资源,每个进程最多使用三个资源,可能产生死锁吗?为什么?
不可能产生死锁。因为这二十个进程最多使用20*3=60个同类资源,而可供使用的同类资源有65个,大于所需的资源数量,所有不可能产生死锁。
注:死锁产生的根本原因:当系统中供多个进程共享的临界资源的数目不能满足诸进程的需要时,会引起诸进程对资源的竞争而产生死锁。明显此题目的描述不满足死锁产生的根本原因。
27、系统处于不安全状态一定会进入死锁状态吗?为什么?
(1)不一定,系统处于安全状态一定可以避免死锁,而系统处于不安全状态则仅仅可能进入死锁状态。其关系入下图:
答案为个人理解,仅供参考,如有问题欢迎留言
在百度脑图放了个思维导图(建议使用谷歌Chrome浏览器浏览)
链接:
http://naotu.baidu.com/file/1f639c5b8fb28272cc9678358df4508f?token=aeeb10bce33223b2
密码:xixi ~ . ~
问题及解析:
重点题目:20、21、22、23、24、32、48、53、61、65
1、 什么是OS?其四大管理功能是什么?
(1)操作系统的描述性定义:操作系统是合理组织计算机的工作流程,有效控制和管理计算机系统的各类资源,并方便用户使用计算机的程序集合。它是一个最重要也是最基本的系统软件。
(2)四大管理功能:处理机管理、存储器管理、设备管理、文件管理。
2、为什么引入分时OS?
(答出分时OS的优点,解决了批处理OS的哪些缺点即可)
分时OS的优点:
(1)交互性。用户能够通过终端与系统进行广泛的对话
(2)及时性。终端用户的请求能在很短的时间内获得响应。
(3)独占性。每个用户各占一个终端,彼此独立操作,互不干扰,感觉好像自己独占主机一样。
(4)同时性(也称多路性)。提高了系统资源利用率,节省了开支,促进了计算机的广泛应用。
3、若按系统能同时响应的用户数及任务数来划分,则OS可分为哪几类?服务器上应该安装哪一类?手机上应该安装哪一类?
(1)按操作系统能同时响应的用户数及任务数可划分为3类:单用户单任务操作系统、单用户多任务操作系统、多用户多任务操作系统
(2)服务器上应该安装多用户多任务操作系统
(3)手机上应安装单用户多任务操作系统
4、若按系统处理任务的方式来划分,则OS可分为哪几类?
(1)可分为六类:批处理操作系统、分时操作系统、实时操作系统、单用户操作系统、网络操作系统、分布式操作系统
(2)或者分为两类:集中式操作系统(包括批处理操作系统、分时操作系统、实时操作系统、单用户操作系统、网络操作系统)、分布式操作系统
(3)其中最基本的是批处理操作系统、分时操作系统和实时操作系统
网络操作系统与分布式操作系统不同,其区别为:
(1)分布性。分布式操作系统的处理和控制功能均为分布式的;而网络操作系统虽具分布处理功能,但其控制功能却是集中在某个或某些主机或网络服务器中,即集中式控制方式。
(2)并行性。分布式操作系统具有任务分配功能,可将多个任务分配到多个处理单元上,使这些任务并行执行,从而加速了任务的执行;而网络操作系统通常无任务分配功能,网络中每个用户的一个或多个任务通常都在本地计算机上处理。
(3)透明性。分布式操作系统通常能很好地隐藏系统内部的实现细节。包括对象的物理位置、并发控制和系统故障等对用户都是透明的。例如,当用户要访问某个文件时,只需提供文件名而无须知道(所要访问的对象)它是驻留在那个站点上,即可对它进行访问,以即具有物理位置的透明性。网络操作系统的透明性则主要指操作实现上的透明性。例如,当用户要访问服务器上的文件时,只需发出相应的文件存取命令,而无需了解对该文件的存取是如何实现的。
(4)共享性。分布式操作系统支持系统中所有用户对分布在各个站点上的软硬件资源的共享和透明方式访问。而网络操作系统所提供的资源共享功能仅局限于主机或网络服务器中资源,对于其它机器上的资源通常仅有使用该机的用户独占。
(5)健壮性。分布式操作系统由于处理和控制功能的分布性而具有较好的可用性和可靠性,即健壮性。而网络操作系统由于控制功能的集中式特点而使系统重构功能较弱,且具有潜在的不可靠性。
5、OS提供的用户界面有哪几类?对应的一个实例分别是什么?
对于OS提供给用户的界面而言,其形式取决于操作系统的类型。具有交互操作方式的系统一般提供键盘命令或图形化用户界面,具有脱机操作方式的系统则提供作业控制语言。
OS提供的用户界面有三类:命令接口,程序接口,图形用户接口
(1)命令接口:又分为联机命令接口和脱机命令接口。联机命令接口例如Unix,Linux,Dos。脱机命令接口例如OS/390,VES,MVS,MS-DOS,在脱机操作方式下(如批处理系统)提供作业控制语言,操作系统根据作业申请表来分配作业所需的资源并注册该作业,通过作业说明书对作业的运行实施控制。
(3)程序接口:是为用户程序在执行过程中访问系统资源而设定的,是用户程序取得操作系统服务的唯一途径。例如:MS-DOS的INT中断调用、UNIX的系统调用函数、Windows的API函数等。
(3)图形用户接口:例如Windows,Mac OS。图形化用户界面是良好的用户交互界面,它将菜单驱动方式、图符驱动方式、面向对象技术等集成在一起,形成一个图文并茂的视窗操作环境。
6、不同时期的软件开发方法决定了OS的结构,UNIX和Windows的结构分别是什么?
首先,操作系统的结构分为四类:整体式系统、层次式系统、虚拟机系统、客户-服务器系统。
UNIX为层次式系统。其开发方式为按照模块化的方式开发。其设计哲学为:建立小的模块化的应用,只做一件事情并把它做好。Unix程序员更加重视模块化、更注重正交性和紧凑性等问题。
另外linux属于宏内核,除了最基本的进程、线程管理、内存管理外,文件系统,驱动,网络协议等等都在内核里面。优点是效率高。缺点是稳定性差,开发过程中的bug经常会导致整个系统挂掉。
windows是客户-服务器系统与层次式系统相结合的一种结构。其可以算是微内核结构。微内核中只有最基本的调度、内存管理。驱动、文件系统等都是用户态的守护进程去实现的。优点是超级稳定,驱动等的错误只会导致相应进程死掉,不会导致整个系统都崩溃。缺点是效率低。
7、系统靠什么从用户态进入核心态执行?
3种主要方式,一般大家比较了解的是以中断的方式
(1)系统调用这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作。而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的int 80h中断。
(2) 异常当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。
(3) 外围设备的中断当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。
这3种方式是系统在运行时由用户态转到内核态的最主要方式,其中系统调用可以认为是用户进程主动发起的,异常和外围设备中断则是被动的。
8、你认为设置分时系统中的时间片时主要应该考虑哪些因素?或者说,你认为时间片大点儿好,还是小点儿好?为什么?
时间片设得太短会导致过多的进程切换,降低了CPU效率;而设得太长又可能引起对短的交互请求的响应变差。将时间片设为100毫秒通常是一个比较合理的折衷。
注:有的操作系统有CPU时间片大小这个参数,但很容易理解这是偷换概念,本质改变这个参数仍是改变分配给线程的CPU时钟频率大小,而不是时间
9、处理机为什么有两种执行状态?
限制不同的程序之间的访问能力,即为了构造安全可靠的操作系统。
CPU处于管态时,既可以执行特权指令,也可以执行非特权指令;CPU处于目态时,只可执行非特权指令。
10、硬件指令集为什么要划分出特权指令真子集?
为了系统的安全,防止任何程序都可以随意执行影响系统安全的指令。
11、当没有用户程序要运行时,CPU在做什么?
执行系统中一个特殊的死循环进程——idle(闲置)进程,其作用是不断循环捕获用户的请求。
idle是一个进程,其pid号为 0。其前身是系统创建的第一个进程,也是唯一一个没有通过fork()产生的进程。在smp系统中,每个处理器单元有独立的一个运行队列,而每个运行队列上又有一个idle进程,即有多少处理器单元,就有多少idle进程。系统的空闲时间,其实就是指idle进程的"运行时间"。idle进程pid==o,也就是init_task.
12、操作系统中许多任务不满足Bernstein条件,它们不能并发执行吗?该怎么办?
(1)不满足Bernstein条件,不能直接并发执行(2)可以通过添加互斥同步制约来使其并发执行。
13、为什么要引入进程?在系统响应了60个终端用户几乎同时提出的编译他的C语言源程序的实例中,产生了多少个用户进程?对应多少个程序?
(1)原因:程序并发执行时产生了一系列程序顺序执行时所没有的新的特点,传统的“程序”概念已不足以描述和刻画它们,为此引入“进程”的概念,以实现程序在多道系统中的并发执行。进程具有动态性、并发性、独立性和异步性等,而程序不具有这些特征。
(2)产生了60个进程,1个程序。1个编译程序响应60个用户的请求,产生60个进程。根据进程的定义,用户程序的地位为数据集合。注:进程的三个组成部分中的程序段是指可执行的程序,而用户提交至服务器的程序还未经过编译,不能算作进程的程序段部分,应为数据集合部分,而60个进程的程序段部分应为同一个程序(编译程序)。
14、进程存在于系统的唯一标志是什么?
进程控制块PCB是进程存在的唯一标志,也是操作系统中最重要的结构体类型的数据结构。PCB中存放着操作系统所需的用于描述进程的当前情况以及控制进程运行的全部信息。
顺便提一下PCB的作用吧:标识进程的存在;为系统提供可并发执行的独立单位;为系统控制和管理进程提供所需的一切信息。
15、一般操作系统教科书上所说的“进程的组织”指的是什么?
进程的组织 = PCB的组织
16、你知道临界区和临界资源的不同吗?
首先说一下什么是临界资源:临界资源指一次仅允许一个进程使用的资源。例如:共享的变量或者表格、打印机等。
临界区(又称临界段):是指进程中访问临界资源的那段程序代码。另外,使用同一临界资源的不同进程中的临界区称为同类临界区或相关临界区。
另外,临界区的使用原则为:空则让进,忙则等待,等则有限,等则让权。
17、如果使用记录型信号量正确地描述了进程的互斥,能完全满足临界区的使用原则吗?
可以哒^ _ ^
18、记录型信号量的整型分量值的物理含义是什么?
首先我们应该知道,信号量类型是复合类型,其中一个分量是整型分量S,另一个分量是进程的等待队列指针Q。
信号量的整型分量S的值的物理含义:当S>=0时,表示某类可用资源的数目,或者说表示可以执行P操作而不会被阻塞的进程数目;当S<0时,其绝对值表示信号量S的阻塞队列中的进程数,即系统中因请求该类资源而被阻塞的进程的数目,亦即被信号灯挡住的进程数目,这些进程需要其他进程发出相应的信号灯来唤醒。
19、P操作和V操作的物理含义是什么?
P(S)操作表示“等信号”,即测试一个要等的信号是否到达;V(S)操作表示“发信号”,这个信号在实现同步时就是“合作者的伙伴进程已完成前驱任务”,在实现互斥时就是“临界资源可用”。另外,在互斥问题中,每执行一次P(S)操作的含义,也可以理解为进程请求一个单位的S类资源;每执行一次V(S)操作的含义,也可以理解为进程释放一个单位的S类资源。
P = Wait = Down = -1
V = Signal = Up = +1
20、在学过的两个终端售票进程发售同一班次车票的问题实例中,如何解决“票已售完”?
在执行完P操作之后,先判断余票数量是否大于顾客订票数,若是则改变余票数量,执行V操作,并显示所售出的票;否则,不改变余票数量,执行V操作,显示票已售完。
注:无论余票数量是否足够,都需执行V操作。
21、在生产者-消费者问题解答中,如果某进程中的P操作顺序颠倒了,会怎么样?
可能会产生死锁现象
若此进程是生产者进程,则是P(empty)和P(mutex)两个P操作颠倒顺序。对于缓冲区充满的状态,若一生产者进程抢先执行了P(mutex)操作并成功,当下一步执行P(empty)操作时,就会因失败而进入阻塞状态,此时此进程需要消费者进程执行V(empty)操作来唤醒它。可是因为此进程无法执行V(mutex)操作,使得执行P(mutex)操作的其他生产者进程和所有消费者进程全部进入阻塞状态,从而系统进入了死锁状态。
若此进程是消费者进程,则是P(full)和P(mutex)两个操作颠倒顺序。对于缓冲区为空的状态,若一消费者进程抢先执行了P(mutex)操作并成功,当下一步执行P(full)操作时,就会因失败而进入阻塞状态,此时此进程需要生产者进程执行V(full)操作来唤醒它。可是因为此进程无法执行V(mutex)操作,使得执行P(mutex)操作的其他消费者进程和所有生产者进程全部进入阻塞状态,从而系统进入了死锁状态。
22、在生产者-消费者问题解答中,如果某程序员漏写了一个V操作,会怎么样?
可能会产生死锁现象
若漏写了任意一个V(mutex),则其余进程都将无法访问缓冲区这一临界资源。
若漏写了生产者进程的V(full),则当缓冲区为空时,消费者进程执行P(full)操作时就会失败,即会一直执行无V(full)的生产者进程。
若漏写了消费者进程的V(empty),则当缓冲区满时,生产者进程执行P(empty)操作时就会失败,之后就会一直执行无V(empty)的消费者进程
23、如何用信号量机制描述两人下象棋的过程?
纯互斥问题的解法往往比较单一,而同步问题通常可一题多解。二人对弈过程是个纯粹的同步过程,对弈双方之间没有互斥制约关系。这里给出两种解法:
解法一:
(1)用信号量设置如下:
a. 同步信号量hei,初值为1,表示黑方已走子,开始时可以使红方先行不受阻
b. 同步信号量hong,初值为0,表示红方尚未走子,开始时可使黑方先行受阻
(2)用信号量机制描述的二人下象棋过程如下:
红方 黑方
P(hei); P(hong);
若被黑方将死,则投子认输,结束; 若被红方将死,则投子认输,结束;
若同意与黑方作何,则结束; 若同意与红方作何,则结束;
否则,根据棋局思考后走一子; 否则,根据棋局思考后走一子;
V(hong); V(hei);
————————————————————————————————————
解法二:(若将上述同步信号量hei的初值设为0~~~)
(1)用信号量设置如下:
a. 同步信号量hei,初值为0,表示黑方尚未应对
b. 同步信号量hong,初值为0,表示红方尚未走子,开始时可使黑方先行受阻
(2)用信号量机制描述的二人下象棋过程如下:
红方 黑方
P(hong);
若被黑方将死,则投子认输,结束; 若被红方将死,则投子认输,结束;
若同意与黑方作何,则结束; 若同意与红方作何,则结束;
否则,根据棋局思考后走一子; 否则,根据棋局思考后走一子;
V(hong); V(hei);
P(hei);
24、为什么说哲学家进餐问题的经典解法不正确?你能给个正确的解答吗?
(1)说经典解法不正确是因为有这样一种次序:5个进程都刚刚执行完第一个P操作后的“拿起左边的叉子”操作,即这5位哲学家同时饥饿而各自拿起左边的叉子。这时5个互斥信号量S[i]的值均为0,此后,当他们执行第二个P操作申请拿右手叉子时,均因无叉子可拿而阻塞,且永远阻塞,因为他们彼此之间都在等待右边的哲学家来唤醒自己,但没有一位哲学家进程能继续执行。于是这5个哲学家进程陷入死锁状态。
(2)一种解决方法:把哲学家使用叉子进餐的过程看成是初值为4的临界资源,即限定至多有4位哲学家可以同时去拿左边的叉子,这样就能保证最终至少有一位哲学家能够拿到左右两边的叉子,并吃完通心粉放下叉子,从而使更多的哲学家能够进餐。
注:此哲学家就餐问题不具有同步制约关系,仅具有互斥制约关系。因为相互的等待顺序不是固定的。
25、你能说出进程之间互斥与同步这两种制约关系的不同之处吗?
互斥是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序。
一般情况的同步是指在互斥的基础上实现访问者对资源的有序访问。但有少数情况可以允许多个访问者同时访问资源。
同步是一种更为复杂的互斥,而互斥是一种特殊的同步。
区别同步和互斥的一个有效办法是:观察是否限制了访问者对资源的访问是有序的。若限制为有序的,则说明为同步制约关系;若无此限制,则说明是互斥制约关系。并且,同步与互斥制约可能同时存在。
26、20个进程,竞争使用65个同类资源,每个进程最多使用三个资源,可能产生死锁吗?为什么?
不可能产生死锁。因为这二十个进程最多使用20*3=60个同类资源,而可供使用的同类资源有65个,大于所需的资源数量,所有不可能产生死锁。
注:死锁产生的根本原因:当系统中供多个进程共享的临界资源的数目不能满足诸进程的需要时,会引起诸进程对资源的竞争而产生死锁。明显此题目的描述不满足死锁产生的根本原因。
27、系统处于不安全状态一定会进入死锁状态吗?为什么?
(1)不一定,系统处于安全状态一定可以避免死锁,而系统处于不安全状态则仅仅可能进入死锁状态。其关系入下图:
(2)系统处于不安全状态仅说明当前情况下的资源分配出现不安全的因素,而随着时间的推移,资源的分配可能会发生变化的,原来占有临界资源的进程可能因为某些原因自己阻塞起来,并放弃已拥有的临界资源,这样系统有可能又处于了安全状态。
28、采用银行家算法分配资源的系统会发生死锁吗?
不会。银行家算法的实质就是要设法保证系统动态分配资源后不进入不安全状态,以避免可能产生的死锁。
29、n个进程共享同类互斥资源m个。如果每个进程最多申请x个资源(1≤x≤m),则当n(x-1)+1≤m时,系统会发生死锁吗?为什么?
不会发生死锁。
因为每个进程最多申请x个资源,所以最坏情况是每个进程都得到了(x-1)个资源,并且现在均需申请最后一个资源。此时,系统剩余资源数为m-n(x-1),于是只要系统中至少还有一个资源可供使用,就可以使这n个进程中某个进程得到其所需的全部资源,并能够继续执行到完成,归还资源可供其他进程使用。因而不会发生死锁。即只要m-n(x-1)>=1时,系统就一定不会发生死锁。亦即当n(x-1)+1<=m时,系统不会发生死锁。
30、操作系统对付死锁的手段主要有哪几种?
有四种。
分别为:死锁的预防,死锁的避免,死锁的检测与解除
还有一种对付死锁的最简单的方法就是置之不理——鸵鸟算法
31、三种基本类型的操作系统中都会有三级调度吗?
不是。
三级调度都有的是采用虚存管理技术的批处理操作系统(或者说是支持虚拟存储技术的批处理操作系统)。
32、你能看懂时间片轮转法调度的Gantt chart(Gantt图)表示吗?
时间片轮转调度算法示例(时间片=20ms)
28、采用银行家算法分配资源的系统会发生死锁吗?
不会。银行家算法的实质就是要设法保证系统动态分配资源后不进入不安全状态,以避免可能产生的死锁。
29、n个进程共享同类互斥资源m个。如果每个进程最多申请x个资源(1≤x≤m),则当n(x-1)+1≤m时,系统会发生死锁吗?为什么?
不会发生死锁。
因为每个进程最多申请x个资源,所以最坏情况是每个进程都得到了(x-1)个资源,并且现在均需申请最后一个资源。此时,系统剩余资源数为m-n(x-1),于是只要系统中至少还有一个资源可供使用,就可以使这n个进程中某个进程得到其所需的全部资源,并能够继续执行到完成,归还资源可供其他进程使用。因而不会发生死锁。即只要m-n(x-1)>=1时,系统就一定不会发生死锁。亦即当n(x-1)+1<=m时,系统不会发生死锁。
30、操作系统对付死锁的手段主要有哪几种?
有四种。
分别为:死锁的预防,死锁的避免,死锁的检测与解除
还有一种对付死锁的最简单的方法就是置之不理——鸵鸟算法
31、三种基本类型的操作系统中都会有三级调度吗?
不是。
三级调度都有的是采用虚存管理技术的批处理操作系统(或者说是支持虚拟存储技术的批处理操作系统)。
32、你能看懂时间片轮转法调度的Gantt chart(Gantt图)表示吗?
时间片轮转调度算法示例(时间片=20ms)
时间片轮转法调度的Gantt chart(Gantt图)表示如下:
对于此Gantt图的解释如下:
在0~20毫秒:执行P1进程,因时间片用完而退出,此时P1还需53-20=33ms
在20~37毫秒:执行P2进程,因P2进程执行完毕而退出
在37~57毫秒:执行P3进程,因时间片用完而退出,此时P3还需68-20=48ms
在57~77毫秒:执行P4进程,因时间片用完而退出,此时P4还需24-20=4ms
在77~97毫秒:执行P1进程,因时间片用完而退出,此时P1还需33-20=13ms
在97~117毫秒:执行P3进程,因时间片用完而退出,此时P3还需48-20=28ms
在117~121毫秒:执行P4进程,因P4进程执行完毕而退出
在121~134毫秒:执行P1进程,因P1进程执行完毕而退出
在134~154毫秒:执行P3进程,因时间片用完而退出,此时P3还需28-20=8ms
在154~162毫秒:执行P3进程,因P3进程执行完毕而退出
注:时间片轮转算法是适用于分时系统的可抢占调度算法
33、为什么要引入线程?你认为线程与进程最大的不同是什么?
引入线程是为了减少程序并发执行时系统所付出的时空开销(主要指进程创建、切换和通信的开销),进一步提高程序的并发执行程度,进而提高系统的吞吐量。
线程与进程最大的不同是进程拥有资源,线程几乎不拥有资源。
线程与进程的比较
(1)拥有资源
进程是拥有资源的一个独立单位
线程几乎不拥有系统资源,但它可以访问其隶属进程的资源
(2)调度
传统操作系统中:
进程既是拥有资源的基本单位,有事能独立调度的基本单位
引入线程的操作系统中:
进程只是拥有资源的基本单位,而线程是调度与分派的基本单位
(3)并发性
不仅进程之间可以并发执行,而且线程之间也可以并发执行
(4)系统开销
操作系统为进程切换付出的开销远大于为同一进程内的线程切换付出的开销
由于同一进程内的多个线程具有相同的地址空间,致使它们之间的同步互斥的实现也变得比较容易
34、你了解进程的三种基本状态吗?进程能从阻塞状态转换到运行状态吗?为什么?
进程不能从阻塞状态转换到运行状态。因为进程要先由阻塞状态转为就绪状态才能再执行。
注:处于阻塞状态的进程,若其等待的事件已经发生,则该进程将从阻塞状态转变为就绪状态。
35、作业、程序、进程、线程中,哪些是静态概念,哪些是动态概念?
作业、进程、线程都是动态的概念,唯独程序是静态的。
36、你能区分物理地址与物理地址空间吗?你知道逻辑地址和物理地址的不同吗?
(1)物理地址与物理地址空间:
物理地址:内存单元的地址编号,又称绝对地址或实地址。
物理地址空间:物理地址的集合称,也称绝对地址空间或实地址空间或存储空间,亦即内存空间。
(2)逻辑地址与物理地址:
逻辑地址:用户程序中使用的地址,又称相对地址或虚地址。逻辑地址的集合称为逻辑地址空间,也称相对地址空间或虚空间或地址空间。
物理地址:内存单元的地址编号,又称绝对地址或实地址。
进程的逻辑地址空间往往与运行时所在物理存储空间不一致,需要进程逻辑地址到物理地址的转换。
每个程序中的逻辑地址可能相同,但物理地址是唯一的。
37、什么是静态重定位?什么是动态重定位?哪种方式下可执行程序的内外存副本一致?
(1)静态重定位:在程序运行之前由装入程序完成的重定位过程。
(2)动态重定位:在程序执行过程中由硬件地址变换机构实现的重定位过程。
动态重定位方式下可执行程序的内外存副本是一致的。
38、分区式存储管理包括单一连续区分配、固定分区分配、可变分区分配、可重定位分区分配以及伙伴系统,其中哪些属于静态分区技术,哪些属于动态分区技术?
(1)静态分区技术:单一连续区分配、固定分区分配
(2)动态分区技术:可变分区分配、可重定位分区分配、伙伴系统
39、固定分区存储管理系统适合采用最先适应、下次适应、最佳适应、最坏适应这四种内存分配算法中的哪一种?
固定分区存储管理系统适合采用最佳适应算法。因为,此算法所产生的内碎片最少。
这里还要介绍一下下次适应算法。下次适应(next fit)算法也称“临近适应”算法,其工作方式和最先适应算法相同(最先适应也称首次适应算法。它总是最先找到的、满足存储要求的那个空闲分区作为分配对象。),不同的是每次找到合适的空闲的分区时就记住它的位置,以便下次就从该位置开始往下查找,而不是每次都像最先适应算法那样从头开始查找。但是这种算法的总体结果通常要比最先适应算法差。由于它经常会在内存的末尾分配存储分区,使位于存储空间末尾的最大分区被撕裂成小的外部碎片,因此必须经常不断地进行存储紧凑。在该算法中应采取循环查找方式,即最后上个空闲区的大小仍不能满足要求时,应再从第一个空闲区开始查找,故又称为循环造就算法。
40、固定分区存储管理系统中常用什么方法进行内存保护?实分页系统中的做法又是什么呢?
固定分区存储管理系统中常采用“界限寄存器对”法。
实分页系统中的做法是:页表长度寄存器中存有页表长度信息。在进行存储访问时,首先将逻辑地址中的页号与页表长度进行比较,如果页号大于或等于页表长度,将产生地址越界中断信号,从而保证每个进程只能在自己的地址空间内运行。
41、在页式存储管理中,什么是“页内碎片”?如何降低页内碎片?
(1)页内碎片:由于一个作业的长度通常不恰好为页长度的整数倍,最后一页中会有一部分空间未被利用,这一部分空间称为“页内碎片”。
(2)可以适当调小页面的尺寸。
42、你认为设置虚分页系统中的页面尺寸时主要应该考虑哪些因素?或者说,你认为页面大点儿好,还是小点儿好?为什么?
不大不小比较好 .
大了分页的优势就没有了,小了会使页表过大,缺页率大增。
虽然缺页中断率与页面尺寸成反比,但是页面尺寸却不能一味地求大,它一般在512B~4KB之间,是个实验统计值。因为页面大时,页表较小,占空间少,查表速度快,缺页中断次数少,但页面调度时间长,页内碎片较大。页面小时,恰恰相反。
43、你会看页地址字的内容吗?
对于此Gantt图的解释如下:
在0~20毫秒:执行P1进程,因时间片用完而退出,此时P1还需53-20=33ms
在20~37毫秒:执行P2进程,因P2进程执行完毕而退出
在37~57毫秒:执行P3进程,因时间片用完而退出,此时P3还需68-20=48ms
在57~77毫秒:执行P4进程,因时间片用完而退出,此时P4还需24-20=4ms
在77~97毫秒:执行P1进程,因时间片用完而退出,此时P1还需33-20=13ms
在97~117毫秒:执行P3进程,因时间片用完而退出,此时P3还需48-20=28ms
在117~121毫秒:执行P4进程,因P4进程执行完毕而退出
在121~134毫秒:执行P1进程,因P1进程执行完毕而退出
在134~154毫秒:执行P3进程,因时间片用完而退出,此时P3还需28-20=8ms
在154~162毫秒:执行P3进程,因P3进程执行完毕而退出
注:时间片轮转算法是适用于分时系统的可抢占调度算法
33、为什么要引入线程?你认为线程与进程最大的不同是什么?
引入线程是为了减少程序并发执行时系统所付出的时空开销(主要指进程创建、切换和通信的开销),进一步提高程序的并发执行程度,进而提高系统的吞吐量。
线程与进程最大的不同是进程拥有资源,线程几乎不拥有资源。
线程与进程的比较
(1)拥有资源
进程是拥有资源的一个独立单位
线程几乎不拥有系统资源,但它可以访问其隶属进程的资源
(2)调度
传统操作系统中:
进程既是拥有资源的基本单位,有事能独立调度的基本单位
引入线程的操作系统中:
进程只是拥有资源的基本单位,而线程是调度与分派的基本单位
(3)并发性
不仅进程之间可以并发执行,而且线程之间也可以并发执行
(4)系统开销
操作系统为进程切换付出的开销远大于为同一进程内的线程切换付出的开销
由于同一进程内的多个线程具有相同的地址空间,致使它们之间的同步互斥的实现也变得比较容易
34、你了解进程的三种基本状态吗?进程能从阻塞状态转换到运行状态吗?为什么?
进程不能从阻塞状态转换到运行状态。因为进程要先由阻塞状态转为就绪状态才能再执行。
注:处于阻塞状态的进程,若其等待的事件已经发生,则该进程将从阻塞状态转变为就绪状态。
35、作业、程序、进程、线程中,哪些是静态概念,哪些是动态概念?
作业、进程、线程都是动态的概念,唯独程序是静态的。
36、你能区分物理地址与物理地址空间吗?你知道逻辑地址和物理地址的不同吗?
(1)物理地址与物理地址空间:
物理地址:内存单元的地址编号,又称绝对地址或实地址。
物理地址空间:物理地址的集合称,也称绝对地址空间或实地址空间或存储空间,亦即内存空间。
(2)逻辑地址与物理地址:
逻辑地址:用户程序中使用的地址,又称相对地址或虚地址。逻辑地址的集合称为逻辑地址空间,也称相对地址空间或虚空间或地址空间。
物理地址:内存单元的地址编号,又称绝对地址或实地址。
进程的逻辑地址空间往往与运行时所在物理存储空间不一致,需要进程逻辑地址到物理地址的转换。
每个程序中的逻辑地址可能相同,但物理地址是唯一的。
37、什么是静态重定位?什么是动态重定位?哪种方式下可执行程序的内外存副本一致?
(1)静态重定位:在程序运行之前由装入程序完成的重定位过程。
(2)动态重定位:在程序执行过程中由硬件地址变换机构实现的重定位过程。
动态重定位方式下可执行程序的内外存副本是一致的。
38、分区式存储管理包括单一连续区分配、固定分区分配、可变分区分配、可重定位分区分配以及伙伴系统,其中哪些属于静态分区技术,哪些属于动态分区技术?
(1)静态分区技术:单一连续区分配、固定分区分配
(2)动态分区技术:可变分区分配、可重定位分区分配、伙伴系统
39、固定分区存储管理系统适合采用最先适应、下次适应、最佳适应、最坏适应这四种内存分配算法中的哪一种?
固定分区存储管理系统适合采用最佳适应算法。因为,此算法所产生的内碎片最少。
这里还要介绍一下下次适应算法。下次适应(next fit)算法也称“临近适应”算法,其工作方式和最先适应算法相同(最先适应也称首次适应算法。它总是最先找到的、满足存储要求的那个空闲分区作为分配对象。),不同的是每次找到合适的空闲的分区时就记住它的位置,以便下次就从该位置开始往下查找,而不是每次都像最先适应算法那样从头开始查找。但是这种算法的总体结果通常要比最先适应算法差。由于它经常会在内存的末尾分配存储分区,使位于存储空间末尾的最大分区被撕裂成小的外部碎片,因此必须经常不断地进行存储紧凑。在该算法中应采取循环查找方式,即最后上个空闲区的大小仍不能满足要求时,应再从第一个空闲区开始查找,故又称为循环造就算法。
40、固定分区存储管理系统中常用什么方法进行内存保护?实分页系统中的做法又是什么呢?
固定分区存储管理系统中常采用“界限寄存器对”法。
实分页系统中的做法是:页表长度寄存器中存有页表长度信息。在进行存储访问时,首先将逻辑地址中的页号与页表长度进行比较,如果页号大于或等于页表长度,将产生地址越界中断信号,从而保证每个进程只能在自己的地址空间内运行。
41、在页式存储管理中,什么是“页内碎片”?如何降低页内碎片?
(1)页内碎片:由于一个作业的长度通常不恰好为页长度的整数倍,最后一页中会有一部分空间未被利用,这一部分空间称为“页内碎片”。
(2)可以适当调小页面的尺寸。
42、你认为设置虚分页系统中的页面尺寸时主要应该考虑哪些因素?或者说,你认为页面大点儿好,还是小点儿好?为什么?
不大不小比较好 .
大了分页的优势就没有了,小了会使页表过大,缺页率大增。
虽然缺页中断率与页面尺寸成反比,但是页面尺寸却不能一味地求大,它一般在512B~4KB之间,是个实验统计值。因为页面大时,页表较小,占空间少,查表速度快,缺页中断次数少,但页面调度时间长,页内碎片较大。页面小时,恰恰相反。
43、你会看页地址字的内容吗?
由图可知,页地址字包括物理页号和页内地址两部分。
假设页面大小为210B,则从逻辑地址1024的二进制结果立即可以看出,该地址对应逻辑地址空间的1号页面,页内偏移为0。因为,页面大小为210B说明09位(0000000000)代表页内偏移,1015位(000001)代表页号。
44、你知道页表源于什么吗?
动态重定位寄存器(可能是吧)
45、你能看懂页表吗?
如图,
页表中每个页号对应唯一一个块号。
注:每一个块号可以对应多个页号。
46、你认为实分页系统中最简化的页表表目应该有什么内容?为什么?
实分页系统中最简化的页表表目应该有块号。
因为,页表的作用就是将页号对应到块号,而页号可以用页的序号来代替(就像数组的下标一样),因此,只需有块号即可达到此对应目的。
注:每个页号只能对应唯一的块号,但每个块号可以对应对应多个页号。
47、你认为虚分页系统中最简化的页表表目应该有什么内容?为什么?
我认为吧,这个,有页号、块号、状态位即可。
对于可增加的表目项的介绍:
外存块号:指出该页在外存的地址,供调入该页时使用。
状态位:指示该页是否在内存,供程序访问时使用,也是检查是否缺页的标志的。
访问位或访问字段:是该页被访问过的标志或该页被访问过的次数,它和修改位一起供页面置换用。
修改位:表示该页是否被修改过。
存取控制字段:用来限制页面被安全共享。
48、你能描述分页系统的地址映射过程吗?
可分为五步
(1)由指令产生逻辑地址
(2)若逻辑页号不小于页表长度寄存器的值,则产生越界中断;否则,执行步骤(3)
(3)由逻辑页号查块表,若成功,则读出物理块号,转(5);否则,执行步骤(4)
(4)由逻辑页号查页表:
(a)从相应页表表目取出该页相应的物理块号;
(b)把逻辑页号与物理块号置入快表表目中,若此时快表已满,则先按淘汰算法淘汰一个快表表目;
(5)把物理块号与页内地址写入物理地址寄存器的相应位置得物理地址。
49、虚存的实际最大尺寸常取决于系统的地址结构吗?
是哒 .
虚拟存储器的逻辑容量由内存容量与外存容量之和决定,实际最大容量常由系统的地址结构决定,比如取决于逻辑地址字的长度。
50、程序在虚存管理模式下运行比在实模式下慢吗?为什么?
嗯呐 ^ _ ^
因为会发生缺页中断,页面调度需要花费时间。
51、缺页中断与与常规中断的不同之处有哪些?
常规中断是在一条指令执行完之后响应与处理的。
缺页中断是在指令执行期间产生和处理中断信号;而且在一条指令在执行期间,可产生多次缺页中断。
对于缺页中断,一般按“故障”处理。
52、一个进程当前使用的页的集合叫它的什么?
工作集。。。
我觉得这个应该是指在程序局部性原理中提出的那一部分内存区域。
程序局部性原理:一个执行中的程序,在一段时间内的访问相对集中在一部分内存区域,或者说程序在运行过程中在不同时段对主存有不同的访问概率。
53、你了解FIFO、LRU、NRU和clock页面置换算法吗?
(1)先进先出淘汰算法—FIFO(First-in,First-out)淘汰算法
这是最早出现的淘汰算法
该算法效率不高,因为它与进程实际的运行规律不相适应
还有Belady现象
(2)最近最久未用淘汰算法—LRU(Least Recently Used)淘汰算法
淘汰最后一次访问时间距当前时间间隔最长的页面
如果设R(S)是页面访问序列S的反序,可以认为:OPT算法用于S上的缺页率=LRU算法用于R(S)上的缺页率
(3)最近未用淘汰算法—NRU(Not Recently Used)淘汰算法
是一种比较容易实现的LRU近似算法
是把FIFO算法的思想与页面的访问位和修改位结合起来的一个接近LRU算法的淘汰对象,Clock算法就是这种NRU算法的简化
(4)时钟(Clock)淘汰算法
简单实用的LRU近似算法
是二次机会淘汰算法的改进和变形
54、什么是Belady现象?在所有页面置换算法中,都会产生Belady现象吗?
(1)Belady现象:Belady在1969年发现的反常现象(被称为“Belady现象”),即增加内存块数后进程的缺页率不降反增。
(2)只有在先进先出淘汰算法—FIFO(First-in,First-out)淘汰算法中会出现Belady现象。
55、影响虚分页系统中缺页率的主要因素有哪些?
(1)页面调度算法不合理
(2)分配给进程的内存块数太少
(3)页面大小的选择不合理
(4)用户程序编制的方法不合适
56、你认为虚拟打印机的实质是什么?
虚拟打印机的实质是磁盘上一特殊的分区。
57、磁盘的三地址结构由哪些组成?
(1)柱面号
(2)磁头号(盘面号、磁道号)
(3)扇区号
注:寻道时间指的是柱面定位时间
58、磁盘访问时间构成中哪一部分约占七成?
柱面定位时间。
另:数据传输时间所占的比例相当小,旋转延迟时间约占三成。
59、你认为固态盘比普通移动头磁盘好在哪里?为什么?
主要:
固态盘比普通移动头磁盘快得多。因为,固态盘采用闪存作为存储介质,不用磁头,寻道时间几乎为0。最常见的7200转机械硬盘的寻道时间一般为12-14毫秒,而固态硬盘可以轻易达到0.1毫秒甚至更低。
其次:
防震抗摔性:传统硬盘都是磁碟型的,数据储存在磁碟扇区里。而固态硬盘是使用闪存颗粒(即mp3、U盘等存储介质)制作而成,所以SSD固态硬盘内部不存在任何机械部件,这样即使在高速移动甚至伴随翻转倾斜的情况下也不会影响到正常使用,而且在发生碰撞和震荡时能够将数据丢失的可能性降到最小。相较传统硬盘,固态硬盘占有绝对优势。
低功耗:固态硬盘的功耗上要低于传统硬盘。
无噪音:固态硬盘没有机械马达,工作时噪音值为0分贝。
工作温度范围大:典型的硬盘驱动器只能在5到55摄氏度范围内工作。而大多数固态硬盘可在-1070摄氏度工作。其芯片的工作温度范围很宽(-4085摄氏度)。
轻便:固态硬盘在重量方面更轻,与常规1.8英寸硬盘相比,重量轻20-30克。
60、你怎样看待现在市场上流行PC的双硬盘配置(比如,一个256GB的固态盘+一个1TB的7200转每分钟的磁盘)?
挺好的。用固态盘装操作系统,机械硬盘存储数据,既可以使系统运行的速度更快,又可以拥有充足的空间来存放文件。
61、你能掌握哪几种磁盘调度算法?
(1)先来先服务算法(First Come First Served,FCFS)算法
(2)最短寻到时间优先算法(Shortest Seek Time First,SSTF)算法
(3)扫描算法(SCAN)算法
(4)循环扫描算法(Circular Scan,CSCAN)算法
其他算法:优先级算法,后进先出算法,N步扫描算法,双队列扫描算法。
62、设备驱动程序的处理过程主要分为哪三个阶段?
(1)驱动前的准备工作
(2)启动设备
(3)I/O正常完成或异常完成后的中断处理
63、文件存取方式与文件结构、文件存储介质都有关系吗?
是的。
存储介质 | 物理结构 | 存取方式 |
磁带 | 顺序 | 顺序 |
磁盘 | 顺序 | 顺序、随机 |
链接 | 顺序 | |
索引 | 顺序、随机 |
64、打开文件操作的主要功能是什么?
把文件属性(即文件控制块或文件目录项的内容)装入内存。
65、UNIX System V 的文件采用多级混合索引结构。假设每个盘块4kB,每个盘块号4B,则采用3次间址可表示的文件最大长度是多少?
*(12+1024+10241024+10241024*1024)4KB > 4TB
66、Windows FAT32文件系统中,文件的“下一簇号”在FAT表中,文件的“首簇号”在哪里?
在文件目录项,又称文件控制块(File Control Block,FCB)中。
67、硬链接可以跨文件系统吗?软链接呢?为什么?
硬链接不可以跨文件系统,软链接可以。
因为硬链接是基于索引节点的共享方式。直接增加一个目录项,其文件名是被共享文件的名字或别名,其索引节点号是被共享文件的索引节点号,可不同文件系统的目录项可能不同,因此不可跨文件系统。
软链接是基于符号链接的共享方式。符号链接是一种特殊类型(常称为LINK类型)的文件,其内容是被共享文件或目录的路径,所以即使跨文件系统也不影响其访问。
68、用符号链(Symbolic linking)访问共享文件的优缺点是什么?
(1)优点:不影响原文件,它们各是一个文件;可以建立任意的别名关系,甚至原文件位于其他计算机上;实现简单;使用方便;对文件主人删除文件没有任何影响;删除符号链接不会产生副作用。
(2)缺点:空间和时间开销比较大;会给文件搜索、存储、恢复等带来麻烦。
69、为什么说UNIX的文件目录树比一般操作系统里的文件目录树小?
因为UNIX把文件目录树改造成了两颗树。
70、位示图能用做记录磁盘空间划分使用情况的数据结构吗?为什么?它的优缺点是什么?
可以。应为可用其字位值为“1”表示块已被占用,字位值为“0”表示块未被占用。
优点:位示图的尺寸是固定的,通常比较小,可以常驻内存,使得物理块的分配与回收速度比较快。
缺点:需要进行位示图中字位元素的位置值(即字号和位号)与对应物理盘块号之间的转换。
71、假设某磁盘共有80000块,当前有20000块空闲,每个块号以32位表示,若用位示图实现该磁盘的空闲块表,需要多少个字节。
首先,位示图的每一字位(即字中的一个二进制位)与一个物理块对应,所以,80000块需要80000个字位,换算为字节为 80000(bit)/8 = 10000(Byte),即需要10000个字节。
72、从原理上看,“磁盘碎片整理”与内存的什么技术相似?为什么进行“磁盘碎片整理”能提升计算机系统的性能?
与内存紧致、压缩技术相似。
可以减少访问磁盘时的柱面定位于旋转延迟时间。
73、FAT32文件系统中,簇大小分别为4K、32K时,文件系统理论上能管理的最大磁盘空间是多少?
蔟大小为4K时:2^32 * 4 K
蔟大小为32K时: 2^32 * 32 K
按实际情况来说,每个文件系统最多允许有4个主分区,所以可将答案*4。
74、FAT32文件系统和EXT2文件系统分别是什么操作系统使用的?其文件的物理结构是什么?
Windows:FAT32,其文件的物理结构为显示链接文件
Linux:EXT2,其文件的物理结构为索引文件(多级索引表的结构)
75、Windows 98为什么不继续使用Windows 95的FAT16文件系统,而改用FAT32文件系统?
(1)蔟减少了,减少了蔟内浪费
(2)一个FAT表中项的位数增多了,即可存放的项数多了
76、你刚攒好了一台PC,准备装操作系统,你首选32位的系统还是64位的?为什么?
64位的系统。因为32位系统最大允许的内存为4GB,而64位系统最大允许的内存为16E。
把文件属性(即文件控制块或文件目录项的内容)装入内存。
65、UNIX System V 的文件采用多级混合索引结构。假设每个盘块4kB,每个盘块号4B,则采用3次间址可表示的文件最大长度是多少?
*(12+1024+10241024+10241024*1024)4KB > 4TB
66、Windows FAT32文件系统中,文件的“下一簇号”在FAT表中,文件的“首簇号”在哪里?
在文件目录项,又称文件控制块(File Control Block,FCB)中。
67、硬链接可以跨文件系统吗?软链接呢?为什么?
硬链接不可以跨文件系统,软链接可以。
因为硬链接是基于索引节点的共享方式。直接增加一个目录项,其文件名是被共享文件的名字或别名,其索引节点号是被共享文件的索引节点号,可不同文件系统的目录项可能不同,因此不可跨文件系统。
软链接是基于符号链接的共享方式。符号链接是一种特殊类型(常称为LINK类型)的文件,其内容是被共享文件或目录的路径,所以即使跨文件系统也不影响其访问。
68、用符号链(Symbolic linking)访问共享文件的优缺点是什么?
(1)优点:不影响原文件,它们各是一个文件;可以建立任意的别名关系,甚至原文件位于其他计算机上;实现简单;使用方便;对文件主人删除文件没有任何影响;删除符号链接不会产生副作用。
(2)缺点:空间和时间开销比较大;会给文件搜索、存储、恢复等带来麻烦。
69、为什么说UNIX的文件目录树比一般操作系统里的文件目录树小?
因为UNIX把文件目录树改造成了两颗树。
70、位示图能用做记录磁盘空间划分使用情况的数据结构吗?为什么?它的优缺点是什么?
可以。应为可用其字位值为“1”表示块已被占用,字位值为“0”表示块未被占用。
优点:位示图的尺寸是固定的,通常比较小,可以常驻内存,使得物理块的分配与回收速度比较快。
缺点:需要进行位示图中字位元素的位置值(即字号和位号)与对应物理盘块号之间的转换。
71、假设某磁盘共有80000块,当前有20000块空闲,每个块号以32位表示,若用位示图实现该磁盘的空闲块表,需要多少个字节。
首先,位示图的每一字位(即字中的一个二进制位)与一个物理块对应,所以,80000块需要80000个字位,换算为字节为 80000(bit)/8 = 10000(Byte),即需要10000个字节。
72、从原理上看,“磁盘碎片整理”与内存的什么技术相似?为什么进行“磁盘碎片整理”能提升计算机系统的性能?
与内存紧致、压缩技术相似。
可以减少访问磁盘时的柱面定位于旋转延迟时间。
73、FAT32文件系统中,簇大小分别为4K、32K时,文件系统理论上能管理的最大磁盘空间是多少?
蔟大小为4K时:2^32 * 4 K
蔟大小为32K时: 2^32 * 32 K
按实际情况来说,每个文件系统最多允许有4个主分区,所以可将答案*4。
74、FAT32文件系统和EXT2文件系统分别是什么操作系统使用的?其文件的物理结构是什么?
Windows:FAT32,其文件的物理结构为显示链接文件
Linux:EXT2,其文件的物理结构为索引文件(多级索引表的结构)
75、Windows 98为什么不继续使用Windows 95的FAT16文件系统,而改用FAT32文件系统?
(1)蔟减少了,减少了蔟内浪费
(2)一个FAT表中项的位数增多了,即可存放的项数多了
76、你刚攒好了一台PC,准备装操作系统,你首选32位的系统还是64位的?为什么?
64位的系统。因为32位系统最大允许的内存为4GB,而64位系统最大允许的内存为16E。