前言
参加了极客时间的学习21天计划, 希望自己在春节期间也能不忘学习, 最近工作比较忙, 对学习,提升自我相对懈怠了一些.
学习内容
今天学习了 14|调度算法: 操作系统中的进行时如何进行调度的?
在我们开发业务系统时, 也会经常遇到问题, 常常可以参考操作系统或者已有系统的成熟的解决办法, 进程调度也被常常借鉴.
进程(Process)的概念
进程就是正在运行的程序, 操作系统内存在多个进程, 进程之间是相互隔离的
操作系统通过一定的策略把cpu分配给进程使用,由于进程间切换时间比较短,故对于用户来说可能是在并发执行
进程和操作系统的关系
操作系统好比CEO, 进程好比员工, CEO讲任务配置给不同的员工进行处理, 就是操作系统将CPU分配给不同的进程执行
进程的状态:
- RUNNING(执行中)
- BLOCK(阻塞)
- READY(就绪中)
调度算法
有两大类:
- 非抢占式
- 抢占式
各有利弊, 非抢占式可能会使其他进程任务等待时间过长, 抢占式有更多的切换次数,也会造成更高的上下文切换成本
- 非抢占式 更适合调度可以忍受延迟执行的普通进程。
- 抢占式, 更适合调度交互性要求更高的实时程序