Operating System Lab

 

AUTUMN 2018-19
Section B (Friday 3:00-6: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 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.

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 assignments as well as take home assignments. .

5.         All class assignemnts have to be done very seriously and should be submitted to the TAs at the end of the class hour. Performance during class assignemnts not only carries wieghtage for grades, they also help in clearing the concepts discussed in theoretical lectures. If a student does not submit the clas assignments or in non-responsive during viva, his/her may expect a "F" grade. Take home assignemnts help in preparing for the lab exam .

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

7.         Grading Policy :

o   30%: Implementation of the assignment and VIVA (each day)

o   60%: Lab exams (2 pre mid-sem and 2 post mid-sem)

o   10%: Attendance

 

 

 

Lab Assignments:

 

Sl. No.

Topic

Experiments

Helpful Resources

1.

Working with Linux

Assignment 1

Book on Bash Scripting

Tutorial_shell_scripting

2.

System Calls

Assignment 2

open_read_write_with_linux_sys_calls

write_lines_of_text_sys_call

simulating "ls" command

3.

Process Management

Assignment3

fork_execute.c  fork_test.c  fork-01.c
fork-02.c  fork-03.c  fork-04.c fork-05.c 
orphan_process.c zombie_process.c

4.

Scheduling Algorithms

Assignment4

5.

Multi Threading Using pthread library

Assignment5

thread_example.c  print-rand-matrix.c  c-timer.c

6.

Inter Process Communication : Shared Memory and Pipe

Assignment6.1  
Assignment6.2

Lecture notes on IPC  
shared memory  client.c  server.c  
pipe  pipe_example.c  
read-write1.c  read-write2.c

7.

Process/Thread Synchonization

Assignment7.1  
Assignment7.2

Synchronizing Threads  read-write3.c  read-write4.c

8.

Memory Management

Assignment8  

9.

Working with xv6

Exercises on xv6  

Lab 1   Lab 2   Lab 3   Lab 4  Lab 5

tutorial on FUSE