CS311 - Fall 2016 Homework & Project Assignments

Text: Stallings, Operating Systems., Custom 8th Ed., ISBN:978-0-13-380591-8

All Projects (except Linux kernel build & kernel modification) are done in normal user-space. The kernel projects require "root" privileges. 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 them on either Windows or Linux, whichever he/she chooses. Your code for all but the last 2 projects and MMwP (for CS350) must therefore work on BOTH systems without changes to the source, The REQUIRED Linux system (the only one acceptable) is the TJW Linux system. Homework assignments are given to me in class on the due date.

The Projects are NOT always listed with the chapters that cover that material. We will be covering a chapter per week. Please label homework by CHAPTER NUMBER, not sequential assignment number. Please refer to the Projects by the names in parentheses (not just "project 2").

Notes:

NOTE: All homework assignments come from the section of the chapter labeled, "Problems", UNLESS preceded by the letter "Q" to indicate they come from the "Review Questions".

All HOMEWORK due dates are for the 1st lecture of the week with that date, NOT necessarily on that specific date.

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

Lastname-firstinitial-p#-v% where # is the project number and % is the version number.

Weekly labs for CS350 only (these are NOT the Projects. See next page for Projects & homework). Labs are due on the specified date.

 

Lab#

name

Lab Due Date

1

Weekly lab 1

1/30

2

Weekly lab 2

2/6

3

Weekly lab 3

2/13

4

Weekly lab 4

2/20

5

Weekly lab 5

2/27

 


 

Project & homework details

 

Legend for Projects:

W

Windows: Vista, 7, 8, 10

L

Linux via Putty or TightVNC to TJW

P

Linux AND (Windows with Pthreads)

 

Chapter

Problem #'s

Homework Due in 1st class of the week with this date

Project Assignments

Project#

Projects

Due on THIS Date (by 11:59:59PM)

1

2

1 (pg 37)-1,7,8,10

2-1,2,4,6A

9/09

Turn in these 2 homework chapters on SEPARATE pages, but they will receive 1 grade

3

3,8,11,12

9/23

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

1

9/23

4

2,4,6,8

09/30

 

 

 

5

4,8,13,22

10/07

Producer/Consumer with Threads (MTPC) [P]

2

10/07

6 concurrency + deadlock

1,5,11,17

10/15

Multi-threaded Application (MMwT) [P]

3

11/04

7 basic + virtual memory mgmt

6,8,12,14

11/10

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

4

 

(Not for CS311)

8 h/w + control structures for memory

1b,5,11,12

11/17

 

 

 

9 scheduling

2,6,11,14

11/24

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

5 (311 #4)

11/22

10.2

reading only

 

 

 

 

11 disk I/O

3,7

12/01

Building a Linux system (LB)

6 (311 #5)

TBD

12 directories

4,6,7,9

12/08

Creating a new Linux Service Call (PF CTR)

7 (311 #6)

TBD

14 VMs