(A) On the basis of the operating system’s architecture, it is divided into the following categories –

(a) Network Operating System
(b) Distributed Operating System
(c) Multiprocessor Operating System

(B) On the basis of the use/application of the operating system, it is divided into the following categories –

(a) Embedded Operating System
(b) Batch Operating System
(c) Real Time Operating System
(d) Time-Sharing Operating System
(e) Database Operating System
(f) Multimedia Operating System

(C) On the basis of the number of users use the operating system at a time, it is divided into the following categories –        

(a) Single User Operating System
(b) Multi-User Operating System

(D) On the basis of tasks performed at a time, the operating system is divided into the following categories –

        (a) Single/Unitasking Operating System
(b) Multitasking Operating System

(E) On the basis of the use of the operating system in a computer network environment, it is divided into the following categories –

        (a) Client’s Operating System        
(b) Server Operating System

(F) On the basis of the function performed by an operating system individually, it is divided into the following categories –

       (a) General Purpose Operating System
       (b) Special Purpose Operating System

(G) On the basis of use whether it is free/paid or source code is available or not, an operating system is divided into the following categories –

       (a) Open Source(Free to use) Operating System – Linux
       (b) Paid Operating System – Rest of others

(H) On the basis of use in different types of devices/machines, the Operating system is divided into the following categories –

       (a) Desktop/PC Operating System – MS Windows, Linux, Mac OS, etc
       (b) Tablet Operating System – BlackBerry Tablet OS
       (c) Mobile/Smartphone Operating System – Android & iOS

(I) On the basis of the technique used by the operating system, it is divided into the following categories –

(a) Multithreaded Operating System


(a) Network Operating System


      • A network operating system is a collection of system software (OS) and associated/related protocols that allow a set of autonomous computers, which are interconnected by certain mediums in a computer network, to be used together in a coordinated, convenient and cost-effective manner.


      • This operating system works in a computer network environment.
      • Network operating systems focus on the use of remote services and resources existing in a network of computer systems.
      • In this operating system, there are multiple individual computers (usually called client computers) that are connected with at least a single or more remote/server machines with a network medium either with air or cable.
      • Here, each client computer has its own same/different private operating system, memory, processor, etc. along with a global remote system having a powerful specific operating system.
      •  In this environment, each user normally works on his/her own client system.
      • In this environment, users are typically aware of where/ which system, each of their files is kept and must move files from one system to another with explicit file transfer commands with the help of a remote machine.
      • The system/environment has little or no fault tolerance i.e. if 10% of the personal computers crash, only 10% of the users are out of business.


      • In this environment, users can access the various resources of the network hosts.
      • It provides, controlling access to particular resources to authorized users.
      • The use of remote resources by the users appears to be identical to the use of local resources.
      • It provides up-to-the-minute network documentation online.

(b) Distributed Operating System


      • Distributed operating systems are operating systems for a network of autonomous computers connected by a communication network.


      • A distributed operating system controls and manages the hardware and software resources of a distributed system such that its users view the entire system as a powerful monolithic computer system.
      • When a program is executed in a distributed system, the user is not aware of where the program is executed or of the location of the resources accessed.
      • Distributed operating systems focus on the effective utilization of resources in distributed computing environments.
      • Users have unique IDs in a distributed system.
      • Distributed systems today cover a wide spectrum of computer hardware, software, and topological configurations; resource-sharing services range from offline access to real-time access and topologies vary from locally distributed to geographically distributed.
      • Examples – LOCUS, etc.


      • A distributed operating system consists of similar to a traditional operating system, viz., process synchronization, deadlocks, process scheduling, file systems, interprocess communication, memory and buffer management, failure recovery, etc.
      • They lack both shared memory and a physical global clock, and unpredictable communication delays make the design of distributed operating systems much more difficult.


      • Cost-effectiveness in both computations and resources.
      • Resource sharing
        • Resource sharing is the main motivation for distributed systems.
        • The nature of the distribution and sharing of resources in a distributed system has changed due to advances in networking technology.
      • Reliability
        • Reliability is the availability of a resource despite failures in a system. A distributed environment enhanced the availability of resources through the Operating System, redundancy of resources, and communication paths. For example, the availability of a disk resource can be increased by having two or more disks located at different sites in the system. If one disk is unavailable due to a disk or site failure, a program can use some
          other disk. The availability of a data resource, e.g., a file, can be similarly enhanced by keeping copies of the file at various sites in the system.
      • Communication
        • Communication between users at different locations is greatly facilitated by using a distributed system easily. Communication continued even when users migrate to different sites of a system.
      • Incremental growth
        • Distributed systems are capable of incremental growth, i.e., It is the capabilities of a system (mainly its processing power) can be enhanced at a price proportional to the nature and size of the enhancement. 

