Introduction To Operating Systems
Introduction To Operating Systems
Operating System Concepts – 9th Edition 1.1 Silberschatz, Galvin and Gagne ©2013
Chapter 1: Introduction
Operating System Concepts – 9th Edit9on Silberschatz, Galvin and Gagne ©2013
Chapter 1: Introduction
● What Operating Systems Do
● Computer-System Organization
● Computer-System Architecture
● Operating-System Structure
● Operating-System Operations
● Process Management
● Memory Management
● Storage Management
● Protection and Security
Operating System Concepts – 9th Edition 1.3 Silberschatz, Galvin and Gagne ©2013
Objectives
Operating System Concepts – 9th Edition 1.4 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.5 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.6 Silberschatz, Galvin and Gagne ©2013
What is an Operating System?
Operating System Concepts – 9th Edition 1.7 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.8 Silberschatz, Galvin and Gagne ©2013
Four Components of a Computer System
Operating System Concepts – 9th Edition 1.9 Silberschatz, Galvin and Gagne ©2013
What Operating Systems Do
Users View
● Users want convenience, ease of use and good performance
● Don’t care about resource utilization
Operating System Concepts – 9th Edition 1.10 Silberschatz, Galvin and Gagne ©2013
System View
Operating System Concepts – 9th Edition 1.11 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.12 Silberschatz, Galvin and Gagne ©2013
Operating System Definition (Cont.)
● “The one program running at all times on the computer” is the kernel.
● Kernel loads first into memory when an operating system is loaded and
remains into memory until operating system is shut down again.
● Objectives of Kernel :
• To establish communication between user level application and hardware.
• To perform process management
• To control disk management, memory management, task management.
Operating System Concepts – 9th Edition 1.13 Silberschatz, Galvin and Gagne ©2013
Computer System Organization
Operating System Concepts – 9th Edition 1.14 Silberschatz, Galvin and Gagne ©2013
Computer Startup
● bootstrap program is loaded at power-up or reboot
● Typically stored in ROM or EPROM, generally known as firmware
● Initializes all aspects of system
● The bootstrapping process involves self-tests, loading BIOS,
configuration settings, operating system etc.
Operating System Concepts – 9th Edition 1.15 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.16 Silberschatz, Galvin and Gagne ©2013
Computer-System Operation
causing an interrupt
Operating System Concepts – 9th Edition 1.17 Silberschatz, Galvin and Gagne ©2013
Interrupts
Operating System Concepts – 9th Edition 1.18 Silberschatz, Galvin and Gagne ©2013
Common Functions of Interrupts
Operating System Concepts – 9th Edition 1.19 Silberschatz, Galvin and Gagne ©2013
Interrupt Handling
Operating System Concepts – 9th Edition 1.20 Silberschatz, Galvin and Gagne ©2013
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.
Computer storage, along with most computer throughput, is generally measured and
manipulated in bytes and collections of bytes.
A kilobyte, or KB, is 1,024 bytes
a megabyte, or MB, is 1,0242 bytes
a gigabyte, or GB, is 1,0243 bytes
a terabyte, or TB, is 1,0244 bytes
a petabyte, or PB, is 1,0245 bytes
Computer manufacturers often round off these numbers and say that a megabyte is 1 million
bytes and a gigabyte is 1 billion bytes. Networking measurements are an exception to this
general rule; they are given in bits (because networks move data a bit at a time).
Operating System Concepts – 9th Edition 1.21 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.22 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.23 Silberschatz, Galvin and Gagne ©2013
Storage Structure
● Main memory – only large storage media that the CPU can access
directly
● Random access
● Typically volatile
● Secondary storage – extension of main memory that provides large
nonvolatile storage capacity
● Hard disks – 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
● Solid-state disks (SSD) – faster than hard disks, nonvolatile
● Various technologies
● Becoming more popular
Operating System Concepts – 9th Edition 1.24 Silberschatz, Galvin and Gagne ©2013
Storage Hierarchy
Operating System Concepts – 9th Edition 1.25 Silberschatz, Galvin and Gagne ©2013
Storage-Device Hierarchy
Operating System Concepts – 9th Edition 1.26 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.27 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.28 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.29 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.30 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.31 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.32 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.33 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.34 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.35 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 1.36 Silberschatz, Galvin and Gagne ©2013
• a system call is a programmatic way in which a computer
program requests a service from the kernel of the operating
system it is executed on
Operating System Concepts – 9th Edition 1.37 Silberschatz, Galvin and Gagne ©2013
Transition from User to Kernel Mode
Operating System Concepts – 9th Edition 1.38 Silberschatz, Galvin and Gagne ©2013
Process Management
Operating System Concepts – 9th Edition 1.39 Silberschatz, Galvin and Gagne ©2013
• Single-threaded process has one program counter specifying
location of next instruction to execute
Process executes instructions sequentially, one at a time,
until completion
Operating System Concepts – 9th Edition 1.40 Silberschatz, Galvin and Gagne ©2013
Process Management Activities
Operating System Concepts – 9th Edition 1.41 Silberschatz, Galvin and Gagne ©2013
Memory Management
● All (or part) of the data that is needed by the program must be in memory.
Operating System Concepts – 9th Edition 1.42 Silberschatz, Galvin and Gagne ©2013
Storage Management
● OS provides uniform, logical view of information storage
● Abstracts physical properties to logical storage unit - file
● Each medium is controlled by device (i.e., disk drive, tape drive)
4 Varying properties include access speed, capacity, data-transfer
rate, access method (sequential or random)
● File-System management
● Files usually organized into directories
● Access control on most systems to determine who can access what
● OS activities include
4 Creating and deleting files and directories
4 Primitives to manipulate files and directories
4 Mapping files onto secondary storage
4 Backup files onto stable (non-volatile) storage media
Operating System Concepts – 9th Edition 1.43 Silberschatz, Galvin and Gagne ©2013
Mass-Storage Management
● 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
● Free-space management
● Storage allocation
● Disk scheduling
● Some storage need not be fast
● Tertiary storage includes optical storage, magnetic tape
● Still must be managed – by OS or applications
● Varies between WORM (write-once, read-many-times) and RW
(read-write)
Operating System Concepts – 9th Edition 1.44 Silberschatz, Galvin and Gagne ©2013
Performance of Various Levels of Storage
Operating System Concepts – 9th Edition 1.45 Silberschatz, Galvin and Gagne ©2013
Migration of data “A” from Disk to Register
Operating System Concepts – 9th Edition 1.46 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)
Operating System Concepts – 9th Edition 1.47 Silberschatz, Galvin and Gagne ©2013
Protection and Security
Operating System Concepts – 9th Edition 1.48 Silberschatz, Galvin and Gagne ©2013
End of Chapter 1
Operating System Concepts – 9th Edit9on Silberschatz, Galvin and Gagne ©2013
Chapter 2: Operating-System
Structures
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
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:
1. User interface - Almost all operating systems have a user interface (UI).
Varies between Command-Line (CLI), Graphics User Interface (GUI),
Batch
3. 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
9. Accounting - To keep track of which users use how much and what kinds of
computer resources
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
System Calls
● Programming interface to the services provided by the OS
● 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 system call is a function that a user program uses to ask the operating system
for a particular service.
User programmers can communicate with the operating system to request its
services using the interface that is created by a system call.
system calls serve as the interface between an operating system and a
process.
Operating System Concepts – 9th Edition 2.8 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 – 9th Edition 2.9 Silberschatz, Galvin and Gagne ©2013
Example of Standard API
Operating System Concepts – 9th Edition 2.10 Silberschatz, Galvin and Gagne ©2013
System Call Implementation
Operating System Concepts – 9th Edition 2.11 Silberschatz, Galvin and Gagne ©2013
API – System Call – OS Relationship
Operating System Concepts – 9th Edition 2.12 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
Operating System Concepts – 9th Edition 2.13 Silberschatz, Galvin and Gagne ©2013
Parameter Passing via Table
Operating System Concepts – 9th Edition 2.14 Silberschatz, Galvin and Gagne ©2013
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 – 9th Edition 2.15 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 – 9th Edition 2.16 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
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 – 9th Edition 2.17 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 – 9th Edition 2.18 Silberschatz, Galvin and Gagne ©2013
Examples of Windows and Unix System Calls
Operating System Concepts – 9th Edition 2.19 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.20 Silberschatz, Galvin and Gagne ©2013
Example: MS-DOS
● Single-tasking
● Shell invoked when system
booted
● Simple method to run
program
● No process created
● Single memory space
● Loads program into memory,
overwriting all but the kernel
● Program exit -> shell
reloaded
Operating System Concepts – 9th Edition 2.21 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 – 9th Edition 2.22 Silberschatz, Galvin and Gagne ©2013
Operating System Design and Implementation
Operating System Concepts – 9th Edition 2.23 Silberschatz, Galvin and Gagne ©2013
Operating System Design and Implementation (Cont.)
Operating System Concepts – 9th Edition 2.24 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.25 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.26 Silberschatz, Galvin and Gagne ©2013
Simple Structure -- MS-DOS
Operating System Concepts – 9th Edition 2.27 Silberschatz, Galvin and Gagne ©2013
Non Simple Structure -- UNIX
Operating System Concepts – 9th Edition 2.28 Silberschatz, Galvin and Gagne ©2013
Traditional UNIX System Structure
Beyond simple but not fully layered
Operating System Concepts – 9th Edition 2.29 Silberschatz, Galvin and Gagne ©2013
Layered Approach
Operating System Concepts – 9th Edition 2.30 Silberschatz, Galvin and Gagne ©2013
Microkernel System Structure
● Moves as much from the kernel into user space
● Mac example of microkernel
● Mac OS X kernel (Darwin)
● 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 – 9th Edition 2.31 Silberschatz, Galvin and Gagne ©2013
Microkernel System Structure
Operating System Concepts – 9th Edition 2.32 Silberschatz, Galvin and Gagne ©2013
Modules
● Many modern operating systems implement loadable kernel
modules
● 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 – 9th Edition 2.33 Silberschatz, Galvin and Gagne ©2013
Solaris Modular Approach
Operating System Concepts – 9th Edition 2.34 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 microkernel for different
subsystem personalities
Operating System Concepts – 9th Edition 2.35 Silberschatz, Galvin and Gagne ©2013
Mac OS X Structure
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
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 – 9th Edition 2.38 Silberschatz, Galvin and Gagne ©2013
Android Architecture
Operating System Concepts – 9th Edition 2.39 Silberschatz, Galvin and Gagne ©2013
System Boot
● When power initialized on system, execution starts at a fixed
memory location
● Firmware ROM used to hold initial boot code
● Operating system must be made available to hardware so
hardware can start it
● Small piece of code – bootstrap loader, 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
● Common bootstrap loader, GRUB, allows selection of kernel from
multiple disks, versions, kernel options
● Kernel loads and system is then running
Operating System Concepts – 9th Edition 2.40 Silberschatz, Galvin and Gagne ©2013
End of Chapter 2
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013