Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • Software and Tools
    • School Learning
    • Practice Coding Problems
  • Go Premium
  • Aptitude
  • Engineering Mathematics
  • Discrete Mathematics
  • Operating System
  • DBMS
  • Computer Networks
  • Digital Logic and Design
  • C Programming
  • Data Structures
  • Algorithms
  • Theory of Computation
  • Compiler Design
  • Computer Org and Architecture
Open In App
Next Article:
What is an Operating System?
Next article icon

Operating System Tutorial

Last Updated : 08 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

An Operating System(OS) is a software that manages and handles hardware and software resources of a computing device.

  • Responsible for managing and controlling all the activities and sharing of computer resources among different running applications.
  • A low-level Software that includes all the basic functions like processor management, memory management, file management, etc.
  • It mainly acts a government for your system that has different departments to manage different resources.
  • Examples are Linux, Unix, Windows 11, MS DOS, Android, macOS and iOS.
OS1

Basics :

  1. Introduction
  2. Types of OS
  3. Kernel in OS
  4. System Call
  5. System Initialization

Process Scheduling :

  1. Process Introduction
  2. Process Table and Control Block
  3. Process Management Introduction
  4. Process Scheduler
  5. CPU Scheduling Algorithms
  6. Preemptive vs Non-Preemptive
  7. Dispatcher vs scheduler
  8. Starvation and Aging in Operating Systems

>> Quiz on CPU Scheduling

Process Synchronization

  1. Inter Process Communication
  2. Introduction to Process Synchronization
  3. Critical Section
  4. Peterson’s Algorithm in Process Synchronization
  5. Lock variable synchronization mechanism
  6. Semaphores in operating system
  7. Classical IPC Problems 
  8. Communication using signals in C
  9. Mutex vs. Semaphore
  10. Monitors for Process Synchronization
  11. Dekker’s algorithm
  12. Bakery Algorithm
  13. Mutex lock for Linux Thread Synchronization
  14. Priority Inversion

>> Quiz on Process Management in OS

Deadlock :

  1. Deadlock Introduction
  2. Deadlock Prevention And Avoidance
  3. Deadlock Detection And Recovery
  4. Banker’s Algorithm
  5. Deadlock, Starvation, and Livelock
  6. Resource Allocation Graph (RAG)
  7. Methods of resource allocation
  8. Program for Deadlock free condition

>> Quiz on Deadlock

Multithreading:

  1. Operating System | Thread
  2. Threads and its types
  3. Operating System | User Level thread Vs Kernel Level thread
  4. Process-based and Thread-based Multitasking
  5. Multi threading models
  6. Benefits of Multithreading
  7. Operating System | Remote Procedure call (RPC)

Memory Management :

  1. Introduction to memory and memory units
  2. Memory Management in Operating System
  3. Buddy System: Memory allocation technique
  4. Paging
  5. Segmentation
  6. Virtual Memory
  7. Memory Interleaving
  8. Operating system based Virtualization
  9. Swap Space
  10. Page Fault Handling
  11. Memory Segmentation in 8086 Microprocessor
  12. Program for Next Fit algorithm in Memory Management
  13. Overlays in Memory Management
  14. Belady’s Anomaly
  15. Page Replacement Algorithms
  16. Second Chance (or Clock) Page Replacement Policy
  17. Allocating kernel memory (buddy system and slab system)
  18. Static and Dynamic Libraries | Set 1
  19. Working with Shared Libraries | Set 1
  20. Named Pipe or FIFO with example C program
  21. Tracing memory usage in Linux

>> Quiz on Memory Management

Disk Management:

  1. File Systems
  2. Unix File System
  3. Implementing Directory Management using Shell Script
  4. File Directory | Path Name
  5. Structures of Directory
  6. File Allocation Methods
  7. File Access Methods
  8. Secondary memory
  9. Secondary memory – Hard disk drive
  10. Disk Scheduling Algorithms
  11. Program for SSTF disk scheduling algorithm
  12. What exactly Spooling is all about?
  13. Difference between Spooling and Buffering
  14. Free space management

>> Quiz on Input Output Systems

