Class: Internet & My desk
Website: http://www.cs.berkeley.edu/~kubitron/courses/cs162-F06/ + iTunesU
Text: Operating System Concepts, 7thed
Intro to Op Sys... and why people should study it.
Why study op sys?
Computers getting more powerful, computers are becoming ubiquitous. Gordon Moore says 18mon-3yrs computing power doubles (Moore's Law)
2002 - Moore's law stopped... business panic.
with lots of transistors on a chip, must "tame the forest" of transistors with Op Systems
Cool things like Mars rovers can be done, but they are complex and require lots of transistors thus need an OS to control them.
Pentium 4 processor is small part of IO 'chain' lots of other transistors than just the processor.
If every programmer had to worry about every transistor in each application they create, the complexity is way to large... op systems are needed to abstract the complexity of the hardware so that we avoid this. Mars Rover has unique requirements.
Every Computer is different, each has different gpu/cpu/memory type/etc. Must abstract the specifics about the groups of hardware inside machines... programmers dont want to know specific knowledge of how much RAM, or CPU model number. Single programs should not have to do everything.
Virtual Machine Abstraction
layer an operating system over the hardware in order to:
- Get the operating system to 'fake' the hardware to the applications (ie virtual memory, flash drives access the same as hard drives)
- Give Programmers convience/reliability/security etc... make the "machine" easier to write programs for... make things easier on the programmer... programmer doesn't constantly have to re-do work (not everyone needs to write the graphics driver). Make it easier so that more people write more things.
- Security. Some users shouldn't access vital pieces of hardware
- If more programs run on more hardware, hardware gets cheaper.
- Reduce Bugs
Virtual machines provide, software emulation of abstract machine, programming ease, fault isolution (one program doesn't crash another program or another machine), and portability.
Class will use "Nachos" which is 'simulated hardware' can debug easier using it rather than a real OS.
- Build a threading system
- Implement Multi-threading
- Cache & virtual memory
- networking and distributed systems
- Coordinator - manages resources, prevents errors
- Facilitator - provide libraries (gfx) window systems, make things easier and faster
- Memory Management
- IO Management
- CPU Schedule
- More (file system? multimedia support? user interface? browser?) maybe, maybenot
All the MS operating system did was read the program and put it running into memory... program did everything else.
Address Translation : Translation Map used so that program A doesn't abuse program B's data/code
Kernel Mode vs User Mode : Kernel can do certain things the user cannot