pcb、僵尸进程、孤儿进程
pcb的引出: 程序运行起来被加载到内存中,且计算机可能运行很多进程,而且每个进程之间又相互独立互不影响;那么操作系统又是如何管理这些进程的;这是因为操作系统将进程的信息都存放在一个结构体中;而操作系统通过这个结构体对进程的信息的描述来管理进程;这个结构体叫pcb; pcb --进程信息块(process control block) 在Linux 操作系统中的pcb是struct task_struck结构体(双向链表组织的);task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息。 pcb中都包含了哪些进程信息: 进程ID:每个进程都有唯一的进程ID,计算机可能存在多个进程,这些进程都有唯一标识符。 内存描述符:mm_struct结构体的地址 程序计数器:保存代码如今运行到哪个位置,下步即将运行代码指令位置。 上下文数据:多个进程之间可能会相互进行切换,但是又必须记住该进程切换之前的相关信息,所以需要有上下文记录它。 进程优先级:.操作系统会调度进程执行相关操作,调度这些进程先后顺序,所以里面应该含有表示进程优先级的数据。 进程状态:进程如今是哪种状态 I/O状态信息; 信号相关信息; 记账信息: 僵尸进程: 僵尸进程:处于僵死状态的进程,进程退出了,但是资源没有完全释放会产生资源泄露; 僵尸进程产生原因:子进程先于父进程退出