Chapter 2 Operating-System Structures
Chapter 2 Operating-System Structures
Structures
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
Chapter 2: Operating-System Structures
Operating System Concepts – 9th Edition 2.2 Silberschatz, Galvin and Gagne ©2013
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
▪ To explain how operating systems are installed and
customized and how they boot
Operating System Concepts – 9th Edition 2.3 Silberschatz, Galvin and Gagne ©2013
Operating System Services
▪ Operating systems provide an environment for execution of programs
and services to programs and users
▪ One set of operating-system services provides functions that are
helpful to the user:
o User interface - Almost all operating systems have a user
interface (UI).
o Varies between Command-Line (CLI), Graphics User
Interface (GUI), Batch
o Program execution - The system must be able to load a
program into memory and to run that program, end execution,
either normally or abnormally (indicating error)
o I/O operations - A running program may require I/O, which may
involve a file or an I/O device
Operating System Concepts – 9th Edition 2.4 Silberschatz, Galvin and Gagne ©2013
Operating System Services (Cont.)
Operating System Concepts – 9th Edition 2.5 Silberschatz, Galvin and Gagne ©2013
Operating System Services (Cont.)
▪ Another set of OS functions exists for ensuring the efficient operation of the
system itself via resource sharing
o Resource allocation - When multiple users or multiple jobs running
concurrently, resources must be allocated to each of them
o Many types of resources - CPU cycles, main memory, file storage,
I/O devices.
o Accounting - To keep track of which users use how much and what
kinds of computer resources
o 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
o Protection involves ensuring that all access to system resources is
controlled
o Security of the system from outsiders requires user authentication,
extends to defending external I/O devices from invalid access
attempts
Operating System Concepts – 9th Edition 2.6 Silberschatz, Galvin and Gagne ©2013
A View of Operating System Services
Operating System Concepts – 9th Edition 2.7 Silberschatz, Galvin and Gagne ©2013
User Operating System Interface - CLI
Operating System Concepts – 9th Edition 2.8 Silberschatz, Galvin and Gagne ©2013
Bourne Shell Command Interpreter
Operating System Concepts – 9th Edition 2.9 Silberschatz, Galvin and Gagne ©2013
User Operating System Interface - GUI
Operating System Concepts – 9th Edition 2.10 Silberschatz, Galvin and Gagne ©2013
Touchscreen Interfaces
Operating System Concepts – 9th Edition 2.11 Silberschatz, Galvin and Gagne ©2013
The Mac OS X GUI
Operating System Concepts – 9th Edition 2.12 Silberschatz, Galvin and Gagne ©2013
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 Programming 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)
Note that the system-call names used throughout this text are
generic
Operating System Concepts – 9th Edition 2.13 Silberschatz, Galvin and Gagne ©2013
Example of System Calls
▪ System call sequence to copy the contents of one file to another file
Operating System Concepts – 9th Edition 2.14 Silberschatz, Galvin and Gagne ©2013
Example of Standard API
Operating System Concepts – 9th Edition 2.15 Silberschatz, Galvin and Gagne ©2013
System Call Implementation
Operating System Concepts – 9th Edition 2.16 Silberschatz, Galvin and Gagne ©2013
API – System Call – OS Relationship
Operating System Concepts – 9th Edition 2.17 Silberschatz, Galvin and Gagne ©2013
System Call Parameter Passing
Operating System Concepts – 9th Edition 2.18 Silberschatz, Galvin and Gagne ©2013
Parameter Passing via Table
Operating System Concepts – 9th Edition 2.19 Silberschatz, Galvin and Gagne ©2013
Types of System Calls
• Process control
o create process, terminate process
o end, abort
o load, execute
o get process attributes, set process attributes
o wait for time
o wait event, signal event
o allocate and free memory
o Dump memory if error
o Debugger for determining bugs, single step execution
o Locks for managing access to shared data between processes
Operating System Concepts – 9th Edition 2.20 Silberschatz, Galvin and Gagne ©2013
Types of System Calls
• File management
o create file, delete file
o open, close file
o read, write, reposition
o get and set file attributes
• Device management
o request device, release device
o read, write, reposition
o get device attributes, set device attributes
o logically attach or detach devices
Operating System Concepts – 9th Edition 2.21 Silberschatz, Galvin and Gagne ©2013
Types of System Calls (Cont.)
• Information maintenance
o get time or date, set time or date
o get system data, set system data
o get and set process, file, or device attributes
• Communications
o create, delete communication connection
o send, receive messages if message passing model to host
name or process name
o From client to server
o Shared-memory model create and gain access to memory
regions
o transfer status information
o attach and detach remote devices
Operating System Concepts – 9th Edition 2.22 Silberschatz, Galvin and Gagne ©2013
Types of System Calls (Cont.)
• Protection
o Control access to resources
o Get and set permissions
o Allow and deny user access
Operating System Concepts – 9th Edition 2.23 Silberschatz, Galvin and Gagne ©2013
Examples of Windows and Unix System Calls
Operating System Concepts – 9th Edition 2.24 Silberschatz, Galvin and Gagne ©2013
Standard C Library Example
• C program invoking printf() library call, which calls write() system call
Operating System Concepts – 9th Edition 2.25 Silberschatz, Galvin and Gagne ©2013
Example: MS-DOS
▪ Single-tasking
▪ Shell invoked when system
booted
▪ Simple method to run
program
o No process created
▪ Single memory space
▪ Loads program into memory,
overwriting all but the kernel
▪ Program exit -> shell
reloaded
Operating System Concepts – 9th Edition 2.26 Silberschatz, Galvin and Gagne ©2013
System Programs
▪ System programs provide a convenient environment for program
development and execution. They can be divided into:
o File manipulation
o Status information sometimes stored in a File modification
o Programming language support
o Program loading and execution
o Communications
o Background services
o Application programs
▪ Most users’ view of the operation system is defined by system
programs, not the actual system calls
Operating System Concepts – 9th Edition 2.28 Silberschatz, Galvin and Gagne ©2013
System Programs
▪ Provide a convenient environment for program development and
execution
o Some of them are simply user interfaces to system calls; others
are considerably more complex
▪ Status information
o Some ask the system for info - date, time, amount of available
memory, disk space, number of users
o Others provide detailed performance, logging, and debugging
information
o Typically, these programs format and print the output to the
terminal or other output devices
o Some systems implement a registry - used to store and
retrieve configuration information
Operating System Concepts – 9th Edition 2.29 Silberschatz, Galvin and Gagne ©2013
System Programs (Cont.)
▪ File modification
o Text editors to create and modify files
o Special commands to search contents of files or perform
transformations of the text
▪ Programming-language support - Compilers, assemblers,
debuggers and interpreters sometimes provided
▪ Program loading and execution- Absolute loaders, relocatable
loaders, linkage editors, and overlay-loaders, debugging systems
for higher-level and machine language
▪ Communications - Provide the mechanism for creating virtual
connections among processes, users, and computer systems
o Allow users to send messages to one another’s screens,
browse web pages, send electronic-mail messages, log in
remotely, transfer files from one machine to another
Operating System Concepts – 9th Edition 2.30 Silberschatz, Galvin and Gagne ©2013
System Programs (Cont.)
▪ Background Services
o Launch at boot time
o Some for system startup, then terminate
o Some from system boot to shutdown
o Provide facilities like disk checking, process scheduling, error
logging, printing
o Run in user context not kernel context
o Known as services, subsystems, daemons
▪ Application programs
o Don’t pertain to system
o Run by users
o Not typically considered part of OS
o Launched by command line, mouse click, finger poke
Operating System Concepts – 9th Edition 2.31 Silberschatz, Galvin and Gagne ©2013
Operating System Design and Implementation
Operating System Concepts – 9th Edition 2.32 Silberschatz, Galvin and Gagne ©2013
Operating System Design and Implementation (Cont.)
Operating System Concepts – 9th Edition 2.33 Silberschatz, Galvin and Gagne ©2013
Operating System Structure
▪ General-purpose OS is very large program
▪ Various ways to structure ones
o Simple structure – MS-DOS
o More complex -- UNIX
o Layered – an abstrcation
o Microkernel -Mach
Operating System Concepts – 9th Edition 2.35 Silberschatz, Galvin and Gagne ©2013
Simple Structure -- MS-DOS
Operating System Concepts – 9th Edition 2.36 Silberschatz, Galvin and Gagne ©2013
Non Simple Structure -- UNIX
Operating System Concepts – 9th Edition 2.37 Silberschatz, Galvin and Gagne ©2013
Traditional UNIX System Structure
Beyond simple but not fully layered
Operating System Concepts – 9th Edition 2.38 Silberschatz, Galvin and Gagne ©2013
Layered Approach
Operating System Concepts – 9th Edition 2.39 Silberschatz, Galvin and Gagne ©2013
Microkernel System Structure
▪ Moves as much from the kernel into user space
▪ Mach example of microkernel
o Mac OS X kernel (Darwin) partly based on Mach
▪ Communication takes place between user modules using
message passing
▪ Benefits:
o Easier to extend a microkernel
o Easier to port the operating system to new architectures
o More reliable (less code is running in kernel mode)
o More secure
▪ Detriments:
o Performance overhead of user space to kernel space
communication
Operating System Concepts – 9th Edition 2.40 Silberschatz, Galvin and Gagne ©2013
Microkernel System Structure
messages messages
microkernel
hardware
Operating System Concepts – 9th Edition 2.41 Silberschatz, Galvin and Gagne ©2013
Modules
▪ Many modern operating systems implement loadable kernel
modules
o Uses object-oriented approach
o Each core component is separate
o Each talks to the others over known interfaces
o Each is loadable as needed within the kernel
▪ Overall, similar to layers but with more flexible
o Linux, Solaris, etc
Operating System Concepts – 9th Edition 2.42 Silberschatz, Galvin and Gagne ©2013
Solaris Modular Approach
Operating System Concepts – 9th Edition 2.43 Silberschatz, Galvin and Gagne ©2013
Hybrid Systems
▪ Most modern operating systems are actually not one pure model
o Hybrid combines multiple approaches to address
performance, security, usability needs
o Linux and Solaris kernels in kernel address space, so
monolithic, plus modular for dynamic loading of functionality
o Windows mostly monolithic, plus microkernel for different
subsystem personalities
▪ Apple Mac OS X hybrid, layered, Aqua UI plus Cocoa
programming environment
o Below is kernel consisting of Mach microkernel and BSD Unix
parts, plus I/O kit and dynamically loadable modules (called
kernel extensions)
Operating System Concepts – 9th Edition 2.44 Silberschatz, Galvin and Gagne ©2013
Mac OS X Structure
kernel environment
BSD
Mach
Operating System Concepts – 9th Edition 2.45 Silberschatz, Galvin and Gagne ©2013
iOS
Operating System Concepts – 9th Edition 2.46 Silberschatz, Galvin and Gagne ©2013
Android
▪ Developed by Open Handset Alliance (mostly Google)
o Open Source
▪ Similar stack to IOS
▪ Based on Linux kernel but modified
o Provides process, memory, device-driver management
o Adds power management
▪ Runtime environment includes core set of libraries and Dalvik
virtual machine
o Apps developed in Java plus Android API
Java class files compiled to Java bytecode then translated
to executable than runs in Dalvik VM
o Libraries include frameworks for web browser (webkit), database
(SQLite), multimedia, smaller libc
Operating System Concepts – 9th Edition 2.47 Silberschatz, Galvin and Gagne ©2013
AndroidApplications
Architecture
Application Framework
surface media
Dalvik
manager framework
virtual machine
webkit libc
Linux kernel
Operating System Concepts – 9th Edition 2.48 Silberschatz, Galvin and Gagne ©2013
Operating-System Debugging
Operating System Concepts – 9th Edition 2.49 Silberschatz, Galvin and Gagne ©2013
Performance Tuning
▪ Improve performance by
removing bottlenecks
▪ OS must provide means of
computing and displaying
measures of system
behavior
▪ For example, “top” program
or Windows Task Manager
Operating System Concepts – 9th Edition 2.50 Silberschatz, Galvin and Gagne ©2013
DTrace
▪ Example of following
XEventsQueued system call
move from libc library to
kernel and back
Operating System Concepts – 9th Edition 2.51 Silberschatz, Galvin and Gagne ©2013
Dtrace (Cont.)
Operating System Concepts – 9th Edition 2.52 Silberschatz, Galvin and Gagne ©2013
Operating System Generation
Operating System Concepts – 9th Edition 2.53 Silberschatz, Galvin and Gagne ©2013
System Boot
Operating System Concepts – 9th Edition 2.54 Silberschatz, Galvin and Gagne ©2013
End of Chapter 2
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013