* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
Contents
1. Introduction
2. Computer-System Structures 3. Operating-System Structures 4. Processes
5. Threads
6. CPU Scheduling
7. Process Synchronization 8. Deadlocks
9. Memory Management 10.Virtual Memory 11.File Systems
Chapter 3
Operating-System
Structures
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
Operating-System Structures
Goals: Provide a way to understand an operating systems
Services
Interface
System Components
The type of system desired is the basis for choices among various algorithms and strategies!
System Components – Process Management
Process Management
Process: An Active Entity
Physical and Logical Resources
Memory, I/O buffers, data, etc.
Data Structures Representing Current Activities:
Program Counter Stack
Data Section CPU Registers
….
And More
Program (code) +
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
System Components – Process Management
Services
Process creation and deletion
Process suspension and resumption
Process synchronization
Process communication
Deadlock handling
System Components – Main- Memory Management
Memory: a large array of words or bytes, where each has its own address
OS must keep several programs in memory to improve CPU utilization and user response time
Management algorithms depend on the hardware support
Services
Memory usage and availability
Decision of memory assignment
Memory allocation and deallocation
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
System Components – File Management
Goal:
A uniform logical view of information storage
Each Medium controlled by a device
Magnetic tapes, magnetic disks, optical disks, etc.
OS provides a logical storage unit: File
Formats:
Free form or being formatted rigidly.
General Views:
A sequence of bits, bytes, lines, records
System Components – File Management
Services
File creation and deletion
Directory creation and deletion
Primitives for file and directory manipulation
Mapping of files onto secondary storage
File Backup
* Privileges for file access control
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
System Components – I/O System Management
Goal:
Hide the peculiarities of specific hardware devices from users
Components of an I/O System
A buffering, caching, and spooling system
A general device-driver interface
Drivers
System Components –
Secondary-Storage Management
Goal:
On-line storage medium for programs & data
Backup of main memory
Services for Disk Management
Free-space management
Storage allocation, e.g., continuous allocation
Disk scheduling, e.g., FCFS
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
System Components – Networking
Issues
Resources sharing
Routing & connection strategies
Contention and security
Network access is usually
generalized as a form of file access
World-Wide-Web over file-transfer protocol (ftp), network file-system (NFS), and hypertext transfer protocol (http)
System Components – Protection System
Goal
Resources are only allowed to accessed by authorized processes.
Protected Resources
Files, CPU, memory space, etc.
Services
Detection & controlling mechanisms
Specification mechanisms
Remark: Reliability!
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
System Components –
Command-Interpreter system
Command Interpreter
Interface between the user and the operating system
Friendly interfaces
Command-line-based interfaces or mused-based window-and-menu interface
e.g., UNIX shell and command.com in MS-DOS
Get the next command Execute the command User-friendly?
Operation-System Services
Program Execution
Loading, running, terminating, etc
I/O Operations
General/special operations for devices:
Efficiency & protection
File-System Manipulation
Read, write, create, delete, etc
Communications
Intra-processor or inter-processor communication – shared memory or message passing
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
Operation-System Services
Error Detection
Possible errors from CPU, memory, devices, user programs Æ Ensure correct & consistent computing
Resource Allocation
Utilization & efficiency
Accounting
Protection & Security
• user convenience or system efficiency!
Operation-System Services
System calls
Interface between processes & OS
How to make system calls?
Assemble-language instructions or subroutine/functions calls in high-level language such as C or Perl?
Generation of in-line instructions or a call to a special run-time routine.
Example: read and copy of a file!
Library Calls vs System Calls
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
Operation-System Services
How a system call occurs?
Types and information
Parameter Passing
Registers
Registers pointing to blocks
Linux
Stacks
x: parameters for call load address x system call 13
x
register
use parameters from table x
Code for System Call 13
Operation-System Services
System Calls
Process Control
File Management
Device Management
Information Maintenance
Communications
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
Operation-System Services
Process & Job Control
End (normal exit) or abort (abnormal)
Error level or no
Load and execute
How to return control?
e.g., shell load & execute commands
Creation and/or termination of processes
Multiprogramming?
Operation-System Services
Process & Job Control (continued)
Process Control
Get or set attributes of processes
Wait for a specified amount of time or an event
Signal event
Memory dumping, profiling, tracing, memory allocation & de-allocation
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
Operation-System Services
Examples: MS-DOS & UNIX
kernel command interpreter process free memory
kernel interpreter
process B free memory
process A
Operation-System Services
File Management
Create and delete
Open and close
Read, write, and reposition (e.g., rewinding)
lseek
Get or set attributes of files
Operations for directories
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
Operation-System Services
Device management
Request or release
Open and close of special files
Files are abstract or virtual devices.
Read, write, and reposition (e.g., rewinding)
Get or set file attributes
Logically attach or detach devices
Operation-System Services
Information maintenance
Get or set date or time
Get or set system data, such as the amount of free memory
Communication
Message Passing
Open, close, accept connections
Host ID or process ID
Send and receive messages
Transfer status information
Shared Memory
Memory mapping & process synchronization
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
Operation-System Services
Shared Memory
Max Speed & Comm Convenience
Message Passing
No Access Conflict & Easy Implementation
kernel Process A Process B
kernel Process A Process B
Shared Memory
M M M
System Programs
Goal:
Provide a convenient environment for program development and execution
Types
File Management, e.g., rm.
Status information, e.g., date.
File Modifications, e.g., editors.
Program Loading and Executions, e.g., loader.
Communications, e.g., telnet.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
System Programs – Command Interpreter
Two approaches:
Contain codes to execute commands
Fast but the interpreter tends to be big!
Painful in revision!
del cd
System Programs – Command Interpreter
Implement commands as system programs Æ Search exec files which corresponds to commands (UNIX)
Issues
a. Parameter Passing
Potential Hazard: virtual memory b. Being Slow
c. Inconsistent Interpretation of Parameters
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
System Structure – MS-DOS
MS-DOS Layer Structure
Application program
Resident system program
MS-DOS device drivers
ROM BIOS device drivers
System Structure – UNIX
terminal controller, terminals, physical memory, device controller, devices such as disks, memory, etc.
CPU scheduling, signal handling, virtual memory, paging, swapping,
file system, disk drivers, caching/buffering, etc.
Shells, compilers, X, application programs, etc.
UNIX Kernel interface
to the hardware System call interface
useruser user useruser user User user
interface
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
System Structure
A Layered Approach – A Myth
Advantage: Modularity ~ Debugging &
Verification
Difficulty: Appropriate layer definitions, less efficiency due to overheads!
Layer M Layer M-1
hidden ops new
ops
existing ops
System Structure
A Layer Definition Example:
L5 User programs L4 I/O buffering
L3 Operator-console device driver L2 Memory management
L1 CPU scheduling L0 Hardware
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
System Structure – OS/2
OS/2 Layer Structure
Application Application Application
Subsystem Subsystem Subsystem
Device driver Device driver Device driver Application-program Interface
•memory management
System kernel •task scheduling
•device management
* Some layers of NT were from user space to kernel space in NT4.0
System Structure – Microkernels
The concept of microkernels was
proposed in CMU in mid 1980s (Mach).
Moving all nonessential components from the kernel to the user or system programs!
No consensus on services in kernel
Mostly on process and memory management and communication
Benefits:
Ease of OS service extensions Æ portability, reliability, secutrity
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
System Structure – Microkernels
Examples
Microkernels: True64UNIX (Mach kernel), MacOS X (Mach kernel), QNX (msg passing, proc scheduling, HW interrupts, low-level networking)
Hybrid structures: Windows NT
kernel
OS/2
Applications OS/2 Server
POSIX
Applications POSIX Server Win32
Applications Win32 Server
Virtual Machine
Virtual Machines: provide an interface that is identical to the underlying bare hardware
interface
processes processes processes processes
kernel kernel kernel
hardware
virtual machine implementation hardware
kernel
VM1 VM2 VM3
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
Virtual Machine
Implementation Issues:
Emulation of Physical Devices
E.g., Disk Systems
An IBM minidisk approach
User/Monitor Modes
(Physical) Monitor Mode
Virtual machine software
(Physical) User Mode
Virtual monitor mode & Virtual user mode
Virtual Machine
virtual user mode virtual monitor mode monitor mode
processes processes processes
kernel 1 kernel 2 kernel 3
virtual machine software hardware
P1/VM1 system call
Trap
Service for the system call
Set program counter
& register contents,
& then restart VM1
Simulate the effect of the I/O instruction
Restart VM1 Finish service
time
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
Virtual Machine
Disadvantages:
Slow!
Execute most instructions directly on the hardware
No direct sharing of resources
Physical devices and communications
* I/O could be slow (interpreted) or fast (spooling)
Virtual Machine
Advantages:
Complete Protection – Complete Isolation!
OS Research & Development
System Development Time
Extensions to Multiple Personalities, such as Mach (software emulation)
Emulations of Machines and OS’s, e.g., Windows over Linux
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
Virtual Machine – Java
Sun Microsystems in late 1995
Java Language and API Library
Java Virtual Machine (JVM)
Class loader (for bytecode .class files)
Class verifier
Java interpreter
An interpreter, a just-in-time (JIT) compiler, hardware
class loader verifier java interpreter
host system
java .class files
Virtual Machine – Java
JVM
Garbage collection
Reclaim unused objects
Implementation being specific for different systems
Programs are architecture neutral and portable
class loader verifier java interpreter
host system
java .class files
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
System Design &
Implementation
Design Goals & Specifications:
User Goals, e.g., ease of use
System Goals, e.g., reliable
Rule 1: Separation of Policy & Mechanism
Policy:What will be done?
Mechanism:How to do things?
Example: timer construct and time slice
Two extreme cases:
Microkernel-based OS Macintosh OS
System Design &
Implementation
OS Implementation in High-Level Languages
E.g., UNIX, OS/2, MS NT, etc.
Advantages:
Being easy to understand & debug
Being written fast, more compact, and portable
Disadvantages:
Less efficient but more storage for code
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.
System Generation
SYSGEN (System Generation)
Ask and probe for information concerning the specific configuration of a hardware system
CPU, memory, device, OS options, etc.
No recompilation Recompilation
& completely Linking of of a modified table-driven modules for source code
selected OS
Issues
Size, Generality, Ease of modification