java面试Java后端开发岗面试中操作系统相关的常见问题
Posted 棉花糖灬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java面试Java后端开发岗面试中操作系统相关的常见问题相关的知识,希望对你有一定的参考价值。
1. 进程管理
(1) 进程的状态与转换
- 运行:在处理机(CPU)上运行
- 就绪:获得了除处理机之外的所有所需资源,运行状态下时间片结束变为就绪状态
- 阻塞(等待):等待某一事件而暂停,如等待输入/输出的完成,事件发生后变为就绪状态
- 创建:正在被创建
- 结束:进程从系统中消失,正常结束或中断退出运行
(2) 进程和线程的区别
进程是拥有资源的基本单位,而线程是独立调度的基本单位,线程自己不拥有系统资源,而是共享所属进程的资源。
(3) 三种层次的调度
- 作业调度(高级调度):从外存的后备队列中选择一批作业进入内存,并为它们创建进程
- 内存调度(中级调度):使那些暂时不能运行的进程调至外存等待,把外存上已经具备运行条件的就绪进程重新调入内存
- 进程调度(低级调度):从就绪队列中选取一个进程,将处理机分配给它。发生的频率最高
(4) 调度算法
- 先来先服务:适用于作业调度和进程调度
- 短作业/进程优先:
- 优先级调度:适用于作业调度和进程调度
- 高响应比调度:主要用于作业调度,一定是非抢占式
- 时间片轮转:
- 多级反馈队列
(5) 同步和互斥
临界资源:一次仅允许一个进程使用的资源
临界区:访问临界资源的那段代码
同步:直接制约关系,进程之间因为工作顺序而产生的制约关系
互斥:简介制约关系:当一个进程使用临界资源时,另一个进程必须等待
(6) 死锁产生的原因
- 互斥条件
- 不剥夺条件
- 请求和保持
- 循环等待
(7) 死锁的处理
-
预防死锁:用于资源分配前,破坏死锁产生的四个必要条件中的 一个或几个
-
避免死锁:用于资源分配时,银行家算法
-
死锁的检测和解除:用于资源分配后,通过资源分配图和死锁定理来检测是否有死锁,并通过资源剥夺法、撤销进程法、进程回退法进行死锁解除
2. 内存管理
(1) 内存分配方式
连续分配和非连续分配都必须将作业全部装入内存之后才可以运行
连续分配方式
-
单一连续分配:将内存分为系统区和用户区,内存中永远只有一道程序
-
固定分区分配:将内存空间分为若干个固定大小的分区(分区大小可相等,可不等),每个分区只装入一道作业。会产生内部碎片
-
动态分区分配:不预先划分内存,而是在进程装入内存时,根据进程动态的建立分区,并使分区大小正好适合进程的需要。会产生外部碎片
动态分区分配策略:
- 首次适应:按地址顺序找到第一个空间满足的
- 最佳适应:按容量递增的顺序找到第一个满足的,会产生最多的外部碎片
- 最坏适应:按容量递减的顺序找到第一个满足的
- 邻近适应:又称循环首次适应算法,从上次查找结束的位置继续查找
非连续分配方式
- 基本分页:将内存和进程划分为相同大小的块,进程中的块成为页,内存中的块成为页框,进程执行时按块为单位申请内存空间
- 基本分段:按进程的自然段划分逻辑空间,段内要求连续,段间不要求连续,进程执行时按段为单位申请内存空间
- 段页式:先将进程分为若干个逻辑段,再将每一段分为若干大小的固定页
(2) 页面置换算法
- 最佳置换:根据访问页面顺序找到今后最长时间不被访问的页面进行替换
- 先进先出:根据当前队列中的页面找各自入队的时间,并将入队最早的替换
- 最近最久未使用(LRU):根据访问页面序列(最长时间未被访问的页面序列)找到要被替换的页面
- 时钟置换:又称最近未用算法
3. 文件管理
(1) 磁盘调度算法
- 先来先服务:
- 最短寻找时间优先:
- 扫描(SCAN)算法:又称电梯算法
- 循环扫描(C-SCAN)算法:
4. I/O管理
(1) I/O控制方式
- 程序直接控制方式:CPU对外设状态进行循环检查
- 中断驱动方式:I/O设备主动打断CPU的运行并请求服务
- DMA(直接存储器存取)方式:在I/O设备和内存之间开辟直接的数据交换通路,仅在传送一个或多个数据块的开始和结束时才需CPU干预
- 通道控制方式:通道相当于弱鸡版的CPU,通道程序相当于任务清单。当CPU要完成一组读写操作或有关控制时,只需向I/O通道发送一条I/O指令,并给出要执行的通道程序和要访问的I/O设备,通道接到指令后,通过执行通道程序完成CPU指定的I/O任务,数据传送结束时向CPU发中断请求
(2) SPOOLing技术
即假脱机技术,脱机即脱离主机的控制进行I/O操作,假脱机技术是一种使用空间交换时间的技术。实现将低速I/O设备上的数据传送到高速磁盘上,或相反。
以上是关于java面试Java后端开发岗面试中操作系统相关的常见问题的主要内容,如果未能解决你的问题,请参考以下文章
java面试Java后端开发岗面试中JVM(java虚拟机)相关的常见问题