返回顶部
首页 > 资讯 > 操作系统 >操作系统面试高频考点
  • 234
分享到

操作系统面试高频考点

2023-07-31 17:07:01 234人浏览 独家记忆
摘要

1、进程与线程的区别进程是资源分配的最小单位,线程是CPU调度的基本单位。进程拥有独立的地址空间,线程没有独立的地址空间,但拥有独立的堆栈和局部变量。在多进程和多线程中,多进程比多线程更健状。由于进程拥有独立的地址空间,所以一个进程异常结束

操作系统面试高频考点

1、进程与线程的区别

  • 进程是资源分配的最小单位,线程是CPU调度的基本单位。
  • 进程拥有独立的地址空间,线程没有独立的地址空间,但拥有独立的堆栈和局部变量。
  • 在多进程和多线程中,多进程比多线程更健状。由于进程拥有独立的地址空间,所以一个进程异常结束时,不会影响到其它进程;线程没有独立的地址空间,当线程异常结束时,可能会影响到其它线程。
  • 创建进程的开销比创建线程的开销大;进程上下文切换的开销比线程上下文切换开销大。

2、进程间通信的方式有哪些

  • 管道:(1)无名管道:用于具有亲缘关系的进程间通信,以字节流的形式。(2)有名管道:打破了情缘关系的界限,使两个不相干的进程用管道通信,以字节流的形式。
  • 消息队列:数据以块的方式进行传输,但要把数据从用户空间往内核空间拷贝,开销大。
  • 共享内存:存在资源竞争的问题
  • 信号:异步通信
  • 信号量:同步互斥
  • socket通信:实现两台计算机间的通信。

3、进程调度算法

  • 先来先服务调度算法;按照入队的先后顺序一个进程一个进程的执行
  • 最短作业优先调度算法;优先选择运行时间最短的进程运行
  • 高响应比优先调度算法;进程调度时,先计算响应比优先级,然后选则响应比优先级最高的进程运行
  • 时间片轮转调度算法;每个进程能运行的时间是一样的,进程根据时间片轮流运行
  • 最高优先级调度算法;选择优先级最高的进程
  • 多级反馈队列调度算法;设置多级队列,队列优先级从高到底、时间片从小到大

4、孤儿进程是什么

(1)父进程先于子进程结束,此时子进程成为一个孤儿进程。

(2)linux系统规定:所有孤儿进程都成为一个特殊进程(进程1,也就是init进程)的子进程。

5、多线程同步机制有哪些

  • 互斥量
  • 读写
  • 条件变量
  • 信号量
  • 自旋锁

6、简述进程内存分区

操作系统面试高频考点
  • 内核空间:存放操作系统代码和数据
  • 栈区:存放局部变量、函数的参数值等,该区域由操作系统控制
  • 动态库/共享内存映射区:可执行程序运行依赖的动态库加载在该区域;mmap映射的共享内存也在该区域
  • 堆区:提供给程序员自行操作的内存区域,malloc/free和new/delete操作的就是这块内存
  • 可读写数据区

(1).bss段:存储未初始化的、初始化为0的全局变量和静态变量。

(2).data段:存储初始化不为0的全局变量和静态变量、const型常量。

  • 只读数据区:存放二进制代码、一些const修饰变量、字符串常量等

7、内存碎片

  • 如何产生内存碎片

程序员在程序中用malloc向虚拟内存的堆空间动态申请内存,用free释放内存。如果程序存在大量的malloc/free操作且长时间运行,则虚拟内存的堆空间很容易产生内存碎片

  • 什么是内存碎片

内存碎片是指堆空间剩余很多离散的空闲内存,但不能满足malloc的分配请求。内存碎片分为外部碎片和内部碎片。下图描述了部分堆空间的内存分配情况,将堆空间以4字节为单位划分为许多分配块,白色块表示空闲内存,浅蓝色和深蓝色块表示已分配的内存。假设内存分配的最小单位是一个分配块(4字节)。

  1. 外部碎片:由于堆空间中不存在连续4个分配块大小的空闲内存(白色块),但有许多离散的、小于4个分配块大小的空闲内存。所以当malloc(16)申请16字节时会分配失败,原因是没有连续4个分配块的空闲内存,但有小于4个分配块的空闲内存,这些内存称为外部碎片
  2. 内部碎片:由于分配内存的最小单位是一个分配块(4字节),所以当malloc(5)申请5字节时,堆空间分配两个空闲块共8字节,但程序只需要5字节,剩余的3字节(深蓝色)没有用到,这3字节内存称为内部碎片
操作系统面试高频考点

8、堆和栈的区别?

  • 分配方式不同

栈:由系统自动分配

