JOS~\cite{1088822}, or Yalnix~\cite{1088822}
we believe that it is unique in two
aspects. First, Pintos runs on both real hardware and in emulated and
-simulated environments.~\footnote{GeekOS claims to also run on real hardware, it requires,
+simulated environments.\footnote{GeekOS claims to also run on real hardware, it requires,
however, a dedicated disk and does not support running off USB devices, making
it impractical for many lab settings.}
Second, we have created a set of analysis tools
mistakes such as race conditions. Figure~\ref{fig:pintosenvs} shows
the three environments in which the same kernel can be run.
+Others have used Linux, either on dedicated devices (e.g., iPodLinux~\cite{1352199}),
+or in virtualizated environments~\cite{1008027,1352648,Nieh2005Experiences}, to provide
+an internal, concrete perspective. Compared to those approaches, Pintos provides
+a similar level of realism to students in that they can see the result of their
+work on concrete or virtualized hardware, but does not require that students
+understand the often arcane and ill-documented interfaces of the Linux kernel,
+which were not designed from an educational perspective.
+
This paper reports on the design philosophy that underlies Pintos,
details its structure, and outlines the nature and learning goals of each
assignments.
\pintosdetailfigure{}
-To be discussed:
-User-Mode Linux\cite{1008027}
-iPodLinux~\cite{1352199}
-Linux in VM\cite{Nieh2005Experiences}
-
% Challenges.
% How to embed principles?
% How to teach software engineering?
% Realism vs. Simplification
+
+%User-Mode Linux\cite{1008027}
+%Virtualization\cite{1352648}
+%Linux in VM\cite{Nieh2005Experiences}
+
Since these tools do not require additional support from the Pintos kernel;
students can use them without complicating their code.
-Data races are found by using a semaphore-aware modification of the RaceTrack algorithm~\cite{RaceTrack}.
+Data races are found by using a semaphore-aware modification of the RaceTrack algorithm~\cite{Yu2005RaceTrack}.
Calls to Pintos's synchronization primitives are instrumented at runtime to track every thread's data
sharing pattern. Meanwhile, every memory access records synchronization information to shadow memory
maintained by the analysis tool. When the synchronization information for a memory address
%
% This file is automatically generated by citeulike.org
%
+@inproceedings{Yu2005RaceTrack,
+ address = {New York, NY, USA},
+ author = {Yu, Yuan and Rodeheffer, Tom and Chen, Wei },
+ booktitle = {SOSP '05: Proceedings of the twentieth ACM symposium on Operating systems principles},
+ citeulike-article-id = {2373000},
+ doi = {10.1145/1095810.1095832},
+ isbn = {1595930795},
+ pages = {221--234},
+ posted-at = {2008-08-29 13:59:10},
+ priority = {2},
+ publisher = {ACM},
+ title = {RaceTrack: efficient detection of data race conditions via adaptive tracking},
+ url = {http://portal.acm.org/citation.cfm?id=1095810.1095832},
+ year = {2005}
+}
+
+
+
+@article{1352648,
+ address = {, USA},
+ author = {Gaspar, Alessio and Langevin, Sarah and Armitage, William D. and Rideout, Matt },
+ citeulike-article-id = {3170970},
+ journal = {J. Comput. Small Coll.},
+ number = {5},
+ pages = {123--132},
+ posted-at = {2008-08-29 02:42:41},
+ priority = {2},
+ publisher = {Consortium for Computing Sciences in Colleges},
+ title = {March of the (virtual) machines: past, present, and future milestones in the adoption of virtualization in computing education},
+ volume = {23},
+ year = {2008}
+}
+
+
+
@inproceedings{1352201,
address = {New York, NY, USA},
author = {Brylow, Dennis },