Operating System Concept 목차 정리(공룡책)

SeunghoChoe·2021년 2월 28일
0
post-custom-banner

큰 단위 목차

  1. Introduction
    1. What Operating Systems Do
    2. Computer-System Organization
    3. Computer-System Architecture
    4. Operating-System Structure
    5. Operating-System Operations
    6. Process Management
    7. Memory Management
    8. Storage Management
    9. Protection and Security
    10. Kernel Data Structures
    11. Computing Environments
    12. Open-Source Operating Systems
    13. Summary
  2. System Structures
    1. Operating-System Services
    2. User and Operating-System Interface
    3. System Calls
    4. Types of System Calls
    5. System Programs
    6. Operating-System Design and Implementation
    7. Operating-System Structure
    8. Operating-System Debugging
    9. Operating-System Generation
    10. System Boot
    11. Summary
  3. Process Concept
    1. Process Concept
    2. Process Scheduling
    3. Operation on Processes
    4. Interprocess Communication
    5. Examples of IPC Systems
    6. Communication in Client-Server Systems
    7. Summary
  4. Multithreaded Programming
    1. Overview
    2. Multicore Programming
    3. Multithreaded Models
    4. Thread Libraries
    5. Implicit Threading
    6. Threading Issues
    7. Operating-System Examples
    8. Summary
  5. Process Scheduling
    1. Basic Concepts
    2. Scheduling Criteria
    3. Scheduling Algorithms
    4. Thread Scheduling
    5. Multiple-Processor-Scheduling
    6. Real-Time CPU Scheduling
    7. Operating-System Examples
    8. Algorithm Evaluation
    9. Summary
  6. Synchronization
    1. Background
    2. The Critcal-Section Problem
    3. Peterson's Solution
    4. Synchronization Hardware
    5. Mutex Locks
    6. Semaphores
    7. Classic Problems of Synchronization
    8. Monitors
    9. Synchronization Examples
    10. Alternative Approaches
    11. Summary
  7. Deadlocks
    1. System Model
    2. Deadlock Characterization
    3. Methods of Handling Deadlocks
    4. Deadlock Prevention
    5. Deadlock Avoidance
    6. Deadlock Detection
    7. Recovery from Deadlock
    8. Summary
  8. Memory-Management Strategies
    1. Background
    2. Swapping
    3. Contiguous Memory Allocation
    4. Segmentation
    5. Paging
    6. Structure of the Page Table
    7. Example: Inter 32 and 64-bit Architectures
    8. Example: Arm Architecture
    9. Summary
  9. Virtual-Memory Management
    1. Background
    2. Demand Paging
    3. Copy-on-Write
    4. Page Replacement
    5. Allocation of Frames
    6. Thrashing
    7. Memory-Mapped Files
    8. Allocating Kernel Memory
    9. Other Considerations
    10. Operating-System Examples
    11. Summary
  10. File System
    1. File Concept
    2. Access Methods
    3. Directory and Disk Structure
    4. File-System Mounting
    5. File Sharing
    6. Protection
  11. Implementing File-Systems
    1. File-System Structure
    2. File-System Implementation
    3. Directory Implementation
    4. Allocation Methods
    5. Free-Space Management
    6. Efficiency and Performance
    7. Recovery
    8. NFS
    9. Example: The WAFL File System
    10. Summary
  12. Mass-Storage Structure
    1. Overview of Mass-Storage Structure
    2. Disk Structure
    3. Disk Attachment
    4. Disk Scheduling
    5. Disk Management
    6. Swap-Space Management
    7. RAID Structure
    8. Stable-Storage Implementation
    9. Summary
  13. I/O Systems
    1. Overview
    2. I/O Hardware
    3. Application I/O Interface
    4. Kernel I/O Subsystem
    5. Transforming I/O Requests to Hardware Operation
    6. STREAMS
    7. Perfromance
    8. Summary
  14. System Protection
    1. Goals of Protection
    2. Principles of Protection
    3. Domain of Protection
    4. Access Matrix
    5. Implementation of the Access Matrix
    6. Access Control
    7. Revocation of Access Rights
    8. Capability-Based Systems
    9. Language-Based Protection
    10. Summary
  15. System Security
    1. The Security Problem
    2. Program Threats
    3. System and Network Threats
    4. Cryptography as a Security Tool
    5. User Authentication
    6. Implementing Security Defeenses
    7. Firewalling to Protect Systems and Networks
    8. Computer-Security Classifications
    9. An Example: Windows 7
    10. Summary
  16. The Linux System
    1. Linux History
    2. Design Principles
    3. Kernel Modules
    4. Process Management
    5. Scheduling
    6. Memory Management
    7. File Systems
    8. Input and Output
    9. Interprocess Communication
    10. Network Structure
    11. Security
    12. Summary
  17. Windows 7
    1. History
    2. Design Principles
    3. System Components
    4. Terminal Services and Fast User Switching
    5. File System
    6. Networking
    7. Programmer Interface
    8. Summary
  18. Influential Operating Systems
    1. Feature Migration
    2. Early Systems
    3. Atlas
    4. XDS-940
    5. THE
    6. RC 4000
    7. CTSS
    8. MULTICS
    9. IBM OS/360
    10. TOPS-20
    11. CP/M and MS/DOS
    12. Macintosh Operating System and Windows
    13. Mach
    14. Other Systems
  19. Appendix A: BSD UNIX
    1. UNIX History
    2. Design Principles
    3. Programmer Interface
    4. User Interface
    5. Process Management
    6. Memory Managemnet
    7. File System
    8. I/O System
    9. Interprocess Communication
    10. Summary
  20. Appendix B: The Mach System
    1. History of the Mach System
    2. Design Principle
    3. System Components
    4. Process Management
    5. Interprocess Communication
    6. Memory Management
    7. Programmer Interface
    8. Summary

