zoukankan      html  css  js  c++  java
  • Signals

         1、在Unix系统中,signal是可以随时出现的。因此,Unix中的process就告诉kernel “如果出现signal,就去做下面这些事情”。

         2、signal 是由谁发出的:terminal-generated signals, hardware exceptions, kill(2) function, kill(1) command, software condition

              signal 是发送给谁的:to some process

              signal 由谁来处理:应该是kernel

              signal 怎么处理:Ignore(不能是SIGKILL SIGSTOP), Catch(不能是SIGKILL SIGSTOP), Default action

         3、对于一个process,如果它使用exec变成了另外一个process,那么它所设定的signal handler(即signal()函数中的func指针)都会被重置。

         4、对于一个process,如果它使用fork新产生一个child process,那么这个child会继承parent的所有signal disposition(signal action)。

         5、The action for a signal was reset to its default each time the signal occurred. (Unreliable signal)

         6、If a “slow” system call was blocked and a signal was caught by this process, then the system call was interrupted. Some implementations automaticlly restart the system call, some do not.

         7、我们在自己所写的函数中,如果想要UNBLOCK一个signal,我们必须先使用sigprocmask(SIG_BLOCK, &newmask, &oldmask); 获得以前的signal mask,然后再使用SIG_SETMASK重新载入以前的这个值。这是因为,在调用我们所写的这个函数之前,caller可能已经把这个的signal设定为了blocked.

         8、使用sigprocmask()对一个signal unblock的时候,这个signal会delivered before the sigprocmask returns.

         9、现代系统中,使用sigaction()取代signal()函数,对一个signal设定它的singal handler.

         10、setjmp()longjmp()两个函数对于signal mask是否恢复,在不同的Implementation上有不同的实现。所以使用sigsetjmp()siglongjmp()两个函数用在signal handler中。

         11、sigsuspend() is used to unblock a signal then go to sleep, waiting that signal to occur.

                To protect a critical region of code from a specific signal.

                Another use of this function is to wait for a signal handler to set a global variable.

  • 相关阅读:
    podium服务器端的微前端开发框架
    几个java proxy servlet 工具
    Presto Infrastructure at Lyft
    cube.js 通过presto-gateway 进行连接
    presto-gateway nodejs client
    presto-gateway 试用以及docker 镜像制作
    presto-gateway lyft 团队开源的prestodb 的负载均衡、代理、网关工具
    Singer 修改tap-s3-csv 支持minio 连接
    plotly-dash 简单使用(一)
    smashing 三方widgets 使用
  • 原文地址:https://www.cnblogs.com/wangshuo/p/2058127.html
Copyright © 2011-2022 走看看