Transcript lecture2
Lecture 2:
Operating System Operations
System Calls
Operating System Structure
Operating System Concepts Essentials – 9th Edition
1.1
Silberschatz, Galvin and Gagne ©2013
Operating-System Operations
Dual-mode operation allows OS to protect itself and other system components
User mode and kernel mode
Mode bit provided by hardware
Provides ability to distinguish when system is running user code or
kernel code
Some instructions designated as privileged, only executable in kernel
mode
System call changes mode to kernel, return from call resets it to user
Operating System Concepts Essentials – 9th Edition
1.2
Silberschatz, Galvin and Gagne ©2013
Operating-System Operations (cont.)
Benefits of Dual Mode:
MSDOS for 8088 architecture had no mode bit—no dual mode
An errant user program could wipe out the OS data
Multiple programs are able to write to a device at the same time
Current Intel CPUs have all mode bits
Most contemporary operating systems, Windows, Unix, Linux, Solaris
take advantage of this feature and provide greater protection of the OS.
Operating System Concepts Essentials – 9th Edition
1.3
Silberschatz, Galvin and Gagne ©2013
Process Management
A process is a program in execution. It is a unit of work within the
system. Program is a passive entity, process is an active entity.
Process needs resources to accomplish its task
CPU, memory, I/O, files
Process termination requires reclaim of any reusable
resources
Single-threaded process has one program counter specifying
location of next instruction to execute
Process executes instructions sequentially, one at a time,
until completion
Typically system has many processes, some user, some
operating system running concurrently on one or more CPUs
Concurrency by multiplexing the CPUs among the processes
Operating System Concepts Essentials – 9th Edition
1.4
Silberschatz, Galvin and Gagne ©2013
Process Management Activities
The operating system is responsible for the following activities in
connection with process management:
Creating and deleting both user and system processes
Suspending and resuming processes
Providing mechanisms for process synchronization
Providing mechanisms for process communication
Providing mechanisms for deadlock handling
Operating System Concepts Essentials – 9th Edition
1.5
Silberschatz, Galvin and Gagne ©2013
Memory Management
To execute a program all (or part) of the instructions must be in
memory
All (or part) of the data that is needed by the program must be in
memory.
Memory management determines what is in memory and when
Optimizing CPU utilization and computer response to users
Memory management activities
Keeping track of which parts of memory are currently being
used and by whom
Deciding which processes (or parts thereof) and data to
move into and out of memory
Allocating and deallocating memory space as needed
Operating System Concepts Essentials – 9th Edition
1.6
Silberschatz, Galvin and Gagne ©2013
Storage Management
OS provides uniform, logical view of information storage
Abstracts physical properties to logical storage unit - file
OS maps files onto physical media and accesses these files via
the storage devices (i.e., disk drive, tape drive)
File-System management
Files usually organized into directories
Access control on most systems to determine who can access
what (e.g. read/write/execute access)
OS activities include
Creating and deleting files and directories
Primitives to manipulate files and directories
Mapping files onto secondary storage
Backup files onto stable (non-volatile) storage media
Operating System Concepts Essentials – 9th Edition
1.7
Silberschatz, Galvin and Gagne ©2013
I/O Subsystem
One purpose of OS is to hide peculiarities of hardware devices
from the user
I/O subsystem responsible for
Memory management of I/O including buffering (storing data
temporarily while it is being transferred), caching (storing parts
of data in faster storage for performance), spooling (the
overlapping of output of one job with input of other jobs)
General device-driver interface
Drivers for specific hardware devices
Operating System Concepts Essentials – 9th Edition
1.8
Silberschatz, Galvin and Gagne ©2013
Protection and Security
Protection – any mechanism for controlling access of processes or
users to resources defined by the OS
Security – defense of the system against internal and external attacks
Huge range of attacks: denial-of-service (using all resources and
keeping legitimate users out of the system), worms, viruses,
identity theft, theft of service (unauthorized use of a system)
On some systems an OS function, while some leave it to
additional software.
Systems generally first distinguish among users, to determine who
can do what
User identities (user IDs--security IDs in Windows) include name
and associated number, one per user
User ID then associated with all files, processes of that user to
determine access control
Group identifier (group ID) allows set of users to be defined and
controls managed, then also associated with each process, file
Operating System Concepts Essentials – 9th Edition
1.9
Silberschatz, Galvin and Gagne ©2013
Open-Source Operating Systems
Operating systems made available in source-code (like Linux)
format rather than just compiled binary code (like Windows)
Mac OS X and iOS: hybrid, open-source kernel called
Darwin, but also closed-source components.
Interested programmers can freely debug, analyze, support and
provide changes.
Learning tool for students: modify, compile, run.
Operating System Concepts Essentials – 9th Edition
1.10
Silberschatz, Galvin and Gagne ©2013
Open-Source Operating Systems-History
To counter the move to limit software use and redistribution
In 1983, Richard Stallman started the GNU project to create a free, open-
source Unix compatible OS.
founded the Free Software Foundation (FSF),
“copyleft” GNU Public License (GPL)
requires source code to be distributed with binaries.
Operating System Concepts Essentials – 9th Edition
1.11
Silberschatz, Galvin and Gagne ©2013
Open-Source Operating Systems-History
Examples include
GNU/Linux
Linus Torvalds originally
Enhanced by several thousand programmers
Spawned many distributions: RedHat, Fedora, Debian, Ubuntu
BSD UNIX
Distributions: FreeBSD, OpenBSD
Darwin: core of Mac OS X
Solaris:
Commercial UNIX-based OS of Sun Microsystems
partially open-sourced as some of the code is still owned by At&T.
Operating System Concepts Essentials – 9th Edition
1.12
Silberschatz, Galvin and Gagne ©2013
User Operating System Interface - CLI
Command-line interface (CLI) or command interpreter allows direct
command entry
Sometimes implemented in kernel, sometimes by systems
program
Sometimes multiple flavors implemented – shells
Unix/Linux: Bourne Shell, C Shell, Korn Shell, etc.
Primarily fetches a command from user and executes it
Operating System Concepts Essentials – 9th Edition
1.13
Silberschatz, Galvin and Gagne ©2013
Bourne Shell Command Interpreter
Operating System Concepts Essentials – 9th Edition
1.14
Silberschatz, Galvin and Gagne ©2013
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 is “Aqua” GUI interface with UNIX kernel
underneath and shells available
Unix and Linux have CLI with optional GUI interfaces (CDE,
KDE, GNOME)
Operating System Concepts Essentials – 9th Edition
1.15
Silberschatz, Galvin and Gagne ©2013
The Mac OS X GUI
Operating System Concepts Essentials – 9th Edition
1.16
Silberschatz, Galvin and Gagne ©2013
Touchscreen Interfaces
Touchscreen devices require new
interfaces
Mouse not possible or not desired
Actions and selection based on
gestures
Virtual keyboard for text entry
Voice commands.
Operating System Concepts Essentials – 9th Edition
1.17
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)
Set of functions that are available to an application programmer,
including their parameters, and return values
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)
A programmer accesses an API via a library of code
E.g. libc in UNIX/Linux for C programmers
Operating System Concepts Essentials – 9th Edition
1.18
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 Essentials – 9th Edition
1.19
Silberschatz, Galvin and Gagne ©2013
Example of Standard API
Operating System Concepts Essentials – 9th Edition
1.20
Silberschatz, Galvin and Gagne ©2013
System Call Interface
Managed by run-time support library (set of functions built into
libraries included with compiler)
Intercepts API function calls
Typically, a number associated with each system call
System-call interface maintains a table indexed according to
these numbers
The system call interface invokes the 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
Operating System Concepts Essentials – 9th Edition
1.21
Silberschatz, Galvin and Gagne ©2013
API – System Call – OS Relationship
Operating System Concepts Essentials – 9th Edition
1.22
Silberschatz, Galvin and Gagne ©2013
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
Parameters stored in a block, or table, in memory, and
address of block passed as a parameter in a register
This approach taken by Linux and Solaris
Parameters placed, or pushed, onto the stack by the program
and popped off the stack by the operating system
Block and stack methods do not limit the number or length of
parameters being passed
Operating System Concepts Essentials – 9th Edition
1.23
Silberschatz, Galvin and Gagne ©2013
Parameter Passing via Table
Operating System Concepts Essentials – 9th Edition
1.24
Silberschatz, Galvin and Gagne ©2013
Types of System Calls
Process control
create process, terminate process
get process attributes, set process attributes
wait for time
wait event, signal event
allocate and free memory
Locks for managing access to shared data between processes
Operating System Concepts Essentials – 9th Edition
1.25
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 Essentials – 9th Edition
1.26
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
From client to server
Shared-memory model create and gain access to memory
regions
transfer status information
Operating System Concepts Essentials – 9th Edition
1.27
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 Essentials – 9th Edition
1.28
Silberschatz, Galvin and Gagne ©2013
Examples of Windows and Unix System Calls
Operating System Concepts Essentials – 9th Edition
1.29
Silberschatz, Galvin and Gagne ©2013
Standard C Library Example
C program invoking printf() library call, which calls write() system call
Operating System Concepts Essentials – 9th Edition
1.30
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 Essentials – 9th Edition
1.31
Silberschatz, Galvin and Gagne ©2013
Operating System Structure
General-purpose OS is very large program
Various ways to structure ones
Monolithic
Layered
Microkernel
Operating System Concepts Essentials – 9th Edition
1.32
Silberschatz, Galvin and Gagne ©2013
Monolithic -- UNIX
UNIX – limited by hardware functionality, the original UNIX operating
system had limited structuring. The UNIX OS consists of two
separable parts
Systems programs (compilers, editors, system libraries, etc.)
The kernel
Consists of everything below the system-call interface and
above the physical hardware
Provides the file system, CPU scheduling, memory
management, and other operating-system functions;
Disadv: a large number of functions for one level
–
Difficult to implement and maintain
Performance adv: minimum overhead for communication
within the kernel
Operating System Concepts Essentials – 9th Edition
1.33
Silberschatz, Galvin and Gagne ©2013
Traditional UNIX System Structure
Beyond simple but not fully layered
Operating System Concepts Essentials – 9th Edition
1.34
Silberschatz, Galvin and Gagne ©2013
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.
With modularity, layers are selected
such that each uses functions
(operations) and services of only
lower-level layers
Adv: Simplicity of construction and
debugging
Difficulty: appropriately defining
various layers
Disadv: added overhead by each
layer
Operating System Concepts Essentials – 9th Edition
1.35
Silberschatz, Galvin and Gagne ©2013
Microkernel System Structure
Nonessential components removed from the kernel and
implemented as system or user programs.
Kernel contains minimal process and memory management
and communication facility.
Mach example of microkernel
Mac OS X kernel (Darwin) partly based on Mach
Main function: provide communication between client programs
and various services also running in user-space
Communication takes place between user modules using
message passing
Operating System Concepts Essentials – 9th Edition
1.36
Silberschatz, Galvin and Gagne ©2013
Microkernel System Structure
Application
Program
File
System
messages
Interprocess
Communication
Device
Driver
user
mode
messages
memory
managment
CPU
scheduling
kernel
mode
microkernel
hardware
Operating System Concepts Essentials – 9th Edition
1.37
Silberschatz, Galvin and Gagne ©2013
Microkernel System Structure
Benefits:
Easier to extend a microkernel, new services added to user
space, no or minimal modification to the kernel
More secure (less code is running in kernel mode)
Detriments:
Performance overhead of user space to kernel space
communication
Operating System Concepts Essentials – 9th Edition
1.38
Silberschatz, Galvin and Gagne ©2013
Modules
Many modern operating systems implement loadable kernel
modules
Has a set of core components
Links in additional modules during boot time or runtime
Dynamic linking as the kernel is running
Each talks to the others over known interfaces
Overall, similar to layered approach but with more flexible
since each module can call each module
Linux, Solaris, etc
Operating System Concepts Essentials – 9th Edition
1.39
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 retains some microkernel
behaviour providing support for user-space different
subsystems
Operating System Concepts Essentials – 9th Edition
1.40
Silberschatz, Galvin and Gagne ©2013
Hybrid Systems
Apple Mac OS X
Somewhat layered and microkernel behaviour
At the top: Aqua UI plus a set of application environments
(such as Cocoa programming environment)
Below is kernel consisting of Mach microkernel
Memory management
IPC (interprocess communication), message passing
and BSD Unix kernel parts,
Command-line interface
Networking
File system
plus I/O kit and dynamically loadable modules (called kernel
extensions)
Operating System Concepts Essentials – 9th Edition
1.41
Silberschatz, Galvin and Gagne ©2013
Mac OS X Structure
graphical user interface
Aqua
application environments and services
Java
Cocoa
Quicktime
BSD
kernel environment
BSD
Mach
I/O kit
Operating System Concepts Essentials – 9th Edition
kernel extensions
1.42
Silberschatz, Galvin and Gagne ©2013
Virtual Machines (VM)
Allows operating systems to run as applications within other
operating systems.
Vast and growing industry
Virtualization – OS natively compiled for CPU, running guest
OSes also natively compiled
Several guest operating systems (execution environment)
Giving the illusion that each guest execution environment
is running its own private computer
VMware application: ran one or more guest copies of
Windows or other OSes, each running applications, all on
native Windows host OS
VMM (Virtual Machine Manager) runs the guest OSes,
manages their resources and protects each guest from
others.
Operating System Concepts Essentials – 9th Edition
1.43
Silberschatz, Galvin and Gagne ©2013
Computing Environments - Virtualization
Operating System Concepts Essentials – 9th Edition
1.44
Silberschatz, Galvin and Gagne ©2013
Computing Environments - Virtualization
Use cases involve laptops and desktops running multiple OSes
for exploration or compatibility
Apple laptop running Mac OS X host, Windows as a guest
Developing apps for multiple OSes without having multiple
systems
QA testing applications without having multiple systems
Operating System Concepts Essentials – 9th Edition
1.45
Silberschatz, Galvin and Gagne ©2013