Operating Systems (Fall 2017): Difference between revisions

From Soma-notes
No edit summary
 
(38 intermediate revisions by 2 users not shown)
Line 24: Line 24:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 1|Lecture 1]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/intro.pdf Introduction]
       <p>[[Operating Systems 2017F Lecture 1|Lecture 1]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/intro.pdf Introduction]
       </p>
       </p>
       </td>
       </td>
Line 34: Line 34:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 2|Lecture 2]]: (Video only) [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-intro.pdf Processes], [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-api.pdf Process API]
       <p>[[Operating Systems 2017F Lecture 2|Lecture 2]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-intro.pdf Processes], [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-api.pdf Process API]
       </p>
       </p>
       </td>
       </td>
Line 44: Line 44:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 3|Lecture 3]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-mechanisms.pdf Limited Direct Execution], [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched.pdf CPU Scheduling], [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-mlfq.pdf MLFQ]  </p>
       <p>[[Operating Systems 2017F Lecture 3|Lecture 3]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-mechanisms.pdf Limited Direct Execution], [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched.pdf CPU Scheduling], [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-mlfq.pdf MLFQ]  </p>
       </td>
       </td>
     </tr>
     </tr>
Line 53: Line 53:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 4|Lecture 4]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-intro.pdf Address Spaces], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-api.pdf Memory API]
       <p>[[Operating Systems 2017F Lecture 4|Lecture 4]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-intro.pdf Address Spaces], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-api.pdf Memory API]
       </p>
       </p>
       </td>
       </td>
Line 63: Line 63:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 5|Lecture 5]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-disks.pdf Hard Disk Drives], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-intro.pdf File and Directories]
       <p>[[Operating Systems 2017F Lecture 5|Lecture 5]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-disks.pdf Hard Disk Drives], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-intro.pdf File and Directories]
       </p>
       </p>
       </td>
       </td>
Line 73: Line 73:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 6|Lecture 6]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-devices.pdf I/O Devices], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-journaling.pdf FSCK and Journaling]
       <p>[[Operating Systems 2017F Lecture 6|Lecture 6]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-devices.pdf I/O Devices], [http://pages.cs.wisc.edu/~remzi/OSTEP/file-journaling.pdf FSCK and Journaling]
       </p>
       </p>
       </td>
       </td>
Line 83: Line 83:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 7|Lecture 7]]</p>
       <p>[[Operating Systems 2017F Lecture 7|Lecture 7]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-implementation.pdf File System Implementation]</p>
       </td>
       </td>
     </tr>
     </tr>
Line 92: Line 92:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 8|Lecture 8]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/file-implementation.pdf File System Implementation]
       <p>[[Operating Systems 2017F Lecture 8|Lecture 8]]: Assignment/Tutorial help session (Akhil)</p>
      </p>
       </td>
       </td>
     </tr>
     </tr>
Line 102: Line 101:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 9|Lecture 9]] (first half), Test 1 (in class)</p>
       <p>[[Operating Systems 2017F Lecture 9|Lecture 9]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-intro.pdf Concurrency and Threads], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-locks.pdf Locks]</p>
       </td>
       </td>
     </tr>
     </tr>
Line 111: Line 110:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 10|Lecture 10]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-intro.pdf Concurrency and Threads], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-locks.pdf Locks],
       <p>[[Operating Systems 2017F Lecture 10|Lecture 10]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-locks-usage.pdf Concurrent Data Structures], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-sema.pdf Semaphores]
       </p>
       </p>
       </td>
       </td>
Line 121: Line 120:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 11|Lecture 11]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-mechanism.pdf Address Translation], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-tlbs.pdf TLBs]
       <p>[[Operating Systems 2017F Lecture 11|Lecture 11]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-mechanism.pdf Address Translation], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-tlbs.pdf TLBs]</p>
      </p>
       </td>
       </td>
     </tr>
     </tr>
