COMP 3000 2011 Week 1 Notes: Difference between revisions

From Soma-notes
Gbooth (talk | contribs)
Gbooth (talk | contribs)
Line 16: Line 16:


'''Kernels''': on Android, dvr, home router, servers, the cloud (amazon, facebook, google...)
'''Kernels''': on Android, dvr, home router, servers, the cloud (amazon, facebook, google...)
==Program Interaction==
How do programs not "step" on each other? To do this, a programs ability to refer to other programs needs to be taken away. In other words, separate programs must be unable to read and write to each other.
On every memory access call, to see what physical address the call corresponds to, a table lookup is used.
'''Virtual Memory''': each program has its own copy of memory, it's own "address space", so it can't access other programs address space
'''Virtualization''': treat the OS kernel like a regular program
'''Paravirtualization''': modify the OS kernel so it acts like a regular program (done by taking out its privileges)
'''Hypervisor''': run multiple kernels with a new "super-kernel" that rules over the other kernels
Paravirutalization and using a hypervisor add layers of interaction to the OS (multiple table lookups of address spaces).

Revision as of 13:54, 19 October 2011

Basics

Complexity: computers are complicated, big, fast etc.

UNIX: made to share a computer between multiple people

Need to share:

  1. Disc files: block interface abstraction
  2. Memory: divide it up (virtual memory)
  3. CPU: take turns and cut of those that are being hogs
  4. Network: divide communication into packets (identify with IP for computer and port for the program)

OS: set of code to change computer you have into the computer you want to program, provides a virtual/abstract machine to program hardware (certain abstractions imply certain implementation strategies)

Linux

Kernels: on Android, dvr, home router, servers, the cloud (amazon, facebook, google...)

Program Interaction

How do programs not "step" on each other? To do this, a programs ability to refer to other programs needs to be taken away. In other words, separate programs must be unable to read and write to each other.

On every memory access call, to see what physical address the call corresponds to, a table lookup is used.

Virtual Memory: each program has its own copy of memory, it's own "address space", so it can't access other programs address space

Virtualization: treat the OS kernel like a regular program

Paravirtualization: modify the OS kernel so it acts like a regular program (done by taking out its privileges)

Hypervisor: run multiple kernels with a new "super-kernel" that rules over the other kernels

Paravirutalization and using a hypervisor add layers of interaction to the OS (multiple table lookups of address spaces).