(c) Multiprocessor Operating System


      • A multiprocessor operating system is an operating system that can manage and distribute workload across multiple processors (also known as CPUs or cores) in a computer system. This allows multiple tasks to be executed simultaneously, which can significantly improve system performance and efficiency.
      • A multiprocessor operating system is a type of operating system that is designed to work with computer systems that have multiple processors or CPUs (Central Processing Units). 


      • A typical multiprocessor system consists of a set of processors that share a set of physical memory blocks over an interconnection network.
      • A user is not aware of the presence of multiple processors and their interconnection network in a multiprocessor system.
      • The main goal of a multiprocessor operating system is to distribute the workload between different processors in an efficient and balanced manner, thereby improving the overall system performance.
        1. Task scheduling: The operating system must be able to assign tasks to different processors and ensure that each processor is being utilized efficiently.
        2. Memory management: The operating system must be able to manage memory access between multiple processors and ensure that there are no conflicts or data corruption.
        3. Inter-processor communication: The operating system must provide a mechanism for communication between different processors, allowing them to share data and synchronize their operations.
        4. Load balancing: The operating system must be able to balance the workload between different processors to ensure that each processor is working at optimal capacity.
        5. Scalability: The operating system must be scalable, allowing for the addition of more processors as the system grows in size.
      • Examples of multiprocessor operating systems include Linux, Unix, Windows Server, and macOS Server.
      • These operating systems are designed to work with multi-core processors, which are processors that contain multiple processing cores on a single chip.
      • In a multiprocessor system, the operating system must manage the allocation of system resources such as memory, input/output devices, and processing power among the processors. It must also ensure that tasks are executed in a coordinated and efficient manner, without interference or conflicts between them.
      • One of the key challenges/disadvantages is designing of a multiprocessor operating system. This requires careful synchronization and coordination mechanisms, such as locks and semaphores, to ensure that only one processor can access a shared resource at any given time.

        Another challenge is load balancing, which involves distributing the workload evenly across all processors to ensure that none are idle while others are overloaded. Load balancing algorithms can be used to dynamically adjust the distribution of workload based on system conditions and performance metrics.


      • The design of multiprocessor operating systems is the same as in a traditional operating system. But process synchronization, task scheduling, memory management, and protection and security become more complex because the main memory is shared by many physical processors.


      • A multiprocessor operating system controls and manages the hardware and software resources such that users view the entire system as a powerful uni-processor system.


There are many types of multiprocessor systems:-


(a)Loosely Coupled Multiprocessor System

          • A loosely coupled multiprocessor system is a type of computer system in which multiple processors or computers work together to perform a task, but they operate independently and are not tightly interconnected.
          • In other words, the processors in a loosely coupled system do not share a memory or communicate with each other in real time.
          • A loosely coupled multiprocessor system is a type of computer architecture where multiple processors are interconnected to work together as a whole in a distributed manner.
          • Each processor in a loosely coupled system has its own memory and can execute tasks independently.
          • When multiple processors need to work together on a task, they communicate through a network or other communication mechanism, such as message passing or shared files. This allows the processors to operate independently and work on different tasks simultaneously, without interfering with each other.
          • A loosely coupled multiprocessor system is typically used for tasks that can be divided into smaller subtasks that can be executed independently by different processors.
          • Loosely coupled systems are more scalable and flexible than tightly coupled systems.
          • They are often used in applications that require a high degree of parallelism and can tolerate some latency in communication between processors.
          • Examples of loosely coupled multiprocessor systems include clusters of computers connected by a network, and multi-core processors within a single computer.
          • These systems can be used for a variety of applications such as scientific simulations, data processing, and web serving.

