• 《深入理解计算机系统》速读提问


    《深入理解计算机系统》速读提问

    第一章 计算机系统漫游

    本章讲了计算机操作系统的运行过程,计算机操作系统具体有什么功能?起到什么作用?
    通过查找资料知道,操作系统堪称是应用程序和硬件之间插入的一层软件。操作系统可以防止硬件被失控的应用程序滥用;而且向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备。参考:操作系统管理硬件

    第二章 信息的表示和处理

    本章主要讲的是信息的存储,以及整数浮点数的表示。通过第二章的浏览,我们知道对于要输出的数值或者字符,我们要有一个符号限制,比如输出整数有&d,那么对于复杂一点的输出值我们应该如何选择数据类型?C语言允许在各种不同的数字数据类型之间做强制类型转换,那么不同的数据类型会造成什么影响和误差呢?参考:有符号数和无符号数之间的转换

    第三章 程序的机器级表示

    在C语言中,没有可靠的方法来防止对数组的越界写,那么在发生了越界写的时候,在没有造成任何有害结果之前,应该怎么尝试检测,来避免栈被破坏?

    最近的GCC版本在产生的代码中加入了一种栈保护者机制,用来检测缓冲区越界,其思想是在栈中任何局部缓冲区与栈状态之间存储一个特殊的金丝雀值。这个金丝雀值是在程序每次运行时随机产生的,因此,攻击者没有简单的办法知道它是什么。在恢复寄存器状态和从函数返回之前,程序检查这个金丝雀值是否被该函数的某个操作或者函数调用的某个操作改变了。如果是,那么程序异常终止。参考:栈破坏检测

    第四章 处理器体系结构

    因为存在反馈的流水线(即一条指令可能需要多次执行某个操作,或使用某个数据,访问某个存储器或寄存器)导致流水线冒险(数据,控制),流水阶段长度不一,流水线深度过大插入寄存器影响性能?

    暂停(系统判断是否会产生冒险,会则插入气泡,延迟下条指令执行),转发(使产生的结果理解送入需要的位置,避免暂停),加载使用(当存储器读发生较晚时需要暂停和转发机制同时使用)参考:数据冒险解决方案

    第五章 优化程序性能

    程序的优化可以通过手工改变代码结构,优化算法效率和数据结构,提高执行效率。参考改变代码结构通过实例代码,解释了代码结构的优化。

    第六章 存储器结构层次

    如果断电,DRAM和SRAM会丢失它们的信息,那么在突然断电情况下,信息如何处理?

    非易失性存储器即使在断电后仍然保存着他们的信息。可编程ROM(PROM)只能被编程一次。PROM的每个存储器单元有一种熔丝,他只能用高电流熔断一次。可擦写可编程ROM(EPROM)和电子可擦除PROM(EEPROM)可被多次编程。闪存(flash)基于EEPROM,也是一类非易失性存储器。存储在ROM设备中的程序称为固件。 参考:非易失性存储器

    第七章 链接

    链接是将各种不同文件的代码和数据部分收集(符号解析和重定位)起来并组合成一个单一文件的过程。链接器使得所有模块中的每个符号只有一个定义,当多个模块定义同一个符号的时候,我们的链接器到底怎么做,链接器如何解析多重定义的全局符号? 参考:链接器解析多重定义的全局符号

    第八章 异常控制流

    当一个程序捕获多个信号时,比如发送了3个SIGCHILD信号,那么这3个SIGCHILD信号是否都可以被接收?这个答案显然是不应定的,也只有两个信号被接受了。原因是,一段程序,当每个子进程结束,才可以触发一个该信号;一次该函数调用只能处理一个SIGCHILD信号。但是虽然一个子进程结束出发一个信号,但该函数通过循环,也能尽可能多的处理多个SIGCHILD信号。参考:信号处理问题

    第九章 虚拟内存

    主存中每个字节都有一个选自虚拟地址空间的虚拟地址和一个选自物理地址空间的物理地址。这里的虚拟地址和物理地址有什么区别? 物理地址是计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组,每个字节都有一个唯一的物理地址;在一个带虚拟存储器的系统中,CPU从一个有N=2^n个地址的地址空间中生成虚拟地址。 参考:虚拟地址和物理地址

    第十章 系统级I/O

    对于I/O的选择,上图中展现了几种I/O的关系模式,在应用程序中应该使用哪些函数呢?标准I/O函数是磁盘和终端设备I/O的首选。但是对网络套接字上尽量使用健壮的RIO或者系统I/O。如下图:


    参考:I/O使用的抉择方法

    第十一章 网络编程

    web客户端和服务器之间的交互用的是一个基于文本的应用级协议,叫HTTP(超文本传输协议)。web服务和常规的文件检索服务(例如FTP)有什么区别?web内容可以用HTML(超文本标记语言)语言编写。 web服务器以两种不同的方式向客户端提供内容:取一个磁盘文件,并将它的内容返回给客户端。静态内容,静态服务;运行一个可执行文件,并将它的输出返回给客户端。动态内容,动态服务。

    第十二章 并发编程

    父子进程间共享状态信息,进程有一个非常清晰的模型:共享文件表,但不共享用户地址空间。这是优点也是缺点:一个进程不可能不小心覆盖另一个进程的虚拟存储器;但是为了共享信息,他们必须使用显示的IPC机制,另一个缺点就是,他们往往比较慢,因为进程控制可IPC的开销很高。参考:基于进程的并发编程

  • 相关阅读:
    看板娘相关源码介绍
    Spring框架实体bean转json返回前端报错:Null key for a Map not allowed in JSON (use a converting NullKeySerializer?)
    Spring Data JPA介绍以及dao层(持久层)标准接口或自定义方法规则
    BeanNotOfRequiredTypeException:Bean named 'XXXX' is expected to be of type 'XXX' but was actually of type 'com.sun.proxy.$Proxy211'
    RedisDesktopManager的编译
    Spring-Boot中@Scheduled注解不生效
    @Async 注解不生效
    使用MongoTemplate,启动时候报错:org.springframework.beans.factory.BeanCreationException
    【个人经验之谈】计算机相关的就业、培训等问题解疑答惑
    简单java mail demo收发邮件例子,各种邮件类型
  • 原文地址:https://www.cnblogs.com/wyz-1995/p/7862479.html
Copyright © 2020-2023  润新知