Chapter One
Chapter One
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