自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 CSSAPP稀里糊涂的读书笔记(十二)并发编程

本章主要研究三种基本的构造并发程序的方法:进程。每个逻辑控制流都是一个进程,由内核来调度和维护。因为进程有独立的虚拟地址空间,想要和其他流通信,控制流必须使用某种显示的进程间通信(IPC)机制。I/O多路复用。应用程序在一个进程的上下文中显式地调度它们自己的逻辑流。逻辑流被模型化为状态机,数据到达文件描述符后,主程序显式地从一个状态转换到另一状态。因为程序是一个单独地进程,所以所有地流都共享...

2018-10-26 09:20:20 270

原创 CSSAPP稀里糊涂的读书笔记(十一)网络编程

本章主要就是一些概念性的东西。代码直接看书。每个网络应用都是基于客户端-服务器模型的。采用这个模型,一个应用是由一个服务器进程和一个或者多个客户端进程组成。服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务。客户端-服务器模型中的基本操作是事务(transaction)。一个客户端-服务器事务由以下四步组成。1)当一个客户端需要服务时,它向服务器发送一个请求,发起一个事务...

2018-10-26 09:20:10 242

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

原创 CSSAPP稀里糊涂的读书笔记(八)异常控制流

异常控制流(Exceptional Control Flow,ECF)。本章主要讨论ECF对于应用和操作系统交互的影响。异常就是控制流中的突变,用来响应处理器状态中的某些变化。在处理器中,状态被编码为不同的位和信号。状态变化称为事件。在任何情况下,当处理器检测到有事件发生时,它就会通过一张叫做异常表的跳转表,进行一个间接过程调用,到一个专门设计用来处理这类事件的操作系统子程序(异常处理程序)...

2018-10-25 16:19:21 213

原创 CSSAPP稀里糊涂的读书笔记(七)链接

链接是将各种代码和数据片段收集并组合成为一个单一文件的过程,这个文件可被加载到内存并执行。本章主要讲链接的各个方面,不过本章的总结应该会比较少,毕竟链接有链接器自动执行,所以就看个大概吧。为了构造可执行文件,链接器必须完成两个主要任务:符号解析;重定位。目标文件有三种形式:可重定位目标文件。包含二进制代码和数据,其形式可以在编译时与其他可重定位目标文件合并起来,创建一个可执行目标文件。...

2018-10-25 16:13:07 226

原创 CSSAPP稀里糊涂的读书笔记(六)存储器层次结构

本章主要讲解存储器的层次结构,因为它对应用程序的性能有着巨大的影响。主要是围绕着局部性(locality)这个基本属性展开。随机访问存储器(Random-Access Memory,RAM)分为两类:静态的和动态的。静态RAM(SRAM)比动态RAM(DRAM)更快,也贵的多。SRAM用来作为高速缓存。磁盘是广为应用的保存大量数据的存储设备,存储数据的数量级可以达到几百到几千 千兆字节...

2018-10-25 16:11:37 219

原创 CSSAPP稀里糊涂的读书笔记(五)优化程序性能

本章主要探讨如何使用几种不同类型的程序优化技术,使程序运行的更快。编写高效程序需要做到以下几点:第一,我们必须选择一组适当的算法和数据结构。第二,我们必须编写出编译器能够有效优化以转换成高效可执行代码的源代码。第三,针对处理运算量特别大的计算,将一个任务分成多个部分,这些部分可以在多核和多处理器的某种组合上并行地计算。程序优化地第一步就是消除不必要地工作,让代码尽可能有效地执行所期望地任务。...

2018-10-25 16:07:26 270

原创 CSSAPP稀里糊涂的读书笔记(四)处理器体系结构

本章主要介绍处理器硬件的设计,所以可能会比较简略。主要以Y86-64为模板讲解一个cpu大概是如何实现的。内存从概念上来说是一个很大的字节数组,保存着程序和数据。Y86-64程序用虚拟地址来引用内存位置。定义一个指令集。类似第三章中讲的汇编指令。并为指令编码,设置异常处理等。使用HCL(硬件控制语言)来描述不同处理器设计的控制逻辑。实现Y86-64的顺序实现(SEQ)。在每个时钟周期上,...

2018-10-25 16:05:42 272

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

原创 CSSAPP稀里糊涂的读书笔记(一)计算机系统漫游

主要介绍了计算机系统的一些概念知识等。系统中的所有信息,都是由一串位表示的。区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。将一个程序翻译成一个可执行目标文件经过四个阶段:预处理阶段、编译阶段、汇编阶段和链接阶段。简单的介绍了系统的硬件组成:总线、I/O设备、主存、CPU。简单介绍了缓存,如一个典型系统上的磁盘驱动器可能比主存大1000倍,但是对于处理器而言,从...

2018-10-25 10:22:22 246

原创 CSSAPP 稀里糊涂的的读书笔记目录

笔记还差点写完,今天正好是1024,有个徽章,那就先占个坑吧。

2018-10-24 16:37:24 218

原创 关于异常处理以及针对spring security oauth 2的401错误进行页面跳转

由于最近遇到了新问题,还折磨了我两天,所以这里就简单的记录一下⑧错误集中处理由于系统需要,所以为项目添加了一个错误集中处理配置前情提要spring boot : 2.0.3.RELEASE参考文章首先根据spring boot版本的不同,以1.4.0为界是有不同的配置方式的,这里由于用的是2.0.3.RELEASE,所以配置如下。package com.yubotao.spring...

2018-10-11 18:21:48 9999 4

空空如也

空空如也

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

TA关注的人

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