美文网首页
第八章-异常控制流(2)

第八章-异常控制流(2)

作者: CSU_IceLee | 来源:发表于2018-12-30 18:40 被阅读6次

信号

一个信号就是一条小消息,通知进程系统中发生了一个某种类型的事件。

通常异常都是由内核异常处理程序进行处理的,正常情况下,对用户进程是不可见的。信号提供了一种机制,通知用户进程发生了这些异常。

传送一个信号到目的进程的步骤:

image.png image.png
image.png
  1. 进程组:
    每个进程都属于一个进程组。通常父进程和子进程属于同一个进程组。
    可以通过函数改变某个进程的进程组。
  2. 发送信号
  • /bin/kill
    可以发送任意信号,其中杀死进程的信号是 /bin/kill -9 pid
    杀死进程组: /bin/kill -9 -15231(进程组PID)
  • 键盘发送信号
    Ctrl+C会发送SIGINT到前台进程组中的每个进程,默认情况下会终止前台作业。
    Ctrl+Z会发送SIGTSTP到前台进程组中的每个进程,默认会挂起前台作业。
  • kill函数发送信号
    可以给其他进程发送信号
  • alarm函数发送信号
    给自己发送SIGALRM信号。
  1. 接受信号
    当内核把进程p从内核模式切换到用户模式,会检查进程p的未被阻塞的待处理信号的集合,如果集合为空,那么内核将控制传递到p的逻辑控制流中的下一条指令。然而,如果是非空的,那么会将集合中的某个信号k强制让p接收。
  2. 阻塞和解除阻塞信号
    隐式阻塞:内核默认阻塞当前程序正在处理信号类型的待处理的信号。
    显示阻塞机制:通过函数明确地阻塞和解除阻塞选定的信号。

相关文章

  • 异常控制流2

    中断和异常的处理: 发生异常和中断事件后,系统将进入os内核对响应的事件进行处理,即改变处理器状态(用户态->内核...

  • 第八章-异常控制流(2)

    信号 一个信号就是一条小消息,通知进程系统中发生了一个某种类型的事件。 通常异常都是由内核异常处理程序进行处理的,...

  • 异常控制流

    学习目标 1.了解异步异常与同步异常,以及异常控制流与平时的逻辑控制流的差异2.理解进程的工作机制,如何通过异常来...

  • 2018-11-29

    ## 异常控制流 异常控制流存在于系统的每个层级,最底层的机制称为**异常(Exception)**,用以改变控制...

  • 操作系统对异常的处理

    文章结构为 1:什么是异常 2:怎么处理异常 什么是异常: 先说下什么是异常控制流,htt...

  • 异常控制流

    cpu会因为遇到内部异常或外部中断等原因而打断程序的正常控制流,转去执行操作系统提供的针对这些特殊事件的处理程序,...

  • 异常控制流

    异常控制流 7.1 进程与进程的上下文切换 程序和进程的概念 进程的逻辑控制流 进程的上下文切换 进程的私有地址空...

  • 异常控制流

    现代系统必须能够对系统状态的变化做出反应,这些系统状态不是被内部程序变量捕获的,而且也不一定要和程序的执行相关。比...

  • 异常控制流

    异常控制流 系统需要能够对系统状态的改变做出反应,这些系统状态不是被内部程序变量捕获的,而且也不一定和程序的执行相...

  • 异常控制流

    系统通过使处理器控制流发生突变来对系统状态的变化作出反应,我们把这种突变称为异常控制流(Exceptional C...

网友评论

      本文标题:第八章-异常控制流(2)

      本文链接:https://www.haomeiwen.com/subject/xnavlqtx.html