0% found this document useful (0 votes)
86 views38 pages

Chapter One

An operating system controls application programs and acts as an interface between applications and hardware. It aims to provide convenience, efficiency, and ability to evolve. The OS manages resources like memory, processes, files, and I/O devices. It also provides security through access control and error detection. Operating systems have evolved from single-user batch systems to time-sharing systems with graphical interfaces to support multiple simultaneous users.

Uploaded by

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

Chapter One

An operating system controls application programs and acts as an interface between applications and hardware. It aims to provide convenience, efficiency, and ability to evolve. The OS manages resources like memory, processes, files, and I/O devices. It also provides security through access control and error detection. Operating systems have evolved from single-user batch systems to time-sharing systems with graphical interfaces to support multiple simultaneous users.

Uploaded by

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

Basics of Operating Systems

Definition and Objectives of Operating Systems


An OS is a program that controls the execution of
application programs and acts as an interface between
applications and the computer hardware
It can be thought of as having three objectives:
Convenience
Efficiency
Ability to evolve
Layers and Views
Services Provided by the OS
Program development
Editors and debuggers
Program execution
Access I/O devices
Controlled access to files
System access
Error detection and response
Internal and external hardware errors
Software errors
Operating system cannot grant request of application
Services Provided by the OS
Accounting
Collect usage statistics
Monitor performance
Used to anticipate future enhancements
Used for billing purposes
The Operating System as Resource Manager
Responsible for managing resources
Functions same way as ordinary computer software
It is a program that is executed
Kernel
Portion of operating system that is in main memory
Contains most frequently used functions
Also called the nucleus
Evolution of Operating Systems
Hardware upgrades plus new types of hardware
For example, early versions of UNIX and the Macintosh
operating system did not employ a paging mechanism
because they were run on processors without paging
hardware
New services
For example, if it is found to be difficult to maintain good
performance for users with existing tools, new measurement
and control tools may be added to the OS
Fixes
Any OS has faults and are discovered over the course of
time and fixes are made
The fix may introduce new faults
Evolution of Operating Systems
Serial processing
No operating system
Machines run from a console with display lights, toggle
switches, input device, and printer
Schedule time
Setup included loading the compiler, source program, saving
compiled program, and loading and linking
Simple batch system
Monitor
Software that controls the sequence of events
Batch jobs together
Program returns control to monitor when finished
Hardware Features Desirable in Batch OS
Memory protection
Does not allow the memory area containing the
monitor to be altered
Timer
Prevents a job from monopolizing the system
Privileged instructions
Certain machine level instructions can only be
executed by the monitor
Interrupts
Early computer models did not have this capability
Modes of Operation
Considerations of memory protection and privileged
instructions lead to the concept of modes of operation
User program executes in user mode
Certain instructions may not be executed
Monitor executes in system mode
Kernel mode
Privileged instructions are executed
Protected areas of memory may be accessed
Uniprogramming
Processor must wait for I/O instruction to complete
before proceeding
Multiprogramming
When one job needs to wait for I/O, the processor can
switch to the other job
Time Sharing Systems
Using multiprogramming to handle multiple
interactive jobs
Processors time is shared among multiple users
Multiple users simultaneously access the system
through terminals
Batch Multiprogramming versus Time
Sharing
Operating System Structures
System Components
Operating System Services
System Calls
System Programs
System Structure
Virtual Machines
System Design and Implementation
System Generation
Common System Components
Process Management
Main Memory Management
File Management
I/O System Management
Secondary Management
Networking
Protection System
Command-Interpreter System
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
The operating system is responsible for the following
activities in connection with process management
Process creation and deletion
process suspension and resumption
Provision of mechanisms for:
process synchronization

process communication
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
It loses its contents in the case of system failure
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
File Management
A file is a collection of related information defined by its
creator
Commonly, files represent programs (both source and
object forms) and data
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
I/O System Management
The I/O system consists of:
A buffer-caching system
A general device-driver interface
Drivers for specific hardware devices
Secondary-Storage Management
Since main memory (primary storage) is volatile and
too small to accommodate all data and programs
permanently, the computer system must provide
secondary storage to back up main memory
Most modern computer systems use disks as the
principle on-line storage medium, for both programs
and data
The operating system is responsible for the following
activities in connection with disk management:
Free space management
Storage allocation
Disk scheduling
Networking (Distributed Systems)
A distributed system is a collection processors that do not
share memory or a clock
Each processor has its own local memory
The processors in the system are connected through a
communication network
Communication takes place using a protocol
A distributed system provides user access to various
system resources
Access to a shared resource allows:
Computation speed-up
Increased data availability
Enhanced reliability
Protection System
Protection refers to a mechanism for controlling
access by programs, processes, or users to both
system and user resources
The protection mechanism must:
distinguish between authorized and unauthorized
usage
specify the controls to be imposed
provide a means of enforcement
Command-Interpreter System
Many commands are given to the operating system by
control statements which deal with:
process creation and management
I/O handling
secondary-storage management
main-memory management
file-system access
protection
networking
Command-Interpreter System
The program that reads and interprets control
statements is called variously:
command-line interpreter
shell (in UNIX)
Its function is to get and execute the next command
statement
System Calls
System calls provide the interface between a running
program and the operating system
Generally available as assembly-language
instructions
Languages defined to replace assembly language
for systems programming allow system calls to be
made directly (e.g., C, C++)
System Programs
System programs provide a convenient environment for
program development and execution
They can be divided into:
File manipulation
Status information
File modification
Programming language support
Program loading and execution
Communications
Application programs
Most users view of the operation system is defined by
system programs, not the actual system calls
Virtual Machines
The operating system creates the illusion of multiple
processes, each executing on its own processor with
its own (virtual) memory
It treats hardware and the operating system kernel as
though they were all hardware
A virtual machine provides an interface identical to
the underlying bare hardware
Virtual Machines
The resources of the physical computer are shared to
create the virtual machines
CPU scheduling can create the appearance that
users have their own processor
A normal user time-sharing terminal serves as the
virtual machine operators console
System Model
Advantages/Disadvantages of Virtual Machines
Provides complete protection of system resources
since each virtual machine is isolated from all other
virtual machines
This isolation permits no direct sharing of resources
A perfect vehicle for operating-systems research and
development
System development is done on the virtual machine,
instead of on a physical machine and so does not
disrupt normal system operation
Difficult to implement due to the effort required to
provide an exact duplicate to the underlying machine
System Design Goals
User goals operating system should be convenient
to use, easy to learn, reliable, safe, and fast
System goals operating system should be easy to
design, implement, and maintain, as well as flexible,
reliable, error-free, and efficient
System Implementation
Traditionally written in assembly language, operating
systems can now be written in higher-level languages
Code written in a high-level language:
can be written faster
is more compact
is easier to understand and debug
An operating system is far easier to port (move to
some other hardware) if it is written in a high-level
language
System Generation
Operating systems are designed to run on any of a
class of machines; the system must be configured for
each specific computer site
SYSGEN program obtains information concerning
the specific configuration of the hardware system
Booting starting a computer by loading the kernel
Bootstrap program code stored in ROM that is able
to locate the kernel, load it into memory, and start its
execution
Modern Operating Systems
Microkernel architecture
Assigns only a few essential functions to the kernel
Address spaces
Interprocess communication (IPC)
Basic scheduling
Multithreading
Process is divided into threads that can run concurrently
Thread
Dispatchable unit of work
executes sequentially and is interruptable

Process is a collection of one or more threads


Modern Operating Systems
Symmetric multiprocessing (SMP)
There are multiple processors
These processors share same main memory and I/O
facilities
All processors can perform the same functions
Multiprogramming and Multiprocessing
Modern Operating Systems
Distributed operating systems
Provides the illusion of a single main memory
space and single secondary memory space
Object-oriented design
Used for adding modular extensions to a small
kernel
Enables programmers to customize an operating
system without disrupting system integrity

You might also like