深入理解计算机系统第8章 异常控制流之一异常与进程

本文详细介绍了计算机系统中的异常控制流,包括异常处理机制、异常类别,如中断、陷阱、故障和终止。此外,还探讨了进程的概念,如逻辑控制流、并发流、私有地址空间、用户模式与内核模式以及上下文切换。通过系统调用错误处理和进程控制,如获取进程ID、创建和终止进程,展示了操作系统如何管理和协调进程的执行。
摘要由CSDN通过智能技术生成

第8章 异常控制流

8.1 异常

当处理器检测到有事件发生时,它会通过一张叫做异常表的跳转表,进行一个间接过程调用,到一个专门设计用来处理这类时间的操作系统子程序(异常处理程序)。

1. 异常处理

系统启动时,操作系统分配和初始化一张称为异常表的跳转表,使得条目k包含异常k的处理程序的地址。在运行时,处理器检测到发生了一个事件,并且确定了相应的异常号k。随后,处理器触发异常,通过异常表的条目k转到相应的处理程序。
异常表的起始地址放在异常表基址寄存器中。

2.异常类别

四类:中断、陷阱、故障、终止。

  • 中断: 中断时异步发生的,是来自处理器外部的I/O设备的信号的结果。

  • 陷阱:陷阱的最重要用途是在用户程序和内核之间提供一个像过程一样的接口,叫做系统调用。普通函数运行在用户模式,它只能访问与调用函数相同的栈。系统调用运行在内核模式,内核模式允许系统调用执行指令,并访问定义在内核中的栈。

    每个系统调用都有一个唯一的整数号,对应于一个到内核中跳转表的偏移量。

  • 故障:是由错误情况引起,可能能被故障处理程序修正。当故障发生时,处理器将控制转移给故障处理程序,若处理程序能够修正这个错误情况,它将控制返回给引起故障的指令,从而重新执行它,否则,处理程序返回到内核中的abort例程,终止引起故障的应用程序。

  • 终止:处理程序将控制返回给abort例程,该例程会终止这个应用程序。

8.2 进程

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

系统中每个程序都是运行在某个进程的上下文中的,包括存放在存储器的程序的代码和数据,它的栈、通用目的寄存器的内容、程序计数器、环境变量以及打开文件描述符的集合。

当用户向外壳输入一个可执行目标文件的名字,并运行一个程序时,外壳会创建一个新的进程,然后在这个新进程的上下文中来运行这个可执行目标文件。

1. 逻辑控制流

进程是轮流使用处理器的。每个进程执行它的流的一部分,然后被抢占(暂时挂起),然后轮到其他进程。对于一个运行在这些进程之一的上下文中的程序,它看上去就像是在独占地使

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值