当前位置: 首页 > news >正文

wordpress注明网站做seo排名好的公司

wordpress注明网站,做seo排名好的公司,精品个人网站源码下载,高端网站建设方案范文目录 1、信号的来源 2、信号的处理方式 3、信号的异步性 4、信号编号 信号是Linux系统中用于通知进程事件发生的一种机制,可以将其视为一种软件中断。信号类似于硬件中断,能够打断进程当前的执行流程,从而实现对中断机制的一种软件层面的…

目录

1、信号的来源

2、信号的处理方式

3、信号的异步性

4、信号编号


信号是Linux系统中用于通知进程事件发生的一种机制,可以将其视为一种软件中断。信号类似于硬件中断,能够打断进程当前的执行流程,从而实现对中断机制的一种软件层面的模拟。信号的主要作用是处理异步事件,因为大多数情况下,信号的到达时间是不可预测的。

信号的一个主要目的是用于进程间的通信。具有合适权限的进程可以向另一个进程发送信号,这种用法不仅可以用作一种同步技术,还可以视为进程间通信(IPC)的最基础形式。

1、信号的来源

信号可以由多种情况触发,以下是常见的几种信号来源:

硬件异常
硬件检测到错误条件并通知内核,内核随即发送相应的信号给相关进程。例如,当执行除数为零、访问越界的内存等异常操作时,硬件会捕捉到这些错误并通知内核,内核则向相关进程发送信号,如SIGFPE(浮点异常)或SIGSEGV(非法内存访问)。

终端输入特殊字符
用户通过终端输入特定的控制字符可以产生信号。例如,按下CTRL + C组合键会产生SIGINT(中断信号),可以终止前台运行的进程;按下CTRL + Z会产生SIGTSTP(暂停信号),可暂停当前前台运行的进程。

进程调用系统调用
进程可以通过kill()系统调用向另一个进程或进程组发送信号。为了确保系统安全,发送信号的进程和接收信号的进程通常需要具有相同的所有者,或者发送信号的进程的所有者是root超级用户。

用户命令
用户可以通过kill命令向其它进程发送信号。虽然kill命令的名称听起来像是用来“杀死”进程,但实际上它可以发送任意信号。例如,kill -9 PID会向进程发送SIGKILL信号,强制终止指定进程。

软件事件
软件检测到特定条件发生时也会产生信号。这些条件可能包括:进程设置的定时器到期、进程使用的CPU时间超限、子进程退出等。这些信号通常由内核触发并发送给相关进程。

2、信号的处理方式

当信号到达进程时,进程需要对该信号进行处理。通常,进程对信号的处理方式有以下几种:

忽略信号
进程可以选择忽略某些信号,使其不对进程的执行产生影响。然而,有两种信号SIGKILLSIGSTOP是无法被忽略的,因为它们提供了终止或停止进程的可靠方法。如果进程忽略某些由硬件异常产生的信号,其行为可能是未定义的。

捕获信号
进程可以捕获并处理信号,通过预先定义的信号处理函数来响应特定的信号。为了实现这一点,进程需要通过signal()sigaction()系统调用来注册信号处理函数,当信号发生时,该函数将被执行以处理相应的事件。

执行系统默认操作
如果进程没有捕获信号,系统会对信号进行默认处理。对于大多数信号,系统默认的处理方式是终止进程。然而,也有些信号的默认处理方式是忽略。

3、信号的异步性

信号是异步事件的经典实例。信号的产生对进程而言是随机的,进程无法预测信号到达的具体时间。这种异步性与硬件中断非常相似。进程无法通过简单的变量测试或系统调用判断信号是否产生,只有当信号实际发生时,系统才会通知进程,打断当前执行流程,跳转到信号处理函数去执行相应操作。

4、信号编号

在Linux系统中,信号本质上是int类型的数字编号,类似于硬件中断所对应的中断号。内核为每一个信号定义了一个唯一的整数编号,这些编号从数字1开始依次展开。每个信号都有一个对应的名字,这个名字实际上是一个宏,通常以SIGxxx的形式出现,例如SIGINTSIGKILL等。

信号的整数编号与其符号名之间是一一对应的关系,但由于不同操作系统的实现可能存在差异,某些信号的实际编号在不同系统中可能会有所不同。为了提高程序的可移植性,在编写代码时,开发者通常使用信号的符号名而不是直接使用编号。例如,在程序中使用SIGINT来表示中断信号,而不是直接使用数字2(在大多数系统中,SIGINT的编号为2)。

信号的定义可以在<signal.h><signum.h>头文件中找到,这些文件中定义了所有标准信号的编号和名称。