세부 목차

1. Introduction

1. What Operating Systems Do

  1. User View
  2. System View
  3. Defining Operating Systems

2. Computer-System Organization

  1. Computer-System Operation
  2. Storage Structure
  3. I/O Structure

3. Computer-System Architecture

  1. Single-Processor Systems
  2. Multiprocessor Systems
  3. Clustered Systems

4. Operating-System Structure

5. Operating-System Operations

  1. Dual-Mode and Multimode Operation
  2. Timer

6. Process Management

7. Memory Management

8. Storage Management

  1. File-System Management
  2. Mass-Storage Management
  3. Caching
  4. I/O Systems

9. Protection and Security

10. Kernel Data Structures

  1. Lists, Stacks, and Queues
  2. Trees
  3. Hash Functions and Maps
  4. Bitmaps

11. Computing Environments

  1. Traditional Computing
  2. Mobile Computing
  3. Distributed Systems
  4. Client-Server Computing
  5. Peer-to-Peer Computing
  6. Virtualization
  7. Cloud Computing
  8. Real-Time Embedded Systems

12. Open-Source Operating Systems

  1. History
  2. Linux
  3. BSD UNIX
  4. Solaris
  5. Open-Source Systems as Learning Tools

13. Summary

System Structures

1. Operating-System Services

2. User and Operating-System Interface

  1. Command Interpreters
  2. Graphical User Interface
  3. Choice of Interface

3. System Calls

4. Types of System Calls

  1. Process Control
  2. File Management
  3. Device Management
  4. Information Maintenance
  5. Communcation
  6. Protection

5. System Programs

6. Operating-System Design and Implementation

  1. Design Goals
  2. Mechanisms and Policies
  3. Implementaion

7. Operating-System Structure

  1. Simple Structure
  2. Layered Approach
  3. Microkernels
  4. Modules
  5. Hybrid Systems
    1. Mac OS X
    2. iOS
    3. Android

8. Operating-System Debugging

  1. Failure Analysis
  2. Performance Tuning
  3. DTrace

9. Operating-System Generation

10. System Boot

11. Summary

Process Concept

1. Process Concept

  1. The Process
  2. Process State
  3. Process Control Block
  4. Threads

2. Process Scheduling

  1. Scheduling Queues
  2. Schedulers
  3. Context Switch

3. Operation on Processes

  1. Process Creation
  2. Process Termination

4. Interprocess Communication

  1. Shared-Memory Systems
  2. Message-Passing Systems
    1. Naming
    2. Synchronization
    3. Buffering

