Skip to content

abanoub-refaat/CS306-Operating-Systems

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS306: Operating Systems – Labs, Exercises, and Projects

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.

📚 Table of Contents

📘 Overview

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

🧠 Topics Covered

  • 🏁 Introduction to Assembly language
  • 🛠️ Assembly exercises and tutorials
  • 🔀 Multithreading in C
  • 🔐 Concurrency and synchronization (mutexes, semaphores)

🛠️ How to Use

  1. Clone the repository

    git clone https://github.com/abanoub-refaat/CS306-Operating-Systems.git
  2. Navigate to the relevant directory

    cd CS306-Operating-Systems/labs
  3. Compile and run a C file

    gcc example.c -o example -l pthread
    ./example

🦾 Assembly Programming Resources

Explore these markdown guides to get started with assembly:

Topics you’ll learn:

  • ✅ Installing emu8086
  • ✅ Register operations
  • ✅ Arithmetic instructions (ADD, SUB, MUL, DIV)
  • ✅ Defining variables and arrays
  • ✅ Conditional logic
  • ✅ Using external libraries

🖁️ Multithreading in C

Helpful guides and examples for working with threads in C:

About

Notes, assignments, and projects for the Operating Systems course (CS306). Topics include process management, memory allocation, concurrency, and system calls.

Topics

Resources

Stars

Watchers

Forks

Contributors