您的位置:首页 > 职场人生

操作系统常见面试题

2016-03-01 16:27 477 查看
1、请简述进程与线程的区别?

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。

2、Windows下的内存是如何管理的?

Windows提供了3种方法来进行内存管理:

1、虚拟内存,最适合用来管理大型对象或者结构数组;

2、内存映射文件,最适合用来管理大型数据流(通常来自文件)以及在单个计算机上运行多个进程之间共享数据;

3、内存堆栈,最适合用来管理大量的小对象。
3、Windows操纵内存可以分两个层面:物理内存和虚拟内存。
4、Windows消息调度机制是:消息队列。

5、描述实时系统的基本特性:

所谓“实时操作系统”,实际上是指操作系统工作时,其各种资源可以根据需要随时进行动态分配。由于各种资源可以进行动态分配,因此,其处理事务的能力较强、速度较快。

6、什么是临界区?如何解决冲突?

每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区,进入后不允许其他进程进入。

  (1)如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入;

  (2)任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待;

  (3)进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区;

  (4)如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。
7、说说分段和分页

页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。

  段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好的满足用户的需要。

  页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而一个系统只能有一种大小的页面。段的长度却不固定,决定于用户所编写的程序,通常由编辑程序在对源程序进行编辑时,根据信息的性质来划分。

  分页的作业地址空间是一维的,即单一的线性空间,程序员只须利用一个记忆符,即可表示一地址。分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。
8、说出你所知道的保持进程同步的方法?

进程间同步的主要方法有原子操作、信号量机制、自旋锁、管程、会合、分布式系统等。

9、Linux文件属性有哪些?

-rw-r--r--那个是权限符号,总共是- --- --- ---这几个位。

  第一个短横处是文件类型识别符:-表示普通文件;c表示字符设备(character);b表示块设备(block);d表示目录(directory);l表示链接文件(link);后面第一个三个连续的短横是用户权限位(User),第二个三个连续短横是组权限位(Group),第三个三个连续短横是其他权限位(Other)。每个权限位有三个权限,r(读权限),w(写权限),x(执行权限)。如果每个权限位都有权限存在,那么满权限的情况就是:-rwxrwxrwx;权限为空的情况就是- --- --- ---。

  权限的设定可以用chmod命令,其格式位:chmod ugoa+/-/=rwx filename/directory。例如:

  一个文件aaa具有完全空的权限- --- --- ---。

  chmod u+rw aaa(给用户权限位设置读写权限,其权限表示为:- rw- --- ---)

  chmod g+r aaa(给组设置权限为可读,其权限表示为:- --- r-- ---)

  chmod ugo+rw aaa(给用户,组,其它用户或组设置权限为读写,权限表示为:- rw- rw- rw-)

  如果aaa具有满权限- rwx rwx rwx。

  chmod u-x aaa(去掉用户可执行权限,权限表示为:- rw- rwx rwx)

  如果要给aaa赋予制定权限- rwx r-x r-x,命令为:

  chmod u=rwx,go=rx aaa
10、什么是死锁?其条件是什么?怎样避免死锁?
死锁的概念:在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是两个或多个进程被无限期地阻塞、相互等待的一种状态。

  死锁产生的原因主要是:? 系统资源不足;? 进程推进顺序非法。

  产生死锁的必要条件:

  (1)互斥(mutualexclusion),一个资源每次只能被一个进程使用;

  (2)不可抢占(nopreemption),进程已获得的资源,在未使用完之前,不能强行剥夺;

  (3)占有并等待(hold andwait),一个进程因请求资源而阻塞时,对已获得的资源保持不放;

  (4)环形等待(circularwait),若干进程之间形成一种首尾相接的循环等待资源关系。

  这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。

  死锁的解除与预防:理解了死锁的原因,尤其是产生死锁的四个必要条件,就可以最大可能地避免、预防和解除死锁。所以,在系统设计、进程调度等方面注意如何不让这四个必要条件成立,如何确定资源的合理分配算法,避免进程永久占据系统资源。此外,也要防止进程在处于等待状态的情况下占用资源。因此,对资源的分配要给予合理的规划。
  死锁的处理策略:鸵鸟策略、预防策略、避免策略、检测与恢复策略。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: