操作系统面试题总结
Posted fisherss
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统面试题总结相关的知识,希望对你有一定的参考价值。
CS-LogN思维导图:记录专业基础 面试题
开源地址:https://github.com/FISHers6/CS-LogN
本章节 操作系统面试题导图如下:
操作系统面试题
操作系统引论
面试题1:什么是操作系统
- 控制和管理整个计算机系统的硬件和软件资源
- 为用户和上层软件,提供易用接口和环境的程序
- 是最基础的系统软件
面试题2:什么是系统调?
-
系统调用是:操作系统对应用程序提供的服务调用请求接口
-
引用目的
- 应用程序通过系统调用请求获得操作系统内核的服务,保证系统稳定性和安全性(用户非法操作)
进程管理
面试题1:进程和线程的区别
-
调度单位
- 线程是独立调度单位,进程拥有资源的基本单位
-
资源
- 进程都是拥有资源的基本单位,线程不拥有系统资源(少) 但可以访问共享其隶属进程的系统资源
-
并发粒度
- 引入线程后并发度提升,吞吐量提升
-
系统开销
- 1.进程创建开销 2.进程切换开销 3.进程间通信开销
-
地址空间
- 进程地址空间独立、线程共享同一进程资源的地址空间
-
通信方面
- 进程间通信:需要同步和互斥手段保证数据一致
- 线程间通信:可直接读写同一进程数据段(全局变量)
面试题2:进程有哪?种状态,状态如何转换
-
5/3种状态
-
运行态
- 进程在CPU上运行;单处理机最多1个运行态
-
就绪态
- 进程获得了除CPU外的一切资源,存入就绪队列
-
阻塞态
- 进程等待某一事件(等待资源)而暂停运行 如等IO
-
*创建态
- 进程正被创建,尚未转到就绪态(详见进程控制)
-
*结束态
- 进程正常结束或其他原因中断运行,先置结束态
-
-
状态转换
-
就绪态->运行态
- 处于就绪态被调度,获得处理机资源(时间片)
-
运行态->就绪态
- 1.时间片用完,调度程序让进程换态(非主动)
2.或者被可剥夺系统中被优先级高的进程抢占
- 1.时间片用完,调度程序让进程换态(非主动)
-
运行态->阻塞态
- 1.进程请求某一资源(如外设)的使用和分配
2.或者等待某一事件(如等待I/O执行中(阻塞))
- 1.进程请求某一资源(如外设)的使用和分配
-
阻塞态->就绪态
- 1.进程等待事件的发生(得到资源),如另一个进程的I/O操作结束,释放IO资源,这个进程得到IO资源 2.或中断结束 中断处理程序来改变相应进程状态
-
面试题3:进程间有哪些通信?式
-
进程通信的概念
-
目的和概念
- 进程之间信息交换
-
引入原因
- 各进程拥有独立的内存地址空间,为了保证安全,一个进程不能直接访问其它进程的地址空间
-
-
通信方式
-
1.共享存储
- 设置一块可直接访问的内存共享空间,读写交换信息互斥访问共享空间,读/写操作使用p/v
-
2.消息传递
- 进程间数据交换以格式化的消息为单位,系统提供“发送/接受原语”,如:消息队列、信箱
-
3.管道通信
- 设置一个特殊的共享文件(管道),缓冲区,半双工
-
面试题4:线程间有哪些同步的?式
-
同步的概念
- 由并发性带来异步性问题,进/线程间需协调工作先后次序、传递信息(合作)所产生的直接制约关系,避免资源访问冲突
-
同步的方式
-
互斥量(Mutex)
- synchronized 关键词 和 各种 Lock
-
信号量(Semphares)
- 设置资源允许的数量,同?时刻多个线程可以访问同?资源
-
管程/事件(Event) :Wait/Notify
- 通过通知操作的?式来保持多线程同步
-
面试题5:进程的调度算法有哪些
-
先来先服务FCFS
- 按照作业/进程的先后顺序服务,但短作业需要等待前面的长作业执行完,对短作业不利
-
短作业优先SJF
- 改进FCFS,让最短的作业/进程先得到服务,追求最少的平均等待时间(平均化整体考虑)
-
高响应比优先
- 响应比综合考虑进程的“等待时间” 和 “要求服务的时间”
-
时间片轮转调度算法(RR)
- 按时间片轮流服务进程,使用时钟中断来通知CPU,时间片已用完了可以去调度下一个进程
-
优先级调度算法
- 静态优先级、动态优先级(动态调整)调度
-
多级反馈队列调度算法
- 多种调度算法的折中权衡,最优
面试题6:说说进程/线程安全
- 多线程执行时不会出现数据不一致或者数据污染
- 线程安全问题都是由多个线程访问临界资源(全局变量及静态变量)引起的,可以使用同步、互斥的方法保证线程安全
面试题7:什么是死锁,死锁的条件,如何解决死锁
-
什么是死锁
- 多个进程因竞争资源而等待对方手里的资源,互相等待,都无法向前推进
-
死锁的条件
- 1.互斥
- 2.不可剥夺
- 3.请求和保持
- 4.循环等待链
-
如何解决死锁
-
预防死锁
- 破坏死锁的四大条件之一
-
避免死锁
- 安全序列来检测死锁、银行家算法
-
死锁的检测及解除
- 资源请求分配图、死锁定理;(资源剥夺、进程回滚等)
-
内存管理
面试题1:操作系统的内存管理主要是做什么
-
1.内存空间的分配与回收
- 操作系统完成主存储器空间的分配,无需程序员操作,提高编程效率
-
2.内存空间的扩充
- 利用虚拟存储技术或自动覆盖技术,从逻辑上扩充内存
-
3.地址转换
- 程序的完整周期:编译、链接、装入,装入时将逻辑地址转换为物理地址
-
4.存储保护
- 内存分配前,1.需要保护操作系统不受用户进程的影响 2.保护用户进程不受其它用户进程的影响 3.防止地址越界
面试题2:操作系统的内存管理机制了解吗?内存管理有哪?种?式?
-
连续分配方式
-
1.单一连续分配
- 内存分为系统区(供操作系统)和用户区(供用户)
-
2.固定分区分配
- 将用户内存空间划分为若干固定大小的区域,每个分区只装入一道作业
-
3.动态分区分配
- 在进程装入内存时,根据进程的大小动态地建立分区
-
-
离散分配方式
- 1.基本分页存储管理
- 2.基本分段存储管理
- 3.段页式存储管理
-
内部碎片与外部碎片
-
内部碎片
- 固定分区分配中,一块分区只放一个进程,当这块分区有剩余容量时存在空间浪费
- 如:分页、段页式存储、固定分区
-
外部碎片
- 动态分区分配中,随着进程的换入/换出分区外的存储空间会变成越来越多的碎片
- 如:分段
-
面试题5:分?机制和分段机制的共同点和区别,段页式各需要几次访存
-
相同点
- 都属于内存离散存储分配方式,都是为了改进连续内存分配而提?内存利?率
-
区别
- ?的??是固定的,由操作系统决定;?段的??不固定,取决于我们当前运?的程序
- 分?仅仅是为了满?操作系统内存管理的需求,?段是逻辑信息的单位,在程序中可以体现为代码段,数据段,能够更好满??户的需要。
- 分页2次、分段2次、段页式3次访存
面试题3:快表是什么
-
引入目的和概念
- 快表,又称联想寄存器(TLB, translation lookaside buffer )是一种访问速度比内存快很多的高速缓存,用来存放最近访问的页表项的副本,可以加速地址变换的速度(基本地址变换机构要访存2次)
面试题6:什么是局部性原理
-
局部性原理
-
时间局部性
- 指令近期多次执行,数据近期多次访问;如循环语句
-
空间局部性
- 存储单元附近的也可能访问,如连续的存储单元数组
-
每访问一个逻辑地址,都要查询内存中的页表,可能连续多次查同一表项
-
-
应用
- 快表、cache、虚拟存储器
面试题4:为什么要用多级页表
-
引入目的
-
单级页表存在的问题:
- 页表必须连续存放,因此当页表很大时,需要占用很多个连续的页框。
- 没有必要让整个页表常驻内存,因为进程在一段时间内可能只需要访问某几个特定的页面
-
建立多级页表的目的在于建立索引,以便不用浪费主存空间去存储无用的页表项,也不用盲目顺序式查找页表项
-
-
两级页表方案逻辑地址结构
- 一级页号、二级页号、页内偏移量
面试题7:虚拟内存管理如何实现,为什么引入虚拟内存
-
传统存储管理方式的缺点特征
-
一次性
-
作业必须一次性全部装入内存后,才能开始运行
- 1.作业很大而不能全部装入内存,无法运行
- 2.大量作业要求运行时,内存不足以容纳所有作业,只能使少量作业线运行,导致多道程序度的并发度下降
-
-
驻留性
- 一旦作业被装入内存,就会一直驻留在内存中,直至作业运行结束;而程序运行只需要一部分数据,浪费了宝贵的内存资源
-
-
虚拟内存的定义
- 基于局部性原理,在程序装入时,可以将程序中很快会用到的部分装入内存,暂时用不到的部分留在外存,就可以让程序开始执行
-
虚拟内存的特征
-
多次性
- 无需在作业运行时一次性全部装入内存,而是允许被分成多次调入内存
-
对换性
- 在作业运行时无需一直常驻内存,而是允许在作业运行过程中,将作业换入、换出
-
虚拟性
- 从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于实际的容量
-
-
虚拟内存技术的实现
(离散分配的内存管理)- 请求分页存储管理
- 请求分段存储管理
- 请求段页式存储管理
面试题8:虚拟内存管理的??置换算法有哪些
- 最佳置换算法OPT
- 先进先出置换算法FIFO
- 最近最久未使用置换算法LRU
- 时钟置换算法CLOCK(最近未用NRU)
面试题9:32位系统运行大于4G的程序,如何寻址(考察虚拟内存,虚拟地址空间)
-
使用虚拟内存,基于局部性原理,在程序装入时,可以将程序中很快会用到的部分装入内存,暂时用不到的部分留在外存,就可以让程序开始执行
-
逻辑地址将经过MMU内存管理单元转换为物理地址
- 转换过程:查询页表,命中就计算出物理地址
不命中就出发缺页中断,让os分配地址空间
- 转换过程:查询页表,命中就计算出物理地址
面试题10:内存中进程驻留集如何选定
- 驻留集指请求分页存储管理中给进程分配的内存块集合
- 可以根据工作集(在某段时间间隔里,进程实际访问页面的集合)来设置驻留集大小
以上是关于操作系统面试题总结的主要内容,如果未能解决你的问题,请参考以下文章