• 进程调度算法
  • 批处理系统
  • 先来先服务(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)
  • 磁盘调度算法:
  • 读写磁盘影响因素:
  • 旋转时间
  • 寻道时间(时间最长)
  • 实际数据传输时间
  • 先来先服务
  • 最短寻道时间优先
  • 电梯算法