绿色系统下载网站,值得信赖的XP系统下载站!

系统工具|网络软件|应用软件|网络聊天|图形图像|多媒体类|教育教学|安全相关|程序开发|行业软件
您的位置:首页 > 电脑教程 > 操作系统中的信号量机制问题

操作系统中的信号量机制问题

发表于:2013-04-25 14:48:20   来源:http://www.greendl.com/

   信号量机制是计算机图灵奖获得者荷兰著名科学家E.W.Dijkstra于1965年提出的,它是一种解决进程同步与互斥的方法,已被广泛应用于现代计算机系统中。

  1.信号量的概念

  信号量是一种特殊变量,它用来表示系统中相应资源的使用情况。信号量按用途可分为公用信号量和私用信号量。公用信号量也称为互斥信号量,是为一组需要互斥使用临界资源的并发进程而设置的,主要用于实现进程的互斥,初值常为1。私用信号量则是为一组需要同步协作完成任务的并发进程而设置的,一般用于进程的同步。

  2.信号量的操作

  信号量为一整型变量,它只能由P操作原语和V操作原语所访问。P、V操作是由系统提供的可供外部调用的原语。设S是一个信号量,P、V操作是定义在信号量S上的两个操作,P(S)和v(s)原语定义如下:

  (1)HS)的定义

  当一个进程对信号量S执行P操作,应执行如下动作:

  ①将信号量S的值减1(表示使用了一个资源);

  ②若S≥0,则调用P(S)的进程继续运行;

  ③若S<0,则调用P(S)的进程被阻塞,并把它送入到与信号量s有关的等待队列中,直到被移出。

  (2)V(S)的定义

  当一个进程对信号量S执行V操作,应执行如下动作:

  ①将信号量S的值加1;

  ②若S>0,则调用v(S)的进程继续运行;

  ③若S≤0,则从与信号量S相关的阻塞队列中唤醒一个进程,然后,调用v(s)的进程继续运行。

  信号量s的取值表示某类资源的数量,P-V操作对信号量访问的意义是:当信号量s>0时,S的数值表示实际还可以使用的资源数,执行P操作表示要申请分配一个资源;当S≤0时,表示无资源可用,此时s的绝对值表示信号量S的等待队列中的进程数量。执行V操作意味着释放一个资源。