2) OS Structure.ppt
2) OS Structure.ppt
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
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:
● User interface - Almost all operating systems have a user
interface (UI).
4 Varies between Command-Line (CLI), Graphics User
Interface (GUI), Batch
● 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)
● 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.3 Silberschatz, Galvin and Gagne ©2013
Operating System Services (Cont.)
Operating System Concepts – 9th Edition 2.4 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
● Resource allocation - When multiple users or multiple jobs running
concurrently, resources must be allocated to each of them
4 Many types of resources - CPU cycles, main memory, file storage,
I/O devices.
● 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
4 Protection involves ensuring that all access to system resources is
controlled
4 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.5 Silberschatz, Galvin and Gagne ©2013
A View of Operating System Services
Operating System Concepts – 9th Edition 2.6 Silberschatz, Galvin and Gagne ©2013
User Operating System Interface - CLI
Operating System Concepts – 9th Edition 2.7 Silberschatz, Galvin and Gagne ©2013
User Operating System Interface - GUI
Operating System Concepts – 9th Edition 2.8 Silberschatz, Galvin and Gagne ©2013
Touchscreen Interfaces
Operating System Concepts – 9th Edition 2.9 Silberschatz, Galvin and Gagne ©2013
The Mac OS X GUI
Operating System Concepts – 9th Edition 2.10 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)
Operating System Concepts – 9th Edition 2.11 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.12 Silberschatz, Galvin and Gagne ©2013
Example of Standard API
Operating System Concepts – 9th Edition 2.13 Silberschatz, Galvin and Gagne ©2013
System Call Implementation
Operating System Concepts – 9th Edition 2.14 Silberschatz, Galvin and Gagne ©2013
API – System Call – OS Relationship
Operating System Concepts – 9th Edition 2.15 Silberschatz, Galvin and Gagne ©2013
System Call Parameter Passing
Operating System Concepts – 9th Edition 2.16 Silberschatz, Galvin and Gagne ©2013
Parameter Passing via Table
Operating System Concepts – 9th Edition 2.17 Silberschatz, Galvin and Gagne ©2013
Types of System Calls
● Process control
● create process, terminate process
● end, abort
● load, execute
● get process attributes, set process attributes
● wait for time
● wait event, signal event
● allocate and free memory
● Dump memory if error
● Debugger for determining bugs, single step execution
● Locks for managing access to shared data between processes
Operating System Concepts – 9th Edition 2.18 Silberschatz, Galvin and Gagne ©2013
Types of System Calls
● File management
● create file, delete file
● open, close file
● read, write, reposition
● get and set file attributes
● Device management
● request device, release device
● read, write, reposition
● get device attributes, set device attributes
● logically attach or detach devices
Operating System Concepts – 9th Edition 2.19 Silberschatz, Galvin and Gagne ©2013
Types of System Calls (Cont.)
● Information maintenance
● get time or date, set time or date
● get system data, set system data
● get and set process, file, or device attributes
● Communications
● create, delete communication connection
● send, receive messages if message passing model to host
name or process name
4 From client to server
● Shared-memory model create and gain access to memory
regions
● transfer status information
● attach and detach remote devices
Operating System Concepts – 9th Edition 2.20 Silberschatz, Galvin and Gagne ©2013
Types of System Calls (Cont.)
● Protection
● Control access to resources
● Get and set permissions
● Allow and deny user access
Operating System Concepts – 9th Edition 2.21 Silberschatz, Galvin and Gagne ©2013
Examples of Windows and Unix System Calls
Operating System Concepts – 9th Edition 2.22 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.23 Silberschatz, Galvin and Gagne ©2013
Example: MS-DOS
● Single-tasking
● Shell invoked when system
booted
● Simple method to run
program
● 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.24 Silberschatz, Galvin and Gagne ©2013
Example: FreeBSD
● Unix variant
● Multitasking
● User login -> invoke user’s choice of shell
● Shell executes fork() system call to create
process
● Executes exec() to load program into
process
● Shell waits for process to terminate or
continues with user commands
● Process exits with:
● code = 0 – no error
● code > 0 – error code
Operating System Concepts – 9th Edition 2.25 Silberschatz, Galvin and Gagne ©2013
System Programs
● System programs provide a convenient environment for program
development and execution. They can be divided into:
● File manipulation
● Status information sometimes stored in a File modification
● Programming language support
● Program loading and execution
● Communications
● Background services
● 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.26 Silberschatz, Galvin and Gagne ©2013
System Programs
● Provide a convenient environment for program development and
execution
● Some of them are simply user interfaces to system calls;
others are considerably more complex
● Status information
● Some ask the system for info - date, time, amount of available
memory, disk space, number of users
● Others provide detailed performance, logging, and debugging
information
● Typically, these programs format and print the output to the
terminal or other output devices
● Some systems implement a registry - used to store and
retrieve configuration information
Operating System Concepts – 9th Edition 2.27 Silberschatz, Galvin and Gagne ©2013
System Programs (Cont.)
● File modification
● Text editors to create and modify files
● 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
● 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.28 Silberschatz, Galvin and Gagne ©2013
System Programs (Cont.)
● Background Services
● Launch at boot time
4 Some for system startup, then terminate
4 Some from system boot to shutdown
● Provide facilities like disk checking, process scheduling, error
logging, printing
● Run in user context not kernel context
● Known as services, subsystems, daemons
● Application programs
● Don’t pertain to system
● Run by users
● Not typically considered part of OS
● Launched by command line, mouse click, finger poke
Operating System Concepts – 9th Edition 2.29 Silberschatz, Galvin and Gagne ©2013
Operating System Structure
● General-purpose OS is very large program
● Various ways to structure ones
● Simple structure – MS-DOS
● More complex -- UNIX
● Layered – an abstrcation
● Microkernel -Mach
Operating System Concepts – 9th Edition 2.30 Silberschatz, Galvin and Gagne ©2013
Simple Structure -- MS-DOS
Operating System Concepts – 9th Edition 2.31 Silberschatz, Galvin and Gagne ©2013
Non Simple Structure -- UNIX
Operating System Concepts – 9th Edition 2.32 Silberschatz, Galvin and Gagne ©2013
Traditional UNIX System Structure
Beyond simple but not fully layered
Operating System Concepts – 9th Edition 2.33 Silberschatz, Galvin and Gagne ©2013
Layered Approach
Operating System Concepts – 9th Edition 2.34 Silberschatz, Galvin and Gagne ©2013
Microkernel System Structure
● Moves as much from the kernel into user space
● Mach example of microkernel
● Mac OS X kernel (Darwin) partly based on Mach
● Communication takes place between user modules using
message passing
● Benefits:
● Easier to extend a microkernel
● Easier to port the operating system to new architectures
● More reliable (less code is running in kernel mode)
● More secure
● Detriments:
● Performance overhead of user space to kernel space
communication
Operating System Concepts – 9th Edition 2.35 Silberschatz, Galvin and Gagne ©2013
Microkernel System Structure
Operating System Concepts – 9th Edition 2.36 Silberschatz, Galvin and Gagne ©2013
Modules
● Many modern operating systems implement loadable 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
● Linux, Solaris, etc
Operating System Concepts – 9th Edition 2.37 Silberschatz, Galvin and Gagne ©2013
Solaris Modular Approach
Operating System Concepts – 9th Edition 2.38 Silberschatz, Galvin and Gagne ©2013
Hybrid Systems
● Most modern operating systems are actually not one pure model
● Hybrid combines multiple approaches to address
performance, security, usability needs
● Linux and Solaris kernels in kernel address space, so
monolithic, plus modular for dynamic loading of functionality
● Windows mostly monolithic, plus microkernel for different
subsystem personalities
● Apple Mac OS X hybrid, layered, Aqua UI plus Cocoa
programming environment
● 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.39 Silberschatz, Galvin and Gagne ©2013
Mac OS X Structure
Operating System Concepts – 9th Edition 2.40 Silberschatz, Galvin and Gagne ©2013
iOS
Operating System Concepts – 9th Edition 2.41 Silberschatz, Galvin and Gagne ©2013
Android
● Developed by Open Handset Alliance (mostly Google)
● Open Source
● Similar stack to IOS
● Based on Linux kernel but modified
● Provides process, memory, device-driver management
● Adds power management
● Runtime environment includes core set of libraries and Dalvik
virtual machine
● Apps developed in Java plus Android API
4 Java class files compiled to Java bytecode then translated
to executable than runs in Dalvik VM
● Libraries include frameworks for web browser (webkit), database
(SQLite), multimedia, smaller libc
Operating System Concepts – 9th Edition 2.42 Silberschatz, Galvin and Gagne ©2013
Android Architecture
Operating System Concepts – 9th Edition 2.43 Silberschatz, Galvin and Gagne ©2013