【面试题】操做系统

 面试题

一、linux为何要份内核态和用户态?

操做系统的核心是内核,独立于普通的应用程序,提供操做系统的最基本的功能(进程管理、内存管理、设备驱动程序、文件管理、和网络系统),能够访问受保护的内存空间,也有访问底层硬件设备的全部权限。linux

区分用户态和内核态的缘由:运行在用户态的程序不能访问操做系统内核,保证了内核的安全。给应用程序提供单一简单的接口,使得上层的应用程序不用去关注底层的实现面试

内核态下CPU能够执行任何指令,用户态下CPU只能执行非特权指令。算法

CPU处于内核态,能够随意进入用户态;数组

CPU处于用户态,只能经过软中断方式进入内核态。安全

通常程序开始时都处于用户态,当程序须要系统资源时,经过软中断进入内核态服务器

## 参考:http://www.imooc.com/wenda/detail/542116网络

 

操心系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。并发

linux操做系统而言,高位的1G字节为内核空间;低位的3G字节为用户空间。异步

 

 

 

二、进程与线程的区别操作系统

(1)进程:进程是系统进行资源分配和调度的一个独立单位(程序段、相关数据段、PCB)

(2)线程:线程是进程的一个实体,是CPU调度和分配的基本单位。线程不拥有本身的资源,只拥有程序计数器、一组寄存器和栈区),它能够与同属一个进程的其余线程共享进程所拥有的所有资源

(3)关系:一个线程能够建立和销毁另外一个线程,同属进程的多个线程能够并发执行。

     同属进程的其余线程共享数据,但拥有本身的栈空间,拥有独立的执行序列

(4)区别:进程和线程是不一样的操做系统资源管理方式。

    1)进程独立地址空间,更健壮(一个进程崩溃后不会影响其余进程);线程没有独立的地址空间,一个线程dang掉了整个进程就dang了

    2)切换:因此进程切换时消耗资源更大,效率低

          对于一些要求同时进行而且又要共享变量的并发操做,只能用线程,不能用进程。

 

 

 

二、

 

 

 

 

 

 


 

基础知识

一、操做系统的特性

  • 并发
  • 共享
  • 虚拟
  • 异步

 

二、操做系统的主要功能

  • 进程控制
  • 进程同步
  • 进程通讯
  • 进程调度

 

三、程序并发的特征

  • 间断性
  • 失去封闭性
  • 不可再现性

 

四、程序的特征

  • 动态
  • 并发
  • 独立
  • 异步

 

五、程序的三态模型,五态模型

 

六、为何要引入挂起状态

  终端用户须要、父进程须要、负荷调节需求、操做系统需求

 

七、引入挂起后的状态转换

 

八、进程控制块PCB的做用

  做为进程独立运行基本单位的标志,可以实现间接运行方式,提供常常管理所须要的信息,提供进程调度所须要的信息,实现与其余进程的同步与通讯

 

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

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

  1. 若是有若干进程要求进入空闲的临界区,一次仅容许一个进程进入
  2. 若是已有进程进入临界区,则其余全部试图进入临界区的进程必须等待
  3. 进入临界区的进程要在有限时间内退出,以便其余进程能及时进入临界区
  4. 若是进程不能进入临界区,应该让出CPU,避免进程出现“忙等”现象

 

十、进程同步机制应该遵循的规则

  空闲让进,忙则等待,有限时间,让权等待

 

十一、进程同步经典问题

  • 生产者——消费者
  • 哲学家进餐问题
  • 读者——写者问题

 

十二、进程间的通讯如何实现?

  低级通讯:效率低,生产者每次只能向一个缓冲池投放一个信息;通讯对用户不透明,隐藏了通讯的具体细节

  高级通讯:用户能够利用操做系统所提供的一组通讯命令传送大量数据。通讯过程对用户是透明的。

       共享存储器系统、消息传递系统、管道通讯系统、客户机——服务器系统

 

1三、处理机调度的层次

  • 高级调度
  • 低级调度
  • 终极调度

 

1四、做业调度算法

  • 时间片轮转法
  • 先来先服务算法 FSFS
  • 短做业优先调度算法 SJF
  • 优先级调度算法 PSA
  • 高响应比优先调度算法 HRRN

 

1五、死锁:两个或多个进程被无限阻塞,互相等待的一种状态

  两个或多个并发进程中,若是每一个进程持有某种资源,却又在等待别的进程释放资源,并且再未改变状态前没法向前推动,那么这一组进程产生了死锁。

 

1六、死锁产生的四个条件

  1. 互斥:一个资源一次只能被一个进程使用
  2. 请求保持:一个进程因请求资源而阻塞时,对已持有的资源保持不放
  3. 不可抢占:进程已得到的资源在未使用完以前不能进行抢占
  4. 循环等待:若干进程之间造成一种头尾相接的循环等待资源的关系  

 

 1七、预防死锁的方法

  • 破坏“请求保持”
  • 破坏“不可抢占式”
  • 破坏“循环等待”

 

1八、避免死锁的方法

  • 系统安全状态
  • 银行家算法

 

1九、连续分配存储管理方式

  • 单一连续分配
  • 固定分区分配
  • 动态分区分配

 

20、动态分区分配算法

  • 首次适应算法 FF
  • 循环首次适应算法 NF
  • 最佳适应算法 BF
  • 最坏适应算法 WF

 

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

  Windows提供了3种方式管理内存

  1. 虚拟内存:管理大型对象、结构数组
  2. 内存映射文件:管理大型数据流和在单个计算机上运行多个进程之间的共享数据
  3. 内存堆栈:管理大量的小对象

 

2二、为何须要虚拟存储器

  有的做业很大,需求空间超过了内存总容量,致使做业不能运行

  大量做业要求运行,但内存容量不足,大量的做业停留在外存等待

 

2三、如何实现虚拟存储器?:分页存储器管理 

  请求分页存储管理除了要求必定容量的内存和外存,还须要:

  • 请求页表机制
  • 缺页中断机制
  • 地址变化机制

 

2四、虚拟存储器的页面置换算法

  在进程运行的过程当中,若所要访问的页面不在内存,就须要将它调入内存,而在哪一个页面调入,须要根据算法而定

  • 最佳置换算法 OPT
  • 先进先出算法 FIFO
  • 最近最久未用算法 LRU
  • 最少使用算法 LFU

使用算法进行置换

计算缺页

 

2五、文件管理

2六、磁盘管理

相关文章
相关标签/搜索