0% found this document useful (0 votes)
9 views45 pages

Group 1 OS Work

The document presents an overview of operating systems, detailing their purpose, types, and services. It covers the evolution of operating systems from the first generation in the 1940s to modern types such as real-time and embedded systems, along with examples of each. Additionally, it explains system calls and their functions in managing processes, files, devices, and communication.

Uploaded by

markkifunye159
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views45 pages

Group 1 OS Work

The document presents an overview of operating systems, detailing their purpose, types, and services. It covers the evolution of operating systems from the first generation in the 1940s to modern types such as real-time and embedded systems, along with examples of each. Additionally, it explains system calls and their functions in managing processes, files, devices, and communication.

Uploaded by

markkifunye159
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 45

OPERATING SYSTEMS GROUP ONE

PRESENTATION BY MADAM BARBRA

GROUP MEMBERS
NAME REGISTRATION NO. PRESENTATION
GWOKYALYA GLORIA BU/UG/2023/2257 Generations and types of
OS
ZESIRO OMEGA MALANGA BU/UP/2023/0978 OS services and System
calls
ANTEGEI JUDELINE BU/UP/2023/0953 Structure of OS
MUWANGUZI STANLEY BU/UP/2022/1327 Concept of Virtual
Machine
BASIME CHARLOTTE BU/UG/2023/2336 Case Study on UNIX and
WINDOWS OS
Introduction to Operating Systems
 An operating system is a program that acts as an intermediary between a
user of a computer and the computer hardware.
 Software extensions to Hardware
 The purpose of an operating system is to provide an environment in which a
user can execute programs. The primary goal of an operating system is thus to
make the computer system convenient to use.
 Provides for efficient control of and access to system facilities
 Provides a structure for running Programs
 Acts as a user interface
 A secondary goal is to use the computer hardware in an efficient manner.
 An operating system is the set of programs that controls a computer. Some
examples of operating systems are UNIX, Mach, MS-DOS, MS- Windows,
Windows/NT, OS/2 and MacOS.
Examples of Operating Systems (OS)
Introduction.. Ctd
 An operating system is an important part of almost every computer system
(See a typical computer system in Figure (a)).
Introduction.. Ctd
A computer system can be divided roughly into four components: the hardware,
the operating system, the application programs and the users (See Figure (b)).
Objectives of Operating Systems
 To hide details of hardware by creating abstraction

 To allocate resources to processes (manage processes)

 Provide a pleasant and effective user interface.


Generations of Operating Systems
 The 1940's - First Generations
 The earliest electronic digital computers had no operating systems. Machines of
the time were so primitive that programs were often entered one bit at time on
rows of mechanical switches (plug boards). Programming languages were unknown
(not even assembly languages). Operating systems were unheard of.

 The 1950's - Second Generation


 By the early 1950's, the routine had improved somewhat with the introduction of
punch cards. The General Motors Research Laboratories implemented the first
operating systems in early 1950's for their IBM 701. The system of the 50's
generally ran one job at a time.
Generations …Ctd
 The 1960's - Third Generation
 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.

 Fourth Generation
 With the development of LSI (Large Scale Integration) circuits, chips, operating
system entered in the personal computer and the workstation age. Microprocessor
technology evolved to the point that it becomes possible to build desktop
computers as powerful as the mainframes of the 1970s.
Types of Operating Systems
 Batch systems
 Multi-user systems
 Multi-tasking systems
 Distributed systems
 Network operating systems
 Real Time systems
 Embedded systems
Types of OS…Ctd
A batch operating system is a type of operating system designed to handle and
process jobs in batches. Rather than interacting directly with the system, users
prepare jobs (programs and data) and submit them to the system, which
processes them sequentially. Batch operating systems were among the earliest
types of OS used in computing, typically on mainframes.
Features of Batch Operating Systems:
 Job Sequencing: Jobs are stored and executed one after another, with
minimal user interaction during execution.
 No Direct Interaction: Users submit jobs to the system, and the system