5. Examples of IPC Systems

  1. An Example: POSIX Shared Memory
  2. An Example: Mach
  3. An Example: Windows

6. Communication in Client-Server Systems

  1. Sockets
  2. Remote Procedure Calls
  3. Pipes
    1. Ordinary Pipes
    2. Named Pipes

7. Summary

Multithreaded Programming

1. Overview

  1. Motivation
  2. Benefits

2. Multicore Programming

  1. Programming Challenges
  2. Types of Parallelism

3. Multithreaded Models

  1. Many-to-One Model
  2. One-to-One Model
  3. Many-to-Many Model

4. Thread Libraries

  1. Pthreads
  2. Windows Threads
  3. Java Threads

5. Implicit Threading

  1. Thread Pools
  2. OpenMP
  3. Grand Central Dispatch
  4. Other Approaches

6. Threading Issues

  1. The fork() and exec() System Calls
  2. Signal Handling
  3. Thread Cancellation
  4. Thread-Local Storage
  5. Scheduler Activations

7. Operating-System Examples

  1. Windows Threads
  2. Linux Threads

8. Summary

Process Scheduling

1. Basic Concepts

  1. CPU-I/O Burst Cycle
  2. CPI Scheduler
  3. Preemptive Scheduling
  4. Dispatcher

2. Scheduling Criteria

3. Scheduling Algorithms

  1. First-Come, First-Served Scheduling
  2. Shortest-Job-First Scheduling
  3. Priority Scheduling
  4. Round-Robin Scheduling
  5. Multilevel Queue Scheduling
  6. Multilevel Feedback Queue Scheduling

4. Thread Scheduling

  1. Contention Scope
  2. Pthread Scheduling

5. Multiple-Processor-Scheduling

  1. Approaches to Multiple-Processor Scheduling
  2. Processor Affinity
  3. Load Balancing
  4. Multicore Processor

6. Real-Time CPU Scheduling

  1. Minimizing Latency
  2. Priority-Based Scheduling
  3. Rate-Monotonic Scheduling
  4. Earlies-Deadline-First Scheduling
  5. Proportional Share Scheduling
  6. POSIX Real-Time Scheduling

7. Operating-System Examples

  1. Example: Linux Scheduling
  2. Example: Windows Scheduling
  3. Example: Solaris Scheduling

8. Algorithm Evaluation

  1. Deterministic Modeling
  2. Queueing Models
  3. Simulations
  4. Implementation

9. Summary

Synchronization

1. Background

2. The Critcal-Section Problem

3. Peterson's Solution

4. Synchronization Hardware

5. Mutex Locks

6. Semaphores

  1. Semaphore Usage
  2. Semaphore Implementation
  3. Deadlocks and Starvation
  4. Priority Inversion

7. Classic Problems of Synchronization

  1. The Bounded-Buffer Problem
  2. The Readers-Writers Problem
  3. The Dining-Philosophers Problem

8. Monitors

  1. Monitor Usage
  2. Dining-Philosophers Solution Using Monitors
  3. Implementing a Monitor Using Semaphores
  4. Resuming Processes withing a Monitor

9. Synchronization Examples

  1. Synchronization in Windows
  2. Synchronization in Linux
  3. Synchronization in Solaris
  4. Pthreads Synchronization

10. Alternative Approaches

  1. Transactional Memory
  2. OpenMP
  3. Functional Programming Languages

11. Summary

Deadlocks

1. System Model

2. Deadlock Characterization

  1. Necessary Conditions
  2. Resource-Allocation Graph

3. Methods of Handling Deadlocks

4. Deadlock Prevention

  1. Mutual Exclusion
  2. Hold and Wati
  3. No Preemption
  4. Circular Wait

5. Deadlock Avoidance

  1. Safe State
  2. Resource-Allocation-Graph Algorithm
  3. Banker's Algorithm
    1. Safety Algorithm
    2. Resource-Request Algorithm
    3. An Illustrative Example

6. Deadlock Detection

  1. Single Instance of Each Resource Type
  2. Several Instances of a Resource Type
  3. Detection-Algorithm Usage

