Introduction to operating systems design and evaluation. Computer software systems performace, robustness, and functionality. Kernel structure, bootstrapping, input/output(I/O) devices and interrupts. Processes and threads; address spaces, memory management and virtual memory. Scheduling, synchronization. File systems: layout, performance, robustness. Distributed systems: networking, remote procedure call (RPC), asynchronous RPC, distributed file systems, transactions. Protection and security. Exercises involving applications using, and internals of, real-world operating systems. Leter grading.
Name | Fraction of Grade | Comments |
---|---|---|
1 Midterm | 1/9 |
|
1 Final | 2/9 |
|
4 Labs | 1/12 (each) |
|
2 Mini-labs | 1/15 (each) |
|
1 Design Problem | 1/12 |
|
1 Research Survey | 1/15 |
|
1 Scribe Notes | 1/20 |
|
An assignment turned in N days after the due date, 2(N-1) points will be subtracted from the assignment grade. That means that an assignment 1 day late will lose 1 point, an assignment 2 days late will lose 2 points, an assignment 3 days late will lose 4 points, and so on. However, the one exception to this is that all assignments must be turned in by Friday of tenth week. Afterwards no more assignments will be accepted for a grade.
Principles of Computer System Design by Jerome H. Saltzer and M. Frans Kaashoek
Official Time | Actual Time |
---|---|
Lecture - 4 Hours | Lecture - 3.6 Hours |
Lab - 2 Hours | Lab - 1.7 Hours |
Outside Study - 9 Hours | Outside Study - 20 Hours |
For Lab 1, we will be focused on reimplementing the shell. We attempt to parallelize the shell and have it execute two independent instructions at the same time. It is divided into 3 parts, 1a, 1b, and 1c. For part 1a (due Weds. 4/10) we will focus on writing the command reader. For part 1b we will focus on writing the standard execution model. For part 1c we will focus on writing the time-traveling mechanism.
A System is a[n]...
A system is a set of interconnected components that has a specified behaviour observed at the interface with its environment.
Software designed to control the behaviour of a specific data processing system in order to allow users and application programs to make use of this.
The master control program in a computer...
Collection of software that manages computer hardware resources and provides common services for computer programs.
From the above definitions we can observe how the operating system has evolved from being a controller or master between the Users and Applications to being more of a servant or manager.
When improving one property will negatively affect another property. Also known as the "Waterbed Effect"
Say there was an array that contained 10^7 items and each item was 100 bytes. The fastest way to sort the array would be Merge Sort, but Merge Sort would also require the most memory to sort through the whole array. An alternative would be to use Quicksort, but Quicksort has the unfortunate side effect of having the time complexity of n^2 if a bad pivot element is chosen. Therefore we can observe how we can either improve execution time while increasing the memory needed or we can improve the amount of memory used at the sake of sacrificing execution time. This is a prime example of a tradeoff.
Not everything in your system scales at the same rate
Two types of scaling
When college dorms first received high speed internet around 1995, everybody thought that it marked a great milestone for the productivity of students who lived on campus. With the internet, many students had at their fingertips an almost unlimited amount of online resources such as research papers and case studies. However the students misused the internet and began to download pirated materials. The vast amount of shared pirated material was an unforseen circumstance to college dorms receiving high speed internet.
Engineers have built bridges that could withstand hurricane-level winds, earthquakes, and other natural disasters. However when the Tacoma Narrows Bridge was built, no bridge of its size had ever been built before. Therefore the engineers did not forsee that the wind could match the resonant frequency of the bridge. Due to this unanticipated property, the bridge was destroyed by winds in 1940.
Natural property of a chaotic system where a small effect in one part of the system results in large ramifications in another unrelated part of the system.
Microsoft Does Japanese Character EncodingThe English language is small enough that all of its characters can be encoded by using one byte of information. With a large, symbolic language like japanese, one byte is not big enough to store all of its characters. Therefore Microsoft decided to use two bytes of data to encode all of its japanese characters. If the first bit of any byte was switched on, this would mean that the computer would read the current byte as an extension of the data from the previous byte. Unfortunately, this functionality was completely independent from the Windows module that parsed filenames (e.g. C:\Desktop\).
Since the parser was not aware of the functionality of the new encoding, if someone attempted to copy a file to a directory, and the directory was written using the japanese multibyte encoding, a mysterious error could potentially appear. The screen would display "no directory named \usr\bin\[?]". If the bits in the second byte managed to form a '\', then the filesystem would get confused and think that the user was trying to copy a file to a directory that doesn't exist.
In order to solve this problem, Microsoft had to change its kernel to deal with the new-found issues of multibyte encoding.