面:常见面试题整理(操作系统)

精心整理了20道操作系统高频面试题(建议收藏) 动态链接就是在编译的时候不直接拷贝可执行代码,而是通过记录一系列符号和参数,在程序运行或加载时将这些信息传递给操作系统,操作系统负责将需要的动态库加载到内存中,然后程序在运行到指定的代码时,去共享执行内存中已经加载的动态库可执行代码,最终达到运行时连接的目的。3. 阻塞 —> 就绪:处于阻塞状态的进程,在其等待的事件已经发生,如输入/输出完成,资源得到满足或错误处理完毕时,处于等待状态的进程并不马上转入执行状态,而是先转入就绪状态,然后再由系统进程调度程序在适当的时候将该进程转为执行状态; 阅读详情

常见面试题整理(操作系统)

 

 

常见面试题整理(操作系统)

2018年03月08日 20:47:11 逃离地球的小小呆 阅读数:20782

 

(一)请分别简单说一说进程和线程以及它们的区别。

  • 进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位。
  • 线程是进程的实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。
  • 一个进程可以有多个线程,多个线程也可以并发执行

如果你对进程或者线程不太熟悉,建议阅读:进程与线程的一个简单解释

(二)线程同步的方式有哪些?

 

  • 互斥量:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。
  • 信号量:它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。
  • 事件(信号):通过通知操作的方式来保持多线程同步,还可以方便的实现多线程优先级的比较操作。

经两位大大的指正,现已删除临界区。感谢:@真姬酱@安阳

如果你对线程同步的方式不太熟悉,建议阅读:线程同步的几种方式

(三)进程的通信方式有哪些?

主要分为:管道、系统IPC(包括消息队列、信号量、共享存储)、SOCKET

管道主要分为:普通管道PIPE 、流管道(s_pipe)、命名管道(name_pipe)

  • 管道是一种半双工的通信方式,数据只能单项流动,并且只能在具有亲缘关系的进程间流动,进程的亲缘关系通常是父子进程
  • 命名管道也是半双工的通信方式,它允许无亲缘关系的进程间进行通信
  • 信号量是一个计数器,用来控制多个进程对资源的访问,它通常作为一种锁机制。
  • 消息队列是消息的链表,存放在内核中并由消息队列标识符标识。
  • 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
  • 共享内存就是映射一段能被其它进程访问的内存,这段共享内存由一个进程创建,但是多个进程可以访问。

如果你对进程的通信方式不太熟悉,建议阅读: 进程间的几种通信方式

(四)什么是缓冲区溢出?有什么危害?其原因是什么?

缓冲区溢出是指当计算机向缓冲区填充数据时超出了缓冲区本身的容量,溢出的数据覆盖在合法数据上。

危害有以下两点:

  • 程序崩溃,导致拒绝额服务
  • 跳转并且执行一段恶意代码

造成缓冲区溢出的主要原因是程序中没有仔细检查用户输入。

如果你想深入了解缓冲区溢出,推荐阅读:缓冲区溢出攻击

(五)什么是死锁?死锁产生的条件?

在两个或者多个并发进程中,如果每个进程持有某种资源而又等待其它进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗的讲就是两个或多个进程无限期的阻塞、相互等待的一种状态。

死锁产生的四个条件(有一个条件不成立,则不会产生死锁)

  • 互斥条件:一个资源一次只能被一个进程使用
  • 请求与保持条件:一个进程因请求资源而阻塞时,对已获得资源保持不放
  • 不剥夺条件:进程获得的资源,在未完全使用完之前,不能强行剥夺
  • 循环等待条件:若干进程之间形成一种头尾相接的环形等待资源关系

如果对死锁还不是太熟悉,建议阅读:死锁产生的原因和解锁的方法

(六)进程有哪几种状态?

  • 就绪状态:进程已获得除处理机以外的所需资源,等待分配处理机资源
  • 运行状态:占用处理机资源运行,处于此状态的进程数小于等于CPU数
  • 阻塞状态: 进程等待某种条件,在条件满足之前无法执行

如果你对进程的几种状态以及中间的装换不太了解,建议阅读:进程的三种状态及转换