processes them without user intervention. Results are returned once the jobs
are completed.
 Efficient for Similar Tasks: Batch systems are well-suited for repetitive tasks
that don't require immediate feedback, like payroll, billing, or data
processing.
 Scheduling: The system can optimize job scheduling to reduce CPU idle time
and maximize resource use.
Types of OS…Ctd
How Batch Operating Systems Work:
 Job Submission: Users submit their jobs, which include both the program
code and the input data.
 Job Queue: Jobs are placed in a queue, where they wait for execution.
 Job Execution: The OS loads and executes jobs one by one, based on a
predefined scheduling algorithm.
 Output: Once the job is completed, the results (output) are returned to the
user.
Examples of Batch Operating Systems:
 IBM's OS/360: One of the earliest and most well-known batch operating
systems.
 Windows Task Scheduler: Although modern operating systems are
interactive, they can perform batch processing through task scheduling
utilities.
Types of OS…Ctd
A multiuser operating system allows multiple users to access and use the system
resources, such as the CPU, memory, and storage, simultaneously. Each user
operates independently, and the operating system manages all the users'
activities, ensuring that system resources are shared efficiently and securely.
Examples of Multiuser Operating Systems:
 Unix/Linux: These are classic examples of multiuser operating systems,
allowing multiple users to log in simultaneously and perform tasks
concurrently.
 Windows Server: Microsoft's server operating systems are designed for
multiuser environments, where many users can log in remotely and use
shared resources.
 Mainframes: Systems like IBM z/OS support thousands of simultaneous users
and are used in environments requiring high availability and massive
scalability.
 MacOS Server: A version of Apple’s MacOS designed to support multiple users
in server environments.
Types of OS…Ctd
A multitasking operating system allows multiple tasks (processes) to run
simultaneously on a computer. It manages and allocates CPU time and other
system resources so that several tasks appear to be running at the same time,
even though the CPU can typically handle only one task at a time.
Examples of Multitasking Operating Systems:
 Windows: Modern versions of Windows (e.g., Windows 10, 11) are preemptive
multitasking systems, allowing users to run many applications simultaneously.
 Linux/Unix: These operating systems are known for their efficient
multitasking capabilities, often used in servers and desktops for multitasking
workloads.
 macOS: Apple’s macOS supports preemptive multitasking, allowing smooth
operation of multiple applications at once.
 Android/iOS: Mobile operating systems like Android and iOS also support
multitasking, though with restrictions to manage battery life and
performance.
Types of OS…Ctd
A distributed operating system (DOS) is a type of operating system that manages
a group of independent computers and makes them appear to users as a single
cohesive system. This system coordinates the operation of the computers,
allowing them to share resources (e.g., processors, memory, storage) and
collaborate on tasks across a network. The goal of a distributed operating system
is to provide a seamless user experience where the distributed nature of the
system is invisible to the users.
Examples of Distributed Operating Systems:
 Amoeba: A research distributed operating system developed at the Vrije
Universiteit in the Netherlands that provided transparent access to resources
across a network of computers.
 Sprite: An experimental distributed OS developed at the University of
California, Berkeley, that focused on efficient file sharing and virtual memory
across networked workstations.
 Plan 9: Developed by Bell Labs, Plan 9 is designed to make a network of
computers function like a single system, where all resources are available
transparently.
 Google's Borg: Google's internal distributed system for managing large
clusters of servers, running applications across its massive infrastructure.
 Apache Hadoop: Though not a traditional OS, it is a framework that provides
distributed storage and processing of large datasets using a distributed file
system and task execution model.
Types of OS…Ctd
A Network Operating System (NOS) is an operating system designed to manage
and support computers and devices in a networked environment. It enables
multiple computers to communicate, share resources such as files, printers, and
applications, and provide centralized management, security, and control over
network operations. NOSs are widely used in environments such as local area
networks (LANs) and wide area networks (WANs).
Examples of Network Operating Systems:
 Microsoft Windows Server:
 A widely used NOS that provides services such as file sharing, user management,