(b)Tightly Coupled Multiprocessor System

          • A tightly coupled multiprocessor system(TCMP) is a computer system or architecture that has multiple processors that share a common memory and are closely/tightly interconnected (such that they can rapidly exchange data and synchronize their activities), allowing them to work together as a single system.
          • In a tightly coupled multiprocessor system, the processors can access and modify the shared memory concurrently, which enables parallel processing and improves system performance.
          • In a tightly coupled multiprocessor system, the processors communicate with each other through shared memory, message passing, or a combination of both.
          • One example of a tightly coupled multiprocessor system is a symmetric multiprocessing (SMP) system, where each processor has equal access to the system’s resources and can perform any task assigned to it.
          • Tightly coupled multiprocessor systems are commonly used in high-performance computing, scientific simulations, and data processing applications.
          • Overall, tightly coupled multiprocessor systems offer advantages in terms of performance and scalability but also require careful design to ensure proper synchronization, load balancing, and fault tolerance.
          • One advantage of a TCMP is that it can achieve higher performance than a single-processor system since the workload can be divided among multiple processors.
          • The disadvantage of this system is its design and programming which can be complex since the processors must communicate effectively and coordinate their activities to avoid conflicts and ensure the consistency of data. Also, TCMPs can be more expensive to build and maintain than single processor systems, due to the need for specialized hardware and software.
          • TCMPs are widely used in high-performance computing environments, such as supercomputers and data centers, where the ability to process large amounts of data quickly is essential.


(a)Homogeneous Multiprocessor System

          • A homogeneous multiprocessor system is a computer system or architecture that has multiple identical/same-type processors or CPUs, that share a common memory and are interconnected by a bus or network or connected together as a single shared-memory architecture.
          • In this system, all the processors have the same access capabilities to memory and other system resources, and they are all capable of executing the same set of instructions or same tasks.
          • The main advantage of a homogeneous multiprocessor system is that it allows for parallel processing of tasks, which can significantly improve system performance. This is because each processor can work on a separate task simultaneously.
          • The goal of this system is to achieve maximum performance by dividing a task into smaller parts that can be executed simultaneously. The processors work together to process the task, which results in faster execution times.
          • Homogeneous multiprocessor systems are commonly used in high-performance computing, scientific simulations, and large-scale data processing applications. They are also used in embedded systems, such as in automotive or aerospace applications, where high reliability and fault tolerance are required.
          • The disadvantage of this system is – (i) Its complex design and programming, as it requires specialized knowledge of parallel processing techniques and efficient memory management. (II) Additionally, communication between processors can also be complex, as data must be shared and coordinated between them to ensure the proper execution of tasks. (III) Also, a homogeneous multiprocessor system is that it can be difficult to scale. As the number of processors in the system increases, the amount of communication between the processors can become a bottleneck, which can limit the overall performance of the system. 

(b)Heterogeneous Multiprocessor System

          • A heterogeneous multiprocessor system (HMP) is a type of computer system that contains multiple processing units of different types, architectures, or capabilities, such as CPUs, GPUs, DSPs(Digital Signal Processors), or FPGAs, that work together to execute a program or a variety of programs.
          • The use of heterogeneous processors in a single system allows for better performance and power efficiency for a wide range of applications, as each processor type can handle tasks that they are specialized in, and can work together in parallel to execute tasks faster.
          • In an HMP system, the processors are interconnected using a high-speed communication network, such as a shared memory bus, a point-to-point network, or a high-speed interconnect, to enable efficient data sharing and task allocation.
          • HMP systems are becoming more prevalent in high-performance computing and embedded systems due to their ability to provide efficient parallel computing capabilities while reducing power consumption.
          • HMP systems require specialized hardware and software to effectively manage and distribute tasks among the different processing units. The software used to manage HMP systems is typically designed to take advantage of the unique capabilities of each processor type and distribute tasks according to their needs.
          • The examples/use/applications of HMP systems are – scientific simulations, machine learning, and video processing, among others. HMP systems are commonly used in applications that require high-performance computing, such as scientific simulations, machine learning, and video processing. 
          • The main advantage of an HMP system is its ability to leverage the strengths of different processor architectures to achieve high performance and energy efficiency. For example, CPUs are generally good at handling serial tasks, GPUs(Graphics Processor Units) are well-suited for parallel tasks, and FPGAs(field-programmable gate arrays) can be programmed for specialized tasks with high data throughput requirements.
          • Disadvantage: The designing and programming of HMP systems can be complex and challenging, as it requires expertise in multiple processor architectures and their associated programming models. 


(a) Shared Memory Multiprocessor System
          • A shared memory multiprocessor system is a type of computer architecture that allows multiple processors to access a shared pool of memory.
          • In this type of system, each processor has its own cache memory, but they all share a common physical memory space.
          • The benefit of a shared memory system is that it can provide high performance and flexibility for certain types of applications that require a lot of memory access. 
          • This system is used in scientific simulations, database management, and multimedia processing.
          • With a shared memory system, multiple processors can access the same data simultaneously, which can reduce the overall processing time.
          • One of the main disadvantages is that multiple processors of this system do not try to access the same memory location at the same time, which can lead to data corruption or inconsistencies. Another challenge with this shared memory system is scalability,i.e., as the number of processors in a system increases, the amount of contention for shared resources also increases, which can lead to performance degradation. To overcome this challenge, some shared memory systems use a hierarchical architecture that allows for better scalability by partitioning the memory and cache into smaller, more manageable units. Thus, this system requires careful design and management to ensure that they operate efficiently and reliably.