Line 131: Line 129:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 12|Lecture 12]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-segmentation.pdf Segmentation], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-freespace.pdf Free space management]
       <p>[[Operating Systems 2017F Lecture 12|Lecture 12]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-segmentation.pdf Segmentation], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-freespace.pdf Free space management]</p>
      </p>
       </td>
       </td>
     </tr>
     </tr>
Line 141: Line 138:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 13|Lecture 13]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-paging.pdf Paging]</p>
       <p>[[Operating Systems 2017F Lecture 13|Lecture 13]]: [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-paging.pdf Paging]</p>
       </td>
       </td>
     </tr>
     </tr>
Line 150: Line 147:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 14|Lecture 14]]: pH</p>
       <p>[[Operating Systems 2017F Lecture 14|Lecture 14]]: Midterm Review</p>
       </td>
       </td>
     </tr>
     </tr>
Line 159: Line 156:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 15|Lecture 15]]
       <p>[http://homeostasis.scs.carleton.ca/~soma/os-2017f/comp3000-midterm-2017f.pdf Midterm Exam] [http://homeostasis.scs.carleton.ca/~soma/os-2017f/comp3000-midterm-2017f-solutions.pdf (Solutions)]
       </p>
       </p>
       </td>
       </td>
Line 169: Line 166:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 16|Lecture 16]]: Kernel modification walkthrough
       <p>[[Operating Systems 2017F Lecture 15|Lecture 15]]
       </p>
       </p>
       </td>
       </td>
Line 179: Line 176:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 17|Lecture 17]]: Graphics
       <p>[[Operating Systems 2017F Lecture 16|Lecture 16]]: newgetpid.c
       </p>
       </p>
       </td>
       </td>
Line 189: Line 186:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 18|Lecture 18]]: Device Drivers
       <p>[[Operating Systems 2017F Lecture 17|Lecture 17]]
       </p>
       </p>
       </td>
       </td>
Line 199: Line 196:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 19|Lecture 19]]: Cloud Computing
       <p>[[Operating Systems 2017F Lecture 18|Lecture 18]]
       </p>
       </p>
       </td>
       </td>
Line 209: Line 206:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 20|Lecture 20]] (first half), Test 2 (second half)
       <p>[[Operating Systems 2017F Lecture 19|Lecture 19]]
       </p>
       </p>
       </td>
       </td>
Line 219: Line 216:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 21|Lecture 21]]: Research
       <p>No Class (US Thanksgiving)
       </p>
       </p>
       </td>
       </td>
Line 229: Line 226:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 22|Lecture 22]]: Security and malware
       <p>[[Operating Systems 2017F Lecture 20|Lecture 20]]
       </p>
       </p>
       </td>
       </td>
Line 239: Line 236:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 23|Lecture 23]]: Other Operating Systems
       <p>[[Operating Systems 2017F Lecture 21|Lecture 21]]
       </p>
       </p>
       </td>
       </td>
Line 249: Line 246:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 24|Lecture 24]]: The Future
       <p>[[Operating Systems 2017F Lecture 22|Lecture 22]]
       </p>
       </p>
       </td>
       </td>
Line 259: Line 256:
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F Lecture 24|Lecture 24]]: The Future
       <p>[[Operating Systems 2017F Lecture 23|Lecture 23]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Dec. 14, 1-2 PM, 3-4 PM
      </p>
      </td>
      <td>
      <p>[[Operating Systems 2017F Final Questions/Answers|Question/Answer Session (optional)]], LA C164
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Dec. 17, 7 PM
      </p>
      </td>
      <td>
      <p>Final Exam, AH rows 25-36
       </p>
       </p>
       </td>
       </td>
     </tr>
     </tr>
</table>
</table>
Other chapters: [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-lottery.pdf Lottery Scheduling], [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-multi.pdf Multi-CPU scheduling], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-locks-usage.pdf Concurrent Data Structures], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-api.pdf Thread API], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-cv.pdf Condition Variables], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-sema.pdf Semaphores], [http://pages.cs.wisc.edu/~remzi/OSTEP/threads-bugs.pdf Concurrency Problems], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-smalltables.pdf Smaller Tables] , [http://pages.cs.wisc.edu/~remzi/OSTEP/file-ffs.pdf FFS], [http://pages.cs.wisc.edu/~remzi/OSTEP/dist-intro.pdf Distributed Systems], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-beyondphys.pdf Swapping: Mechanisms], [http://pages.cs.wisc.edu/~remzi/OSTEP/vm-beyondphys-policy.pdf Swapping: Policies], [http://pages.cs.wisc.edu/~remzi/OSTEP/dist-nfs.pdf NFS], [http://pages.cs.wisc.edu/~remzi/OSTEP/dist-afs.pdf AFS]


==Tutorials==
==Tutorials==
Line 282: Line 297:
     <tr>
     <tr>
       <td>
       <td>
       <p>Sept. 18,22
       <p>Sept. 18,20
      </p>
      </td>
      <td>
      <p>[[Operating Systems 2015F: Tutorial 1|UNIX Introduction]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Sept. 25, 29
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F: Tutorial 2|Device files, filesystems, and kernel modules]]
       <p>[[Operating Systems 2017F: Tutorial 1|Processes and System Calls]]
       </p>
       </p>
       </td>
       </td>
