《业务开发算法50讲》学习笔记Day1

100 阅读1分钟

前言

参加了极客时间的学习21天计划, 希望自己在春节期间也能不忘学习, 最近工作比较忙, 对学习,提升自我相对懈怠了一些.

学习内容

今天学习了 14|调度算法: 操作系统中的进行时如何进行调度的?

在我们开发业务系统时, 也会经常遇到问题, 常常可以参考操作系统或者已有系统的成熟的解决办法, 进程调度也被常常借鉴.

进程(Process)的概念

进程就是正在运行的程序, 操作系统内存在多个进程, 进程之间是相互隔离的

操作系统通过一定的策略把cpu分配给进程使用,由于进程间切换时间比较短,故对于用户来说可能是在并发执行

进程和操作系统的关系

操作系统好比CEO, 进程好比员工, CEO讲任务配置给不同的员工进行处理, 就是操作系统将CPU分配给不同的进程执行

进程的状态:

  • RUNNING(执行中)
  • BLOCK(阻塞)
  • READY(就绪中)

调度算法

有两大类:

  • 非抢占式
  • 抢占式

各有利弊, 非抢占式可能会使其他进程任务等待时间过长, 抢占式有更多的切换次数,也会造成更高的上下文切换成本

  • 非抢占式 更适合调度可以忍受延迟执行的普通进程。
  • 抢占式, 更适合调度交互性要求更高的实时程序