CSAPP《深入理解计算系统》,我的学习心得 - CSDN博客

文章推薦指數: 80 %
投票人數:10人

CSAPP 涵盖的内容非常多,有计算机组成+ 操作系统+ 汇编+ C语言+ Linux系统编程,涉猎的领域比较多,是一本综合性的书,更是一本程序员修炼内功的指引 ... CSAPP《深入理解计算系统》,我的学习心得 小林coding 已于 2022-05-3017:34:53 修改 30350 收藏 263 分类专栏: 程序人生 文章标签: 算法 网络 java 编程语言 于 2021-06-2515:26:42 首次发布 版权声明:本文为博主原创文章,遵循CC4.0BY版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/qq_34827674/article/details/118221739 版权 程序人生 专栏收录该内容 12篇文章 41订阅 订阅专栏 大家好,我是小林。

今天跟大家聊聊《深入理解计算系统》,这本书的英文全称叫ComputerSystem:Aprogramerperspective 英文名翻译过来是「程序员视角下的计算机系统」,也被简称为CSAPP。

可能大家以为这本书是讲操作系统的,我最开始也以为是这样。

后面当我开始啃这本书的时候,发现我大错特错,它远不止我想的那样。

这本书是从程序员的角度学习计算机系统是如何工作的,通过描述程序是如何映射到计算机系统上,程序是如何执行的,以及程序效率低下的原因,这样的方式可以让大家能更好的知道「程序与计算机系统」的关系。

CSAPP涵盖的内容非常多,有计算机组成+操作系统+汇编+C语言+Linux系统编程,涉猎的领域比较多,是一本综合性的书,更是一本程序员修炼内功的指引书。

第一章「计算机系统漫游」内容,就很好的把程序与计算机系统有哪些关系都阐述清楚了,一下就知道了计算机系统的整个脉络,把一些零散的知识点都串了起来。

在国内已经有很多高校开始采用这本书作为大一或大二的教材了,采用用这本书作为教材的学校,真心给你们点个赞。

因为这本书其实可以给计算机专业的同学指明了一个很好的计算机基础学习方向,这样后续在单独学计算机组成、操作系统等这些独立的科学的时候,会更清楚知道它们在计算机里处在的位置和作用。

CSAPP主要包括以下内容: 信息表示(如何使用二进制表示整型、浮点数等);C和汇编语言的学习(通过汇编语言更深入地理解C语言是什么);计算机体系结构(存储层次结构、局部性原理、处理器体系结构);编译链接(C语言如何从文本变成可执行文件、静态链接、动态链接);操作系统的使用(异常控制流、虚拟内存、多个系统调用介绍);网络及并发编程(并发的基本概念、网络相关的系统调用的介绍)。

那学这本书需要什么基础呢? 这本书的作者已经在开头跟大家说清楚了,只需要有C语言基础,即使你没学过汇编、计算机组成、操作系统也是可以的。

前面我也提到CSAPP是一本程序员修炼内功的指引书,为什么说是指引书呢? CSAPP是计算机原理+操作系统+Linux系统+汇编的一个大杂烩,它不是深入理解汇编、深入理解操作系统、深入理解计算机原理,所以它不会在某个知识点给你涉及很深,比如: 虽然讲了虚拟内存,但是并没有说各种页面置换算法,这部分内容得我们去看操作系统相关的书;虽然讲了Cache,但是并没有说缓存一致性协议,这部分内容得我们去看计算机组成相关的书;虽然说了链接,但是讲的内容比较表面,要想深入这块内容还是得看看《程序员的自我修养》这本书;虽然说了Linux系统的I/0和网络编程,但是只是说了几个简单案例,要想深入理解这些内容还得看《APUE》和《UNP》这两本;没有提及操作系统中的文件系统、调度算法等。

但是CSAPP会给我们建立一个计算机系统的体系,好让我们在后面对体系里的每一个支点往下深入。

读了这本书,你后面在写代码的时候,会有不一样的视角,你会开始思考代码的底层原理,而不是把计算机系统当作一个黑盒子,跑完代码就完事的那种想法。

当然,单纯看书会很乏味,我们可以结合视频一起学。

这本书的视频课程是国外老师录制的,但是在b站已经有好人帮我们做了中文字幕,看了这视频,相当于在国外上了一门计算机课的感觉。

B站地址:CSAPP视频课 如果你是在校生,有了一定C语言基础后,非常建议你就开始看这本书,有精力也可以做做CSAPP的lab。

越早开始看,你的收益就越大,因为当计算机体系搭建起来后,你后面再深入每一个课程的时候,你会发现学起来会比较轻松些。