7. Recovery from Deadlock

  1. Process Termination
  2. Resource Preemption

8. Summary

Memory-Management Strategies

1. Background

  1. Basic Hardware
  2. Address Binding
  3. Logical Versus Physical Address Space
  4. Dynamic Loading
  5. Dynamic Linking and Share Libraries

2. Swapping

  1. Standard Swapping
  2. Swapping on Mobile Systems

3. Contiguous Memory Allocation

  1. Memory Protection
  2. Memory Allocation
  3. Framentation

4. Segmentation

  1. Basic Method
  2. Segmentation Hardware

5. Paging

  1. Basic Method
  2. Hardware Support
  3. Protection
  4. Shared Pages

6. Structure of the Page Table

  1. Hierarchical Paging
  2. Hashed Page Tables
  3. Inverted Page Tables
  4. Oracle SPARC Solaris

7. Example: Inter 32 and 64-bit Architectures

  1. IA-32 Architecture
    1. IA-32 Segmentation
    2. IA-32 Paging
  2. x86-64

8. Example: Arm Architecture

9. Summary

Virtual-Memory Management

1. Background

2. Demand Paging

  1. Basic Concepts
  2. Performance of Demand Paging

3. Copy-on-Write

4. Page Replacement

  1. Basic Page Replacement
  2. FIFO Page Replacement
  3. Optimal Page Replacement
  4. LRU Page Replacement
  5. LRU-Approximation Page Replacement
    1. Additional-Reference-Bits Algorithm
    2. Second-Chance Algorithm
    3. Enhanced Second-Chance Alogrithm
  6. Counting-Based Page Replacement
  7. Page-Buffering Algorithm
  8. Applications and Page Replacement

5. Allocation of Frames

  1. Minimum Number of Frames
  2. Allocation Algorithm
  3. Global Versus Local Alloation
  4. Non-Uniform Memory Access

6. Thrashing

  1. Cause of Thrashing
  2. Working-Set Model
  3. Page-Fault Frequencey
  4. Concluding Remarks

7. Memory-Mapped Files

  1. Basic Mechanism
  2. Shared Memory in the Windows API
  3. Memory-Mapped I/O

8. Allocating Kernel Memory

  1. Buddy System
  2. Slab Allocation

9. Other Considerations

  1. Prepaging
  2. Page Size
  3. TLB Reach
  4. Inverted Page Tables
  5. Program Structure
  6. I/O Interlock and Page Locking

10. Operating-System Examples

  1. Windows
  2. Solaris

11. Summary

File System

1. File Concept

  1. File Attributes
  2. File Operations
  3. File Types
  4. File Structure
  5. Internal File Sturcture

2. Access Methods

  1. Sequential Access
  2. Direct Access
  3. Other Access Methods

3. Directory and Disk Structure

  1. Storage Structure
  2. Directory Overview
  3. Single-Level Directory
  4. Two-Level Directory
  5. Tree-Structured Directories
  6. Acyclic-Graph Directories
  7. General Graph Directory

4. File-System Mounting

5. File Sharing

  1. Multiple Users
  2. Remote File Systems
    1. The Client-Server Model
    2. Distributed Information Systems
    3. Failure Modes
  3. Consistency Semantics
    1. UNIX Semantics
    2. Session Semantics
    3. Immutable-Shared-Files Semantics

6. Protection

  1. Types of Access
  2. Access Control
  3. Other Protection Approaches

Implementing File-Systems

1. File-System Structure

2. File-System Implementation

  1. Overview
  2. Partitions and Mounting
  3. Virtual File Systems

3. Directory Implementation

  1. Linear List
  2. Hash Table

4. Allocation Methods

  1. Contiguous Allocation
  2. Linked Allocation
  3. Indexed Allocation
  4. Performance

5. Free-Space Management

  1. Bit Vector
  2. Linked List
  3. Grouping
  4. Counting
  5. Space Maps

6. Efficiency and Performance

  1. Efficiency
  2. Performance

7. Recovery

  1. Consistency Checking
  2. Log-Structured File Systems
  3. Other Solutions
  4. Backup and Restore

8. NFS

  1. Overview
  2. The Mount Protocol
  3. The NFS Protocol
  4. Path-Name Translation
  5. Remote Operation

9. Example: The WAFL File System

10. Summary

Mass-Storage Structure

1. Overview of Mass-Storage Structure

  1. Magnetic Disks
  2. Solid-State Disks
  3. Magnetic Tapes

2. Disk Structure

3. Disk Attachment

  1. Host-Attached Storage
  2. Netwrok-Attached Storage
  3. Storage-Area Network

4. Disk Scheduling

  1. FCFS Scheduling
  2. SSTF Scheduling
  3. SCAN Scheduling
  4. C-SCAN Scheduling
  5. LOOK Scheduling
  6. Selection of a Disk-Scheduling Algorithm

5. Disk Management

  1. Disk Formatting
  2. Boot Block
  3. Bad Blocks

6. Swap-Space Management

  1. Swap-Space Use
  2. Swap-Space Location
  3. Swap-Space Management: An Example

7. RAID Structure

  1. Improvement of Reliability via Redundancy
  2. Improvement in Performance via Parallelism
  3. RAID Levels
  4. Selecting a RAID Level
  5. Extensions
  6. Problems with RAID

8. Stable-Storage Implementation

9. Summary

I/O Systems

1. Overview

2. I/O Hardware

  1. Polling
  2. Interrupts
  3. Direct Memory Access
  4. I/O Hardware Summary

3. Application I/O Interface

  1. Block And Character Devices
  2. Network Devices
  3. Clocks and Timers
  4. Nonblocking and Aysnchronous I/O
  5. Vectored I/O

4. Kernel I/O Subsystem

  1. I/O Scheduling
  2. Buffering
  3. Caching
  4. Spooling and Device Reservation
  5. Error Handling
  6. I/O Protection
  7. Kernel Data Structures
  8. Kernel I/O Subsystem Summary

5. Transforming I/O Requests to Hardware Operation

6. STREAMS

7. Perfromance

8. Summary

System Protection

1. Goals of Protection

2. Principles of Protection

3. Domain of Protection

  1. Domain Structure
  2. An Example: UNIX
  3. An Example: MULTICS

4. Access Matrix

5. Implementation of the Access Matrix

  1. Global Table
  2. Access Lists for Objects
  3. Capability Lists for Domains
  4. A Lock-Key Mechanism
  5. Comparison

6. Access Control

7. Revocation of Access Rights

8. Capability-Based Systems

  1. An Example: Hydra
  2. An Example: Cambridge CAP Systems

9. Language-Based Protection

  1. Compiler-Based Enforcement
  2. Protection in Java

10. Summary

System Security

1. The Security Problem

2. Program Threats

  1. Trojan Horse
  2. Trap Door
  3. Logic Bomb
  4. Stack and Buffer Overflow
  5. Viruses

3. System and Network Threats

  1. Worms
  2. Port Scanning
  3. Denial of Service

4. Cryptography as a Security Tool

  1. Encryption
    1. Symmetric Encryption
    2. Asymmetric Encryption
    3. Authentication
    4. Key Distribution
  2. Implementation of Cryptography
  3. An Example: SSL

5. User Authentication

  1. Passwords
  2. Password Vulnerabilities
  3. Securing Passwords
  4. One-Time Passwords
  5. Biometrics

6. Implementing Security Defeenses

  1. Security Policy
  2. Vulnerability Assessment
  3. Intrusion Detection
  4. Virus Protection
  5. Auditing, Accounting, and Logging

7. Firewalling to Protect Systems and Networks

8. Computer-Security Classifications

9. An Example: Windows 7

10. Summary

The Linux System

1. Linux History

  1. The Linux Kernel
  2. The Linux System
  3. Linux Distribution
  4. Linux Licensing

2. Design Principles

  1. Components of a Linux System

3. Kernel Modules

  1. Module Management
  2. Driver Registration
  3. Conflict Resolution

4. Process Management

  1. The fork() and exec() Process Model
    1. Process Identity
    2. Process Environment
    3. Process Context
  2. Processes and Threads

5. Scheduling

  1. Process Scheduling
  2. Real-Time Scheduling
  3. Kernel Synchronization
  4. Symmetric Multiprocessing

