Skip to content

Amey-Thakur/OPERATING-SYSTEM-AND-OPERATING-SYSTEM-LAB

Repository files navigation

University of Mumbai

Operating System and Operating System Lab

CSC405 & CSL404 · Semester IV · Computer Engineering

License: CC BY 4.0 University Institution Curated by

A comprehensive academic resource for Operating System (OS) and Operating System Laboratory (OS Lab), covering process management, scheduling algorithms, memory management, file systems, and practical implementations using C and Python.


Overview  ·  Contents  ·  Reference Books  ·  The Wall  ·  Personal Preparation  ·  Assignments  ·  Practice Test  ·  Laboratory  ·  Mini-Project  ·  Syllabus  ·  Usage Guidelines  ·  License  ·  About  ·  Acknowledgments


Overview

Operating System (CSC405) and Operating System Lab (CSL404) are core subjects in the Second Year (Semester IV) of the Computer Engineering curriculum at the University of Mumbai. These courses provide foundational knowledge of operating system concepts, including process management, memory optimization, file systems, and input/output handling.

Course Topics

The curriculum encompasses several key domains in operating systems:

  • Process Management: Processes, threads, scheduling algorithms (FCFS, SJF, SRTN, RR).
  • Synchronization: Critical section problem, semaphores, monitors, classic problems of synchronization.
  • Deadlocks: Prevention, avoidance, detection, and recovery.
  • Memory Management: Paging, segmentation, virtual memory, page replacement algorithms.
  • File Systems: File concepts, access methods, directory structure, protection.
  • I/O Systems: I/O hardware, application I/O interface, kernel I/O subsystem.
  • Disk Scheduling: FCFS, SSTF, SCAN, C-SCAN algorithms.

Repository Purpose

This repository represents a curated collection of study materials, reference books, assignments, and personal preparation notes compiled during my academic journey. The primary motivation for creating and maintaining this archive is simple yet profound: to preserve knowledge for continuous learning and future reference.

As I progress in my career, I recognize that OS fundamentals remain essential for systems programming, backend development, and cloud computing. This repository serves as my intellectual reference point: a resource I can return to for relearning concepts, reviewing methodologies, and strengthening understanding when needed.

Why this repository exists:

  • Knowledge Preservation: To maintain organized access to comprehensive study materials beyond the classroom.
  • Continuous Learning: To support lifelong learning by enabling easy revisitation of fundamental OS concepts.
  • Academic Documentation: To authentically document my learning journey through OS and OS Lab.
  • Community Contribution: To share these resources with students and learners who may benefit from them.

Note

All materials in this repository were created, compiled, and organized by me throughout my undergraduate program (2018-2022) as part of my coursework, laboratory assignments, and project implementations.


Repository Contents

Reference Books

This collection includes comprehensive reference materials covering all major topics:

# Resource Focus Area
1 OS Techmax Complete syllabus coverage
2 OS Notes Comprehensive lecture notes by Amey Thakur
3 CPU Scheduling Process scheduling algorithms
4 File Management File systems and operations
5 IO Management Input/Output handling
6 Job Sequencing Deadline scheduling problems
7 OS Question Bank Practice questions for exam preparation
8 OS VIVA Oral examination preparation guide
9 Rough Work Draft notes and calculations
10 SEM - IV Books List Curated book recommendations

The Wall

Collaborative Study Notes by Amey & Mega

Amey Thakur
Amey Thakur

ORCID
Mega Satish
Mega Satish

ORCID

The Wall - Notes Authored by MEGA SATISH

Comprehensive chapter-wise notes curated by Mega Satish, covering all essential topics:

Chapter Resource Topics Covered
1 OS Chapter - 1 Introduction to Operating Systems
2 OS Chapter - 2 Process Management
3 OS Chapter - 3 Process Scheduling and Algorithms
4 OS Chapter - 4 Process Synchronization and Deadlocks
5 OS Chapter - 5 Memory Management
6 OS Chapter - 6 File Systems and I/O

Important

COVID-19 Impact: This coursework was completed during the COVID-19 pandemic in 2020. Due to the nationwide lockdown and the sudden transition to online learning, several planned laboratory sessions and collaborative note-taking activities could not be carried out as originally intended. Despite these challenges, efforts were made to adapt and preserve as much work as possible.


Personal Preparation

Study materials and planning resources for effective exam preparation:

# Resource Description
1 OS Notes Comprehensive lecture notes by Amey Thakur
2 Syllabus Breakdown Detailed module-wise syllabus notes
3 Module Planning Topic organization and study schedule
4 Examination Blueprint Question paper pattern and marking scheme

Assignments

Academic assignments for comprehensive learning and practice:

# Assignment Date Description
1 Assignment 2 March 2, 2020 Process scheduling and management concepts
2 Assignment 3 March 23, 2020 Memory management and synchronization

Topics Covered: Process Scheduling (FCFS, SJF, Round Robin, Priority Scheduling) · Synchronization (Critical section problem, Semaphores, Monitors) · Memory Management (Paging, Segmentation, Virtual Memory) · Deadlocks (Prevention, Avoidance, Detection, Recovery)


Practice Test

Mid-semester practice assessment:

# Test Date Time Class
1 Practice Test OS July 5, 2020 10:00 AM - 11:00 AM SE B-50

Operating System Laboratory

