进程
进程的状态
三种状态:running运行, ready就绪, blocking阻塞
运行和就绪状态的进程可以运行,是否运行取决于CPU分配时间。
阻塞状态的进程就算CPU空闲也不能进行,解除阻塞状态需要一个外部事件,比如磁盘IO返回了结果。
进程通信
线程
线程是CPU工作的最小单位。
线程之间不共享的是:寄存器,PC,栈,线程ID
进程线程区别
从概念角度:进程是由一个个线程组成的。
从效率角度:创建和销毁线程比进程要高效和省空间。
从通信机制:进程之间相互独立,需要更复杂的通信机制。同一个进程的线程们共享一块内存,通信方便。
从程序员角度:进程编程需要处理pid,更复杂
从使用场景:大量计算和IO处理 -> 大量的CPU上下文切换 -> 线程。频繁创建销毁 -> 线程。
追求稳定、安全 -> 进程
虚拟内存
程序的地址空间是虚拟的,不被直接映射到物理内存,而且虚拟地址空间被分割成多块,每块叫一页。
解决了程序所需内存大到物理内存无法容纳的问题。
死锁
进程A锁住了资源1,进程B锁住了资源2,他们互相又想获取对方锁住的资源 - > 死锁