CS 201 -- Operating Systems


Lecture timings

BICSE 2A ~ Tuesday 10:00 - 12:00, Friday 10:00 - 11:00
BICSE 2B ~ Tuesday 3:20 - 4:10, Friday 11:00 - 1:00
BICSE 2C ~ Tuesday 2:20 - 3:10, Wednesday 11:00 - 1:00 pm

Instructor

Umar Kalim
Address: R#15, AB#3, St#8.
E-mail: umar [dot] kalim [at the rate] niit.edu.pk
Tel: 9280439 x 134


Course objective & description | Lecture Notes |Post-final Result |TinyOS and nesC| Reading List | Term Papers | Miscellaneous

Course description

A course in operating systems (OS) to teach students about the interface between user programs and computer hardware

This course examines the important topics in operating system design and implementation. The operating system provides a well-known, 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 one another.

The course will start with a brief historical perspective of the evolution of operating systems over the years, and then cover the major components of common 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), file systems, and operating system support for distributed systems.

Course objectives

Few topics, but subject to change, to be covered are the following:

  1. Introduction to Operating Systems
  2. Operating System Structures
  3. Processes
  4. Threads
  5. CPU Scheduling
  6. Process Synchronization
  7. Deadlocks
  8. Main Memory
  9. Virtual Memory
  10. File-System Interface
  11. File-System Implementation
  12. Mass-Storage Structure
  13. I/O Systems
  14. Realtime systems
  15. Case study - The Linux System

Text book

Operating System Concepts, 7th Edition, by Silberschatz, Peter Baer Galvin, Greg Gagne , published by John Wiley & Sons, Inc. ISBN 0-471-69466-5

Reference books

Operating Systems, Fourth Edition. by William Stallings
Modern Operating Systems, Second Edition by Andrew S. Tanenbaum

Grading Criteria

One Hour Tests (OHT) : 30%
Assignments : 10%
Quizzes : 10%
Survey report/term paper/project: 10%
End Semester Examination (ESE) : 40%

Assignments (at least 3)

At least one assignment will be given after completion of each major topic.
Late assignments will not be accepted / graded.
All assignments will count towards the total.

OHT/ESE Grading Policy

Relative marking, standard deviation based on the class average.

One Hour Test policy

There will be 2 one hour tests.
The portion of syllabus covered in 1st one-hour test will not be tested in the 2nd one hour test.

Quiz policy (at least 3)

Quizzes will be un-announced as well as announced.
Missed quizzes cannot be retaken.
All quizzes will count towards the total.

Group Mail Address

bicse-2-os@googlegroups.com

Google Groups Subscribe to OS - BICSE 2 - NIIT
Email:
Browse Archives at groups.google.com

[back to the top]


Lecture notes

- Available for download from the file-server.
Week
Date (2006)
Lecture topic (the text book is to be consulted)
Miscellaneous Reading
1
09/05
Course Introduction overview, dual boot, history of OS
1
 
Overview of Operating Systems How to program a bootloader [src], refer to the reading list
2
09/12 
Operating Systems Structures Von Newmann Architecture [draft], Communicating Sequential Processes
2
 
Revisiting Operating Systems Structures Structure of multiprogramming system, multiprogramming, interrupts , system calls
3
09/19
Operating Systems Structures, Design and Implementation Kernel, Monolithic Kernel, Micro Kernel, Hybrid Kernel, Exokernel, different kernel design approaches,
3
 
Revisiting Operating Systems Structures, Design and Implementation CPU, Notable CPU Architectures, x86 Architecture, CPU Operation, Instruction Set
4
09/25
Process Management: Processes Stack, Heap, Stack vs Heap Allocation, Process, ps command, top command, Scheduling
4
 
More on processes refer to the mailing list for discussion, practice assignment
5
10/02
Revisting processes  
5
 
Revisting processes  
6
10/09
Threads Threads, Threads & Processes, Simultaneous Multithreading, Multithreading, Superthreading and HyperThreading, FAQs
7
10/16 - 10/19
BICSE 2-A and BICSE 2-B - Linux Help Session (speakers: Mr. Faran Javed (BIT-5) and Mr. Abdul Latif (BIT-5)) Linux, Introduction to Linux
7
10/14
BICSE 2-C - Linux Help Session (speakers: Mr. Faran Javed (BIT-5) and Mr. Abdul Latif (BIT-5)) Online Lessons
7
 
