《操作系统》原理笔(面)试题目总结--不定时更新

来源:互联网 发布:知乎凹凸世界为什么火 编辑:程序博客网 时间:2024/06/05 14:13

注:此总结不具任何研究价值,仅为校招 笔试 复习之用,希望 不要误导 各位朋友们, 粗鄙之处还请见谅。 谢谢!

 

1.试解释操作系统原理中的作业、进程、线程、管程各自的定义。

答:

     1)作业:用户在一次解题或事务处理过程中要求计算机系统所做的工作的集合。

     2)进程:程序的一次执行过程,它是系统进行资源分配和调度的一个独立单位。

     3)线程:是进程内的一个可调度实体,是处理机调度的基本单位。

     4)管程:定义了一个数据结构和该数据结构上能为并发进行所执行的一组操作。

 

2.在WIndows编程中,互斥器(mutex)的左右和临界区(critical section)类似,请说明一下二者的主要区别。

 答:1)互斥器作用于进程之间的互斥;

         2)临界区是线程之间的互斥。

 

3.产生死锁的必要条件,如何预防呢?

答:1) 产生死锁的必要条件:

              (1)互斥条件:一个资源每次只能被一个进程使用;

              (2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放;

             (3)不可剥夺条件:进程对已获得的资源,在未使用完之前,不能强制剥夺;

             (4)循环等待条件:多个进程之间形成一种循环等待资源的的关系。

    预防死锁:只要使其中之一不成立,死锁就不会出现:(注:互斥条件是无法破坏的

             (1)采用资源静态分配策略,破坏“部分分配”条件;

             (2)允许进程剥夺使用其他进程占有的资源,破坏 不可剥夺条件;

             (3)采用资源有序分配法,破坏环路等待条件。

 

4.linux系统的进程间通信有哪几种方式

管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。

有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。

信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。

                                               因此,主要作为进程间以及同一进程内不同线程之间的同步手段。

消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲

                                              区大小受限等缺点。

# 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。

共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它

                                             是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。

套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同主机间的进程通信。

 

5.简述Windows内存管理的的几种方式和优缺点。

答:Windows内存管理主要方式分为:页式管理、段式管理、段页式管理。

       页式管理的基本原理:将各进程的虚拟空间划分成若干个大小相等的页(page);优点:无碎片。缺点:程序全部程序全部装入内存,需要硬件支持。

       段式管理的基本原理:把程序按内容或过程函数关系分成段。以段为单位分配内存,通过地址映射机制把段式虚拟地址转换为世纪内存物理地址。优点:针对不同的段采取不同的保护,按段为单位进行共享。缺点:会产生碎片。

       段页式管理的基本原理:系统将程序分成段,每一个段又分成若干页,兼容了段、页式内存管理的优点,缺点:增加了复杂性和系统开销。

 

 

原创粉丝点击