首页 > 技术文章 > JAVA面试——操作系统

lhspeppa 2019-01-09 18:37 原文

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

推荐阅读