CSC 262 Operating Systems, Smith College, Computer Science Department, Fall 2016


Introduction to Operating Systems
Theory Classes: Tuesday – Thursday 3.00 pm – 4.50 pm
Practice Classes: Thursday 7.30 pm – 9.30 pm

Location: Ford Hall 342

Instructor: Dr. Şadi Evren ŞEKER (Office: Ford Hall 252)

Office Hours

  • Wednesday, 3.00 – 5.00 PM
  • Other times by appointment/as available
  • Lunch meetings available by request for small groups


Web Site:

YouTube : will appear soon (after each class I will try to shoot youtube videos (not a promise, I will do my best))

YouTube Play List 2 (For Lab) :

Introduction: This course examines the important problems in operating system design and implementation. The operating system provides an established, convenient, and efficient interface between user programs and the bare hardware of the computer on which they run. The operating system is responsible for sharing resources (e.g., disks, networks, and processors), providing common services needed by many different programs (e.g., file service, the ability to start or stop processes, and access to the printer), and protecting individual programs from interfering with one another. The course will start with a brief historical perspective of the evolution of operating systems over the last fifty years and then cover the major components of most operating systems. This discussion will cover the tradeoffs that can be made between performance and functionality during the design and implementation of an operating system. Particular emphasis will be given to three major OS subsystems: process management (processes, threads, CPU scheduling, synchronization, and deadlock), memory management (segmentation, paging, swapping), and file systems; and on operating system support for distributed systems.

Outcomes of the Course

Possible outcomes expected from the course:

  1. Understand the architecture and major components of an operating system .
  2. Understanding the concurrent programming.
  3. Understanding Inter process communication and message passing .
  4. Understanding the memory management and paging/segmentation concepts
  5. Understanding the disk management, file systems and virtual memory/swapping concepts.
  6. Gaining advanced programming skills in low level programming, concurrent programming and modular programming.
  7. Gaining the knowledge of linux operating systems and adding new functions to its kernel.


    1. TEXTBOOK 1:Peterson and Silberschatz, Operating System Concepts
    2. TEXTBOOK 2:Tanenbaum, Operating Systems: Design and Implementation


      • 30 % Final exam
      • 20 % Projects
      • 20% Homeworks
      • 20 % Midterms (10 % each)
      • 10 % Lab Final

Tentative Course Outline

Chapter Powerpoint  LABS  Assignments
Part 1: Overview  [PPT for Overview and Syllabus] (Sept, 8)
1. Introduction (Sept, 13)
2. Operating-System Structures

(Sept 15)


–Introduction to UNIX
– UNIX Operating System Architecture –Linux Operating System –Users, Groups and Permissions
– Examining Permissions–Linux Installation and Virtual Machines–UNIX Commands , Shell Commands
– File System Management
– File Management and ViewingProcess monitoring (top and ps commands)
Assignment 1 : Basic Linux Commands (Due Date : Sept 22 2016)
Part 2: Process Management 
3. Processes (Sept 20)
 Coding: Fork Assignment 2: Process Tree (Check Announcements)
4. Threads (Sept 22, 27)
5. Process Synchronization

(Sept 29)

Coding: Pthreads library
Code Samples from LAB #2 :
Java Threads Producer/Consumer 
PThread C Coding for ProducerConsumer
Assignment 3: Synchronisation (Check Announcements)
6. CPU Scheduling (Oct, 4, Oct 6)
 Project Details, Scheduling Samples  Assignment 4: Scheduling Analogy (Check Announcements)
Midterm 1  (Solutions will be done at Lab Hours) (Oct 13 ) (Due Date: Oct 15, Saturday until midnight) (Sleeping Barbers Solution done in the class)
7. Deadlocks

(Oct, 13)

Network Programming and binding sockets

Sample HTTP Server in Java

New verstion of http server

Part 3: Memory Management 
8. Main Memory

(Oct 18, Oct 20)

 Coding: Procfs

Linux Kernel Hacking How To

Coding: Adding a new Kernel Function

9. Virtual Memory

(Oct 25)

 Memory management Simulation

Paging + Segmentation

Simulation Code written in lab session

Review of Memory Management (Oct, 27)
Part 4: Storage Management (Nov, 1)
10. Mass-Storage Structure
(Oct 27)
No Class at Oct 29, OT Day

Excel file for SSTF, SCAN, C-SCAN and C-LOOK

11. File-System Interface

(Nov 8)

12. File-System Implementation
(Nov 10)
Client Side implementation of projects and  sample codes.

Updated client-side code with Auto port jump (Server and Client parts)

13. I/O Systems
(Nov 15)
Procfs slides,

procfs sample code

Due Date of  Project Phase #1 (Nov 15), Grading: 7%

Assignment #5
14. Review of Memory Management and Storage Management (Nov 17)

Midterm 2  (Solutions will be done at Lab Hours)

Part 5: Protection and Security 
 Midterm Solutions
(Nov 22)
No Class (Thanksgiving, Nov 24)
 15. Protection

(Nov 29)

 16. Security
(Dec 1)
 Command Line Interface for The file System and lab final
Part 6: Advanced Topics 
17. Virtual Machines (Dec 6)
Security and Protection Lab
 18. Distributed Systems (Dec 8) Due Date of Assignment #5 (Dec 7)


 updated version of server/requester project
Part 7: Case Studies 
 19. Linux
(Dec 13)
 Due Date of Project Phase #2 (Dec 8), Grading: 7%

Solution of Assignment #5

Lab Final (click to download) (Due Date: Dec, 15)

Submission of Final Phase of Projects (Due Date : Dec, 15), Grading : 6%

Self Scheduled Final Exam


Please fill the knowledge card and send it back via e-mail. You can access the knowledge card from this link.

Lab Assignment 1 (Due Date : Sept 22 2016) , Basic Linux Commands

Assignment #2 (Due Date : Oct 3, Monday), Process Creation and Message Passing by Files. The deadline of assignment 2 will be extended for 2 more days and it will be at oct 5. Also we will cover some topics about the assignment on the class at Oct 4 Tuesday. Anybody submitted on time will get a 10% bonus (so you can get 110 points from the assignment). You can also resubmit your assignment, but only the last submission will be considered.

Solution to Assignment #2 (click to download the files)

Assignment #3 (Due Date: Oct 14, Friday), Process Synchronisation (Sleeping Barbers)

Assignment #4 (Due Date: Oct 24, Friday) CPU Scheduling Simulation

Solution to Assignment #4 (just for SJF Preemptive versions, as written in the lab)

Assignment #5 (Due Date: Dec 7, Wednesday) Proc File System

Term Projects :

GRADES: click for your grades.(updated midterm 2)

Click for Midterm 2 Questions

Lab Final (Due Date: Dec 15)

Updated Lab Final (Due Date: Dec 19 ), move command is canceled, Added a run and test scenario for the implementation.