CSAPP translation summary (C/N) page 15

堆(heap):代码和数据后紧随着的是运行时堆(run-time heap). 代码和数据区在进程一开始运行时就被指定了大小,调用C标准库函数时,堆可以在运动时动态的扩展和收缩(contracts ).

Heap:code and data followed run-time head.  code and data fixed in size at the process begins running, when it calls to C standard library routines, it can expans and constracts and run time as a result.


共享库:大约在地址空间的中间部分是一块用来存放像C标准库和数学库这样的共享的代码和数据的区域.

Shared libraries: near the middle of the address spance is an area that holds the code and data for shared libraries area such as the C standard library and math library.


栈(stack):位于用户虚拟地址空间顶部的是用户栈, 编译器(compiler )用它来实现(implement )函数的调用. 和堆(heap )一样,用户栈在程序执行期间可以动态地(dynamically 扩展和收缩(contracts ). 每当我们调用一个函数,栈就会增长; 从一个函数返回时,栈就会收缩.

Stack: at the top of the user virtual address space is the user stack, compiler use it implement calls function. Seems heap, user stack during the running program can dynamically expands and contracts . when we return from a function, the stack grows. When the return from a function, it contracts .


内核虚拟内存:地址空间顶部的区域是为内核保留的.允许应用程序读写这个区域的内容或者直接调用内核代码定义的函数. 相反,它们必须调用内核来执行这些操作.

Kernel virtual memory:The top region of the address space is reserved for the kernel. Application programs are not allowed to read or write the contents of this area or to directly call functions defifined in the kernel code.

 

 


虚拟内存的运作需要硬件和操作系统软件之间精密复杂的(sophisticated )交互,包括对处理器生成的每个地址的硬件编译. 基本思想是把一个进程虚拟内存的内容存储在磁盘上,然后用主存作为磁盘的高速缓存.

For virtual memory to work, a sophisticated interaction is required between

the hardware and the operating system software, including a hardware translation

of every address generated by the processor. The basic idea is to store the contents

of a process’s virtual memory on disk, and then use the main memory as a cache for the disk.

你可能感兴趣的:(CSAPP translation summary (C/N) page 15)