【计算机操作系统】常见问题与解答(追加中)

时间:2018年1月14日

一、进程与线程的区别
1. 在调度方面:线程是CPU调度的基本单位。
2. 在资源方面:进程是资源分配的最小单位,拥有独立的地址空间,线程没有独立的地址空间,但是有自己的程序计数器、操作数栈和局部变量,可以将线程看成一个轻量级的进程。
3. 从执行过程来看,同一进程下的线程可以共享该进程的内存地址空间,它们可以访问相同的变量,在同一个堆中分配对象,这相对于进程间的通信实现了良好的数据共享,提高了效率。

《java多线程编程核心技术》笔记中也介绍了它们之间的区别:
进程是受操作系统管理的基本运行单元。
线程则可以理解成为进程中独立运行的子任务,例如在QQ.exe运行时,就有很多子任务在同时允许。如:好友视频线程、下载文件线程、传输数据线程等。

二、死锁的必要条件,如何避免?

四个必要条件:
1. 互斥条件:一个资源只能被一个进程使用
2. 请求与保持条件:一个进程因请求资源而阻塞不会释放自己已经拥有的资源
3. 不剥夺条件:进程获得的资源在未使用完之前不允许其他进程剥夺
4. 循环等待条件:A等待B,B等待C,C等待A。存在这样的一个请求资源环形链

避免死锁:
(1)破坏“互斥”条件:就是在系统里取消互斥。若资源不被一个进程独占使用,那么死锁是肯定不会发生的。但一般“互斥”条件是无法破坏的。因此,在死锁预防里主要是破坏其他三个必要条件,而不去涉及破坏“互斥”条件。
(2)破坏“请求和保持”条件:在系统中不允许进程在已获得某种资源的情况下,申请其他资源。即要想出一个办法,阻止进程在持有资源的同时申请其他资源。

方法一:所有进程在运行之前,必须一次性地申请在整个运行过程中所需的全部资源。这样,该进程在整个运行期间,便不会再提出资源请求,从而破坏了“请求”条件。系统在分配资源时,只要有一种资源不能满足进程的要求,即使其它所需的各资源都空闲也不分配给该进程,而让该进程等待。由于该进程在等待期间未占有任何资源,于是破坏了“保持”条件。
优点:简单、易行且安全。
缺点:a.资源被严重浪费,严重恶化了资源的利用率。b.使进程经常会发生饥饿现象。

方法二:要求每个进程提出新的资源申请前,释放它所占有的资源。这样,一个进程在需要资源S时,须先把它先前占有的资源R释放掉,然后才能提出对S的申请,即使它可能很快又要用到资源R。

(3)破坏“不可抢占”条件:允许对资源实行抢夺。

方法一:如果占有某些资源的一个进程进行进一步资源请求被拒绝,则该进程必须释放它最初占有的资源,如果有必要,可再次请求这些资源和另外的资源。
方法二:如果一个进程请求当前被另一个进程占有的一个资源,则操作系统可以抢占另一个进程,要求它释放资源。只有在任意两个进程的优先级都不相同的条件下,该方法才能预防死锁。

(4)破坏“循环等待”条件:将系统中的所有资源统一编号,进程可在任何时刻提出资源申请,但所有申请必须按照资源的编号顺序(升序)提出。这样做就能保证系统不出现死锁。

利用银行家算法避免死锁:

银行家算法:

设进程i提出请求Request[j],则银行家算法按如下规则进行判断。

(1) 如果Request[j]≤Need[i,j],则转向(2),否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。

(2) 如果Request[j]≤Available[j],则转向(3);否则表示尚无足够资源,Pi需等待。

(3) 假设进程i的申请已获批准,于是修改系统状态:

Available[j]=Available[j]-Request[i]

Allocation[i,j]=Allocation[i,j]+Request[j]

Need[i,j]=Need[i,j]-Request[j]

(4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。

三、页式存储、段式存储、段页式存储
页式存储:
用户程序的地址空间被分为若干固定大小的区域,成为“页”,内存被划分为等大小的区域称为“段”。可以将一页程序放入任意一段中存储,由一个页表来维护它们之间的关系。
优点:页长固定、便于管理且不存在碎片
缺点:页长与程序的逻辑大小不相关
物理地址=物理块号*页面大小+页内偏移

端式存储:
段是按照程序的自然分界划分的长度可以改变的区域,将用户程序地址空间划分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配。
每个程序设置一个段表,段表的每行对应一个段,每行至少包括三个字段:有效位(指明该段是否已经调入主存)、段起址(该段在实存中的首地址)和段长(记录该段的实际长度)
绝对地址=根据段号找到段表中的起始地址+段内地址

段页式存储
用分段方法来分配和管理虚拟存储器。程序的地址空间按逻辑单位分成基本独立的段,而每一段有自己的段名,再把每段分成固定大小的若干项。
用分页方法来分配和管理实存。即把整个主存分成与上述页大小相等的存储块,可装入作业的任何一页。程序对内存的调入或调出是按页进行的。但它又可以按段实现共享和保护。
逻辑地址结构,一个逻辑地址用三个参数来表示:段号S;页号P;页内地址d;

时间:2018年1月15日

4.什么是虚拟内存?
是操作系统内存管理的一种技术,它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分割成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

5.逻辑地址、线性地址、物理地址、虚拟地址
逻辑地址:它是一个相对地址,相对当前进程数据段的地址
线性地址:是逻辑地址到物理地址变换的中间层,逻辑地址+段基址就是线性地址
物理地址:如果没有启用分页机制,那么线性地址就是物理地址。如果启用了分页机制,需要再经变换产生物理地址,它是CPU外部地址总线上的寻址信号

操作系统答疑串讲及操作系统方面试题 1、 什么是操作系统,它与系统软件之间的关系是什么?操作系统的主要功能是什么? 答:操作系统是控制计算机的所有系统资源并提供开发应用程序的基础。操作系统是最基本的系统软件。操作系统的主要功能是虚拟机和资源管理器。 2、 资源(设备)可以分为那几类?打印机和磁盘属于什么类资源(设备)? 答:从资源的可否剥夺的角度看,可以把资源分为可剥夺资源和不可剥夺资源。从设备的占有角度看,资源分为独占设备、共享设备和虚拟设备。 3、 读盘操作过程所涉及到的间开销按照间开销从大到小依次为那些?有什么好的方法减少读盘操作的间? 答:从大到小依次为:寻道间、旋转延迟间、实际的数据传输间。选择好的读写臂调度算法,减少寻道间,有效减少读盘操作整的间。 4、 若某单处理机系统有M个进程,则处于就绪状态、运行状态、阻塞状态进程个数分别最多为多少? 答:就绪状态进程最多为M个、运行状态进程最多为1个、阻塞状态进程最多为M个。 5、 什么是死锁,死锁发生的必要条件是什么?处理死锁常用的策略有那些? 答:若一个进程集合的每一个进程都在等待只能由本集合的另一进程才能引发的事件,则这种情况被视为死锁。死锁发生的必要条件是互斥、非剥夺、部分分配和循环等待条件。处理死锁常用的策略主要(1)有忽略该问题;(2)检测死锁并恢复;(3)死锁避免;(4)死锁预防。 。。。。。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值