E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
【深入理解计算机系统】
《
深入理解计算机系统
》读书笔记 —— 第二章 信息的表示和处理
本章主要研究了计算机中无符号数,补码,浮点数的编码方式,通过研究数字的实际编码方式,我们能够了解计算机中不同类型的数据可表示的值的范围,不同算术运算的属性,可以知道计算机是如何处理数据溢出的。了解计算机的编码方式,对于我们写出可以跨越不同机器,不同操作系统和编译器组合的代码具有重要的帮助。@[TOC]信息存储为什么会有二进制?二进制有什么含义和优势? 对于有10个手指的人类来说,使用十进制表示法
3561cc5dc1b0
·
2023-03-29 18:47
深入理解计算机系统
(CSAPP) 实验:attack lab
lab简介这个lab中包含两个64位的可执行二进制文件。一个可以被代码注入codeinjection攻击,一个可以被面向返回编程return-orientedprogramming攻击。我们需要利用这些弱点来攻击它,改变其运行行为。这个lab的主要目的是帮助我们了解栈的规则和了解bufferoverflow的危险。完成lab第一部分代码注入攻击(CodeInjectionAttack)目标攻击ct
userheng
·
2023-03-29 03:29
深入理解计算机系统
title:
深入理解计算机系统
date:2019-12-1019:29:57tags:[计算机基础,操作系统]typora-copy-images-to:.
美好的世界V
·
2023-03-29 01:31
深入理解计算机系统
CSAPP-美-布莱恩特
计算机系统漫游这一个章节主要从一个helloworld程序出发,串联了计算机系统的整个流程。串联路径为:信息就是bit加上下文=>程序被其他程序翻译成不同格式=>了解编译系统能让你写出高效安全的代码=>处理器读并解析存储在内存中的指令=>总线=>I/O设备=>(人类是复读机,计算机是复制机)=>运行hello程序=>高速缓存=>存储设备形成层次,上一个设备是下一个设备的缓存=>进程=>线程=>虚拟
快给我饭吃
·
2023-03-26 00:48
《
深入理解计算机系统
》Part1 06:存储器层次结构
摘要:这一章主要介绍了存储器的层次结构,以及如何写出存储器友好的代码。关键词:局部性;存储器体层次结构;高速缓存目录: 1.什么是程序的时间局部性和空间局部性 2.存储器层次结构 3.编写高速缓存友好的代码1.什么是程序的时间局部性和空间局部性时间局部性只指,对于某个数据,他被使用的时间在时间轴上的分布是集中的而不是分散的,也就意味着,程序对他的调用是集中在某个时间段内的。程序的空间局部性则
fengjb
·
2023-03-24 04:17
深入理解计算机系统
第三章 程序的机器级表示(上)
[toc]概述整个第三章就是在讲汇编语言。现在的程序员完全不需要去自己写汇编语言,但是如果你可以看得懂,那么对分析代码会有很大的帮助。这一篇就总结下上半部分的知识。我写的东西是自己的总结点,不是重写书上的东西,所以没看过书请去看书。关键词是:历史观点和汇编语言概述访问信息中的各种指令与指示符算术和逻辑操作控制,也就是条件,循环等历史观点和汇编语言概述程序员写出的高级语言会被编译器转化成机器代码去实
ZachV
·
2023-03-24 00:51
一个4体低位交叉的存储器_存储器(一)来入门吧!!
第一次写一点东西,其实也是为了自己期末的复习,所谓
深入理解计算机系统
哈哈,“费曼学习法”我来试试啦。
阿拉灯神丁Vicky
·
2023-03-21 19:53
一个4体低位交叉的存储器
Java 终极学习路线 - 共计 9 大模块 /6 大框架 /13 个中间件
模块一、计算机体系结构与C语言特性计算机体系结构:计算机组成原理、计算机体系结构(ISA指令集、intel开发手册)、CSAPP(
深入理解计算机系统
)、汇编语言、编译原理(ELF、汇编器)、操作系统C语言
C陈三岁
·
2023-03-20 10:00
java
java
学习
中间件
架构
深入理解计算机系统
01计算机系统漫游
1.信息就是位+上下文2.程序被翻译C:源程序---(预处理器)-->被修改了的源程序---(编译器)--->汇编程序---(汇编器)--->可重定位的目标程序---(链接器)--->可执行的目标程序JAVA:暂定3.编译系统工作原理4.系统的硬件组成处理器读取并解释存储在内存中的指令总线:带宽:字(word),字节数(字长)是一个基本的系统参数,如:32位(4字节),64位(8字节)。I/O设备
AMeng阿猛
·
2023-03-19 19:51
《
深入理解计算机系统
》——Ch2-MemoryⅠ
前记——本系列文档是《
深入理解计算机系统
》这本书的学习笔记,仅作学习用,文中的图片来自于华盛顿大学的CSE351课程PPT。1内存的地址和指针地址是内存的一个位置。指针可以保存一个地址。
shijiatongxue
·
2023-03-19 11:22
深入理解计算机系统
第一章1.1信息就是位+上下文1、源程序实际上就是一个有0和1组成的位(又称为比特)序列,这些为被组成8个一组,称为字节。每个字节表示程序中某个文本字符。2、系统中所有的信息---包括磁盘文件、储存器中程序、储存器中存放的用户数据以及网路上传送的数据,都是由一串比特表示的。1.2程序被其他程序翻译成不同的格式1、为了在系统上运行hello.c程序,每条C语句都被其他程序转化为一系列的低级机器语言指
w_x_myself
·
2023-03-16 16:50
网络
《
深入理解计算机系统
》阅读笔记
第一章计算机系统漫游编译系统hello.c的文件中,每个字符都对应一个ASCII码,整个文件只有ASCII字符,这种文件为文本文件,其他都称为二进制文件。Unix系统上,编译器通过预处理、编译、汇编、链接四个操作,将hello.c文本文件翻译成hello可执行文件(二进制文件)。编译系统预处理:将文件中#include包含的.h头文本内容插入到原文本中,获得一个新的文本文件,后缀为i;编译:将文本
hallelujah_38a6
·
2023-03-14 12:39
《
深入理解计算机系统
》(CSAPP)读书笔记 —— 第一章 计算机系统漫游
本章通过跟踪hello程序的生命周期来开始对计算机系统进行学习。一个源程序从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止。我们将沿着这个程序的生命周期,简要地介绍一些逐步出现的关键概念、专业术语和组成部分。@[TOC] 好久没有更新博客了,从国庆节到现在一直在整理秋招的一些资料,简历模版,嵌入式软件面试知识点总结,秋招笔试题目整理,面经总结复盘等。一共整理了将近400页,16W字
公众号嵌入式与Linux那些事
·
2023-03-14 09:18
《
深入理解计算机系统
》Part1 01:概述
我们主要学习10周的小学时ICS课程(既只学习第一和第二部分,且不包括第二部分中第四章:处理器体系结构)第一部分主要介绍程序的高级语言如何变成机器语言的第二部分则主要介绍机器语言是如何在计算机系统上运行的
fengjb
·
2023-03-12 17:16
如何理解计算机系统进程,
深入理解计算机系统
:进程
导语:这是篇读书笔记,每次重读CSAPP都有新的认知,尤其是在进入了后台通道之后才感受到每天和进程打交道的感觉是如此深刻。0x00WhatisProcess?[systemstructure]进程(Process)经典定义是一个执行中的程序的实例,操作系统对一个正在运行的程序的一种抽象。并发运行,指的是一个进程的指令和另一个进程的指令交错执行。操作系统实现这种交错执行的机制称为上下文切换。线程(T
weixin_39571749
·
2023-03-11 14:12
如何理解计算机系统进程
CSAPP(异常控制流)——fork()函数详解(附家庭作业解析)
基础概念二.进程的概念三.辅助方法——进程图四.两个简单的fork例子例子1:书本p514——fork.c例子2:书本p5518.13——forkprob3.c其它fork例子本博客的内容和代码是基于《
深入理解计算机系统
HUNNU_黄勇Jerry
·
2023-03-11 14:11
计算机系统基础
Linux
fork函数
Linux
fork函数
C语言
逻辑运算
CSAPP 并发编程 ——
深入理解计算机系统
12.3基于线程的并发编程到目前为止,我们已经看到了两种创建并发逻辑流的方法。在第一种方法中,我们为每个流使用了单独的进程。内核会自动调度每个进程.而每个进程有它自己的私有地址空间,这使得流共享数据很困难。在第二种方法中,我们创建自己的逻辑流,并利用I/O多路复用来显式地调度流。因为只有一个进程,所有的流共享整个地址空间。本节介绍第三种方法——基于线程,它是这两种方法的混合。线程(thread)就
Eternitykc
·
2023-03-11 14:06
CSAPP
c语言
CSAPP
深入理解计算机系统
并发
并发编程
读书笔记:《
深入理解计算机系统
》第八章 异常控制流
第一次作业:认识异常分类,进程的切换及状态。第二次作业:认识信号,非本地跳转。异常控制流是一个很宽泛的概念,我们经常提到的异常是异常控制流的一种形式,一部分由硬件实现,一部分由操作系统实现。主要分为4类,中断,陷阱,故障,中止。除了中断是硬件方面的问题,其他都是系统方面的问题。异常是允许操作系统内核提供进程概念的基本构造块,而进程是计算机科学中最深刻,最成功的的概念之一。在现代系统中,进程是切换执
王新港
·
2023-03-11 14:36
计算机系统
读书笔记
计算机系统
读书笔记
异常
关于异常控制流和系统级 I/O:进程
写在前面:本文将学习《
深入理解计算机系统
》的第六章-关于异常控制流和系统级I/O的进程部分。
柠檬叶子C
·
2023-03-11 14:05
⭐《CSAPP随笔》
服务器
linux
运维
书单
书名C++PrimerPlusC++PrimerPlusC++PrimerPlusC++Primer第五版编译原理计算机组成与设计:硬件/软件接口TCP/IP详解卷1神经网络与机器学习
深入理解计算机系统
isolate_watcher
·
2023-03-09 12:06
读书笔记
深入理解计算机系统
第三章 程序的机器级表示(下)
[toc]关键词过程,数组,内存结构,缓冲区溢出数组和缓冲区溢出一定去看看汇编代码,然后做练习题,就算懂了原理,也要看一下数组是怎么操作的。因为汇编语言里面的操作和你写的C代码可能很不一样。比如你写了一个for循环,求和一个一维整型数组里面的所有数。那么你在C代码里面可能会写for(inti=0;i>2;longrv=rfun(nx);returnx+rv;}因为要被调用者保存,这个%rbx是保存
ZachV
·
2023-02-18 08:44
《
深入理解计算机系统
》(CSAPP)读书笔记 —— 第六章 存储器层次结构
在计算机系统模型中,CPU执行指令,而存储器系统为CPU存放指令和数据。实际上,存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。 如果你的程序需要的数据是存储在CPU寄存器中,那么在指令的执行期间,在0个周期内就能访问到它们。如果存储在高速缓存中,需要4~75个周期。如果存储在主存中,需要上百个周期。而如果存储在磁盘上,需要大约几千万个周期! 计算机程序的一个基本属性称为
公众号嵌入式与Linux那些事
·
2023-02-17 01:24
深入理解计算机系统
image.pngimage.png1.6存储设备形成层次结构image.png1.7操作系统管理硬件image.pngimage.png1.7.1进程image.png1.73虚拟内存image.pngimage.pngimage.png
Today_Now
·
2023-02-06 18:41
350多本编程书籍是每个程序员值得拥有的一套编程百科全书
热门书籍《重构》《程序员修炼之道》《计算机程序的构造和解释》《黑客与画家》《编程珠玑》《
深入理解计算机系统
》《代码大全》《HTTP权威指南》《UNIX程序设计艺术》《重来》《集体智慧编程》《疯狂的程序员
代码技巧
·
2023-02-05 21:15
深入理解计算机系统
第七章
为了构造可执行文件,链接器必须完成两个主要任务符合解析重定位目标文件的三种形式1.可重定位目标文件包含二进制代码和数据,其形式可以在编译时与其他可重定位目标文件合并起来,创建一个可执行目标文件。2.可执行目标文件包含二进制代码和数据其形式可以被直接复制到内存并执行3.共享目标文件一种特殊类型的可重定位目标文件,可以在加载或者运行时被动态地加载进内存并链接。符号解析主要就是解析elf文件中存储符合的
竹草席
·
2023-02-03 08:18
深入理解计算机系统
——链接
链接本文参考《
深入理解计算机系统
》前言当我们点击Xcode的运行按钮时,你会注意到在界面顶端的提示栏上会出现“Building”的字样,紧接着会出现“Linking”的字样,我们知道Building是编译过程
拧发条鸟xds
·
2023-02-02 18:53
谈谈helloworld 的生命周期
image.png文章中的部分内容来自《
深入理解计算机系统
》第一章helloworld从到创建,执行,输出简单消息,再到终止,中间到底是如何运行的。简单介绍下。
simle天晴
·
2023-02-02 08:17
深入理解计算机系统
第八章
异常流控制从给处理器加电开始,直到你断电为止,程序计数器假设一个值a1,a2,a3...的序列其中,每个ak是某个相应的指令Ik的地址。每次从ak到ak+1的过渡称为控制转移(controltransfer)。这样的控制转移序列叫做处理器的控制流(flowofcontrol或controlflow)。现代系统通过使控制流发生突变来对这些情况做出反应.。—般而言,我们把这些突变称为异常控制流(ECF
竹草席
·
2023-01-29 07:24
《
深入理解计算机系统
/CSAPP》Shell Lab
原文链接目标补全tsh.c中剩余的代码:voideval(char*cmdline):解析并执行命令。intbuiltin_cmd(char**argv):检测命令是否为内置命令quit、fg、bg、jobs。voiddo_bgfg(char**argv):实现bg、fg命令。voidwaitfg(pid_tpid):等待前台命令执行完成。voidsigchld_handler(intsig):处
Coc0
·
2023-01-27 16:12
2022-05-02 linux 动态链接实验 从应用程序中加载和链接共享库
内容学自《
深入理解计算机系统
》#includevoid*dlopen(constchar*filename,intflag);成功返回指向句柄的指针,失败返回nullflag:RTLD_NOW或者RTLD_LAZYvoid
风_55e1
·
2023-01-27 13:31
《
深入理解计算机系统
》Part1 05:优化程序性能
摘要:这一章节主要讲述了以提高程序的运行速率进行程序优化的三个层次(也就是优化时间,而暂时不考虑空间性能的问题),并且主要介绍了如何做到指令级的优化。关键词:指令流水线目录: 1.程序的指令级优化 2.程序的代码级优化 3.程序的算法级优化1.程序的指令级优化我们知道,对一个单核的机器进行密集型计算的时候,使用多线程是不会有效率的提高的。但使用单个线程,不同的代码也会很大的性能差异,如何单核
fengjb
·
2023-01-27 12:09
编译那些事儿1-预编译
同步博客:MyLove最近要深入了解一下计算机的内部结构了,准备看一下《
深入理解计算机系统
》这本书,这就当是自己的学习笔记吧。这里都是以Unix或类Unix操作系统为基础做的工作。
火影启源
·
2023-01-26 06:37
《
深入理解计算机系统
》CSAPP第3版术语索引表
《
深入理解计算机系统
》几乎做到了只讲对程序员“有用的”原理,所以这本书性价比非常高。并没有在体系结构和操作系统的许多实现问题上纠缠。第三版的英文原版是有index表的,中文没有。
Trade Off
·
2023-01-22 12:32
Linux
Docker
Git
计算机系统
CSAPP
深入理解计算机系统
操作系统
体系结构
C语言目标文件的详细讲解
文章为《
深入理解计算机系统
》的读书笔记,更为详细的内容可以阅读原书。目标文件分类目标文件有三种形式:可重定位目标文件包含二进制代码和数据,其形式可以在编译时
·
2023-01-18 00:46
C 语言目标文件
文章为《
深入理解计算机系统
》的读书笔记,更为详细的内容可以阅读原书。
叫我小秦就好了
·
2023-01-17 12:51
C语言
c语言
linux
寒假怎么过?经典计算机教材助你弯道超车
计算机专业学生必读经典书单推荐RECOMMEND推荐阅读01《
深入理解计算机系统
(原书第3版)》作者:[美]兰德尔E.布莱恩特(RandalE.Bryant)大卫R.奥哈拉伦(DavidR.O'Hallaron
hzbooks
·
2023-01-16 12:06
编程语言
人工智能
ai
xhtml
jmx
《Intro to Computer Systems》(csapp)LAB4(CacheLab)
深入理解计算机系统
-cachelab,不过他的partB做法有些麻烦,细节分析上好像也还有一些不对的地方(直接暴力分块时产生替换的位置)。课程提供的PPT也值得参考。
千裡
·
2023-01-14 09:19
LAB
学习
csapp
Lab0 C Programming Lab(CMU)(CSAPP
深入理解计算机系统
)
目录实验下载地址大致要求大致操作自动打分具体操作代码和大致思路queue.h中两个结构体queue.c中的几个函数Freequeue的函数两个insert函数:Remove函数ReturnSize函数:Reverse函数AutoGrade分数实验下载地址15-213/14-513/15-513:IntroductiontoComputerSystems/ScheduleFall2021Introd
sayinginging
·
2023-01-14 09:47
c语言
数据结构
链表
linux
【
深入理解计算机系统
】CSAPP-实验四:ArchLab全网最详细
前言对应书本第四章内容。通过对Y86-64的ISA构造,熟悉对x86-64指令集。实验分为三个部分,第一部分是熟悉C到ys汇编。第二部分是修改线性的SEQ,增加iaddq这个指令。第三部分是最核心,也是最困难的开放部分,优化代码以及体系结构。本机使用win10+wsl2.0+ubuntu18.04完成实验。点击查看我的全部代码referenceCSAPPLAB关于CSAPPcannotfind-l
热爱学习的贾克斯
·
2023-01-14 09:14
笔记
操作系统
c++
【
深入理解计算机系统
csapp lab】malloc lab
做malloclab首先要熟悉课本9.9的内容,尤其是9.9.12,如果不知道从哪里入手,可以和我一样,从实现课本介绍的简单分配器开始,然后在这个基础上改编。试验后最终采取的是隐式空闲链表+分离的显式空闲链表,分离存储的块大小为{16-32},{33-64},{65-128}···,空闲块在链表中按从小到大排列,这样首次匹配的结果接近最佳匹配。mm.h#includeexternintmm_ini
hazel1313
·
2023-01-14 09:10
csapp
CSAPP实验深思录
Github目录项目背景下载实验列表实验环境搭建实验进度开源协议项目背景记录《
深入理解计算机系统
》的实验记录和学习思考。下载在命令行中运行以下命令。
Ryanw丶
·
2023-01-14 09:09
深入理解计算机系统
linux y86模拟器使用,CS:APP3e
深入理解计算机系统
_3e Y86-64模拟器指南
虽然我们学校第四章没有要求做实验(ArchitectureLab),但课后作业用到了Y86-64的模拟器,也是实验材料的一部分。我在编译模拟器的时候遇到了两个困难,解决后在这分享一下。1.Tcl/Tk等命令找不到在编译的时候我们会碰到“XXX命令找不到”的情况,这时只需要使用“sudoaptinstallXXX”即可(我这里是debian系)。但是要注意的是,再安装Tcl/Tk的时候会默认安装8.
weixin_39572409
·
2023-01-11 17:03
linux
y86模拟器使用
【
深入理解计算机系统
】让我们了解程序
【
深入理解计算机系统
】让我们了解程序1、首先我们来了解一下什么是程序程序是为求解某个特定问题而设计的指令序列。程序中的每条指令规定机器完成一组基本操作。
xiao_cm
·
2023-01-10 18:28
2022年度总结与2023未来规划
2022年计划完成情况原始计划生活方面健身(体重增到145)争取发展一个新的爱好(游泳、拳击)会做6个菜,做12次饭技术方面Java开发-基础知识-Java业务开发常见错误/Java并发编程
深入理解计算机系统
luxinfeng666
·
2023-01-09 08:05
生活随笔
程序人生
学习方法
数据库
java
深入理解计算机系统
分享一个2进制和十六进制快速转换的方法:十六进制的一个0可以代表4个二进制的0在c语言中,有符号数和无符号数同时存在,会把有符号数强制转换成无符号数关于内存引用**CPE**:表示每个元素执行所需要的时钟周期数,CPE越小表示程序执行的越快强符号:函数和已初始化的全局变量弱符号:未初始化的全局变量虚拟页号:VPN(VirtualPageNumber)虚拟页偏移:VPO(VirtualPageOff
wen_zhi
·
2023-01-05 16:44
读研日记
计算机系统
【
深入理解计算机系统
】第三章重点汇总
3.1程序的机器级表示现有两个源文件:main.c#includevoidmulstore(long,long,long*);intmain(){longd;mulstore(2,3,&d);printf("2*3-->%ld\n",d);return0;}longmult2(longa,longb){longs=a*b;returns;}mstore.clongmult2(long,long);
solego
·
2022-12-31 20:49
#
深入理解计算机系统
linux
《
深入理解计算机系统
》第二章笔记(自用)
第二章信息的表示和处理1.信息存储大多数计算机使用字节作为最小的可寻址的内存单位。虚拟地址空间,所有虚拟内存的可能地址的集合,它是一个展现给机器级程序的概念性映像(具体见第九章后补)。十六进制表示法(hex):一个字节在二进制下的值域是00000000~11111111,在十进制下的值域是0~255,在十六进制下的值域是00~FF。【基本知识点:进制之间的转换】对于一个字长为w位的机器而言,虚拟地
献给陆河
·
2022-12-25 18:58
计算机系统
《
深入理解计算机系统
》笔记第一章(自用)
第一章计算机系统1.关于【hello.c】文件如何变成【hello】:预处理:.c变.i,把头文件中的内容插入到文本程序里编译:.i变.s,把文本文件翻译成汇编语言汇编:.s变.o(可重定位目标程序),把汇编语言翻译成机器语言链接:.o变可执行目标程序,将引用的库函数的实体合并到程序2.系统的硬件组成:总线:(字/字节/位)e.g.字长为4字节的机器,4*8=32位I/O设备:(tip:所有储存器
献给陆河
·
2022-12-25 18:27
计算机系统
人生读书规划
人生哲学1、《叔本华论说文集》image.png2、《苏菲的世界》image.png3、《希腊哲学史》image.pngIT技术1、《
深入理解计算机系统
》image.png职场生存1、《从零开始学项目管理
椟夜
·
2022-12-19 14:28
深入理解计算机系统
——第3章 程序的机器级表示
深入理解计算机系统
——第3章程序的机器级表示程序的机器级表示编译器基于编程语言的规则、操作系统的惯例、目标机器的指令集生成机器代码。汇编代码是机器代码的一种形式,它是机器代码的文本表示。
Still_Believe_
·
2022-12-17 13:17
深入理解计算机系统
计算机系统
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他