Operating Systems: Three Easy Pieces

دانلود کتاب Operating Systems: Three Easy Pieces

50000 تومان موجود

کتاب سیستم عامل: سه قطعه آسان نسخه زبان اصلی

دانلود کتاب سیستم عامل: سه قطعه آسان بعد از پرداخت مقدور خواهد بود
توضیحات کتاب در بخش جزئیات آمده است و می توانید موارد را مشاهده فرمایید


این کتاب نسخه اصلی می باشد و به زبان فارسی نیست.


امتیاز شما به این کتاب (حداقل 1 و حداکثر 5):

امتیاز کاربران به این کتاب:        تعداد رای دهنده ها: 7


توضیحاتی در مورد کتاب Operating Systems: Three Easy Pieces

نام کتاب : Operating Systems: Three Easy Pieces
ویرایش : 1.00
عنوان ترجمه شده به فارسی : سیستم عامل: سه قطعه آسان
سری :
نویسندگان : ,
ناشر : CreateSpace Independent Publishing Platform
سال نشر : 2020
تعداد صفحات : 743
ISBN (شابک) : 198508659X , 9781985086593
زبان کتاب : English
فرمت کتاب : pdf
حجم کتاب : 5 مگابایت



بعد از تکمیل فرایند پرداخت لینک دانلود کتاب ارائه خواهد شد. درصورت ثبت نام و ورود به حساب کاربری خود قادر خواهید بود لیست کتاب های خریداری شده را مشاهده فرمایید.

توضیحاتی در مورد کتاب :


OSTEP ("اوه گام")، یا "کتاب دنباله دار"، نشان دهنده اوج سال ها آموزش مقدمه سیستم عامل به دانشجویان و فارغ التحصیلان در بخش علوم کامپیوتر دانشگاه ویسکانسین-مدیسون برای نزدیک به 20 سال است. سازماندهی شده حول سه مفهوم اساسی برای ساخت سیستم عامل: مجازی سازی (CPU و حافظه)، همزمانی (قفل ها و متغیرهای شرط) و پایداری (دیسک ها، RAIDS و سیستم های فایل). دانش‌آموزان را به درک عمیق‌تر و قدردانی از سیستم‌عامل‌های مدرن سوق می‌دهد. نویسندگان، Remzi و Andrea Arpaci-Dusseau، هر دو استاد علوم کامپیوتر در دانشگاه ویسکانسین-مدیسون هستند. آنها بیش از 20 سال است که در سیستم های کامپیوتری تحقیق می کنند و از اولین کلاس سیستم عامل فارغ التحصیل خود در U.C. برکلی در سال 1993. از آن زمان، آنها بیش از 100 مقاله در مورد عملکرد و قابلیت اطمینان بسیاری از جنبه های سیستم های کامپیوتری مدرن، با تمرکز ویژه بر سیستم های فایل و ذخیره سازی منتشر کرده اند. کار آنها با جوایز متعدد بهترین مقاله شناخته شده است و برخی از نوآوری های آنها امروزه در سیستم عامل های لینوکس و BSD یافت می شود.

