深入理解计算机系统家庭作业 深入理解计算机系统第二章家庭作业 题目2.64 题目要求 判断二进制数偶数位是否有任意一位位为1,有的话返回1,否则返回0 解题过程 int any_even_one(unsigned x) { return !!(x & (0x55555555)); } 题目2.65 题目要求 写出代码实现如下函数: int even_ones(unsigned x); 解题过程 分析:因为本题受12次操作的限制,故不能按位计算是否该位为1.考虑到本题只需要判断1的个数的奇偶性,而…
程序人生P2P 前言 经过一个学期的快乐学习(折磨),计算机系统终于结课了,自认为对于计算机系统算是有了粗浅的理解.为了庆祝结课,顺带总结自己的学习经历(只是为了完成大作业),便通过一个简单的程序hello.c来追忆这个学期的知识,也当是复习了(人懒,考完了才写的). 开个头 文章从一个简单的程序hello.c作为切入点,系统地阐述了预处理.编译.汇编.链接等过程,简述了hello的进程管理等内容.文章内容仅是笔者个人的学习经验,完全无法保证正确性,欢迎批评指正. 正文 说是正文其实就是个PDF…
<深入理解计算机系统(第二版)>CSAPP 第三章 家庭作业 这一章介绍了AT&T的汇编指令 比较重要 本人完成了<深入理解计算机系统(第二版)>(以下简称CSAPP)第三章的家庭作业,并与网上的一些答案进行了对比修正. 感谢博主summerhust的整理,以下贴出AT&T常用汇编指令 AT&T常用汇编指令 数据传送指令 指令 效果 描述 movl S,D D <-- S 传双字 movw S,D D <-- S 传字 movb S,D D &l…
8.9 关于并行的定义我之前写过一篇文章,参考: 并发与并行的区别 The differences between Concurrency and Parallel +----------------------------+ | Process pair Concurrent?| +----------------------------+ | AB N | | | | AC Y | | | | AD Y | | | | BC Y | | | | BD Y | | | | CD Y | +--…
4.52以后的题目中的代码大多是书上的,如需使用请联系 randy.bryant@cs.cmu.edu 更新:关于编译Y86-64中遇到的问题,可以参考一下CS:APP3e 深入理解计算机系统_3e Y86-64模拟器指南 流水线部分只写了偶数题号的,这几天太浮躁,落下了好多课... 4.45 A. 不正确,当REG为%rsp时,这样会压入%rsp - 8而非%rsp B. 对于 pushq REG: movq REG, -8(%rsp) subq $8, %rsp 4.46 A. 不正确,当R…
9.11 A. 00001001 111100 B. +----------------------------+ | Parameter Value | +----------------------------+ | VPN 0x09 | | TLB index 0x01 | | TLB tag 0x02 | | TLB hit? N | | Page fault? N | | PPN 0x17 | +----------------------------+ C. 010111 11110…
<深入理解计算机系统>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382303 内容提要 本书主要介绍了计算机系统的基本概念,包括最 底层的内存中的数据表示.流水线指令的构成.虚拟存储器.编译系统.动态加载库,以及用户应用等.书中提供了大量实际操作,可以帮助读者更好地理解程序执行的方式,改进程序的执行效率.此书以程序员的视角全面讲解了计算机系统,深入浅出地介绍了处理器.编译器.操作系统和网络环境,是这一领域的权威之作. 本书适合作为计…
上个星期最终把csapp看完了. 我买的是中文版的,由于除了貌似评价不错以外,由于涉及到些自己不了解的底层东西,怕是看英文会云里雾里.如今看来,大概不能算是个长处,可是的确可以加快我的看书速度,否则一星期还真不大可能把这书搞定. 对csapp慕名已久,主要在于据说这本书尽量的做到相对实用,不去讲那些和实际编程没多大关系的计算机原理(毕竟是著名计算机院校里面最偏软件的cmu的作品),重点很得当,像我这样的没有本科科班出生又不想去死读些不知道以后有没实用的东西的人来说,最是适合了.感兴趣的东西就行再…
博客中的文章均为meelo原创,请务必以链接形式注明本文地址 Shell Lab是CMU计算机系统入门课程的一个实验.在这个实验里你需要实现一个shell,shell是用户与计算机的交互界面.普通意义上的shell就是可以接受用户输入命令的程序.它之所以被称作shell是因为它隐藏了操作系统低层的细节.完成Shell Lab你会对shell有更加深入的认识,并熟悉Linux的多进程编程方法. 编程实现是一种绝佳的学习方式,然而就像这个实验一样,很多很好的课程作业都隐藏在互联网当中.大多数人难以通…
本章通过跟踪hello程序的生命周期来开始对计算机系统进行学习.一个源程序从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止.我们将沿着这个程序的生命周期,简要地介绍一些逐步出现的关键概念.专业术语和组成部分. @ 目录 源程序是如何存储的 源程序到可执行文件的过程 shell是什么 典型系统的硬件组成 运行hello程序 高速缓存 存储设备的层次结构 操作系统管理硬件 进程&线程 虚拟内存 并发&并行 多核处理器&多线程   好久没有更新博客了,从国庆节到现在一直在整…