CMU15213计算机组成原理
学习笔记
shendezhuti
本科湖南大学电子科学与技术学士学位 正攻读美国乔治华盛顿大学计算机硕士学位
展开
-
CMU 15-213 Introduction to Computer Systems学习笔记(10) The Memory Hierarchy
这节课讲的主要是存储器层次结构,存储系统是一个非常复杂的设备层次结构 这节笔记要探寻存储器的层次结构是怎么构建的,为什么要设计成这样,我们可以体会到多种存储设备之间属性的美妙融合 以及程序的属性在这之中起到的作用。 我们以一个较高的角度快速的概览存储技术和趋势,不会有很多细节。之后会学习程序所具有的属性,叫做程序的局部性(locality of reference),我们将会看到局部性和存储...原创 2019-09-15 13:35:08 · 498 阅读 · 0 评论 -
CMU 15-213 Introduction to Computer Systems学习笔记(22) Synchronization: Advanced
Reminder: Semaphores 信号是非负全局同步变量, 由P和V操作管理,并且P操作将信号量作为参数。 Using semaphores to schedule shared resources 上一节课是利用信号量来提供互斥, 其他方法也可以做到保护共享变量。我们也可以使用信号量以不同的方式协调对共享数据结构的访问(网上看了下说是同步的概念https://blog.csd...原创 2019-10-01 08:18:36 · 127 阅读 · 0 评论 -
CMU 15-213 Introduction to Computer Systems学习笔记(21) Synchronization: Basic
实际上,有一类很重要的并发编程,这种并发编程模型叫做【fork】和【join】(分叉和会和),这个模型中,程序有一系列阶段组成,在每个阶段,都有多个工作线程和一个管理线程,程序会创建多个工作线程,然后每个工作线程解决该阶段的某些问题,在程序中,你可以使用某个可以切分成多个部分你的数据结构,然后每个线程更新其该数据结构中的某个块,但出于某种原因,管理线程必须等待所有的工作线程才能进入下一阶段,这里做...原创 2019-09-30 12:25:26 · 230 阅读 · 0 评论 -
CMU 15-213 Introduction to Computer Systems学习笔记(20) Concurrent Programming
Iterative Servers 上图中,客户端2直到服务端回应才运行,否则一直处理等待状态。你可能会认为此时的客户端连接会被阻断,但是尝试一下会发现,连接是在内核kernel,然后返回,write也是执行后马上返回,直到客户端2调用了read函数 等待服务器的回复。 Where Does Second Client Block? Fundamental Flaw of Itera...原创 2019-09-30 04:55:34 · 185 阅读 · 0 评论 -
CMU 15-213 Introduction to Computer Systems学习笔记(19) Dynamic Memory Allocation: Advanced Concepts
这节课主要是学习一些更复杂的技术,研究不同数据结构去存储 free list 我们要看implict allocators,因此我们会研究垃圾回收是怎么工作的。老师说一旦你开始了动态的分配存储,事情变坏的会很快。 Explicit Free Lists 这里说的我们维护的block不是一整块,而是自由分配那些free block,因此我们存储的是forward/back pointer...原创 2019-09-29 23:06:43 · 330 阅读 · 0 评论 -
CMU 15-213 Introduction to Computer Systems学习笔记(18) Dynamic Memory Allocation: Basic Concepts
之前学习的虚拟内存机制,以及它如何为系统提供如此多的有功功能,随着这种大型连续字节数组的抽象,现在一旦我们获得了大量的字节,我们必须管理它,我们必须有一些机制来管理和使用这些资源,本周的主题是存储器的分配,以及储存器分配器的工作原理,以及如何使用它们来管理内存中的虚拟系统。 Basic concepts Dynamic Memory Allocation 动态内存分配 动态储存器分配器的...原创 2019-09-29 08:19:59 · 198 阅读 · 0 评论 -
CMU 15-213 Introduction to Computer Systems学习笔记(17) Virtual Memory:System
这节课是承接上面的一节课,系统的讲了Virtual Memory。。自己听课没有人讨论没有老师解答表示已经晕掉了。。 Review Of Symbols Transaction Lookaside Buffer (TLB) Simple Memory System Example Simple Memory System TLB 假设CPU执行了一条指令,它产生了一个有...原创 2019-09-28 14:29:33 · 313 阅读 · 0 评论 -
CMU 15-213 Introduction to Computer Systems学习笔记(16) Virtual Memory: Concepts
Virtual Memory: Concepts Address spaces A System Using Physical Addressing 在使用物理寻址的系统中,以CPU执行一条移动指令为例,生成了一个有效的物理地址,这个地址实际上是主存储器中一个字节的偏移量,如上图,CPU在这里生成的物理地址为4,然后内存从该地址获取其中保存的字,然后将其发送回CPU,实际上,这是非常简单...原创 2019-09-26 04:15:06 · 259 阅读 · 0 评论 -
CMU 15-213 Introduction to Computer Systems学习笔记(15)System-Level I/O
Unix I/O Directory Hierarchy RIO (robust I/O) package Buffered I/O: Implementation RIO Example Metadata, sharing, and redirection 文件元数据是指文件中实际包含的数据信息。 How the Unix Kernel Represents O...原创 2019-09-24 12:24:52 · 487 阅读 · 0 评论 -
CMU15213 Intro to Computer Systems学习笔记(14) Exceptional Control Flow: Signals and Nonlocal Jumps
Shell 要先讲信号的话,先要了解一下shell程序的内容,正如上次所提到的一样,我们只有一种方法在Linux下创建进程,那就是使用fork调用 Linux Process Hierarchy Shell Programs shell是以用户身份执行程序的程序 Problem with Simple Shell Example 简单shell存在一个问题,shell会等待收割...原创 2019-09-22 09:04:59 · 311 阅读 · 0 评论 -
CMU 15-213 Introduction to Computer Systems学习笔记(13) Exceptional Control Flow: Exceptions and Process
Exceptional Control Flow 当我们打开计算机,他只是执行一个接一个的指令,直到我们关闭计算机,如果计算机有多个CPU核心,那么每个核心会一次交替执行命令,指令序列称为【控制流】,硬件正在执行的实际指令序列称为【物理控制流】。 Altering the Control Flow 实际上我们可以改变指令的顺序,比如【分支和跳转】以及【过程调用和返回】 我们需要的...原创 2019-09-20 13:36:22 · 198 阅读 · 0 评论 -
CMU 15-213 Introduction to Computer Systems学习笔记(12) Linking
Linking Example C Program Static Linking Why Linkers? 那么我们为什么这样做的,为什么允许这种所谓的分离编译,为什么不喜欢一个包含所有代码的大文件。 Reason 1: Modularity模块化 允许将代码分解成更小的部分 创建共有函数的库,比如Math 库, 标准 C 库 Reason 2: Efficiency效率 ...原创 2019-09-17 03:15:36 · 292 阅读 · 0 评论 -
CMU 15-213 Introduction to Computer Systems学习笔记(11) Cache Memories
Cache memory organization and operation Cache Memories 处于【寄存器组】附近的缓存的实质是存储主存储器中经常访问的块,幸运的是,因为【局部性原则】,我们请求的大部分数据实际上都会从这个缓存内存中提供,这只需要花费几个【时钟周期】。 General Cache Organization (S, E, B) 高速缓存管理器完全由硬件进行...原创 2019-09-16 06:35:54 · 411 阅读 · 0 评论 -
CMU 15-213 Introduction to Computer Systems学习笔记(23) Thread-Level Parallelism
Today Exploitng parallel execution emm有缘再看这个扩展部分吧原创 2019-10-01 11:51:36 · 227 阅读 · 0 评论