Skip to content

CSE321: Operating System provides a general understanding of the principles and concepts governing the functions of operating systems and acquaints students with the state-of-the-art approaches that make the design, implementation, and operation of complex operating systems possible.

Notifications You must be signed in to change notification settings

ShafiurShuvo/CSE321-Operating-Systems

Repository files navigation

CSE321 - Operating System

This repository contains lab assignments, practice tasks, and projects completed during the CSE321 Operating System course. (Summer 2025)

📂 Repository Structure

Lab Sessions

  • Lab-1: Linux Shell Commands
  • Lab-2: Introducing C Programming I
  • Lab-3: Introducing C Programming II
  • Lab-4: System Calls & Process Creation
  • Lab-5: Threads & Synchronization
  • Lab-6: Inter Process Communication

Lab Assignments

  • Lab-Assignment-1: System Calls
  • Lab-Assignment-2: Multi Threading
  • Lab-Assignment-3: Message Queue
  • Lab-Assignment-4: Access Control Simulation

Lab Tasks (These tasks were given to evaluate after completion of each lab)

  • labtask1: Introducing C Programming I
  • labtask2: System Calls & Process Creation
  • labtask3: Threads & Synchronization
  • labtask4: Inter Process Communication

🛠️ Technologies Used

  • Programming Language: C
  • Operating System: Linux
  • Tools: GCC compiler, Shell scripting, pthread library

🚀 Getting Started

Prerequisites

  • Linux operating system (or WSL on Windows)
  • GCC compiler
  • Basic knowledge of C programming

Compilation

Most C programs can be compiled using:

gcc filename.c -o output
./output

For programs using threads:

gcc filename.c -pthread -o output
./output

📝 Key Topics Covered

Process Management

  • Fork, exec, wait system calls
  • Process creation and termination
  • Process synchronization

Threading

  • POSIX threads (pthread)
  • Thread creation and joining
  • Mutex locks and semaphores
  • Race conditions and deadlock prevention

Inter-Process Communication

  • Pipes and named pipes
  • Message queues
  • Shared memory
  • Signals

System Calls

  • File operations (open, read, write, close)
  • Process control (fork, exec, wait)
  • Memory management

👤 Author

Shafiur Shuvo

📄 License

This repository is for educational purposes as part of the CSE321 course.

🤝 Contributing

This is a personal academic repository. However, suggestions and feedback are always welcome!


Last Updated: November 2025

About

CSE321: Operating System provides a general understanding of the principles and concepts governing the functions of operating systems and acquaints students with the state-of-the-art approaches that make the design, implementation, and operation of complex operating systems possible.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages