操作系统面试知识点

进程(process)

定义:进程,是一个程序的执行过程,是一个程序及其数据在处理机上顺序执行时所发生的活动。进程是一个实体,每个进程都拥有自己独立的地址空间。进程是执行中的程序。进程由进程控制块,程序段,数据段三部分组成。

 

状态:产生,就绪,运行,阻塞,退出。

产生的步骤:

  1. 申请空白PCB
  2. 为新进程分配资源
  3. 初始化PCB

 

阻塞终止的原因:

  1. 请求系统服务
  2. 启动某种操作
  3. 新数据尚未到达
  4. 无新工作可做。

 

进程的调度算法:

  1. FIFO(先进先出)
  2. RR(时间片轮转法)
  3. HRF(最高优先级)

 

线程(Thread)

定义:进程的一部分,轻量级进程,独立调度和分派的基本单位,可并发执行,共享进程内存,资源。

 

线程跟进程的区别

Answer:

线程:

  1. 一个程序,至少有一个进程,一个进程至少有一个线程。
  2. 进程运行时拥有独立的内存单元,而同一进程内的多个线程共享内存。进程是分配资源的基本单位,而线程独立运行和独立调度的基本单位。
  3. 进程间通信IPC,线程之间可以直接读写。
  4. 线程调度切换比进程快。
  5. 在多线程OS中,进程不是一个可执行的实体。

 

Linux进程间通信

  1. 管道及命名管道(Pipe)
  2. 信号(Signal)
  3. 消息队列(Message报文)
  4. 共享内存
  5. 信号量
  6. 套接口(Socket)

 

Linux多线程同步的几种方法

  1. 互斥锁(mutex)
  2. 条件变量(cond)
  3. 信号量
  4. 事件

 

进程死锁

定义:多个进程抢占资源导致互相等待现象。

产生死锁的原因:

  1. 系统资源不足
  2. 资源分配不当
  3. 进程执行顺序不合适。

 

产生死锁的四个必要条件:

  1. 互斥条件:一个资源只能被一个进程使用。
  2. 请求与保持条件:一个进程因请求资源而阻塞时,对已经持有的资源保持不放。
  3. 不剥夺条件:进程已获得资源,在未使用完成之前,不得强行剥夺。
  4. 循环等待条件:若干进程之间行程一种头尾想接的循环等待资源的关系。

 

处理死锁的方法:

  1. 忽略该问题。鸵鸟算法。
  2. 检测死锁并且恢复。
  3. 资源有序分配,避免环路的产生。
  4. 破坏死锁产生的条件。

分页与分段

说说分段和分页

  1. 页是信息的物理单位,分页目的是为实现离散分配方式,以消减内存的外零头,提高内存的利用率、
  2. 段是信息的逻辑单位,分段的目的是为了能更好的满足用户编程的需要。
  3. 页的大小固定且由系统确定,段的长度却不固定。
  4. 分页的作业地址空间是一维的,只需给出地址。分段的作业地址空间是二维的,需给出段名,又需给出段内地址。

进程参考资料:http://www.cnblogs.com/memewry/archive/2012/08/25/2656966.html

 

posted @ 2014-10-03 16:26  凡尘里的一根葱  阅读(306)  评论(0编辑  收藏  举报