0% found this document useful (0 votes)
2 views32 pages

Operating System Overview (4)

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 32

FOUNDATION TO PROGRAMMING

Module1:
OPERATING SYSTEM

Module Lecturer: ATHULYA


Lesson 1: Operating System Overview

Topics
1.1 Introduction to Operating System
1.2 Evolution of Operating System
1.3 Types of Operating Systems
1.4 Different views of Operating System
1.5 Structure of Operating System
Operating System (OS)
• An operating system (OS) is a software program that acts as an
intermediary between computer hardware and user applications. It
provides a set of services and functions that allow users to interact with the
computer system efficiently.
• The operating system manages resources such as the central processing
unit (CPU), memory, storage devices, input/output devices, and network
connections.
• There are several operating systems that are widely used across different
computing devices. Here are some general examples:
• Microsoft Windows
• macOS
• Linux
• Unix
• Android
• iOS
History of Operating System

The First Generation (1940's to early 1950's)


No Operating System
All programming was done in absolute machine language, often by wiring up plug-
boards to control the machine’s basic functions.
The Second Generation (1955-1965)
First operating system was introduced in the early 1950's.It was called GMOS
Created by General Motors for IBM's machine the 701.
Single-stream batch processing systems
The Third Generation (1965-1980)
Introduction of multiprogramming
Development of Minicomputer
The Fourth Generation (1980-Present Day)
Development of PCs
Birth of Windows/MaC OS
• The Fifth Generation (Present Day onwards)
• Emergence of Artificial Intelligence (AI) and Machine Learning (ML)
technologies.
• Focus on parallel processing and distributed computing.
• Development of quantum computing.
• Integration of Internet of Things (IoT) devices and wearable technology
into computing systems.
• Advancements in cloud computing and edge computing.
1. First Generation: Vacuum tubes
2.Second Generation: Transistors
3.Third Generation: Integrated Circuits (ICs)
4.Fourth Generation: Microprocessors and Personal Computers (PCs)
5. Fifth Generation: Quantum computers, AI-powered devices, IoT devices
Evolution of operating systems

• The evolution of operating systems in software engineering has


progressed through several phases, each introducing new concepts
and addressing specific challenges.
The key stages in this evolution include:
1. Serial processing
2. Batch processing
3. Multiprogramming
Serial Processing

• In the early days of computing, computers were used for single,


sequential tasks. The concept of serial processing involves
executing one task at a time, with the computer completing one
operation before moving on to the next.

• Simple and straightforward, but not efficient in terms of


resource utilization. The computer remains idle while waiting
for a task to complete.
Batch Processing

• Definition: As demands for more efficient use of computer resources


grew, batch processing was introduced. In this model, multiple jobs are
collected into batches, and the computer processes them one after the
other without user interaction.
• Characteristics: Improved resource utilization as one job is processed
while another is waiting, reducing idle time. However, there is still limited
interactivity and responsiveness.
Multiprogramming

• Definition: Multiprogramming takes batch processing a step further by


allowing multiple programs to be loaded into memory simultaneously. The
operating system interleaves the execution of these programs to enhance
CPU utilization.
• Characteristics: Increased efficiency by reducing idle time. The
computer can switch between programs when one is waiting for I/O
operations, optimizing the use of both CPU and I/O devices.
• Challenges: Management of resources and preventing conflicts between
programs.
Types of Operating Systems

Following are the popular types of OS (Operating System):


• Batch Operating System
• Multitasking/Time Sharing OS
• Multiprocessing OS
• Real Time OS
• Distributed OS
• Network OS
• Mobile OS
•Batch Operating System
• Batch Operating System is a type of operating system that executes a series
of jobs (programs) in a batch mode.
• Batch processing involves the automatic execution of a sequence of
programs or jobs without user intervention.
• The jobs are submitted to the operating system as a batch, and the system
executes them one after the other without requiring user interaction for
each job.
• In batch processing systems, users typically submit their jobs in advance,
and the operating system executes them in the order they are received. The
system processes the entire batch without user intervention, and the
results are often collected and provided to the user after all the jobs are
completed.
•Multitasking/Time Sharing OS
• A Multitasking or Time-Sharing Operating System is a type of operating system
that allows multiple tasks or processes to run concurrently on a single computer
system.
• Unlike batch operating systems, where jobs are executed one after another,
multitasking operating systems enable the execution of multiple tasks
simultaneously, providing the illusion that each task is running in its own
dedicated environment.
• Multitasking operating systems are well-suited for scenarios where multiple users
need to share a computer system or when a single user wants to run multiple
applications simultaneously. They enhance overall system efficiency by utilizing
resources more effectively and providing a responsive and interactive computing
environment.
• Examples: Modern desktop and server operating systems, such as Windows, Linux, and
macOS, are examples of multitasking operating systems. They allow users to run multiple
applications concurrently and switch between them seamlessly.
Multiprocessing OS

• A Multiprocessing Operating System is designed to take advantage of


multiple processors or central processing units (CPUs) within a computer
system. Unlike a single-processor system, which executes tasks
sequentially, a multiprocessing OS allows multiple tasks or processes to
run concurrently on different processors, enabling parallel processing.
• Multiprocessing operating systems are particularly valuable in
environments where high-performance computing is required, such as
scientific computing, data analysis, and server applications. They leverage
the power of multiple processors to enhance system throughput and
responsiveness.
Examples: Some examples of multiprocessing operating systems include
Unix/Linux variants and modern versions of macOS.
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.
• Advantages of Multiprogramming OS
• Throughout the system, it increased as the CPU always had one program to
execute.
• Response time can also be reduced.
• Disadvantages of Multiprogramming OS
• Multiprogramming systems provide an environment in which various systems
resources are used efficiently, but they do not provide any user interaction with
the computer 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.
• Advantages of Real-time operating system:
• Easy to layout, develop and execute real-time applications under the real-
time operating system.
• In a Real-time operating system, the maximum utilization of devices and
systems.
• Disadvantages of Real-time operating system:
• Real-time operating systems are very costly to develop.
• Real-time operating systems are very complex and can consume critical
CPU cycles.
Distributed Operating system

• The Distributed Operating system is not installed on a single


machine, it is divided into parts, and these parts are loaded on
different machines.
• A part of the distributed Operating system is installed on each
machine to make their communication possible. Distributed
Operating systems are much more complex, large, and sophisticated
than Network operating systems because they also have to take care
of varying networking protocols.
Network OS

• Network operating systems facilitate communication and resource


sharing among computers in a network.
• They manage file sharing, printer access, and other network-related
functionalities. Examples include Novell NetWare and Microsoft
Windows Server.
Mobile OS
• Mobile operating systems are specifically designed for mobile devices such
as smartphones and tablets.
• They prioritize power efficiency, touch interfaces, and mobile app support.
Examples include Android, iOS, and HarmonyOS.
Different views of Operating System

• The operating system can be observed from the point of view of the
user or the system. This is known as the user view and system view
respectively.
• An operating system is a framework that enables user application
programs to interact with system hardware. The operating system does
not perform any functions on its own, but it provides an atmosphere in
which various programs and apps can do useful work.
• The operating system may be observed from the point of view of the
user or the system, and it is known as the user view and the system view

System User
View View
system call
• A system call is a programmatic way in which a computer program
requests a service from the kernel of the operating system it is executed
on. A system call is a way for programs to interact with the operating
system. A computer program makes a system call when it makes a
request to the operating system’s kernel.
Services Provided by System Calls
• Process creation and management
• Main memory management
• File Access, Directory, and File system management
• Device handling(I/O)
• Protection
• Networking, etc
Structure of Operating System

• An operating system is a design that enables user application programs


to communicate with the hardware of the machine.
• The operating system should be built with the utmost care because it is
such a complicated structure and should be simple to use and modify.
Partially developing the operating system is a simple approach to
accomplish this.
• Each of these components needs to have distinct inputs, outputs, and
functionalities.

Layered •Micro- Exo-


•Simple Monolithic Virtual
Structure
Approach Kernel Kernel
Structure Machines
Structure Structure Structure
MONOLITHIC OPERATING
• The monolithic operating system controls all aspects of the operating
system's operation, including file management, memory management,
device management, and operational operations.
LAYERED STRUCTURE
• The OS is separated into layers or levels in this kind of arrangement. Layer
0 (the lowest layer) contains the hardware, and layer 1 (the highest layer)
contains the user interface (layer N).
• These layers are organized hierarchically, with the top-level layers making
use of the capabilities of the lower-level ones.
MICRO-KERNEL STRUCTURE
• The operating system is created using a micro-kernel framework that strips
the kernel of any unnecessary parts. Systems and user applications are
used to implement these optional kernel components.
So, Micro-Kernels is the name given to these systems that have been
developed.
kernel
A kernel is the core component of an operating system that acts as a bridge
between the hardware and software. It manages system resources such as
memory, CPU, and input/output devices, and provides a layer of abstraction
between the hardware and higher-level software components.
virtual machine

• Based on our needs, a virtual machine abstracts the hardware of our


personal computer, including the CPU, disc drives, RAM, and NIC
(Network Interface Card), into a variety of different execution contexts,
giving us the impression that each execution environment is a different
computer. An illustration of it is a virtual box.
• An operating system enables us to run multiple processes concurrently
while making it appear as though each one is using a different processor
and virtual memory by using CPU scheduling and virtual memory
techniques.
Functions of Operating System

• Process Management
• Device Management
• File Management
• User interface
• Security Protection
• I/O Management
Process Management

• A process is a program in execution.


• A process needs certain resources, including CPU time, memory, files, and
I/O devices to accomplish its task.
• Simultaneous execution leads to multiple processes.
• Hence creation, execution and termination of a process are the most basic
functionality of an OS
• If processes are dependent, than they may try to share same resources.
thus task of process synchronization comes to the picture.
• If processes are independent, than a due care needs to be taken to avoid
their overlapping in memory area.
• Based on priority, it is important to allow more important processes to
execute first than others.
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. When the computer made turn off
everything stored in RAM will be erased automatically.
• In addition to the physical RAM installed in your computer, most modern operating
systems allow your computer to use a virtual memory system. Virtual memory
allows your computer to use part of a permanent storage device (such as a hard
disk) as extra memory.
• 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 de-allocate memory space as needed.
File Management
• A file is a collection of related information defined by its creator.
• File systems provide the conventions for the encoding, storage and management
of data on a storage device such as a hard disk.
 FAT12 (floppy disks)
 FAT16 (DOS and older versions of Windows)
 FAT32 (older versions of Windows)
 NTFS (newer versions of Windows)
 EXT3 (Unix/Linux)
 HFS+ (Max OS X)
• The operating system is responsible for the following activities in connections with file
management:
✦ File creation and deletion.
✦ Directory creation and deletion.
✦ Support of primitives for manipulating files and directories.
✦ Mapping files onto secondary storage.
✦ File backup on stable (nonvolatile) storage media.
Device Management or I/O Management
• The operating system manages the communication between the computer
system and the peripheral devices connected to the I/O port of the system.
Peripheral devices use their respective drivers to communicate with the
system. The operating system determines which program or process is
accessed by which connection and device. It also makes sure when a
program is executed or terminated, it will stop the communication between
the device and the computer system.
• It performs the following activities for device management.
Keeps tracks of all devices connected to system.
Designates a program responsible for every device known as
Input/output controller.
Decides which process gets access to a certain device and for how long.
Allocates devices in an effective and efficient way.
Deallocates devices when they are no longer required.
Security & Protection

• The operating system uses password protection to protect user data


and similar other techniques.
• It also prevents unauthorized access to programs and user data by
assigning access right permission to files and directories.
• The owners of information stored in a multiuser or networked
computer system may want to control use of that information,
concurrent processes should not interfere with each other.
User Interface (UI)

• A user interface (UI) controls how you enter data and


instructions and how information is displayed on the screen
• There are two types of user interfaces

1. Command Line Interface


2. Graphical user Interface
Command-line interface

• In a command-line interface, a user types commands


represented by short keywords or abbreviations or presses
special keys on the keyboard to enter data and instructions
Graphical user interface (GUI)

• With a graphical user interface (GUI), you interact with menus and
visual images

You might also like