(七)分页和分段有什么区别?

 

  • 段是信息的逻辑单位,它是根据用户的需要划分的,因此段对用户是可见的 ;页是信息的物理单位,是为了管理主存的方便而划分的,对用户是透明的。
  • 段的大小不固定,有它所完成的功能决定;页大大小固定,由系统决定
  • 段向用户提供二维地址空间;页向用户提供的是一维地址空间
  • 段是信息的逻辑单位,便于存储保护和信息的共享,页的保护和共享受到限制。

如果你对分页和分段还不太了解,建议阅读:分段和分页

(八) 操作系统中进程调度策略有哪几种?

FCFS(先来先服务),优先级,时间片轮转,多级反馈

如果你想深入的了解这几种调度策略,推荐阅读:几个常用的操作系统进程调度算法

(九)说一说进程同步有哪几种机制。

原子操作、信号量机制、自旋锁管程、会合、分布式系统

如果你想深入的了解这几种机制,推荐阅读: 进程同步的几种机制

(十)说一说死锁的处理基本策略和常用方法。

解决死锁的基本方法如下:

预防死锁、避免死锁、检测死锁、解除死锁

解决四多的常用策略如下:

鸵鸟策略、预防策略、避免策略、检测与解除死锁

如果你对死锁的处理策略不是太熟悉,推荐阅读:产生死锁的原因和必要条件+解决死锁的基本方法

本文参考文献和文章:

 

「1」操作系统常见面试题总结 - youngchang的开发博客

「2」 操作系统面试题 - iWan

「3」进程间的几种通信方式

「4」操作系统各大公司笔试题汇总

「5」解决死锁的基本方法


学习编程,欢迎关注专栏:学习编程 - 知乎专栏

操作系统面试问题汇总(超详细) 操作系统的组成 1、驱动程序是最底层的、直接控制和监视各类硬件的部分,它们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。 2、内核是操作系统之最内核部分,通常运行在最高特权级,负责提供基础性、结构性的功能。 3、支承库是一系列特殊的程序库,它们职责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口(API),是最靠近应用程序的部分。例如,GNU C运行期库就属于此类... 阅读详情

相关推荐

操作系统常见面试题整理(Most Common Problems in Interview for Operating System)

将网上的相关面试题整理下来,去掉重复的,留下我觉得讲得很清楚的,或者自己在面试里碰到过的题目。参考: 1. 常见面试题整理–操作系统篇(每位开发者必备) 2. Wiki-Synchronization (computer science) 3. 计算机操作系统(第2版)——庞丽萍、阳富民编著请分别简单说一说进程和线程以及它们的区别 线程同步的方式有哪些 什么是缓冲区溢出有什么危害其原因是什么

MapleStory的博客 2万+

【面试】操作系统面试题

为了避免操作系统和关键数据被用户程序破坏,将处理器的执行状态分为内核态和用户态。内核态是操作系统管理程序执行时所处的状态,能够执行包含特权指令在内的一切指令,能够访问系统内所有的存储空间。用户态是用户程序执行时处理器所处的状态,不能执行特权指令,只能访问用户地址空间。用户程序运行在用户态,操作系统内核运行在内核态。进程是操作系统中最重要的抽象概念之一,是资源分配的基本单位,是独立运行的基本单位。进程的经典定义就是一个执行中程序的实例。系统中的每个程序都运行在某个进程的上下文(context)中。

kuangd_1992的博客 9827

计算机考研常见面试题

写在前面 本人参加20考研,由于复试没有具体要求会问哪几门课,所以我就找了网上一些常见的计算机专业的面试题,整理如下 主要结构: 数据库 软件工程 操作系统 计算机组成原理 计算机网络 数据结构 C++ Java 数据库 1、数据:数据库中存储的基本对象。 数据库:长期存储在计算机内的、有组织的、可共享的数据集合。 数据库管理系统:专门用于建立和管理数据库的一套软件。对外部程序提供访问数据库的方法,对内进行数据管理。 数据库系统:与和数据库相关的整个系统,一般由数据库、数据库管理系统、应用程序、数

qq_38841618的博客 2万+

这可能最全的操作系统面试题

文章目录操作系统简介篇解释一下什么是操作系统操作系统的主要功能软件访问硬件的几种方式解释一下操作系统的主要目的是什么操作系统的种类有哪些为什么 Linux 系统下的应用程序不能直接在 Windows 下运行操作系统结构单体系统分层系统微内核客户-服务器模式为什么称为陷入内核什么是用户态和内核态用户态和内核态是如何切换的?什么是内核什么是实时系统Linux 操作系统的启动过程进程和线程篇多处理系统的优势什么是进程和进程表什么是线程,线程和进程的区别什么是上下文切换使用多线程的好处是什么进程终止的方式进程的终止

