线程与进程
同一个核在同一时间只能运行一个进程
父进程与子进程不共享地址空间
进程的创建可能有4种原因:
1、系统初始化
2、正在运行的程序执行了创建进程的系统调用
3、用户请求创建一个新进程
4、一个批处理作业的初始化
进程的三种状态
1、运行态(该时刻进程实际占用CPU)
2、就绪态(可运行,但因为其他进程正在运行而暂时停止)
3、阻塞态(除非某种外部时间发生,否则进程不能运行)
每次进行跳转时都需要保存当前的寄存器信息,保证多次调用后还能找回来。
多进程模型具有不同的地址空间,多线程模型具有相同的地址空间。
同时线程更轻量级,更易创建撤销
多线程提升了并行性
进程是资源分配的最小单位,线程是程序执行的最小单位。
线程有各自独立的栈和计数器(PC)
信息量,互斥量,管程等方法避免多线程死锁
生产者-消费者模型->缓冲区
对进程进行调度的方法
批处理系统中的调度
1、先来先服务
2、最短作业优先
3、最短剩余时间优先
交互式系统中的调度
1、轮转调度
关键概念:时间片
时间片太短,则转移进程的成本过高
时间片太长,则成为先来先服务,没法起到优化等待时间的效果
2、优先级调度
动态计算优先级,优先级高的先运行
3、多级队列
每级队列内部有自己的时间片轮转算法
4、最短进程优先算法