对于已经工作了,但是计算机系统没有一个清晰认识的读者,也可以从这本书开始一点一点学起来,这本书是很厚,但是并不一定要把书完完看完,每个章节的知识点还是比较独立的,有关硬件的章节我们可以选择跳过。

最后说件事情。

曾经我也苦恼于那些晦涩难弄的计算机基础知识,但在我啃了一本又一本的书,看了一个又一个的视频后,终于对这些“家伙”有了认识。

我想着,这世界上肯定有一些朋友也跟我有一样的苦恼,为此下决心,用图解+通熟易懂的讲解来帮助大家理解,利用工作之余,坚持输出图解文章两年之久,我的文章都汇总到了网站:https://xiaolincoding.com 网站内容共1000张图+50万字,网站宗旨让天下没有难懂的八股文!(口嗨一下,大家不要当真),网站地址:https://xiaolincoding.com。

希望图解网站成为你们上班摸鱼必备网站哈哈! 小林coding 关注 关注 121 点赞 踩 263 收藏 打赏 36 评论 扫一扫,分享内容 点击复制链接 专栏目录 看完CSAPP,我人麻了 a1472750149的博客 10-27 5361 最近几个周末去图书馆刷CSAPP完全停不下来啊,这种看不懂却还是强忍着痛苦硬逼着自己去看的感觉,真让我着迷。

这本书从真正意义上让我体会到了什么叫做看书五分钟,休息俩小时。

不过大家可千万别学我,我相信在坐的各位绝对比我牛批,为什么?因为后面我给你推荐了一款神器,那么首先我们先来介绍一下这本书。

这本书总共分成十二个章节,我给你绘制了一个思维导图,比较简单明了。

第一章是提纲挈领性质的一章,从一个helloworld程序来引出C、引出UNIX、Linux,引出C. CSAPP英文版 04-13 CSAPP英文版pdf ATourofComputerSystems1 1.1InformationIsBits+Context3 1.2ProgramsAreTranslatedbyOtherProgramsintoDifferentForms4 1.3ItPaystoUnderstandHowCompilationSystemsWork6 1.4ProcessorsReadandInterpretInstructionsStoredinMemory7 1.4.1HardwareOrganizationofaSystem7 1.4.2RunningthehelloProgram10 1.5CachesMatter12 1.6StorageDevicesFormaHierarchy13 1.7TheOperatingSystemManagestheHardware14 1.7.1Processes16 1.7.2Threads17 1.7.3VirtualMemory17 1.7.4Files19 1.8SystemsCommunicatewithOtherSystemsUsingNetworks20 1.9ImportantThemes21 1.9.1ConcurrencyandParallelism21 1.9.2TheImportanceofAbstractionsinComputerSystems24 1.10Summary25 BibliographicNotes26 评论 36 您还未登录,请先 登录 后发表或查看评论 CSAPP:深入理解计算机系统概述(各章节重点概述) 最新发布 song_shaoze的博客 05-24 116 终于“草草”阅读完了CSAPP,第一次读完,主要目标是建立起知识框架,没有在细节上进行过多的深追,主要目标是构建起知识网络,为后续细节学习打下基础,本文先进行概述,描述各章的主要思想与重点内容。

第一章(计算机系统漫游) 可以说是整本书的一个缩影,很多国外的教材都采用这种方式,以简单的例子来给读者呈现整书的思想。

该章节主要描述了一个简单的程序是如何运行起来的,这一章也提到了高速缓存、进程线程、虚拟内存、网络通信等都会在后续章节进行细讲。

第二章(信息的表示与处理) 这一章节主要讲的是数据的底层存储格式与基 CSAPP-深入理解计算机系统 05-26 CSAPP并发编程——深入理解计算机系统 Eternitykc的博客 06-01 308 12.3基于线程的并发编程 到目前为止,我们已经看到了两种创建并发逻辑流的方法。

在第一种方法中,我们为每个流使用了单独的进程。

内核会自动调度每个进程.而每个进程有它自己的私有地址空间,这使得流共享数据很困难。

在第二种方法中,我们创建自己的逻辑流,并利用I/O多路复用来显式地调度流。

因为只有一个进程,所有的流共享整个地址空间。

本节介绍第三种方法——基于线程,它是这两种方法的混合。

线程(thread)就是运行在进程上下文中的逻辑流。

在本书里迄今为止,程序都是由每个进程中一个线程组成的。

但是现代系统 深入理解计算机系统(CSAPP)含lab详解完结 hxhxhxhxx的博客 10-18 3451 深入理解计算机操作系统-第一章 1.1信息就是位+上下文 #include intmain() { printf("hello,world\n"); return0; } hello.c的ascii文本表示 像hello.c这样只由ASCII字符构成的文件称为文本文件,所有其他文件都称为二进制文件。

