COMP 3000 2011 Week 3 Notes: Difference between revisions
Created page with "==Virtualization Basics== ===DLLs=== * For libraries at runtime, library requests are built into the program binary. * ''proc/pid'': structure of process ''proc'' with process …" |
|||
Line 14: | Line 14: | ||
'''Emulation vs. Virtualization''' | '''Emulation vs. Virtualization''' | ||
'''Emulation''': mimicing the original hardware that something | '''Emulation''': mimicing the original hardware that something run on and how it worked. This is used to run code that is ''not native'' to your processor | ||
'''Virtualization''': running code that you would be able to run regardless as the code is ''native'' to your processor | '''Virtualization''': running code that you would be able to run regardless as the code is ''native'' to your processor | ||
===Definitions=== | ===Definitions=== |
Revision as of 20:51, 18 December 2011
Virtualization Basics
DLLs
- For libraries at runtime, library requests are built into the program binary.
- proc/pid: structure of process proc with process ID pid
- /mmap: map file into into memory (only load parts of file as the process loads them and don't load multiple copies of the file)
- /maps: what files have been mmapped into a process' address space
Xen and the Art of Virtualization
Paravirtualization: an answer to how to run an OS (kernel) as a regular program--this is mainly done by modifying the kernel to strip it of its privileges (another answer to this is to use a hypervisor)
Emulation vs. Virtualization
Emulation: mimicing the original hardware that something run on and how it worked. This is used to run code that is not native to your processor
Virtualization: running code that you would be able to run regardless as the code is native to your processor
Definitions
Kernel: part of the OS in charge of hardware; the middleman between programs and hardware. The kernel is the first part of the OS that runs, therefore it takes the power and privileges that come with running furst (running in supervisor mode). The kernel is meant to multiplex between applications.
Hypervisor: an OS kernel can be superceded by a hypervisor. The hypervisor runs in hypervisor mode and is meant for multiplexing between kernels.
Concurrency: when several computations are executing simultaneously, and possibly interacting with each other, in a system. Usually no one wants to deal with the concurrency part of the kernel.
Threads vs. Processes
Thread: an execution context in an address space. Multiple threads can share the same address space (i.e. be contained in the same process) and can all interact on shared data.
Process: an address space that can contain one or more execution context (i.e. threads). Each process has its own address space.