Getting familiar with OS fundamentals is important to understand the workings of system programs and the interaction between various applications within the computer system. Operating systems manage hardware resources, and software applications and provide an interface and services for program execution.
As the computer starts booting, the operating system comes into action and starts managing every application, even booting the computer to be ready for work. It is important to be well aware of the OS fundamentals if you are someone who uses computers frequently or works in a field related to computers. In this article, let us learn some of the most important os fundamentals and their importance.
What is an Operating System?
The operating system is a complete package made from a software program that is used to connect various applications on the computer system i,e. Hardware and software applications. It is important to be well aware of the workings of operating systems. An operating system acts as an interface between user and hardware programs and applications.
Operating systems provide a fair ground for the users to interact with the applications and execute programs easily and efficiently. It provides an user-friendly interface for the users, for example, Windows, macOS, Linux, Unix, etc are some of the examples of an operating system.
Important Operating System Fundamentals
The operating system manages processes, schedules, synchronizes, assigns tasks, and manages many more tasks. Below, we will get an overview of the OS fundamentals.
1. Process Management
The most important role of an operating system is managing processes, allocating resources, and scheduling them based on different factors. It is the responsibility of the operating system to ensure efficient multitasking and coordination of CPU between multiple processes.
Some of the important concepts of OS fundamentals are process states, context switching, inter-process communication, etc.
- Process States: When a process makes the transition between different states during execution. Some of the important states of the process are new, ready, running, waiting, and terminated.
- Process Control Block (PCB): A Process Control Block (PCB) consists of all important information of a process managed by the operating system. Some of the important components of PCB are Process ID, state, program counter (PC), CPU registers, memory management information, etc.
- Context Switching: Context switching is an important part of the operating system that saves the state of the current running process and loads the state of another process in the CPU.
- Inter Process Communication (IPC): IPC refers to a mechanism that allows processes to communicate and synchronize with each other in an active state. It is an important mechanism, especially for multi-process systems.
2. Memory Management
Managing memory efficiently is an important responsibility for the operating system where the OS is responsible for allocating and deallocating memory to programs, especially during their execution. Operating systems handle virtual memory, main memory, memory segmentation and optimize the usage as per the availability of the resource.
Some of the important os fundamentals in memory management include paging, virtual memory, segmentation, garbage allocation, etc.
-
- Paging: It is a memory management scheme that divides physical memory into fixed sized blocks also known as “frames” and logical memory into blocks of the same size known as “pages”. It is used to eliminate fragmentation and map logical to physical addresses in a computer.
- Garbage Collection: Garbage collection is an automatic memory management process that reclaims unused memory allocated to objects no longer in use. It is available in Python and Java programming languages.
- Segmentation: Segmentation is an important OS fundamental in memory management which divides memory into variable-sized segments based on the logical divisions of a program. It provides a logical view of memory and implements external fragmentation in the memory.
- Virtual Memory: A technique that gives the illusion of a large main memory by using disk space to extend physical memory. It is used to implement paging and swapping. Execution of larger programs are completed in virtual memory.
- Swapping: The process of temporarily moving a process or part of it from main memory to disk (and vice versa) to free memory. It is used to increase multitasking capability of a computer system.
- Fragmentation: Fragmentation takes place when memory is used inefficiently, leading to gaps or unused memory space in memory allocation. There are two types of fragmentation i,e. Internal fragmentation and external fragmentation.
- Cache Memory: A small and high-speed memory located close to the CPU that stores frequently accessed data for quick retrieval of processes.
- Thrashing: Thrashing is a condition where excessive paging or swapping occurs which reduces the overall system performance. It might occur due to insufficient space in the main memory.
3. System Calls & Scheduling Algorithms
System calls are an interface that helps the programs to request any additional services from the kernel. This feature is provided by the operating system itself and is one of the most important of fundamentals. While, scheduling algorithms are used to decide which process comes first and which will come next based on priority, arrival time, waiting time, and more. Let us know some of the important scheduling algorithms provided on a frequently used operating system.
- First Come First Serve (FCFS): The process that arrives first in the ready queue is executed first. It is a non-preemptive scheduling algorithm that suffers from the convoy effect in a short process. No context switching occurs in the FCFS algorithm.
- Shortest Job First (SJF): The process with the shortest estimated execution time is selected next for execution. It is a non-preemptive algorithm that consists of context switching and starvation of long processes.
- Shortest Remaining Time First (SRTF): The process with the shortest remaining execution time is executed next. It is a preemptive extended form of SJF. It also consists of starvation in long processes.
- Round Robin Scheduling (RR): Round Robin Scheduling is one of the most popular scheduling algorithms which execute processes in a cyclic order with each process having a fixed time slice also known as quantum. It is a preemptive and effective scheduling algorithm.
- Priority Scheduling Algorithm: Processes in priority scheduling are scheduled based on priority, with higher-priority processes executed first. It can be preemptive or non-preemptive and consist of starvation in processes.
- Longest Job First (LJF): Long Job First (LJF) executes the process with the longest execution time first. It is a non-preemptive algorithm.
4. Deadlock
Deadlock is an unwanted situation while executing processes in an operating system where processes have to wait indefinitely for resources held by each other. The situation of deadlock must be removed or prevented from taking place in the first place.
Some of the prevention techniques for deadlock are Deadlock avoidance using a banker’s algorithm, Resource allocation graphs, etc. Deadlock is an important of os fundamentals which must be known to you if you are in tech field.
5. Virtualization and Cloud Concepts In OS Fundamentals
Virtual machines and Cloud Computing are two of the most popular concepts in operating systems. VMs or Virtual Machines allow multiple instances of the operating system to run on a single hardware system. VMware and Virtual Box are some of the common examples of Virtualization interface platforms.
Cloud Computing is an operating system designed to run on servers i,.e online. It provides scalable resource management where the operating systems are hosted on a cloud environment rather than local system storage. Cloud OS is a lightweight OS that stores data and connects resources and systems to a remote server to access web based applications. Google Chrome OS, and Microsoft Windows Azure are some of the examples of Cloud OS.
6. User Interfaces
There are two types of user interfaces available in an operating system. Command line Interface (CLI) and Graphical User Interface (GUI) are two of the most important types of User interfaces.
Command Line Interfaces are based on a command based operating system with very less focus on user friendly interface. GUI offers a friendly user interface. The user interface is the first visible entity you will see on your computer after loading.
Relation Between DevOps And Operating System (OS)
Getting familiar with the concepts of OS Fundamentals is important to implement the DevOps concepts in the real world. DevOps depends on the operating system to enable efficient and continuous development, deployment, integration, and management. There are many tools in DevOps such as Ansible, Puppet, Chef, Jenkins, Kubernetes, Grafana, and more which depend on the operating system to automate repetitive tasks.
OS Fundamentals form the basis for DevOps practices used in the development of software applications. Operating systems help to manage resources and ensure compatibility for the devOps tools. CI/CD pipelines are managed by OS and DevOps tools like GitLab, and Jenkins require OS configurations to execute the build and testing environment. IaC (infrastructure as a Code) requires OS configurations to deploy and test. An operating system is an important part of the entire system which allows DevOps to run its tools and configuration and implement continuous and effective software development.
Learn DevOps and Cloud Computation With PW Skills
Become a DevOps pro engineer with PW Skills DevOps and Cloud Computing Course. Learn advanced devOps tools like Ansible, Kubernetes, Jenkins, Terraform, Dockers, etc. Work on real world projects and get in-depth tutorials, practice exercises, assignments, and more under the supervision of expert mentors. Learn more about the roles of os fundamentals such as Linux in implementing devOps. Know more about our DevOps course only at pwskills.com.
OS Fundamentals FAQs
Q1. What is an Operating System?
Ans: The operating system is a complete package made from a software program that is used to connect various applications on the computer system i,e. Hardware and software applications.
Q2. What are some popular examples of operating systems?
Ans: Windows, Linux, Unix, macOS, Android, and iOS, are some of the popular examples of operating systems.
Q3. How many types of operating systems are present?
Ans: The two popular types of operating systems are Command Line Interface (CLI) and Graphical User Interface (GUI), where Graphical User Interface offers a more friendly user interface than a command based operating system.
Q4. Why is the operating system important?
Ans: The operating system is an important part of the computer system which acts as a bridge between the user and the hardware. It manages process allocation, runs system programs, manages memories, and provides a secure and stable environment for execution of programs. It is important to be well aware of the OS fundamentals to understand the importance of Operating systems.