printer sharing, remote access, and security. It supports Active Directory for user
authentication and authorization.
 Linux Server (e.g., Ubuntu Server, Red Hat Enterprise Linux):
 Linux-based operating systems are often used for network management, especially
in web hosting and cloud environments. They provide a secure and stable platform
with extensive customization options.
 UNIX:
 UNIX-based operating systems (like Solaris) are commonly used in servers and
networks due to their stability, security, and ability to handle multiple users.
 Novell NetWare:
 One of the first widely adopted network operating systems, especially in the 1990s.
It provided file and printer sharing across LANs but has since declined in popularity.
 MacOS Server:
 Apple’s server edition of macOS, used to provide file sharing, email, calendar, and
web services in a networked environment.
Types of OS…Ctd
A Real-Time Operating System (RTOS) is an operating system designed to serve real-
time applications that process data as it comes in, typically within a strict time
constraint. RTOSs are used in environments where timing is critical, such as embedded
systems, medical devices, automotive systems, and industrial automation.
Examples of Real-Time Operating Systems:
 VxWorks: A popular hard real-time operating system developed by Wind River
Systems, used in aerospace, automotive, and industrial applications.
 RTLinux: A real-time extension of the Linux kernel, designed to provide real-time
capabilities while maintaining compatibility with Linux applications.
 QNX: A microkernel-based RTOS used in automotive, medical, and industrial
control systems. Known for its scalability and reliability.
 FreeRTOS: An open-source real-time operating system widely used in embedded
systems, especially in IoT devices.
 Micrium OS (formerly µC/OS-II and µC/OS-III): A real-time operating system used
in safety-critical applications, such as medical devices and automotive systems.
Types of OS…Ctd
An Embedded Operating System (EOS) is a specialized operating system
designed to perform specific tasks in embedded systems. Embedded systems are
dedicated devices or applications where the operating system is "embedded"
within the hardware, controlling and managing the hardware resources for
specific functions. These systems often operate under strict resource constraints,
such as limited processing power, memory, and energy consumption, while
ensuring real-time performance and reliability.
Examples of Embedded Operating Systems:
 FreeRTOS:
 An open-source real-time operating system widely used in embedded systems,
particularly for Internet of Things (IoT) devices and small embedded applications.
 Known for its small footprint and support for various microcontroller architectures.
 VxWorks:
 A real-time operating system from Wind River Systems, designed for mission-critical
embedded systems such as aerospace, automotive, and medical devices.
 Known for its high reliability, real-time performance, and support for various hardware
architectures.
 Embedded Linux:
 A variant of the Linux kernel tailored for embedded devices. It provides a highly
customizable, scalable, and powerful platform for embedded systems like set-top boxes,
smartphones, and industrial controllers.
 Example: Yocto Project, OpenWrt, and Android (which is based on a Linux kernel).
 QNX:
 A real-time microkernel-based embedded OS known for its use in automotive
infotainment systems, industrial automation, and critical systems like medical devices
and power plants.
 It provides high reliability, security, and scalability.
Operating Systems Services
1. Program Execution
 The system must be able to load a program into memory and to run it. The
program must be able to end its execution, either normally or abnormally
(indicating error).
2. I/O Operations
 A running program may require I/O. This I/O may involve a file or an I/O device.
3. File System Manipulation
 The output of a program may need to be written into new files or input taken
from some files. The operating system provides this service.
4. Error Detection
 An error is one part of the system may cause malfunctioning of the complete
system. To avoid such a situation the operating system constantly monitors the
system for detecting the errors.
Operating Systems Services
5. Communication: the OS facilitates communication between processes, which
may be running on the same machine or on different machines. This can include
inter-processes communication(IPC), mechanisms like message passing, shared
memory, and sockets.
6. Resource Allocation: The OS manages the distribution of resources such as
CPU time, memory space, and I/O devices among competing processes. It
ensures efficient resource utilization and fairness.
7. Security and Protection: The OS provides security mechanisms to protect
data and resources from unauthorized access. This includes user authentication,
access control, and encryption.
8. User Interface: The OS provides a user interface that can be command-line
based or graphical, it allows the users to interact with the system and manage
applications and files.
Operating Systems Services
9. Job Management: The OS manages job scheduling for batch processing
systems, queuing jobs and allocating resources to them.

10. Networking: The OS provides services for network communication, allowing


programs to communication over a network using protocols like TCP/IP
These services work together to create an environment where applications can
run efficiently and users can interact with the system effectively.
System Calls
 System calls provide the interface between a process and the operating
system. These calls are generally available as assembly-language
instructions, and are usually listed in the manuals used by assembly-language
programmers.
In computing, a system call is a way for programs to interact with the operating
system. System calls provide an interface between a process and the OS,
allowing programs to request services such as file operations, memory allocation,
process creation, and communication.
System calls are a fundamental part of how programs interact with the
underlying operating system (OS). When a program wants the OS to perform a
specific action, such as accessing hardware or managing resources, it issues a
system call. These calls allow programs to request services from the kernel of
the operating system.
Types of system calls
System calls are categorized into different types based on their function. These
include:
1. Process Control: These system calls are used to create, terminate, and
manage processes.
fork: Creates a new process by duplicating the calling process.
exec: Replaces the current process image with a new process image.
exit: Terminates a program.
wait: Makes the parent process wait for a child process to terminate.
2. File Management: These system calls deal with file handling, such as
creating, deleting, reading, or writing files.
read: Reads data from a file into a buffer.
write: Writes data from a buffer to a file.
open: Opens a file for reading or writing.
close: Closes an open file.
Types of system calls…Ctd
3. Device Management: These system calls manage hardware devices such as
printers, disks, etc.
Ioctl: Manages device parameters.
read: Reads data from a device.
write: Writes data to a device.
4. Information Maintenance: These system calls are used to get information
about the system or process.
getpid: Returns the process ID of the calling process.
gettimeofday: Gets the current time.
alarm: Schedules a signal after a certain amount of time.
Types of system calls…Ctd
5. Communication:
Inter-Process Communication(IPC): pipe(); msgget(); msgrcv();
Sockets: socket(); bind(); listen(); accept();
HOW SYSTEM CALLS WORK
1. Application Request: A user program invokes a system call, typically through a
library function e.g printf() in C, which may internally use system calls.
2. Trap to Kernel: The execution switches from user mode to kernel mode, often
using a software interrupt or a trap. This ensures that the OS can safely handle
the system call.
3. Execution in Kernel Mode: The OS performs the requested service, accessing
hardware or managing resources as needed.
4. Return to User Mode: Once the service is completed, control returns to the use
program, often with a return value indicating success or failure.
Advantages of System Calls

 Abstraction: System Calls provide a simplified interface for complex


operations hiding the underlying hardware details.
 Security: By controlling access to hardware and resources, system calls helps
maintain system stability and security.
 Resource Management: They enable the OS to mange concurrent access to
resources by multiple processes
Structure of an Operating System
The structure of an operating system (OS) refers to how its components are organized
and how they interact to perform tasks. Different OS designs have been developed
over the years to meet various needs like performance, security, flexibility, and
modularity. The main structures include monolithic, layered, and microkernel.
1. Monolithic Structure
In a monolithic OS, the entire operating system runs in a single address space in
kernel mode, meaning all OS services, like file management, memory management,
process management, etc., are tightly integrated and can directly communicate with
each other.
Characteristics:
 Single large process: All components are compiled together into a single binary.
 Direct function calls: All services communicate through direct function calls,
making it fast.
 Difficult to maintain: Since the OS is a single entity, modifying or debugging one
