halway done lecture 2 notes
authorKyle Spaans <kspaans@student.math.uwaterloo.ca>
Thu, 7 May 2009 18:54:18 +0000 (14:54 -0400)
committerKyle Spaans <kspaans@student.math.uwaterloo.ca>
Thu, 7 May 2009 18:54:18 +0000 (14:54 -0400)
lec02-0507.tex [new file with mode: 0644]

diff --git a/lec02-0507.tex b/lec02-0507.tex
new file mode 100644 (file)
index 0000000..c0d6cd2
--- /dev/null
@@ -0,0 +1,33 @@
+\documentclass{article}
+\usepackage{fullpage}
+\usepackage{amsmath}
+\author{Kyle Spaans}
+\date{May 7, 2009}
+\title{Operating Systems Lecture Notes}
+\begin{document}
+\maketitle
+
+\section*{Lecture 2 -- Threads}
+Remember that the \emph{OS161} source code can be browsed online from the
+course website. A1 should be released today or tomorrow.
+
+Some MIPS specific details relevant to us: All 32 registers have conventional
+uses (arguments, stack pointers, return addresses, scratch values, saved
+values), and these conventions are followed by the compiler and all of the
+source code. In our MIPS architecture, the stack grows downwards towards
+memory address \texttt{0x0}.
+
+\subsection*{What are threads?}
+What is the context a program's execution? It's the various special and general-
+purpose registers as well as the contents of memory: data and code stored in the
+heap and stack. The idea is that a thread captures all of this data in such a
+way that we could pause and resume any given thread if we wanted to. This
+allows us to have multiple threads executing at the ``same time'', even if
+there are fewer processor cores than threads.
+
+\subsection*{Implementing Threads}
+We need a thread library in order to implement threads (can be implemented in
+the kernel or outside of it, we are given a kernel implementation). It is made
+up of the code to save and restore registers 
+
+\end{document}