No.33 进程:计算机科学最成功的的概念之一

学过编程的人对“Hello world”程序已经再熟悉不过了,但是大家有没有思考过一个问题,我们写的程序为什么能在计算机上运行呢?在这里,我想引进一个概念:进程
为什么说进程是计算机中最重要和最成功的概念之一呢?因为“进程”,我们才可以更好地识破操作系统的某种“假象”。就像“Hello world”这样的程序在现代系统上运行时,我们肉眼好像只看到了这一个程序在运行,好像这个程序独占了处理器和主存,即改程序的代码和数据好像是内存中唯一存在的对象。其实这些“假象”是通过进程来实现的。
教科书中对进程的定义为:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。通俗点来说,进程是操作系统对正在运行的程序的一种抽象。在一个系统上可以同时运行诸多进程,比如,我们可以在浏览网页的同时听音乐、挂QQ等。音乐、QQ等程序在运行时操作系统已经创建了相关的进程。我们之所以可以边上网边聊天是因为进程具有并发运行的特性,即QQ进程的指令和音乐进程的指令在交错执行。无论是在早期的单核还是现代的多核系统,一个CPU看上去像是并发地执行多个进程,这是通过处理器在进程之间切换来实现的。这种交错执行的机制也被称为“上下文切换”。

与进程容易混淆的另一概念称为“线程”。我在其他资料阅读到一个通俗的例子,将在下文和读者们分享。
计算机的核心为CPU,它就像一个工厂,时刻在运行着。假设该工厂资源有限,电能每次只能供给一个车间来生产。这里的车间就是进程。即一个车间生产时,其他车间必须等待。其含义为单个CPU每次只能运行一个任务。在一个车间里,有很多工人,这么多工人协同完成一个任务。这里的“工人”就好像是“线程”,一个进程可以包含很多线程。车间里的空间是人们共享的,这意味着一个进程的内存空间是供线程共享的。但是比如洗手间,每次只供一人使用。有人使用时,其他人必须等待。这就类似线程在访问某些共享内存时,其他线程必须等它访问结束才能接着访问。
大家可以启用任务管理器来查看目前正在执行的进程:
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章