实例介绍
是第二版,epub转为pdf格式的。非扫描。 其他需要的积分比较多。每一页的右上方有一个浅色的水印
Dperating Systems: Principles and Practice( Second Edition) Volume 1: Kernels and Processes by Thomas Anderson and michael dahlin Copyright THomas Anderson and Michael Dahlin, 2011-2015 ISBN978-0-98567353-6 Publisher:RecursiveBooks,Ltd.,http://recursivebooks.com Cover: Reflection lake. mt rainier Cover design Cameron Neat Illustrations Cameron neat Copy editors Sandy Kaplan, Whitney schmidt Ebook design Robin briggs Web design: Adam Anderson SUGGESTIONS, COMMENTS, and ERRORS. We welcome suggestions, comments and error reports byemailtosuggestions@recursivebooks.com Notice of rights. All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form by any means -electronic, mechanical, photocopying, recording,or otherwise- without the prior written permission of the publisher. For information on getting permissions for reprints and excerpts, contact permissions @recursivebooks com Notice of liability The information in this book is distributed on an "As Is"basis, without warranty Neither the authors nor recursive books shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information or instructions contained in this book or by the computer software and hardware products described in it Trademarks: Throughout this book trademarked names are used Rather than put a trademark symbol in every occurrence of a trademarked name, we state we are using the names only in an editorial fashion and to the benefit of the trademark owner with no intention of infringement of the trademark. all trademarks or service marks are the property of their respective owners To Robin, Sandra, Katya, and Adam Tom Anderson To Marla, Kelly, and Keith Mike dahli Contents reface I Kernels and processes 1 Introduction 1 What Is An Operating System? 1. 1. 1 Resource Sharing: Operating System as Referee 1.1.2 Masking Limitations: Operating System as Illusionist 1.1.3 Providing Common Services: Operating System as glue 1.1. 4 Operating System Design Patterns 1.2 Operating System Evaluation 1.2.1 Reliability and availability 1.2.2 Security 1.2.3 Portab 1.2.4 Performance 1.2.5 Adoption 1.2.6 Design Tradeoffs 1.3 Operating Systems: Past, Present, and Future 1.3. 1 Impact of Technology Trends 1.3.2 Early Operating Systems 1.3.3 Multi-USer Operating Systems 1.3. 4 Time-Sharing Operating Systems 3.5 Modern Operating systems 1.3.6 Future Operating Systems Exercises 2 The Kernel abstraction 2.1 The process abstraction 2.2 Dual-Mode Operation 2.2. 1 Privileged Instructions 2. 2. 2 Memory protection 2.2.3 Timer Interrupts 2.3 Types of Mode Transfer 2.3.1 User to Kernel mode 23.2 Kernel to user mode 2. 4 Implementing safe mode Transfer 2. 4.1 Interrupt Vector Table 2.4.2 Interrupt Stack 2.4.3 Two Stacks per Process 2. 4.4 Interrupt Masking 2.4.5 Hardware Support for Saving and Restoring Registers 2.5 Putting It All Together: x86 Mode Transfer 2.6 Implementing Secure System Calls 2.7 Starting a New Process 2.8 Implementing upcalls 2.9 Case Study: Booting an Operating System Kernel 2.10 Case Study: Virtual Machines 2.11 Summary and Future Directions exercises 3 The Programming Interface 3.1 Process management 3.1.1 Windows Process Management 3.1.2 UNIX Process Management 3.2 Input/Output 3.3 Case Study: Implementing a Shell 3.4 Case Study: Interprocess Communication 3.4.1 Producer-Consumer communication 3.4.2 Client-Server Communication 3.5 Operating System Structure 3.5.1 Monolithic Kernels 3.5.2 Microkernel 3.6 Summary and Future Directions Exercises ll: Concurrency 4. Concurrency and threads 5. Synchronizing Access to Shared objects 6. Multi-Object Synchronization 7. Scheduling III: Memory Management 8. Address translation 9. Caching and Virtual Memory 10. Advanced Memory Management N: Persistent storage 11. File Systems: Introduction and overview 12. Storage devices 13. Files and directories 14. Reliable Storage References Glossar About the authors Preface Preface to the ebook edition Operating Systems: Principles and Practice is a textbook for a first course in undergraduate operating systems In use at over 50 colleges and universities worldwide, this textbook provides A path for students to understand high level concepts all the way down to working code Extensive worked examples integrated throughout the text provide students concrete guidance for completing homework assignments A focus on up-to-date industry technologies and practice The eBook edition is split into four volumes that together contain exactly the same material as the(2nd) print edition of Operating Systems: Principles and Practice, reformatted for various screen sizes. Each volume is self-contained and can be used as a standalone text, e.g., at schools that teach operating systems topics across multiple courses Volume 1: Kernels and processes. This volume contains Chapters 1-3 of the print edition. We describe the essential steps needed to isolate programs to prevent buggy applications and computer viruses from crashing or taking control of your system Volume 2: Concurrency. This volume contains Chapters 4-7 of the print edition. We provide a concrete methodology for writing correct concurrent programs that is in widespread use in industry, and we explain the mechanisms for context switching and synchronization from fundamental concepts down to assembly code Volume 3: Memory Management. This volume contains Chapters 8-10 of the print edition. We explain both the theory and mechanisms behind 64-bit address space translation, demand paging, and virtual machines Volume 4: Persistent Storage. This volume contains Chapters 11-14 of the print edition. We explain the technologies underlying modern extent-based, journaling, and versioning file systems A more detailed description of each chapter is given in the preface to the print edition Preface to the print edition Why We wrote This Book Many of our students tell us that operating systems was the best course they took as an undergraduate and also the most important for their careers we are not alone many of our colleagues report receiving similar feedback from their students Part of the excitement is that the core ideas in a modern operating system-protection, concurrency, virtualization, resource allocation, and reliable storage -have become widely applied throughout computer science, not just operating system kernels. Whether you get a job at Facebook, Google, Microsoft, or any other leading-edge technology company, it is impossible to build resilient, secure, and flexible computer systems without the ability to apply operating systems concepts in a variety of settings. In a modern world nearly everything a user does is distributed nearly every computer is multi core, security threats abound, and many applications such as web browsers have become mini-operating systems in their own right It should be no surprise that for many computer science students, an undergraduate operating systems class has become a de facto requirement: a ticket to an internship and eventually to a full-time position Unfortunately, many operating systems textbooks are still stuck in the past, failing to keep pace with rapid technological change. Several widely-used books were initially written in the mid-1980s, and they often act as if technology stopped at that point. Even when new topics are added they are treated as an afterthought, without pruning material that has become less important. The result are textbooks that are very long, very expensive, and yet fail to provide students more than a superficial understanding of the material Our view is that operating systems have changed dramatically over the past twenty years, and that justifies a fresh look at both how the material is taught and what is taught. The pace of innovation in operating systems has, if anything, increased over the past few years, with the introduction of the iOS and android operating systems for smartphones the shift to multicore computers and the advent of cloud computing To prepare students for this new world, we believe students need three things to succeed at understanding operating systems at a deep level Concepts and code. We believe it is important to teach students both principles and practice, concepts and implementation, rather than either alone. This textbook takes concepts all the way down to the level of working code, e.g. how a context switch works in assembly code. In our experience, this is the only way students will really understand and master the material. All of the code in this book is available from the author's web site, ospp. washington. edu Extensive worked examples In our view, students need to be able to apply concepts in practice o that end, we have integrated a large number of example exercises, along with solutions throughout the text. we uses these exercises extensively in our own lectures, and we have found them essential to challenging students to go beyond a superficial understanding Industry practice. To show students how to apply operating systems concepts in a variety of settings, we use detailed, concrete examples from Facebook, Google, Microsoft, Apple, and other leading-edge technology companies throughout the textbook Because operating systems concepts are important in a wide range of computer systems we take these examples not only from traditional operating systems like Linux, Windows, and os X but also from other systems that need to solve problems of protection, concurrency, virtualization, resource allocation, and reliable storage like databases, web browsers, web servers, mobile applications, and search engines Taking a fresh perspective on what students need to know to apply operating systems concepts in practice has led us to innovate in every major topic covered in an undergraduate-level course Kernels and Processes. The safe execution of untrusted code has become central to many types of computer systems, from web browsers to virtual machines to operating systems. Yet existing textbooks treat protection as a side effect of UNIX processes, as if they are synonyms. Instead, we start from first principles: what are the minimum requirements for process isolation, how can systems implement process isolation efficiently, and what do students need to know to implement functions correctly when the caller is potentially malicious? Concurrency. with the advent of multi-core architectures, most students today will spend much of their careers writing concurrent code. Existing textbooks provide a blizzard of concurrency alternatives, most of which were abandoned decades ago as impractical. Instead we focus on providing students a single methodology based on Mesa monitors that will enable students to write correct concurrent programs-a methodology that is by far the dominant approach used in industry Memory Management. Even as demand-paging has become less important, virtualization has become even more important to modern computer systems. We provide a deep treatment of address translation hardware, sparse address spaces, TLBS, and on-chip caches. We then use those concepts as a springboard for describing virtual machines and related concepts such as checkpointing and copy-on-write Persistent Storage. Reliable storage in the presence of failures is central to the design of most computer systems. Existing textbooks survey the history of file systems, spending most of their time ad hoc approaches to failure recovery and de-fragmentation. Yet no modern file systems still use those ad hoc approaches. Instead, our focus is on how file systems use extents, journaling, copy-on-write, and raid to achieve both high performance and high reliability Intended audience Operating Systems: Principles and Practice is a textbook for a first course in undergraduate operating systems. We believe operating systems should be taken as early as possible in an undergraduate's course of study; many students use the course as a springboard to an internship and a career. to that end, we have designed the textbook to assume minimal pre-requisites specifically, students should have taken a data structures course and one on computer organization. The code examples are written in a combination of x86 assembly, C, and C++. In particular, we have designed the book to interface well with the bryant and o'halloran textbook. we review and cover in much more depth the material from the second half of that book We should note what this textbook is not: it is not intended to teach the api or internals of any specific from these systems, but our focus is on the shared problems these systems face and the technologies in operating system, such as Linux, Android, Windows 8, OSX, or iOS. We use many concrete example these systems use to solve those problems A Guide to instructors One of our goals is enable instructors to choose an appropriate level of depth for each course topic Each chapter begins at a conceptual level, with implementation details and the more advanced material towards the end. The more advanced material can be omitted without compromising the ability of students to follow later material. No single-quarter or single-semester course is likely to be able to cover 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论