前提条件-介绍,进程调度器
进程的状态如下:
- New(创建)–在此步骤中, 将要创建但尚未创建进程, 它是辅助存储器中存在的程序, 操作系统将选择该程序来创建该进程。
- Ready–新增->准备运行。在创建过程之后, 该过程进入就绪状态, 即该过程被加载到主存储器中。此处的进程已准备好运行, 正在等待获取CPU时间以执行该进程。准备好由CPU执行的进程将保留在队列中, 以供就绪进程使用。
- Run(运行) -该进程由CPU选择执行, 该进程中的指令由任何可用的CPU内核执行。
- 阻塞或等待–每当进程请求访问I / O或需要用户输入或需要访问关键区域(已为其获取锁)时, 该过程就会进入阻塞或等待状态。该过程继续在主内存中等待, 并且不需要CPU。 I / O操作完成后, 过程将进入就绪状态。
- 终止或完成–进程被杀死, PCB被删除。
- 暂停准备–最初处于就绪状态但已从主内存中交换出来的进程(请参阅虚拟内存主题), 并已被调度程序放置到外部存储中的进程被称为处于暂停就绪状态。每当该过程再次被带到主存储器时, 该过程将转换回就绪状态。
- 暂停等待或暂停阻塞–与暂停就绪类似, 但使用的是正在执行I / O操作的过程, 并且主内存不足导致它们移至辅助内存。
工作完成后, 它可能会暂停准备工作。
CPU和IO绑定进程:
如果该进程占用大量CPU资源, 则称为CPU绑定进程。同样, 如果该过程在I / O操作方面很繁琐, 则称为IO绑定过程。
调度程序的类型:
- 长期–性能–决定要保持就绪状态的进程数, 这决定了多程序的程度。一旦做出决定, 它会持续很长时间, 因此称为长期调度程序。
- 短期–上下文切换时间–短期调度程序将决定下一个要执行的进程, 然后将调用调度程序。调度程序是一种将流程从准备运行转移到反之亦然的软件。换句话说, 它是上下文切换。
- 中期–交换时间–暂停决策由中期调度程序决定。中期调度程序用于交换, 该交换将进程从主内存移至辅助内存, 反之亦然。
多重编程–我们有许多流程可以运行。有两种类型的多重编程:
- 抢占–从CPU强制删除了进程。抢占也称为时间共享或多任务。
- 非抢占–在完成执行之前, 不会删除流程。
多重编程程度–
最多可以处于就绪状态的进程数决定了多编程的程度, 例如, 如果编程程度= 100, 则意味着最多可以驻留在就绪状态的进程数为100。