程序员cxuan的个人主页 4万+

2022最新整理软件测试常见面试题附答案

包含的模块: 本文分为十九个模块,分别是:软件测试 基础、liunx、MySQL、web测试、接口测试、APP测试 、管理工具、Python、性能测试、selenium、lordrunner、计算机网络、组成原理、数据结构与算法、逻辑题、人力资源需要的可以【点击这里领取完整版的面试题~暗号优快云】 如下图所示: 共包含400 道面试题,本文的宗旨是为读者朋友们整理一份详实而又权威的面试清单,下面一起进入主题吧。 ==============================================

weixin_47345084的博客 2万+

常见操作系统笔试面试题整理

1、进程和线程的区别和联系 1)进程是操作系统进行资源分配的基本单位,线程是CPU调度的基本单位 2)一个进程可以包含多个线程,线程间共享进程的所有资源,每个线程都自己的堆栈和局部变量 3)进行有自己的独立的地址空间,每启动一个进程,系统就会为它分配空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵;而线程共享进程中的数据,使用相同的地址空间,因此CPU切换一个线程的花费更低 ...

ljh0302的专栏 2541

【操作系统】面试题整理 共48题

进程(Process)是计算机中的一个程序在某个数据集合上的一次运行活动。它是操作系统进行资源分配和调度的基本单位。简单来说,进程就是一个正在执行的程序实例。独立性:每个进程都有自己独立的地址空间和资源。动态性:进程是一个动态的实体,从创建到终止都有一个生命周期。并发性:多个进程可以同时运行,互不干扰。异步性:进程的执行是断续的,可以被中断和恢复¹²。举个例子,当你打开一个浏览器时,浏览器就是一个进程。它会占用一定的内存和CPU资源,并且可以与其他进程(比如音乐播放器、文档编辑器)同时运行。

weixin_44329069的博客 4078

嵌入式操作系统软件工程师常见面试题

有过IT行业大公司面试经历的朋友都会知道有关***操作系统***的问题是面试官必问的问题之一,因此,我参考网上的资料并整理了一份关于操作系统面试题的资料,其中包含了操作系统的常见问题,还包含了嵌入式C语言的常见问题。 操作系统 进程是什么 进程是具有一定独立功能的程序,它是系统进行资源分配和调度的一个独立单位,重点在系统调度和独立的单位,也就是说进程是可以独立运行的一段程序。 线程是什么 线程...

oliverxu.cn 4030

面:操作系统常见面试题总结

操作系统常见面试题总结 操作系统常见面试题总结 2012年09月23日 17:24:20 易阳 阅读数:85921 1、什么是进程(Process)和线程(Thread)?有何区别?   进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。...

hunter 268

操作系统常见面试题整理

操作系统常见面试题整理1、说一说进程和线程的定义以及他们的区别2、线程同步的方式有哪些?3、进程的通信方式有哪些?4、什么是缓冲区溢出?有什么危害?原因是什么?5、什么是死锁?产生的条件?6、进程有哪些状态?7、分页和分段的区别?8、进程(CPU)调度策略有哪些?9、进程同步有哪些机制?10、死锁的处理基本策略和常用方法 1、说一说进程和线程的定义以及他们的区别 进程是一个程序的实例,它是系统资源分配与管理的基本单位,而线程是进程的实体,是CPU调度和分派的基本单位,它是比进程更小的、能独立运行的基本单位。

不务正业的程序媛的博客 442

运维开发面试题整理

Python的可变与不可变数据类型 可变数据类型:列表list和字典dict;不可变数据类型:整型int、浮点型float、字符串型string和元组tuple。 不可变数据类型分析 python中的不可变数据类型,不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象,内部会有一个引用计数来记录有多少个变量引用这个对象;可变数据类型,允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,

Logbook的博客 7592

操作系统面经整理博客

收录操作系统面经相关的博客: 操作系统常见面试题总结 操作系统常见面试题整理

Tanner_SL的博客 459

操作系统面试题整理

