专栏首页Android知识分享全面&详细的面试指南:操作系统篇 (附答案)

全面&详细的面试指南:操作系统篇 (附答案)

面试考察点

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

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

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

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


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

2.1 进程

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

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

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

2.2 线程

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

2.3 二者区别

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

3.1 定义

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

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

3.2 原因

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

3.3 死锁的必要条件

3.4 死锁的处理策略

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

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

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

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

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

6.1 页存储

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

页表一般存放在内存中

6.2 段存储

  • 定义

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

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

6.3 段页存储

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

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

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

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

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://blog.csdn.net/carson_ho复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 全面&详细的面试指南:Java语言篇 (附答案)

    关于上述Java集合的所有内容介绍,具体请看文章:Carson带你学Java:那些关于集合的知识都在这里了!

    Carson.Ho
  • 全面&详细的面试指南:数据结构与算法篇 (附答案)

    对于不同的查找需求场景,会采用不同的查找类型,最终采用的查找方式(查找算法)也有所不同,具体如下

    Carson.Ho
  • 全面&详细的面试指南:Java虚拟机(JVM)篇 (附答案)

    Java虚拟机在运行Java程序时,会管理着一块内存区域:运行时数据区。这里考察的内容是:

    Carson.Ho
  • 全面&详细的面试指南:计算机网络篇 (附答案)

    计算机网络体系结构分为3种:OSI体系结构、TCP / IP体系结构、五层体系结构。

    Carson.Ho
  • Spring面试题总结的很全面,附带超详细答案

    Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Java应用程序中,但对Java EE平台上的Web应用程序有更好的扩展...

    李红
  • Spring面试题总结的很全面,附带超详细答案 ​

    Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Java应用程序中,但对Java EE平台上的Web应用程序有更好的扩展...

    李红
  • 2021 Java面试题大全(整理版)1000+面试题附答案详解,最全面详细,看完稳了!

    进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全,其中概括的知识点有:Java、MyBatis、Z...

    全栈程序员站长
  • GitHub星标1k+的C#/.NET/.NET Core学习、工作、面试指南(让现在的自己不再迷茫✨)

    ?知识库中有总结不足的地方,欢迎各位大佬给我提意见(?留下您宝贵的建议)。 如果这个知识库对大家有帮助的话记得给作者一个星星哟⭐(您的小星星就是对我最大的肯定和...

    追逐时光者
  • 【程序源代码】非常棒的java学习面试指南

    最近好多同学想学习java,我在网上找了找终于找到这个指南。这一个非常不错的java学习指南。内容包含的比较全面,知识点也比较完整。

    程序源代码
  • Java工程师学习指南第2部分:JavaWeb技术世界

    安利一个很不错的Java技术仓库,该仓库为【Java工程师技术指南】力求打造最完整最实用的Java工程师学习指南!github.com/h2pl/

    Java技术江湖
  • Java工程师学习指南第3部分:Spring与SpringMVC源码解析

    安利一个很不错的Java技术仓库,该仓库为【Java工程师技术指南】力求打造最完整最实用的Java工程师学习指南!github.com/h2pl/

    Java技术江湖
  • Java工程师学习指南第1部分:夯实Java基础系列

    安利一个很不错的Java技术仓库,该仓库为【Java工程师技术指南】力求打造最完整最实用的Java工程师学习指南!github.com/h2pl/

    Java技术江湖
  • 5分钟面试指南(第三十四篇 存储最后一弹)

    本部分我们会为大家提供一些python初级工程师在面试过程中遇到的常见的面试题目,期望达到的效果:

    python编程从入门到实践
  • 这里有 300 篇 Python 与机器学习类原创笔记

    主要包括计算机科学中基本的算法与数据结构,结合算法思想和Leetcode实战,总结介绍。

    好好学java
  • Java工程师学习指南第6部分:深入理解JVM虚拟机

    本文整理了微信公众号【Java技术江湖】发表和转载过的JVM虚拟机相关优质文章,想看到更多Java技术文章,就赶紧关注本公众号吧吧。

    Java技术江湖
  • Java工程师学习指南第7部分:重新学习MySQL与Redis

    本文整理了微信公众号【Java技术江湖】发表和转载过的Mysql和Redis相关优质文章,想看到更多Java技术文章,就赶紧关注本公众号吧吧。

    Java技术江湖
  • Java工程师学习指南第8部分:分布式系统理论与实践

    本文整理了微信公众号【Java技术江湖】发表和转载过的分布式相关优质文章,想看到更多Java技术文章,就赶紧关注本公众号吧。

    Java技术江湖

扫码关注腾讯云开发者

领取腾讯云代金券