Chapter 2a: Operating-System Services: Silberschatz, Galvin and Gagne ©2018 Operating System Concepts - 10 Edition

Download as pdf or txt
Download as pdf or txt
You are on page 1of 37

Chapter 2a: Operating-System

Services

Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
Outline

▪ Operating System Services


▪ User and Operating System-Interface
▪ System Calls
▪ System Services
▪ Linkers and Loaders
▪ Why Applications are Operating System Specific

Operating System Concepts – 10th Edition 2a.2 Silberschatz, Galvin and Gagne ©2018
Objectives

▪ Identify services provided by an operating system


▪ Illustrate how system calls are used to provide operating
system services

Operating System Concepts – 10th Edition 2a.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).
 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
.

Operating System Concepts – 10th Edition 2a.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.):
• 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.
• Communications – Processes may exchange information, on the
same computer or between computers over a network
 Communications may be via shared memory or through
message passing (packets moved by the OS)

Operating System Concepts – 10th Edition 2a.5 Silberschatz, Galvin and Gagne ©2018
Operating System Services (Cont.)
▪ One set of operating-system services provides functions that are
helpful to the user (Cont.):
• Error detection – OS needs to be constantly aware of possible
errors
 May occur in the CPU and memory hardware, in I/O devices, in
user program
 For each type of error, OS should take the appropriate action
to ensure correct and consistent computing
 Debugging facilities can greatly enhance the user’s and
programmer’s abilities to efficiently use the system

Operating System Concepts – 10th Edition 2a.6 Silberschatz, Galvin and Gagne ©2018
Operating System Services (Cont.)
▪ Another set of OS function 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.
• 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
 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 – 10th Edition 2a.7 Silberschatz, Galvin and Gagne ©2018
A View of Operating System Services

Operating System Concepts – 10th Edition 2a.8 Silberschatz, Galvin and Gagne ©2018
User Operating System Interface

▪ CLI -- command line interpreter


• allows direct command entry
▪ GUI – graphical user interface
▪ Touchscreen Interfaces
▪ Batch

Operating System Concepts – 10th Edition 2a.9 Silberschatz, Galvin and Gagne ©2018
CLI

▪ Sometimes implemented in kernel, sometimes by systems


program
▪ Sometimes multiple flavors implemented – shells
▪ Primarily fetches a command from user and executes it
▪ Sometimes commands built-in, sometimes just names of
programs
• If the latter, adding new features doesn’t require shell
modification

Operating System Concepts – 10th Edition 2a.10 Silberschatz, Galvin and Gagne ©2018
Bourne Shell Command Interpreter

Operating System Concepts – 10th Edition 2a.11 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 2a.12 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 2a.13 Silberschatz, Galvin and Gagne ©2018
The Mac OS X GUI

Operating System Concepts – 10th Edition 2a.14 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 2a.15 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 2a.16 Silberschatz, Galvin and Gagne ©2018
Example of Standard API

Operating System Concepts – 10th Edition 2a.17 Silberschatz, Galvin and Gagne ©2018
System Call Implementation

▪ Typically, a number is 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 not know anything 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
 Managed by run-time support library (set of functions built
into libraries included with compiler)

Operating System Concepts – 10th Edition 2a.18 Silberschatz, Galvin and Gagne ©2018
API: System Call to Open a File

Operating System Concepts – 10th Edition 2a.19 Silberschatz, Galvin and Gagne ©2018
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
• Pass the parameters in registers
 In some cases, there 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 – 10th Edition 2a.20 Silberschatz, Galvin and Gagne ©2018
Parameter Passing via Table

Operating System Concepts – 10th Edition 2a.21 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 2a.22 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 2a.23 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
 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 2a.24 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 2a.25 Silberschatz, Galvin and Gagne ©2018
Examples of Windows and Unix System Calls

Operating System Concepts – 10th Edition 2a.26 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 2a.27 Silberschatz, Galvin and Gagne ©2018
Example: Arduino
The Arduino is a simple hardware platform consisting of a microcontroller
along with input sensors that respond to a variety of events, such as
changes to light, temperature, and barometric pressure, etc.

▪ Single-tasking
▪ No operating system
▪ Programs (sketch) loaded via
USB into flash memory
▪ Single memory space
▪ Boot loader loads program
▪ Program exit -> shell reloaded At system startup running a program

Operating System Concepts – 10th Edition 2a.28 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 2a.29 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 2a.30 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

▪ File management - Create, delete, copy, rename, print, dump, list,


and generally manipulate files and directories

▪ 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 2a.31 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 2a.32 Silberschatz, Galvin and Gagne ©2018
System Services (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 – 10th Edition 2a.33 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 2a.34 Silberschatz, Galvin and Gagne ©2018
The Role of the Linker and Loader

Operating System Concepts – 10th Edition 2a.35 Silberschatz, Galvin and Gagne ©2018
Why Applications are Operating System Specific

▪ Apps compiled on one system usually not executable on other


operating systems
▪ Each operating system provides its own unique system calls
• Own file formats, etc.
▪ Apps can be multi-operating system
• Written in interpreted language like Python, Ruby, and interpreter
available on multiple operating systems
• App written in language that includes a VM containing the running
app (like Java)
• Use standard language (like C), compile separately on each
operating system to run on each
▪ Application Binary Interface (ABI) is architecture equivalent of API,
defines how different components of binary code can interface for a
given operating system on a given architecture, CPU, etc.

Operating System Concepts – 10th Edition 2a.36 Silberschatz, Galvin and Gagne ©2018
End of Chapter 2a

Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018

You might also like