Revisiting Threads Kernel threads, User threads, Implementing threads using Java, POSIX, C# [2], Win32 API
8
10/23
Eid-ul-Fitr Holidays
9
10/30
1st One Hour Test (OHT - 1)
 
Sessional result BICSE 2 [A], [B] and [C]
10
11/06
More on Threads practice assignment
10
 
CPU Scheduling Scheduling, CPU Scheduling, Algorithms, Thread Scheduling, Linux CPU Scheduler
11
11/13
More on CPU Scheduling Exersice & Solution
12
11/20
Process Synchronization Exersice & Solution, Peterson's Algorithm [II], mutex, semaphores, atomicity, monitor, synchronization
12
 
More on Process Synchronization Monitors: An Operating System Structuring Concept, practice assignment, Dijkstra's solution to the Dining_philosophers_problem
13
11/27
Deadlocks Exersice & Solution, deadlock, starvation
13
 
Revisiting Deadlocks Banker's Algorithm
14
12/04 
Main Memory Main Memory, Address binding, Memory Protection, Logical and Physical Memory, Physical Address space [II], Memory Models, Dynamic Loading, Dynamic Linking
15
12/11
2nd One Hour Test (OHT - 2)
 
Sessional result [A chart-I chart-II], [B chart-I chart-II] and [C chart-I chart-II]
16
12/18 
More on Main Memory Fragmentation, Paging, Translation LookAside Buffer (TLB), Memory Management Unit (MMU)
 16
 
Revisiting Main Memory Page table, Inverted page table [II], Hierarchical page table, Hashed page table
 17
12/25 
Further more on Main Memory Paging, Segmentation, Exersice & Solution
18
01/01
Eid-ul-Azha
 19
01/08 
Virtual Memory Virtual Memory, Demand Paging, Page Replacement Algorithms [II], Frame Allocation
19
 
Revisiting Virtual Memory Thrashing, Working Set Model, Prepaging, I/O Interlock, Paging details, Page Fault, Locality of Reference
20
01/15 
File System Interface and Implementation FIle, File System [extra notes], FAT, Implementation, ext3, ext2, ntfs
20
 
Recommended reading: I/O Subsystems & Linux Case Study
 
Pre-final result [A chart-I chart-II], [B chart-I chart-II] and [C chart-I chart-II]
21
01/22
End Semester Exams
 
[TENTATIVE] Post-final result [A chart sorted], [B chart sorted] and [C chart sorted]

TinyOS and nesC

The list of recommended reading material for enthusiasts who wish to learn about a real time operating system - TinyOS - and develop and test software for the same.

Term papers

Students will be required to write a term paper over the course of the semester. This paper is to be a literature review of a specific area of operating systems research, development, and/or implementation. The topic is to be chosen by the student - this is part of the assignment (here are some recommendations). The paper is to be approximately 10-15 pages in length, single spaced, with a 12 point font, one inch margins, and stapled - no need for binders. (Double-spaced is also acceptable, but 10 pages double-spaced is on the short side.) The paper will be graded on the basis of topic coverage, accuracy, organization, style, and clarity (not length, per se). This assignment will be due in two parts:

  1. Outline: Your paper outline should have three parts: an abstract, a detailed outline, and a list of references.  Your abstract should be one to two paragraphs, and should briefly explain your chosen topic and central thesis.  You will also need at least 10 references to published works (conference papers, journal articles, or books). You may cite simple web pages; however, they will not be count towards your reference total. Good sources are CiteSeer and the IEEE Xplore . Note that the Digital Library @ NUST and Carleton Library provides online access to many journals. You will be graded on organization, choice of thesis, and the quality and relevance of your references.
  2. Final draft: Your final draft should demonstrate that you have read and understood your selected papers.  While you do not have to follow your outline and abstract, significant deviations should be cleared in advance with the professor.  Plagarism will result in a zero paper grade.

Tips on research

[back to the top]


Last updated: 6th of Feb, 2007.