《深入理解计算机系统》的原文摘录

  • We use the term concurrency to refer to the general concept of a system with multiple, simultaneous activities, and the term parallelism to refer to the use of concurrency to make a system run faster. (查看原文)
    13回复 4赞 2012-07-30 15:28:43
    —— 引自第15页
  • 图5-22展示了做 k 次循环展开和 k 路并行变换的效果,k 最大为 6。我们可以看到,随着 k 值的增加,所有合并情况的 CPE 都增加了。对于整数乘法和浮点数运算,我们看到 CPE 的值为 L/k,这里 L 是操作的延迟,最高可以得到吞吐量界限 1.00。我们还看到使用标准的展开,整数加法也达到了这个界限。 (查看原文)
    银河 1回复 1赞 2012-05-15 20:44:05
    —— 引自第352页
  • 总结一下,我们考虑无符号与补码表示之间互相转换的结果。对于在$0 \le x \le 2^{w-1}$范围内的值$x$而言,我们得到$T2U_w(x)=x$和$U2T_w(x)=x$。也就是说,在这个范围内的数字有相同的无符号和补码表示。对于这个范围意外的数值,转换需要加上或者减去$2^w$。 (查看原文)
    孔明 2013-01-10 11:58:34
    —— 引自第46页
  • C语言是系统级编程的首选,同时它也非常适用于应用级程序的编写。然而,它也并非适用于所有的程序员和所有的情况。C的指针是造成困惑和程序错误的一个常见原因。同时,C还缺乏对一些有用抽象的显式支持,例如类、对象和异常。 (查看原文)
    myisabella 1赞 2013-01-18 06:14:25
    —— 引自第3页
  • This book is written for a programmer's perspective, describing how application programmers can use their knowledge of a system to write better programs. (查看原文)
    decimalbell 1赞 2013-05-19 13:02:45
    —— 引自第7页
  • Building high-performance Web servers.Many Web servers generate dynamic content, such as personalized Web pages, account balances, and banner ads. Early Web servers generated dynamic content by using fork and execve to create a child process and run a “CGI program” in the context of the child. However, modern high-performance Web servers can generate dynamic content using a more efficient and sophisticated approach based on dynamic linking. The idea is to package each function that generates dynamic content in a shared library. When a request arrives from a Web browser, the server dynamically loads and links the appropriate function and then calls it directly, as opposed to using fork and execve to run the function in the context of a child process. The function remains cached in the ser... (查看原文)
    Ryutlis 2013-06-26 11:18:39
    —— 引自第684页
  • But if we had a 32-bit address space, 4KB pages, and a 4-byte PTE[page table entry, 杨注], then we would need a 4MB page table resident in memory at all time... (查看原文)
    杨贵福 1赞 2013-07-21 22:58:07
    —— 引自第826页
  • 我个人的经验是,有许多系统设计和概念,看似简单或不理解,可一旦自己动手做同样的试验,才明白当初设计者为什么要如此设计。计算机系统就像自然界的生态环境,对每一个部件的设计都要求它能够与系统其它部件和平相处,我们不能站在一个微观的视角去看待系统部件的设计是否最优,而应该从宏观来观察和思考 (查看原文)
    小C 1赞 2017-03-06 19:05:27
    —— 引自第1页
  • Hyperthreading, sometimes called simultaneous multi-threading, is a technique that allows a single CPU to execute multiple flows of control. It involves having multiple copies of some of the CPU hardware, such as program counters and register files, while having only single copies of other parts of the hardware, such as units that perform floating-point arithmetic. whereas a conventional processor requires around 20,000 clock cycles to shift between different threads, a hyperthread processor decides which of its threads to execute on a cycle-by-cycle basis. For example, if one thread must wait for some data to be loaded into a cache, the CPU can proceed with execution of a different thread. (查看原文)
    Grissiom 2011-04-10 20:08:17
    —— 引自第57页
  • integer representations can encode a comparatively small range of values, but do so precisely, while floating-point representations can encode a wide range of values, but only approximately. (查看原文)
    Grissiom 2011-04-10 20:43:34
    —— 引自第65页
  • When an operation is performed where one operand is signed and the other is unsigned, C implicitly casts the signed argument to unsigned and performs the operation assuming the numbers are nonnegative. As we well see, this convention makes little difference for standard arithmetic operations, but it leads to nonintuitive results for rational operators such as < and >. (查看原文)
    Grissiom 2011-04-11 11:52:01
    —— 引自第104页
  • Since program instructions are stored in memory and must be fetched(read) by the CPU, we can also evaluate the locality of a program with respect to its instruction fetches. ... for loop are executed in sequential memory order, and thus the loop enjoys good spatial locality. Since the loop body is executed multiple times, it also enjoys good temporal locality. (查看原文)
    Grissiom 2011-04-13 12:28:27
    —— 引自第623页
  • Processor macroarchitecture specifications often distinguish between asynchronous "interrupts" and synchronous "exceptions," yet provide no umbrella term to refer to these very similar concepts. (查看原文)
    Grissiom 2011-04-18 01:12:44
    —— 引自第745页
  • 处理器从来都不需要为了完成一条指令而去读由该指令更新的状态。 (查看原文)
    Inside 2011-05-19 16:40:37
    —— 引自第252页
  • GNU项目 (查看原文)
    容貌焦虑主理人 2011-05-28 10:39:50
    —— 引自第3页
  • 科学计数法 Floating-point arithmetic is not associative due to the finite precision of the representation. 浮点运算是不可结合的 (查看原文)
    容貌焦虑主理人 2011-06-01 13:13:45
    —— 引自第20页
  • 唯一区别是我们交换 i和j的循环。 (查看原文)
    samael 1回复 2011-06-06 17:11:45
    —— 引自第403页
  • 有符号数到无符号数的隐式转换会导致错误或者漏洞,避免这类错误的一种方式就是绝不实用无符号数。实际上,除了C,很少有其他语言支持无符号整数。 (查看原文)
    假日笛声 2011-07-03 00:37:36
    —— 引自第54页
  • 移动k位,这里k很大 (查看原文)
    Krator 2011-08-01 20:02:47
    —— 引自第37页
  • 在许多机器上,当移动一个w位的值时,移位指令只考虑位移量的低$log_{2}w$ 位,因此实际上位移量就是通过计算k mod w得到的。 (查看原文)
    Krator 2011-08-01 20:02:47
    —— 引自第37页
<前页 1 2 3 4 5 6 7 8 9 ... 17 18 后页>