Skip to content
This repository has been archived by the owner on Aug 28, 2021. It is now read-only.

Latest commit

 

History

History
19 lines (11 loc) · 1.37 KB

QA28.md

File metadata and controls

19 lines (11 loc) · 1.37 KB

QA28

垃圾回收时堆使用的内存有向图的根节点有哪几种类型?

根节点对应于这样一种不在堆中的位置,它们中包含指向堆中的指针。这些位置可以是寄存器、栈里的变量,或者是虚拟内存中读写数据区域内的全局变量。

按照有向图与标记清除方法,所有的垃圾都可以回收?举例

非也

C程序的Mark&Sweep收集器必须是保守的,其根本原因是C语言不会用类型信息来标记内存位置。因此,像int或者float 这样的标量可以伪装成指针。例如,假设某个可达的已分配块在它的有效载荷中包含一个int,其值碰巧对应于某个其他已分配块b的有效载荷中的一个地址。对收集器而言,是没有办法推断出这个数据实际上是int而不是指针。因此,分配器必须保守地将块b标记为可达,尽管事实上它可能是不可达的。

除了CPU与RAM,计算机还有啥呀?

主板、电源、硬盘(ROM)、光驱、显卡(GPU)、网卡(网络设备)、声卡、调制解调器、软驱(老式电脑)、散热器、显示器、键盘、鼠标(输入输出设备)

CPU、存储器、所有的接口等是否都可以集成到一个芯片里?

单片机可以把微处理器、存储器和I/O接口电路等制作在一块集成电路芯片上

删去了有关CS:APP第十章的内容