堆:由程序员手动申请

  • 申请大小不同

栈:栈区的内存大小是固定的,只要申请的内存小于栈区剩余的内存,就可以分配成功,否则栈会溢出。

堆:堆区的内存大小是由计算机的虚拟内存决定的,

9、互斥锁与信号量的区别

(1)信号量用于线程同步,互斥锁用于线程互斥。

(2)信号量可以为非负整数,可以实现多个同类资源的多线程同步;互斥锁只能为0/1,只能用于一个资源的互斥访问。

(3)信号量可以由一个线程释放,另一个线程得到;互斥锁的加锁和解锁必须由同一线程分别对应使用,且多个线程使用多个互斥锁必须注意统一顺序,否则可能造成死锁。

10、同步和异步的区别

  • 同步:A调用B,必须等B处理结束后返回,A才能继续往下执行
  • 异步:A调用B,不用等B处理结束,A可以继续往下执行,等B处理结束后通过回调等方式通知A

11、死锁

什么是死锁?产生死锁的原因是什么?

(1)死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程将无法向前推进。

(2)原因:①系统资源不足。②资源分配不当。③进程推进的顺序不合适

死锁的四个必要条件是什么?

(1)互斥条件:一个资源每次只能被一个进程使用,其他进程只能等待。

(2)请求与保持条件:进程已经获得至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有,此时该进程被阻塞,但对已获得资源依然保持不放。

(3)不可剥夺条件:进程所获得的资源不能被其他进程剥夺,只能被自己释放。

(4)循环等待条件:若干进程形成首尾相接循环等待资源的关系。

注意:以上四个条件缺一不可。

死锁的处理方法?

(1)预防死锁:通过设置一些限制条件,去破坏产生死锁的必要条件。

(2)避免死锁:在资源分配过程中,使用某种方法避免系统进入不安全的状态,从而避免发生死锁。

(3)检测和解除死锁:允许死锁的发生,但是通过系统的检测之后,采取一些措施,将死锁清除掉。

怎样预防死锁?

(1)破坏“请求与保持条件”

①静态分配,即每个进程在开始执行时就申请它所需要的全部资源:

②动态分配,即每个进程在申请所需要的资源时它本身不占用系统资源。

(2)破坏“不可剥夺条件”:一个进程在阻塞等待期间,其占有的资源被隐式释放后被其他进程使用,而阻塞等待的资源只有获得所有需要的资源才能重新启动。

(3)破坏“循环等待条件”:采用资源的有序分配,将所有资源进行编号,紧缺的资源采用 比较大的编号,一个进程只有获得较小编号的资源才可以申请较大编号的资源

以上就是操作系统面试高频考点的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 操作系统面试高频考点

