Today’s we will discuss the following: Operating System, Different user interfaces, Common features of operating system, Characteristics of a modern Operating System, Services of Operating System and Types of Operating System.
Operating system is system software that manages all the computer hardware and software resources and provides common services to computer programs. It is also providing services basis on application programs and acts as an intermediate between user and computer hardware.
General Architecture of an Operating System
The basic computer features were developed in the 1950’s. The operating system doesn’t exist in their modern and more complex form until the early 1960’s. When personal computer became popular in the 1980’s OS were made for them similar in concepts to those used on larger computers.
Operating systems can be used with different user interfaces (UI):
Text user interfaces (TUI) and graphical user interfaces (GUI).
USER INTERFACES: A user interface (UI) refers to the part of an operating system, program, or device that allows a user to enter and receive information. A text-based user interface displays text, and its commands are usually typed on a command line using a keyboard. With a graphical user interface, the functions are carried out by clicking or moving buttons, icons and menus by means of a pointing device.
- TEXT USER INTERFACE (TUI)-
Modern graphical user interfaces have evolved from text-based UIs. Some operating systems can still be used with a text-based user interface. In this case, the commands are entered as text (e.g., “edu story.txt”)
- GRAPHICAL USER INTERFACE (GUI)-
In most operating systems, the primary user interface is graphical, i.e. instead of typing the commands you manipulate various graphical objects (such as icons) with a pointing device. The underlying principle of different graphical user interfaces (GUIs) is largely the same, so by knowing how to use a Windows UI, you will most likely know how to use Linux or some other GUI. Most GUIs have the following basic components:
- a start menu with program groups
- a taskbar showing running programs
- a desktop
- various icons and shortcuts.
Common Features of Operating System:
Firstly, it manages the hardware and software resources of the computer system. These resources include the processor, memory, disk space, etc. The second, it provides a stable, consistent way for applications to deal with the hardware without having-to know all the details of the hardware.
The first task is very important i.e. managing the hardware and software resources, as various processes compete to each other for getting the CPU time and memory space to complete the task. In this regard; the operating system acts as a manager to allocate the available resources to ‘satisfy the requirements of each process.
The second task i.e. providing a consistent application interface is especially important. A consistent application program interface (API) allows a user (or S/W developer) to write an application program on any computer and to run this program on another computer, even if the hardware configuration is different like as amount of memory, type of CPU or storage disk. It shields the user of the machine from the low-level details of the machine’s operation and provides frequently needed facilities.
Characteristics of a modern Operating System:
- Microkernel architecture: It’s assigned only a few essential functions to the kernel including Address spaces, Interprocess communication and basic scheduling.
- Multi-Threading: The process is divided into threads that can run simultaneously, but this approach differs from multiprocessing. Multi-Threading needs proper understanding with two terms-
- Thread: Dispatchable unit of work, It includes a processor context program counter, stack pointer and its own data storage for the stack. It executes sequentially and is interruptible. A thread is like a small light-weight process within a process.
- Process: A process is a program that is executed, it is a collection of one or more threads and associated with system resources.
- Symmetric multiprocessing: Standalone computer with multiple processors that share the same memory and input/output facilities connected by a communication bus. All processors can perform the same functions.
- Distributes OS: It’s provided the illusion of a single main memory and single secondary memory space used for a distributed file system.
- Object-Oriented Design: It is used for adding a modular extension to a small kernel that enables programmers to customize an operating system without disrupting system integrity.
Note: One term used again and again in all over the operating system definition and characteristics that term is the kernel. So, let’s move to clear this term also-
A kernel is the central part of an operating system, It manages the tasks of the computer for both software and hardware – most notably memory and CPU time. While the Kernel is the innermost part of an operating system, a shell is the outermost one. There are two types of kernels in the operating system:
- Microkernel: A microkernel only contains basic functionalities including-address spaces, interprocess communication and basic scheduling.
- Monolithic kernel: A monolithic kernel contains all the drivers.
Features of Kernels:
- Low-level scheduling of processes
- Inter-process communication
- Process synchronization
- Context switching
Components/Services of Operating System:
An operating system provides an environment for executing programs. It provides certain services and programs to the users of that program.
- Program execution: It loads a program into the memory and to run that program. The program must be able to end its execution either normally or abnormally.
- Input/output operation: The running program may require input/output. This input/output may involve the files and input/output devices, the specific function may be desired.
- File system manipulation: The file system is of particular insert program needs to read and write files. The program also needs to delete and create files by name.
- Communication: One process needs to exchange information with another process. Such communication can occur in two major ways-
- The first place between processes that are executing on the same computer system.
- The second takes place between processes that are executing on different computer systems that are tied together by a defined network.
Communication may be implemented via shared memory or by the technique of message passing.
- Error detection: The operating system constantly needs to be aware of possible errors.
- Resource allocation
- Memory Management
- Device Management
Types of Operating system:
Some of the following widely used operating systems are:
- Batch Operating System- Batch processing is the execution of the series of jobs in a program on a computer without manual intervention (non-interactive). This type of operating system does not interact with the computer directly. It is a processing mode: the execution of a series of the program each on a set or ‘Batch’ of inputs, rather than a single input. It is the responsibility of the operator to sort jobs with similar needs.
- The idle time for the batch system is very less
- It is easy to manage large work repeatedly in batch systems
- Multiple users can share the batch systems
- Lack of interaction between the user and the job
- Idle time is an advantage but the CPU is often idle because the speed of the mechanical Input/output device is slower than the CPU.
- Difficult to provide the desired priority.
- Hand-on Interactive System-It provides direct communication between the user and the system. The program loaded into the memory and executing is commonly referred to as a process. To obtain a reasonable response job may have to be swapped in out of main memory to the disk that now servers are backing store for main memory.
The common method to achieve this goal is virtual-memory which is a technique that may not be completely into the memory.
The main advantage of “Virtual Memory” is that the programs can be larges then physical memory.
- Time-Sharing Operating Systems/Multitasking Operating Systems – Time sharing and Multitasking operating system is also the ability of an operating system to execute more than one task on a single processor machine or uniprocessor machine. The CPU executes multiple jobs by switching among them but the switch occurs so frequently that the uses interact with each program in which it is running.
- Distributed Operating System/ Loosely Coupled System- It is a path between two or more systems. A distributed system depends on networking for their functionalities being able to communicate. A distributed system is able to share tasks and provide a rich set of features to the users. The major benefit of working with these types of an 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 on some other system connected within this network
- Delay in data processing reduces
- Load on host computer reduces
- Failure of one will not affect the other network communication
- These systems are easily scalable as many systems can be easily added to the network
- Not well defined yet
- Failure of the main network will stop the entire communication
- Not readily available as they are very expensive
- Client/Server System- Terminals connected to the centralized system are now being sub-planted supported by PC’s. User Interface Functionality, which is used to be handled directly by the centralized system is increasingly being handled by PC’s. As a result, a centralized system today acts as a ‘Server’ to satisfy requests generated by the client system. There are two types of server systems--Computer Server: It provides an interface to which clients can send requests to perform an action in response to which they execute the action and send back the result to the server.– File Server: It provides a file system interface where clients can create, update, read and delete files.
- Real-Time Operating System –These types of OSs serves the real-time systems. The time interval required to process and respond to inputs is very small. This time interval is called response time. Two types of Real-Time Operating System which are as follows:
- Hard Real-Time Systems: These OSs are meant for the applications where time constraints are very strict and even the shortest possible delay is not acceptable. Virtual memory is almost never found in these systems.
- Soft Real-Time Systems: These OSs are for applications where time-constraint is less strict.
- Task Shifting
- embedded system
- Focus on Application
- Error Free
- Complex Algorithms
- Limited Tasks
- Use heavy system resources
I hope this post helps you to understand all basic knowledge of the Operating system, OS components, OS services, and its types with advantages and disadvantages.
Keep learning 🙂