操作系统开发--进程及进程的调度

看到有人问我让我讲下进程的调度接下来我们就好好的来讲一下

我们都知道操作系统中都安装着好多好多的程序我们为什么称一些可执行的文件为程序而不是进程呢这就是程序和进程的区别了程序是指令数据等的文件集合此时他们是存在于硬盘上的当你双击启动它们的时候就加载到内存中并按指令开始执行起来这才被称之为进程所以说进程是程序的运行实例

那会有人说进程是不是计算机的基本运行单位可以说是也可以说不是为什么这样说呢那要根据操作系统而言如果是面向进程设计的系统早期的操作系统那进程就是计算机的基本运行单位而在现如今的面向线程设计的操作系统线程才是进程是做为线程的载体而存在

进程一共存在有五个状态创建运行等待就绪以及结束

当同时有多个进程运行时而仅有一个CPU在工作那这就需要调度了其实进程调度就是分配进程工作所需的资源以及执行的时间

内核如何调度进程呢这就需要调度算法了调度算法从大的方面来说分为两类一类是抢占式一类是协作式抢占式是内核决定进程如何调度以及分配而协作式是当前的进程会主动放弃执行指令下一个进程从而进入执行指令

每一个操作系统中的调度算法也都不一样这里也就不细细的分析算法了上网搜进程调度算法会有一大堆你感兴趣的话可以好好的看下其实在你做内核的时候你可以设计一个简单高效的算法实现即可

操作系统开发--进程及进程的调度

如果此篇文章对您有所帮助,请多多支持哦!您的支持是我一直写下去的动力!

操作系统开发--进程及进程的调度