目录
进程的定义
定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)
结合实际:在Windows下的桌面,利用快捷方式打开一个exe可执行程序,就是在操作系统中创建并执行了一个进程。而在Linux下,无论是指令,如ls,pwd...还是./a.out 都是在操作系统中创建了一个进程。 有关进程的概念的理解,会随着后期学习逐渐加深。
一个小疑问:
为什么要把程序(二进制可执行程序/文件)加载到内存呢? 因为操作系统只能对进程进行管理/调度。所以,程序文件必须从磁盘load到内存变为进程之后才能被操作系统所管理。而如果没有变为进程,那么可执行程序仅仅是磁盘上的一个二进制文件。
在Windows下的任务管理器中,就可以直观的看到进程,所以说每一个在操作系统中运行的程序都是一个进程。
PCB
PCB :Process Control Block 进程控制块,作用:描述操作系统中的进程的数据结构
为了描述控制进程的运行,系统中存放进程的管理和控制信息的数据结构称为进程控制块(PCB Process Control Block),它是进程实体的一部分,是操作系统中最重要的记录性数据结构。它是进程管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤消而撤消。 - from百度百科
为什么要有PCB:
六个字:先描述,再组织。 这是一个管理的观念,比如我们写C++程序时,写的类就是为了描述某一个事物,而创建了类的实例化对象之后,用某一个数据结构将其组织起来,就叫做再组织。之后再使用某些算法就可以达到管理对象。 这个观念在程序开发和很多场景下都适用,而C++中的STL就是为了帮助我们更方便地组织实例化对象。</