
1. Computer-System Architecture
1.1. single general-purpose processor
1.2. special-purpose processors
1.3. Multiprocessors
1.3.1. Asymmetric Multiprocessing
1.3.2. Symmetric Multiprocessing
1.4. How a Modern Computer Works
1.5. Symmetric Multiprocessing Architecture
1.6. A Dual-Core Design
1.7. Clustered Systems
1.7.1. Asymmetric clustering
1.7.1.1. one machine in hot-standby mode
1.7.2. Symmetric clustering
1.7.2.1. multiple nodes running applications, monitoring each other
2. Operating-System Operations
2.1. User mode
2.2. kernel mode
3. Process Management
3.1. Single-threaded process
3.1.1. Process executes instructions sequentially, one at a time, until completion
3.2. Multi-threaded process
3.2.1. s has one program counter per thread
4. Memory Management
5. Storage Management
5.1. Mass-Storage Management
6. Protection and Security
6.1. Protection
6.2. Security
6.2.1. Huge range, including denial-of-service, worms, viruses, identity
7. Computing Environments
7.1. Client-Server Computing
7.1.1. Compute-server
7.1.2. File-server
8. Web-Based Computing
9. Processes
9.1. Process Concept
9.1.1. Batch system
9.1.2. Time-shared systems
9.2. part of processer
9.2.1. program counter
9.2.2. stack
9.2.3. data section
9.2.4. text section
9.2.5. Stack
9.2.6. Heap
9.3. Process in Memory
9.4. Process State
9.4.1. new
9.4.2. running
9.4.3. waiting
9.4.4. ready
9.4.5. terminated
9.5. Diagram of Process State
9.6. PCB
9.6.1. Process state
9.6.2. Program counter
9.6.3. CPU registers
9.6.4. CPU scheduling information
9.6.5. Memory-management information
9.6.6. Accounting information
9.6.7. I/O status information
9.7. Process Scheduling
9.7.1. queues
9.7.1.1. Job queue
9.7.1.2. Ready queue
9.7.1.3. Device queues
9.7.2. Schedulers
9.7.2.1. Long-term scheduler
9.7.2.2. Short-term scheduler
9.8. Context Switch
9.9. Process Creation
9.9.1. Parent process
9.9.2. children processes
9.10. Process Termination
9.11. Interprocess Communication
9.11.1. interprocess communication
9.11.1.1. Shared memory
9.11.1.2. Message passing
9.11.1.2.1. Synchronization
9.11.1.2.2. asynchronous
9.11.1.3. Examples of IPC Systems
9.11.1.3.1. Windows XP
9.11.1.3.2. Mach
9.11.1.3.3. POSIX
9.12. Communications in Client-Server Systems
9.12.1. Sockets
9.12.2. Remote Procedure Calls
9.12.2.1. Stubs
9.12.3. Pipes
9.12.3.1. conduit allowing two processes to communicate
9.12.3.2. types
9.12.3.2.1. Ordinary Pipes
9.12.3.2.2. Named Pipes
9.12.4. Java
10. Computer System Structure
10.1. Operating System Services
10.1.1. User interface
10.1.2. Program execution
10.1.3. I/O operations
10.1.4. File-system manipulation
10.1.5. Communications
10.1.6. Error detection
10.1.7. Resource allocation
10.1.8. Accounting
10.1.9. Protection and security
10.2. User Operating System Interface
10.2.1. Command Line Interface
10.2.2. GUI
10.2.2.1. eg:Solaris is CLI with optional GUI interfaces (Java Desktop, KDE),Microsoft Windows is GUI with CLI “command” shell
10.3. System Calls
10.3.1. Application Program Interface (API)
10.3.1.1. 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
10.3.2. System Call Implementation
10.3.3. API – System Call – OS Relationship
10.3.4. System Call Parameter Passing
10.3.5. Types of System Calls
10.3.5.1. Process control
10.3.5.2. File management
10.3.6. Types of System Calls (Cont.)
10.3.6.1. Device management
10.3.6.2. Information maintenance
10.3.6.3. Communications
10.4. Simple Structure
10.4.1. MS-DOS
10.4.2. MS-DOS Layer Structure
10.4.3. Layered Approach
10.4.4. UNIX
10.4.4.1. Systems programs
10.4.4.2. The kernel
10.4.5. Microkernel System Structure
10.4.6. Mac OS X Structure
10.5. Virtual Machines
10.5.1. Para-virtualization
10.5.2. Virtualization Implementation
10.5.3. Solaris 10 with Two Containers
10.5.4. VMware Architecture
10.5.5. The Java Virtual Machine
10.6. Operating-System Debugging
10.6.1. dump
10.6.1.1. core
10.6.1.2. crash
10.6.2. Kernighan’s Law
10.6.3. Probes
10.7. Operating System Generation
10.7.1. Booting
10.7.2. Bootstrap program
10.7.2.1. code stored in ROM that is able to locate the kernel, load it into memory, and start its execution
10.8. System Boot
10.8.1. bootstrap loader
10.8.2. boot block
10.9. Multiprogramming
10.9.1. job scheduling
10.10. Timesharing (multitasking)
11. What Operating Systems Do
11.1. resource allocator
11.2. control program
12. Computer Startup
12.1. bootstrap program
13. Computer System Organization
13.1. Computer-System Operation
13.1.1. interrupt
13.1.1.1. Common Functions of Interrupts
13.1.1.1.1. interrupt vector
13.1.1.1.2. interrupt driven
13.1.1.2. Interrupt Handling
13.1.1.2.1. polling
13.1.1.2.2. vectored
13.1.1.3. Interrupt Timeline
13.1.1.4. I/O Structure
13.1.1.4.1. System call
13.1.1.4.2. Device-status table
13.1.1.5. Direct Memory Access Structure
14. Storage Structure
14.1. Random access
14.2. Typically volatile
14.3. nonvolatile
14.4. Storage Hierarchy
14.4.1. Caching
14.4.1.1. L1 chache
14.4.1.2. L2 chache
14.4.1.3. L3 chache
15. I/O Subsystem
16. Distributed Computing
16.1. Local Area Network (LAN)
16.2. Wide Area Network (WAN)
16.3. Metropolitan Area Network (MAN)
17. Peer-to-Peer Computing
18. Open-Source Operating Systems
18.1. GNU/Linux and BSD UNIX
19. Threads
19.1. Motivation
19.2. Multicore Programming
19.3. Multithreaded Server Architecture
19.4. User Threads
19.4.1. POSIX Pthreads
19.4.2. Win32 threads
19.4.3. Java threads
19.5. Kernel Threads
19.5.1. Windows XP/2000 Solaris Linux Tru64 UNIX Mac OS X
19.6. Multithreading Models
19.6.1. Many-to-One
19.6.2. One-to-One
19.6.3. Many-to-Many
19.7. Thread Libraries
19.8. Pthreads
19.9. Java Threads
19.10. Threading Issues
19.11. Thread Cancellation
19.11.1. Asynchronous cancellation
19.11.2. Deferred cancellation