自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黄小鑫的博客

大神都是从菜鸟一步步转变而来的

  • 博客(12)
  • 收藏
  • 关注

原创 CMU 15-213 Introduction to Computer Systems学习笔记(21) Synchronization: Basic

实际上,有一类很重要的并发编程,这种并发编程模型叫做【fork】和【join】(分叉和会和),这个模型中,程序有一系列阶段组成,在每个阶段,都有多个工作线程和一个管理线程,程序会创建多个工作线程,然后每个工作线程解决该阶段的某些问题,在程序中,你可以使用某个可以切分成多个部分你的数据结构,然后每个线程更新其该数据结构中的某个块,但出于某种原因,管理线程必须等待所有的工作线程才能进入下一阶段,这里做...

2019-09-30 12:25:26 222

原创 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 179

原创 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 322

原创 CMU 15-213 Introduction to Computer Systems学习笔记(18) Dynamic Memory Allocation: Basic Concepts

之前学习的虚拟内存机制,以及它如何为系统提供如此多的有功功能,随着这种大型连续字节数组的抽象,现在一旦我们获得了大量的字节,我们必须管理它,我们必须有一些机制来管理和使用这些资源,本周的主题是存储器的分配,以及储存器分配器的工作原理,以及如何使用它们来管理内存中的虚拟系统。Basic conceptsDynamic Memory Allocation 动态内存分配动态储存器分配器的...

2019-09-29 08:19:59 189

原创 CMU 15-213 Introduction to Computer Systems学习笔记(17) Virtual Memory:System

这节课是承接上面的一节课,系统的讲了Virtual Memory。。自己听课没有人讨论没有老师解答表示已经晕掉了。。Review Of SymbolsTransaction Lookaside Buffer (TLB)Simple Memory System ExampleSimple Memory System TLB假设CPU执行了一条指令,它产生了一个有...

2019-09-28 14:29:33 307

原创 CMU 15-213 Introduction to Computer Systems学习笔记(16) Virtual Memory: Concepts

Virtual Memory: ConceptsAddress spacesA System Using Physical Addressing在使用物理寻址的系统中,以CPU执行一条移动指令为例,生成了一个有效的物理地址,这个地址实际上是主存储器中一个字节的偏移量,如上图,CPU在这里生成的物理地址为4,然后内存从该地址获取其中保存的字,然后将其发送回CPU,实际上,这是非常简单...

2019-09-26 04:15:06 254

原创 CMU 15-213 Introduction to Computer Systems学习笔记(15)System-Level I/O

Unix I/ODirectory HierarchyRIO (robust I/O) packageBuffered I/O: ImplementationRIO ExampleMetadata, sharing, and redirection文件元数据是指文件中实际包含的数据信息。How the Unix Kernel Represents O...

2019-09-24 12:24:52 480

原创 CMU15213 Intro to Computer Systems学习笔记(14) Exceptional Control Flow: Signals and Nonlocal Jumps

Shell要先讲信号的话,先要了解一下shell程序的内容,正如上次所提到的一样,我们只有一种方法在Linux下创建进程,那就是使用fork调用Linux Process HierarchyShell Programsshell是以用户身份执行程序的程序Problem with Simple Shell Example简单shell存在一个问题,shell会等待收割...

2019-09-22 09:04:59 306

原创 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 196

原创 CMU 15-213 Introduction to Computer Systems学习笔记(12) Linking

LinkingExample C ProgramStatic LinkingWhy Linkers?那么我们为什么这样做的,为什么允许这种所谓的分离编译,为什么不喜欢一个包含所有代码的大文件。Reason 1: Modularity模块化允许将代码分解成更小的部分 创建共有函数的库,比如Math 库, 标准 C 库Reason 2: Efficiency效率...

2019-09-17 03:15:36 286

原创 CMU 15-213 Introduction to Computer Systems学习笔记(11) Cache Memories

Cache memory organization and operationCache Memories处于【寄存器组】附近的缓存的实质是存储主存储器中经常访问的块,幸运的是,因为【局部性原则】,我们请求的大部分数据实际上都会从这个缓存内存中提供,这只需要花费几个【时钟周期】。General Cache Organization (S, E, B)高速缓存管理器完全由硬件进行...

2019-09-16 06:35:54 406

原创 CMU 15-213 Introduction to Computer Systems学习笔记(10) The Memory Hierarchy

这节课讲的主要是存储器层次结构,存储系统是一个非常复杂的设备层次结构这节笔记要探寻存储器的层次结构是怎么构建的,为什么要设计成这样,我们可以体会到多种存储设备之间属性的美妙融合以及程序的属性在这之中起到的作用。我们以一个较高的角度快速的概览存储技术和趋势,不会有很多细节。之后会学习程序所具有的属性,叫做程序的局部性(locality of reference),我们将会看到局部性和存储...

2019-09-15 13:35:08 491

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除