Line 302: Line 307:
     <tr>
     <tr>
       <td>
       <td>
       <p>Oct. 2, 6
       <p>Sept. 25, 27
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F: Tutorial 3|kernel modules and using the source]]
       <p>[[Operating Systems 2017F: Tutorial 2|3000shell.c]]
       </p>
       </p>
       </td>
       </td>
Line 312: Line 317:
     <tr>
     <tr>
       <td>
       <td>
       <p>Oct. 9, 13
       <p>Oct. 2, 4
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F: Tutorial 4|Filesystem concurrency]]
       <p>[[Operating Systems 2017F: Tutorial 3|3000test.c]]
       </p>
       </p>
       </td>
       </td>
Line 322: Line 327:
     <tr>
     <tr>
       <td>
       <td>
       <p>Oct. 16, 20
       <p>Oct. 16, 18
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F: Tutorial 5|Openstack]]
       <p>[[Operating Systems 2017F: Tutorial 4|3000pc.c]]
       </p>
       </p>
       </td>
       </td>
Line 332: Line 337:
     <tr>
     <tr>
       <td>
       <td>
       <p>Oct. 23, Nov. 3
       <p>Nov. 6, 8
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F: Tutorial 6|Catch up/Project help]]
       <p>[[Operating Systems 2017F: Tutorial 5|Filesystems and kernel modules]]
       </p>
       </p>
       </td>
       </td>
Line 342: Line 347:
         <tr>
         <tr>
       <td>
       <td>
       <p>Nov. 6, 10
       <p>Nov. 13, 15
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F: Tutorial 7|Modifying system calls]]
       <p>[[Operating Systems 2017F: Tutorial 6|newgetpid.c]]
       </p>
       </p>
       </td>
       </td>
Line 352: Line 357:
     <tr>
     <tr>
       <td>
       <td>
       <p>Nov. 13, 17
       <p>Nov. 20, 22
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F: Tutorial 8|kprobes, calling userspace]]
       <p>[[Operating Systems 2017F: Tutorial 7|FUSE]]
       </p>
       </p>
       </td>
       </td>
Line 363: Line 368:
     <tr>
     <tr>
       <td>
       <td>
      <p>Nov. 20, 24
       <p>Nov. 27, 29
      </p>
      </td>
      <td>
      <p>[[Operating Systems 2015F: Tutorial 9|Kernel map, projects]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
       <p>Nov. 27, Dec. 1
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2014F: Tutorial 10|Projects]]
       <p>[[Operating Systems 2017F: Tutorial 8|sshfs]]
       </p>
       </p>
       </td>
       </td>
Line 395: Line 390:
     <tr>
     <tr>
       <td>
       <td>
       <p>Sept. 23
       <p>Oct. 12, 1 PM
      </p>
      </td>
      <td>
      <p>[[Operating Systems 2015F: Assignment 1|Assignment 1]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Sept. 30
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F: Assignment 2|Assignment 2]]
       <p>[[Operating Systems 2017F: Assignment 1|Assignment 1]]
       </p>
       </p>
       </td>
       </td>
