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

1. 什么是死锁?

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

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

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

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

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

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

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

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

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

5.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值