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