Line 415: Line 400:
     <tr>
     <tr>
       <td>
       <td>
       <p>Oct. 6
       <p>Oct. 26
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F: Assignment 3|Assignment 3]]
       <p>[[Operating Systems 2017F: Assignment 2|Assignment 2]]
       </p>
       </p>
       </td>
       </td>
Line 425: Line 410:
     <tr>
     <tr>
       <td>
       <td>
       <p>Nov. 5
       <p>Nov. 26
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F: Assignment 4|Assignment 4]]
       <p>[[Operating Systems 2017F: Assignment 3|Assignment 3]]
       </p>
       </p>
       </td>
       </td>
Line 435: Line 420:
     <tr>
     <tr>
       <td>
       <td>
       <p>Nov. 18
       <p>Dec. 7, 1 PM
       </p>
       </p>
       </td>
       </td>
       <td>
       <td>
       <p>[[Operating Systems 2015F: Assignment 5|Assignment 5]]
       <p>[[Operating Systems 2017F: Assignment 4|Assignment 4]]
       </p>
       </p>
       </td>
       </td>
Line 447: Line 432:
==Course Software==
==Course Software==


In this course we will primarily working with [http://www.ubuntu.com/ Ubuntu], a widely-used family of Linux distributions. We will be using its [http://www.lubuntu.net/ Lubuntu] variant in Virtualbox earlier in the term; later on we will transition to using Ubuntu Server on the SCS's [http://openstack.scs.carleton.ca/ Openstack installation] (accessible only from the Carleton network).
In this course we will primarily working with [http://www.ubuntu.com/ Ubuntu], a widely-used family of Linux distributions.   We will be using Ubuntu Server on the SCS's [http://openstack.scs.carleton.ca/ Openstack installation] (accessible only from the Carleton network).
 
You may use other Linux distributions to complete the assigned work and do your project; there will be differences, however, in some aspects (such as installing software), particularly if you use a distribution not based on Ubuntu or Debian.
 
===Using Virtualbox in the labs===
 
In the SCS labs you should be able to run the course VM by starting Virtualbox (listed in the Applications menu) and selecting the COMP 2406/3000 virtual machine image.  After the VM has fully booted you will be automatically logged into the student account; this account has admin privileges and its password is "tneduts!".
 
We highly recommend running your VM in full-screen mode (select from the menu, not by maximizing the window).  Do all of your work inside of the VM; it should be fast enough and you won't have any issues with sharing files or with firewalls/network connectivity.
 
You can save the work you do from the course VM (in the student account) to your SCS account and restore it to any other copy of the class VM (on your machines or in the labs) by running using the following commands:
 
  save3000 <SCS username>
  restore3000 <SCS username>
  compare3000 <SCS username>
 
If you use these commands, '''use them consistently'''.  That means run <tt>restore3000</tt> when you first log in, and run <tt>save3000</tt> just before logging out.  If you don't do this, you will '''erase''' the work that you had done previously when you save.
 
If you forgot to restore and you want to save, try running this:
 
  rsync -a -v --progress ~/ <SCS username>@access.scs.carleton.ca:COMP3000/
 
This is the same as the <tt>save3000</tt> command minus the options (--delete and --force) that deletes files in the destination that don't exist in the source.  As a check, you may want to add the <tt>-n</tt> option to do a dry run.
 
===Running the Virtualbox VM on your own machines===
 
If you want to run the VM appliance on your own system (running essentially any desktop operating system you want), just download the [http://homeostasis.scs.carleton.ca/~soma/VMs/COMP%202406%20&%203000,%20Fall%202015.ova virtual appliance file] and import.  The SHA1 hash of this file is:


    a8a70ec2e1b49699f4de29c872ecec7cee21888f [http://homeostasis.scs.carleton.ca/~soma/VMs/COMP%202406%20&%203000,%20Fall%202015.ova COMP 2406 & 3000, Fall 2015.ova]
You may use other Linux distributions to complete the assigned work; there will be differences, however, in some aspects (such as installing software), particularly if you use a distribution not based on Ubuntu or Debian.


On Windows you can compute this hash for your downloaded file using the command [http://support.microsoft.com/kb/889768 <tt>FCIV -sha1 COMP 2406-3000 Fall 2014.ova</tt>].  If the hash is different from above, your download has been corrupted.
==Contributing Notes==


If the application is not VirtualBox, you'll need to:
The instructions and guidelines for contributing notes to the wiki can be [[Contributing:Operating_Systems_(Fall_2017)|found here]].
* Have the VM platform ignore any errors in the structure of the appliance found during the import process;
* Uninstall the VirtualBox guest additions by typing starting a terminal application and running
  sudo apt-get purge virtualbox-guest-x11 virtualbox-guest-utils
* Install your platform's own Linux guest additions, if available.

Latest revision as of 15:15, 15 December 2017

Course Outline

Here is the course outline for COMP 3000: Operating Systems.

Lectures and Exams

Note that the topics below are primarily chapters from the class textbook, Operating Systems: Three Easy Pieces. Note that while introductory and summary dialogues are not linked below, they are worth reading for an informal take on the material.

Assigned readings are subject to change, please check this page each week.

Date

Topic

Sept. 7

Lecture 1: Introduction

Sept. 12

Lecture 2: Processes, Process API

Sept. 14

Lecture 3: Limited Direct Execution, CPU Scheduling, MLFQ

Sept. 19

Lecture 4: Address Spaces, Memory API

Sept. 21

Lecture 5: Hard Disk Drives, File and Directories

Sept. 26

Lecture 6: I/O Devices, FSCK and Journaling

Sept. 28

Lecture 7: File System Implementation

Oct. 3

Lecture 8: Assignment/Tutorial help session (Akhil)

Oct. 5

Lecture 9: Concurrency and Threads, Locks

Oct. 10

Lecture 10: Concurrent Data Structures, Semaphores

Oct. 12

Lecture 11: Address Translation, TLBs

Oct. 17

Lecture 12: Segmentation, Free space management

Oct. 19

Lecture 13: Paging

Oct. 31

Lecture 14: Midterm Review

Nov. 2

Midterm Exam (Solutions)

Nov. 7

Lecture 15

Nov. 9

Lecture 16: newgetpid.c

Nov. 14

Lecture 17

Nov. 16

Lecture 18

Nov. 21

Lecture 19

Nov. 23

No Class (US Thanksgiving)

Nov. 28

Lecture 20

Nov. 30

Lecture 21

Dec. 5

Lecture 22

Dec. 7

Lecture 23

Dec. 14, 1-2 PM, 3-4 PM

Question/Answer Session (optional), LA C164

Dec. 17, 7 PM

Final Exam, AH rows 25-36

Tutorials

Each week you will get a progress grade from 0-4, given to you by a TA. If you are being diligent, you should be able to get 4's every week. The easiest way to get your grade is to come to tutorial and meet with your TA; alternately, you can meet a TA in their office hours or, at their discretion, discuss things with them online.

Date

Tutorials

Sept. 18,20

Processes and System Calls

Sept. 25, 27

3000shell.c

Oct. 2, 4

3000test.c

Oct. 16, 18

3000pc.c

Nov. 6, 8

Filesystems and kernel modules

Nov. 13, 15

newgetpid.c

Nov. 20, 22

FUSE

Nov. 27, 29

sshfs

Assignments

Due Date

Assignments

Oct. 12, 1 PM

Assignment 1

Oct. 26

Assignment 2

Nov. 26

Assignment 3

Dec. 7, 1 PM

Assignment 4

Course Software

In this course we will primarily working with Ubuntu, a widely-used family of Linux distributions. We will be using Ubuntu Server on the SCS's Openstack installation (accessible only from the Carleton network).

You may use other Linux distributions to complete the assigned work; there will be differences, however, in some aspects (such as installing software), particularly if you use a distribution not based on Ubuntu or Debian.

Contributing Notes

The instructions and guidelines for contributing notes to the wiki can be found here.