CSC-4210 Operating Systems

Spring 2022

Instructor:

Roger Shore

Class Schedule:

Office Location:

Congdon Hall 153

MW 12:05-1:35PM CSC-2212

Telephone:

841-9031

MWF 7:50AM-9:00AM CSC-2342

Office Hours:

MWF 2:00-3:00PM

TTh 1:35-3:15PM CSC-4210

TTh 8-9:30AM


E-Mail: rshore@highpoint.edu

Web site: linus.highpoint.edu/~rshore



Course Description: An introduction to the various components of an operating system, including schedulers, memory management, interrupt handling, resource allocation, security and protection. Examples presented will be based on UNIX and other popular operating systems. Each student will participate in projects that involve kernel modifications, shell scripting, and simulations of components within the operating system.

Prerequisites: CSC-1720 and CSC-2342, AND either CSC-2410 or ECE-2605

Course Materials:

  1. Silberschatz, Galvin, and Gagne, Operating System Concepts (978-1-119-32091-3), 10th Ed., John Wiley and Sons, Inc, 2018

  2. You will need to setup an AWS account, I'll provide instructions to get needed credits so there is no cost to you. Also, while it is not a requirement, it would be nice if you had a functioning laptop available during class. See the projects section below for reasons.

Course Objectives:

Class Preparation: It is assumed that you will read the assigned chapters. Although the material may be summarized, lectures will be used mainly to further demonstrate other approaches to problem solving and to answer specific questions.

Assignments: There will be a variety of assignments during the semester. Each assignment in the series will involve some aspect of an Operating System. For some of the projects, you will be altering a linux kernel. If you are unaware, Linux kernels can be download and modified. These projects will involve altering the kernel then compiling, installing and hopefully booting the kernel to validate the edits made to the kernel. To keep the compile time at a minimum and to be able to provide reasonable instruction, we will use and EC2 instance on AWS. Potential project titles are:

  1. Shell Programming

  2. System Calls

  3. Synchronization Mechanisms

  4. Process communication

  5. Kernel Modules

  6. Device Drivers

  7. File Systems

  8. File I/O

  9. I/O redirection and pipes

Course Policy: Assessment: The course objectives will be assessed through major tests, the final exam and problem set assignments. The final grade will be determined as follows:


Assignments/Quizzes: 20%

2-3 Major Tests: 60%

Cumulative Final Exam: 20%

Total: 100%

Range

93-100

90-93

87-90

83-87

80-83

77-80

73-77

70-73

67-70

63-67

60-63

0-60

Grade

A

A-

B+

B

B-

C+

C

C-

D+

D

D-

F

You must score at least the minimum of a category to be given the associated grade, i.e. an average of 80 is a B- not a C+.

Major tests and Final Exam: All tests and final exam will consist primarily of problem solving type questions similar to the homework assignments and quizzes. No make up test will be given unless prior arrangements have been made with excusable reasons. If you miss a test your final grade will be used in place of the missed grade. This means the percentage of the final exam will increase. If you miss the final exam, a 0 will be placed in all missing tests.

Quizzes, class worksheets and assignments: In addition to the major tests and final exam, students will participate in series of problem sets to further develop skills and understanding of discrete mathematical structures found in computer science. Each assignment will focus on a collection of problems that target each learning objective individually or a combination of learning objectives. Successful completion of the assignments will prepare the student for major tests and final exam. There will be at least 12. There is no makeup for these items. For this reason, two will be dropped to accommodate an occasional absence.

Attendance: High Point University recognizes and honors the value of the face-to-face classroom experience for enhancing student engagement and academic outcomes. Attendance will be taken daily at the beginning of class. As such, you are expected to be present in every class meeting with the exception of an illness that requires quarantine or other reasons pre-approved by the instructor. In those cases online accommodations will be provided. If absent from class, you are responsible for all lectures, in-class exercises, assignments, and handouts. Caution: Being absent from class does not change the due date of assignments. Before a student is dropped for non-attendance, I will give a notification as a warning to a student that he/she is in danger of violating the attendance requirements.


Honor Code: All students are expected to follow the University Honor Code, Full details of the High Point University Honor Code are found here: http://www.highpoint.edu/studentconduct/university-honor-code All academic work should be completed with the highest level of honesty and integrity.


Professionalism: The Mission Statement of the Webb School of Engineering is: To provide an extraordinary engineering education through the delivery of a hands-on, practical education that prepares graduates for a rewarding career or admission into graduate school. The School of Engineering is committed to:

Please treat this class as if it were a company or organization for which you are working. You can exhibit professionalism by attending consistently, arriving on time, communicating your full or partial absence in a timely fashion, completing assignments on time, maintaining engagement, and respecting your peers and the professor.


Classroom etiquette:


Lab etiquette:


Students with Disabilities: High Point University is committed to ensuring all students have equal access to all services and benefits at High Point University. If you are a student with a disability and require academic accommodations due to a diagnosed disability, you must register with the Office of Accessibility Resources and Services (OARS) and submit the appropriate documentation. Requests for accommodations should be made at the beginning of a course. Accommodations are not retroactive. Contact us at oars@highpoint.edu or by telephone at 336-841-9026, for additional information. The Office of Accessibility Resource and Services is located on the 4th Floor of Smith. Library.


Face covering: Wearing a face mask reduces the risk of COVID-19 transmission and is a step we can all take to care for the members of our HPU family. This class will abide by the guidelines that are set forth by the University. Please note this may change as the semester progresses.

Course Topics:

  1. Overview

    1. Introduction

      • Definition

      • History

      • Types

      • System Calls

      • The shell

  2. Process Management

    1. Process

      • Process Concept

      • Process Scheduling

      • Types

      • Interprocess Communication

    2. Threads

      • Overview

      • Multithreading Models

      • Examples

    3. CPU Scheduling

      • Basic Concepts

      • Scheduling Algorithms

      • Threading and Multiple-Processor Scheduling

    4. Process Synchronization

      • Background

      • The Critical-Section Problem

      • Peterson's Solution

      • Semaphores

      • Classical Problems

      • Monitors

    5. Deadlocks

      • System Model

      • Deadlock characterization

      • Prevention

      • Avoidance

      • Detection

      • Recovery

  3. Memory Management

    1. Main Memory

      • Memory allocation

      • Paging and the Page Table

      • Page replacement

      • Segmentation

    2. Virtual Memory

      • Background

      • Demand Paging

      • Copy-on-Write

      • Page Replacement

      • Allocation of Frames

      • Thrashing

      • Memory-Mapped Files

  4. Storage Management

    1. File-System Interface

      • File Concept

      • Directories and Disk Structure

      • Security

      • File sharing

    2. File-System Implementation

      • File-System Structure and Implementation

      • Directory Implementation

      • Allocation Methods

      • Free-Space Management

      • NFS

    3. Mass-Storage Structure

      • Overview

      • Disk Structure/Attachment/Scheduling/Management

      • RAID Structure

    4. Input/Output Systems

      • Types of devices

      • Application I/O Interface

      • Kernel I/O Subsystem

      • Transforming I/O Requests to Harware Operations

      • Memory-mapped I/O

  5. Protection and Security