美文网首页
深入理解计算机之异常

深入理解计算机之异常

作者: 知道的太少 | 来源:发表于2020-10-18 00:59 被阅读0次
处理器控制流.PNG

异常

异常是异常控制流的一种形式,部分有硬件实现,部分由操作系统实现,是控制流的一种突变,用以响应处理器某些状态变化。

异常.PNG 异常处理.PNG
异常表: 异常表.PNG
异常的类别: 异常的类别.PNG
中断: 中断.PNG
陷阱和系统调用:
陷阱是一种有意的异常,是执行一条指令的结果。陷阱的一个最重要的作用就是实现系统调用。处理器提供了一个特殊的syscall n指令,当应用程序执行syscall指令时,会导致一个跳转到异常处理程序的陷阱,这个程序会解析该指令的参数,然后跳转到对应的系统调用。 系统调用.PNG
故障和终止:
故障和终止.PNG

x86-64异常

x86-64系列有多大256种异常,其中0~31号为Intel架构师定义的异常,剩余未操作系统定义的中断和异常。

x86-64异常.PNG
Linux/x86-64故障和终止:
Linux-x86-64故障和终止.PNG
Linux/x86-64系统调用:
Linux系统调用.PNG
Linux常用系统调用.PNG

进程

进程.PNG
逻辑控制流:
逻辑控制流.PNG 注意区别这里的逻辑控制流和前面讲的控制流之间的异同。
并发流:
并发流.PNG
私有地址空间:
进程地址空间.PNG
用户模式和内核模式:
内核模式.PNG
上下文切换:
进程上下文切换.PNG
进程切换举例:
进程A和B切换.PNG 需要注意的是,上图在进行第一次上下文切换之前,内核代表进程A工作在用户模式,换句话说,操作系统里没有额外的独立内核进程。同时,上下文切换工作在内核模式,如上图的第一次上下文切换,内核先工作在进程A的内核模式,然后进入进程B的内核模式。

系统调用的错误处理

系统调用的错误处理.PNG

进程控制

获取进程ID:

获取进程ID.PNG
创建和终止进程:
进程状态.PNG
终止进程.PNG
创建进程.PNG
回收子进程:
僵尸进程.PNG
waitpid函数.PNG
函数waitpid的等待集合由其参数pid决定,如果pid > 0,则等待节合就是一个单独的子进程,它的进程ID等于pid;如果pid = -1那么等待集合就是由父进程的所有子进程组成。我们还可以修改waitpid函数的默认行为:
waitpid的默认行为.PNG
检查已回收子进程的退出状态:
检查已回收子进程的退出状态.PNG
简化版waitpid函数.PNG
让进程休眠:
让进程休眠.PNG

加载并运行程序

execve函数.PNG
参数和环境变量组织结构.PNG
用户程序的栈结构.PNG
操作环境变量数组.PNG
程序和进程.PNG

信号

低层次的硬件异常是由内核异常处理程序处理的,正常情况下对用户是不可见的,而信号提供了一种机制,通知用户发生了这些异常。每种信号类型都对应某种系统事件,例如进程试图除零,或者进程执行了一个非法指令,或者有非法的内存引用,或者ctrl+c、kill命令等。

Linux信号.PNG
发送一个信号到目的进程由两个步骤组成: 发送信号.PNG 接收信号.PNG
待处理信号: 待处理信号.PNG
发送信号: 进程组.PNG setpgid函数将进程pid的进程组改为pgid,如果pid是零,则改变本进程的进程组id;如果pgid是零,则将pid作为进程组id。 kill命令.PNG

相关文章

  • 深入理解计算机之异常

    异常 异常是异常控制流的一种形式,部分有硬件实现,部分由操作系统实现,是控制流的一种突变,用以响应处理器某些状态变...

  • 深入理解计算机系统(原书第三版)PDF 高清中文版

    深入理解计算机系统 PDF 深入理解计算机系统 pdf, 这本书的全名是:Computer Systems:A ...

  • 学习路线总结

    深入理解计算机系统

  • 书籍

    <<深入理解计算机系统>>

  • 深入理解计算机系统 PDF 第三版

    深入理解计算机系统 PDF 深入理解计算机系统 pdf, 这本书的全名是:Computer Systems:A P...

  • 编码浅谈

    为什么要熟悉编码的本质?深入理解计算机软硬件知识深入理解计算机背后的语言 一、先来理解编码 广义的理解:编码就是交...

  • 书单

    《深入理解计算机系统》 《Think in Java》 《深入理解JVM虚拟机》 《Effective Java》...

  • 《深入理解计算机系统》读书笔记

    《深入理解计算机系统》读书笔记 深入理解计算机系统(原书第3版) ★★★★★9.9 Randal E.Bryant...

  • 笔记篇章之《学习之路》

    计算机基础 《程序是怎样跑起来的》 推荐理由:类似深入理解计算机的图解版本,如果第一次看深入理解计算机看不进去,可...

  • 深入理解 Java 异常

    ? 本文已归档到:「javacore」? 本文中的示例代码已归档到:「javacore」 1. 异常框架 1.1....

网友评论

      本文标题:深入理解计算机之异常

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