深入理解计算机系统
文章平均质量分 95
Still_Believe_
爱好编程C++,Java,Python。g
ithub主页:https://github.com/klc407073648
C++全栈知识体系网站:https://stibel.icu
展开
-
深入理解计算机系统——第12章 并发编程
深入理解计算机系统——第12章 并发编程并发编程如果逻辑控制流在时间上重叠,那么就称它们是并发的。注意:核心是在时间上重叠。操作系统内核运行多个应用程序采用了并发机制,但并发不止用于内核,也用于应用程序中。应用级并发的一些应用场合:访问慢速 I/O 设备。当一个用户等待来自慢速 I/O 设备(比如磁盘)的数据到达时,内核会运行其他进程。与人交互。每次用户请求某种操作时(比如通过点击鼠标),一个独立的并发逻辑流被创建来执行这个操作。通过推迟工作以降低延迟。服务多个网络客户端。一个并发服务器为每原创 2022-01-13 07:53:53 · 1277 阅读 · 0 评论 -
深入理解计算机系统——第11章 网络编程
深入理解计算机系统——第11章 网络编程网络编程客户端-服务器编程模型网络应用都是基于客户端-服务器模型的。采用此模型,一个应用是由一个服务器进程和一个或多个客户端进程组成的。服务器管理某种资源,并通过操作这种资源来为它的客户端提供服务。客户端-服务器模型中的基本操作是事务。一个客户端-服务器事务包括以下四步:客户端需要服务时,向服务器发送一个请求,发起一个事务。比如客户端请求下载某个文件。服务器收到请求后,解释它并以适当方式操作自己的资源。比如服务器从磁盘读客户端所请求的文件。服务器给客原创 2022-01-12 21:34:10 · 1528 阅读 · 0 评论 -
深入理解计算机系统——第9章 虚拟内存
深入理解计算机系统——第9章 虚拟内存异常控制流概念为了更加有效地管理内存并减少出错,现代系统提供了一种对主存的抽象概念,叫做虚拟内存(VM)。虚拟内存是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的、一致的和私有的地址空间。虚拟内存提供了三个重要能力:将主存看成一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存中传送数据。为每个进程提供了一致的地址空间,简化了内存管理。进而简化了链接、进程间共享数据、进程的内存分配、原创 2022-01-12 21:33:02 · 2724 阅读 · 0 评论 -
深入理解计算机系统——第8章 异常控制流
深入理解计算机系统——第8章 异常控制流异常控制流概念从给处理器加电开始,直到断电为止,程序计数器假设一个值的序列:a0, a1, a2, …, an。其中每个 a(k) 都是某个相应的指令 I(k) 的地址。每次从 a(k) 到 a(k+1) 的过渡称为控制转移。这样的控制转移序列叫做处理器的控制流(control flow)。最简单的控制流是一个平滑的序列,其中每个 I(k) 和 I(k+1) 都是相邻的。平滑流的突变:是由诸如跳转、调用、返回等程序指令造成的,这些指令都是必要的机制,使得原创 2022-01-12 21:32:28 · 963 阅读 · 0 评论 -
深入理解计算机系统——第7章 链接
深入理解计算机系统——第7章 链接链接概念链接( linking)是将各种代码和数据片段收集并组合成为一个单一文件的过程,这个文件可被加载(复制)到内存并执行。链接在以下三个阶段都可以执行:编译时,即在源代码被翻译成机器代码时加载时,即程序被加载器加载到内存并执行时运行时,即由应用程序来执行现代系统中,链接是由 链接器 自动执行的。链接器使 分离编译 成为可能,而分离编译正是大型项目所必不可缺的。为什么需要了解链接器理解链接器将帮助你构造大型程序。构造大型程序的程序员经常会遇到由原创 2022-01-12 21:31:50 · 1935 阅读 · 1 评论 -
深入理解计算机系统——第6章 存储器层次结构
深入理解计算机系统——第6章 存储器层次结构存储器层次结构概念:多个具有不同容量、成本和访问时间。的存储设备构成了存储器层次结构,称为存储器系统。执行指令时访问数据所需的周期数:CPU寄存器:0个周期L1L3高速缓存:475个周期主存:上百个周期磁盘:几千万个周期因为访问数据在各个存储器层次中的所需时间差异,促使使用者理解数据是如何在存储器层次结构中上下移动的,这样编写应用程序时,使得它们的数据项存储在层次结构较高的地方,CPU就能更快地访问。存储技术几种基本的存储技术:随机访问存储原创 2022-01-12 21:31:08 · 1872 阅读 · 0 评论 -
深入理解计算机系统——第5章 优化程序性能
深入理解计算机系统——第5章 优化程序性能优化程序性能编写高效程序需要做到以下几点:1.合适的算法和数据结构2.编写出编译器能够有效优化以转换成高效可执行代码的源代码(例如,在C语言中,指针运算和强制类型转换使得编译器很难对它进行优化)。3.针对处理运算量特别大的计算,将一个任务分成多部分,即利用并行性。优化编译器的能力和局限性GCC优化指令 **-Og:**默认配置,不优化。-O1:编译器试图优化代码大小和执行时间,它主要对代码的分支,常量以及表达式等进行优化,但不执行任何会占用大量编转载 2022-01-12 21:30:29 · 1448 阅读 · 0 评论 -
深入理解计算机系统——第3章 程序的机器级表示
深入理解计算机系统——第3章 程序的机器级表示程序的机器级表示编译器基于编程语言的规则、操作系统的惯例、目标机器的指令集生成机器代码。汇编代码是机器代码的一种形式,它是机器代码的文本表示。高级代码可移植性好,而汇编代码与特定机器密切相关。能够阅读汇编代码:好处:可以理解编译器的优化能力,并分析代码中隐含的低效率条件:了解编译器将高级语言转换为机器代码的转换方式。程序编码汇编器产生的目标代码是机器代码的一种形式,它包含二进制形式表示的所有指令,但还没有填入全局值的地址。机器级代码影响原创 2022-01-12 21:29:38 · 3451 阅读 · 0 评论 -
深入理解计算机系统——第2章 信息的表示和处理
深入理解计算机系统——第2章 信息的表示和处理信息的表示和处理三种最重要的数字表示:无符号(unsigned)编码基于传统的二进制表示法,表示大于或者等于零的数字;补码(two’s-complement)编码是表示有符号整数的最常见的方式,有符号整数就是可以为正或者负的数字;浮点数(floating-point)编码是表示实数的科学记数法的以2为基数的版本。计算机的表示法是用有限数量的位来对一个数字编码,以至于结果太大会产生溢出。整数运算和浮点数运算会有不同的数学属性——它们处理数字表示有原创 2022-01-12 21:28:45 · 894 阅读 · 0 评论 -
深入理解计算机系统——第1章 计算机系统漫游
深入理解计算机系统——第1章 计算机系统漫游参考资料《深入理解计算机系统》学习笔记整理(CSAPP 学习笔记)计算机系统漫游通过跟踪hello程序的生命周期来开始对系统的学习。#include<stdio.h>int main(){ printf("hello world\n"); return 0;}信息就是位 + 上下文hello程序的生命周期从源程序(源文件)开始,即程序员通过编辑器创建并保存的文本文件,文件名为hello.c。源程序实际上就是由 0 和 1原创 2022-01-12 21:25:58 · 465 阅读 · 0 评论