操作系统面试题整理 1、感知进程存在的唯一标志是:进程控制块PCB。 2、访问临界资源应遵循的准则是:空闲让进、忙则等待、有限等待、让权等待。 3、一个批处理型作业,从进入系统并驻留在外存的后备队列开始,直至作业运行完毕,一般要进行以下三级调度:高级调度、中级调度、低级调度。 4、用信号量S实现对系统中5台打印机的互斥使用,S.value的初值应设置为(5),若S.valu

胡胜同学 3979

网易历届笔试面试题整理大全

整理了一下网易往届笔试面试题,希望对大家有帮助: 超级有用的面试题:Java常见面试题    常见算法面试题   数据库常见面试题  操作系统常见面试题   C/C++常见面试题  大数据常见面试   python常见面试 来源:网易笔试面试圈>> 1、2019网易实习生招聘编程题集合 2、2018网易校园招聘编程题真题集合 3、2018网易前端实习笔试题 4、2018网易...

wodwl的专栏 1万+

牛客面经整理:C++高频面试题

1.语言基础(C++) (1) 指针和引用的区别 (2) 堆和栈的区别 (3) new和delete是如何实现的,new 与 malloc的异同处 (4) C和C++的区别 (5) C++、Java的联系与区别,包括语言特性、垃圾回收、应用场景等(java的垃圾回收机制) (6) Struct和class的区别 (7) define 和const的区别(编译阶段、安全性、内存占用等) (8) 在...

沉迷单车的追风少年 2487

昇腾NPU实战:PaddleSpeech语音模型高效部署与性能优化指南

本文详细介绍了如何在华为昇腾NPU上高效部署PaddleSpeech语音识别模型。通过使用官方Docker镜像、解决依赖冲突、修改源码适配NPU算子,并应用混合精度与批处理等优化技巧,实现模型在昇腾平台上的稳定运行与性能提升,为AI语音应用提供高性价比的国产硬件部署方案。

weixin_29214691的博客 181

腾讯往届笔试面试题整理大全

整理了一下腾讯往届笔试面试题,希望对大家有帮助: 超级有用的面试题:Java常见面试题    常见算法面试题   数据库常见面试题  操作系统常见面试题   C/C++常见面试题  大数据常见面试   python常见面试 来源:腾讯笔试面试圈>> 1、史上最全Java面试266题:算法+缓存+TCP+JVM+搜索+分布式+数据库 2、2018腾讯秋招正式笔试题目 3、201...

wodwl的专栏 4万+

告别手动维护!教你用SAP BAPI批量更新生产订单BOM组件(CO02工单)

本文详细介绍了如何利用SAP BAPI实现生产订单BOM组件的批量更新,解决传统手工操作(如CO02工单)效率低下的问题。通过核心函数解析和批量处理框架设计,帮助用户大幅提升工作效率,降低错误率,适用于物料主数据变更、季节性配方调整等场景。

weixin_30844577的博客 561

华为历届笔试面试题整理大全

整理了一下华为往届笔试面试题,希望对大家有帮助: 超级有用的面试题:Java常见面试题    常见算法面试题   数据库常见面试题  操作系统常见面试题   C/C++常见面试题  大数据常见面试   python常见面试 来源:华为笔试面试圈>> 1、2018华为校招机试题目 2、2018华为届校园招聘软件开发岗笔试题 3、2017华为笔试题及答案 4、2017年华为笔试...

wodwl的专栏 4万+

Ribo测序翻译效率计算及可视化

本文介绍了一个计算翻译效率(TE)和分析转录-翻译相关性的生物信息学流程。首先通过Python脚本从标准化表达量矩阵(TPM/FPKM)计算TE值,该脚本自动匹配转录组(RNA)和翻译组(Ribo)样本进行比值运算。然后使用R语言进行相关性分析,通过ggplot2绘制样本间转录-翻译表达量的散点图,添加线性回归线和相关系数标注,支持PNG/PDF格式输出。整个流程实现了从原始数据处理到可视化分析的全过程。

Tiaoxiaobai的博客 553

面试题整理:操作系统

操作系统复习整理

weixin_45329799的博客 1656

【第48例】BLM模型之市场洞察-五看工具篇(一)

BLM市场洞察

产品线负责人 2109
上一篇: 面:操作系统常见面试题总结
下一篇: leetcode:122. Best Time to Buy and Sell Stock II
nedwons
博客等级 码龄9年 311粉丝 572原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值