Mechanics and Introduction
Tom Kelliher, CS 318
Jan. 21, 1998
Typo on the syllabus: MWF office hour is 10:30.
Read Chapters 1-2.
- Objectives:
- Study operating system design.
- Understand threads and concurrency: Banking example.
- Appreciate connections to other areas of computer science.
- C++ refresher project.
- Internet resources.
- Nachos project orientation. Project groups.
- Late assignment policy.
- Class preparation.
- Topic outline and its relationship to Nachos. Possibilities for
Other topics: deadlock, distributed systems, security and protection.
(Process = running program. Separate address spaces. Threads share an
address space.)
- Top-down view: virtual machine abstraction --- convenient ``user''
interface. Abstractions: files, applications. I/O devices integrated into
filesystem.
- Bottom-up view: management of real resources: CPU cycles, memory, disk
space, device allocations.
- Secondary concerns: efficiency, fairness.
Abstractions:
- Multiprogramming, protection and security.
- Virtual memory.
- File systems.
- Hardware: CPU, memory, I/O.
- Operating system: kernel, file system, device handlers.
- Application programs: editors, compilers, workbench tools.
- Users: people, other programs, computers.
The ``Hello world'' program:
- Compiled into assembly code.
- Assembled in machine code.
- Written to a file.
- Loaded into memory.
- Linked against system libraries.
- Executes.
- Makes supervisor calls to access I/O devices through OS.
- Common device drivers:
- Reinventing the wheel.
- Abstract I/O device interface for software.
- Resident monitors:
- Keep expensive hardware utilized.
- Automatic job sequencing --- compile, run user program.
- Monitor is always resident in memory.
Protection?
- System parallelism:
- Overlap processing of one job with I/O of another.
- Off-line processing (card to tape, vice versa).
- Spooling.
- Multiprogramming (batch):
- Overlap processing yields multiple jobs in memory simultaneously
--- job pool.
- CPU idle when job does I/O.
- Automatically switch (CPU scheduling) to ``next'' job.
- Job runs until completion or I/O.
- Protection?
- Timesharing:
- Batch systems aren't productive for program development.
- Preemptive CPU scheduling.
- Brief quantum for each process.
- Response time important.
- Realtime systems:
- Hard deadlines for process completion.
- Example: flight surface control on the Space Shuttle.
- Workstations:
- Essentially, a single-user computer.
- Mainframe features trickle down.
- Why multiprogram a workstation?
- Increase productivity.
- Allows modular system design --- consider the windows in a GUI.
- Parallel processing:
- Tightly coupled multiprocessors.
- Shared memory space.
- CPU scheduling issues.
- Working set locality.
- Finding parallelism opportunities within a problem.
- Distributed systems:
- Loosely-coupled, independent systems.
- Private memory spaces.
- Client/server computing.
- Reliability, resource sharing, load balancing, communication,
transparency.
- Granularity of parallelism.
- Network Latency.
Thomas P. Kelliher
Wed Jan 21 08:50:39 EST 1998
Tom Kelliher