一、概述
进程和线程的概念不多做介绍。进程的唯一标识是PCB进程控制块。
PCB含有三大信息:
1进程标识信息
2处理机状态信息(寄存器)
3进程控制信息。
线程也对应的有TCB线程控制块,进程有用户态和核心态
二、进程的生命周期
进程创建 运行 等待 唤醒 结束
进程创建:系统初始化时 用户创建 一个进程或进程创建另一个。
进程等待:一般是自己阻塞自己,因为只有自己知道自己何时需要等待。
进程唤醒:被阻塞的进程满足了唤醒条件时。他只能被操作系统或者其他进程唤醒。
进程结束:正常退出 错误退出 致命错误强制退出 被其他进程杀死
三、其他状态
挂起状态:挂起状态的进程没有占用内存空间而是将状态存储在磁盘上(虚存)
挂起有阻塞挂起和就绪挂起,就绪挂起就是准备好进入内存运行了的。
僵尸状态:子进程exit,还没返回到父进程wait的时候,这个时刻的子进程是僵尸状态。
因为他还没有完全退出。如果这个时候父进程刚好崩溃,那么子进程则无法被回收。所以操作系统会检测父进程的存活,如果父进程不存在了,则直接杀死这个子进程。
四、同步和互斥
线程/ 进程都有同步和互斥,一帮线程编程中都会经常遇到,下面按照线程来说。