Lecture 1 - CS 402 Class Overview and Rules

Times and places

Classes

Academic Integrity

Grading

Project

Exams

Text

Communications

A Little History

This is a flying tour; Tannenbaum does a good job covering this information.

In the earliest computers, what we call the OS today was primarily a set of input/output routines so that scientists didn't need to learn the ins and outs of each new disk drive.

CPUs are expensive, and they spend a lot of time idle. Timesharing is born to share this expensive resource between multiple users. Still the systems are batch systems - users (physically) submit their jobs, they are queued and run overnight, and users receive output (physically). Multiple jobs take turns with the CPU swapping off after a given time or when the CPU does I/O. Sometimes mainframe computers have specialized "I/O processors," really separate computers, to run the peripherals. (More about this later)

Eventually (mid-1960's-1970's)computers become interactive - waiting overnight to get your compiler errors really sucks. Interactive timesharing brings more changes to the systems, not the least of which is user interfaces. With users appearing and disappearing, all the resource allocations become more dynamic. The increasing complexity of these systems contributed to the development of Software Engineering as a discipline.

The 1980's see widespread deplyoment of small computers. User interface becomes key. Multiprocessors become more common. The world has gone from many people per processor to many processors per person. Distributed applications are real (many computers working on the same problem), e.g., SETI.

As we'll see all of this leads to a complexity of OS that is interesting in it's own right, and worthwhile even if you don't program OS.

Definitions

An Operating System provides

Huh? What resources? What's a Virtual machine?

Computer Organization

The OS is not an application program: it must manipulate the physical hardware of the machine. A computer consists of a CPU, associated processing units, peripherals and interconnection systems.

figure

What are these things?

CPU

The CPU runs computations - solves differential equations, balances checkbooks, does ballistics for games. It's "the computer". It has some direct helpers:

The CPU operates in 2 modes: supervisor mode (all instructions can be executed and all memory accessed) and user mode (restricted subsets of both). Most programs run in user mode. Changing to supervisor mode is only done under controlled circumstances.

The CPU can also be in interrupt mode, which we discuss below.

Interrupts and Traps

Interrupts are asynchronous events from other elements of the system (timers, disk drives). The interrupt structure of the machine lets the CPU determine what element caused the interrupt and how important it is. Common mechanisms are interrupt vectors (causes) and interrupt priorities (importance).

When an interrupt occurs the CPU

Traps are software interrupts. They're used to access OS services.


Converted from groff by Ted Faber
Please mail me any problems or comments.