This preview shows page 1. Sign up to view the full content.
Unformatted text preview: oader deletes the child’s existing virtual memory segments, and creates a new set of code, data, heap, and stack segments. The new stack and heap segments are initialized to zero. The new code and data segments are initialized to the contents of the executable ﬁle by mapping pages in the virtual address space to page-sized chunks of the executable ﬁle. Finally, the loader jumps to the start address, which eventually calls the application’s main routine. Aside from some header information, there is no copying of data from disk to memory during loading. The copying is deferred until the CPU references a mapped virtual page, at which point the operating system automatically transfers the page from disk to memory using its paging mechanism. End Aside. Practice Problem 7.5:
A. Why does every C program need a routine called main? B. Have you ever wondered why a C main routine can end with a call to exit, a return statement, or neither, and yet the program still terminates properly? Explain. 7.10 D...
View Full Document