Operating Systems

Monsoon 2006



Instructor:

Atul Negi
Dept. of Computer and Information Sciences Building.
Office phone: 23010343
Mobile phone: 9440383507
Email:
atulcs@uohyd.ernet.in

Atul.Negi@gmail.com


Co-Instructor

Wilson Naik

Dept. of Computer and Information Sciences Building.
Office Phone: 23134106

Email: naikcs@uohyd.ernet.in


TAs:

Honorary TA:



KishoreKumar P. (kishoregupta_os@yahoo.com)


Outline

This course is an attempt to introduce students to operating systems and give an insight into their internals. The operating system is expected to provide a familiar, convenient, and efficient interface between user programs and the bare hardware of the computer on which they run. Among other things, the operating system is responsible for allowing resources (e.g., disks, networks, and processors) to be shared, 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 begins with a brief perspective of the Linux kernel features, then covers the major components of an operating systems. Particular emphasis will be given to three major OS subsystems: process management, memory management, and the file system. We will cover the basics of concurrent programming, including process synchronization mechanisms, mutual exclusion algorithms, and deadlock. We will also cover the above concepts in the perspective of GNU/Linux. You will be expected to write C code during the semester ranging from user level system programs to perhaps certain kernel modules (depending upon time).




Prerequisite

Textbooks

Linux Reference

Understanding the Linux Kernel. Daniel P. Bovet and Marco Cesati, (Third Edition covers Kernel 2.6) SPD (O`Rielly)





Other Resources

Course Logistics

Grading Scheme



For your Queries


Programming Assignments











Syllabus

1. Introduction
1.1 The Hardware Interface (Includes Computer Organization).

2. OS Structures. 31st Aug. to 5th Sept.
2.1 System Calls
2.2 Interrupts
2.3 Virtual Machine.

2.4

2.5 Practical Examples in the perspective of Linux.
Assignment 1 - Due Date : 14th Sept.

3. Process Management 7th Sept. to 29th Sept. (7 Classes)
3.1 Process Concept
3.2 Process Scheduling
3.3 Operations on Processes
3.4 Interprocess Communication
3.5 Threads
3.6 CPU Scheduling Algorithms
Assignment 2 -- Due Date:  27th Sept.

3.7 Process Synchronization
3.8 Deadlocks

3.9 Practical Examples in the perspective of Linux.

Mid 1 - 7th Oct.
4. Memory Management 3rd Oct. to 12th Oct ( 4 classes )
4.1 Swapping
4.2 Paging
4.3 Segmentation
4.4 Virtual Memory

4.5 Practical Examples in the perspective of Linux.

Assignment 3 - Due Date: 18th Oct..


5. File Management 17th Oct to 19th Oct (2 classes)
6. Device Management. 24th Oct to 26th Oct (2 Classes)
7. An Overview of Protection and Security -- 31st Oct (1 Class)


Mid2 -- 2nd Nov.