This preview shows page 1. Sign up to view the full content.
Unformatted text preview: expands and contracts dynamically at runtime as a result of calls to C standard library routines such as malloc and free. We will study heaps in detail when we learn about managing virtual memory in Chapter 10. Shared libraries. Near the middle of the address space is an area that holds the code and data for shared libraries such as the C standard library and the math library. The notion of a shared library is a powerful, but somewhat difﬁcult concept. We will learn how they work when we study dynamic linking in Chapter 7. Stack. At the top of the user’s virtual address space is the user stack that the compiler uses to implement function calls. Like the heap, the user stack expands and contracts dynamically during the 1.7. THE OPERATING SYSTEM MANAGES THE HARDWARE
memory invisible to user code 15 0xffffffff 0xc0000000 kernel virtual memory user stack (created at runtime) 0x40000000 memory mapped region for shared libraries printf() function run-time heap (created at runtime by malloc) read/write data read-only code and data
0x08048000 0 loaded from the hello executable file unused Figure 1.13: Linux process vir...
View Full Document