第二遍读这本书,每周花两到三小时时间,能读多少读多少(这次看了第 500~507 页,共 8 页) 第一遍对应笔记链接 https://www.cnblogs.com/stone94/p/10165167.html ECF(Exception Control Flow,异常控制流)是I/O.进程和虚拟内存的共用基本概念. 在能够真正理解这些重要概念之前,我们需要真正的理解 ECF. 向磁盘写数据.从网络读取数据.创建一个新进程,以及终止当前进程,都是通过应用程序调用系统调用来实现的. 应用程序是…
第二遍读这本书,每周花两到三小时时间,能读多少读多少(这次看了第 508~530 页,共 23 页) 第一遍对应笔记链接 https://www.cnblogs.com/stone94/p/10206004.html 进程是计算机科学中最深刻.最成功的概念之一.(尽管看了书中关于进程的很多描述,我还是理解不了这句话,不是说怀疑这句话的正确性,只是自己不能理解,或许以后看得多了就能理解了) 进程和应用程序的关系 “进程的经典定义就是一个执行中的程序的示例” 那么,是否可以将它们的关系类比于 Jav…
本章主旨 第八章的目的是阐述清楚应用程序是如何与操作系统交互的(之前章节的学习是阐述应用程序是如何与硬件交互的) 异常控制流 异常控制流,即 ECF(exceptional contril flow) ECF 的重要性 ECF 对于程序员的重要性体现在以下几点: 理解 ECF 将帮助我们理解重要的系统概念 理解 ECF 将帮助我们理解应用程序是如何与操作系统交互的 理解 ECF 将帮助我们编写有趣的新应用程序 理解 ECF 将帮助我们理解软件异常如何工作 异常处理程序 在任何情况中,当处理器检测…
关于进程,需要关注其提供给应用程序的两个关键抽象: 1.一个独立的逻辑控制流,它提供一个假象,好像我们的程序独占地使用处理器 2.一个私有的地址空间,它提供一个假象,好像我们的程序独占地使用内存系统 逻辑控制流: 如果想用调试器单步执行程序,我们会看到一系列的程序计数器(PC)的值,这些值唯一地对应于包含在程序的可执行目标文件中的指令,或是在运行时动链接到程序的共享对象的指令.这个 PC 值的序列叫做逻辑控制流,或者简称逻辑流. 并发流: 计算机系统中逻辑流有许多不同的形式.异常处理程序.进程.…
CSAPP:第八章 异常控制流1 关键点:异常 8.1 异常8.2 进程   现代系统通过使控制流发生突变来对这些情况做出反应,一般而言,我们把这些突变称为异常控制流(Exceptional Control Flow,ECF).异常控制流发生在计算机系统的各个层次. 8.1 异常   异常是异常控制流的一种形式,它的一部分由硬件实现,一部分由操作系统实现.异常就是控制流中的突变,用来响应处理器中的一些变化.如图所示,当处理器状态发生一个重要的变化时,处理器正在执行某个当前指令Icurr.在处理器…
第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的变化复杂问题时就没法使用上面的方法控制: 数据从磁盘或者网络适配器到达 指令除以了零 用户按下 ctrl+c 系统的计时器到时间 现代系统通过使控制流发生突变来对系统状态的变化做出反应,这些突变称为异常控制流. 异常控制流有四种实现机制: 1)异常(低层级):2)进程上下文切换:3)信号:4)非本地…
CSAPP:第八章 异常控制流2 关键点:进程控制.信号 8.4 进程控制8.5 信号 8.4 进程控制   Unix提供了大量从C程序中操作进程的系统调用.8.4.1 获取进程ID  每个进程都有一个唯一的正数(非零)进程ID(PID).getpid函数返回调用进程的PID,getppid函数返回它父进程的PID 1#include <sys/types.h>2#include <unistd.h>3pid_t getpid(void);4pid_t getppid(void);…
第八章 异常控制流ECF 8.1 异常 Exception graph LR E[异常Exception]-->E2[中断:异步异常] E-->E3[同步异常] E3-->陷阱 E3-->故障 E3-->中止 异常是异常控制流的一种形式,他一部分由硬件实现,一部分由操作系统实现. 在任何情况下,当处理器检测到有事情发生时,他就会通过一张叫做异常表(exception table)的跳转表,进行一个简介过程调用(异常),到一个专门用来处理这类事件操作系统子程序(异常处理程序 e…
异常控制流 控制转移 控制流 系统必须能对系统状态的变化做出反应,这些系统状态不是被内部程序变量捕获,也不一定和程序的执行相关. 现代系统通过使控制流 发生突变对这些情况做出反应.我们称这种突变为异常控制流( Exceptional Control Flow,ECF) 异常控制流发生在系统的各个层次. 理解ECF很重要 理解ECF将帮助你理解重要的系统概念. 理解ECF将帮助你理解应用程序如何与操作系统交互 通过陷阱(trap)或者系统调用(system call)的ECF形式,向操作系统请求服…
<深入理解计算机系统> 第三版 第二遍读这本书,每周花两到三小时时间,能读多少读多少(这次看了 22 ~ 28 页) 第一遍对应笔记链接 https://www.cnblogs.com/stone94/p/9824395.html 计算机中存储整数时,一般都是以补码的形式存储的 因为使用补码计算的话,计算机可以不用判断符号位(直接把所有位的值都当做数值),可以用加法去替代减法(少了一种算法) 对于虚拟地址和虚拟地址空间不大理解,先把相关内容摘抄下来: “机器级程序将内存视为一个非常大的字节数组…