美文网首页操作系统
【csapp读书笔记】异常控制流(1)

【csapp读书笔记】异常控制流(1)

作者: I_am_Eko | 来源:发表于2017-10-30 19:22 被阅读3次

8.1 异常

异常是异常控制流的一种形式,它一部分由硬件实现,一部分由操作系统实现。
处理器状态会被编码为不同的位和信号,状态的变化称为事件。处理器检测到有事件发生时,他就会通过一张叫做异常表的跳转表,进行一个间接过程调用(异常),到一个专门设计用来处理这列事件的操作系统子程序(异常处理程序(exception handler))。
系统中可能的每种类型的异常都分配了一个唯一的非负整数的异常号。在系统启动时,操作系统分配和初始化一张称为异常表的跳转表,使得表目k包含异常k的处理程序的地址。
异常可以分为四类:中断、陷阱、故障和终止:

异常种类

8.2 进程

进程的经典定义就是一个执行中程序的实例。系统中的每个程序都运行在某个进程的上下文中,上下文是由程序正确运行所需的状态组成的。这个状态包括存放在内存中的程序的代码和数据,他的栈、通用目的寄存器的内容、程序计数器、环境变量以及打开文件描述符的集合。
进程提供给应用程序的关键抽象:

  • 一个独立的逻辑控制流,它提供一个假象,好像我们的程序独占地使用处理器。
  • 一个私有的地址空间,它提供一个假象,好像我们的程序独占的使用内存系统。
    下图为一个运行着三个进程的系统:
逻辑控制流

进程为每个程序提供它自己的私有空间地址。下图为x86-64 Linux进程的地址空间的组织结构:

进程地址空间

为了使操作系统内核提供一个无懈可击的进程抽象,处理器必须提供一种机制,限制一个应用可以执行的指令以及它可以访问的地址空间范围。所以有了用户模式和内核模式。
操作系统内核为每个进程维持一个上下文。上下文就是内核重新启动一个被抢占的进程所需的状态。在进程执行的某些时刻,内核可以决定抢占当前进程,并重新开始一个先前被抢占了的进程。这种觉得就叫做调度。
上下文切换:

  1. 保存当前进程的上下文。
  2. 恢复某个先前被抢占的进程被保存的上下文。
  3. 将控制传递给这个新恢复的进程。

相关文章

  • 【csapp读书笔记】异常控制流(1)

    8.1 异常 异常是异常控制流的一种形式,它一部分由硬件实现,一部分由操作系统实现。处理器状态会被编码为不同的位和...

  • 中断、异常与并发

    0. 前言 记得在学习《计算机系统组成原理》和阅读CSAPP时,对异常控制流(异常)、并发等内容似懂非懂、雾里看花...

  • CSAPP 第八章 异常控制流

    异常 当处理器检测到有事件发生时,他就会通过一张叫做异常表的跳转表,进行一个间接的过程调用,转到专门用于处理这类事...

  • CSAPP第八章-异常控制流

    本章的重要性在于你将开始学习应用是如何与操作系统交互的。从异常开始,异常位于操作系统和硬件交界的部分。继续讨论系统...

  • 异常控制流

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

  • 2018-11-29

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

  • 异常控制流

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

  • 异常控制流

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

  • 异常控制流

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

  • 异常控制流

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

网友评论

    本文标题:【csapp读书笔记】异常控制流(1)

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