• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

Unix系统或类Unix系统中,信号和信号量的区别

沃尔夫斯堡的羊 2020-11-17 浏览量:403
如题,类Unix系统中信号和信号量的区别?信号用于进程通信?而信号量用于进程同步,且信号量有数值部分?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 信号:是由用户、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。

    信号量:信号量是一个特殊的变量,它的本质是计数器,信号量里面记录了临界资源的数目,有多少数目,信号量的值就为多少,进程对其访问都是原子操作(pv操作,p:占用资源,v:释放资源)。它的作用就是,调协进程对共享资源的访问,让一个临界区同一时间只有一个进程在访问它。


    信号是进程(内或进程间)通信的一种机制

    信号量是进程(内或进程间)管理临界资源的一种机制,进一步可以通过一些临界资源管理实现进程(间)同步,比如对一些互斥资源的管理。由上,也可知信号量是有数值部分的,甚至可以说信号量本身就是数字量。

    • 发布于 2020-11-17
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:1
  • 信号是进程间通信(IPC)的一种受限形式,通常用于Unix,类Unix和其他POSIX兼容操作系统中。信号是一种异步通知,它发送到一个进程或同一进程中的特定线程,以便将发生的事件通知给它。信号起源于1970年代的Bell Labs Unix,最近在POSIX标准中得到了指定。


    发送信号后,操作系统会中断目标进程的正常执行流程以传递信号。在任何非原子指令中,执行都可以中断。如果该进程先前已注册了信号处理程序,则将执行该例程。否则,将执行默认信号处理程序。


    嵌入式程序可能会发现对进程间通信有用的信号,因为信号的计算和内存占用量很小。


    信号类似于中断,区别在于中断由处理器介导并由内核处理,而信号由内核介导(可能通过系统调用)并由进程处理。内核可能会将中断作为信号传递给导致中断的进程(典型示例为SIGSEGV,SIGBUS,SIGILL和SIGFPE)
    • 发布于2020-11-17
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

Unix系统或类Unix系统中,信号和信号量的区别