hello.c的表示方法说明了一个基本思想∶系统中所有的信息——包括磁盘文件、内存中的程序、内存中存放的用户数据以及网络上传送的数据 CSAPP学习系列:什么是CSAPP weixin_36349662的博客 10-09 1万+ CSAPP全称ComputerSystemsAProgrammer'sperspective,国内通常的书名翻译是《深入理解计算机系统》 《深入理解计算机系统》CSAPP入坑推荐 gwj1139177410的博客 11-04 1163 1、CSAPP是什么 CSAPP是什么? CSAPP是一本书,全称ComputerSystemsAProgrammer’sperspective,国内通常的书名翻译是《深入理解计算机系统》 电子在线版本可以在github上找到: https://hansimov.gitbook.io/csapp/ https://github.com/Hansimov/csapp CSAPP的来源? 这本书是CMU的计算机导论教材,是曾经的CMU计算机系主任编写的。

配套的课程可以再github和bili CSAPP-----总结 一个人的学习和碎碎念 03-08 1万+ CSAPP是操作系统方面的圣经,一共分为三大部分,共12个章节。

第一个章节是简单的介绍了计算机系统,第一章大致浏览可以了解到很多关于计算机的基本知识。

接下来分为三大部分。

第一部分是程序的结构和执行,这一部分主要讲了信息的表达和处理、程序的机器级表示、处理器的体系结构、优化程序性能等,这一部分其实比较偏向于硬件和底层,如果有时间这一部分应该好好看,如果只是想了解操... CSAPP深入理解计算机系统笔记 qq_41230365的博客 04-26 7169 csapp的学习从2019.3.18开始。

从05.10-08.01这几个月一直工作,重心转去学了点软件工程和面向对象的东西,中断了这部分的学习。

从08.01重新继续这部分的学习,但平时工作忙,只能挤出很少的时间。

前言: 如果是第一次看csapp这本书,建议先不要看,直接去看上交软院的课程主页,按照上面的课件学习。

推荐一个个人博客“不周山之读薄CSAPP”,也可以按这个博客学习。

这本书的必... csapp学习 不舍的猫的博客 03-02 583 文章目录shihsi shihsi CSAPP学习总结 fsrstydt的博客 07-06 375 CSAPP旨在阐述计算机系统的核心概念——为后续操作系统、编译原理、网络编程的深入学习作了很好的引入 CSAPP(深入理解计算机系统) 小白的博客 10-19 1万+ CSAPPMIPS学习笔记 哈工大CSAPP大作业 Linsani的博客 06-23 222 计算机系统 大作业 题目程序人生-Hello’sP2P 专业计算学部 学  号1190202128 班  级103002 学生林搏海   指导教师郑贵滨... 读完了csapp(中文名:深入理解计算机系统) sr_srr的博客 01-21 1851 上个星期终于把csapp看完了。

我买的是中文版的,因为除了貌似评价不错以外,由于涉及到些自己不了解的底层东西,怕是看英文会云里雾里。

现在看来,大概不能算是个优点,但是的确能够加快我的看书速度,否则一星期还真不大可能把这书搞定。

对csapp慕名已久,主要在于据说这本书尽量的做到相对实用,不去讲那些和实际编程没多大关系的计算机原理(毕竟是著名计算机院校里面最偏软件的cmu的作品),重点非常得当 CSAPP(一) 咕嘟咕嘟 05-21 1974 简介CSAPP全名是《深入理解计算机系统》,是CMU的教材,也被很多国内外著名的大学选用作教材,我们的408考研使用的《计算机组成原理》其中的一篇参考书目就是经典的CSAPP。

其中涉及到计算机系统结构、操作系统、编译器、网络、并发编程方面的知识,并且书中的讲解详细且清晰,循序渐进的学习非常有利于从programmer的视角理解计算机的工作原理,因此特开一版记录我自己的心得,不过毕竟刚而且现在力争把书 csapp操作系统 weixin_45861496的博客 01-15 1654 应用程序与硬件的关系 从上一章讲起,无论是shell程序还是hello程序都没有直接访问键盘,显示器,磁盘这些硬件设备,真正操纵硬件的是操作系统,它是应用程序和硬件的中间层,所有的应用程序对硬件的操作必须通过操作系统来完成,如下图所示,这样设计有两个主要目的: 1.防止硬件被失控的应用程序滥用; 2.操作系统提供统一的机制来控制这些复杂的底层硬件。