Misc

  1. Computer Memory
  2. Introduction to UNIX System
  3. Microkernel
  4. Kernel I/O Subsystem (I/O System)
  5. Important Linux Commands (leave, diff, cal, ncal, locate and ln)
  6. Process states and Transitions in a UNIX Process
  7. Introduction to Linux Shell and Shell Scripting
  8. ‘crontab’ in Linux with Examples
  9. Real time systems
  10. Tasks in Real Time systems
  11. Monolithic Kernel and key differences from Microkernel
  12. Get/Set process resource limits in C
  13. Dual Mode operations in OS

Types of Operating System

  • Batch OS (e.g. Transactions Process, Payroll System, etc.)
  • Multi-programmed OS(e.g. Windows, UNIX, macOS, etc.)
  • Timesharing OS(e.g. Multics, Linux, etc.)
  • Real-Time OS(e.g. PSOS, VRTX, etc.)
  • Distributed OS(e.g. LOCUS, Solaris, etc.)

Operating System Functions

  • Memory and processor Management
  • Network Management
  • Security Management
  • File Management
  • Error Detection
  • Job Accounting
  • Last Minute Notes (LMNs) | Operating Systems
  • Commonly Asked Operating Systems Interview Questions
  • ‘Quizzes’ on Operating Systems !
  • ‘Practice Problems’ on Operating Systems !

Introduction to Operating System
Visit Course explore course icon
Video Thumbnail

Introduction to Operating System

Video Thumbnail

Types of Operating System

Video Thumbnail

Multithreading Introduction

Video Thumbnail

OS - Thread vs Process

Video Thumbnail

Difference between User Threads and Kernel Threads

Next Article
What is an Operating System?

K

kartik
Improve
Article Tags :
  • Operating Systems
  • GATE CS

Similar Reads

    Operating System Tutorial
    An Operating System(OS) is a software that manages and handles hardware and software resources of a computing device. Responsible for managing and controlling all the activities and sharing of computer resources among different running applications.A low-level Software that includes all the basic fu
    4 min read

    OS Basics

    What is an Operating System?
    An Operating System is a System software that manages all the resources of the computing device. Acts as an interface between the software and different parts of the computer or the computer hardware. Manages the overall resources and operations of the computer. Controls and monitors the execution o
    9 min read
    Types of Operating Systems
    Operating Systems can be categorized according to different criteria like whether an operating system is for mobile devices (examples Android and iOS) or desktop (examples Windows and Linux). Here, we are going to classify based on functionalities an operating system provides.8 Main Operating System
    11 min read
    Commonly Used Operating System
    There are various types of Operating Systems used throughout the world and this depends mainly on the type of operations performed. These Operating Systems are manufactured by large multinational companies like Microsoft, Apple, etc. Let's look at the few most commonly used OS in the real world: Win
    9 min read
    Operating System Services
    An operating system is software that acts as an intermediary between the user and computer hardware. It is a program with the help of which we are able to run various applications. It is the one program that is running all the time. Every computer must have an operating system to smoothly execute ot
    6 min read
    Operating Systems Structures
    The operating system can be implemented with the help of various structures. The structure of the OS depends mainly on how the various standard components of the operating system are interconnected and merge into the kernel. This article discusses a variety of operating system implementation structu
    8 min read
    Booting and Dual Booting of Operating System
    When a computer or any other computing device is in a powerless state, its operating system remains stored in secondary storage like a hard disk or SSD. But, when the computer is started, the operating system must be present in the main memory or RAM of the system.What is Booting?When a computer sys
    7 min read
    Introduction of System Call
    A system call is a programmatic way in which a computer program requests a service from the kernel of the operating system on which it is executed. A system call is a way for programs to interact with the operating system. A computer program makes a system call when it requests the operating system'
    11 min read

    Process & Threads

    Introduction of Process Management
    Process Management for a single tasking or batch processing system is easy as only one process is active at a time. With multiple processes (multiprogramming or multitasking) being active, the process management becomes complex as a CPU needs to be efficiently utilized by multiple processes. Multipl
    8 min read
    Process Table and Process Control Block (PCB)
    While creating a process, the operating system performs several operations. To identify the processes, it assigns a process identification number (PID) to each process. As the operating system supports multi-programming, it needs to keep track of all the processes. For this task, the process control
    6 min read
    Process Schedulers in Operating System
    A process is the instance of a computer program in execution. Scheduling is important in operating systems with multiprogramming as multiple processes might be eligible for running at a time.One of the key responsibilities of an Operating System (OS) is to decide which programs will execute on the C
    7 min read
    Context Switching in Operating System
    Context Switching in an operating system is a critical function that allows the CPU to efficiently manage multiple processes. By saving the state of a currently active process and loading the state of another, the system can handle various tasks simultaneously without losing progress. This switching
    4 min read
    Thread in Operating System
    A thread is a single sequence stream within a process. Threads are also called lightweight processes as they possess some of the properties of processes. Each thread belongs to exactly one process.In an operating system that supports multithreading, the process can consist of many threads. But threa
    7 min read

    CPU Scheduling

    CPU Scheduling in Operating Systems
    CPU scheduling is a process used by the operating system to decide which task or process gets to use the CPU at a particular time. This is important because a CPU can only handle one task at a time, but there are usually many tasks that need to be processed. The following are different purposes of a
    8 min read
    Preemptive and Non-Preemptive Scheduling
    In operating systems, scheduling is the method by which processes are given access the CPU. Efficient scheduling is essential for optimal system performance and user experience. There are two primary types of CPU scheduling: preemptive and non-preemptive. Understanding the differences between preemp
    5 min read
    Multiple-Processor Scheduling in Operating System
    In multiple-processor scheduling multiple CPUs are available and hence Load Sharing becomes possible. However multiple processor scheduling is more complex as compared to single processor scheduling. In multiple processor scheduling, there are cases when the processors are identical i.e. HOMOGENEOUS
    8 min read
    Thread Scheduling
    There is a component in Java that basically decides which thread should execute or get a resource in the operating system. Scheduling of threads involves two boundary scheduling. Scheduling of user-level threads (ULT) to kernel-level threads (KLT) via lightweight process (LWP) by the application dev
    7 min read

    Deadlock

    Introduction of Deadlock in Operating System
    A deadlock is a situation where a set of processes is blocked because each process is holding a resource and waiting for another resource acquired by some other process. In this article, we will discuss deadlock, its necessary conditions, etc. in detail.Deadlock is a situation in computing where two
    11 min read
    Banker's Algorithm in Operating System
    Banker's Algorithm is a resource allocation and deadlock avoidance algorithm used in operating systems. It ensures that a system remains in a safe state by carefully allocating resources to processes while avoiding unsafe states that could lead to deadlocks.The Banker's Algorithm is a smart way for
    8 min read
    Wait For Graph Deadlock Detection in Distributed System
    Deadlocks are a fundamental problem in distributed systems. A process may request resources in any order and a process can request resources while holding others. A Deadlock is a situation where a set of processes are blocked as each process in a Distributed system is holding some resources and that
    5 min read
    Deadlock Prevention And Avoidance
    Deadlock prevention and avoidance are strategies used in computer systems to ensure that different processes can run smoothly without getting stuck waiting for each other forever. Think of it like a traffic system where cars (processes) must move through intersections (resources) without getting int
    5 min read
    Deadlock Detection And Recovery
    Deadlock Detection and Recovery is the mechanism of detecting and resolving deadlocks in an operating system. In operating systems, deadlock recovery is important to keep everything running smoothly. A deadlock occurs when two or more processes are blocked, waiting for each other to release the reso
    6 min read
    Deadlock Ignorance in Operating System
    In this article we will study in brief about what is Deadlock followed by Deadlock Ignorance in Operating System. What is Deadlock? If each process in the set of processes is waiting for an event that only another process in the set can cause it is actually referred as called Deadlock. In other word
    5 min read

    Memory & Disk Management

    Memory Management in Operating System
    Memory is a hardware component that stores data, instructions and information temporarily or permanently for processing. It consists of an array of bytes or words, each with a unique address. Memory holds both input data and program instructions needed for the CPU to execute tasks.Memory works close
    7 min read
    Fixed (or static) Partitioning in Operating System
    Fixed partitioning, also known as static partitioning, is one of the earliest memory management techniques used in operating systems. In this method, the main memory is divided into a fixed number of partitions at system startup, and each partition is allocated to a process. These partitions remain
    8 min read
    Variable (or Dynamic) Partitioning in Operating System
    In operating systems, Memory Management is the function responsible for allocating and managing a computer’s main memory. The memory Management function keeps track of the status of each memory location, either allocated or free to ensure effective and efficient use of Primary Memory. Below are Memo
    4 min read
    Paging in Operating System
    Paging is the process of moving parts of a program, called pages, from secondary storage (like a hard drive) into the main memory (RAM). The main idea behind paging is to break a program into smaller fixed-size blocks called pages.To keep track of where each page is stored in memory, the operating s
    8 min read
    Segmentation in Operating System
    A process is divided into Segments. The chunks that a program is divided into which are not necessarily all of the exact sizes are called segments. Segmentation gives the user's view of the process which paging does not provide. Here the user's view is mapped to physical memory. Types of Segmentatio
    4 min read
    Segmentation in Operating System
    A process is divided into Segments. The chunks that a program is divided into which are not necessarily all of the exact sizes are called segments. Segmentation gives the user's view of the process which paging does not provide. Here the user's view is mapped to physical memory. Types of Segmentatio
    4 min read
    Page Replacement Algorithms in Operating Systems
    In an operating system that uses paging for memory management, a page replacement algorithm is needed to decide which page needs to be replaced when a new page comes in. Page replacement becomes necessary when a page fault occurs and no free page frames are in memory. in this article, we will discus
    7 min read
    File Systems in Operating System
    A computer file is defined as a medium used for saving and managing data in the computer system. The data stored in the computer system is completely in digital format, although there can be various types of files that help us to store the data.File systems are a crucial part of any operating system
    8 min read
    File Systems in Operating System
    A computer file is defined as a medium used for saving and managing data in the computer system. The data stored in the computer system is completely in digital format, although there can be various types of files that help us to store the data.File systems are a crucial part of any operating system
    8 min read

    Advanced OS

    Multithreading in Operating System
    A thread is a path that is followed during a program’s execution. The majority of programs written nowadays run as a single thread. For example, a program is not capable of reading keystrokes while making drawings. These tasks cannot be executed by the program at the same time. This problem can be s
    7 min read
    Compaction in Operating System
    Compaction is a technique to collect all the free memory present in the form of fragments into one large chunk of free memory, which can be used to run other processes. It does that by moving all the processes towards one end of the memory and all the available free space towards the other end of th
    3 min read
    Belady's Anomaly in Page Replacement Algorithms
    Belady's Anomaly is a phenomenon in operating systems where increasing the number of page frames in memory leads to an increase in the number of page faults for certain page replacement algorithms. Normally, as more page frames are available, the operating system has more flexibility to keep the nec
    11 min read
    Techniques to handle Thrashing
    Prerequisite - Virtual Memory Thrashing is a condition or a situation when the system is spending a major portion of its time servicing the page faults, but the actual processing done is very negligible. Causes of thrashing:High degree of multiprogramming.Lack of frames.Page replacement policy.Thras
    6 min read
    Free Space Management in Operating System
    Free space management is a critical aspect of operating systems as it involves managing the available storage space on the hard disk or other secondary storage devices. The operating system uses various techniques to manage free space and optimize the use of storage devices. Here are some of the com
    7 min read
    RAID (Redundant Arrays of Independent Disks)
    RAID (Redundant Arrays of Independent Disks) is a technique that makes use of a combination of multiple disks for storing the data instead of using a single disk for increased performance, data redundancy, or to protect data in the case of a drive failure. The term was defined by David Patterson, Ga
    15 min read

    Practice

    Last Minute Notes – Operating Systems
    An Operating System (OS) is a system software that manages computer hardware, software resources, and provides common services for computer programs. It acts as an interface between the user and the computer hardware.Table of Content Types of Operating System (OS): ThreadsProcessCPU Scheduling Algor
    15+ min read
    Operating System Interview Questions
    An operating system acts as a GUI between the user and the computer system. In other words, an OS acts as an intermediary between the user and the computer hardware, managing resources such as memory, processing power, and input/output operations. Here some examples of popular operating systems incl
    15+ min read
    Operating Systems - GATE CSE Previous Year Questions
    The Operating System(OS) subject has high importance in GATE CSE exam because:large number of questions nearly 10-12% of the total asked significant weightage (9-11 marks) across multiple years which can also be seen in the below given table:YearApprox. Marks from OSNumber of QuestionsDifficulty Lev
    2 min read
