Operating System
Operating System
A process is program or a fraction of a program that is loaded in main memory. A process needs certain resources
including CPU time, Memory, Files, and I/O devices to accomplish its task. The process management component
manages the multiple processes running simultaneously on the Operating System.
The operating system is responsible for the following activities in connection with process management:
•Create, load, execute, suspend, resume, and terminate processes.
•Switch system among multiple processes in main memory.
•Provides communication mechanisms so that processes can communicate with each others
•Provides synchronization mechanisms to control concurrent access to shared data to keep shared data consistent.
•Allocate/de-allocate resources properly to prevent or avoid deadlock situation.
I/O Device Management
One of the purposes of an operating system is to hide the peculiarities of
specific hardware devices from the user. I/O Device Management provides an
abstract level of H/W devices and keep the details from applications to ensure
proper use of devices, to prevent errors, and to provide users with convenient
and efficient programming environment.
Following are the tasks of I/O Device Management component:
•Hide the details of H/W devices
•Manage main memory for the devices using cache and buffer.
•Maintain and provide custom drivers for each device.
File Management
File management is one of the most visible services of an operating system. Computers can store
information in several different physical forms; magnetic tape, disk, and drum are the most common
forms.
A file is defined as a set of correlated information and it is defined by the creator of the file. Mostly files
represent data, source and object forms, and programs. Data files can be of any type like alphabetic,
numeric, and alphanumeric.
A files is a sequence of bits, bytes, lines or records whose meaning is defined by its creator and
user.
The operating system implements the abstract concept of the file by managing mass storage device, such
as types and disks. Also files are normally organized into directories to ease their use. These directories
may contain files and other directories and so on.
The operating system is responsible for the following activities in connection with file management:
•File creation and deletion
•Directory creation and deletion
•The support of primitives for manipulating files and directories
•Mapping files onto secondary storage
•File backup on stable (nonvolatile) storage media
Network Management
The definition of network management is often broad, as network management involves several different components. Network management is the process of managing and administering a
computer network. A computer network is a collection of various types of computers connected with each other.
Network management comprises fault analysis, maintaining the quality of service, provisioning of networks, and performance management.
Network management is the process of keeping your network healthy for an efficient communication between different
computers.
Following are the features of network management:
•Network administration
•Network maintenance
•Network operation
•Network provisioning
•Network security
Main Memory Management
Memory is a large array of words or bytes, each with its own address. It is a repository of quickly
accessible data shared by the CPU and I/O devices.
Main memory is a volatile storage device which means it loses its contents in the case of system
failure or as soon as system power goes down.
The main motivation behind Memory Management is to maximize memory utilization on
the computer system.
The operating system is responsible for the following activities in connections with memory
management:
•Keep track of which parts of memory are currently being used and by whom.
•Decide which processes to load when memory space becomes available.
•Allocate and deallocate memory space as needed.
Secondary Storage Management
The main purpose of a computer system is to execute programs. These programs,
together with the data they access, must be in main memory during execution. Since
the main memory is too small to permanently accommodate all data and program,
the computer system must provide secondary storage to backup main memory.
Most modern computer systems use disks as the principle on-line storage medium,
for both programs and data. Most programs, like compilers, assemblers, sort
routines, editors, formatters, and so on, are stored on the disk until loaded into
memory, and then use the disk as both the source and destination of their processing.
The operating system is responsible for the following activities in connection with
disk management:
•Free space management
•Storage allocation
•Disk scheduling
Types of Operating Systems
Batch Operating System
In the 1970s, Batch processing was very popular. In this technique, similar
types of jobs were batched together and executed in time. People were used to
having a single computer which was called a mainframe.
In Batch operating system, access is given to more than one person; they
submit their respective jobs to the system for the execution.
The system put all of the jobs in a queue on the basis of first come first serve
and then executes the jobs one by one. The users collect their respective output
when all the jobs get executed.
Multiprogramming Operating System
Multiprogramming is an extension to batch processing where the CPU is always kept busy.
Each process needs two types of system time: CPU time and IO time.
In a multiprogramming environment, when a process does its I/O, The CPU can start the
execution of other processes. Therefore, multiprogramming improves the efficiency of the
system.
Multiprocessing Operating System
In Multiprocessing, Parallel computing is achieved. There are more than one processors
present in the system which can execute more than one process at the same time. This will
increase the throughput of the system.
Multitasking Operating System
The multitasking operating system is a logical extension of a multiprogramming system that enables multiple programs
simultaneously. It allows a user to perform more than one computer task at the same time.
Network Operating System
An Operating system, which includes software and associated protocols to communicate with other computers via a
network conveniently and cost-effectively, is called Network Operating System.
Real Time Operating System
In Real-Time Systems, each job carries a certain deadline within which the job is supposed to be completed,
otherwise, the huge loss will be there, or even if the result is produced, it will be completely useless.
The Application of a Real-Time system exists in the case of military applications, if you want to drop a missile, then
the missile is supposed to be dropped with a certain precision.
Time-Sharing Operating System
In the Time Sharing operating system, computer resources are allocated in a time-dependent fashion to several
programs simultaneously. Thus it helps to provide a large number of user's direct access to the main computer. It is a
logical extension of multiprogramming. In time-sharing, the CPU is switched among multiple programs given by
different users on a scheduled basis.
A time-sharing operating system allows many users to be served simultaneously, so sophisticated CPU scheduling
schemes and Input/output management are required.
Time-sharing operating systems are very difficult and expensive to build.
Distributed Operating System
A distributed operating system (DOS) is an essential type of operating system. Distributed systems use many central
processors to serve multiple real-time applications and users. As a result, data processing jobs are distributed between the
processors.
It connects multiple computers via a single communication channel. Each of these systems has its own processor and
memory. Additionally, these CPUs communicate via high-speed buses or telephone lines. Individual systems that
communicate via a single channel are regarded as a single entity.
Single User Operating System
A single-user operating system is a type of operating system developed and intended for use on a computer or similar
machine that will only have a single user at any given time. This type of OS is typically used on devices like wireless
phones and two-way messaging devices.
The operating system is responsible for handling many different tasks and is typically one of the most important programs
used on a computer. It manages memory usage and other resources, hardware connectivity and the proper execution of
other applications. A single task operating system can only run one program or application at a time. So it is not as useful
for a computer or other device intended to run multiple programs at once.
System Software /System Program
These are the software that directly allows the user to interact with the
hardware components of a computer system. As the humans and
machines follow different languages, there has to be an interface that will
allow the users to interact with the core system, this interface is provided
by the software. The system software can be called the main software of
a computer system as it handles the major portion of running a hardware.
This System Software can be further divided into four major types:
The Operating System – It is the main program that governs and
maintains the inter-cooperation of the components of a computer system.
For eg., Microsoft Windows, Linux, Mac OS etc.
•The Language Processor – The hardware components present in the computer
system does not understand human language. There are three types of languages
involved in the world of human-machine interaction:
•Machine-Level Language: The machines only understand the digital signals or the
binary codes or the binary language which consist of strings of 0’s and 1’s. These are
totally machine dependent language.
• Assembly-Level Language: These are the Low-Level Language(LLL), that forms a
correspondence between machine level instruction and general assembly level
statements. Assembly language uses a mnemonics to represent each low-level
machine instruction or operation-code also called the op-codes. For eg., ADD
instruction is used to add two entities, the HALT instruction is used to stop a process
etc. It is a machine dependent language and varies from processor to processor.
•High-Level Language: These are the simple English statements, that humans use to
program and code as it is easy to read and understand to the human world. For eg.,
Java, C, C++, Python etc.
The machine level language is very complex to understand and code,
therefore the users prefer the High-Level Language or the HLL for coding.
These codes need to be converted into the machine language so that the
computer can easily understand and work accordingly. This operation is
performed by the Language Processor which is made up of further three
components:
•Assembler: This language processor is used to convert the assembly
language into machine level language.
•Compiler: This language processor is used to convert High-Level Language
into machine level language in one go, thus execution time is fast. The error
detection is difficult in a compiler. Programming Languages like C, C++ and
Scala use compiler.
Interpreter: This language processor is also used to convert High-
Level Language into machine level language line-by-line, thus
execution time is slow. Error-detection is easier in an interpreter as it
reports as soon as a bug is caught and restarts the process. This
consumes unnecessary memory. Programming Languages like
Python, Ruby and Java uses an interpreter.
The Device Drivers – The device drivers and the device programs or
the system software that acts as an interface between the various
Input-Output device and the users or the operating system. For eg.,
the Printers, Web cameras come with a driver disk that is needed to
be installed into the system to make the device run in the system.
The BIOS – It stands for Basic Input Output System and is a small
firmware, that controls the peripheral or the input-output devices
attached to the system. This software is also responsible for starting
the OS or initiating the booting process.
Application Software
These are the basic software used to run to accomplish a particular action and task. These are the
dedicated software, dedicated to performing simple and single tasks. For eg., a single software
cannot serve to both the reservation system and banking system. These are divided into two types:
1.The General Purpose Application Software: These are the types of application software that
comes in-built and ready to use, manufactured by some company or someone. For eg.,
1. Microsoft Excel – Used to prepare excel sheets.
2. VLC Media Player – Used to play audio/video files.
3. Adobe Photoshop – Used for designing and animation and many more.
2.The Specific Purpose Application Software: These are the type of software that is customizable
and mostly used in real-time or business environment. For eg.,
1. Ticket Reservation System
2. Healthcare Management System
3. Hotel Management System
4. Payroll Management System
Utility Software
These are the most basic type of software which provides high utility to the
user and the system. These perform the basic but daily need tasks. For eg.,
•Antivirus Softwares: These provide protection to the computer system
from unwanted malware and viruses. For eg., QuickHeal, McAfee etc.
•Disk Defragmenter Tools: These help the users to analyse the bad sectors
of the disk and rearrange the files in a proper order.
•Text-editors: These help the users to take regular notes and create basic
text files. For eg., Notepad, Gedit etc.
UNIX operating system
UNIX is a powerful Operating System initially developed by Ken Thompson, Dennis
Ritchie at AT&T Bell laboratories in 1970. It is prevalent among scientific, engineering, and
academic institutions due to its most appreciative features like multitasking, flexibility, and
many more. In UNIX, the file system is a hierarchical structure of files and directories
where users can store and retrieve information using the files.
Multitasking:
A UNIX operating system is a multitasking operating system that allows you to initiate more than one
task from the same terminal so that one task is performed as a foreground and the other task as a
background process.
Multi-user:
UNIX operating system supports more than one user to access computer resources like main
memory, hard disk, tape drives, etc. Multiple users can log on to the system from different terminals
and run different jobs that share the resources of a command terminal. It deals with the principle of
time-sharing. Time-sharing is done by a scheduler that divides the CPU time into several segments
also called a time slice, and each segment is assigned to each user on a scheduled basis. This time
slice is tiny. When this time is expired, it passes control to the following user on the system. Each
user executes their set of instructions within their time slice.
Portability:
This feature makes the UNIX work on different machines and platforms with the easy transfer of
code to any computer system. Since a significant portion of UNIX is written in C language, and only
a tiny portion is coded in assembly language for specific hardware.
File Security and Protection:
Being a multi-user system, UNIX makes special consideration for file and
system security. UNIX has different levels of security using assigning
username and password to individual users ensuring the authentication, at the
level providing file access permission viz. read, write and execute and lastly
file encryption to change the file into an unreadable format.
Command Structure:
UNIX commands are easy to understand and simple to use. Example: "cp",
mv etc. While working in the UNIX environment, the UNIX commands are
case-sensitive and are entered in lower case.
Communication:
In UNIX, communication is an excellent feature that enables the user to
communicate worldwide. It supports various communication facilities
provided using the write command, mail command, talk command, etc.
Open Source:
UNIX operating system is open source it means it is freely available to all and is
a community-based development project.
Accounting:
UNIX keeps an account of jobs created by the user. This feature enhances the
system performance in terms of CPU monitoring and disk space checking. It
allows you to keep an account of disk space used by each user, and the disk space
can be limited by each other. You can assign every user a different disk quota.
The root user can perform these accounting tasks using various commands such
as quota, df, du, etc.
UNIX Tools and Utilities:
UNIX system provides various types of tools and utilities facilities such as
UNIX grep, sed and awk, etc. Some of the general-purpose tools are compilers,
interpreters, network applications, etc. It also includes various server programs
which provide remote and administration services.
The structure of Unix OS Layers are as follows:
Layer-1: Hardware -
This layer of UNIX consists of all hardware-related information in the UNIX environment.
Layer-2: Kernel -
The core of the operating system that's liable for maintaining the full functionality is named the kernel.
The kernel of UNIX runs on the particular machine hardware and interacts with the hardware
effectively.
It also works as a device manager and performs valuable functions for the processes which require
access to the peripheral devices connected to the computer. The kernel controls these devices through
device drivers.
The kernel also manages the memory. Processes are executed programs that have owner's humans or
systems who initiate their execution.
Layer-3: The Shell -
The Shell is an interpreter that interprets the command submitted by the user at the terminal, and calls
the program you simply want.
It also keeps a history of the list of the commands you have typed in. If you need to repeat a command
you typed it, use the cursor keys to scroll up and down the list or type history for a list of previous
commands. There are various commands like cat, mv, cat, grep, id, wc, and many more.
•Bourne Shell: This Shell is simply called the Shell. It was the first Shell for UNIX OS. It is still the most
widely available Shell on a UNIX system.
•C Shell: The C shell is another popular shell commonly available on a UNIX system. The C shell was
developed by the University of California at Berkeley and removed some of the shortcomings of the Bourne
shell.
•Korn Shell: This Shell was created by David Korn to address the Bourne Shell's user-interaction issues and to
deal with the shortcomings of the C shell's scripting quirks.