本文链接: https://lsjlt.com/news/365190.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 操作系统面试高频考点
    1、进程与线程的区别进程是资源分配的最小单位,线程是CPU调度的基本单位。进程拥有独立的地址空间,线程没有独立的地址空间,但拥有独立的堆栈和局部变量。在多进程和多线程中,多进程比多线程更健状。由于进程拥有独立的地址空间,所以一个进程异常结束...
    99+
    2023-07-31
  • CSS面试的高频考点有哪些
    这篇文章主要介绍“CSS面试的高频考点有哪些”,在日常操作中,相信很多人在CSS面试的高频考点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS面试的高频考点有哪些”...
    99+
    2024-04-02
  • 【Python八股文系列】:100个Python的面试/笔试高频考点
    Python的100个面试/笔试高频考点 本文主要整理了关于Python的面试/笔试的一些考点,可用于查漏补缺。 涉及到的一些Python进阶知识,可以查看专栏学习:《Python进阶》 ...
    99+
    2023-08-31
    python 面试 开发语言
  • 前端面试CSS中的高频考点有哪些
    今天小编给大家分享一下前端面试CSS中的高频考点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。理论篇1. box-si...
    99+
    2023-07-04
  • 【整理分享】75道前端面试CSS中的高频考点
    理论篇1. box-sizing 属性值有什么作用?用来控制元素的盒子模型的解析模式,默认为content-boxcontext-box:W3C 的标准盒子模型,设置元素的 height/width 属性指的是 content 部分的高/宽...
    99+
    2022-11-22
    css
  • 二维码和NPM:Java面试中的高频考点,你掌握了吗?
    在Java开发中,二维码和NPM是两个常见的概念,也是Java面试中的高频考点。本文将介绍二维码和NPM的基本概念和用法,并提供相关的演示代码,帮助读者更好地掌握这两个知识点。 一、二维码 1.概念 二维码是一种可以储存大量信息的矩阵条码...
    99+
    2023-09-11
    面试 二维码 npm
  • 基于C#制作考试答题系统
    目录效果展示:起始页代码考试页面代码有图标的应用程序效果展示: 1. 进入页面: 2. 答题界面: 3. 时间截止界面: 4. 提交界面: 起始页代码 public part...
    99+
    2024-04-02
  • Linux操作系统全面知识点有哪些
    本篇内容主要讲解“Linux操作系统全面知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux操作系统全面知识点有哪些”吧!Linux 简介UNIX  是一个交互式系统,...
    99+
    2023-06-15
  • Java如何实现在线高中考试系统
    这篇文章主要介绍了Java如何实现在线高中考试系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。项目分为前台和后台,前台主要为学生角色、后台主要为管理员角色。管理员添加试题和...
    99+
    2023-06-29
  • Go 语言在分布式系统中的应用:面试考点解析
    随着互联网时代的到来,分布式系统的使用越来越广泛。而在分布式系统的开发中,如何保证系统的高可用、高性能和高并发,成为了每个开发者必须面对的问题。而 Go 语言作为一种强调高并发和高性能的语言,在分布式系统开发中发挥着重要作用。本文将从面试...
    99+
    2023-06-16
    http 面试 分布式
  • Java面试高频问题之RabbitMQ系列全面解析
    1.RabbitMQ是什么? RabbitMQ是一款开源的,Erlang编写的,基于AMQP(高级消息队列协议)协议的消息中间件。 2.为什么要使用消息队列? 从本质上来说是因为互联...
    99+
    2024-04-02
  • web前端高频知识点面试题有哪些
    今天小编给大家分享一下web前端高频知识点面试题有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。var、let、cons...
    99+
    2023-07-05
  • 操作系统的双面性:闭源系统的优缺点大比拼
    操作系统是计算机的心脏,管理着硬件资源和软件交互。在操作系统的领域中,闭源系统和开源系统并存,各有优劣势。本篇文章将深入探讨闭源系统的双面性,剖析其优点和缺点,为读者提供一个全面的理解。 闭源系统的优点: 安全性:闭源系统通常被认为更...
    99+
    2024-02-15
    操作系统 闭源系统 优点 缺点 安全性 控制 自定义
  • Java面试:如何在Linux文件系统中操作文件?
    在Java开发中,经常需要进行文件操作,比如读取文件内容、写入文件内容、创建文件夹等等。而在Linux操作系统中,文件系统是一种非常重要的资源,因此掌握在Linux文件系统中操作文件的技能也变得尤为重要。本文将介绍在Java中如何在Lin...
    99+
    2023-08-04
    面试 linux 文件
  • 文件操作的艺术:操作系统中的高效操作
    1. 理解文件结构 文件是操作系统中存储和组织数据的基本单元。它们由文件头、文件内容和文件尾组成。文件头包含有关文件及其内容的信息,例如文件类型、大小和创建日期。文件内容是实际数据,而文件尾标识文件结束。 2. 文件操作命令 每个操作系...
    99+
    2024-02-29
    文件操作、操作系统、命令行、Python、文件权限
  • 解码操作系统桌面环境:高效工作的新境界
    窗口管理器:负责管理窗口的位置、大小和外观。 桌面管理器:负责管理桌面背景、图标和窗口小部件。 菜单系统:提供应用程序和文件的访问入口。 任务栏:显示当前正在运行的应用程序以及系统状态信息。 通知区域:显示系统通知和消息。 2. 操作...
    99+
    2024-02-09
    1. 操作系统桌面环境的组成 一个完整的桌面环境通常包括以下几个组件:
  • 分布式系统中的 HTTP 网络拓扑结构:面试考察重点分析
    随着互联网的发展,分布式系统已经成为了现代计算机系统中不可或缺的一部分。在这个系统中,HTTP 网络拓扑结构是一个非常重要的概念。在面试中,考官经常会问及这个问题,因此本文将介绍分布式系统中的 HTTP 网络拓扑结构,并分析其在面试中的考...
    99+
    2023-06-16
    http 面试 分布式
  • Linux操作系统有哪些特点
    本文小编为大家详细介绍“Linux操作系统有哪些特点”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux操作系统有哪些特点”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。linux是用C语言和汇编语言写的。C...
    99+
    2023-06-29
  • windows操作系统有哪些特点
    这篇文章主要介绍了windows操作系统有哪些特点的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇windows操作系统有哪些特点文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2023-03-22
    windows
  • ubuntu操作系统有哪些优点和缺点
    优点:1. 免费开源:Ubuntu是基于Linux的操作系统,遵循开放源代码的原则,用户可以自由获取、使用和修改,无需支付任何费用。...
    99+
    2023-08-30
    ubuntu
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作