进程概念
进程是正在运行的程序的一个副本,是被载入内存的一个指令集合。
进程相关概念
page frame
页框(page frame)--内存管理的概念,CPU中添加了能自动把虚拟内存(即逻辑地址)地址转化为物理内存地址的电路,为了简化这种电路,就把RAM划分为长度为4KB或8KB的块,这种块就叫页框。
内核以页框为基本单位管理物理内存,分页单元中,页指一组数据,而存放这组数据的物理内存就是页框,当这组数据被释放后,若有其他数据请求访问此内存,那么页框中的页将会改变。摘自百度百科
MMU (Memory management unit) 内存管理单元
是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、中央处理器高速缓存的控制
百度百科
TLB Translation lookaside buffer 翻译后背缓冲器
TLB具有固定数目的空间槽,用于存放将虚拟地址映射至物理地址的标签页表条目。是一种保存虚拟地址与物理地址之间映射关系的缓存。
百度百科
LRU Least recently used 近期最少使用算法
进程的基本状态和转换![Alt](https://i-blog.csdnimg.cn/blog_migrate/97e10984ea7a96a0bc11b5a8ea8301b8.png)
创建状态
进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配,如果创建工作无法完成,就无法被调度运行,此时进程所处的状态即为运行态
就绪态
进程已准备好,已分配到所需资源,只要分配到CPU就能够立即运行
执行状态
进程处于就绪态被调度后,就进入了执行态
阻塞状态
一个正在运行的进程由于受到某些事件(I/O请求,申请缓存失败)而暂时无法运行,进程受到阻塞,在满足请求时进入就绪状态等待系统调用
终止状态
进程结束或出现错误或被系统终止而进入终止状态,无法在=再执行
状态转换
其它状态
RUNNING
运行状态:运行状态和就绪状态的合并,表示进程正在运行或准备运行,Linux 中使用TASK_RUNNING 宏表示可运行状态
interruptable
浅度睡眠状态:进程正在睡眠(被阻塞),等待资源的到来是唤醒,也可以通过其他进程信号或时钟中断唤醒,进入运行队列。Linux 中使用TASK_INTERRUPTIBLE 宏表示此状态。
uninterruptable
深度睡眠状态:其和浅度睡眠基本类似,但不可被其他进程信号或时钟中断唤醒。Linux 中使用TASK_UNINTERRUPTIBLE 宏表示此状态。
stopped
停止态,暂停于内存,不会被调动,除非手动启动。
zombie
僵死状态,父进程结束前,该进程不会结束
进程之间的通信
同一主机之间进程的通信
pipe 管道
这是比较长见的进程之间的通讯方式,如在终端中常常用到的 | 即为管道
echo 1*3+5 | bc
把1*3+5的打印结果通过管道传给了bc
signal 信号
socket 套接字
shared memory
semaphore 信号量
不同主机之间的进程间通信
socket
通过Ip和端口号来完成,通过IP找到目标主机后,不同的进程有不同的端口号,通过端口号即可定位到要找的进程