(b) Distributed Memory Multiprocessor System
          • A Distributed Memory Multiprocessor System(DMMS) is a type of parallel computing architecture in which multiple processors are connected to each other and have their own local memory.
          • In this architecture, the system is divided into multiple nodes or processors, each having its own local memory and processing power.
          • In a DMMS, each processor has its own local memory, which is directly accessible to that processor. However, to access data stored in another processor’s memory, a message-passing mechanism is required. This is because each processor has its own address space and cannot directly access the memory of another processor.
          • The communication between the nodes is achieved through a network that connects them, and each node can access data stored in its local memory and in the memory of other nodes in the system. The processors work together to solve a common problem, with each processor contributing its processing power and memory.
          • They provide high performance and scalability, allowing users to process large amounts of data and perform complex calculations in a shorter amount of time.
          • Distributed Memory Multiprocessor Systems are used in a wide range of applications, including scientific simulations, big data analytics, and machine learning. 
          • One common example of Distributed Memory Multiprocessor System is a cluster, which is a group of computers connected to each other through a network and working together to solve a common problem. Another example is a supercomputer, which is a highly powerful computer consisting of multiple processors and a large amount of memory. Some popular DMMS systems include MPI (Message Passing Interface), OpenMP, and OpenACC.
          • The programming model for a DMMS is more complex.
(c) Uniform Memory Access (UMA) System
          • Uniform Memory Access (UMA) is a computer memory architecture in which the time it takes to access any location in memory is essentially the same, regardless of the memory location or the processor accessing the memory.
          • In UMA, all processors have equal access to a shared memory pool, which is typically implemented using a single shared bus.
          • In UMA systems, all processors can access any memory location with equal latency, which simplifies programming and makes it easier to develop parallel algorithms. In other words, the access time to any memory location in UMA is uniform for all processors in the system.
          • In this architecture, each processor has equal access to the memory and can execute programs concurrently.
          • One of the disadvantages of this system is that the UMA system suffers from memory contention and scalability issues as the number of processors increases, as multiple processors may be contending for the same memory location at the same time, leading to performance degradation. It may also suffer from scalability issues as the number of processors increases.
          • UMA architectures are commonly used in symmetric multiprocessing (SMP) systems, where multiple processors share a common memory and a common bus or interconnect.
          • In UMA systems, the memory access time is not dependent on the location of the memory module or the processor accessing it. This is in contrast to Non-Uniform Memory Access (NUMA) systems, where the access time to a memory location may depend on the location of the processor relative to the memory module.
          • The advantage of UMA architecture is that it is simple to design and implement, and it allows for efficient communication between processors because they share the same memory.
          • The disadvantage of the UMA system is that, as the number of processors in the system increases, the memory bandwidth may become a bottleneck, leading to performance degradation. Additionally, UMA systems may not be scalable beyond a certain number of processors, making NUMA a more suitable architecture for larger systems.
          • Examples of UMA systems are multi-socket servers, high-performance computing clusters, and some shared-memory parallel computers.


(a) Embedded Operating System


      • Embedded Operating Systems are small OSs, designed to operate on small machines or devices with less autonomy.
      • An embedded operating system (OS) is a specialized type of operating system designed to run on embedded systems, which are small, dedicated computer systems that perform specific tasks or functions.  


      • They are very compact and extremely efficient by design and are able to operate with a limited amount of resources.
      • Embedded operating systems are typically optimized for low-power, limited-memory, and low-cost devices with specific hardware requirements.
      • Embedded operating systems are commonly used in a wide variety of applications, including industrial automation, automotive systems, consumer electronics, medical devices, and more i.e., these systems are commonly used in various electronic devices such as smartphones, digital cameras, routers, and medical equipment.
      • Embedded operating systems are typically designed to be lightweight, fast, and reliable, with a small footprint. They are usually optimized for specific hardware architectures and are often customized to fit the requirements of the embedded system.
      • They are typically tailored to the specific requirements of the application, which can include real-time processing, low latency, and high reliability.
      • Embedded systems are designed to perform specific tasks and often have limited resources, such as memory and processing power.
      • Some popular embedded operating systems are:
        1. FreeRTOS(A popular real-time operating system (RTOS) that is open-source and designed for microcontrollers.)
        2. ThreadX
        3. VxWorks(A real-time operating system that is commonly used in mission-critical applications such as aerospace, defense, and medical devices.)
        4. Linux Embedded(Embedded distributions such as OpenEmbedded, Yocto Project, Minix 3, and Buildroot are designed specifically for embedded systems.)
        5. Android (for mobile devices and other embedded systems)
        6. Windows Embedded (Windows CE for industrial and embedded systems)


        • It makes small machines or devices operable.

    (b) Batch Operating System


        • In the early 1950s, General Motors Research Laboratories (GMRL) introduced the first Single-Stream batch processing systems.
        • Batch OS was very popular in the 1970s. 


        • Early computers, before batch OS, were very expensive, due to less processor utilization. Also, the wasted time is due to poor scheduling and setup time.
        • Batch processing is the most primitive type of operating system.
        • This operating system is termed “batch operating” because the input data (job) are first collected and filtered as groups or batches of a similar type having similar needs into sets of records and each batch is processed sequentially as a unit(group). Thus, a Batch is defined as a group of jobs with similar needs. The batch operating system allows users to form batches.
        • Each user prepares its jobs/batch on an offline device like a punch card and submits it to the computer operator for further processing. Now, OS keeps a number of jobs in memory and executes them without any manual information, and jobs are processed in the order of submission, i.e., first come first served fashion.


        • The batch operating system is a type of earlier and comparatively less used os in which os executes each batch sequentially, processing all jobs of a batch and considering them as a single process.


        • The principle behind the simple batch-processing system is the use of a piece of software known as the monitor.
        • In batch OS, the user no longer has direct access to the processor. Instead, the user submits the job on cards or tape to a computer operator, who batches the jobs together sequentially and places the entire batch on an input device, for use by the monitor. Each program is constructed to branch back to the monitor when it completes processing, at which point the monitor automatically begins loading the next program. 
        • With a batch operating system, processor time alternates between the execution of user programs and the execution of the monitor.
        • Examples are – Payroll Systems, Transactions Processing Systems, forecasting, statistical analysis, & large scientific number-crunching programs, etc. 


    There are mainly two types of batch operating systems. These are:-

    (i) Simple Batched System: Use the basic concept of batch during operations.

    (ii) Multi-programmed batched system: Use Spooling concept during processing.


        • They don’t require any special or specific hardware to input data.
        • Scheduling & memory management in a batch system is very simple.
        • Batch operating systems load less stress on the CPU and include minimal user interaction.
        • Here, batch processes are completed even in the absence of humans’ direct interaction.


        • Debugging is very difficult in batch systems.
        • A user cannot interact with the batch operating system after the submission of the job or during the processing i.e. the computer system and the user has no direct interaction.
        • Computer operators must have full knowledge of batch systems.
        • In a batch system, whenever an error occurs in one of the jobs of a batch then, all the remaining jobs get affected i.e; they have to wait until the error is resolved.
        • Due to turnaround delays & offline debugging, the batch is not very convenient for program development.

    (c) Real Time Operating System


        • An OS is used in time-critical environments where data must be processed extremely quickly in time because the output influences immediate decisions.


        • Real-time systems are used for space flights, airport traffic control, industrial processes, sophisticated medical equipment, telephone switching, etc.
        • A real-time system must be 100 percent responsive in time.
        • In real-time systems, the correctness of the computations not only depends upon the logical correctness of the computation but also upon the time at which the results are
        • In this system, if the timing constraints of the system are not met, system failure is said to have occurred.
        • Real-time operating systems are especially used in environments where a large number of events, mostly external to the computer system, must be accepted & processed in a short time or within certain deadlines.
        • A primary objective of real-time systems is to provide quick event-response times and thus meet the scheduling deadlines. User convenience & resource utilization are of secondary concern to real-time system designers.
        • It is common for a real-time system to be expected to process bursts of thousands of interrupts per second without missing a single event. Such requirements usually cannot be met by multi-programming alone, and real-time operating systems usually rely on some specific policies & techniques for doing their job. The work of Multitasking operations in this OS is accomplished by scheduling processes for execution independently of each other. Each process is assigned a certain level of priority that corresponds to the relative importance of the event that it services. The processor is normally allocated to the highest-priority process among those that are ready to execute. Higher-priority processes usually preempt execution of the lower-priority processes. This form of scheduling called priority-based preemptive scheduling is used by a majority of real-time systems.
        • Unlike, time-sharing OS, the process population in real-time systems is fairly static, and there is comparatively little moving of programs between primary & secondary storage. On the other hand, processes in real-time systems tend to cooperate closely, thus necessitating support for both separation & sharing of memory.
        • The time-critical device management is one of the main characteristics of real-time systems. In addition to providing sophisticated forms of interrupt management & I/O buffering, real-time operating systems often provide system calls to allow user processes to connect themselves to interrupt vectors & to service events directly. File management is usually found only in larger installations of real-time systems.
        • There are some embedded real-time systems that also exist such as an onboard automotive controller, which may not even have any secondary storage, to fulfill the requirements.
        • The primary objective of file management in real-time systems is usually the speed of access, rather than the efficient utilization of secondary storage
        • Examples are – PSOS, VRTX, etc.

    (d) Time-Sharing Operating System


        • A time-sharing operating system (OS) is an operating system that allows multiple users to access a computer system at the same time.


        • In this, OS divides the computer’s resources such as CPU time, memory, and storage among the users or applications that are running simultaneously.
        • These operating systems provide various tools and features that allow users to manage their resources and applications effectively, such as process scheduling, file sharing, and network management.
        • In a time-sharing system, each user has a terminal or computer connected to the main computer, and the OS allocates a small amount of CPU time to each user in a round-robin fashion.
        • This OS allows multiple users to use the computer simultaneously and interact with it in real-time as if they were the only user.
        • Time-sharing OSs are particularly useful in situations where many users need access to a single computer, such as in universities, research labs, or business environments.
        • They also facilitate collaborative work and allow users to share data and resources.
        • Examples of time-sharing OSs include Unix, Linux, and Windows Server. 
        • Most time-sharing systems use time-slicing scheduling.
        • Time-sharing is a popular representative of multi-programmed, multi-user systems. 
        • The mode of operation in this OS generally provides a quick response time to interactive programs.
        • In addition to general program-development environments, many large computer-aided design & text-processing systems belong to this category.
        • Examples are – Multics, etc.

      (e) Database Operating System


          • A database operating system (DBOS) is a specialized type of operating system that is specifically designed to manage the database and control access to a database.


          • The primary function of a DBOS is to ensure the efficient and secure management of the database.
          • It also provides tools for users to manipulate data and perform queries.
          • It provides an interface between the user and the database management system (DBMS) and is responsible for performing tasks such as file management, memory management, and access control.
          • A database operating system plays a critical role in the efficient and reliable management of data in large-scale enterprise environments.
          • A DBOS also provides features such as transaction management, concurrency control, and backup and recovery. These features ensure the reliability and availability of the database even in the face of hardware failures, power outages, or other disruptions.
          • The choice of a particular DBOS depends on the specific needs and requirements of an organization or application.
          • A DBOS provides a layer of software between the database applications and the hardware.
          • DBOS is designed to handle large amounts of data and to provide efficient access to that data.
          • It includes features such as concurrency control, backup and recovery, security, and query optimization.
          • It also provides a set of tools for managing the database, such as utilities for loading data into the database, monitoring database activity, and tuning database performance.
          • These systems are widely used in many enterprise environments to support mission-critical applications such as e-commerce, customer relationship management, and financial transactions.


          • Some examples of database operating systems include Oracle, Solaris, IBM DB2, MySql, PostgreSQL, and Microsoft SQL Server. These database packages perform several complex specialized operations like operating systems such as data storage, retrieval, concurrency control, backup and recovery, partitioning, clustering, advanced data compression, encryption, integration with other database products, and query optimization.
          • It offers features like data warehousing, data mining, and analysis services.
          • It offers features like replication, high availability, and support for multiple storage engines.
          • It is also widely used for mission-critical applications that require high availability, scalability, and performance.

      (f) Multimedia Operating System


          • A multimedia operating system is a type of operating system that is specifically designed to handle complex multimedia tasks such as audio, video, graphics, and animation.


          •  These tasks require a significant amount of processing power and memory, as well as specialized software and hardware components such as sound cards and video cards.
          • Multimedia operating systems typically provide features such as:
            1. Support for various multimedia formats and codecs.
            2. High-performance multimedia playback and recording capabilities.
            3. Advanced graphics and animation rendering capabilities.
            4. Audio and video editing tools.
            5. Network streaming and sharing features.
          • Examples of multimedia operating systems include Windows Media Center, Mac OS X, Android, and Linux distributions such as Ubuntu Studio and AV Linux. These operating systems are often used by professionals in the media and entertainment industries, as well as by home users who want to create or consume multimedia content on their computers.


      (a) Single User Operating System


          • A single-user operating system is a type of operating system designed to be used by only one user at a time.


          • This OS is designed to work on personal computers and does not require complex configurations or a network connection.
          • The single-user operating system provides a single GUI interaction interface for the user to interact with the computer hardware and other applications.
          • Single-user operating systems typically provide features such as file management, security, and system updates.
          • This OS also supports a wide range of software applications, including productivity tools, multimedia applications, and games.
          • Single-user operating systems are popular among individual users who require a simple and intuitive interface to perform everyday tasks on their personal computers.
          • This type of operating system is typically found on personal computers and workstations, where a single user interacts with the system using a keyboard, mouse, and display.
          • Single-user operating systems are designed to provide a user-friendly interface that allows users to easily navigate and control the system.
          • These operating systems are designed to provide a wide range of functionality to individual users, including web browsing, multimedia playback, document editing, and gaming.
          • Some popular examples of single-user operating systems are Microsoft Windows, Apple macOS, and Linux distributions like Ubuntu and Fedora.

      (b) Multi-User Operating System


          • Multi-user os is also called Multi-access OS.


          • Multi-user operating system is a powerful OS that supports or handles multiple users’ work at a time. 
          • Multi-access operating systems allow simultaneous access to a computer system through two or more terminals.


          • Multi-user operating systems provide facilities for the maintenance of individual user environments & therefore require user accounting.
          • An example of a Multi-user OS is (a dedicated transaction processing system, such as) an airline or railway ticket reservation system, that supports hundreds of active terminals under the control of a single program.


      (a) Uni/Single Tasking Operating System


          • These operating systems were prevalent in early computer systems, where the computational resources were limited, and there was a need to optimize system performance.
          • “Uni Tasking” is a term that refers to an operating system that only allows a single task to run at a time.
          • While uni-tasking systems were common in the early days of computing, modern operating systems are typically multi-tasking, meaning they can run multiple processes or tasks concurrently.


          • Uni-tasking operating systems are those that allow only one task to be executed at a time.


          • In a uni-tasking operating system, the entire system’s resources are dedicated to executing a single task, which makes the system more efficient.
          • However, this system cannot handle multiple tasks simultaneously, which can be a significant disadvantage in modern computer systems.
          • Uni-tasking operating systems may still be used in specialized systems, such as embedded systems, where the focus is on executing a single task efficiently and reliably. However, for most general-purpose computing tasks, multi-tasking operating systems are the best ones.
          • In such a system, the CPU (central processing unit) is dedicated to executing a single process or task, and no other tasks can be executed until the current task is completed or interrupted.
          • While uni-tasking systems have the advantage of simplicity and predictable behavior, they may not be suitable for modern computing environments that require more complex and demanding workloads. 
          • One of the best examples of Uni tasking OS is MS-DOS.

      (b) Multitasking Operating System


          • The terms multitasking & multiprocessing are often used interchangeably, although in multiprocessing more than one CPU is involved whereas in multitasking only one CPU is involved, it switches from one program to another so quickly that it gives the appearance of executing all of the programs at the same time.


          • Multitasking OS is a type of OS that allows more than one program to run concurrently. This ability to execute more than one task at the same time, a task being a program is called multitasking.


          • A multitasking OS is distinguished from others by its ability to support the concurrent execution of two or more active processes.
          • Multitasking is usually implemented by maintaining the code & data of several processes in memory simultaneously.
          • There are two basic types of multitasking: –
            (i) preemptive multitasking (ii) cooperative multitasking

      (i) In preemptive multitasking, the OS parcels out CPU time slices to each program. OS/2, Windows 95, Windows NT, & UNIX are examples of preemptive multitasking.

      (ii) In cooperative multitasking, each program can control the
      CPU as long as it needs it. If a program is not using the CPU, however, it can allow another program to use it temporarily. Microsoft Windows 3.x & the MultiFinder use cooperative multitasking.

      (c) Multiprogramming Operating System(MPOS)


          • A multiprogramming operating system permits multiple programs to be loaded into memory & execute the programs concurrently/at the same time.
          • Multiprogramming is a technique used in operating systems to allow multiple programs to run simultaneously on a computer system.


          • MPOS enables a computer to run more than one program concurrently, which can increase the overall throughput,  efficiency, and utilization of the system’s resources.
          • In a multiprogramming operating system, the CPU is shared among multiple programs through a technique called time-sharing. The operating system assigns a slice of time to each program, allowing it to execute a few instructions before switching to another program. This process continues in a round-robin fashion until all programs have completed their execution.
          • Multiprogramming operating systems can also take advantage of features such as virtual memory, which allows programs to use more memory than is physically available by swapping data between the memory and the hard disk.
          • A multiprogramming operating system is designed to manage the execution of multiple programs by allowing them to share the CPU and other system resources.
          • In a multiprogramming operating system, the CPU is shared among multiple programs, with each program being allocated a certain amount of time to execute. This allows several programs to run at the same time, improving the overall efficiency of the system.
          • To manage the execution of multiple programs, the operating system must be able to allocate and deallocate system resources such as memory, CPU time, and I/O devices. This is typically done using a scheduler, which decides which program to execute next based on various factors such as priority, resource availability, and time slice.
          • One of the main advantages of a multiprogramming operating system is that it can improve system utilization by allowing multiple programs to run simultaneously, which can reduce idle time and increase throughput. However, it can also introduce complexities such as resource contention, synchronization, and scheduling overhead, which must be managed by the operating system.
          • Examples are – Windows O/S, UNIX or Linux O/S, etc.


      (a) Client’s Operating System


          • A client operating system is an operating system that is designed/installed to run on personal computers, and other devices used by individuals and uses services provided by a server.


          • It is designed to be used by individual users, rather than managing server resources.
          • The choice of client operating system will depend on the needs and preferences of the user, as well as the applications and services that the user needs to access.
          • A client operating system provides an interface that allows users to interact with the computer and its applications.
          • Some common examples of client operating systems are Windows, Mac OS, Linux,  Android, and iOS.

      (b) Server Operating System


          • A server operating system is a type of operating system designed to run on servers, which are computers that provide services to other computers or devices on a network.


          • Server Operating Systems are the ones that run on the dedicated machine servers.
          • Server Operating Systems allow sharing of multiple resources like hardware, files, or print services.
          • Web pages are stored on a dedicated server to handle requests and responses.
          • Server operating systems are typically more robust and stable than desktop operating systems and are designed to handle heavier workloads and manage multiple users and applications simultaneously.
          • A server operating system is an operating system that is specifically designed to operate on server hardware and manage the resources of a server.
          • This OS often includes features such as security and networking tools, virtualization capabilities, and remote administration capabilities.
          • Choosing the right server operating system depends on factors such as the type of applications and services that will be running on the server, hardware requirements, and user preferences.
          • A server operating system is different from a desktop operating system in that it is optimized for running server applications, providing network services, and managing data storage.
          • Examples of popular server operating systems are:- Microsoft Windows Server[to provide features such as Active Directory, web server support, and virtualization.], macOS Server[to provide file sharing, email server support, and VPN connectivity], Linux (such as CentOS, Ubuntu, Red Hat, and Debian), Unix (such as Solaris, AIX, and HP-UX), FreeBSD(A Unix-like operating system that is often used on servers, particularly for web hosting).


        (a) Multithreaded Operating System


            • Threads are lightweight processes that share the same memory space and can communicate with each other more efficiently than separate processes.


            • A multithreaded operating system is an operating system that can handle multiple threads of execution concurrently.
            • A multithreaded operating system is a type of operating system that supports the execution of multiple threads of execution within a single process.


            • Multithreaded OS allows different parts of a single program(thread) to run concurrently.
            • In a multithreaded operating system, a single process can have multiple threads of execution that can run simultaneously on different CPU cores or processors.
            • For this OS, the programmer must carefully design the program in such a way that all the threads can run at the same time without interfering with each other.
            • In a multithreaded operating system, each thread can execute independently of the others, allowing for improved performance and responsiveness.
            • In addition to improving performance and responsiveness, multithreading also allows for better resource utilization.
            • With multiple threads of execution, an operating system can allocate resources more efficiently, reducing the amount of time that a system spends idle or waiting for resources to become available.
            • Multithreading allows an operating system to handle multiple tasks simultaneously, improving the overall performance and responsiveness of the system.
            • Multithreaded operating systems are common in modern computing systems, including desktop computers, servers, and mobile devices.
            • The concept of multithreading allows a program to divide its work into smaller, more manageable parts, and execute these parts concurrently. For example, in a web server, a separate thread can be used to handle each incoming connection, allowing multiple clients to be served simultaneously. Similarly, in a database management system, a separate thread can be used to handle each query, improving the overall throughput of the system. Similarly again, if a user is running a word processing application, a multithreaded operating system can allow the user to type, while at the same time, the system can perform background tasks such as saving the document, checking for spelling errors, and updating the user interface.
            • Examples of multithreaded operating systems are Linux, Windows, macOS, and Android.



        Leave a Reply

        Your email address will not be published. Required fields are marked *

        This site uses Akismet to reduce spam. Learn how your comment data is processed.