ch2 Compatibility Mode
ch2 Compatibility Mode
ch2 Compatibility Mode
Structures
Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
Chapter 2: Operating-System Structures
Operating System Concepts – 8th Edition 2.2 Silberschatz, Galvin and Gagne ©2009
Objectives
To describe the services an operating system provides to users, processes,
and other systems
To discuss the various ways of structuring an operating system
Operating System Concepts – 8th Edition 2.3 Silberschatz, Galvin and Gagne ©2009
Operating System Services
Operating System Concepts – 8th Edition 2.4 Silberschatz, Galvin and Gagne ©2009
A View of Operating System Services
Operating System Concepts – 8th Edition 2.5 Silberschatz, Galvin and Gagne ©2009
Operating System Services (Cont)
Operating System Concepts – 8th Edition 2.6 Silberschatz, Galvin and Gagne ©2009
Operating System Services (Cont)
Another set of OS functions exists for ensuring the efficient operation of the
system itself via resource sharing
Resource allocation - When multiple users or multiple jobs running
concurrently, resources must be allocated to each of them
Many types of resources - Some (such as CPU cycles, main memory,
and file storage) may have special allocation code, others (such as I/O
devices) may have general request and release code
Accounting - To keep track of which users use how much and what kinds
of computer resources
Protection and security - The owners of information stored in a multiuser
or networked computer system may want to control use of that information,
concurrent processes should not interfere with each other
Protection involves ensuring that all access to system resources is
controlled
Security of the system from outsiders requires user authentication,
extends to defending external I/O devices from invalid access attempts
If a system is to be protected and secure, precautions must be
instituted throughout it. A chain is only as strong as its weakest link.
Operating System Concepts – 8th Edition 2.7 Silberschatz, Galvin and Gagne ©2009
User Operating System Interface - CLI
Operating System Concepts – 8th Edition 2.8 Silberschatz, Galvin and Gagne ©2009
User Operating System Interface - GUI
User-friendly desktop metaphor interface
Usually mouse, keyboard, and monitor
Icons represent files, programs, actions, etc
Various mouse buttons over objects in the interface cause various
actions (provide information, options, execute function, open directory
(known as a folder)
Invented at Xerox PARC
Many systems now include both CLI and GUI interfaces
Microsoft Windows is GUI with CLI “command” shell
Apple Mac OS X as “Aqua” GUI interface with UNIX kernel underneath
and shells available
Solaris is CLI with optional GUI interfaces (Java Desktop, KDE)
Operating System Concepts – 8th Edition 2.9 Silberschatz, Galvin and Gagne ©2009
Bourne Shell Command Interpreter
Operating System Concepts – 8th Edition 2.10 Silberschatz, Galvin and Gagne ©2009
The Mac OS X GUI
Operating System Concepts – 8th Edition 2.11 Silberschatz, Galvin and Gagne ©2009
System Calls
Operating System Concepts – 8th Edition 2.12 Silberschatz, Galvin and Gagne ©2009
System Calls
Programming interface to the services provided by the OS
Typically written in a high-level language (C or C++)
Mostly accessed by programs via a high-level Application Program Interface
(API) rather than direct system call use
Three most common APIs are Win32 API for Windows, POSIX API for
POSIX-based systems (including virtually all versions of UNIX, Linux, and
Mac OS X), and Java API for the Java virtual machine (JVM)
Why use APIs rather than system calls?
Portability
System calls are more detailed and difficult to work with.
(Note that the system-call names used throughout this text are generic)
Operating System Concepts – 8th Edition 2.13 Silberschatz, Galvin and Gagne ©2009
Example of System Calls
System call sequence to copy the contents of one file to another file
Operating System Concepts – 8th Edition 2.14 Silberschatz, Galvin and Gagne ©2009
Example of Standard API
Consider the ReadFile() function in the
Win32 API—a function for reading from a file
Operating System Concepts – 8th Edition 2.15 Silberschatz, Galvin and Gagne ©2009
System Call Implementation
Typically, a number associated with each system call
System-call interface maintains a table indexed according to these
numbers
The system call interface invokes intended system call in OS kernel and
returns status of the system call and any return values
The caller need know nothing about how the system call is implemented
Just needs to obey API and understand what OS will do as a result call
Most details of OS interface hidden from programmer by API
Managed by run-time support library (set of functions built into
libraries included with compiler)
Operating System Concepts – 8th Edition 2.16 Silberschatz, Galvin and Gagne ©2009
API – System Call – OS Relationship
Operating System Concepts – 8th Edition 2.17 Silberschatz, Galvin and Gagne ©2009
Standard C Library Example
C program invoking printf() library call, which calls write() system call
Operating System Concepts – 8th Edition 2.18 Silberschatz, Galvin and Gagne ©2009
System Call Parameter Passing
Often, more information is required than simply identity of desired system
call
Exact type and amount of information vary according to OS and call
Three general methods used to pass parameters to the OS
Simplest: pass the parameters in registers
In some cases, may be more parameters than registers
Operating System Concepts – 8th Edition 2.19 Silberschatz, Galvin and Gagne ©2009
Parameter Passing via Table
Operating System Concepts – 8th Edition 2.20 Silberschatz, Galvin and Gagne ©2009
Types of System Calls
Process control
end, abort, load, execute, create, terminate, wait event, get process
attributes, …
File management
create, delete, open, close, read, write,…..
Device management
request device, release, read, write,….
Information maintenance
get time, date, get system data, ….
Communications
create, delete communication connections, send message, …..
Protection
get permission, set permission.
Operating System Concepts – 8th Edition 2.21 Silberschatz, Galvin and Gagne ©2009
Examples of Windows and Unix System Calls
Operating System Concepts – 8th Edition 2.22 Silberschatz, Galvin and Gagne ©2009
System Programs
Operating System Concepts – 8th Edition 2.23 Silberschatz, Galvin and Gagne ©2009
OS Structure: 1- Simple Structure (Monolithic)
Traditionally, OS’s (like UNIX, DOS) were built as a monolithic entity:
Operating System Concepts – 8th Edition 2.24 Silberschatz, Galvin and Gagne ©2009
OS Structure: 1- Simple Structure (Monolithic)
MS-DOS – written to provide the most functionality in the least space
Not divided into modules
Although MS-DOS has some structure, its interfaces and levels of
functionality are not well separated–
e.g. application programs can access low level drivers directly .
Vulnerable to errant (malicious) programs
Operating System Concepts – 8th Edition 2.25 Silberschatz, Galvin and Gagne ©2009
OS Structure: 1- Simple Structure (Monolithic)
Major advantage:
cost of module interactions is low (procedure call)
Disadvantages:
hard to understand
hard to modify
unreliable (no isolation between system modules)
hard to maintain
Operating System Concepts – 8th Edition 2.26 Silberschatz, Galvin and Gagne ©2009
Traditional UNIX System Structure
Operating System Concepts – 8th Edition 2.27 Silberschatz, Galvin and Gagne ©2009
UNIX
Operating System Concepts – 8th Edition 2.28 Silberschatz, Galvin and Gagne ©2009
OS Structure: 2- Layered Approach
The operating system is divided into a number of layers (levels), each built
on top of lower layers. The bottom layer (layer 0), is the hardware; the
highest (layer N) is the user interface.
Operating System Concepts – 8th Edition 2.29 Silberschatz, Galvin and Gagne ©2009
Layered Operating System
With modularity, layers are selected such that each uses functions
(operations) and services of only lower-level layers
• Not always possible: Does process scheduler lie above or below virtual
memory layer?
Need to reschedule processor while waiting for paging
May need to page in information about tasks
Operating System Concepts – 8th Edition 2.30 Silberschatz, Galvin and Gagne ©2009
3- Microkernel System Structure
Moves as much from the kernel into “user” space (Move all non-essential
components from the kernel into “user” space).
Main function of microkernel: Communication between client programs and
various services which are run in user space
Communication takes place between user modules using message passing
Benefits:
Easier to extend O.S.(all new services are added to user space).
Easier to port the operating system to new architectures(because the
microkernel is small).
More reliable (less code is running in kernel mode)
More secure.
Detriments:
Performance overhead of user space to kernel space communication.
Operating System Concepts – 8th Edition 2.31 Silberschatz, Galvin and Gagne ©2009
3- Microkernel System Structure
Operating System Concepts – 8th Edition 2.32 Silberschatz, Galvin and Gagne ©2009
Layered OS vs Microkernel
Operating System Concepts – 8th Edition 2.33 Silberschatz, Galvin and Gagne ©2009
4- Modules
Most modern operating systems implement kernel modules
Uses object-oriented approach
Each core component is separate
Each talks to the others over known interfaces
Each is loadable as needed within the kernel
Overall, similar to layers but with more flexible
-Any module can call any other module
Operating System Concepts – 8th Edition 2.34 Silberschatz, Galvin and Gagne ©2009
Solaris Modular Approach
Operating System Concepts – 8th Edition 2.35 Silberschatz, Galvin and Gagne ©2009
5- Hybrid Systems
Very few operating systems adopt a single structure
Most operating systems combine different structures
Example: Windows OS
Largely monolithic
Partially microkernel structure: Provides support for separate
subsystems
Partially modular structure: Provides support for dynamically loadable
kernel modules
Operating System Concepts – 8th Edition 2.36 Silberschatz, Galvin and Gagne ©2009
Mac OS X Structure
Operating System Concepts – 8th Edition 2.37 Silberschatz, Galvin and Gagne ©2009
Virtual Machines
Operating System Concepts – 8th Edition 2.38 Silberschatz, Galvin and Gagne ©2009
Virtual Machines History and Benefits
First appeared commercially in IBM mainframes in 1972
Fundamentally, multiple execution environments (different operating
systems) can share the same hardware
Protect from each other
Some sharing of file can be permitted, controlled
Commutate with each other, other physical systems via networking
Useful for development, testing
Consolidation of many low-resource use systems onto fewer busier systems
“Open Virtual Machine Format”, standard format of virtual machines, allows
a VM to run within many different virtual machine (host) platforms
Operating System Concepts – 8th Edition 2.39 Silberschatz, Galvin and Gagne ©2009
Virtual Machines (Cont)
Operating System Concepts – 8th Edition 2.40 Silberschatz, Galvin and Gagne ©2009
VMware Architecture
Operating System Concepts – 8th Edition 2.41 Silberschatz, Galvin and Gagne ©2009
The Java Virtual Machine
Operating System Concepts – 8th Edition 2.42 Silberschatz, Galvin and Gagne ©2009
End of Chapter 2
Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009