added load balancing to lec 18 notes
[kspaans/CS350] / lec01-0505.tex
1 \documentclass{article}
2 \usepackage{fullpage}
3 \usepackage{amsmath}
4 \author{Kyle Spaans}
5 \date{May 5, 2009}
6 \title{Operating Systems Lecture Notes}
7 \begin{document}
8 \maketitle
9
10 \section*{Lecture 1 -- What is an Operating System?}
11 Prof Salem will talk about administrivia, give a quick introduction to OSes,
12 and then go over Assignment 0. He warns us that CS350 may be tricky because we
13 are starting with a codebase of nearly 16000 lines of code, which is a quite
14 a lot to try and understand. Midterms will be in-class.
15
16 The Operating System manages the running of other programs on the machine. It
17 does this by abstracting details of the hardware, enforcing rules and sharing
18 or resources (bits of hardware), and by giving each program it's own
19 private running environment (``\textbf{process}''). At the end of this course
20 we should understand how programs run on a computer, and how they can run
21 nicely at the same time as other programs on the same machine.
22
23 OSes are naturally concurrent and real-time, since they have to deal with
24 hardware that may be picky about timing and service multiple user processes.
25 We'll spend most of our time talking about the OS kernel, the program that
26 runs in privileged mode, controls the hardware and sets up environments for
27 processes.
28
29 \subsection*{Assignment 0}
30 A0 is just to get us used to \emph{OS161} and \emph{SYS161} before getting into
31 more complicated assignments. \emph{OS161} is the kernel, and \emph{SYS161} is
32 the MIPS machine emulator, that runs MIPS machine language. We can get the
33 CS350 specific toolchain from \texttt{~cs350/sys161/bin}, or download it and
34 compile it ourselves.
35
36 \end{document}