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