进程状态
创建
进程正在被创建,尚未转到就绪状态。创建进程需要申请一个空白的PCB,并向PCB写一些控制和管理进程的信息,然后由系统分配资源,将进程转入就绪状态
就绪
进程已处于准备执行的状态,获得了除CPU以外的一切所需资源
阻塞
进程正在等待某一事件而暂停运行
执行
进程在CPU上运行。在单CPU环境下,每一时刻最多只有一个进程运行
终止
进程正从系统中消失,这可能是进程正常结束,也可能是其他异常原因导致的退出。当进程需要结束运行时,系统首先置该进程为结束状态,然后再进一步处理资源释放和回收
互斥与同步
信号量
在操作系统中,信号量(semaphore)的数据结构为一个整数值和一个指针,指针指向等待该信号量的下一个进程,整数值与相应资源的使用情况有关。信号量的值仅能由PV操作来改变。
P操作
P表示通过(pass)的意思,即申请一个资源,进程进入。此时会将信号量S减1,表示占用了一个资源
若(S-1)>= 0,则进程继续执行。可以理解为:若占用一个资源后,还有多余的资源或者刚好用完资源,那么就代表该进程有资源可以利用,进程也就可以继续执行;
若(S-1)< 0,则该进程被阻塞后放入等待队列(等待该信号量的队列)中,然后转进程调度。可以理解为:若占用一个资源后,还欠别人资源,那么就代表该进程根本就没有资源可以使用,如果再用就要欠债了,所以等待
V操作
V表示释放(荷兰语v开头)的意思,即释放一个资源,进程出来。此时会将信号量S加1,表示该进程对此资源的使用已经结束,物归原主
若(S+1)> 0,则进程继续执行;
若(S+1)<= 0,则从该信号的等待队列中释放第一个等待进程,然后再返回原进程继续执行或转进程调度
PV操作对于每一个进程来说,都只能进行一次,而且必须成对使用
进程通信
低级通信‘
只能传递状态和整数值(控制信息)
传送信息量小,效率低,每次通信传递的信息量固定,若传递较多信息则需要进行多次通信
用户直接实现通信的细节,容易出错
高级通信
共享内存模式
在通信进程之间存在一块可直接访问的共享空间,通过对这片共享空间进行读/写操作,实现进程之间的信息交换
在对共享空间进行写/读操作时,需要同步互斥工具(如PV操作),对共享空间的读/写进行控制,防止多个进程同时操作共享空间
消息传递模式
进程间的数据交换是以格式化的消息(Message)为单位的。进程通过系统提供的发送消息和接收消息两个原语进行数据交换
直接:将消息发送到接收进程的信息缓冲队列中,接收进程从该队列取得消息
间接:将消息发送给某个中间实体,接受进程从中间实体中取得消息,又称为信箱通信方式
共享文件模式
共享文件:用于连接一个发送进程和一个接收进程,以实现它们之间通信的文件,就是共享文件,又叫pipe(管道)文件
向管道提供输入的发送进程,以字节流形式将大量的数据送入管道;而接收管道输出的接收进程,则从管道中接收数据
为了协调双方的通信,管道机制必须提供互斥、同步和确定对方存在这三方面的协调能力