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虚拟机)相关的常见问题

java面试java后端开发岗面试中数据结构相关的常见问题

Java面试java后端开发岗面试中MySQL数据库相关的常见问题

[ Java面试题 ]Java 开发岗面试知识点解析

Java开发岗面试知识点解析

秋招已经开始准备了!Java面试题最新Java开发岗面试知识笔记