ohmyblog

#操作系统

经典题解析:逻辑地址怎样通过页表变成物理地址

逻辑地址到物理地址的题,最容易错在两处:把页号当成字节地址,或者把十六进制字符串直接从某一位切开。正确做法是先固定页大小,再把地址拆成页号和页内偏移。映射改变的是所在页框,页里的位置并不随之移动。

经典题解析:栈耗尽、堆耗尽和越界写,是同一种溢出吗

“程序发生内存溢出”,到底是递归层数太深、动态分配失败,还是向数组外面写了数据?这三种情况经常被放进同一个词里,却分别涉及调用资源、分配资源和访问合法性。先把问题说准确,才能找到对应的检查方法。

经典题解析:五台打印机,每个进程要两台,怎样判断死锁风险

五台相同打印机,每个进程最多需要两台,而且一次只申请一台。最多允许几个进程竞争,才能在题设条件下保证不出现资源死锁?答案不能只靠“五除以二”。这道题考的是最坏分配状态下,是否总有一个进程能够继续完成。

经典题解析:全局变量和局部变量一定分别住在堆和栈吗

“全局变量在堆,局部变量在栈。”这句话同时混淆了几件事:名字能在哪里被访问,对象活多久,以及某个编译器最后怎样安排存储。要回答 C 语境里的这道题,先把三个维度拆开,才不会被一个局部静态变量轻易推翻。

经典题解析:内存的内部碎片和外部碎片是什么

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料整理,与任何公司的当前招聘无关。「讲讲内部碎片、外部碎片,如何解决」是操作系统面试的常驻题,真正考的不是两个名词背诵,而是你能不能说清各自的成因,以及分页、伙伴系统、slab 这些机制分别在对付哪一种。

笔试真题复盘:四个作业排队执行,平均周转时间怎么算

先说明属性:这是一篇笔试真题复盘,题目出自本地历史笔试资料整理,与任何公司的当前招聘无关。原题以选择题形式出现:现有 4 个同时到达的作业 J1、J2、J3、J4,执行时间分别是 1、3、5、7 小时,系统按单道方式运行并采用短作业优先(SJF)算法,问平均周转时间是多少。

经典题解析:一颗 CPU 每秒大概能执行多少条指令

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料整理,与任何公司的当前招聘无关。「一颗现代处理器每秒大概能执行多少条简单指令,有哪些主要影响因素」是典型的数量级估算题:面试官不要精确值,要的是你现场拆出「主频 × IPC × 核数」这条因子链,并对每个因子的量级有硬件常识…

经典题解析:进程间通信有哪些方式,各自适合什么场景

先说明属性:这是一篇经典题解析,题目出自本地历史面经资料,与任何公司的当前招聘无关。「进程间通信有哪些方式」是操作系统部分的保留题,难不倒背书的人,但面试官想听的不是罗列名词,而是每种方式在速度、数据形态、同步语义上的差异,以及「这个场景为什么选它」。

笔试真题复盘:3 个主存块走一遍访问序列,LRU 缺页多少次

先说明属性:这是一篇历史笔试题复盘,题目出自本地留存的早年笔试卷(选择题),与任何公司的当前招聘无关。题目很短:一个进程分到 3 个主存块,页面访问序列是 1、2、3、4、1、2、5、1、2、3、4、5,用 LRU 置换算法,缺页多少次?选项 9、10、11、12。

经典题解析:一个写者三个读者,用 P、V 操作怎么协调

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。信号量题见过生产者-消费者的人不少,但这题的约束形状不一样:A 往缓冲区写数据,B、C、D 各读一次之后 A 才能再写。考点不是互斥,而是「多读者各读一次」的计数同步。