Lecture 3-4 ch2 Operating-System Structures
Lecture 3-4 ch2 Operating-System Structures
Lecture 3-4 ch2 Operating-System Structures
Structures
Lecture 3
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:
▪ User interface - Almost all operating systems have a user
interface (UI).
▪ 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.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
• Resource allocation - When multiple users or multiple jobs running
concurrently, resources must be allocated to each of them
• 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
• 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
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
User Operating System Interface - GUI
Operating System Concepts – 9th Edition 2.9 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 (UNIX, Linux, and
Mac OS X), and Java API for the Java virtual machine
(JVM)
Operating System Concepts – 9th Edition 2.10 Silberschatz, Galvin and Gagne ©2013
Example of Standard API
Operating System Concepts – 9th Edition 2.11 Silberschatz, Galvin and Gagne ©2013
System Call Implementation
▪ 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
Operating System Concepts – 9th Edition 2.12 Silberschatz, Galvin and Gagne ©2013
1
9
/
3
1
6
/ API – System Call – OS Relationship
2
0 nThe interface to the services provided by the
2 OS has two parts:
4 1.Higher language interface – a part of a
system library
•Executes in user mode
•Implemented to accept a standard
procedure call
2.Kernel part
•Executes in system mode
•Implements the required system service
•May cause blocking the caller (forcing it to
wait)
•After completion returns back to Part 1
(may report the success or failure of
the call)
Operating System Concepts – 9th Edition 2.13 Silberschatz, Galvin and Gagne ©2013
System Call Parameter Passing
Operating System Concepts – 9th Edition 2.14 Silberschatz, Galvin and Gagne ©2013
Parameter Passing via Table
Operating System Concepts – 9th Edition 2.15 Silberschatz, Galvin and Gagne ©2013
Types of System Calls
1. 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.16 Silberschatz, Galvin and Gagne ©2013
Types of System Calls
2. File management
• create file, delete file
• open, close file
• read, write, reposition
• get and set file attributes
3. 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.17 Silberschatz, Galvin and Gagne ©2013
Types of System Calls (Cont.)
4. Information maintenance
▪ get time or date, set time or date
▪ get system data, set system data
▪ get and set process, file, or device attributes
5. 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
▪ attach and detach remote devices
Operating System Concepts – 9th Edition 2.18 Silberschatz, Galvin and Gagne ©2013
Types of System Calls (Cont.)
6. Protection
▪ Control access to resources
▪ Get and set permissions
▪ Allow and deny user access
Operating System Concepts – 9th Edition 2.19 Silberschatz, Galvin and Gagne ©2013
Examples of Windows and Unix System Calls
Operating System Concepts – 9th Edition 2.20 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.21 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.22 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.23 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.24 Silberschatz, Galvin and Gagne ©2013
System Programs (Cont.)
▪ Background Services
▪ Launch at boot time
▪ Some for system startup, then terminate
▪ 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.25 Silberschatz, Galvin and Gagne ©2013
Chapter 2: Operating-System
Structures
Lecture 4
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
Chapter 2: Operating-System Structures
Operating System Concepts – 9th Edition 2.27 Silberschatz, Galvin and Gagne ©2013
Operating System Design and Implementation
Operating System Concepts – 9th Edition 2.28 Silberschatz, Galvin and Gagne ©2013
Operating System Design and Implementation (Cont.)
Operating System Concepts – 9th Edition 2.29 Silberschatz, Galvin and Gagne ©2013
Implementation
▪ Much variation
▪ Early OSes in assembly language
▪ Then system programming languages like Algol, PL/1
▪ Now C, C++
▪ Actually usually a mix of languages
▪ Lowest levels in assembly
▪ Main body in C
▪ Systems programs in C, C++, scripting languages like PERL,
Python, shell scripts
▪ More high-level language easier to port to other hardware
▪ But slower
▪ Emulation can allow an OS to run on non-native hardware
Operating System Concepts – 9th Edition 2.30 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.31 Silberschatz, Galvin and Gagne ©2013
Simple Structure -- MS-DOS
Operating System Concepts – 9th Edition 2.32 Silberschatz, Galvin and Gagne ©2013
Non Simple Structure -- UNIX
Operating System Concepts – 9th Edition 2.33 Silberschatz, Galvin and Gagne ©2013
Traditional UNIX System Structure
Beyond simple but not fully layered
Operating System Concepts – 9th Edition 2.34 Silberschatz, Galvin and Gagne ©2013
▪ Layered Approach
▪ Microkernel System Structure
▪ Solaris Modular Approach
▪ Hybrid Systems
▪ Hybrid combines multiple approaches to address performance, security,
usability needs
Operating System Concepts – 9th Edition 2.35 Silberschatz, Galvin and Gagne ©2013
Mac OS X Structure
kernel environment
BSD
Mach
Operating System Concepts – 9th Edition 2.36 Silberschatz, Galvin and Gagne ©2013
iOS
Operating System Concepts – 9th Edition 2.37 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
▪ 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.38 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.39 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.40 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.41 Silberschatz, Galvin and Gagne ©2013
Dtrace (Cont.)
Operating System Concepts – 9th Edition 2.42 Silberschatz, Galvin and Gagne ©2013
System Boot
Operating System Concepts – 9th Edition 2.43 Silberschatz, Galvin and Gagne ©2013
End of Chapter 2
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013