`; $(commentSectionTemplate).insertBefore(".article--recommended"); } loadComments(); }); }); function loadComments() { if ($("iframe[id*='discuss-iframe']").length top_of_element && top_of_screen articleRecommendedTop && top_of_screen articleRecommendedBottom)) { if (!isfollowingApiCall) { isfollowingApiCall = true; setTimeout(function(){ if (loginData && loginData.isLoggedIn) { if (loginData.userName !== $('#followAuthor').val()) { is_following(); } else { $('.profileCard-profile-picture').css('background-color', '#E7E7E7'); } } else { $('.follow-btn').removeClass('hideIt'); } }, 3000); } } }); } $(".accordion-header").click(function() { var arrowIcon = $(this).find('.bottom-arrow-icon'); arrowIcon.toggleClass('rotate180'); }); }); window.isReportArticle = false; function report_article(){ if (!loginData || !loginData.isLoggedIn) { const loginModalButton = $('.login-modal-btn') if (loginModalButton.length) { loginModalButton.click(); } return; } if(!window.isReportArticle){ //to add loader $('.report-loader').addClass('spinner'); jQuery('#report_modal_content').load(gfgSiteUrl+'wp-content/themes/iconic-one/report-modal.php', { PRACTICE_API_URL: practiceAPIURL, PRACTICE_URL:practiceURL },function(responseTxt, statusTxt, xhr){ if(statusTxt == "error"){ alert("Error: " + xhr.status + ": " + xhr.statusText); } }); }else{ window.scrollTo({ top: 0, behavior: 'smooth' }); $("#report_modal_content").show(); } } function closeShareModal() { const shareOption = document.querySelector('[data-gfg-action="share-article"]'); shareOption.classList.remove("hover_share_menu"); let shareModal = document.querySelector(".hover__share-modal-container"); shareModal && shareModal.remove(); } function openShareModal() { closeShareModal(); // Remove existing modal if any let shareModal = document.querySelector(".three_dot_dropdown_share"); shareModal.appendChild(Object.assign(document.createElement("div"), { className: "hover__share-modal-container" })); document.querySelector(".hover__share-modal-container").append( Object.assign(document.createElement('div'), { className: "share__modal" }), ); document.querySelector(".share__modal").append(Object.assign(document.createElement('h1'), { className: "share__modal-heading" }, { textContent: "Share to" })); const socialOptions = ["LinkedIn", "WhatsApp","Twitter", "Copy Link"]; socialOptions.forEach((socialOption) => { const socialContainer = Object.assign(document.createElement('div'), { className: "social__container" }); const icon = Object.assign(document.createElement("div"), { className: `share__icon share__${socialOption.split(" ").join("")}-icon` }); const socialText = Object.assign(document.createElement("span"), { className: "share__option-text" }, { textContent: `${socialOption}` }); const shareLink = (socialOption === "Copy Link") ? Object.assign(document.createElement('div'), { role: "button", className: "link-container CopyLink" }) : Object.assign(document.createElement('a'), { className: "link-container" }); if (socialOption === "LinkedIn") { shareLink.setAttribute('href', `https://www.linkedin.com/sharing/share-offsite/?url=${window.location.href}`); shareLink.setAttribute('target', '_blank'); } if (socialOption === "WhatsApp") { shareLink.setAttribute('href', `https://api.whatsapp.com/send?text=${window.location.href}`); shareLink.setAttribute('target', "_blank"); } if (socialOption === "Twitter") { shareLink.setAttribute('href', `https://twitter.com/intent/tweet?url=${window.location.href}`); shareLink.setAttribute('target', "_blank"); } shareLink.append(icon, socialText); socialContainer.append(shareLink); document.querySelector(".share__modal").appendChild(socialContainer); //adding copy url functionality if(socialOption === "Copy Link") { shareLink.addEventListener("click", function() { var tempInput = document.createElement("input"); tempInput.value = window.location.href; document.body.appendChild(tempInput); tempInput.select(); tempInput.setSelectionRange(0, 99999); // For mobile devices document.execCommand('copy'); document.body.removeChild(tempInput); this.querySelector(".share__option-text").textContent = "Copied" }) } }); // document.querySelector(".hover__share-modal-container").addEventListener("mouseover", () => document.querySelector('[data-gfg-action="share-article"]').classList.add("hover_share_menu")); } function toggleLikeElementVisibility(selector, show) { document.querySelector(`.${selector}`).style.display = show ? "block" : "none"; } function closeKebabMenu(){ document.getElementById("myDropdown").classList.toggle("show"); }
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences