Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 34

Operating System

What is Operating System


An Operating System is defined as a program that serves as a
interface or manages computer hardware. The Operating System loads
during the startup process and begins to issue commands to various
components.

An OS allows the components to interact with one another, but


can also act as an interface for the end user. Most are familiar with the
operating systems used on home computers or gaming consoles, but
there are different types of operating systems including embedded OS
designed for dishwashers, HVAC units, Vehicles, and ATM Machines.
History of Operating System
The History of Operating Systems (OS) is a fascinating journey
that spans several decades, marked by the evolution of computing
technology and the changing needs of users. Here's a brief overview of
the major milestones in the history of the operating systems.
1940s-1950s: Early Computers and Batch Processing:

The Earliest electronic computers were used mainly for scientific


calculations and military purposes. They had no operating systems as we
think of them today. In addition, this system was tedious but effective as
there were no real programming language at that time, users had to
manually load programs and data using punched cards or other media and
the entire process was time consuming. One of the more famous uses of this
early tech was by English mathematician and Computer Scientist, Alan Turin.
Often reffered to as the "father of modern computer science" Turing's work
helped code breakers in WW2 through the Enigma Machine. He is also
responsible for the Turing Test, as test used as a guideline to determine
artificial intelligence. In addition, This system was tedious but effective as
there were no real programming language at that time.
1950s-1960s: Introduction of Batch Processing
Systems:

As computers became more sophisticated, the concept of batch


processing emerged. Mainframe computers with vacumm tubes and
transistors replaced punched tape with another systems - magnetic
tape. These systems worked with batches of magnetic tapes and drives
which increased effiency but were still a long way from modern
operating systems like Windows or Linux. Thes large mainframes were
located in a dedicated, climate-controlled room and required operators.
Operating systems like UNIVAC I EXEC (1951) and IBM's OS/360 (1964)
facilitated the automatic execution of sequences of jobs without user
intervention.
1960s-1970s: Multiprogramming and Time-Sharing:

The systems of the 1960's were also batch processing systems, but
they were able to take better advantage of the computer's resources by
running several jobs at once. So operating systems designers developed
the concept of multiprogramming in which several jobs are in main
memory at once; a processor is switched from job to job as needed to
keep several jobs advancing while keeping the peripheral devices in use.
Operating systems like CTSS (Compatible Time-Sharing System) and
MULTICS (Multiplexed Information and Computing Service) allowed
multiple users to interact with a computer simultaneously. Operating
systems like CTSS (Compatible Time-Sharing System) and MULTICS
(Multiplexed Information and Computing Service) allowed multiple users
to interact with a computer simultaneously.
1980s: Rise of Personal Computers:

The 1980s saw the rise of personal computers. Operating


systems like MS-DOS (Microsoft Disk Operating System) became
popular, providing a command-line interface. On the other hand Apple
introduced the Macintosh with a graphical user interface (GUI) and
mouse, leading to increased focus on user-friendly interfaces.
1990s-2000s: Advancement in OS Design:

• Linux, an open-source OS kernel, gained popularity in the 1990s,


offering a free alternative to commercial operating systems.

• -Windows NT (New Technology) was introduced, forming the


basis for modern Windows versions.

• -macOS (formerly Mac OS X) debuted, merging Apple's classic


Mac OS with a Unix-based foundation.
2000s-Present: Mobile and Cloud
Computing:
• -The 2000s brought a surge in mobile devices, leading to the
development of mobile operating systems like iOS (Apple) and
Android (Google).

• -Cloud computing introduced new challenges and opportunities


for OS design, with a focus on virtualization and resource
management.

Types of Operating Systems
Operating systems can be categorized into various types based
on their characteristics, functionalities, and intended use cases. Here
are some common types of operating systems:
Single-User, Single-Tasking:
• These operating systems support one user and one application at a
time.
• They are simple and limited in functionality.

Examples: MS-DOS (early versions), early versions of Mac OS.


Single-User, Multi-Tasking:

• These operating systems support multiple users accessing the system


concurrently.
• They manage CPU time-sharing and task scheduling.

Examples: Microsoft Windows ( later versions ), macOS, Linus


distributions.
Multi-User Operating Systems:

• These operating systems support multiple users accessing the system


concurrently.
• They provide mechanism for user authentication, access
control, and resource sharing.

• Examples: UNIX, Linux distributions, mainframe operating


systems like IBMz/OS.
Real-Time Operating Systems(RTOS):

• RTOSes are designed for systems that require rapid and predictable
responses to external events.
• They are used in embedded systems, industrial control systems,
and other time-sensitive applications.

• Examples: QNX, VxWorks.


Network Operating Systems:

• These operating systems are optimized for network-based operations


and management.
• They often include features for file and printer sharing, user
authentication, and network services.

• Examples: Windows Server, Linux distributions with server


features.
Distributed Operating Systems:

• Distributed OSes manage a network of interconnected computers as if


they were a single computing environment.
• They support distributed computing and resource sharing.

• Examples: Amoeba, Plan 9 from Bell Labs


Mobile Operating Systems:

• These operating systems are designed for mobile devices like


smartphones and tablets.
• They often emphasize touch interfaces, power effiency, and mobile
app support.

• Examples: Android, iOS.


Virtualization Operating Systems:

• Virtualization OSes manage and control virtual machines on a host


computer.
• They allow multiple operating systems to run simultaneously on
a single physical machine.

• Examples: VMware ESXi, Microsoft Hyper-V


Hypervisor Operating Systems:

• These are specialized operating systems that manage virtual machines


and provide hardware virtualization.
• Type 1 hypervisors run directly on the hardware, while Type 2
hypervisors run on top of an existing OS.

• Examples: Xen (Type 1), Oracle ViirualBox (Type 2).


Embedded Operating Systems:

• Embedded OSes are designed for use in embedded systems, such as


devices with specific functions like IoT devices, medical devices, and
consumer electronic.

• They are often optimized for low resource consumption and real-time
requirements.

• Examples: Embedded Linux, FreeRTOS.


Cloud Operating Systems:

• These operating Systems are designed to manage and optimized


resources in cloud computing environments.
• They often include features for virtualization, scalability, and workload
management.

• Examples: OpenStack, Kubernetes.


Memory Management
Memory management is a crucial aspect of operating systems
that involves the management of a computer's primary memory(RAM)
to optimize its usage and ensure efficient allocation and deallocation of
memory resources. The primary goals of memory management are to
provide a way for processes to execute without interfering with each
other's memory space and to prevent memory-related errors like
fragmmentation and out of memory situations.
Address Spaces:

• Each process in an operating system is allocatied its own address


space in memory.
• The address space includes code, data, stack, and heap segments,
each with its own purpose and memory requirements.
Memory allocation

• Operating systems allocate memory to processes either at the time of


the process creation or during runtime as needed.
• Different allocation strategies include contigous memory allocation,
paging, and segmentation.
Contigous Memory Allocation:

• In this technique, each process is allocated a contigous block of


memory.
• It can lead to memory fragmentation, where free memory is split into
small, non-contagious chunks over time.
Paging:

• Paging invovles dividing physical memory and the process's adress


space into fixed-size pages.
• Virtual memory pages are mapped to physical memory frames
through page tables.
• This allows for more effiecient memory allocation and reduces
fragmentation.
Segmentation:

• Segmentation divides a process's address space into segments, each


with different attributes like code, data, stack, etc.
• It offers flexiblity in memory management but can lead to
fragmentation.
Virtual Memory:

• Virtual Memory allows processes to use more memory than physically


available by swapping data between RAM and disk storage.
• It enables better utilization of available memory resources and
provides a larger address space for processes.
Memory Protection:

• Operating systems use memory protection mechanism to prevent one


process from accessing the memory of another process.
• Unauthorized access attempts results in exceptions or errors.
Page Replacement Algorithms:

• In virutal memory systems, when there's not enough physical memory


to hold all active pages, page replacement algorithms decide which
pages to evict to disk.

• Common algorithms include Least Recently Used(LRU), FIFO, and


Optimal.
Memory Fragmentation:

• Fragmentation occurs when memory is divided into small, non-


contagious blocks.
• External fragmentation is caused by inefficient allocation and
deallocation, while internal fragmentation is due to space wastage
within allocated blocks.
Memory Allocation Techniques:

• Dynamic memory allocation functions(like malloc and free in C)


manage memory allocation for variables and data strucutures during
runtime.
• Garbage collection is used to automatically reclaim memory that is no
longer needed by a program.
Swapping:

• Swapping involves moving entire processes in and out of main


memory to free up space.
• It's often used in systems with limited physical memory.
• Effective memory management is crucial for maintaining system
stability, performance, and responsiveness. Different operating
systems employ various memory management techniques based in
their design goals and hardware they run on.

You might also like