CPU/进程管理初探
操作系统是管理硬件的,CPU是最主要的硬件。本节展示了多道程序设计以及引出进程的概念。如何使用CPU呢?让程序跑起来,CPU就一直取指执行了。如何充分利用CPU呢?启动多个程序,交替执行。
多道程序设计(并发)
先看一个例子,下面代码让无I/O指令执行10000000次,而让I/O指令执行10000次,发现前者用时竟然比后者用时还要短!笔者使用的还是固态硬盘!

显然,I/O操作非常耗时,当CPU运行一个程序的时候,遇到了I/O操作,如果一直等I/O完成再执行后续的指令的话,CPU会空转很长时间,导致CPU利用率大大下降。但是如果CPU此时暂时离开去执行别的程序,那么CPU空转时间就会大大减少,提高CPU的利用率。下面就是一个展示多道程序设计的例子。

进程的提出
CPU面对多道程序,在多个程序之间切换,就需要记录每个程序的现场信息(用PCB记录),以便再切回到一个程序时可以恢复。程序是静态的,但进程需要记录运行程序的现场信息等。可以简单地认为进程就是运行的程序。
多进程图像
多进程图像就是多个进程交替推进的样子。对于普通用户来说,打开任务管理器,就可以看到各个进程的样子,比如对CPU、内存的使用情况等;对于操作系统来说,操作系统就会创建并维护好各个进程的PCB,保证多进程合理地向前推进。
linux/init/main.c中的main()函数完成内核初始化后执行if (!fork()) { init(); }代码,而init()函数就是启动一个shell(Windows启动一个窗口桌面),供用户使用。而shell中输入命令执行还是创建一个进程。自计算机开机到关机多进程图像就伴随始终,是操作系统的核心图像。
// shell的核心代码
int main(int argc, char * argv[])
{
while(1)
{
scanf(“%s”, cmd);
if(!

本文深入探讨了操作系统中进程管理的核心概念,包括多道程序设计、进程与线程的区别、进程调度策略、信号量机制、死锁问题及其解决方案。通过实例解析,帮助读者理解进程在现代操作系统中的作用和管理。
最低0.47元/天 解锁文章
7599

被折叠的 条评论
为什么被折叠?



