Group 1 OS Work
Group 1 OS Work
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
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.
Disadvantages:
Maintenance issues: Difficult to update and maintain.
Poor modularity: It lacks separation of concerns; small changes may require
recompiling the entire system.