并行与并发
- 并行 parallel:同一时刻多条指令在多个处理器上同时执行
- 并发 concurrency:同一时刻只有一条指令执行,但多个指令快速轮换执行。在宏观上表现多个指令同时执行的效果
进程与线程
- 进程 process:操作系统分配资源的基本单位
- 线程 thread:CPU调度和分派的基本单位
- 应用程序至少有一个进程和一个线程
- 同一进程的多个线程可以并发执行
- 进程在执行过程中拥有独立的内存单元,而线程共享内存
- 多进程编程需要考虑进程间的通信 IPC
- 进程切换时,耗费资源较大
多进程
- 进程 process
- 进程号 os.getpid()
- 孤儿进程:子进程在父进程退出后仍在运行,会被init进程接管,init以父进程的身份处理子进程运行完毕后遗留的状态信息
- 僵尸进程
- 父进程创建子进程后,如果子进程退出,但父进程并没有调用wait或waitoid获取子进程的状态信息,那么子进程的进程描述符将一直保存于系统,对应的子进程称为僵尸系统。
- 僵尸进程无法通过