part can impact the whole system.
Structure of an Operating System..Ctd
Advantages:
 Performance: Fast communication between components.
 Simplicity: Single binary to manage.

Disadvantages:
 Maintenance issues: Difficult to update and maintain.
 Poor modularity: It lacks separation of concerns; small changes may require
recompiling the entire system.

Example OS: Unix, Linux


Structure of an Operating System..Ctd
2. Layered Structure
A layered OS is designed with a hierarchy of layers where each layer provides
services to the layer above it and uses the services of the layer below it. The OS
is divided into layers, with each performing specific functions. The lowest layer
is the hardware, and the highest layer is the user interface.
Characteristics:
 Modularity: Each layer has a defined role and only interacts with adjacent
layers.
 Abstraction: Each layer hides the details of its internal functions and provides
a well-defined interface to the next layer.
Advantages:
 Modularity: Easy to maintain and debug, since each layer is independent.
 Isolation: Errors in one layer do not propagate easily to others.
Structure of an Operating System..Ctd
Disadvantages:
 Performance overhead: Communication between layers can add latency.
 Rigid structure: Inflexible design; all interactions must follow the layer
structure.

Example OS: THE operating system, some versions of Windows


Structure of an Operating System..Ctd
3. Microkernel Structure
In a microkernel OS, only the most essential services (such as inter-process
communication, basic scheduling, and memory management) run in the kernel space.
Other OS services like drivers, file systems, and network services run in user space as
user processes.
Characteristics:
 Minimal kernel: Only essential services reside in the kernel; other services run as
separate processes.
 User space services: Non-critical OS services run outside the kernel, reducing
kernel complexity.
Advantages:
 Fault isolation: If a non-essential service crashes, the system can continue
running.
 Security and stability: Better isolation between system components reduces the
risk of system-wide crashes.
Structure of an Operating System..Ctd
Disadvantages:
 Performance overhead: More context switches and communication between
kernel and user space may introduce overhead.
 Complexity in design: Designing an efficient microkernel requires careful
engineering.

Example OS: Minix, QNX, early versions of MacOS X


Concept of virtual machine
A virtual machine (VM) is a software-based simulation of a computer system that
runs within a physical machine (the host). It allows multiple operating systems
(guests) to run simultaneously on the same hardware, independent of each other.
VMs are commonly used in operating systems for isolation, resource
management, and testing purposes.
Here's an overview of the key concepts:
1. Host and Guest Systems
 Host System: The physical computer (hardware) and the primary operating
system that manages the VM.
 Guest System: The virtual machine that runs its own operating system as
though it were on separate hardware.
Concept of virtual machine…Ctd
2. Hypervisor (Virtual Machine Monitor)
The hypervisor is a layer of software that manages and allocates the resources of
the physical hardware to the virtual machines.
There are two types:
 Type 1 (Bare-metal): Runs directly on the host's hardware. Examples include
VMware ESXi and Microsoft Hyper-V.
 Type 2 (Hosted): Runs on top of the host's operating system, like VirtualBox
or VMware Workstation.
3. Virtualization
Virtualization is the process of creating multiple virtual instances (VMs) on a
single physical machine. Each VM operates independently, with its own operating
system and applications, and they share the physical hardware, like CPU,
memory, and storage.
Concept of virtual machine…Ctd
4. Isolation
VMs are isolated from each other, meaning that problems or crashes in one VM
don't affect the others or the host system. This makes them great for testing
different OS environments or running conflicting applications.
5. Resource Allocation
Virtual machines are assigned a portion of the physical system’s resources (e.g.,
CPU cores, RAM, storage) by the hypervisor. Resources can be dynamically
allocated, allowing for efficient usage of the host machine's hardware.
6. Virtual Disk and Virtual Network
 Virtual Disk: Each VM typically uses a virtual hard disk (VHD), which is a file
that acts like a physical hard drive for the VM.
 Virtual Network: VMs can have virtual network adapters that connect to the
