ch1 OS
ch1 OS
Operating System Concepts – 10h Edition Silberschatz, Galvin and Gagne ©2018
Outline
Operating System Concepts – 10th Edition 1.2 Silberschatz, Galvin and Gagne ©2018
Objectives
Operating System Concepts – 10th Edition 1.3 Silberschatz, Galvin and Gagne ©2018
What is an Operating System?
Operating System Concepts – 10th Edition 1.4 Silberschatz, Galvin and Gagne ©2018
Computer System Structure
Operating System Concepts – 10th Edition 1.5 Silberschatz, Galvin and Gagne ©2018
Abstract View of Components of Computer
Operating System Concepts – 10th Edition 1.6 Silberschatz, Galvin and Gagne ©2018
Abstract View of Components of Computer
Operating System Concepts – 10th Edition 1.7 Silberschatz, Galvin and Gagne ©2018
What Operating Systems Do
Depends on the point of view
User’’s View (type of user)
Standalone s/m - OS is designed for ease of use and good
performance
different terminals connected to mainframe or minicomputer - OS is
designed to maximize resource utilization
users of workstation, connected to networks and servers - ease of use
and resource utilization
users of handheld devices - ease of use and good performance per
amount of battery
- optimized for usability and battery life
Embedded systems - designed for less user intearactions and ease of
use
- little or no user interface
- designed to run primarily without user intervention
Operating System Concepts – 10th Edition 1.8 Silberschatz, Galvin and Gagne ©2018
What Operating Systems Do (Cont.)
System View:
• OS is a resource allocator
• Manages all resources
• Decides between conflicting requests for efficient and fair resource
use
• OS is a control program
• Controls execution of programs to prevent errors and improper use of
the computer
Operating System Concepts – 10th Edition 1.9 Silberschatz, Galvin and Gagne ©2018
Operating System Definition
No universally accepted definition
“Everything a vendor ships when you order an operating system” is a
good approximation
• But varies wildly
“The one program running at all times on the computer” is the kernel,
which is part of the operating system
Everything else is either
• A system program (ships with the operating system, but not part of
the kernel) , or
• An application program, all programs not associated with the
operating system
Today’s OSes for general purpose and mobile computing also include
middleware – a set of software frameworks that provide addition services
to application developers such as databases, multimedia, graphics etc.
Operating System Concepts – 10th Edition 1.10 Silberschatz, Galvin and Gagne ©2018
Overview of Computer System Structure
Operating System Concepts – 10th Edition 1.11 Silberschatz, Galvin and Gagne ©2018
Computer System Organization
Computer-system operation
• One or more CPUs, device controllers connect through common
bus providing access to shared memory
• Concurrent execution of CPUs and devices competing for memory
cycles
Operating System Concepts – 10th Edition 1.12 Silberschatz, Galvin and Gagne ©2018
Computer-System Operation
Operating System Concepts – 10th Edition 1.13 Silberschatz, Galvin and Gagne ©2018
Interrupt Handling
Occurence of an event is signalled by interrupt
Hardaware interrupt - triggered by an event external to the
processor
Software interrupt - triggered by executing special
intruction/operation (API or system calls)
Interrupt transfers control to the interrupt service routine
generally, through the interrupt vector, which contains the
addresses of all the service routines
Interrupt architecture must save the address of the interrupted
instruction
A trap or exception is a software-generated interrupt caused
either by an error or a user request
An operating system is interrupt driven
Operating System Concepts – 10th Edition 1.15 Silberschatz, Galvin and Gagne ©2018
Interrupt Handling
Operating System Concepts – 10th Edition 1.16 Silberschatz, Galvin and Gagne ©2018
Interrupt Handling
Operating System Concepts – 10th Edition 1.17 Silberschatz, Galvin and Gagne ©2018
Interrupt-drive I/O Cycle
Operating System Concepts – 10th Edition 1.18 Silberschatz, Galvin and Gagne ©2018
Interrupt Driven Program Execution
Operating System Concepts – 10th Edition 1.19 Silberschatz, Galvin and Gagne ©2018
Storage Structure
Operating System Concepts – 10th Edition 1.20 Silberschatz, Galvin and Gagne ©2018
Storage Structure
Main memory – only large storage media that the CPU can
access directly
• Typically, volatile
• Typically, random-access memory in the form of
Dynamic Random-access Memory (DRAM)
Secondary storage – extension of main memory that
provides large nonvolatile storage capacity
Operating System Concepts – 10th Edition 1.21 Silberschatz, Galvin and Gagne ©2018
Storage Structure (Cont.)
Hard Disk Drives (HDD) – rigid metal or glass platters
covered with magnetic recording material
• Disk surface is logically divided into tracks, which are
subdivided into sectors
• The disk controller determines the logical interaction
between the device and the computer
Non-volatile memory (NVM) devices– faster than hard disks,
nonvolatile
• Various technologies
• Becoming more popular as capacity and performance
increases, price drops
Operating System Concepts – 10th Edition 1.22 Silberschatz, Galvin and Gagne ©2018
Storage Definitions and Notation Review
The basic unit of computer storage is the bit . A bit can contain one of two
values, 0 and 1. All other storage in a computer is based on collections of bits.
Given enough bits, it is amazing how many things a computer can represent:
numbers, letters, images, movies, sounds, documents, and programs, to name
a few. A byte is 8 bits, and on most computers, it is the smallest convenient
chunk of storage. For example, most computers don’t have an instruction to
move a bit but do have one to move a byte. A less common term is word,
which is a given computer architecture’s native unit of data. A word is made
up of one or more bytes. For example, a computer that has 64-bit registers and
64-bit memory addressing typically has 64-bit (8-byte) words. A computer
executes many operations in its native word size rather than a byte at a time.
Operating System Concepts – 10th Edition 1.23 Silberschatz, Galvin and Gagne ©2018
Storage Hierarchy
Storage systems organized in hierarchy
• Speed
• Cost
• Volatility
Caching – copying information into faster storage system; main memory
can be viewed as a cache for secondary storage
Device Driver for each device controller to manage I/O
• Provides uniform interface between controller and kernel
Operating System Concepts – 10th Edition 1.24 Silberschatz, Galvin and Gagne ©2018
Storage-Device Hierarchy
Operating System Concepts – 10th Edition 1.25 Silberschatz, Galvin and Gagne ©2018
I/O Structure
Operating System Concepts – 10th Edition 1.26 Silberschatz, Galvin and Gagne ©2018
I/O Structure
Operating System Concepts – 10th Edition 1.27 Silberschatz, Galvin and Gagne ©2018
Direct Memory Access Structure
Operating System Concepts – 10th Edition 1.28 Silberschatz, Galvin and Gagne ©2018
Computer-System Architecture
Operating System Concepts – 10th Edition 1.29 Silberschatz, Galvin and Gagne ©2018
Computer-System Architecture
Operating System Concepts – 10th Edition 1.30 Silberschatz, Galvin and Gagne ©2018
Symmetric Multiprocessing Architecture
Two types of multiprocessor systems:
1. Asymmetric Multiprocessing (Master/Slave) – each
processor is assigned a specific task by master processor. It
schedules and allocates work to slave processors
2. Symmetric Multiprocessing (SMP)– each processor
performs all tasks; all processors are considered peers;
Windows, MacOS, Liux support SMP
Operating System Concepts – 10th Edition 1.31 Silberschatz, Galvin and Gagne ©2018
A Dual-Core Design
Multiple processing units (computing cores) fabricated on
a single chip - multicore processors
The term processor is then used for the complete chip
The communication b/w processors within a chip is more
faster than communication between two single processors
Operating System Concepts – 10th Edition 1.32 Silberschatz, Galvin and Gagne ©2018
Clustered Systems
Operating System Concepts – 10th Edition 1.33 Silberschatz, Galvin and Gagne ©2018
Operating System Structure
Multiprogramming (Batch system) needed for efficiency
• Single user cannot keep CPU and I/O devices busy at all times
• Multiprogramming organizes jobs (code and data) so CPU always has one
to execute
• A subset of total jobs in system is kept in memory
• One job selected and run via job scheduling
• When it has to wait (for I/O for example), OS switches to and executes
another job
• Multiprogrammed s/ms provide envoronment in which various s/m resources
are utilized effectively, but they do not provide user interaction with the
computer system
Operating System Concepts – 10th Edition 1.34 Silberschatz, Galvin and Gagne ©2018
Memory Layout for Multiprogrammed System
Operating System Concepts – 10th Edition 1.35 Silberschatz, Galvin and Gagne ©2018
Operating System Structure
Operating System Concepts – 10th Edition 1.36 Silberschatz, Galvin and Gagne ©2018
Operating-System Operations
Interrupt driven (hardware and software)
• Hardware interrupt by one of the devices
• Software interrupt (exception or trap):
Software error (e.g., division by zero)
Request for operating system service
Other process problems include infinite loop, processes
modifying each other or the operating system
Operating System Concepts – 10th Edition 1.37 Silberschatz, Galvin and Gagne ©2018
Dual-mode Operation
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.
• When a user is running mode bit is “user” (set to 1)
• When kernel code is executing mode bit is “kernel” (set to 0)
Some instructions designated as privileged, only executable in kernel
mode.
Eg: changing the mode bit; changing the priority level etc.
Operating System Concepts – 10th Edition 1.38 Silberschatz, Galvin and Gagne ©2018
Dual-mode Operation (Cont.)
How do we guarantee that user does not explicitly set the
mode bit to “kernel”?
When the system starts executing it is in kernel mode
When control is given to a user program the mode-bit changes
to “user mode”.
When a user issues a system call it results in an interrupt,
which trap to the operating system. At that time, the mode–bit
is set to “kernel mode”.
Operating System Concepts – 10th Edition 1.39 Silberschatz, Galvin and Gagne ©2018
Transition from User to Kernel Mode
Operating System Concepts – 10th Edition 1.40 Silberschatz, Galvin and Gagne ©2018
Timer
Operating system uses timer to control the CPU. A user program
cannot hold CPU for a long time, this is prevented with the help of
timer.
Timer to prevent infinite loop (or process hogging resources)
• Timer is set to interrupt the computer after some time period
Fixed timer - After a fixed time, the process under execution is
interrupted.`
Variable timer - Interrupt occurs after varying interval.
• Fixed clock and a counter that is decremented every time the clock
ticks
• Operating system set the counter (privileged instruction)
• When counter zero generate an interrupt
• Set up before scheduling process to regain control or terminate
program that exceeds allotted time
Operating System Concepts – 10th Edition 1.41 Silberschatz, Galvin and Gagne ©2018
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
• Initialization data
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
Multi-threaded process has one program counter per thread
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 /
threads
Operating System Concepts – 10th Edition 1.42 Silberschatz, Galvin and Gagne ©2018
Process Management Activities
Operating System Concepts – 10th Edition 1.43 Silberschatz, Galvin and Gagne ©2018
Memory Management
Operating System Concepts – 10th Edition 1.44 Silberschatz, Galvin and Gagne ©2018
File-system Management
OS provides uniform, logical view of information storage
• Abstracts physical properties to logical storage unit - file
• Different types of physical media - Magnetic disk, optical disk, and
magnetic tape`
• Each medium is controlled by device (i.e., disk drive, tape drive)
Varying properties include access speed, capacity, data-transfer
rate, access method (sequential or random)
File-System management
• Files usually organized into directories
• Multiple users - Access control on most systems to determine who can
access what
• OS activities include
Creating and deleting files and directories
Supporting primitives to manipulate files and directories
Mapping files onto secondary storage
Backup files onto stable (non-volatile) storage media
Operating System Concepts – 10th Edition 1.45 Silberschatz, Galvin and Gagne ©2018
Mass-Storage Management
Main memory is small and volatile – secondary storage back up
main maemory
Usually, disks used to store data that does not fit in main
memory or data that must be kept for a “long” period of time
Proper management is of central importance
Entire speed of computer operation hinges on disk subsystem
and its algorithms
OS activities
• Mounting and unmounting
• Free-space management
• Storage allocation
• Disk scheduling
• Partitioning
• Protection
Operating System Concepts – 10th Edition 1.46 Silberschatz, Galvin and Gagne ©2018
Caching
Operating System Concepts – 10th Edition 1.47 Silberschatz, Galvin and Gagne ©2018
Characteristics of Various Types of Storage
Operating System Concepts – 10th Edition 1.48 Silberschatz, Galvin and Gagne ©2018
Migration of data “A” from Disk to Register
Operating System Concepts – 10th Edition 1.49 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 1.50 Silberschatz, Galvin and Gagne ©2018
Protection and Security
Operating System Concepts – 10th Edition 1.51 Silberschatz, Galvin and Gagne ©2018
Protection
Operating System Concepts – 10th Edition 1.52 Silberschatz, Galvin and Gagne ©2018
Computing Environments - Traditional
Operating System Concepts – 10th Edition 1.53 Silberschatz, Galvin and Gagne ©2018
Computing Environments - Mobile
Operating System Concepts – 10th Edition 1.54 Silberschatz, Galvin and Gagne ©2018
Computing Environments – Distributed
Distributed computiing
• Collection of separate, possibly heterogeneous, systems
networked together
Network is a communications path, TCP/IP most common
– Local Area Network (LAN)
– Wide Area Network (WAN)
– Metropolitan Area Network (MAN)
– Personal Area Network (PAN)
• Network Operating System provides features between
systems across network
Communication scheme allows systems to exchange
messages
Illusion of a single system
Operating System Concepts – 10th Edition 1.55 Silberschatz, Galvin and Gagne ©2018
Computing Environments – Client-Server
Client-Server Computing
Dumb terminals supplanted by smart PCs
Many systems now servers, responding to requests generated
by clients
Compute-server system provides an interface to client to
request services (i.e., database)
File-server system provides interface for clients to store
and retrieve files
Operating System Concepts – 10th Edition 1.56 Silberschatz, Galvin and Gagne ©2018
Computing Environments - Peer-to-Peer
Operating System Concepts – 10th Edition 1.57 Silberschatz, Galvin and Gagne ©2018
Computing Environments – Real-Time Embedded Systems
Operating System Concepts – 10th Edition 1.58 Silberschatz, Galvin and Gagne ©2018
Computing Environments - Virtualization
Operating System Concepts – 10th Edition 1.59 Silberschatz, Galvin and Gagne ©2018
Computing Environments - Virtualization
Operating System Concepts – 10th Edition 1.60 Silberschatz, Galvin and Gagne ©2018
Computing Environments - Virtualization
Operating System Concepts – 10th Edition 1.61 Silberschatz, Galvin and Gagne ©2018
Computing Environments - Virtualization
Operating System Concepts – 10th Edition 1.62 Silberschatz, Galvin and Gagne ©2018
Computing Environments – Cloud Computing
Operating System Concepts – 10th Edition 1.63 Silberschatz, Galvin and Gagne ©2018
Computing Environments – Cloud Computing
Operating System Concepts – 10th Edition 1.64 Silberschatz, Galvin and Gagne ©2018
Open-Source Operating Systems
Operating System Concepts – 10th Edition 1.65 Silberschatz, Galvin and Gagne ©2018
The Study of Operating Systems
There has never been a more interesting time to study operating systems, and it has never been
easier. The open-source movement has overtaken operating systems, causing many of them to be
made available in both source and binary (executable) format. The list of operating
systems available in both formats includes Linux, BUSD UNIX, Solaris, and part of macOS.
The availability of source code allows us to study operating systems from the inside out.
Questions that we could once answer only by looking at documentation or the behavior of an
operating system we can now answer by examining the code itself.
Operating systems that are no longer commercially viable have been open-sourced as well, enabling
us to study how systems operated in a time of fewer CPU, memory, and storage resources.
An extensive but incomplete list of open-source operating-system projects is available
from https://curlie.org/Computers/Software/Operating_Systems/Open_Source/
In addition, the rise of virtualization as a mainstream (and frequently free) computer function
makes it possible to run many operating systems on top of one core system. For example, VMware
(http://www.vmware.com) providesa free “player” for Windows on which hundreds of free
“virtual appliances” can run. Virtualbox (http://www.virtualbox.com) provides a free, open-source
virtual machine manager on many operating systems. Using such tools, students can try out
hundreds of operating systems without dedicated hardware.
The advent of open-source operating systems has also made it easier to make the move from
student to operating-system developer. With some knowledge, some effort, and an Internet
connection, a student can even create a new operating-system distribution. Just a few years ago,
it was difficult or impossible to get access to source code. Now, such access is limited only by
how much interest, time, and disk space a student has.
Operating System Concepts – 10th Edition 1.66 Silberschatz, Galvin and Gagne ©2018
Chapter 2a: Operating-System
Services
Operating System Concepts – 10h Edition Silberschatz, Galvin and Gagne ©2018
Outline
Operating System Concepts – 10th Edition 1.68 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 1.69 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 1.70 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 1.71 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 1.72 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 1.73 Silberschatz, Galvin and Gagne ©2018
A View of Operating System Services
Operating System Concepts – 10th Edition 1.74 Silberschatz, Galvin and Gagne ©2018
User Operating System Interface
Operating System Concepts – 10th Edition 1.75 Silberschatz, Galvin and Gagne ©2018
CLI
Operating System Concepts – 10th Edition 1.76 Silberschatz, Galvin and Gagne ©2018
Bourne Shell Command Interpreter
Operating System Concepts – 10th Edition 1.77 Silberschatz, Galvin and Gagne ©2018
GUI
Operating System Concepts – 10th Edition 1.78 Silberschatz, Galvin and Gagne ©2018
Touchscreen Interfaces
Operating System Concepts – 10th Edition 1.79 Silberschatz, Galvin and Gagne ©2018
The Mac OS X GUI
Operating System Concepts – 10th Edition 1.80 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 1.81 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 1.82 Silberschatz, Galvin and Gagne ©2018
Example of Standard API
Operating System Concepts – 10th Edition 1.83 Silberschatz, Galvin and Gagne ©2018
System Call Implementation
Operating System Concepts – 10th Edition 1.84 Silberschatz, Galvin and Gagne ©2018
API: System Call to Open a File
Operating System Concepts – 10th Edition 1.85 Silberschatz, Galvin and Gagne ©2018
System Call Parameter Passing
Operating System Concepts – 10th Edition 1.86 Silberschatz, Galvin and Gagne ©2018
Parameter Passing via Table
Operating System Concepts – 10th Edition 1.87 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 1.88 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 1.89 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 1.90 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 1.91 Silberschatz, Galvin and Gagne ©2018
Examples of Windows and Unix System Calls
Operating System Concepts – 10th Edition 1.92 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 1.93 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 1.94 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 1.95 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 1.96 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 1.97 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 1.98 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 1.99 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 1.100 Silberschatz, Galvin and Gagne ©2018
The Role of the Linker and Loader
Operating System Concepts – 10th Edition 1.101 Silberschatz, Galvin and Gagne ©2018
Why Applications are Operating System Specific
Operating System Concepts – 10th Edition 1.102 Silberschatz, Galvin and Gagne ©2018
End of Chapter 2a
Operating System Concepts – 10h Edition Silberschatz, Galvin and Gagne ©2018