Skip to content

This repository contains the program codes of the sytem calls used in Operating Systems.

Notifications You must be signed in to change notification settings

im-zshan/Operating-Systems

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Operating Systems

An operating system (OS) is the program that, after being initially loaded into the computer by a boot program, manages all of the other application programs in a computer.

This repository will contain the project codes/system calls based on Assembly Language and xv6.

  • System Calls - A system call is a method for a computer program to request a service from the kernel of the operating system on which it is running.
  • xv6 - A much more functional OS that we can absorb its essence by tracing code.

Labs of Operating System

Labs Details
Lab 1 Install any version of Ubuntu on your system and learn the basic shell commands
Lab 2 Implement the process manipulation system calls like fork(), exec(), etc.
Lab 3 Implement the file manipulation system calls like open(), close(), etc.
Lab 4 Implement the system calls for manipulating the file descriptors.
Lab 5 Implement the system calls for Inter-Process communication.
Lab 6 Implementing the new signal handlers for the standard signals.
Lab 7 Understand the use of free and pmap utilities in Linux.
Lab 8 Install the Qemu emulator on your system and run xv6 operating system on Qemu.
Lab 9 Implement a multi-threaded program doing the matrix multiplication using multiple threads.
Lab 10 Use Pthread lock functions to provide solution to the critical section problem.
Lab 11 Implement the condition variables and semaphores using Pthread library.
Lab 12 Understand the working of file system calls in xv6.
Lab 13 Understand the working of file status system calls in xv6.

Course Topics

  • Process
  • Thread
  • CPU Scheduling
  • Executing Environment
    • Interrupt/Exception/Trap
      • Timer Interrupt
    • System Calls
  • Memory Management
  • Page Replacement Algorithm
  • Synchronization
  • Deadlock
  • File System

Final Summary

Algorithms:

  • Scheduling Algorithm

    • Process/Thread CPU Scheduling
    • Disk Scheduling
  • Replacement Algorithm

    • Page Replacement
    • TLB Replacement
    • Cache Replacement
  • Other Algorithm

    • Deadlock
      • Deadlock prevention
      • Deadlock avoidance
      • Deadlock discover and recover
  • Solutions

    • Concurrency
      • Semaphore
        • Dekker Solution
        • Peterson Solution
    • Deadlock
      • Banker's Algorithm

Data Structure

  • Free Space Management (for Memory or Disk)
    • Bitmap (Bit vector)
    • Free Table
    • Free Linked List
  • Concurrency
    • Semaphore
    • Monitor
      • Hoare Monitor
      • Mesa Monitor
    • Mutex Lock + Condition Variable

The Course has been completed under the guidance of Prof. Janib ul Bashir

Course Code: ITT250