ch7 进程管理
Overview 进程的描述 进程的状态 State 线程 Thread 进程间通信 Inter-Process Communication 进程互斥与同步 死锁 DeadLock 进程的描述 在操作系统中,通常来说进程 Process 是当前正在执行的东西。因此,一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程,可以称之为进程。 程序是静态的文件 进程是程序动态执行的过程 进程的组成 进程包括 : 程序的代码 程序处理的数据 程序计数器 (PC) 中的值, 指示下一条将运行的指令 一组通用的寄存器的当前值, 堆 Heap , 栈 Stack 一组系统资源(如打开的文件、内存、网络) 而进程的主要构成如下, Stack Section Heap Section Data Section Text Section Stack Stack部分包含: 局部变量 函数和返回地址 main函数 如上图所示,Stack和 heap 以相反的方向增长,如果两者都以相同的方向增长,那么其两者可能会重叠,因此如果它们以相反的方向增长则很好。 示例:如,调用下列函数时,将存储在Stack部分,一旦函数返回,该函数堆栈部分的值将被删除。 Stack上有一个堆栈帧,其中包含main函数以及局部变量a, b sum 。使用 printf(),创建的帧以及局部变量只能在内存中访问,帧的持续时间在从函数 return 0 后释放。 c 1 2 3 4 5 6 7 8 int main(void) { int a, b, sum; a = 2; b = 3; sum = a + b; printf("%d\n", sum); return 0 } Stack是一种后进先出 (LIFO) 数据结构,最后一个被推到Stack上的内容就是从顶部弹出的第一个内容。不允许从Stack的中间插入或移除。因此Stack必须至少支持两种操作:push 和 pop ;其他操作也是可以,但不是必需的。...