Course Introduction: Why should you care about the OS?
CS 321 Lecture,
Dr. Lawlor, 2006/01/20
Talk about syllabus, do a course survey on prerequisites. Announce HW1 on the PC bootloader.
The OS is what gets your computer out of bed in the morning
- Boot sequence (PC BIOS)
- POST: the Power-On Self Test. "Sanity check"
- Figure out what kind of hardware you've got
- Figure out how to talk to it
- Find & start the operating system
- Hardware interfacing (you really don't want to figure out how to talk to your printer. Really.)
- Talk to displays, mice, disks, printers, USB keydrives, sound
cards, TV cards, ethernet cards, wireless cards, radio reception
hardware, fan speed controllers, noise generation hardware, terminal
concentrators, and REALLY weird stuff.
The OS can make your life a lot easier!
We'll be covering a bunch of techniques that can use the OS for weird and crazy stuff to make programs faster or simpler:
- Hardware interfacing
- Diverse hardware, uniform interface (that's the idea, at least...)
- Memory interfacing
- Virtual memory paging
- Cache control
- Direct hardware access
- Concurrency
- Processes
- Signals
- Events
- Kernel threads
- User-level threads
The OS can make your life miserable!
If your code isn't at least somewhat aware of how the OS works, the OS can interfere with your program:
- Timeslicing for multiprogramming can screw up your program's timing
- Paging for virtual memory can bring the machine to a standstill
- Hardware protection can keep your program from getting at the hardware it needs