文章目录
第二章 进程与线程
一、进程与线程
1. 进程的定义
早期计算机只支撑一道程序
中间是栈和堆
当多道程序并发进行
**通俗解释进程:**加载到内存中的程序,任何进程,都要先描述(struct),再组织,再加上PBC,满足两个条件,才是进程
因为程序并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态是由多个程序来改变,致使程序的运行失去了封闭性。而程序一旦失去了封闭性也会导致其再失去可再现性
进程控制块/PBC(process control block):
专门的数据结构。
- OS通过这个数据结构里面的指针(或者是其他)来管理信息,OS找进程通过PBC寻找,不直接去找进程对应的代码和数据。
- CPU,通过排在进程队列里面的PBC来,运行进程
进程实体(进程映像): 程序段、数据段、PCB三部分组成了进程实体(进程映像) .一般情况下,我们把进程实体就简称为进程
进程是进程实体的运行过程
,是系统进行资源分配和调度的一个独立单位。
注:严格来说,进程实体和进程并不一样,进程实体是静态的,进程则是动态的。
2. PCB 的组成
struct PCB
{
//描述进程的各种信息
};
在Linux中:PCB
struct tast_struct//任务进程 { //j };
测试代码:
#include <stdio.h> #include <unistd.h> int main() { while(1) { sleep(1); printf("1\n"); } return 0; }
以下是在运行的过程中,通过另一个用户看到该计算机上的进程