操作系统面试题(更新中。。)

来源:互联网 发布:dm 数据挖掘 编辑:程序博客网 时间:2024/05/16 17:27

1. 什么是死锁?

如果在一个进程集合中,每个进程都在等待只能由该集合中的其他进程才能引发的事件,而无限期陷入僵持的局面成为死锁。

即一组进程中,如果每个进程都获得了部分资源,还想要得到其他进程所占用的资源,最终所有的进程都将陷入死锁。

2. 产生死锁的4个必要条件

  1. 互斥条件:进程互斥使用资源
  2. 占有和等待条件(部分分配条件):申请新资源得不到满足而等待时,不释放已占有资源。
  3. 不剥夺条件:一个进程不能抢夺其他进程占有的资源。
  4. 循环等待条件(环路条件):存在一组进程循环等待资源的现象。

死锁的避免:只要破坏以上四个条件之一就可以了。

3. 进程和线程的区别是什么?

  • 进程是执行着的应用程序
  • 线程是进程内部的一个执行序列
  • 一个进程可以有多个线程
  • 线程又叫轻量级进程

4. 如何确保N个线程可以访问N个资源同时又不导致死锁?

使用多线程,简单的避免死锁的方法是:指定获取锁的顺序,并强制线程按照指定的顺序获取锁。因此,如果所有的线程都是以同样的顺序加锁和释放锁,就不会出现死锁了。

5.

0 0