6. Memory Management

  1. Management of Physical Memory
  2. Virtual Memory
    1. Virtual Memory Regions
    2. Lifetime of a Virtual Address Space
    3. Swapping and Paging
    4. Kernel Virtual Memory
  3. Execution and Loading of User Programs
    1. Mapping of Programs into Memory
    2. Static and Dynamic Linking

7. File Systems

  1. The Virtual File System
  2. The Linux ext3 File System
  3. Journaling
  4. The Linux Process File System

8. Input and Output

  1. Block Devices
  2. Character Devices

9. Interprocess Communication

  1. Synchronization and Signals
  2. Passing of Data among Processes

10. Network Structure

11. Security

  1. Authentication
  2. Access Control

12. Summary

Windows 7

1. History

2. Design Principles

  1. Security
  2. Reliability
  3. Windows and POSIX Application Compatibility
  4. High Performance
  5. Extensibility
  6. Portability
  7. International Support
  8. Energy Efficiency
  9. Dynamic Device Support

3. System Components

  1. Hardware-Abstraction Layer
  2. Kernel
    1. Kernel Dispatcher
    2. Threads and Scheduling
    3. Implementation of Synchronization Primitives
    4. Software Interrupts: Asynchronous and Deffered Procedure Calls
    5. Exceptions and Interrupts
    6. Swtiching between User-Mode and Kernel-Mode Threads
  3. Executive
    1. Object Manager
    2. Virtual Memory Manager
    3. Process Manager
    4. Facilities for Client-Server Computing
    5. I/O Manager
    6. Cache Manager
    7. Secruity Reference Monitor
    8. Plug-and-Play Manager
    9. Power Manager
    10. Registry
    11. Booting

4. Terminal Services and Fast User Switching

5. File System

  1. NTFS Internal Layout
    1. NTFS B+ Tree
    2. NTFS Metadata
  2. Recovery
  3. Security
  4. Volume Management and Fault Tolerance
    1. Volume Sets and RAID Sets
    2. Sector Sparing and Cluster Remapping
  5. Compression
  6. Mount Points, Symbolic Links, and Hard Links
  7. Change Journal
  8. Volume Shadow Copies

6. Networking

  1. Network Interfaces
  2. Protocols
    1. Server-Message Block
    2. Transmission Control Protocol/Internet Protocl
    3. Point-to-Point Tunneling Protocol
    4. HTTP Protocol
    5. Web-Distributed Authoring and Versioning Protocol
    6. Named Pipes
    7. Remote Procedure Calls
    8. Component Object Model
  3. Redirectors and Servers
    1. Distributed File System
    2. Folder Redirection and Client-Side Caching
  4. Domains
  5. Active Directory

7. Programmer Interface

  1. Access to Kernel Objects
  2. Sharing Objects between Processes
  3. Process Management
    1. Scheduling Rule
    2. Thread Priorities
    3. Thread Suspend and Resume
    4. Thread Synchronization
    5. Thread Pool
    6. Fibers
    7. User-Mode Scheduling (UMS) and ConcRT
    8. Winsock
  4. Interprocess Communication Using Windows Messaging
  5. Memory Management
    1. Virtual Memory
    2. Memory-Mapping Files
    3. Heaps
    4. Thread-Local Storage

8. Summary

Influential Operating Systems

1. Feature Migration

2. Early Systems

  1. Dedicated Computer Systems
  2. Shared Computer Systems
  3. Overlapped I/O

3. Atlas

4. XDS-940

5. THE

6. RC 4000

7. CTSS

8. MULTICS

9. IBM OS/360

10. TOPS-20

11. CP/M and MS/DOS

12. Macintosh Operating System and Windows

13. Mach

14. Other Systems

BSD UNIX

1. UNIX History

2. Design Principles

3. Programmer Interface

4. User Interface

5. Process Management

6. Memory Managemnet

7. File System

8. I/O System

9. Interprocess Communication

10. Summary

The Mach Systems

1. History of the Mach System

2. Design Principle

3. System Components

4. Process Management

5. Interprocess Communication

6. Memory Management

7. Programmer Interface

8. Summary

profile
I'm a software engineer
post-custom-banner

0개의 댓글