zoukankan      html  css  js  c++  java
  • 异常控制流

    异常分类:
    中断:是异步发生的,来自处理外部的I/O设备信号的结果。
    陷阱(陷入内核):实现系统调用,在用户程序和内核之间提供一个像函数调用一样的接口。
    故障:能够被故障处理程序修正的错误。
    终止:通常是由一些硬件引起的不可恢复的致命错误。

    逻辑控制流(logical control flow )就是一个进程在逻辑上的执行过程,因为CPU并不是一直只在执行某个单独进程的指令,但是从某个单独的进程的角度来看,这个进程就像是(只是像而已,所以叫逻辑上)独占着CPU一样。

    处理器提供一种机制,使进程可能在用户模式或内核模式下运行。在内核模式下,进程拥有更高的权限,比如能执行更多的指令、发起一次I/O操作等等。一个进程最初都是用户进程,只有通过异常才能到内核模式。在私有地址空间中,有一部分专门为内核模式分配的空间,包括代码、数据、堆和栈。

    信号处理原则
    当有多个信号到达时,遵循以下原则:
    (1)待处理信号被阻塞:程序正在处理handler函数时,如果又捕获到了一个SIGINT信号,这时候并不会停止handler函数的处理,而是将这个SIGINT信号放到带处理程序的位置(阻塞),直到handler函数执行完毕返回以后才接受这个待处理信号;
    (2)待处理信号不会排队等待:如果正在处理handler函数,接受到了2个信号,这时候先到的那个信号会变成待处理信号被阻塞,最后的那个信号直接被丢弃;
    (3)系统调用可以被中断:诸如read、wait函数,会阻塞进程一段时间,当处理程序捕获到一个信号时,被中断的系统调用在处理程序返回的时候就不会再执行了。

  • 相关阅读:
    DFS复习
    二叉搜索树专题
    二叉树路径问题
    二叉树LCA--leetcode236题
    二叉树创建与前、中、后序遍历
    leetCode--n数之和--哈希表/双指针
    leetCode--单词接龙--BFS
    vue-router简单实现
    Promise的简单实现
    闭包&作用域链&let
  • 原文地址:https://www.cnblogs.com/lolau/p/10206127.html
Copyright © 2011-2022 走看看