Welcome to the repository for CS306: Operating Systems Lab. This repo includes notes, exercises, and project files related to process management, memory allocation, concurrency, and system calls.
This repository is organized into separate folders and markdown files covering key topics in operating systems. You'll find:
- Notes and tutorials on Assembly programming
- Hands-on examples for Multithreading in C
- Practical guidance on mutexes, semaphores, and more
- π Introduction to Assembly language
- π οΈ Assembly exercises and tutorials
- π Multithreading in C
- π Concurrency and synchronization (mutexes, semaphores)
-
Clone the repository
git clone https://github.com/abanoub-refaat/CS306-Operating-Systems.git
-
Navigate to the relevant directory
cd CS306-Operating-Systems/labs -
Compile and run a C file
gcc example.c -o example -l pthread ./example
Explore these markdown guides to get started with assembly:
βΆοΈ Assembly Basics- π CMP & Flags in Emu8086
- π More Comparison Examples
- π Conditional Jumps β Explained with Examples
Topics youβll learn:
- β Installing emu8086
- β Register operations
- β Arithmetic instructions (ADD, SUB, MUL, DIV)
- β Defining variables and arrays
- β Conditional logic
- β Using external libraries
Helpful guides and examples for working with threads in C: