初识进程——进程的基本概念

2019-07-14 11:04发布

在正式了解进程之前,我们先通过最直接的方式,在windows环境看一下身边的进程:

我们可以看到,实际上电脑中跑的一个个应用/程序都是一个进程。

我们都知道操作系统是一个进行“管理”的软件,那操作系统是如何管理进程的呢?  其实很简单,描述进程 + 组织进程
1 描述进程 PCB说到进程,不得不说的一样就是进程控制块PCB,进程的所有信息都被放在PCB这样一个数据结构中。而在Linux操作系统下的PCB是task_struct,是描述进程的结构体
task_struct结构体中的内容:(1)标识符:(进程ID)用来唯一标识该进程,区别其他进程;(2)状态:每个进程都有自己的状态,还有退出码、退出信号等;(3)优先级:相对于其他进程的优先级,标识CPU资源分配的先后顺序;(4)程序计数器:程序中下一条被执行指令的地址;(5)内存指针:内存代码和进程相关数据的指针,还有和其他进程共享的内存块的指针;(6)上下文数据:进程执行过程中寄存器中的数据;(7)I/O状态信息:I/O请求,分配的I/O设备等;(8)其他信息...
我们通过指令查看一下进程的信息:
2 组织进程
所有运行在系统里的进程都以task_struct链表的形式存在内核中
3 进程和程序的区别(1)程序是永恒静止的,是存放在磁盘上的普通文件;(2)进程是暂时动态的,只有将程序的代码和数据加载到内存上才会变成进程,进程有创建和撤销;(3)进程有调度,程序没有,这也印证了进程是动态,程序是静态;(4)一个程序可以对应多个进程,一个进程只能对应一个程序;(5)进程是系统进行资源分配的基本实体(6)进程可以并发执行,程序不行;(7)程序:代码段 + 数据段   进程:代码段 + 数据段 + 堆栈 + PCB