Operating Systems
1
Administration
 Text Books :
 • Applied Operating System Concepts –
 Silberschatz/Galvin/Gagne
 http://www.bell-labs.com/topic/books/aos-book
 • Modern Operating Systems –
 Tanenbaum
 • Linux Programming –
 Stones/Matthew
 • Advanced Windows –
 Richter
 Introduction 2
What is Operating System ?
A program that acts as an intermediary
 between a user of a computer and the
 computer hardware.
 Operating system goals:
 • A program that controls the execution of
 application programs
 • Make the computer system convenient to use.
 • Use the computer hardware in an efficient manner.
 Introduction 3
Computer System Components
1. Hardware – provides basic computing resources
 (CPU, memory, I/O devices).
2. Operating system – controls and coordinates the
 use of the hardware among the various application
 programs for the various users.
3. Applications programs – define the ways in which
 the system resources are used to solve the
 computing problems of the users (compilers,
 database systems, video games, business
 programs).
4. Users (people, machines, other computers).
 Introduction 4
Abstract View of System Components
 Introduction 5
Operating System Definitions
 Resource allocator – manages and allocates
 resources.
 Control program – controls the execution of
 user programs and operations of I/O devices
 .
 Kernel – the one program running at all times
 (all else being application programs).
 Introduction 6
User-Services Provided by the
Operating System
 Program creation
 • Editor and debugger utility programs
 Program execution
 • Loading instructions, initializing I/O devices
 Access to I/O devices
 • Making it a simple R/W command
 Controlled access to files
 • Media technology, file format, controlling access
 Introduction 7
User-Services Provided by the
Operating System
 Error detection and response
 • internal and external hardware errors
 • memory error
 • device failure
 • software errors
 • arithmetic overflow
 • access forbidden memory locations
 Introduction 8
Operating System as a resource
manager
 Itis actually a program that is executed by
 the processor to control the processor!
 Directs the processor in the use of system
 resources
 Directs the processor when executing other
 programs
 Processor stops executing the operating
 system in order to execute other programs
 and, then, gives the control back to the
 operating system
 Introduction 9
Operating System as a resource
manager
 Memory management is decided by the
 operating system and memory management
 hardware in the processor.
 The operating system decides about the
 access of programs and files to I/O devices.
 In case of multiple processors, it decides for
 them all
 Introduction 10
A bit of history
 The First Generation
 (1945-55) –
 Vacuum Tubes and
 Plugboards
 Introduction 11
History (ctd.)
 The Second
 Generation (1955-65)
 Transistors and Batch
 Systems
 • Using FORTRAN and
 assembly language
 • OS – FMS , IBSYS
 (for IBM7094)
 Introduction 12
History (ctd.)
 The Third Generation (1965-1980) –
 Multiprogramming and Spooling
 The Primary development : PDPs
 computer and UNIX os
 • Several jobs are kept in main memory at the
 same time, and the CPU is multiplexed
 among them.
 • Spooling - While executing one job, the OS:
 • Reads next job from card reader into a
 storage area on the disk (job queue).
 • Outputs printout of previous job from disk to
 printer.
 • Job pool – data structure that allows the OS
 to select which job to run next in order to
 increase CPU utilization.
 Introduction 13
OS Features Needed for
Multiprogramming
 I/O routine supplied by the system.
 Memory management – the system must
 allocate the memory to several jobs.
 CPU scheduling – the system must choose
 among several jobs ready to run.
 Introduction 14
Example
 JOB1 JOB2 JOB3
Type of job Heavy compute Heavy I/O Heavy I/O
Duration 5 min. 15 min. 10 min.
Memory required 50K 100 K 80 K
Need disk? No No Yes
Need terminal No Yes No
Need printer? No No Yes
 Introduction 15
Effects of Multiprogramming
 Uniprogramming Multiprogramming
Processor use 17% 33%
Memory use 30% 67%
Disk use 33% 67%
Printer use 33% 67%
Elapsed time 30 min. 15 min.
Throughput rate 6 jobs/hr 12 jobs/hr
Mean response time 18 min. 10 min.
• The secret is the supporting hardware for I/O interrupts and DMA
 Introduction 16
Time sharing advantages
 Using multiprogramming (multi-tasking) to
 handle multiple interactive jobs
 Processor’s time is shared among multiple
 users
 Multiple users simultaneously access the
 system through terminals
 The objective is to minimize response time to
 the user commands
 Introduction 17
