Operating System Lab

Course Description

Operating systems play key role in computer design and its infrastructure. All computer students must involve OS details to understand underlying structure and architecture of the common operating systems. OS lab provides a series of experiences which can help to perceive key concepts of operating systems and to be familiar how they work. In this course we focus on open source operating systems like UBUNTU to come up with each part of operating systems. We do not aim to teach Linux, however; to accomplish OS labs we should be familiar with Linux commands and structure. So, in the preliminary sessions, we try our best to review Linux commands and facilities for the current lab. Then, we prepare the required environment and initiate specific experiments.

OS LAB

Grading & policy

Download Grade List of Spring 2015 (Last Update: May 30)

  • Lab Exercises = 100 points

  • Final/Project = 100 points

  • Class Activities = +10 Points

Topics & Scheduling

The Main Experiments

  • Introduction

  • Terminal & g++ (PDF) (Ubunto Command)

  • Standard Shell & Scripting (PDF)

  • Introduction to Kernels (PDF) (History) (Linux Kernel Archives)

  • User Mode & libc (PDF)

  • System Calls (PDF)

  • Signal, Ptrace, and Fork (PDF) (Playing with Ptrace)

  • File System (PDF)

  • Memory Management (PDF)

  • Process Control (PDF) (Linux Process)

  • Handling Synchronization (PDF)

  • Virtual Memory (PDF)

  • Sysfs and kobjects (PDF)

Download Ubuntu 14.04

Programming Projects

Rules:

All programs must be delivered in C++.

All programs must be compiled in Ubuntu under g++.

Team-working is acceptable with 2 or 3 members.

Repetitive title is not acceptable.

List of Final Projects

  • Program For Implementation of System Calls. (Kaveh Mohamadi & Parhizi)

  • Program For File Permissions. (Mohammadrezaei & Shahi)

  • Program For File Operations. (Afshin Hasani & Bidarian)

  • Program For File Copy and Move. (Amir Javaherdashti)

  • Program For Dining Philosophers Problem. (Poorhasan & Bakhtiari)

  • Program For Producer – Consumer Problem concept. (Emamgholi & Jazmi & Rahnama)

  • Program For File Encryption (Panahi & Keshtkar)

  • Program For Implementation of User & System Mode (Nikmard & Daneshdoost)

  • Program For Highest Response Ration Next (HRRN) Algorithm. (Sadeghipoor & Amirizad)

  • Program For Implementation of Priority Queue. (Sajedi & Hasanzade & Saleh & Mirsayar)

  • Program for Implementation of Look-Ahead Buffer (Moradi & Saadat)

  • Program For Feedback (FB) Algorithm. (Rezaei & Noushi)

  • Program For Shortest Job First Scheduling Algorithm. (Khademi & Golrokh)

  • Program For Round Robin Scheduling Method. (Shadorvan & Hakimi)

  • Program For Priority Scheduling Algorithm. (Khademinejad & Baziari)

  • Program For Avoiding Deadlock (Banker Algorithm). (Rouhi & Shabani)

  • Program For Virtual Memory Management (Hajishafiha & Sadeghi)

  • Program For Implementation of Buddy Algorithm (Abbasi & Mahboobi & Tavakoli)

  • Program for Virtualization (Code Translation) (Khoshrouz & Seyednejad & Bordbar)

  • Program for Avoiding Starvation (Mobasher & Lohrasbi & Sabzali)

  • Program for Real-Time Scheduling (Dousti & Sharif & Mohamadkhani)

  • Program for I/O Management (Daravi & Mahdinia)

  • Program For Implementation of Worst-Fit Algorithm (Raad&Taheri&Mahmoodzadeh)

  • Utilizing Threads using Nachos Operating System (Marzieh Khodaparast)

  • Multiprogramming using Nachos Operating System (Fasih&Khoshkam&Ahmadzadeh)

  • Caching and Virtual Memory using Nachos Operating System (Razmjooy & Amirnejad & Ojaghi)

  • Program for Implementation of Mutual Exclusion (Esmaeilifard & Sharif & Hatefi & Feizollahzadeh)

  • Program for Wait & Signal (Farzaneh jahanpoor & Maryam Hadipour)

  • Program for Address Translation (physical to logical) (Farmanbar & Yoosefi)


Textbooks and Other Resources

Main References: