diff --git a/docs/Operating System/_category_.json b/docs/Operating System/_category_.json new file mode 100644 index 000000000..5e10d9347 --- /dev/null +++ b/docs/Operating System/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Operating System", + "position": 8, + "link": { + "type": "generated-index", + "description": "Operating System lies in the category of system software. It basically manages all the resources of the computer" + } +} diff --git a/docs/Operating System/function_of_OS.md b/docs/Operating System/function_of_OS.md new file mode 100644 index 000000000..4f12c42e4 --- /dev/null +++ b/docs/Operating System/function_of_OS.md @@ -0,0 +1,184 @@ +--- +id: function-of-operating-system +title: function-of-operating-system +sidebar_label: Function-of-operating-system +sidebar_position: 7 +tags: [operating_system, create database, commands] +description: An Operating System acts as a communication bridge (interface) between the user and computer hardware. +--- + +# Functions of Operating System + +An Operating System acts as a communication bridge (interface) between the user and computer hardware. The purpose of an operating system is to provide a platform on which a user can execute programs conveniently and efficiently. + +An operating system is a piece of software that manages the allocation of Computer Hardware. The coordination of the hardware must be appropriate to ensure the correct working of the computer system and to prevent user programs from interfering with the proper working of the system. + +The main goal of the Operating System is to make the computer environment more convenient to use and the secondary goal is to use the resources most efficiently. + +## What is an Operating System? + +An operating system is a program that manages a computer’s hardware. It also provides a basis for application programs and acts as an intermediary between the computer user and computer hardware. The main task an operating system carries out is the allocation of resources and services, such as the allocation of memory, devices, processors, and information. The operating system also includes programs to manage these resources, such as a traffic controller, a scheduler, a memory management module, I/O programs, and a file system. The operating system simply provides an environment within which other programs can do useful work. + +## Why are Operating Systems Used? + +Operating System is used as a communication channel between the computer hardware and the user. It works as an intermediate between system hardware and end-user. Operating System handles the following responsibilities: + +- It controls all the computer resources. + +- It provides valuable services to user programs. + +- It coordinates the execution of user programs. + +- It provides resources for user programs. + +- It provides an interface (virtual machine) to the user. + +- It hides the complexity of software. + +- It supports multiple execution modes. + +- It monitors the execution of user programs to prevent errors. + +## Functions of an Operating System + +### Memory Management + +The operating system manages the Primary Memory or Main Memory. Main memory is fast storage and it can be accessed directly by the CPU. For a program to be executed, it should be first loaded in the main memory. An operating system manages the allocation and deallocation of memory to various processes and ensures that the other process does not consume the memory allocated to one process. An Operating System performs the following activities for Memory Management: + +- It keeps track of primary memory, i.e., which bytes of memory are used by which user program. + +- In multiprogramming, the OS decides the order in which processes are granted memory access, and for how long. + +- It allocates the memory to a process when the process requests it and deallocates the memory when the process has terminated or is performing an I/O operation. + + ![alt text](image-1.png) + +### Processor Management + +In a multi-programming environment, the OS decides the order in which processes have access to the processor, and how much processing time each process has. This function of OS is called Process Scheduling. An Operating System performs the following activities for Processor Management: + +- Manages the processor’s work by allocating various jobs to it and ensuring that each process receives enough time from the processor to function properly. + +- Keeps track of the status of processes. The program which performs this task is known as a traffic controller. + +- Allocates the CPU (processor) to a process. + +- Deallocates the processor when a process is no longer required. + + ![alt text](image-2.png) + +### Device Management + +An OS manages device communication via its respective drivers. It performs the following activities for device management: + +- Keeps track of all devices connected to the system. Designates a program responsible for every device known as the Input/Output controller. + +- Decides which process gets access to a certain device and for how long. + +- Allocates devices effectively and efficiently. + +- Deallocates devices when they are no longer required. + +- Controls the working of input-output devices, receives requests from these devices, performs specific tasks, and communicates back to the requesting process. + +### File Management + +A file system is organized into directories for efficient or easy navigation and usage. These directories may contain other directories and other files. An Operating System carries out the following file management activities: + +- Keeps track of where information is stored, user access settings, the status of every file, and more. These facilities are collectively known as the file system. + +- Keeps track of information regarding the creation, deletion, transfer, copy, and storage of files in an organized way. + +- Maintains the integrity of the data stored in these files, including the file directory structure, by protecting against unauthorized access. + + ![alt text](image-3.png) + +### User Interface or Command Interpreter + +The user interacts with the computer system through the operating system. Hence OS acts as an interface between the user and the computer hardware. This user interface is offered through a set of commands or a graphical user interface (GUI). Through this interface, the user interacts with the applications and the machine hardware. + + ![alt text](image-4.png) + +### Booting the Computer + +The process of starting or restarting the computer is known as booting. If the computer is switched off completely and if turned on then it is called cold booting. Warm booting is a process of using the operating system to restart the computer. + +### Security + +The operating system uses password protection to protect user data and similar other techniques. It also prevents unauthorized access to programs and user data. The operating system provides various techniques which assure the integrity and confidentiality of user data: + +- Protection against unauthorized access through login. + +- Protection against intrusion by keeping the firewall active. + +- Protecting the system memory against malicious access. + +- Displaying messages related to system vulnerabilities. + +### Control Over System Performance + +Operating systems play a pivotal role in controlling and optimizing system performance. They act as intermediaries between hardware and software, ensuring that computing resources are efficiently utilized. One fundamental aspect is resource allocation, where the OS allocates CPU time, memory, and I/O devices to different processes, striving to provide fair and optimal resource utilization. Process scheduling, a critical function, helps decide which processes or threads should run when, preventing any single task from monopolizing the CPU and enabling effective multitasking. + + ![alt text](image-5.png) + +### Job Accounting + +The operating system keeps track of time and resources used by various tasks and users. This information can be used to track resource usage for a particular user or group of users. In a multitasking OS where multiple programs run simultaneously, the OS determines which applications should run in which order and how time should be allocated to each application. + +### Error-Detecting Aids + +The operating system constantly monitors the system to detect errors and avoid malfunctioning computer systems. From time to time, the operating system checks the system for any external threat or malicious software activity. It also checks the hardware for any type of damage. This process displays several alerts to the user so that the appropriate action can be taken against any damage caused to the system. + +### Coordination Between Other Software and Users + +Operating systems also coordinate and assign interpreters, compilers, assemblers, and other software to the various users of the computer systems. In simpler terms, think of the operating system as the traffic cop of your computer. It directs and manages how different software programs can share your computer’s resources without causing chaos. It ensures that when you want to use a program, it runs smoothly without crashing or causing problems for others. + +### Performs Basic Computer Tasks + +The management of various peripheral devices such as the mouse, keyboard, and printer is carried out by the operating system. Today most operating systems are plug-and-play. These operating systems automatically recognize and configure the devices with no user interference. + +### Network Management + +- **Network Communication:** Operating systems help computers talk to each other and the internet. They manage how data is packaged and sent over the network, making sure it arrives safely and in the right order. + +- **Settings and Monitoring:** They let you set up your network connections, like Wi-Fi or Ethernet, and keep an eye on how your network is doing. They make sure your computer is using the network efficiently and securely, like adjusting the speed of your internet or protecting your computer from online threats. + +## Services Provided by an Operating System + +The Operating System provides certain services to the users which can be listed in the following manner: + +- **User Interface:** Almost all operating systems have a user interface (UI). This interface can take several forms such as command-line interface (CLI), batch interface, or graphical user interface (GUI). + +- **Program Execution:** Responsible for the execution of all types of programs whether it be user programs or system programs. + +- **Handling Input/Output Operations:** Responsible for handling all sorts of inputs, i.e., from the keyboard, mouse, desktop, etc. + +- **Manipulation of File System:** Responsible for making decisions regarding the storage of all types of data or files. + +- **Resource Allocation:** Ensures the proper use of all the resources available by deciding which resource to be used by whom for how much time. + +- **Accounting:** Tracks an account of all the functionalities taking place in the computer system at a time. + +- **Information and Resource Protection:** Uses all the information and resources available on the machine in the most protected way. + +- **Communication:** Implements communication between one process to another process to exchange information. + +- **System Services:** Provides various system services, such as printing, time and date management, and event logging. + +- **Error Detection:** Needs to detect and correct errors constantly to ensure correct and consistent computing. + +## Characteristics of Operating System + +- **Virtualization:** Provides virtualization capabilities, allowing multiple operating systems or instances of an operating system to run on a single physical machine. + +- **Networking:** Provides networking capabilities, allowing the computer system to connect to other systems and devices over a network. + +- **Scheduling:** Provides scheduling algorithms that determine the order in which tasks are executed on the system. + +- **Interprocess Communication:** Provides mechanisms for applications to communicate with each other, allowing them to share data and coordinate their activities. + +- **Performance Monitoring:** Provides tools for monitoring system performance, including CPU usage, memory usage, disk usage, and network activity. + +- **Backup and Recovery:** Provides backup and recovery mechanisms to protect data in the event of system failure or data loss. + +- **Debugging:** Provides diff --git a/docs/Operating System/image-1.png b/docs/Operating System/image-1.png new file mode 100644 index 000000000..62e03f00c Binary files /dev/null and b/docs/Operating System/image-1.png differ diff --git a/docs/Operating System/image-10.png b/docs/Operating System/image-10.png new file mode 100644 index 000000000..39d927549 Binary files /dev/null and b/docs/Operating System/image-10.png differ diff --git a/docs/Operating System/image-11.png b/docs/Operating System/image-11.png new file mode 100644 index 000000000..2b1b90304 Binary files /dev/null and b/docs/Operating System/image-11.png differ diff --git a/docs/Operating System/image-12.png b/docs/Operating System/image-12.png new file mode 100644 index 000000000..c00d0fd91 Binary files /dev/null and b/docs/Operating System/image-12.png differ diff --git a/docs/Operating System/image-2.png b/docs/Operating System/image-2.png new file mode 100644 index 000000000..2aa41f967 Binary files /dev/null and b/docs/Operating System/image-2.png differ diff --git a/docs/Operating System/image-3.png b/docs/Operating System/image-3.png new file mode 100644 index 000000000..262cb8948 Binary files /dev/null and b/docs/Operating System/image-3.png differ diff --git a/docs/Operating System/image-4.png b/docs/Operating System/image-4.png new file mode 100644 index 000000000..1dfe910a7 Binary files /dev/null and b/docs/Operating System/image-4.png differ diff --git a/docs/Operating System/image-5.png b/docs/Operating System/image-5.png new file mode 100644 index 000000000..a96ddd6d4 Binary files /dev/null and b/docs/Operating System/image-5.png differ diff --git a/docs/Operating System/image-6.png b/docs/Operating System/image-6.png new file mode 100644 index 000000000..468546794 Binary files /dev/null and b/docs/Operating System/image-6.png differ diff --git a/docs/Operating System/image-7.png b/docs/Operating System/image-7.png new file mode 100644 index 000000000..09246792c Binary files /dev/null and b/docs/Operating System/image-7.png differ diff --git a/docs/Operating System/image-8.png b/docs/Operating System/image-8.png new file mode 100644 index 000000000..92a64377b Binary files /dev/null and b/docs/Operating System/image-8.png differ diff --git a/docs/Operating System/image-9.png b/docs/Operating System/image-9.png new file mode 100644 index 000000000..69f51c5ca Binary files /dev/null and b/docs/Operating System/image-9.png differ diff --git a/docs/Operating System/image.png b/docs/Operating System/image.png new file mode 100644 index 000000000..ab31b65f8 Binary files /dev/null and b/docs/Operating System/image.png differ diff --git a/docs/Operating System/intro_to_OS.md b/docs/Operating System/intro_to_OS.md new file mode 100644 index 000000000..99fcb5625 --- /dev/null +++ b/docs/Operating System/intro_to_OS.md @@ -0,0 +1,116 @@ +--- +id: operating_system +title: operating_system +sidebar_label: operating_system +sidebar_position: 6 +tags: [operating_system, create database, commands] +description: An operating system acts as an interface between the software and different parts of the computer or the computer hardware. +--- + +# What is an Operating System? + +Operating System lies in the category of system software. It basically manages all the resources of the computer. An operating system acts as an interface between the software and different parts of the computer or the computer hardware. The operating system is designed in such a way that it can manage the overall resources and operations of the computer. + +Operating System is a fully integrated set of specialized programs that handle all the operations of the computer. It controls and monitors the execution of all other programs that reside in the computer, which also includes application programs and other system software of the computer. Examples of Operating Systems are Windows, Linux, Mac OS, etc. + +An Operating System (OS) is a collection of software that manages computer hardware resources and provides common services for computer programs. The operating system is the most important type of system software in a computer system. + +## What is an Operating System Used for? + +The operating system helps in improving the computer software as well as hardware. Without OS, it became very difficult for any application to be user-friendly. The Operating System provides a user with an interface that makes any application attractive and user-friendly. The operating System comes with a large number of device drivers that make OS services reachable to the hardware environment. Each and every application present in the system requires the Operating System. The operating system works as a communication channel between system hardware and system software. The operating system helps an application with the hardware part without knowing about the actual hardware configuration. It is one of the most important parts of the system and hence it is present in every device, whether large or small device. + + ![alt text](image.png) + +## Functions of the Operating System + +- **Resource Management**: The operating system manages and allocates memory, CPU time, and other hardware resources among the various programs and processes running on the computer. + +- **Process Management**: The operating system is responsible for starting, stopping, and managing processes and programs. It also controls the scheduling of processes and allocates resources to them + . +- **Memory Management**: The operating system manages the computer’s primary memory and provides mechanisms for optimizing memory usage. + +- **Security**: The operating system provides a secure environment for the user, applications, and data by implementing security policies and mechanisms such as access controls and encryption. + +- **Job Accounting**: It keeps track of time and resources used by various jobs or users. + +- **File Management**: The operating system is responsible for organizing and managing the file system, including the creation, deletion, and manipulation of files and directories. + +- **Device Management**: The operating system manages input/output devices such as printers, keyboards, mice, and displays. It provides the necessary drivers and interfaces to enable communication between the devices and the computer. + +- **Networking**: The operating system provides networking capabilities such as establishing and managing network connections, handling network protocols, and sharing resources such as printers and files over a network. + +- **User Interface**: The operating system provides a user interface that enables users to interact with the computer system. This can be a Graphical User Interface (GUI), a Command-Line Interface (CLI), or a combination of both. + +- **Backup and Recovery**: The operating system provides mechanisms for backing up data and recovering it in case of system failures, errors, or disasters. + +- **Virtualization**: The operating system provides virtualization capabilities that allow multiple operating systems or applications to run on a single physical machine. This can enable efficient use of resources and flexibility in managing workloads. + +- **Performance Monitoring**: The operating system provides tools for monitoring and optimizing system performance, including identifying bottlenecks, optimizing resource usage, and analyzing system logs and metrics. + +- **Time-Sharing**: The operating system enables multiple users to share a computer system and its resources simultaneously by providing time-sharing mechanisms that allocate resources fairly and efficiently. + +- **System Calls**: The operating system provides a set of system calls that enable applications to interact with the operating system and access its resources. System calls provide a standardized interface between applications and the operating system, enabling portability and compatibility across different hardware and software platforms. + +- **Error-detecting Aids**: These contain methods that include the production of dumps, traces, error messages, and other debugging and error-detecting methods. + +## Objectives of Operating Systems + +Let us now see some of the objectives of the operating system, which are mentioned below. + +- **Convenient to use**: One of the objectives is to make the computer system more convenient to use in an efficient manner. + +- **User Friendly**: To make the computer system more interactive with a more convenient interface for the users. + +- **Easy Access**: To provide easy access to users for using resources by acting as an intermediary between the hardware and its users. + +- **Management of Resources**: For managing the resources of a computer in a better and faster way. + +- **Controls and Monitoring**: By keeping track of who is using which resource, granting resource requests, and mediating conflicting requests from different programs and users. + +- **Fair Sharing of Resources**: Providing efficient and fair sharing of resources between the users and programs. + +## Types of Operating Systems + +- **Batch Operating System**: A Batch Operating System is a type of operating system that does not interact with the computer directly. There is an operator who takes similar jobs having the same requirements and groups them into batches. + +- **Time-sharing Operating System**: Time-sharing Operating System is a type of operating system that allows many users to share computer resources (maximum utilization of the resources). + +- **Distributed Operating System**: Distributed Operating System is a type of operating system that manages a group of different computers and makes appear to be a single computer. These operating systems are designed to operate on a network of computers. They allow multiple users to access shared resources and communicate with each other over the network. Examples include Microsoft Windows Server and various distributions of Linux designed for servers. + +- **Network Operating System**: Network Operating System is a type of operating system that runs on a server and provides the capability to manage data, users, groups, security, applications, and other networking functions. + +- **Real-time Operating System**: Real-time Operating System is a type of operating system that serves a real-time system and the time interval required to process and respond to inputs is very small. These operating systems are designed to respond to events in real time. They are used in applications that require quick and deterministic responses, such as embedded systems, industrial control systems, and robotics. + +- **Multiprocessing Operating System**: Multiprocessor Operating Systems are used in operating systems to boost the performance of multiple CPUs within a single computer system. Multiple CPUs are linked together so that a job can be divided and executed more quickly. + +- **Single-User Operating Systems**: Single-User Operating Systems are designed to support a single user at a time. Examples include Microsoft Windows for personal computers and Apple macOS. + +- **Multi-User Operating Systems**: Multi-User Operating Systems are designed to support multiple users simultaneously. Examples include Linux and Unix. + +- **Embedded Operating Systems**: Embedded Operating Systems are designed to run on devices with limited resources, such as smartphones, wearable devices, and household appliances. Examples include Google’s Android and Apple’s iOS. + +- **Cluster Operating Systems**: Cluster Operating Systems are designed to run on a group of computers, or a cluster, to work together as a single system. They are used for high-performance computing and for applications that require high availability and reliability. Examples include Rocks Cluster Distribution and OpenMPI. + +## How to Check the Operating System? + +There are so many factors to be considered while choosing the best Operating System for our use. These factors are mentioned below. + +- **Price Factor**: Price is one of the factors to choose the correct Operating System as there are some OS that is free, like Linux, but there is some more OS that is paid like Windows and macOS. + +- **Accessibility Factor**: Some Operating Systems are easy to use like macOS and iOS, but some OS are a little bit complex to understand like Linux. So, you must choose the Operating System in which you are more accessible. + +- **Compatibility Factor**: Some Operating Systems support very less applications whereas some Operating Systems supports more application. You must choose the OS, which supports the applications which are required by you. + +- **Security Factor**: The security Factor is also a factor in choosing the correct OS, as macOS provide some additional security while Windows has little fewer security features. + +## Examples of Operating Systems + +- **Windows**: GUI-based, PC + +- **GNU/Linux**: Personal, Workstations, ISP, File, and print server, Three-tier client/Server + +- **macOS**: Used for Apple’s personal computers and workstations (MacBook, iMac) + +- **Android**: Google’s Operating System for smartphones/tablets/smartwatches + +- **iOS**: Apple’s OS for iPhone, iPad, and iPod Touch diff --git a/docs/Operating System/types_of_OS.md b/docs/Operating System/types_of_OS.md new file mode 100644 index 000000000..eb09ce5fc --- /dev/null +++ b/docs/Operating System/types_of_OS.md @@ -0,0 +1,227 @@ +--- +id: types-of-operating_system +title: types-of-operating_system +sidebar_label: Types-of-operating-system +sidebar_position: 8 +tags: [operating_system, create database, commands] +description: An Operating System performs all the basic tasks like managing files, processes, and memory. . +--- + +# Types of Operating Systems + +## Pre-Requisite: What is an Operating System? + +An Operating System performs all the basic tasks like managing files, processes, and memory. Thus operating system acts as the manager of all the resources, i.e. resource manager. Thus, the operating system becomes an interface between the user and the machine. It is one of the most required software that is present in the device. + +Operating System is a type of software that works as an interface between the system program and the hardware. There are several types of Operating Systems, many of which are mentioned below. Let’s have a look at them. + +## Types of Operating Systems + +There are several types of Operating Systems which are mentioned below. + +1. [Batch Operating System](#batch-operating-system) + +2. [Multi-Programming System](#multi-programming-operating-system) + +3. [Multi-Processing System](#multi-processing-operating-system) + +4. [Multi-Tasking Operating System](#multi-tasking-operating-system) + +5. [Time-Sharing Operating System](#time-sharing-operating-system) + +6. [Distributed Operating System](#distributed-operating-system) + +7. [Network Operating System](#network-operating-system) + +8. [Real-Time Operating System](#real-time-operating-system) + +### Batch Operating System + +This type of operating system does not interact with the computer directly. There is an operator which takes similar jobs having the same requirement and groups them into batches. It is the responsibility of the operator to sort jobs with similar needs. + + ![alt text](image-6.png) + +#### Advantages of Batch Operating System + +- Multiple users can share the batch systems. + +- The idle time for the batch system is very less. + +- It is easy to manage large work repeatedly in batch systems. + +#### Disadvantages of Batch Operating System + +- The computer operators should be well known with batch systems. + +- Batch systems are hard to debug. + +- It is sometimes costly. + +- The other jobs will have to wait for an unknown time if any job fails. + +- In batch operating system the processing time for jobs is commonly difficult to accurately predict while they are in the queue. + +- It is difficult to accurately predict the exact time required for a job to complete while it is in the queue. + +#### Examples of Batch Operating Systems + +- Payroll Systems, Bank Statements, etc. + +### Multi-Programming Operating System + +Multiprogramming Operating Systems can be simply illustrated as more than one program is present in the main memory and any one of them can be kept in execution. This is basically used for better execution of resources. + + ![alt text](image-7.png) + +#### Advantages of Multi-Programming Operating System + +- Multi Programming increases the Throughput of the System. + +- It helps in reducing the response time. + +#### Disadvantages of Multi-Programming Operating System + +- There is not any facility for user interaction of system resources with the system. + +### Multi-Processing Operating System + +Multi-Processing Operating System is a type of Operating System in which more than one CPU is used for the execution of resources. It betters the throughput of the System. + + ![alt text](image-8.png) + +#### Advantages of Multi-Processing Operating System + +- It increases the throughput of the system. + +- As it has several processors, so, if one processor fails, we can proceed with another processor. + +#### Disadvantages of Multi-Processing Operating System + +- Due to the multiple CPU, it can be more complex and somehow difficult to understand. + +### Multi-Tasking Operating System + +Multitasking Operating System is simply a multiprogramming Operating System with having facility of a Round-Robin Scheduling Algorithm. It can run multiple programs simultaneously. + + ![alt text](image-9.png) + +#### Types of Multi-Tasking Systems + +- Preemptive Multi-Tasking + +- Cooperative Multi-Tasking + +#### Advantages of Multi-Tasking Operating System + +- Multiple Programs can be executed simultaneously in Multi-Tasking Operating System. + +- It comes with proper memory management. + +#### Disadvantages of Multi-Tasking Operating System + +- The system gets heated in case of heavy programs multiple times. + +### Time-Sharing Operating System + +Each task is given some time to execute so that all the tasks work smoothly. Each user gets the time of the CPU as they use a single system. These systems are also known as Multitasking Systems. The task can be from a single user or different users also. The time that each task gets to execute is called quantum. After this time interval is over OS switches over to the next task. + + ![alt text](image-10.png) + +#### Advantages of Time-Sharing OS + +- Each task gets an equal opportunity. + +- Fewer chances of duplication of software. + +- CPU idle time can be reduced. + +- Resource Sharing: Time-sharing systems allow multiple users to share hardware resources such as the CPU, memory, and peripherals, reducing the cost of hardware and increasing efficiency. + +- Improved Productivity: Time-sharing allows users to work concurrently, thereby reducing the waiting time for their turn to use the computer. This increased productivity translates to more work getting done in less time. + +- Improved User Experience: Time-sharing provides an interactive environment that allows users to communicate with the computer in real time, providing a better user experience than batch processing. + +#### Disadvantages of Time-Sharing OS + +- Reliability problem. + +- One must have to take care of the security and integrity of user programs and data. + +- Data communication problem. + +- High Overhead: Time-sharing systems have a higher overhead than other operating systems due to the need for scheduling, context switching, and other overheads that come with supporting multiple users. + +- Complexity: Time-sharing systems are complex and require advanced software to manage multiple users simultaneously. This complexity increases the chance of bugs and errors. + +- Security Risks: With multiple users sharing resources, the risk of security breaches increases. Time-sharing systems require careful management of user access, authentication, and authorization to ensure the security of data and software. + +#### Examples of Time-Sharing OS with explanation + +- **IBM VM/CMS**: IBM VM/CMS is a time-sharing operating system that was first introduced in 1972. It is still in use today, providing a virtual machine environment that allows multiple users to run their own instances of operating systems and applications. + +- **TSO (Time Sharing Option)**: TSO is a time-sharing operating system that was first introduced in the 1960s by IBM for the IBM System/360 mainframe computer. It allowed multiple users to access the same computer simultaneously, running their own applications. + +- **Windows Terminal Services**: Windows Terminal Services is a time-sharing operating system that allows multiple users to access a Windows server remotely. Users can run their own applications and access shared resources, such as printers and network storage, in real-time. + +### Distributed Operating System + +These types of operating system is a recent advancement in the world of computer technology and are being widely accepted all over the world and, that too, at a great pace. Various autonomous interconnected computers communicate with each other using a shared communication network. Independent systems possess their own memory unit and CPU. These are referred to as loosely coupled systems or distributed systems. These systems’ processors differ in size and function. The major benefit of working with these types of the operating system is that it is always possible that one user can access the files or software which are not actually present on his system but some other system connected within this network i.e., remote access is enabled within the devices connected in that network. + + ![alt text](image-11.png) + +#### Advantages of Distributed Operating System + +- Failure of one will not affect the other network communication, as all systems are independent of each other. +- Electronic mail increases the data exchange speed. +- Since resources are being shared, computation is highly fast and durable. +- Load on host computer reduces. +- These systems are easily scalable as many systems can be easily added to the network. +- Delay in data processing reduces. + +#### Disadvantages of Distributed Operating System + +- Failure of the main network will stop the entire communication. +- To establish distributed systems the language is used not well-defined yet. +- These types of systems are not readily available as they are very expensive. Not only that the underlying software is highly complex and not understood well yet. + +#### Examples of Distributed Operating Systems + +- LOCUS, etc. + +#### Issues in Distributed OS + +- Networking causes delays in the transfer of data between nodes of a distributed system. Such delays may lead to an inconsistent view of data located in different nodes, and make it difficult to know the chronological order in which events occurred in the system. +- Control functions like scheduling, resource allocation, and deadlock detection have to be performed in several nodes to achieve computation speedup and provide reliable operation when computers or networking components fail. +- Messages exchanged by processes present in different nodes may travel over public networks and pass through computer systems that are not controlled by the distributed operating system. An intruder may exploit this feature to tamper with messages, or create fake messages to fool the authentication procedure and masquerade as a user of the system. + +### Network Operating System + +These systems run on a server and provide the capability to manage data, users, groups, security, applications, and other networking functions. These types of operating systems allow shared access to files, printers, security, applications, and other networking functions over a small private network. One more important aspect of Network Operating Systems is that all the users are well aware of the underlying configuration, of all other users within the network, their individual connections, etc. and that’s why these computers are popularly known as tightly coupled systems. + + ![alt text](image-12.png) + +#### Advantages of Network Operating System + +- Highly stable centralized servers. + +- Security concerns are handled through servers. + +- New technologies and hardware up-gradation are easily integrated into the system. + +- Server access is possible remotely from different locations and types of systems. + +#### Disadvantages of Network Operating System + +- Servers are costly. + +- User has to depend on a central location for most operations. + +- Maintenance and updates are required regularly. + +#### Examples of Network Operating Systems + +- Microsoft Windows Server 2003, Microsoft Windows Server 2008, UNIX, Linux, Mac OS X, Novell NetWare, BSD, etc. + +### Real-Time Operating System + +These types of OSs serve real-time systems