并发执行的程序在执行过程中分配和管理资源的基本单位。竞争计算机系统资源的基本单位。每一个进程都有一个自己的 地址空间 即进程空间。
被系统独立调度和分派的基本单位,不拥有系统资源,而是与所处同一个进程中的其他线程共享进程所拥有的全部资源。
就绪态、运行态、阻塞态。
当进程已分配到除 CPU 以外的所有必要资源后,只要在获得 CPU ,便可立即执行
进程已获得 CPU ,其程序正在执行
正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,亦即程序的执行受到阻塞
处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。
处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。
正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。
处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。
来源:csdn
文件映射,共享内存,匿名管道,命名管道 ,邮件槽, 剪切板 ,动态数据交换,对象链接与嵌入, 动态链接库 ,远程过程调用等
管道(pipe):是一种半双工的通信方式, 数据只能单向流动,而且只能在具有亲缘关系的进程间使用命名管道(named pipe):半双工的通信方式,但是 它允许无亲缘关系进程间的通信 。信号量(semophore):信号量是一个计数器,可以用来控制多个进程对共享资源的访问。 它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源 。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。消息队列(message queue):消息队列 是一个消息的链表 ,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流、缓冲区大小受限等缺点。信号(signal):信号是一种比较复杂的通信方式,用于 通知接收进程某个事件已经发生 。共享内存(shared memory):共享内存就是 映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。事件,临界区,互斥量,信号量 等
某一资源同时只允许一个访问者对它进行访问,具有唯一性和排他性 。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。
在互斥的基础上,通过其他机制实现访问者对资源的有序访问 。在大对数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。
