操作系统面试题总结

本文总结了操作系统面试中常见的问题,包括进程与线程的区别、死锁的条件与避免策略、并发与并行的概念、同步与异步的定义、线程安全的原因及保障措施,以及可重入性的概念。
摘要由CSDN通过智能技术生成

一、进程和线程的区别?

  • 进程是资源分配的最小单位,线程是CPU调度的最小单位

  • 进程有自己的独立地址空间,线程共享地址空间(共享相同的堆空间,可以访问和修改相同的动态内存分配区域,而栈是线程私有的,每个线程都有自己的栈空间,用于保存局部变量和函数调用信息。)

  • 多进程程序更健壮,一个进程不会对其他进程造成影响

  • 线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据

  • 进程上下文切换开销大,线程开销小

二、产生死锁的条件以及如何避免?

死锁是指两个或多个进程在执行过程中,因争夺资源而造成的一种互相等待的现象,导致它们都无法继续执行。(假设有两个线程A和B,它们都需要获取两个资源,资源1和资源2。如果线程A先获取了资源1,然后尝试获取资源2,同时线程B先获取了资源2,然后尝试获取资源1,那么就可能会发生死锁。这是因为线程A持有了资源1并等待资源2,而线程B持有了资源2并等待资源1,两个线程互相等待对方释放资源,从而导致了死锁。)

四大必要条件:

  1. 资源互斥,不可共享:每个资源每次只能被一个进程占用
  2. 占有和等待条件:进程在持有某些资源的同时,又请求其他资源。假设进程A已经占有了R1,并在执
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值