操作系统 为了实现上述功能,操作系统引入了几个抽象的概念: 就是说, 1.文件是对IO设备的抽象 2.虚拟内存是对内存和磁盘IO的抽象 3.进程是对处理器 CSAPP(原书第二版) 11-14 CSAPP(深入理解计算机系统)作者RandalE.BryantDavidR.O'Hallaron 计算机组成原理-CSAPP Nick_cloud的博客 04-23 655 CSAPP第一章计算机系统漫游1.1信息是位+上下文1.2程序被其他程序翻译成不同格式1.3了解编译系统1.4处理器读解释存储在内存中的指令1.5高速缓存至关重要1.6存储设备形成层次结构1.7操作系统管理硬件1.8系统之间利用网络通信(非408)1.9主要概念第二章信息的表示和处理2.1信息存储2.2整数表示 第一章计算机系统漫游 1.1信息是位+上下文 信息是位+上下文,例如helloworld,程序的生命周期是从一个源程序(源文件)开始的,即程序员通过编辑器创建 CSAPP:CacheLab 热门推荐 未选之路 07-13 3万+ cacheLab “相关推荐”对你有帮助么? 非常没帮助 没帮助 一般 有帮助 非常有帮助 提交 ©️2022CSDN 皮肤主题:博客之星2020 设计师:CSDN官方博客 返回首页 小林coding CSDN认证博客专家 CSDN认证企业博客 码龄6年 网络领域优质创作者 159 原创 1860 周排名 229 总排名 126万+ 访问 等级 2万+ 积分 5万+ 粉丝 1万+ 获赞 4020 评论 3万+ 收藏 私信 关注 热门文章 小学六年级的读者,自学计算机,会爬虫,搞崩过学校网站,还有Girlfriend..... 244818 数据结构,计算机网络,数据库,计算机组成原理,操作系统有哪些好的网课值得推荐? 58221 一口气搞懂「文件系统」,就靠这25张图了 43821 有什么优质的计算机专业书籍?操作系统、计算机网络、计算机组成、数据结构、数据库..... 35797 20张图揭开「内存管理」的迷雾,瞬间豁然开朗 31356 分类专栏 图解Redis 14篇 图解计算机网络 38篇 图解MySQL 14篇 图解操作系统 29篇 程序人生 12篇 学习路线 7篇 Linux性能调优 3篇 sequoiadb 2篇 Redis 1篇 C++基础知识 15篇 数据结构与算法 1篇 快速入门Shell编程 9篇 Linux 11篇 Shell 11篇 FFmpeg 1篇 C/C++ 19篇 最新评论 如何理解是TCP面向字节流协议? 达不达闻西: 通俗易懂,写的非常好~~~~ 小学六年级的读者,自学计算机,会爬虫,搞崩过学校网站,还有Girlfriend..... m0_72858340: 五年级,自学Java,桌面应用精通 面试官:MySQL是怎么加锁的? qq_40183541: 非唯一索引等值查询的值不存在时,例子举得是whereb=5,确定next-keylock的范围是(8,16],不是{4,8]吗?还是说这里b=5写错了 小学六年级的读者,自学计算机,会爬虫,搞崩过学校网站,还有Girlfriend..... weixin_73038431: 关键我在他桌面上看见的那个紫色的小玩意。





是什么?干啥用的? 聊聊索引失效?失效的原因是什么? L.S.Adam: 不错,很好 您愿意向朋友推荐“博客详情页”吗? 强烈不推荐 不推荐 一般般 推荐 强烈推荐 提交 最新文章 Redis大key要如何处理? 服务端没有listen,客户端发起连接建立,会发生什么? 如何用Redis实现分布式锁的? 2022 08月 2篇 07月 4篇 06月 4篇 05月 5篇 04月 6篇 03月 15篇 02月 2篇 01月 5篇 2021年49篇 2020年37篇 2019年30篇 目录 目录 分类专栏 图解Redis 14篇 图解计算机网络 38篇 图解MySQL 14篇 图解操作系统 29篇 程序人生 12篇 学习路线 7篇 Linux性能调优 3篇 sequoiadb 2篇 Redis 1篇 C++基础知识 15篇 数据结构与算法 1篇 快速入门Shell编程 9篇 Linux 11篇 Shell 11篇 FFmpeg 1篇 C/C++ 19篇 目录 评论 36 被折叠的  条评论 为什么被折叠? 到【灌水乐园】发言 查看更多评论 打赏作者 小林coding 交个朋友 ¥2 ¥4 ¥6 ¥10 ¥20 输入1-500的整数 余额支付 (余额:--) 扫码支付 扫码支付:¥2 获取中 扫码支付 您的余额不足,请更换扫码支付或充值 打赏作者 实付元 使用余额支付 点击重新获取 扫码支付 钱包余额 0 抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。

2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值



請為這篇文章評分?