操作系统常见面试题(二)

死锁

1、什么是死锁?

多个进程/线程同时被阻塞,他们中的一个或全部都在等待某个资源释放。由于进程/线程被无限期地阻塞,程序无法正常终止的情况。

2、产生死锁的四个条件?

  1. 互斥:一次只有一个进程可以使用资源。如果另一进程申请该资源,必须等待直到该资源被释放为止。
  2. 请求保持:一个进程至少占有一个资源,并等待另一资源,而该资源等其他进程占有。
  3. 不可剥夺:资源不能被抢占,只能等待持有资源的进程完成后释放。
  4. 循环等待:P1等待的资源被P2占有,P2等待的资源被P3占有…Pn等待的资源被P1占有。

3、解决死锁的方法?

  1. 预防:限制并发进程对资源的请求。
  2. 避免:系统分配资源时,根据资源的使用情况提前预测,避免发生死锁。
  3. 检测:系统设有专门的机构对死锁检测。
  4. 解除:与检测配套的措施,用于将进程从死锁状态下解脱出来。

4、如何避免死锁?

  1. 破坏请求与保持条件:一次性申请所有资源
  2. 破坏不可剥夺条件:占用部分资源进一步申请其他资源时,如果申请不到,可以主动释放其占有的资源
  3. 破坏循环等待条件:按序申请资源。让所有进程按照相同的顺序请求资源,释放资源则反序释放。
内存管理

1、内存管理主要做什么?

内存管理主要做的事情

  • 内存分配与回收:对进程所需的内存进行分配和回收
  • 地址转换:将程序中的虚拟地址转换为内存中的物理地址
  • 内存扩充:当系统内存不足时 ,利用虚拟内存技术或自动覆盖技术从逻辑上扩充内存
  • 内存映射:将文件映射到进程的 进程空间中,通过内存指针读取内存的方式读取文件,速度更快
  • 内存优化:通过调整内存分配策略和回收算法来优化内存使用效率
  • 内存安全:保证程序之间的内存互不干扰,避免恶意程序破坏系统安全

2、什么是内存碎片?

内存碎片是由内存的申请和释放产生的,通常分为两种:

  1. 内部内存碎片:已经分配给进程使用,但未被使用的内存。
  2. 外部内存碎片:由于未分配的连续内存区域太小,以至于不能满足任意进程所需要的内存分配请求,这些小片段且不连续的内存空间。简言之,外部碎片指那些未分配给进程又不能使用的内存。

内存碎片

3、常见内存管理方式?

  • 连续内存管理:为一个用户程序分配一个连续的内存空间,内存利用率不高
    • 块式管理:将内存分为固定大小的几块,当程序需要内存时,OS就分配一块给它。存在内部碎片和外部碎片。
    • Linux中使用伙伴系统算法来实现连续内存管理,可以有效解决外部碎片问题。将内存按照2的幂次划分,并将相邻的内存块合成一对伙伴。内存分配时,伙伴系统会不断切分内存直到找到大小合适的内存,内存释放时,将两个内存块合并形成更大的内存块,以便后续分配。
  • 非连续内存管理:允许一个程序使用的内存分布在离散或不相邻的内存中,更灵活
    • 段式管理:以段(一段连续的物理内存)的形式管理/分配物理内存。
    • 页式管理:将物理内存分为连续等长的物理页,虚拟地址空间也被划分为连续等长的虚拟页。
    • 段页式管理机制:先将内存分段,再将段分页
虚拟内存

1、虚拟内存是什么?有什么用?

虚拟内存是一个假想出来的空间,只是在逻辑上存在 ,主要作用是为了作为进程访问主存的桥梁并简化内存管理。

虚拟内存作为进程访问主存的桥梁

总体而言,虚拟内存的作用包括以下:

  • 隔离进程
  • 提升物理内存使用率:
  • 简化内存管理
  • 多个进程共享物理内存
  • 提高内存使用安全性
  • 提供更大的可使用内存空间

2、虚拟地址和物理地址?

  • 物理地址:真正的物理内存中的地址
  • 虚拟地址:程序访问的内存地址
  • 地址翻译/地址转换:OS通过CPU中的MMU(内存管理单元)将虚拟地址转换为物物理地址

3、虚拟地址和物理地址如何映射?

  1. 分页机制
  2. 分段机制
  3. 段页机制

整理自JavaGuide

  • 40
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值