CH 2
CH 2
Services
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
Outline
Operating System Concepts – 10th Edition 2.2 Silberschatz, Galvin and Gagne ©2018
Objectives
Operating System Concepts – 10th Edition 2.3 Silberschatz, Galvin and Gagne ©2018
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), touch-screen, 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
• File-system manipulation - The file system is of particular
interest. Programs need to read and write files and directories,
create and delete them, search them, list file Information,
permission management.
Operating System Concepts – 10th Edition 2.4 Silberschatz, Galvin and Gagne ©2018
Operating System Services (Cont.)
▪ One set of operating-system services provides functions that are
helpful to the user (Cont.):
• Communications – Processes may exchange information, on the
same computer or between computers over a network
4 Communications may be via shared memory or through
message passing (packets moved by the OS)
• Error detection – OS needs to be constantly aware of possible
errors
4 May occur in the CPU and memory hardware, in I/O devices,
in user program
4 For each type of error, OS should take the appropriate action
to ensure correct and consistent computing
4 Debugging facilities can greatly enhance the user’s and
programmer’s abilities to efficiently use the system
Operating System Concepts – 10th Edition 2.5 Silberschatz, Galvin and Gagne ©2018
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.
• Logging - 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 – 10th Edition 2.6 Silberschatz, Galvin and Gagne ©2018
A View of Operating System Services
Operating System Concepts – 10th Edition 2.7 Silberschatz, Galvin and Gagne ©2018
Command Line interpreter
Operating System Concepts – 10th Edition 2.8 Silberschatz, Galvin and Gagne ©2018
Bourne Shell Command Interpreter
Operating System Concepts – 10th Edition 2.9 Silberschatz, Galvin and Gagne ©2018
User Operating System Interface - GUI
Operating System Concepts – 10th Edition 2.10 Silberschatz, Galvin and Gagne ©2018
Touchscreen Interfaces
Operating System Concepts – 10th Edition 2.11 Silberschatz, Galvin and Gagne ©2018
The Mac OS X GUI
Operating System Concepts – 10th Edition 2.12 Silberschatz, Galvin and Gagne ©2018
System Calls
Operating System Concepts – 10th Edition 2.13 Silberschatz, Galvin and Gagne ©2018
Example of System Calls
▪ System call sequence to copy the contents of one file to another file
Operating System Concepts – 10th Edition 2.14 Silberschatz, Galvin and Gagne ©2018
Example of Standard API
Operating System Concepts – 10th Edition 2.15 Silberschatz, Galvin and Gagne ©2018
System Call Implementation
Operating System Concepts – 10th Edition 2.16 Silberschatz, Galvin and Gagne ©2018
API – System Call – OS Relationship
Operating System Concepts – 10th Edition 2.17 Silberschatz, Galvin and Gagne ©2018
System Call Parameter Passing
Operating System Concepts – 10th Edition 2.18 Silberschatz, Galvin and Gagne ©2018
Parameter Passing via Table
Operating System Concepts – 10th Edition 2.19 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 2.20 Silberschatz, Galvin and Gagne ©2018
Types of System Calls (Cont.)
▪ 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 – 10th Edition 2.21 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 2.22 Silberschatz, Galvin and Gagne ©2018
Types of System Calls (Cont.)
▪ Protection
• Control access to resources
• Get and set permissions
• Allow and deny user access
Operating System Concepts – 10th Edition 2.23 Silberschatz, Galvin and Gagne ©2018
Examples of Windows and Unix System Calls
Operating System Concepts – 10th Edition 2.24 Silberschatz, Galvin and Gagne ©2018
Standard C Library Example
▪ C program invoking printf() library call, which calls write() system call
Operating System Concepts – 10th Edition 2.25 Silberschatz, Galvin and Gagne ©2018
Example: Arduino
▪ Single-tasking
▪ No operating system
▪ Programs (sketch) loaded via
USB into flash memory
▪ Single memory space
▪ Boot loader loads program
▪ Program exit -> shell
reloaded
Operating System Concepts – 10th Edition 2.26 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 2.27 Silberschatz, Galvin and Gagne ©2018
System Services
▪ 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
• 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 – 10th Edition 2.28 Silberschatz, Galvin and Gagne ©2018
System Services (Cont.)
▪ 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 – 10th Edition 2.29 Silberschatz, Galvin and Gagne ©2018
System Services (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 – 10th Edition 2.30 Silberschatz, Galvin and Gagne ©2018
System Services (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 – 10th Edition 2.31 Silberschatz, Galvin and Gagne ©2018
Linkers and Loaders
▪ Source code compiled into object files designed to be loaded into any
physical memory location – relocatable object file
▪ Linker combines these into single binary executable file
• Also brings in libraries
▪ Program resides on secondary storage as binary executable
▪ Must be brought into memory by loader to be executed
• Relocation assigns final addresses to program parts and adjusts
code and data in program to match those addresses
▪ Modern general purpose systems don’t link libraries into executables
• Rather, dynamically linked libraries (in Windows, DLLs) are
loaded as needed, shared by all that use the same version of that
same library (loaded once)
▪ Object, executable files have standard formats, so operating system
knows how to load and start them
Operating System Concepts – 10th Edition 2.32 Silberschatz, Galvin and Gagne ©2018
The Role of the Linker and Loader
Operating System Concepts – 10th Edition 2.33 Silberschatz, Galvin and Gagne ©2018
Why Applications are Operating System Specific
Operating System Concepts – 10th Edition 2.34 Silberschatz, Galvin and Gagne ©2018
Design and Implementation
Operating System Concepts – 10th Edition 2.35 Silberschatz, Galvin and Gagne ©2018
Policy and Mechanism
Operating System Concepts – 10th Edition 2.36 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 2.37 Silberschatz, Galvin and Gagne ©2018
Operating System Structure
Operating System Concepts – 10th Edition 2.38 Silberschatz, Galvin and Gagne ©2018
Monolithic Structure – Original UNIX
Operating System Concepts – 10th Edition 2.39 Silberschatz, Galvin and Gagne ©2018
Traditional UNIX System Structure
Beyond simple but not fully layered
Operating System Concepts – 10th Edition 2.40 Silberschatz, Galvin and Gagne ©2018
Linux System Structure
Monolithic plus modular design
Operating System Concepts – 10th Edition 2.41 Silberschatz, Galvin and Gagne ©2018
Layered Approach
Operating System Concepts – 10th Edition 2.42 Silberschatz, Galvin and Gagne ©2018
Microkernels
▪ Moves as much from the kernel into user space
▪ Mach is an 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 – 10th Edition 2.43 Silberschatz, Galvin and Gagne ©2018
Microkernel System Structure
Operating System Concepts – 10th Edition 2.44 Silberschatz, Galvin and Gagne ©2018
Modules
▪ Many modern operating systems implement loadable kernel
modules (LKMs)
• 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 – 10th Edition 2.45 Silberschatz, Galvin and Gagne ©2018
Hybrid Systems
Operating System Concepts – 10th Edition 2.46 Silberschatz, Galvin and Gagne ©2018
macOS and iOS Structure
Operating System Concepts – 10th Edition 2.47 Silberschatz, Galvin and Gagne ©2018
Darwin
Operating System Concepts – 10th Edition 2.48 Silberschatz, Galvin and Gagne ©2018
iOS
Operating System Concepts – 10th Edition 2.49 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 2.50 Silberschatz, Galvin and Gagne ©2018
Android Architecture
Operating System Concepts – 10th Edition 2.51 Silberschatz, Galvin and Gagne ©2018
Building and Booting an Operating System
Operating System Concepts – 10th Edition 2.52 Silberschatz, Galvin and Gagne ©2018
Building and Booting Linux
Operating System Concepts – 10th Edition 2.53 Silberschatz, Galvin and Gagne ©2018
System Boot
▪ When power initialized on system, execution starts at a fixed memory
location
▪ Operating system must be made available to hardware so hardware
can start it
• Small piece of code – bootstrap loader, BIOS, stored in ROM or
EEPROM locates the kernel, loads it into memory, and starts it
• Sometimes two-step process where boot block at fixed location
loaded by ROM code, which loads bootstrap loader from disk
• Modern systems replace BIOS with Unified Extensible
Firmware Interface (UEFI)
▪ Common bootstrap loader, GRUB, allows selection of kernel from
multiple disks, versions, kernel options
▪ Kernel loads and system is then running
▪ Boot loaders frequently allow various boot states, such as single
user mode
Operating System Concepts – 10th Edition 2.54 Silberschatz, Galvin and Gagne ©2018
Operating-System Debugging
Operating System Concepts – 10th Edition 2.55 Silberschatz, Galvin and Gagne ©2018
Performance Tuning
Operating System Concepts – 10th Edition 2.56 Silberschatz, Galvin and Gagne ©2018
Tracing
▪ Collects data for a specific event, such as steps involved
in a system call invocation
▪ Tools include
• strace – trace system calls invoked by a process
• gdb – source-level debugger
• perf – collection of Linux performance tools
• tcpdump – collects network packets
Operating System Concepts – 10th Edition 2.57 Silberschatz, Galvin and Gagne ©2018
BCC
Operating System Concepts – 10th Edition 2.58 Silberschatz, Galvin and Gagne ©2018
Linux bcc/BPF Tracing Tools
Operating System Concepts – 10th Edition 2.59 Silberschatz, Galvin and Gagne ©2018
End of Chapter 2
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018