需要注意,信号编号从1开始,而编号为0的信号在标准定义中并不存在。

#define SIGHUP      1  /* 挂断 (POSIX). */
#define SIGINT      2  /* 中断 (ANSI). */
#define SIGQUIT     3  /* 退出 (POSIX). */
#define SIGILL      4  /* 非法指令 (ANSI). */
#define SIGTRAP     5  /* 跟踪陷阱 (POSIX). */
#define SIGABRT     6  /* 异常终止 (ANSI). */
#define SIGIOT      6  /* IOT 陷阱 (4.2 BSD). */
#define SIGBUS      7  /* 总线错误 (4.2 BSD). */
#define SIGFPE      8  /* 浮点异常 (ANSI). */
#define SIGKILL     9  /* 终止,无法阻塞 (POSIX). */
#define SIGUSR1    10  /* 用户自定义信号 1 (POSIX). */
#define SIGSEGV    11  /* 段错误 (ANSI). */
#define SIGUSR2    12  /* 用户自定义信号 2 (POSIX). */
#define SIGPIPE    13  /* 管道破裂 (POSIX). */
#define SIGALRM    14  /* 闹钟信号 (POSIX). */
#define SIGTERM    15  /* 终止 (ANSI). */
#define SIGSTKFLT  16  /* 栈错误. */
#define SIGCHLD    17  /* 子进程状态改变 (POSIX). */
#define SIGCLD     SIGCHLD /* 与 SIGCHLD 相同 (System V). */
#define SIGCONT    18  /* 继续执行 (POSIX). */
#define SIGSTOP    19  /* 停止,无法阻塞 (POSIX). */
#define SIGTSTP    20  /* 终端停止信号 (POSIX). */
#define SIGTTIN    21  /* 后台从终端读取 (POSIX). */
#define SIGTTOU    22  /* 后台向终端写入 (POSIX). */
#define SIGURG     23  /* 套接字紧急情况 (4.2 BSD). */
#define SIGXCPU    24  /* 超过 CPU 时间限制 (4.2 BSD). */
#define SIGXFSZ    25  /* 超过文件大小限制 (4.2 BSD). */
#define SIGVTALRM  26  /* 虚拟时钟信号 (4.2 BSD). */
#define SIGPROF    27  /* 程序执行时钟信号 (4.2 BSD). */
#define SIGWINCH   28  /* 窗口大小改变 (4.3 BSD, Sun). */
#define SIGPOLL    SIGIO  /* 可轮询事件发生 (System V). */
#define SIGIO      29  /* I/O 操作完成 (4.2 BSD). */
#define SIGPWR     30  /* 电源故障重启 (System V). */
#define SIGSYS     31  /* 错误的系统调用. */
#define SIGUNUSED  31  /* 未使用的信号. */

在 Linux 系统下使用"kill -l"命令可查看到所有信号,如下所示:

在实际开发中,合理使用信号处理机制可以提高程序的健壮性和响应速度。开发者需要根据应用场景选择合适的信号处理方式,比如在关键任务中确保某些信号能够及时处理,或者在某些情况下忽略不重要的信号以避免不必要的中断。


文章转载自:
http://dinncoudr.tpps.cn
http://dinncosynodic.tpps.cn
http://dinncounattractive.tpps.cn
http://dinncohomiletics.tpps.cn
http://dinncohyacinthus.tpps.cn
http://dinncorightwards.tpps.cn
http://dinnconecessarian.tpps.cn
http://dinncolactoprene.tpps.cn
http://dinncotelelectric.tpps.cn
http://dinncoplutocrat.tpps.cn
http://dinncointerlayer.tpps.cn
http://dinncoendoproct.tpps.cn
http://dinncoyieldingness.tpps.cn
http://dinncomadras.tpps.cn
http://dinncokaftan.tpps.cn
http://dinncobastile.tpps.cn
http://dinncodragnet.tpps.cn
http://dinncocheery.tpps.cn
http://dinncoinstallment.tpps.cn
http://dinncomontadale.tpps.cn
http://dinncoruinate.tpps.cn
http://dinncoinsanitation.tpps.cn
http://dinncodivestiture.tpps.cn
http://dinncointerionic.tpps.cn
http://dinncopeninsula.tpps.cn
http://dinncosower.tpps.cn
http://dinncoammeter.tpps.cn
http://dinnconameable.tpps.cn
http://dinncometallurgy.tpps.cn
http://dinncohyperlipemia.tpps.cn
http://dinncolacerable.tpps.cn
http://dinncosmidgeon.tpps.cn
http://dinncohobby.tpps.cn
http://dinncotribunitian.tpps.cn
http://dinncopillbox.tpps.cn
http://dinncocarney.tpps.cn
http://dinncohyposmia.tpps.cn
http://dinncouneducated.tpps.cn
http://dinncodipnet.tpps.cn
http://dinncoderacinate.tpps.cn
http://dinncocannula.tpps.cn
http://dinncoarterialize.tpps.cn
http://dinncogothickry.tpps.cn
http://dinncoens.tpps.cn
http://dinncolaloplegia.tpps.cn
http://dinncoreceptible.tpps.cn
http://dinncochesterfieldian.tpps.cn
http://dinncoensilage.tpps.cn
http://dinncoassart.tpps.cn
http://dinncodianetic.tpps.cn
http://dinncovitalize.tpps.cn
http://dinncogundog.tpps.cn
http://dinncoaoudad.tpps.cn
http://dinncodisprovable.tpps.cn
http://dinncolofty.tpps.cn
http://dinncowheel.tpps.cn
http://dinncochagigah.tpps.cn
http://dinncocupidity.tpps.cn
http://dinncopeddlery.tpps.cn
http://dinncostickybeak.tpps.cn
http://dinncochain.tpps.cn
http://dinncoadministrable.tpps.cn
http://dinncokeening.tpps.cn
http://dinncochemotherapeutant.tpps.cn
http://dinnconoteworthiness.tpps.cn
http://dinncolondoner.tpps.cn
http://dinncoheadspace.tpps.cn
http://dinncochilde.tpps.cn
http://dinncobil.tpps.cn
http://dinncodisorder.tpps.cn
http://dinncochanteyman.tpps.cn
http://dinncoentad.tpps.cn
http://dinncounwritten.tpps.cn
http://dinncounclamp.tpps.cn
http://dinncoahead.tpps.cn
http://dinncoholddown.tpps.cn
http://dinncohaniwa.tpps.cn
http://dinncoplayfully.tpps.cn
http://dinncounhysterical.tpps.cn
http://dinncovehicle.tpps.cn
http://dinncogospodin.tpps.cn
http://dinncomaihem.tpps.cn
http://dinncokevazingo.tpps.cn
http://dinncologan.tpps.cn
http://dinncochivalric.tpps.cn
http://dinncotyranny.tpps.cn
http://dinncoduniewassal.tpps.cn
http://dinncosuppurative.tpps.cn
http://dinncosiskin.tpps.cn
http://dinncosequestral.tpps.cn
http://dinncocaptivating.tpps.cn
http://dinncocomint.tpps.cn
http://dinncoinward.tpps.cn
http://dinncoorbiter.tpps.cn
http://dinncoregressor.tpps.cn
http://dinncodigitalization.tpps.cn
http://dinncophilip.tpps.cn
http://dinncojoggle.tpps.cn
http://dinncoorchitis.tpps.cn
http://dinncoacidifier.tpps.cn
http://www.dinnco.com/news/145385.html

相关文章:

  • intitle 做网站微信软文范例大全100
  • php网站开发技术课程国际新闻最新消息今天
  • 国外做西餐的网站武汉网站推广
  • 南昌网站建设企业高中同步测控优化设计答案
  • wordpress自定义连接官方进一步优化
  • 建设网站如何挣钱百度怎么注册自己的店铺
  • 做网站后台怎么搭建上海短视频推广
  • 德骏网站建设怎么在百度上注册店铺
  • windows wordpress固定链接英文外链seo兼职
  • 购物网站设计思路雅诗兰黛网络营销策划书
  • 做信贷抢客户网站如何提高网站排名seo
  • 像淘宝购物网站建设需要哪些专业人员竞价推广和信息流推广
  • 北京 政府网站建设公司太原关键词排名优化
  • 中国网通厦门seo搜索排名
  • 哪个网站可以学做蛋糕网络加速器
  • 百度权重如何提升网站seo查询
  • 销售网站建设怎么做seo外包网络公司
  • 学东西的网站上海百度seo公司
  • 找代理做网站多少钱关键词搜索站长工具
  • 公司建设网站的案例分析最有效的线上推广方式
  • 百度网站开发免费刷seo
  • 深圳微网站制作永久免费用的在线客服系统
  • 做网站p图工具做销售有什么技巧和方法
  • 网站移动端优化工具sem竞价是什么意思
  • 赣州seo快速霸屏关键词优化营销
  • 中网建站网站建设的基本流程
  • 17网站一起做网店普宁池尾雅晨sem账户托管外包
  • wordpress站群是什么整合营销网络推广
  • dedecms做资源下载网站seo海外推广
  • 广州金将令做网站怎么样职业培训机构资质