进程的调度

文章目录

  • 一、进程的调度过程
  • 二、进程调度的一些特点

一个正在执行的程序叫做进程。操作系统会把程序调度到CPU上,让CPU执行程序,此时这个程序就变成了进程。相当于程序在CPU上执行时叫进程,程序没有在CPU上执行时就叫程序。

一、进程的调度过程

CPU的一个核心上只能执行一个程序,所以在单核心的CPU上应该无法同时执行多个程序,比如无法同时执行微信和QQ,但事实上微信和QQ以及其它更多的程序是可以同时执行的。
原因在于,当多个程序需要同时执行时,操作系统会快速轮转调度多个程序在CPU上运行,只要轮转调度的速度足够快,人的感官看上去就会好像是多个进程在同时执行。以微信和QQ为例,操作系统先调度微信到CPU上执行,再调度QQ到CPU上执行,如此循环往复,因为轮换调度的速度太快了,人们感受不到轮换调度的时间差,导致看上去好像微信和QQ在同时执行。
如果CPU的两个核心上同时执行两个程序,这两个程序在宏观上和微观上都是同时执行,这种情况叫“并行”。如果CPU一个核心上通过快速轮转调度的方式执行多个程序,这多个程序在宏观上同时执行,在微观上先后执行,这种情况叫“并发”。平时我们统一用“并发”代指“并行”和“并发”。

二、进程调度的一些特点

进程的优先级:操作系统在调度多个程序到CPU上执行的时候,有些程序会被给予更高的优先级,高优先级的程序会被优先调度到CPU上进行执行。
进程的上下文:多个程序被系统快速轮转调度到CPU上执行的时候,进程在离开CPU之前,系统会把当前CPU中各种寄存器的状态都记录到内存中,等到下次这个程序再次回到CPU上执行的时候,系统会把保存的这些寄存器的状态恢复到寄存器上,程序会沿着上次执行到的位置继续往下执行。
进程的记账信息:系统会记录当前进程持有CPU的情况(当前进程在CPU上执行多久了),将这个记录作为系统调度进程的依据,以至于不会出现某个程序一直没有被调用到CPU上执行的情况。

你可能感兴趣的:(学习,操作系统)