Operating System Lab

 

AUTUMN 2019-2020
Section A (Tuesday 6:00PM-8:00 PM)

Venue: Room-5042, CC3 Building

 

 

 

 

Course Objective:

The goal of this course is to have students understand and appreciate the principles in the design and implementation of operating systems software.

Lab Course Outline:

 

Introduction to operating systems concepts, process management, memory management, file systems, virtualization, and distributed operating systems. The laboratory exercises will include familiarization with UNIX system calls for process management and inter-process communication; Experiments on process scheduling and other operating system tasks through simulation/implementation. Finally, the students would require to apply the operating system concepts by experimenting on either xv6/minix operating systems.

 

 

References:

 

1.      Abraham Silberschatz Peter B. Galvin and Greg Gagne, Operating System Concepts, Wiley 8th Edition, 2008.

2.      Garry. J. Nutt, Operating Systems: A Modern Perspective, Addison-Wesley

3.      Andrew S. Tanenbaum and Herbert Bros, Modern Operating Systems (4th Edition), Pearson

4.      Russ Cox, Frans Kaashoek, Robert Morris , xv6: a simple, Unix-like teaching operating system",Revision 8 [Download]

5.      Sumitabha Das , UNIX Concepts and Applications, Tata McGraw-Hill

 

 

 

 

Important Instructions:

1.         The take home laboratory assignments will be mainly implementation-oriented which have to be coded in C and will be based on the topics discussed in theoretical lectures. The lab sessions will be based on exploring the concepts discussed in class by implementing them on the xv6 operating system.

2.         Every student is expected to have access to at least the book by Silberschatz-Galvin-Gagne.

3.         Attendance in lab classes is mandatory. If the attendance of a student falls below 75%, he/she may expect a "F Grade"

4.         The laboratory course will consist of class work as well as take home assignments. .

5.         Performance during class work carries wieghtage for grades. Surpise lab quizzes will be conducted to assess the progress of the student in lab. Thus, be regular in labs.

6.         Tutorial sessions will be conducted by TAs for the first hour of every lab session. Interact with them to clear your doubts regarding the lab assignments..

7.         Grading Policy :

o   5%: Class performance

o   5%: Lab quiz (1 per C1 and C2 component)

Interesting Links

1.         The UNIX Operating System, AT&T Archives, at YouTube

2.         The UNIX Time-Sharing System, Dennis M. Ritchie and Ken L. Thompson, Bell System Technical Journal 57(6)

3.         A Narrative History of BSD, Kirk McKusick, at YouTube

 

 

 

Lab Assignments:

 

Sl. No.

Topic

Experiments

Helpful Resources

1.

Working with Linux

Assignment 1

Book on Bash Scripting

Tutorial_shell_scripting

2.

Introducing xv6

Assignment 2

About xv6

3.

Adding System Calls in xv6

Assignment 3

About xv6

4.

Process Management and Scheduling in xv6

Assignment 4

xv6-public.tgz

xv6-public-patch.tgz

Assignments on xv6 - OS course ( cs.washinton.edu)

5.

Process Synchronization I

Assignment 5

badcnt.c

goodcnt.c

6.

Process Synchronization II

Tut 6: POSIX Semaphores


Producer-Consumer Problem uisng Semaphore 1


Producer-Consumer Problem uisng Semaphore 2


Assignment 6.1


Assignment 6.2


Little Book of Semaphores (Contains many Synchronization problems)


Sleeping Barber Problem

7.

Scheduling in xv6

Assignment 7