CS311 - Fall 2018 Homework & Project Assignments

Text: W. Stallings, Operating Systems Concepts, 9th Ed., ISBN: 978-0-13-467095-8

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. Files are to be sent via FTP to my server: dforeman.cs.binghamton.edu, with userid and password as given in class. If only sending a source file, do NOT compress it. Otherwise use ONLY .zip or .7z!! Send the files, named as follows:

Lastname-firstinitial-projname-v#

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

Do not include the parentheses.

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

Intro

1,3, 5, 7

9/04

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

1

9/17

1B

1 continued

8, 10, 14

9/13

 

 

 

2

2
OS ov’view

1, 4

9/20

 

 

 

3

Ch 3 Processes & Threads

1, 3B, 6, 7

9/27

 

 

 

4

4

Threads

1, 2, 4, 7, 8

10/04

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

2

10/05

5

5 Concurrency

4, 6, 8, 10, 24

10/16

 

 

 

6

6 Deadlock

1, 5ab, 14

11/5

 

 

 

7

7

Memory mgmt

2, 6, 7, 12

11/12

Turbine lab [W & L]

3

11/19

8

8 virtual memory

 

 

 

 

 

9

9 scheduling

 

 

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).

 

 

10

10 MP scheduling

 

 

 

 

 

11

11 I/O mgmt

tbd

 

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

5 (311 #4)

N/A

12

12 file mgmt

tbd

 

 

 

 

13

13 VM’s

 

Building a Linux system (LB) [L]

6 (311 #5)

TBD

 

 

 

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

7 (311 #6)

TBD