Next:
Contents
Contents
Ceng 328 Operating Systems Lecture Notes
Cem Özdogan
Date:
14 February 2011
Contents
List of Tables
List of Figures
First Meeting
Lecture Information
Overview
Text Book
Grading Criteria & Policies
Introduction/Overview
What Is An Operating System?
User View - The OS as an Extended Machine
System View - The OS as a Resource Manager
Defining OS and Functionalities
Computer-System Organization
Computer-System Operation
Storage Structure
I/O Structure
OPERATING SYSTEMS LABORATORY I - UNIX Tutorial - Additional
The Kernel
The Shell
UNIX file system
History of the UNIX operating system
Modern variants of UNIX
Debugging C/C++ Programs Using gdb
Creating Debug-Ready Code
Creating Optimized Code
Getting Extra Compiler Warnings
Compiling A Single-Source "C++" Program
Getting a Deeper Understanding - Compilation Steps
Invoking the "gdb" Debugger
Running A Program Inside The Debugger
Setting Breakpoints
Stepping A Command At A Time
Printing Variables And Expressions
Examining The Function Call Stack
Attaching To an Already Running Process
Debugging A Crashed Program
Evolution of Operating Systems, Computer-System Architecture and Operating-System Structure
Mainframe Systems
Batch and Multiprogrammed Systems
Time Sharing
Personnel Computers and Single-Processor Systems
Multiprocessor Systems; Parallel Processing Systems -
Tightly coupled systems
Multiprocessor Systems; Distributed Systems -
Loosely coupled systems
Real-Time Embedded Systems
Handheld Systems
Operating-System Operations
Dual-Mode Operation
Timer
Process Management
Memory Management
Storage Management
File-System Management
Mass-Storage Management
Caching
I/O Systems
Protection
Operating-System Structures
Operating-System Services
User Operating-System Interface
Command Interpreter
Graphical User Interfaces
System Calls
Types of System Calls
Example of Standard C Library
Process Control
File Management
Device Management
Information Maintenance
Communication
Operating-System Design and Implementation
Design Goals
Mechanisms and Policies
Implementation
Operating-System Structure
Simple Structure
Layered Approach
Microkernels
Modules
Virtual Machines
Examples - VMware
Examples - The Java Virtual Machine
Processes
Process Concept
The Process
Process State
Process Control Block
Process Scheduling
Scheduling Queues
Schedulers
Context Switch
Modelling Multiprogramming
Operations on Processes
Process Creation
Process Termination
Interprocess Communication
Shared-Memory Systems
Threads
Overview
Motivation
Benefits
Multithreading Models
Many-to-One Model
One-to-One Model
Many-to-Many Model
Thread Libraries
Pthreads
Threading Issues
The
and
System Calls
Cancellation
Signal Handling
Operating-System Examples
Linux Threads
CPU scheduling
Basic Concepts
CPU-I/O Burst Cycle
CPU Scheduler
Pre-emptive Scheduling
Dispatcher
Scheduling Criteria
Scheduling Algorithms
First-Come, First-Served Scheduling
Shortest-Job-First Scheduling
Priority Scheduling
Round-Robin Scheduling
Multilevel Queue Scheduling
Multilevel Feedback-Queue Scheduling
Multiple-Processor Scheduling
Approaches to Multiple-Processor Scheduling
Load Balancing
Operating System Examples
Example: Linux Scheduling
Process Synchronization
Race Condition
The Critical-Section Problem
Disabling Interrupts: (Systems approach)
Lock Variables: (Software approach)
Mutual Exclusion with Busy Waiting
Strict Alternation (Software approach)
Peterson's Solution (Software approach)
Semaphores
Usage
Implementation
Deadlocks and Starvation
Mutexes
Classic Problems of Synchronization
The Bounded-Buffer Problem
The Readers-Writers Problem
The Dining-Philosophers Problem
Monitors
Usage
Deadlocks
System Model
Deadlock Characterization
Necessary Conditions
Resource-Allocation Graph
Methods for Handling Deadlocks
Deadlock Prevention
Mutual Exclusion
Hold and Wait
No Preemption
Circular Wait
Deadlock Avoidance
Safe State
Deadlock Detection
Single Instance of Each Resource Type
Several Instances of a Resource Type
Detection-Algorithm Usage
Recovery From Deadlock
Process Termination
Resource Preemption
Main memory
Background
Basic Hardware
Address Binding
Logical Versus Physical Address Space
Dynamic Loading
Dynamic Linking and Shared Libraries
Swapping
Contiguous Memory Allocation
Memory Mapping and Protection
Memory Allocation
Fragmentation
Paging
Basic Method
Protection
Shared Pages
Segmentation
Basic Method
Hardware
Virtual Memory
Background
Demand Paging
Basic Concepts
Performance of Demand Paging
Copy-on-Write
Page Replacement
Basic Page Replacement
FIFO Page Replacement
Optimal Page Replacement
LRU Page Replacement
Allocation of Frames
Allocation Algorithms
Global versus Local Allocation
Thrashing
Cause of Thrashing
File-System Interface
File Concept
File Attributes
File Operations
An Example Program Using File System Calls
File Types
Internal File Structure
Access Methods
Sequential Access
Direct (Random) Access
Other Access Methods
Directory Structure
Storage Structure
Directory Overview
Single-Level Directory
Two-Level Directory
Tree-Structured Directories
Acyclic-Graph Directories
File-System Mounting
File Sharing
Multiple Users
Protection
Types of Access
Access Control
File System Implementation
File-System Structure
File-System Implementation
Overview
Partitions and Mounting
Virtual File Systems
Directory Implementation
Linear List
Hash Table
Allocation Methods
Contiguous Allocation
Linked Allocation
Indexed Allocation
Free-Space Management
Bit Vector
Linked List
Grouping
Counting
Log-Structured File Systems
Mass-Storage Structure
Overview of Mass-Storage Structure
Magnetic Disks
Disk Structure
Disk Attachment
Host-Attached Storage
Network-Attached Storage
Storage-Area Network
Disk Scheduling
FCFS Scheduling
SSTF Scheduling
SCAN Scheduling
C-SCAN Scheduling
LOOK Scheduling
Disk Management
Disk Formatting
RAID Structure
Improvement of Reliability via Redundancy
Improvement in Performance via Parallelism
RAID Levels
References:
Vita
About this document ...
Cem Ozdogan 2011-02-14