Linux之进程概念
1.什么是进程 通俗来说,进程就是运行中的程序 从操作系统角度来说, 进程就是操作系统对进程的描述信息。 这个能 具象化进程 的描述信息叫 进程控制块PCB ,Linux下这个描述结构叫 struct task_struct 进程是程序的基本执行实体,也是系统进行资源的分配和调度的基本单位。 2.进程包含的主要信息 操作系统能通过task_struct运行程序,是因为task_struct里面包含: 内存指针,标识符pid ,文件状态信息,进程状态 ,上下文数据,程序计数器, 进程优先级 ... 内存指针: 程序和数据运行起来后被加载到内存中的位置 标识符pid: 唯一标识系统中的各个进程 上下文数据: 进程执行时的状态和资源 程序计数器: 保存程序切换时的位置 3.进程的状态 运行 : 占有CPU,并在CPU上运行 就绪: 已经具备运行条件,但由于没有空闲CPU,而暂时不能运行 阻塞: 因等待某一事件而暂时不能运行 4.特殊状态的进程 1.僵尸进程: 处于僵尸状态的进程 僵尸进程如何产生?有什么危害?如何避免? 子进程先于父进程退出,为了保存退出原因,因此子程序资源不会被完全释放,操作系统检验到子进程退出,这时候通知父进程,这时候父进程可以获取子进程退出原因,允许操作系统释放资源