Stack at the top of the users virtual address space

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

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 difficult 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

This note was uploaded on 09/02/2010 for the course ELECTRICAL 360 taught by Professor Schultz during the Spring '10 term at BYU.

Ask a homework question - tutors are online