美文网首页
Android开发面试指南:操作系统篇 (附答案)

Android开发面试指南:操作系统篇 (附答案)

作者: 像程序那样去思考 | 来源:发表于2023-04-27 21:42 被阅读0次

    面试考察点

    • 跨进程通信方式(IPC)有哪些?其底层原理及其对应应用场景分别是什么?
    • 进程与线程的定义、特点及其区别是什么?
    • 死锁的必要条件是什么?该如何处理?
    • 虚拟内存的定义及其特点。
    • 虚拟地址、逻辑地址、线性地址、物理地址的区别。
    • 段存储、页存储、段页存储的定义及其区别。

    1. 跨进程通信方式(IPC)有哪些?

    image.png

    其底层原理及其对应应用场景分别是什么?

    注:此处给出移动端 Android的跨进程通信方式

    image.png

    2. 进程与线程的定义、特点及其区别是什么?

    2.1 进程

    • 定义 是进程实体的运行过程 & 系统进行资源分配和调度的一个独立单位
    • 作用 使多个程序可 并发执行,以提高系统的资源利用率和吞吐量
    • 进程状态说明(前三个为基础状态)
    image.png

    注意 就绪、阻塞状态的区别:

    1. 就绪状态:进程缺少的资源 = 处理机,只要获得处理机资源立即执行
    2. 等待状态:指 进程缺少其他资源(除了处理机) / 等待某一事件
    • 状态转换
    image.png

    2.2 线程

    • 定义 一个基本的CPU执行单元 & 程序执行流的最小单元
    1. 比进程更小的可独立运行的基本单位,可理解为:轻量级进程
    2. 组成:线程ID + 程序计数器 + 寄存器集合 + 堆栈
    3. 注:线程自己不拥有系统资源,与其他线程共享进程所拥有的全部资源。
    • 作用 减少程序在并发执行时所付出的时空开销,提高操作系统的并发性能。
    • 状态说明 拥有类似于进程的就绪、阻塞、运行3种基本状态,具体如下图:
    image.png

    2.3 二者区别

    image.png

    3. 死锁的必要条件是什么?该如何处理?

    3.1 定义

    运行过程中,多个进程因争夺资源而造成的一种互相等待的僵局

    若无外力作用,这些进程都将无法向前推进

    3.2 原因

    1. 竞争资源:请求同一有限资源的进程数 > 可用资源数
    2. 进程推进顺序非法:请求 & 释放资源顺序不合理,如资源等待链

    3.3 死锁的必要条件

    image.png

    3.4 死锁的处理策略

    image.png

    3.5 其他说明:银行算法介绍

    • 定义 最著名的死锁避免算法
    • 算法介绍
    1. 当进程首次申请资源时,要测试该进程对资源的最大需求量
    2. 若系统现存的资源可满足它的最大需求量,则按当前的申请量分配资源;否则,推迟分配

    4. 虚拟内存的定义及其特点。

    image.png

    5. 虚拟地址、逻辑地址、线性地址、物理地址的区别

    image.png

    6. 段存储、页存储、段页存储的定义及其区别。

    6.1 页存储

    • 简介
    image.png
    • 地址结构 分页存储管理的逻辑地址结构如下图所示:
    image.png
    • 页表
      1. 数据存储在不同的页面中,而页面又离散的分布在内存中的不同中
      2. 为了便于在内存中找到进程的每个页面所对应的物理块,系统为每个进程建立一张页表,记录页面在内存中对应的物理块号,即 逻辑地址 & 实际存储地址之间的映射关系,以实现从页号到物理块号的映射

    页表一般存放在内存中

    image.png

    6.2 段存储

    • 定义

    将用户程序地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配

    • 特点
      1. 优:可编写 & 编译、可针对不同类型的段采用不同的保护、可按段为单位共享(含 通过动态链接进行代码共享)
      2. 缺:会产生碎片

    6.3 段页存储

    • 定义 段式管理 & 页式管理方案结合而成的方案
    1. 作业的地址空间首先被分成若干个逻辑分段,每段都有自己的段号
    2. 再将每段分成若干个大小相等的页

    对于主存空间也分成大小相等的页,主存的分配以页为单位。

    • 特点
      1. 优:具有段式管理 & 页式管理方案的优点
      2. 缺:由于管理软件的增加,复杂性和开销也就随之增加

    至此,关于面试的操作系统篇讲解完毕。下面我会对面试内容继续进行讲解

    相关文章

      网友评论

          本文标题:Android开发面试指南:操作系统篇 (附答案)

          本文链接:https://www.haomeiwen.com/subject/qvsijdtx.html