History (cont.)
 The Fourth Generation(1980 – Present) –
 Personal Computers
 • Personal computers – computer system dedicated
 to a single user.
 • I/O devices – keyboards, mice, display screens,
 small printers.
 • User convenience and responsiveness.
 • Can adopt technology developed for larger
 operating system’ often individuals have sole use
 of computer and do not need advanced CPU
 utilization of protection features
 Introduction 18
Windows - History
•DOS 1.00: 4000 lines of assembly language
 Introduction 19
Windows - History
 DOS 2.0 in 1983, supported a hard disk, one
 directory, max 64 files
 DOS 3.0 ran on Intel’s 286 processor,
 memory protection features and hard disk
 DOS 3.1, 1984, supported networking
 DOS 3.3, 1987, supported 386 processor
 Windows 3.0, 1990, PC Graphical User
 Interface (GUI) for the 1st time
 Introduction 20
Windows - History
 Windows NT developed from scratch to
 provide a multitasking single user
 environment. Version 3.1, 1993.
 Windows 95-98 :
 Multitasking single user – not full 32bit
 Win NT 4.0, 1996 – win95 GUI
 16 million lines of C code
 Introduction 21
Characteristics of Modern
Operating Systems
1. Microkernel architecture
 • Assigns only a few essential functions to the
 kernel
 • address space
 • interprocess communication (IPC)
 • basic scheduling
 • Other functions run in user mode and treated like
 any other application
 Introduction 22
Characteristics of Modern
Operating Systems
2. Multithreading
 • process is divided into threads that can run
 simultaneously
 • Thread
 • dispatchable unit of work
 • executes sequentially and is interruptable
 • Process is a collection of one or more threads
 • Useful when there is no need to serialize, e.g.,
 database that deals with several clients
 Introduction 23
Characteristics of Modern
Operating Systems
3. Symmetric multiprocessing
 • there are multiple processors transparent to the user
 • these processors share same main memory and I/O
 facilities
 • All processors can perform the same functions
 • Better performance (speed), availability (fault tolerance),
 growth, scaling (wide price range)
 Introduction 24
Multiprogramming vs. multiprocessing
 Introduction 25
Operating Systems Concepts
1. Process
2. Memory management
3. Information protection & security
4. Scheduling and resource management
5. The Shell
 Introduction 26
Process
 A process consists of 3 components:
 • an executable program
 • associated data
 • execution context (PC, registers & status)
 Improper synchronization
 • Status ensures that a process waiting for an I/O device receives
 the signal
 Failed mutual exclusion
 • Priorities are included in context
 Nondeterminate program operation
 • program should only depend on its input, not relying on
 common memory or order of running with others
 Deadlocks
 • 2 or more programs awaiting each others! More later
 Introduction 27
Memory Management principals
 Process isolation
 Automatic allocation and management
 Supporting long-term means of storage
 achieves all of the above thru virtual memory
 and file system
 Introduction 28
Categories of Security and
Protection
 Access control
 • regulate user access to the system and data, e.g.,
 permissions
 Information flow control
 • regulate flow of data within the system and its
 delivery to users
 Certification
 • proving that access and flow control perform
 according to specifications, e.g., passwords
 Introduction 29
Scheduling and Resource
Management
 Fairness
 • give equal and fair access to all processes that are
 charged the same rate
 Differential responsiveness
 • discriminate between different classes of jobs
 Efficiency
 • maximize throughput, minimize response time,
 and accommodate as many users as possible
 Operations-research management problems
 Introduction 30
Major elements of OS
Short-term: In memory, ready
to run on the CPU
 Operating System
 Service Call Service
Scheduler picks one from Process Call Handler
OS moves jobs from long-term
to short-term queues without
overcommitting memory or Interrupt Long- Short- I/O
 from Process Interrupt Term Term Queues
processor Interrupt Handler Queue Queue
 from I/O
 Short-Term
I/O Queue for each I/O device Scheduler
OS also decides assigning
Processes to IO devices
 Pass Control
An interrupt or a service call to Process
invokes scheduler to pick a
Process for execution
 Introduction 31
