COMP 3000 2011 Week 3 Notes: Difference between revisions

From Soma-notes
Caesar (talk | contribs)
Caesar (talk | contribs)
 
Line 14: Line 14:
'''Emulation vs. Virtualization'''
'''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
'''Emulation''': mimicing the original hardware that something ran 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

Latest revision as of 20:52, 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 ran 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.