The laboratory component (CSL404) focuses on the practical implementation of these concepts, involving shell scripting, system calls, and simulation of CPU scheduling algorithms using C and Python.

Total Experiments Language Language Lab Manual

Live Demo

Tip

Live Implementation: For a comprehensive visual showcase, visit the OS Lab Portfolio Dashboard. For the complete source code and detailed documentation, visit the Operating System Lab directory. Process visualization is key. Always draw process state diagrams and Gantt charts on paper before coding scheduling algorithms. Trace through each time quantum, calculate waiting/turnaround times step-by-step, and visualize memory allocation patterns. Understanding the underlying state transitions and resource allocation is essential for implementing efficient OS simulations.

Laboratory Experiments

# Experiment Topic Algorithm Source Code
1 Experiment 4 System Calls File Handling Operations View
2 Experiment 5 CPU Scheduling FCFS & SJF View

Program Details

Experiment 4: File Handling System Calls (1 Program)
Program Algorithm Description Code
File_Handling_System_Calls.c File I/O Create, open, read, and write operations View
Experiment 5: CPU Scheduling Algorithms (2 Programs)
Program Algorithm Description Code
FCFS_Scheduling_Algorithm.py FCFS First-Come, First-Served scheduling View
SJF_Scheduling_Algorithm.py SJF Shortest Job First scheduling (Non-preemptive) View

Laboratory Documentation

# Resource Description
1 Interactive Lab Portfolio Interactive dashboard with source code descriptions and diagrams
2 Laboratory Journal Complete record of experiments with theory, diagrams, and analysis
3 Lab README Detailed navigation guide with program descriptions

Operating System Mini-Project

💻 Compound and Simple Interest Calculator

A robust command-line utility for financial calculations

Project Platform Technology Status

Important

🤝🏻 Special Acknowledgement

Special thanks to Hasan Rizvi for his meaningful contributions, guidance, and support that helped shape this work.

Project Overview

A robust command-line tool written in Shell Script to calculate simple and compound interest, entered parameters, and financial summaries. This mini-project demonstrates proficiency in shell scripting and mathematical computations in a Linux environment. It highlights the use of shell commands for input/output operations, arithmetic calculations, and logic control flow.

Resources

# Resource Description
1 Project Repository Complete source code and documentation
2 Project Report Detailed documentation of logic and execution

Syllabus

Official CBCGS Syllabus
Complete Second Year Computer Engineering syllabus document from the University of Mumbai, including detailed course outcomes, assessment criteria, and module specifications for Operating System and Operating System Lab.

Important

Always verify the latest syllabus details with the official University of Mumbai website, as curriculum updates may occur after this repository's archival date.


Usage Guidelines

This repository is openly shared to support learning and knowledge exchange across the academic community.

For Students
Use these resources as reference materials for understanding concepts, reviewing OS algorithms, and preparing for examinations. All content is organized for self-paced learning.

For Educators
These materials may serve as curriculum references, assignment examples, or supplementary teaching resources. Attribution is appreciated when utilizing content.

For Researchers
The documentation and organization may provide insights into academic resource curation and educational content structuring.


License

This repository and all linked academic content are made available under the Creative Commons Attribution 4.0 International License (CC BY 4.0). See the LICENSE file for complete terms.

Note

Summary: You are free to share and adapt this content for any purpose, even commercially, as long as you provide appropriate attribution to the original author.


About This Repository

Created & Maintained by: Amey Thakur
Academic Journey: Bachelor of Engineering in Computer Engineering (2018-2022)
Institution: Terna Engineering College, Navi Mumbai
University: University of Mumbai

This repository represents a comprehensive collection of study materials, reference books, assignments, and personal preparation notes curated during my academic journey. All content has been carefully organized and documented to serve as a valuable resource for students pursuing Operating System & Operating System Lab.

Connect: GitHub  ·  LinkedIn  ·  ORCID

Acknowledgments

Grateful acknowledgment to Mega Satish for her exceptional contribution to this repository through "THE WALL" - comprehensive chapter-wise notes that became an invaluable resource for understanding complex OS concepts. Her constant support, patience, and clarity throughout this journey made a real difference. Learning alongside her was transformative, not only because she explained concepts so clearly, but because she truly cared about understanding them together. Her thoughtful approach to teaching, openness to discussion, and steady encouragement turned challenges into meaningful learning moments. This work reflects the growth that came from learning side by side. Thank you, Mega, for everything you shared and taught along the way.

Grateful acknowledgment to Hasan Rizvi for his exceptional contribution to this repository through the Simple and Compound Interest Calculator project. Working alongside Hasan was a truly enriching experience - his technical expertise, creative problem-solving, and unwavering dedication made every challenge feel surmountable. Beyond his scripting skills, it was his collaborative spirit and enthusiasm for innovation that transformed this project from a concept into a robust utility. His patience in debugging, willingness to explore new approaches, and commitment to delivering quality work inspired growth and learning throughout the development process. Thank you, Hasan, for being an outstanding project partner and for all the knowledge you shared along the way.

Grateful acknowledgment to the faculty members of the Department of Computer Engineering at Terna Engineering College for their guidance and instruction in Operating Systems. Their clear teaching and continued support helped develop a strong understanding of system internals.

Special thanks to the mentors and peers whose encouragement, discussions, and support contributed meaningfully to this learning experience.



Computer Engineering (B.E.) - University of Mumbai

Semester-wise curriculum, laboratories, projects, and academic notes.