host system’s network or form private networks between VMs.
Concept of virtual machine…Ctd
Example Use Cases:
 Running multiple OS: A developer can run Linux on a Windows machine via a
VM.
 Testing and debugging: QA teams use VMs to test applications in different
operating systems without needing separate hardware.
Benefits of VMs
 Hardware Efficiency: Multiple operating systems can run on one machine.
 Portability: VMs can be moved between host machines.
 Testing and Development: VMs are ideal for testing software in different
environments without needing multiple physical machines.
 Security: Isolation between VMs enhances security.
Case Study on Unix and Windows
UNIX and Windows are two major types of operating systems (OS), each with its
own distinct features, history, and use cases. Here's a comparison between the
two:
1. History and Origin
UNIX:
 Developed in the 1960s at AT&T's Bell Labs.
 Initially designed as a multi-user, multi-tasking operating system.
 It has a modular, open design, which made it the foundation for many other OSs
like Linux, BSD, macOS, and more.
Windows:
 Created by Microsoft in the mid-1980s.
 Initially built as a graphical user interface (GUI) on top of MS-DOS.
 Evolved into a full-fledged OS by the release of Windows NT in the early 1990s.
Case Study on Unix and Windows…Ctd
2. Kernel Structure
UNIX:
 Primarily uses a monolithic kernel.
 The kernel manages hardware resources and system processes.
 Offers robust security and stability, especially in network and server environments.
Windows:
 Windows NT, the core of modern Windows versions, uses a hybrid kernel.
 Combines elements of both monolithic and microkernel designs.
 Focuses on ease of use for desktop users and general compatibility.
Case Study on Unix and Windows…Ctd
3. User Interface
UNIX:
 Traditionally command-line interface (CLI) focused (e.g., shell interfaces like Bash,
Zsh).
 GUIs are available (e.g., GNOME, KDE for Linux), but not the primary interface for
all versions.
Windows:
 Primarily GUI-based.
 Command-line tools like PowerShell and Command Prompt exist, but the main
interface is a GUI, making it more user-friendly for non-technical users.
Case Study on Unix and Windows…Ctd
4. File System
UNIX:
 Uses file systems like ext4 (Linux), UFS (BSD), HFS+ (macOS), etc.
 Everything is treated as a file, including devices.
 It has strong permission systems with user/group/other access rights.
Windows:
 Primarily uses NTFS (New Technology File System) with FAT32 for older systems.
 Windows file systems have strong support for file permissions but are structured
differently than UNIX systems.
Case Study on Unix and Windows…Ctd
5. Software Compatibility
UNIX:
 Many open-source software packages and utilities are available.
 Popular for servers, research, and development environments.
 Programs written for UNIX systems might not run on Windows without modification.
Windows:
 Extensive compatibility with commercial and proprietary software (e.g., Microsoft
Office, Adobe products, games).
 Software development on Windows is often geared towards applications with broad
consumer use.
Case Study on Unix and Windows…Ctd
6. Security
UNIX:
 Generally considered more secure due to its design (permissions, user isolation, etc.).
 It's commonly used in environments where security is critical, like servers.
Windows:
 More vulnerable historically due to its wide adoption and architecture.
 Over time, Microsoft has greatly improved security features (e.g., Windows Defender,
UAC).
7. Usage and Applications
UNIX:
 Dominates in server environments, academic research, supercomputers, and enterprise
settings.
 Linux, a UNIX-like system, powers most web servers, cloud systems, and Android devices.
Windows:
 Dominates the desktop and consumer market.
 Commonly used in businesses for office tasks, gaming, and general home use.
Case Study on Unix and Windows…Ctd
8. Cost
UNIX:
 Many versions are open-source and free (e.g., Linux distributions).
 Commercial UNIX systems like macOS or Solaris may come with hardware or
software costs.
Windows:
 Usually licensed software with associated costs for each copy or device.
 Some versions come pre-installed on new PCs, but enterprise editions often have
subscription fees.

You might also like