CS311 - Fall 2017 Homework & Project Assignments

Text: Tanenbaum & Bos, Modern Operating Systems, 4th Ed., ISBN: 978-0-13-359162-0

All Projects (except Linux kernel build & kernel modification) are done as normal users. The kernel projects require "root" privileges, which are available using the “sudo” or “su” command when needed. Send all lab assignments (including design docs) directly to the TA or CA. Send ONLY the files listed below, not executable files. The TA/CA will re-compile your source code on either Windows or Linux, whichever he/she chooses. Your code for all but the last 2 projects (and only for CS350: MMwP) must therefore work on BOTH systems without changes to the source, The REQUIRED Linux system (the only ones acceptable) are the TJW Linux system and the VMWare systems. Information on accessing these systems will be given in class. Homework assignments are given to me in class on the due date. Homework MUST be done with a word-processor.

The Projects are NOT always listed with the chapters that cover that material. Please label homework as shown in the grid below, not sequential assignment number. Please refer to the Projects by the names in parentheses (not just "project 2").

Notes:

Labs (CS350 only)

The following weekly labs are for CS350 only (these are NOT the Projects. See next page for Projects & homework).

 

Lab#

name

Lab Due Date

1

Weekly lab 1

 

2

Weekly lab 2

 

3

Weekly lab 3

 

4

Weekly lab 4

 

5

Weekly lab 5

 

Projects

Projects are due on the specific date listed. No late assignments will be accepted and will receive a zero. Project files from Visual Studio (.zip or .7z) are to be sent via FTP to my server: dforeman.homedns.org, with userid and password as given in class. DO NOT USE tar.gz, gz, etc.!! Send the Visual Studio project (DELETE the executable file first) or other files, named as follows:

Lastname-firstinitial-projname-v#
where project name is the name in parentheses in the Homework and Projects table below and # is your version number, starting at 0.

 

Legend for Projects

W

Windows: 7, 8, 10

L

Linux (via Putty/SSH or VNC client to TJW or vSphere VMWare system)

Homework and Projects

 

Homework
#

Chapter & subject

Problem #'s

Homework

Due in class, printed

Projects

The project name is in parentheses

Project #

Project

FTP Due Date  11:59:59PM

1A

1.1-1.5

Intro

3, 5, 8 (assume $.001/KB), 11

8/31

Single-threaded Producer/Consumer (STPC) [W & L]

1

9/01

1B

1.6-end

14, 15, 22, 28

9/07

 

 

 

2

5.1-5.5

Device mgmt.

4, 8, 16, 18, 20, 26, 30, 32

09/14

 

 

 

3A

2.1-2.3

Proc’s & threads

1, 3, 6, 7

9/19 (before break)

 

 

 

3B

2.3

10, 12, 14, 18,

9/28

 

 

 

5

6 Deadlock

6, 9, 14, 21

10/12

Producer/Consumer with Threads (MTPC) [W & L]

2

10/06

6

2.4, 2.5 scheduling

23, 24, 25, 26

10/26

Multi-threaded Application (MMwT) [W & L]

3

10/24

7

3

Memory mgmt

4, 10, 13, 30

11/02

A Multi-process Application (MMwP) [L] (not for CS311)
This problem is the same as lab 2, except it is to be solved using Processes, instead of Threads. Also, it uses the Linux Shared Memory API (shmget & shmat functions).  

4

 

(Not for CS311)

8

7 VM’s

tbd

 

Readers and Writers Using a Monitor (RWM) [W & L]
MUST be done in C/C++

5 (311 #4)

11/10

9

4 file systems

tbd

 

 

 

 

 

 

 

Building a Linux system (LB) [L]

6 (311 #5)

TBD

 

 

 

Creating a new Linux Service Call (PF CTR) [L]

7 (311 #6)

TBD