Operating Systems:
Internals and Design Principles, 6/E
William Stallings
Chapter 2
Operating System Overview
Operating System
• A program that controls the execution of application programs
• An interface between applications and hardware
Evolution of Operating
Systems
• Serial processing
– No operating system
– Machines run from a console with display lights, toggle switches, input device, and printer
Evolution of Operating
Systems
• Serial processing
– Setup included loading the compiler, source program, saving compiled program, and loading and linking: mounting/dismounting tapes or setting up card decks
– Schedule time
– Problems with this type of machine sharing?
Evolution of Operating
Systems
• Simple batch system
– Monitor
• Software that controls the sequence of events
• Batch jobs together
• Program returns control to monitor when finished
Job Control Language
• Special type of programming language
• Provides instruction to the monitor
– What compiler to use
– What data to use
Hardware Features
• Memory protection
– Do not allow the memory area containing the monitor to be altered
• Timer
– Prevents a job from monopolizing the system
Hardware Features
• Privileged instructions
– Certain machine level instructions can only be executed by the monitor
• Interrupts
– Early computer models did not have this capability
• User mode vs. Kernel mode?
Memory Protection
• User program executes in user mode
– Certain instructions may not be executed
– Certain memory areas are protected from user’s use and may not be accessed
Memory Protection
• Monitor executes in system mode
– Kernel mode
– Privileged instructions are executed
– Protected areas of memory may be accessed
Limitations?
• Simple batch system
– Monitor
• Software that controls the sequence of events
• Batch jobs together
• Program returns control to monitor when finished
• What are the limitations?
System Utilization Example
Uniprogramming
• Processor must wait for (blocked) I/O instruction to complete before preceding
Program Flow of Control
Program Flow of Control
Multiprogramming
• When one job needs to wait for I/O, the processor can switch to the other job
Multiprogramming
Example
Utilization Histograms
Time Sharing Systems
• Using multiprogramming to handle multiple interactive jobs
• Processor’s time is shared among multiple users
• Multiple users simultaneously access the system through terminals
• How would Time Sharing Systems differ from Batch Multiprogramming Systems?
Batch Multiprogramming versus
Time Sharing
• How would you schedule the following jobs: J1(0,
100), J2(1, 10), J3(2, 3), J4(3, 5), J5(4, 2)
• in a batch system
• in a time-sharing system
CTSS Operation
OS Design Challenges
• Time sharing and multiprogramming lead to challenges in
– Process management (multiple programs time share the system, mutual exclusion, synchronization, resource contention etc)
– Memory management (OS, multiple programs are in the memory)
– Scheduling of processor(s) and I/O device
Operating System Objectives
• Convenience
• Efficiency
• Ability to evolve
Four Interfaces
• Figure 3-6. Various interfaces offered by computer systems.
Four Interfaces (1)
• An interface between the hardware and software consisting of machine instructions
– that can be invoked by any program
Four Interfaces (2)
• An interface between the hardware and software, consisting of machine instructions
– that can be invoked only by privileged programs, such as an operating system
Four Interfaces (3)
• An interface consisting of system calls as offered by an operating system
Four Interfaces (4)
• An interface consisting of library calls
– Generally forming what is known as an application programming interface (API)
– In many cases, the aforementioned system calls are hidden by an API
Layers and Views
Services Provided by the OS
• Program development
– Editors and debuggers
• e.g., emacs, vi, gdb
• Program execution
– Load instructions & data, control scheduling
• Access I/O devices
– Hide the peculiar I/O instructions or control signals required for each device, access it by simple read and write function calls
Services Provided by the OS
• Controlled access to files
– Control who can access which files
• System access
– Protect resources and data from unauthorized users
– Resolve conflicts for resource contention
Services Provided by the OS
• Error detection and response
– Internal and external hardware errors
– Software errors
– Operating system cannot grant request of application
Services Provided by the OS
• Accounting
– Collect usage statistics
– Monitor performance
– Used to anticipate future enhancements
– Used for billing purposes
Operating System
• Responsible for managing resources
– Memory, processor, I/O devices
• Functions same way as ordinary computer software
– It is a program that is executed
• Operating system relinquishes control of the processor, but directs the processor so that the processor will allow it to regain control
OS as Resource Manager
Kernel
• Portion of operating system that is in main memory
• Contains most frequently used functions
• Also called the nucleus
Evolution of Operating
Systems
• Hardware upgrades plus new types of hardware (for instance, paging hardware)/
New services / Fixes