System Calls
 System calls provide the interface between a
 running program and the operating system.
 • Generally available as assembly-language instructions.
 • Languages defined to replace assembly language for
 systems programming allow system calls to be made
 directly (e.g. from C,C++ , or Perl programs)
 Three general methods are used to pass
 parameters between a running program and the
 operating system.
 • Pass parameters in registers.
 • Store the parameters in a table in memory, and the table
 address is passed as a parameter in a register.
 • Push (store) the parameters onto the stack by the program,
 and pop off the stack by operating system.
 Introduction 32
Passing of Parameters As A Table
 Introduction 33
Passing of Parameters by the Stack
 Library
 6 Return to caller
 Procedure
 4 Trap to the kernel
 5 Put code for read in register read
 11 10
User Increment SP
space Call Read
 3 User program
 Push fd
 2 Calling read
 Push &buffer
 1 Push nbytes
 1 9
 Kernel Dispatch Sys call
 7 8 handler
 space
 (OS)
 Introduction 34
Some Major POSIX system calls
 Process management
 Call Description
pid = fork() Create a child process identical to
 the parent
pid = waitpid(pid,&statloc,options) Wait for a child to terminate
s = execve(name,argv,environp) Replace a process
exit(status) Terminate process execution and
 return status
 Introduction 35
Some Major POSIX system calls
 File management
 Call Description
fd = open(file,how,…) Open a file for read/write
s = close(fd) Close an open file
n = read(fd,buffer,nbytes) Read data from a file into a buffer
n = write(fd,buffer,nbytes) Write data from a buffer into a file
 Introduction 36
System Calls for Process Management
Example: UNIX/LINUX(POSIX)
while(1) {
 type_prompt();
 read_command(command,parameters);
 if(fork()!=0){
 /*Parent code. */
 waitepid(-1,&status,0);
 }else{
 /*Child code */
 execve(command,parameters,0);
 }
}
 Introduction 37
Same Example in Win32
 #include <stdio.h>
 #include <process.h>
 #include <windows.h>
 void main()
 {
 char s[80];
 STARTUPINFO si;
 PROCESS_INFORMATION pi;
 ZeroMemory( &si, sizeof(si) );
 si.cb = sizeof(si);
 while(1){
 printf("Shell: ");
 gets(s);
 if(!CreateProcess(NULL,s,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))
 fprintf(stderr, "CreateProcess failed." );
 }
 /* // Wait until child process exits.
 WaitForSingleObject( pi.hProcess, INFINITE );
 // Close process and thread handles.
 CloseHandle( pi.hProcess );
 CloseHandle( pi.hThread ); */
 } Introduction 38
Process Segments
 Stack FFFF
 Gap
 Data
 Text
 0000
 Introduction 39
MS-DOS Execution
 Introduction 40
UNIX Running Multiple Programs
 Introduction 41
System Structure – Simple Approach
 MS-DOS – written to
 provide the most
 functionality in the least
 space
 Introduction 42
System Structure – UNIX
 UNIX – The kernel
 • Consists of
 everything below
 the system-call
 interface and
 above the physical
 hardware
 • Provides the file
 system, CPU
 scheduling,
 memory
 management, and
 other operating-
 system functions.
 Introduction 43
Windows NT
 Kernel mode only
 has access to
 System data and
 hardware
 Modular flexible
 structure.
 Introduction 44
Virtual Machines
A virtual machine provides an interface
 identical to the underlying bare hardware.
 The operating system creates the illusion of
 multiple processes, each executing on its
 own processor with its own (virtual)
 memory..
 Introduction 45
The Java Virtual Machine
 Introduction 46
The operating System Zoo
 Mainframe Operating Systems –
 • High-End Servers
 • Processes routine jobs without any interactive user
 present
 • OS/390 for example
 Server Operating Systems
 • Run on Large PC or even on Mainframes
 • Print , file or web services
 • Unix , Windows 2000 , Linux
 Introduction 47
The operating System Zoo
 Multiprocessor Operating Systems
 • Windows 2000 (up to 32 CPUs) , SunOS
 PC Operating Systems
 • Running users applications
 • Multimedia support
 • Windows 98/Me/Xp
 Real-Time Operating Systems
 • Time as a key parameter (hard dead line)
 • VxWorks , QNX
 Introduction 48
The operating System Zoo
 Embedded Operating Systems
 • Run on a computer not generally thought of as
 computer, like TV ,microwave etc.
 • Have some characteristics of real-time systems
 • PalmOS , Windows CE
 Smart Card Operating Systems
 • Very small - run on a credit card sized device
 • Some are Java Oriented (based on JVM)
 Introduction 49