面试题--进程和线程

1、操作系统特点:并发性,共享型,虚拟性和不确定性

2、什么是进程:

  • 进程是指正在运行的一个应用程序,程序一旦运行就是进程
  • 进程是系统进行资源分配的最小单位,每个进程拥有独立的地址空间。
  • 一个进程无法直接去访问另外一个进程的变量和数据结构,需要使用进程间通信,包括管程,消息队列
  • 线程是进程的一个实体,是资源调度的基本单位。

3、进程和线程的区别:

  • 同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间
  • 同一进程内的线程共享本进程的资源,但是进程之间的资源是独立的
  • 一个进程崩溃后,在保护模式下不会对其它进程产生影响,但是一个线程崩溃后,整个进程崩溃
  • 进程切换,消耗资源大,线程切换时间少于进程
  • 两者均可以并发执行

4、死锁是什么?必要条件是什么?怎么避免?

  • 死锁是指多个进程循环等待它方占有的资源而无限期僵持下去的局面。当两个或两个以上的进程同时对多个互斥资源提出使用要求时,有可能导致死锁。
  • 互斥条件:即一次只有一个进程可以使用资源,其它进程不能访问已经分配给其它进程的资源
  • 占有且等待:一个进程等待其它进程释放资源的时候,它已知占有这个资源
  • 不可抢占:其它进程不能强行占用已经分配给进程的资源
  • 循环等待:存在一个闭合链,链中的进程至少占据链中下一个进程的所需的一个资源

死锁避免:

  • 预防互斥:不可能禁止
  • 预防占有且等待:让进程一次性申请完所有的资源。
  • 预防不可抢占:(1)当占有资源的进程进一步申请资源的时候,拒绝,然后强制释放当前占用的资源。必要时可再申请。(2)当一个进程请求被另外一个进程所占据的资源的时候,操作系统可以抢占这个占据资源的进程。要求释放资源。第二种方案只有在任意两个进程优先级不同的情况下.
  • 预防循环等待:定义资源访问线性序列

猜你喜欢

转载自www.cnblogs.com/tingweichen/p/10659777.html
今日推荐