Thursday, January 10, 2019

Operating systems Introduction

Operating system refers to the collection of softwares that manages hardware resources of a computer and provides collective services to the user. Different types of Computer Operating Systems refer to the collection of various softwares. Every computer possesses an operating system to run other programs present in it.

Nowadays operating system has become very popular as it can be found on several devices ranging from personal computers to cell phones, particularly the smart phones. For example, almost every smart phone uses newest android operating system.

Operating system

Any operating system performs some basic tasks like recognizing the input data from a keyboard, sending output to the display screen, keeping files and directories of the disk and controlling the peripheral devices like printers. An operating system can perform a single task or operation as well as multiple tasks or operations at any time.
Types of Computer Operating systems

Computer Operating systems can be broadly classified into two types:
Normal Operating System
Real Time Operating System

1. Normal Operating System
The normal operating system is further classified into two types:

Character User Interface Operating System
Graphical User Interface Operating System
Character User Interface Operating System (CUI)

Character user interface Operating system




The CUI operating system is a text-based operating system, which is used for interacting with the software or files by typing commands to perform specific tasks. The command line operating system uses only keyboard to enter commands. The command line operating systems include DOS and UNIX. The advanced command line operating system is faster then the advanced GUI operating system.
Graphical User Interface Operating System (GUI)

Graphical User Interface Operating System




The graphical mode interface operating system is a mouse-based operating system (Windows Operating System, LINUX), wherein a user performs the tasks or operations without typing the commands from the keyboard. The files or icons can be opened or closed by clicking them with a mouse button.


In addition to this, the mouse and keyboard are used to control the GUI operating systems for several purposes. Most of the embedded-based projects are developed on this operating system. The advanced GUI operating system is slower than the command line operating system.
Architecture of Unix Operating systems


The operating systems control the hardware resources of a computer. The kernel and shell are the parts of the operating system that perform essential operations.


When a user gives commands for performing any operation, the request goes to the shell part, which is also known as interpreter. The shell part then translates the human program into a machine code, and then transfers the request to the kernel part.

Architecture of operating system

When the kernel receives the request from the shell, it processes the request and displays the result on the screen. The kernel is also known as the heart of the operating system as every operation is performed by it.


Shell

The shell is a part of the software which is placed between the user and the kernel, and it provides services of the kernel. The shell thus acts as an interpreter to convert the commands from the user to a machine code. Shells present in different types of operating systems are of two types: command line shells and graphical shells.


The command line shells provide a command line interface while graphical line shells provide a graphical user interface. Though both shells perform operations, the graphical user interface shells perform slower than the command line interface shells.


Types of shells
Korn shell
Bourne shell
C shell
POSIX shell


Kernel


The kernel is a part of a software. It is like a bridge between the shell and hardware. It is responsible for running programs and providing secure access to the machine’s hardware. The kernel is used for scheduling, i.e., it maintains a time table for all processes.


Types of Kernels
Monolithic kernel
Microkernels
Exokernels
Hybrid kernels
Computer Operating System Functions

Operating System functions




An operating system performs the following functions:
Memory management
Task or process management
Storage management
Device or input/output management
Kernel or scheduling
Memory Management


Memory management is the process of managing a computer memory. Computer memories are of two types: primary and secondary memory. The memory portion for programs and softwares is allocated after releasing the memory space.

Memory Management




Memory management is important for the operating system involved in multitasking wherein the OS requires switching of memory space from one process to another. Every single program requires some memory space for its execution, which is provided by the memory management unit. A CPU consists of two types of memory modules: virtual memory and physical memory. The virtual memory is a RAM memory, and the physical memory is a hard disk memory. An operating system manages the virtual memory address spaces, and the assignment of real memory is followed by the virtual memory address.


Before executing instructions, the CPU sends the virtual address to the memory management unit. Subsequently, the MMU sends the physical address to the real memory, and then the real memory allocates space for the programs or data.
Task or Process Management


Process management is an instance of a program that is being executed. The process consists of a number of elements, such as identifier, program counter, memory pointer and context data, and so on. The Process is actually an execution of those instructions.

Process Management




There are two types of process methods: single process and multitasking method. The single process method deals with the single application running at a time. The multitasking method allows multiple processes at a time.
Storage Management


Storage management is a function of the operating system that handles memory allocation of the data. The system consists of different types of memory devices, such as primary storage memory (RAM), secondary storage memory, (Hard disk) and cache storage memory.

Scheduling


Instructions and data are placed in the primary storage or cache memory, which is referenced by the running program. However, the data is lost when power supply cut off. The secondary memory is a permanent storage device. The operating system allocates a storage place when new files are created and the request for memory access is scheduled.
Device or Input/output Management


In a computer architecture, the combination of CPU and main memory is the brain of the computer, and it is managed by the input and output resources. Humans interact with the machines by providing information through I/O devices.


The display, keyboard, printer and mouse are I/O devices. The management of all these devices affects the throughput of a system; therefore, the input and output management of the system is a primary responsibility of the operating system
Scheduling


Scheduling by an operating system is a process of controlling and prioritizing the messages sent to a processor. The operating system maintains a constant amount of work for the processor and thus balances the work load. As a result, each process is completed within a stipulated time frame.


Hence, scheduling is very important in real-time systems. The schedulers are mainly of three types:
Long term scheduler
Short term scheduler
Medium term schedule
2. Real-time Operating System


Real-time operating systems are also known as multitasking operating systems. The normal operating system is responsible for managing the hardware resources of a computer. The RTOS perform these tasks, but it is especially designed to run applications at a scheduled or precise time with high reliability.

Real time operating system


Real-time operating system is designed for real-time applications, such as embedded systems, industrial robots, scientific research equipments and others. There are different types of operating systems in real time, such as soft real-time operating systems and hard real-time operating systems.
Examples of RTOS
RTLinux
VxWorks
TRON
Windows CE

Difference Between Multi-programming and Multitasking in Operating System

What is Multi-programming?

Multi-programming is the ability for more than one user to use the computer at a time using a single CPU. The idea is to effectively utilize the processor to create multiple ready-to-run processes with each process belongs to different user. If the current process stalls for some reason, because it has to wait for some particular event, the operating system allocates the CPU to another process in the queue. The whole operation is facilitated by multi-programming operating systems to maximize CPU utilization so that to reduce the idle time of the CPU. The idea is to keep the CPU busy for as long as possible

What is Multitasking?

Multitasking means concurrent execution of multiple processes by one user on the same computer utilizing multiple CPUs. For example, in a multitasking operating system, you may work on a word document with one program while listening to music as the same time with another program. Multitasking is effective when programs on a compute require a high degree of parallelism. It is based on the concept of time sharing because multiple processes or tasks can be switched accordingly at a regular interval of time, so that the users get the idea that they are performed concurrently.