• 第八章 异常控制流(上)


    异常控制流:

    在硬件层,异常是由处理器中的事件触发的控制流中突变。控制流传递给一个软件处理程序,该处理程序进行一些处理,然后返回控制给被中断的控制流。

    异常就是控制流中的突变,用来响应处理器状态中的某些变化。异常处理过程如下:

    每个异常都分配了一个唯一的非负整数的异常号。在运行时,处理器检测发生了一个事件,并且确定了相应的异常号k,随后,处理器触发异常,方法是间接执行调用,通过异常表的表目k,转到相应的处理程序。

    异常的类别:

    1、中断:异步发生,来自处理器外部的I/O设备的信号的结果,将控制返回给应用程序控制流中的下一条指令;

    2、陷阱:有意的异常,同步发生。当程序想要请求服务时,执行syscall指令会导致一个到异常处理程序的陷阱。陷阱处理程序将控制返回给应用程序控制流的下一条指令。

    3、故障:由错误程序引起。同步发生。根据故障是否能被修复,故障处理程序要么重新执行引起故障的指令,要么终止。

    4、终止:不可恢复的致命错误造成的结果。同步发生,不会返回。

    进程:

    进程定义:一个执行中程序的实例。

    进程提供给应用两个重要的抽象:

    1、逻辑控制流。它提供给每个程序一个假象,好像它是独占地使用处理器。

    2、私有地址空间。它提供给每个程序一个假象,好像它是独占地使用主存。

    进程是轮流使用处理器的,每个进程执行它的流的一部分,然后被抢占,然后轮到其他进程。

    并发流:一个逻辑流的执行在时间上和另一个流重叠

    并发:多个流并发的执行的现象

    多任务:一个进程和其他进程轮流运行,多任务也叫时间分片

    用户模式和内核模式:

    处理器通常是用某个控制寄存器中的一个模式位来提供此功能。

    运行应用程序代码的进程初始是在用户模式中的。进程从用户模式转为内核模式的唯一方法是:通过诸如中断、故障等异常。

    上下文切换:

    操作系统内核使用一种称为上下文切换的异常控制流来实现多任务。

    内核为每个进程维持一个上下文。上下文是内核重新启动一个被抢占的进程所需的状态。

    当内核代表用户执行系统调用时,可能会发生上下文切换。如果系统调用因为等待某个事件发生阻塞,那么内核可以让当前进程休眠,切换到另一个程序。

    中断也可能引起上下文切换。

  • 相关阅读:
    6.24Java网络编程之IP
    Network
    Network
    Network
    Network
    ES
    JavaWeb
    ES
    ES
    ES
  • 原文地址:https://www.cnblogs.com/sunnyDream/p/10229602.html
Copyright © 2020-2023  润新知