فهرست مطالب :


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 Homework 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 Homework (Simulation) Interlude: Process API The fork() System Call The wait() System Call Finally, The exec() System Call Why? Motivating The API Process Control And Users Useful Tools Summary References Homework (Code) 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) A New Metric: Response Time Round Robin Incorporating I/O No More Oracle Summary References Homework (Simulation) 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 (Simulation) Scheduling: Proportional Share Basic Concept: Tickets Represent Your Share Ticket Mechanisms Implementation An Example How To Assign Tickets? Why Not Deterministic? The Linux Completely Fair Scheduler (CFS) Summary References Homework (Simulation) 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 Homework (Simulation) 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 Homework (Code) Interlude: Memory API Types of Memory The malloc() Call The free() Call Common Errors Underlying OS Support Other Calls Summary References Homework (Code) Mechanism: Address Translation Assumptions An Example Dynamic (Hardware-based) Relocation Hardware Support: A Summary Operating System Issues Summary References Homework (Simulation) 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 (Simulation) Free-Space Management Assumptions Low-level Mechanisms Basic Strategies Other Approaches Summary References Homework (Simulation) Paging: Introduction A Simple Example And Overview Where Are Page Tables Stored? What's Actually In The Page Table? Paging: Also Too Slow A Memory Trace Summary References Homework (Simulation) 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 (Simulation) 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 Homework (Measurement) 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 (Simulation) Complete Virtual Memory Systems VAX/VMS Virtual Memory The Linux Virtual Memory System Summary References Summary Dialogue on Memory Virtualization Concurrency A Dialogue on Concurrency Concurrency: An Introduction Why Use Threads? 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 (Simulation) Interlude: Thread API Thread Creation Thread Completion Locks Condition Variables Compiling and Running Summary References Homework (Code) Locks Locks: The Basic Idea Pthread Locks Building A Lock Evaluating Locks Controlling Interrupts A Failed Attempt: Just Using Loads/Stores Building Working Spin Locks with Test-And-Set Evaluating Spin Locks Compare-And-Swap Load-Linked and Store-Conditional Fetch-And-Add Too Much Spinning: What Now? A Simple Approach: Just Yield, Baby Using Queues: Sleeping Instead Of Spinning Different OS, Different Support Two-Phase Locks Summary References Homework (Simulation) Lock-based Concurrent Data Structures Concurrent Counters Concurrent Linked Lists Concurrent Queues Concurrent Hash Table Summary References Homework (Code) Condition Variables Definition and Routines The Producer/Consumer (Bounded Buffer) Problem Covering Conditions Summary References Homework (Code) Semaphores Semaphores: A Definition Binary Semaphores (Locks) Semaphores For Ordering The Producer/Consumer (Bounded Buffer) Problem Reader-Writer Locks The Dining Philosophers Thread Throttling How To Implement Semaphores Summary References Homework (Code) Common Concurrency Problems What Types Of Bugs Exist? Non-Deadlock Bugs Deadlock Bugs Summary References Homework (Code) 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 Homework (Code) 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 (Simulation) 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 (Simulation) Interlude: Files and Directories Files And Directories The File System Interface Creating Files Reading And Writing Files Reading And Writing, But Not Sequentially Shared File Table Entries: fork() And dup() Writing Immediately With fsync() Renaming Files Getting Information About Files Removing Files Making Directories Reading Directories Deleting Directories Hard Links Symbolic Links Permission Bits And Access Control Lists Making And Mounting A File System Summary References Homework (Code) 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 (Simulation) 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 Homework (Simulation) 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 Homework (Simulation) 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 Completing The Solution: 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 Homework (Simulation) Flash-based SSDs Storing a Single Bit From Bits to Banks/Planes Basic Flash Operations Flash Performance And Reliability From Raw Flash to Flash-Based SSDs FTL Organization: A Bad Approach A Log-Structured FTL Garbage Collection Mapping Table Size Wear Leveling SSD Performance And Cost Summary References Homework (Simulation) 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 Homework (Simulation) Homework (Code) 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 Homework (Code) 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 Homework (Measurement) 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 Homework (Simulation) Summary Dialogue on Distribution General Index Asides Tips Cruces

توضیحاتی در مورد کتاب به زبان اصلی :


OSTEP ("oh step"), or the "the comet book", represents the culmination of years of teaching intro to operating systems to both undergraduates and graduates at the University of Wisconsin-Madison Computer Sciences department for nearly 20 years.The book is organized around three concepts fundamental to OS construction: virtualization (of CPU and memory), concurrency (locks and condition variables), and persistence (disks, RAIDS, and file systems).The material, if combined with serious project work and homeworks, will lead students to a deeper understanding and appreciation of modern OSes.The authors, Remzi and Andrea Arpaci-Dusseau, are both professors of Computer Sciences at the University of Wisconsin-Madison. They have been doing research in computer systems for over 20 years, working together since their first graduate operating systems class at U.C. Berkeley in 1993.Since that time, they have published over 100 papers on the performance and reliability of many aspects of modern computer systems, with a special focus on file and storage systems. Their work has been recognized with numerous best-paper awards, and some of their innovations can be found in the Linux and BSD operating systems today.



پست ها تصادفی