JAVA面试——操作系统

  • 进程调度算法
    • 批处理系统
      • 先来先服务(FCFS)
      • 短作业优先(SJF)
      • 最短剩余时间优先(SRTN)
    • 交互式
      • 时间片轮转
      • 优先级调度
      • 多级反馈队列
  • 管程:
    • 把控制代码独立出来,使得代码调用更容易
    • 同一时间只能被一个进程使用
  • 进程间通信(IPC)
    • Windows
  1. 文件映射
  2. 共享内存
  3. 匿名管道Pipe:父进程和子进程、父进程的两个子进程
  4. 命名管道
  5. 动态链接库DLL:动态连接库中的全局数据可以被调用DLL的所有进程共享
  6. 远程过程调用RPC
  7. Sockets
  8. WM_COPYDATA消息(文件映射)
Linux
  1. 管道(Pipe,亲缘关系进程间的通信):无格式的字节流,缓冲区大小受限
  • 半双工通信(单向交替传输)
  • 只能在父子进程中使用
信号(Signal):承载信息量少 报文队列(消息队列)
  • 独立于读写进程存在
  • 无需进程提供同步方法
  • 可以有选择性接收
共享内存 信号量(semaphore):进程间、同一进程不同线程间 套接口(Socket)
  • 不同机器间进程通信
死锁
  • 产生条件:
    • 互斥
    • 非抢占
    • 请求和保持:已经得到资源的进程可以再次申请新的资源
    • 循环等待
  • 处理策略:
    • 抢占,响应中断
    • 定时锁
    • 规定资源获取顺序
    • 开放调用,synchronized不要锁整个函数,锁部分内容
  • 死锁避免:
    • 安全状态
    • 银行家算法
分页与分段:
  • 内存管理单元MMU:
    • 地址空间和物理内存的转换,页表存放页(程序地址空间)和页框(物理内存空间)的映射表
  • 页是信息的物理单位,分页实现离散分配方式,提高内存利用率(系统管理需求)
    • 大小固定,由系统决定,页号和页内地址
    • 页长与程序的逻辑大小不相关
  • 段是信息的逻辑单位,含有一组意义相对完整的信息(用户需求)
  • 页面置换算法:
    • 先入先出法(FIFO)
    • 最优置换算法(OPT)
    • 最久未使用法(LRU)
    • 第二次机会算法(SCR)
磁盘调度算法:
  • 读写磁盘影响因素:
    • 旋转时间
    • 寻道时间(时间最长)
    • 实际数据传输时间
  • 先来先服务
  • 最短寻道时间优先
  • 电梯算法

转载于:https://www.cnblogs.com/lhspeppa/p/10461338.html

你可能感兴趣的:(JAVA面试——操作系统)