O perating s ystems t hree e asy p ieces



Download 3,96 Mb.
Pdf ko'rish
bet384/384
Sana01.01.2022
Hajmi3,96 Mb.
#286329
1   ...   376   377   378   379   380   381   382   383   384
Bog'liq
Operating system three easy pease

Document Outline

  • To Everyone
  • To Educators
  • To Students
  • Acknowledgments
  • Final Words
  • References
  • A Dialogue on the Book
  • Introduction to Operating Systems
    • Virtualizing the CPU
    • Virtualizing Memory
    • Concurrency
    • Persistence
    • Design Goals
    • Some History
    • Summary
    • References
  • Virtualization
    • A Dialogue on Virtualization
    • The Abstraction: The Process
      • The Abstraction: A Process
      • Process API
      • Process Creation: A Little More Detail
      • Process States
      • Data Structures
      • Summary
      • References
    • Interlude: Process API
      • The fork() System Call
      • Adding wait() System Call
      • Finally, the exec() System Call
      • Why? Motivating the API
      • Other Parts of the API
      • Summary
      • References
    • Mechanism: Limited Direct Execution
      • Basic Technique: Limited Direct Execution
      • Problem #1: Restricted Operations
      • Problem #2: Switching Between Processes
      • Worried About Concurrency?
      • Summary
      • References
      • Homework (Measurement)
    • Scheduling: Introduction
      • Workload Assumptions
      • Scheduling Metrics
      • First In, First Out (FIFO)
      • Shortest Job First (SJF)
      • Shortest Time-to-Completion First (STCF)
      • Round Robin
      • Incorporating I/O
      • No More Oracle
      • Summary
      • References
      • Homework
    • Scheduling:  The Multi-Level Feedback Queue
      • MLFQ: Basic Rules
      • Attempt #1: How to Change Priority
      • Attempt #2: The Priority Boost
      • Attempt #3: Better Accounting
      • Tuning MLFQ And Other Issues
      • MLFQ: Summary
      • References
      • Homework
    • Scheduling: Proportional Share
      • Basic Concept: Tickets Represent Your Share
      • Ticket Mechanisms
      • Implementation
      • An Example
      • How To Assign Tickets?
      • Why Not Deterministic?
      • Summary
      • References
      • Homework
    • Multiprocessor Scheduling (Advanced)
      • Background: Multiprocessor Architecture
      • Don't Forget Synchronization
      • One Final Issue: Cache Affinity
      • Single-Queue Scheduling
      • Multi-Queue Scheduling
      • Linux Multiprocessor Schedulers
      • Summary
      • References
    • Summary Dialogue on CPU Virtualization
    • A Dialogue on Memory Virtualization
    • The Abstraction: Address Spaces
      • Early Systems
      • Multiprogramming and Time Sharing
      • The Address Space
      • Goals
      • Summary
      • References
    • Interlude: Memory API
      • Types of Memory
      • The malloc() Call
      • The free() Call
      • Common Errors
      • Underlying OS Support
      • Other Calls
      • Summary
      • References
    • Mechanism: Address Translation
      • Assumptions
      • An Example
      • Dynamic (Hardware-based) Relocation
      • OS Issues
      • Summary
      • References
      • Homework
    • Segmentation
      • Segmentation: Generalized Base/Bounds
      • Which Segment Are We Referring To?
      • What About The Stack?
      • Support for Sharing
      • Fine-grained vs. Coarse-grained Segmentation
      • OS Support
      • Summary
      • References
      • Homework
    • Free-Space Management
      • Assumptions
      • Low-level Mechanisms
      • Basic Strategies
      • Other Approaches
      • Summary
      • References
    • Paging: Introduction
      • Where Are Page Tables Stored?
      • What's Actually In The Page Table?
      • Paging: Also Too Slow
      • A Memory Trace
      • Summary
      • References
      • Homework
    • Paging: Faster Translations (TLBs)
      • TLB Basic Algorithm
      • Example: Accessing An Array
      • Who Handles The TLB Miss?
      • TLB Contents: What's In There?
      • TLB Issue: Context Switches
      • Issue: Replacement Policy
      • A Real TLB Entry
      • Summary
      • References
      • Homework (Measurement)
    • Paging: Smaller Tables
      • Simple Solution: Bigger Pages
      • Hybrid Approach: Paging and Segments
      • Multi-level Page Tables
      • Inverted Page Tables
      • Swapping the Page Tables to Disk
      • Summary
      • References
      • Homework
    • Beyond Physical Memory: Mechanisms
      • Swap Space
      • The Present Bit
      • The Page Fault
      • What If Memory Is Full?
      • Page Fault Control Flow
      • When Replacements Really Occur
      • Summary
      • References
    • Beyond Physical Memory: Policies
      • Cache Management
      • The Optimal Replacement Policy
      • A Simple Policy: FIFO
      • Another Simple Policy: Random
      • Using History: LRU
      • Workload Examples
      • Implementing Historical Algorithms
      • Approximating LRU
      • Considering Dirty Pages
      • Other VM Policies
      • Thrashing
      • Summary
      • References
      • Homework
    • The VAX/VMS Virtual Memory System
      • Background
      • Memory Management Hardware
      • A Real Address Space
      • Page Replacement
      • Other Neat VM Tricks
      • Summary
      • References
    • Summary Dialogue on Memory Virtualization
  • Concurrency
    • A Dialogue on Concurrency
    • Concurrency: An Introduction
      • An Example: Thread Creation
      • Why It Gets Worse: Shared Data
      • The Heart of the Problem: Uncontrolled Scheduling
      • The Wish For Atomicity
      • One More Problem: Waiting For Another
      • Summary: Why in OS Class?
      • References
      • Homework
    • Interlude: Thread API
      • Thread Creation
      • Thread Completion
      • Locks
      • Condition Variables
      • Compiling and Running
      • Summary
      • References
    • Locks
      • Locks: The Basic Idea
      • Pthread Locks
      • Building A Lock
      • Evaluating Locks
      • Controlling Interrupts
      • Test And Set (Atomic Exchange)
      • Building A Working Spin Lock
      • Evaluating Spin Locks
      • Compare-And-Swap
      • Load-Linked and Store-Conditional
      • Fetch-And-Add
      • Summary: So Much Spinning
      • A Simple Approach: Just Yield, Baby
      • Using Queues: Sleeping Instead Of Spinning
      • Different OS, Different Support
      • Two-Phase Locks
      • Summary
      • References
    • Lock-based Concurrent Data Structures
      • Concurrent Counters
      • Concurrent Linked Lists
      • Concurrent Queues
      • Concurrent Hash Table
      • Summary
      • References
    • Condition Variables
      • Definition and Routines
      • The Producer/Consumer (Bound Buffer) Problem
      • Covering Conditions
      • Summary
      • References
    • Semaphores
      • Semaphores: A Definition
      • Binary Semaphores (Locks)
      • Semaphores As Condition Variables
      • The Producer/Consumer (Bounded-Buffer) Problem
      • Reader-Writer Locks
      • The Dining Philosophers
      • How To Implement Semaphores
      • Summary
      • References
    • Common Concurrency Problems
      • What Types Of Bugs Exist?
      • Non-Deadlock Bugs
      • Deadlock Bugs
      • Summary
      • References
    • Event-based Concurrency (Advanced)
      • The Basic Idea: An Event Loop
      • An Important API: select() (or poll())
      • Using select()
      • Why Simpler? No Locks Needed
      • A Problem: Blocking System Calls
      • A Solution: Asynchronous I/O
      • Another Problem: State Management
      • What Is Still Difficult With Events
      • Summary
      • References
    • Summary Dialogue on Concurrency
  • Persistence
    • A Dialogue on Persistence
    • I/O Devices
      • System Architecture
      • A Canonical Device
      • The Canonical Protocol
      • Lowering CPU Overhead With Interrupts
      • More Efficient Data Movement With DMA
      • Methods Of Device Interaction
      • Fitting Into The OS: The Device Driver
      • Case Study: A Simple IDE Disk Driver
      • Historical Notes
      • Summary
      • References
    • Hard Disk Drives
      • The Interface
      • Basic Geometry
      • A Simple Disk Drive
      • I/O Time: Doing The Math
      • Disk Scheduling
      • Summary
      • References
      • Homework
    • Redundant Arrays of Inexpensive Disks (RAIDs)
      • Interface And RAID Internals
      • Fault Model
      • How To Evaluate A RAID
      • RAID Level 0: Striping
      • RAID Level 1: Mirroring
      • RAID Level 4: Saving Space With Parity
      • RAID Level 5: Rotating Parity
      • RAID Comparison: A Summary
      • Other Interesting RAID Issues
      • Summary
      • References
      • Homework
    • Interlude: File and Directories
      • Files and Directories
      • The File System Interface
      • Creating Files
      • Reading and Writing Files
      • Reading And Writing, But Not Sequentially
      • Writing Immediately with fsync()
      • Renaming Files
      • Getting Information About Files
      • Removing Files
      • Making Directories
      • Reading Directories
      • Deleting Directories
      • Hard Links
      • Symbolic Links
      • Making and Mounting a File System
      • Summary
      • References
      • Homework
    • File System Implementation
      • The Way To Think
      • Overall Organization
      • File Organization: The Inode
      • Directory Organization
      • Free Space Management
      • Access Paths: Reading and Writing
      • Caching and Buffering
      • Summary
      • References
      • Homework
    • Locality and The Fast File System
      • The Problem: Poor Performance
      • FFS: Disk Awareness Is The Solution
      • Organizing Structure: The Cylinder Group
      • Policies: How To Allocate Files and Directories
      • Measuring File Locality
      • The Large-File Exception
      • A Few Other Things About FFS
      • Summary
      • References
    • Crash Consistency: FSCK and Journaling
      • A Detailed Example
      • Solution #1: The File System Checker
      • Solution #2: Journaling (or Write-Ahead Logging)
      • Solution #3: Other Approaches
      • Summary
      • References
    • Log-structured File Systems
      • Writing To Disk Sequentially
      • Writing Sequentially And Effectively
      • How Much To Buffer?
      • Problem: Finding Inodes
      • Solution Through Indirection: The Inode Map
      • The Checkpoint Region
      • Reading A File From Disk: A Recap
      • What About Directories?
      • A New Problem: Garbage Collection
      • Determining Block Liveness
      • A Policy Question: Which Blocks To Clean, And When?
      • Crash Recovery And The Log
      • Summary
      • References
    • Data Integrity and Protection
      • Disk Failure Modes
      • Handling Latent Sector Errors
      • Detecting Corruption: The Checksum
      • Using Checksums
      • A New Problem: Misdirected Writes
      • One Last Problem: Lost Writes
      • Scrubbing
      • Overheads Of Checksumming
      • Summary
      • References
    • Summary Dialogue on Persistence
    • A Dialogue on Distribution
    • Distributed Systems
      • Communication Basics
      • Unreliable Communication Layers
      • Reliable Communication Layers
      • Communication Abstractions
      • Remote Procedure Call (RPC)
      • Summary
      • References
    • Sun's Network File System (NFS)
      • A Basic Distributed File System
      • On To NFS
      • Focus: Simple and Fast Server Crash Recovery
      • Key To Fast Crash Recovery: Statelessness
      • The NFSv2 Protocol
      • From Protocol to Distributed File System
      • Handling Server Failure with Idempotent Operations
      • Improving Performance: Client-side Caching
      • The Cache Consistency Problem
      • Assessing NFS Cache Consistency
      • Implications on Server-Side Write Buffering
      • Summary
      • References
    • The Andrew File System (AFS)
      • AFS Version 1
      • Problems with Version 1
      • Improving the Protocol
      • AFS Version 2
      • Cache Consistency
      • Crash Recovery
      • Scale And Performance Of AFSv2
      • AFS: Other Improvements
      • Summary
      • References
    • Summary Dialogue on Distribution
    • General Index
    • Asides
    • Tips
    • Cruces

Download 3,96 Mb.

Do'stlaringiz bilan baham:
1   ...   376   377   378   379   380   381   382   383   384




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish