操作系统面试题准备

时间:2022-07-11 19:11:13 面试 我要投稿
  • 相关推荐

操作系统面试题准备

就只准备了进程线程之类的,再深了一时半会也搞不定了。

操作系统面试题准备

1.进程

现在操作系统的特点:保证安全前提下,程序并发执行,以及系统所拥有的资源被共享和用户随机使用系统。

进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。

进程的静态描述有:进程由三部分组成:程序,数据集合和进程控制块(pCB)。

程序表示要完成的功能,数据集合表示程序运行时的数据部分和工作区。这二者是进程的物质基础。

如果一个程序是多进程同时共享执行,则为不可修改的部分,表现为纯码的形式,数据集合为为一个进程独用,为可以修改部分。

pCB进程控制块,表示了进程的描述信息、控制信息和资源信息,是进程动态特性的集中反应。是系统感知进程的唯一实体,一个进程的pCB全部或者部分常驻内存。

pCB包含的控制信息中有进程的当前状态。

进程的的状态只有五种状态:初始态,就绪态,执行态,等待状态和终止状态。

运行:进程已经分配到处理机,程序正由处理机执行。

等待:进程因为等待某一事件而暂时不能运行的状态。

就绪:进程已具备执行条件,但是因为处理机已由其他进程占用,所以暂时不能执行而等待分配处理机。

互斥和同步

互斥:一组并发进程中的一个或者多个程序段,因共享某一公有资源而导致它们必须以一个不允许交叉执行的单位执行。不允许两个及以上的共享该资源的并发进程同时进入临界区。

临界区:不允许多个并发进程交叉执行的一段程序称为临界区。

1、临界区的锁操作方法:给每个临界区设置一把锁,有两个状态,打开或者关闭。步骤如下:关锁操作,如果锁开着就关闭,如果锁关闭则等待打开;执行临界区程序;开锁操作,将锁打开,退出临界区。某个进程进入临界区会检测锁是否打开,如果关闭则等待打开。

上锁实现互斥,缺点:影响系统可靠性和效率,比如多并发,每个进程都要测试临界区锁状态,开销很大。存在cpu浪费和不公平现象。

2、“信号量”

信号量,sem为与临界区内所使用的公用资源有关的信号量。

p表示sem-1,V则sem+1,多进程并发时,和上锁不一样,如果无法使用临界区,不是再次检测,而是进入等待队列。sem>=0,表示可供并发进程使用的资源实体数;sem<0,等待使用临界区的进程数。

p:(1)sem=sem-1(2)sem>=0,p返回,进程继续执行(3)sem<0,进程被阻塞后与该信号相对应的队列中。

V:(1)sem=sem+1(2)sem>0,V停止执行,进程返回调用处,继续执行(3)sem<=0,从该信号的队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。

pV操作对于每一个进程来说,都只能进行一次,而且必须成对使用。在pV原语执行期间不允许有中断的发生。

pV实现互斥:(1)sem初始值为1(2)进程p1进入临界区,执行p操作,sem=0,进程进入临界区执行(3)进程p2进入临界区,执行p操作,sem=-1,p2被阻塞,进入信号对应等待队列(4)p1执行V操纵,sem=0,唤醒p2进入就绪队列,进行调度,进入临界区(5)p2执行V操作,sem=1,恢复初始状态。

同步:把异步环境下的一组并发进程,因直接制约而互相发送消息而进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。

 

3.进程,线程,作业,程序。

作业:是用户需要计算机完成的某项任务,而要求计算机所作工作的集合。

进程:是一个程序对某个数据集的执行过程,是分配资源的基本单位。

程序:描述计算机所要完成的独立功能,并在时间上严格得按照前后次序相机地进行计算机操作序列集合,是一个静态的概念。

线程:是在进程内调度和占有处理机的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。

进程和程序:

进程是程序的一次运行活动,是动态的,程序是静态指令;

一个进程可以执行一个或者多个程序,同一程序也可由多个进程执行;

程序作为资源长期保留,进程则是执行过程,是暂时的。

进程和线程:

进程是资源管理的基本单位;线程是处理机调度的基本单位。

以进程为单位进行处理机切换和调度,切换时间长,资源利用率低;线程为单位,不发生资源变化,切换实践短,效率高。

进程和作业:

 


4.哲学家就餐:

有五个哲学家围坐在一圆桌旁,桌中央有一盘通心粉,每人面前有一只空盘子,每两人之间放一只筷子每个哲学家的行为是思考,感到饥饿,然后吃通心粉.为了吃通心粉,每个哲学家必须拿到两只筷子,并且每个人只能直接从自己的左边或右边去取筷子,任一哲学家在自己未拿到两支筷子吃饭前,绝不放下手中的筷子。

(1)保证不会出现两个邻座同时要求吃饭

思路:邻座使用筷子时的进程互斥,使用信号量。设定五个信号量,初始为1,表示对应编号的筷子,有人使用,信号量执行p操作,邻座需要使用筷子时,对两侧的筷子均执行p操作,进入等待队列。吃完后,执行V操作,邻座进入就绪状态,可以开始就餐。

会出现问题,就是每人都拿一个筷子,谁也吃不上的死锁。

(2)既没有两邻座同时吃饭又没人饿死

思路:奇数号的哲学家先取右手的筷子,偶数号的先取左手的。然后还是使用信号量实现互斥。

5.死锁

若干进程竞争使用资源,如果每个进程都占有了一定资源,又申请使用已被另一进程占用且不能抢占的资源,则所有的进程将纷纷进入等待状态,不能继续运行。这种情况叫做死锁。

产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3)资源分配不当等。根本原因在于系统提供的资源数小于并发进程所要求的该类资源数。

产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2)部分分配:进程每次申请它所需要的一部分资源,在等待新资源的同时,继续占用已分配到的资源。(3)不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4)环路条件:存在进程循环链,链中每个进程已获得的资源同时被下一个进程所请求。

解决死锁:

预防:采用策略,是的四个必要条件在系统执行的任何时间均不满足。

避免:动态分配资源,避免死锁。

恢复:检测死锁的位置和原因,通过外力破坏死锁发生的必要条件。

【操作系统面试题准备】相关文章:

c面试题08-04

做家教的准备07-24

准备期末演讲12-28

求职准备(着装)04-20

专题演讲的准备04-17

考试准备作文09-01

星巴克面试题目07-18

软件测试面试题及答案12-30

实用必备综合素质面试题02-16

博彦科技测试面试题03-22