学习感悟
一个偏执狂
这个作者很懒,什么都没留下…
展开
-
最近的学习心得
距离上次写博客过去很久了,但是自己一直没能学习什么东西,就是拖延症+懒。 调剂也没成,所以就是剩下找工作这一个选择了。 最近把数据库系统原理与设计浏览了一遍,后面有三个章节没看,无大碍。感触最深:关系代数好难学!还涉及离散数学等等。SQL语句还可以,但是没有实操。 计网看了前三章(王道的考研书),还剩三章没看,最近不打算看了,在毕业前看完吧。 最近忙着学Java,写论文,没原创 2017-04-01 23:12:55 · 357 阅读 · 0 评论 -
CSSAPP稀里糊涂的读书笔记(十二)并发编程
本章主要研究三种基本的构造并发程序的方法:进程。每个逻辑控制流都是一个进程,由内核来调度和维护。因为进程有独立的虚拟地址空间,想要和其他流通信,控制流必须使用某种显示的进程间通信(IPC)机制。I/O多路复用。应用程序在一个进程的上下文中显式地调度它们自己的逻辑流。逻辑流被模型化为状态机,数据到达文件描述符后,主程序显式地从一个状态转换到另一状态。因为程序是一个单独地进程,所以所有地流都共享...原创 2018-10-26 09:20:20 · 270 阅读 · 0 评论 -
CSSAPP稀里糊涂的读书笔记(十一)网络编程
本章主要就是一些概念性的东西。代码直接看书。每个网络应用都是基于客户端-服务器模型的。采用这个模型,一个应用是由一个服务器进程和一个或者多个客户端进程组成。服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务。客户端-服务器模型中的基本操作是事务(transaction)。一个客户端-服务器事务由以下四步组成。1)当一个客户端需要服务时,它向服务器发送一个请求,发起一个事务...原创 2018-10-26 09:20:10 · 242 阅读 · 0 评论 -
CSSAPP稀里糊涂的读书笔记(十)系统级I/O
本章介绍Unix I/O 和标准I/O的一般概念,具体的细节什么的还是看书比较好。一个Linux 文件就是一个 m 个字节的序列,所有的I/O设备都被模型化为文件,而所有的输入和输出都被当作对响应文件的读和写来执行。这种将设备优雅地映射为文件地方式,允许Linux内核引出一个简单、低级地应用接口,称为Unix I/O,这使得所有地输入和输出都能以一种统一且一致地方式来执行:打开文件。一个...原创 2018-10-25 16:35:04 · 213 阅读 · 2 评论 -
CSSAPP稀里糊涂的读书笔记(九)虚拟内存
虚拟内存(VM)为每个进程提供了一个大的、一致的和私有的地址空间。通过一个很清晰的机制,虚拟内存提供了三个重要的能力:1)它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效地使用了主存。2)它为每个进程提供了一致的地址空间,从而简化了内存管理。3)它保护了每个进程的地址空间不被其他进程破坏。本章从两个角度来看虚...原创 2018-10-25 16:30:28 · 338 阅读 · 0 评论 -
CSSAPP稀里糊涂的读书笔记(八)异常控制流
异常控制流(Exceptional Control Flow,ECF)。本章主要讨论ECF对于应用和操作系统交互的影响。异常就是控制流中的突变,用来响应处理器状态中的某些变化。在处理器中,状态被编码为不同的位和信号。状态变化称为事件。在任何情况下,当处理器检测到有事件发生时,它就会通过一张叫做异常表的跳转表,进行一个间接过程调用,到一个专门设计用来处理这类事件的操作系统子程序(异常处理程序)...原创 2018-10-25 16:19:21 · 213 阅读 · 0 评论 -
CSSAPP稀里糊涂的读书笔记(七)链接
链接是将各种代码和数据片段收集并组合成为一个单一文件的过程,这个文件可被加载到内存并执行。本章主要讲链接的各个方面,不过本章的总结应该会比较少,毕竟链接有链接器自动执行,所以就看个大概吧。为了构造可执行文件,链接器必须完成两个主要任务:符号解析;重定位。目标文件有三种形式:可重定位目标文件。包含二进制代码和数据,其形式可以在编译时与其他可重定位目标文件合并起来,创建一个可执行目标文件。...原创 2018-10-25 16:13:07 · 226 阅读 · 0 评论 -
CSSAPP稀里糊涂的读书笔记(六)存储器层次结构
本章主要讲解存储器的层次结构,因为它对应用程序的性能有着巨大的影响。主要是围绕着局部性(locality)这个基本属性展开。随机访问存储器(Random-Access Memory,RAM)分为两类:静态的和动态的。静态RAM(SRAM)比动态RAM(DRAM)更快,也贵的多。SRAM用来作为高速缓存。磁盘是广为应用的保存大量数据的存储设备,存储数据的数量级可以达到几百到几千 千兆字节...原创 2018-10-25 16:11:37 · 219 阅读 · 0 评论 -
CSSAPP稀里糊涂的读书笔记(五)优化程序性能
本章主要探讨如何使用几种不同类型的程序优化技术,使程序运行的更快。编写高效程序需要做到以下几点:第一,我们必须选择一组适当的算法和数据结构。第二,我们必须编写出编译器能够有效优化以转换成高效可执行代码的源代码。第三,针对处理运算量特别大的计算,将一个任务分成多个部分,这些部分可以在多核和多处理器的某种组合上并行地计算。程序优化地第一步就是消除不必要地工作,让代码尽可能有效地执行所期望地任务。...原创 2018-10-25 16:07:26 · 270 阅读 · 0 评论 -
CSSAPP稀里糊涂的读书笔记(四)处理器体系结构
本章主要介绍处理器硬件的设计,所以可能会比较简略。主要以Y86-64为模板讲解一个cpu大概是如何实现的。内存从概念上来说是一个很大的字节数组,保存着程序和数据。Y86-64程序用虚拟地址来引用内存位置。定义一个指令集。类似第三章中讲的汇编指令。并为指令编码,设置异常处理等。使用HCL(硬件控制语言)来描述不同处理器设计的控制逻辑。实现Y86-64的顺序实现(SEQ)。在每个时钟周期上,...原创 2018-10-25 16:05:42 · 272 阅读 · 0 评论 -
CSSAPP稀里糊涂的读书笔记(三)程序的机器级表示
本章主要讲汇编。通过阅读汇编代码,我们能够理解编译器的优化能力,并分析代码中隐含的低效率。此外,也有些时候,高级语言提供的抽象层会隐藏我们想要了解的程序运行时行为。另外,了解一些漏洞的出现及如何防御,需要具备程序机器级表示的知识。对于机器级编程来说,有两种抽象尤为重要。第一种是由指令集体系结构或指令集架构(Instruction Set Architecture,ISA)来定义机器级程序的格...原创 2018-10-25 16:02:00 · 537 阅读 · 3 评论 -
CSSAPP稀里糊涂的读书笔记(二)信息的表示和处理
本章主要讨论编码。计算机将信息编码为位(比特),通常组织成字节序列。有不同的编码方式用来表示整数、实数和字符串。不同的计算机模型在编码数字和多字节数据中的字节顺序时使用不同的约定。无符号(unsigned)编码基于传统的二进制表示法,表示大于或者等于零的数字。补码(two’s-complement)编码是表示有符号整数的最常见的方式,有符号整数就是可以为正或者为负的数字。浮点数(flo...原创 2018-10-25 10:26:02 · 195 阅读 · 0 评论 -
CSSAPP稀里糊涂的读书笔记(一)计算机系统漫游
主要介绍了计算机系统的一些概念知识等。系统中的所有信息,都是由一串位表示的。区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。将一个程序翻译成一个可执行目标文件经过四个阶段:预处理阶段、编译阶段、汇编阶段和链接阶段。简单的介绍了系统的硬件组成:总线、I/O设备、主存、CPU。简单介绍了缓存,如一个典型系统上的磁盘驱动器可能比主存大1000倍,但是对于处理器而言,从...原创 2018-10-25 10:22:22 · 246 阅读 · 0 评论 -
每天5分钟玩转docker容器——读书笔记
这两天草草的过了一遍cloudman的《每天5分钟玩转容器技术》,巩固了一下docker的知识,并且学习到了不少新内容,对于docker的理解更加的深入了一些,特此记录一下在学习过程中比较在意的内容,以供以后翻阅。容器runtime:runtime 是容器真正运行的地方。runtime 需要跟操作系统 kernel 紧密协作,为容器提供运行环境。 可以类比java,Java 程序就好比是容器...转载 2018-08-06 10:21:24 · 729 阅读 · 0 评论 -
Go的学习总结
在上家公司工作了两月余,将go学了个大概,最近转回java,特在此总结之前对于go的学习,不讨论细节问题,从宏观一点的角度来看待这门语言。 在这段时间的学习中,感触很深的就是:这可能是一个很优秀的语言,但是我感觉我始终是适应不了它,比较难驾驭,只能说能力有限。go的一些特性首先就吐吐槽吧,说一下不是很让人习惯的地方。 1、无分号;结尾,这可能是被吐槽的很多的地方了,这个确实很奇葩。...原创 2018-02-25 00:17:50 · 2721 阅读 · 0 评论 -
CSSAPP 稀里糊涂的的读书笔记目录
笔记还差点写完,今天正好是1024,有个徽章,那就先占个坑吧。原创 2018-10-24 16:37:24 · 218 阅读 · 0 评论