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 | 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. |
- Process
- Thread
- CPU Scheduling
- Executing Environment
- Interrupt/Exception/Trap
- Timer Interrupt
- System Calls
- Interrupt/Exception/Trap
- Memory Management
- Page Replacement Algorithm
- Synchronization
- Deadlock
- File System
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
- Deadlock
-
Solutions
- Concurrency
- Semaphore
- Dekker Solution
- Peterson Solution
- Semaphore
- Deadlock
- Banker's Algorithm
- Concurrency
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