Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 748 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
748
Dung lượng
8,32 MB
Nội dung
Understandingthe Linux
®
Virtual Memory Manager
BRUCE PERENS’ OPEN SOURCE SERIES
http://www.phptr.com/perens
♦ C++ GUI Programming with Qt 3
Jasmin Blanchette, Mark Summerfield
♦ Managing Linux Systems with Webmin: System
Administration and Module Development
Jamie Cameron
♦ UnderstandingtheLinuxVirtualMemory Manager
Mel Gorman
♦ Implementing CIFS: The Common Internet File System
Christopher R. Hertel
♦ Embedded Software Development with eCos
Anthony J. Massa
♦ Rapid Application Development with Mozilla
Nigel McFarlane
♦ TheLinux Development Platform: Configuring, Using, and
Maintaining a Complete Programming Environment
Rafeeq Ur Rehman, Christopher Paul
♦ Intrusion Detection Systems with Snort:
Advanced IDS Techniques with Snort, Apache, MySQL,
PHP, and ACID
Rafeeq Ur Rehman
♦ The Official Samba-3 HOWTO and Reference Guide
John H. Terpstra, Jelmer R. Ver nooij, Editors
♦ Samba-3 by Example: Practical Exercises to Successful
Deployment
John H. Terpstra
Understanding the Linux
®
Virtual Memory Manager
Mel Gorman
PRENTICE HALL
P
ROFESSIONAL TECHNICAL REFERENCE
UPPER SADDLE RIVER,NJ07458
WWW.PHPTR.COM
Library of Congress Cataloging-in-Publication Data
Gorman, Mel.
Understanding theLinuxVirtualMemoryManager / Mel Gorman.
p. cm.—(Bruce Perens’ Open source series)
Includes bibliographical references and index.
ISBN 0-13-145348-3
1. Linux. 2. Virtual computer systems. 3. Virtual storage (Computer science) I. Title. II.
Series.
QA76.9.V5G67 2004
005.4’3—dc22 2004043864
Editorial/production supervision: Jane Bonnell
Composition: TechBooks
Cover design director: Jerry Votta
Manufacturing buyer: Maura Zaldivar
Executive Editor: Mark L. Taub
Editorial assistant: Noreen Regina
Marketing manager: Dan DePasquale
c
2004 Pearson Education, Inc.
Publishing as Prentice Hall Professional Technical Reference
Upper Saddle River, New Jersey 07458
This material may be distributed only subject to the terms and conditions set forth in the Open Publication
License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/).
Prentice Hall PTR offers excellent discounts on this book when ordered in quantity for bulk purchases
or special sales. For more information, please contact: U.S. Corporate and Government Sales,
1-800-382-3419, corpsales@pearsontechgroup.com. For sales outside of the U.S., please contact:
International Sales, 1-317-581-3793, international@pearsontechgroup.com.
Company and product names mentioned herein are the trademarks or registered trademarks
of their respective owners.
Printed in the United States of America
First Printing
ISBN 0-13-145348-3
Pearson Education LTD.
Pearson Education Australia PTY, Limited
Pearson Education South Asia Pte. Ltd.
Pearson Education Asia Ltd.
Pearson Education Canada, Ltd.
Pearson Educación de Mexico, S.A. de C.V.
Pearson Education—Japan
Pearson Malaysia SDN BHD
To John O’Gorman (RIP) for teaching me the joys of operating
systems and for making memory management interesting.
To my parents and family for their continuous support of my work.
To Karen for making all the work seem worthwhile.
[...]... navigate The books that describe the operating system such as Understanding theLinux Kernel [BC00] [BC03] tend to cover the entire kernel rather than one topic with the notable exception of device drivers [RC01] These books, particularly Understanding theLinux Kernel, provide invaluable insight into kernel internals, but they miss the details that are specific to the VM and not of general interest But the. .. a pity to ignore them Therefore the book has the “What’s New in 2.6” sections To some extent, these sections presume you have read the rest of the book, so only glance at them during the first reading If you decide to start reading 2.5 and 2.6 VM code, the basic description of what to expect from the “What’s New” sections should greatly aid your understanding The sections based on the 2.6.0-test4 kernel... the minimum number of dependencies In the case of the VM, the best starting point is the Out Of Memory (OOM) manager in mm/oom kill.c It is a very gentle introduction to one corner of the VM where a process is selected to be killed in the event that memory in the system is low Because this function touches so many different aspects of the VM, it is covered last in this book The second subsystem to then... required The text of the book is contained on the CD in HTML, PDF and plain text formats so the reader can perform basic text searches if the index does not have the desired information If you are reading the first edition of the book, you may notice small differences between the CD version and the paper version due to printing deadlines, but the differences are minor Almost all the tools used to research the. .. questions to refer directly to the source with the “polite” acronym RTFS1 , or refer them to the kernel newbies mailing list (http://www.kernelnewbies.org) With the Linux VM manager, this used to be a suitable response because the time required to understand the VM could be measured in weeks Moreover, the books available devoted enough time to thememory management chapters to make the relatively small amount... use In the subsequent chapters, each part of the Linux VM implementation is discussed in detail, such as how memory is described in an architecture-independent manner, how processes manage their memory, how the specific allocators work and so on Each chapter will refer to other sources that describe the behavior of Linux, as well as covering in depth the implementation, the functions used and their call... suggested, it is common to request code to match the argument Many of the algorithms used in theVirtualMemory (VM) system were designed by theorists, but the implementations have now diverged considerably from the theory In part, Linux does follow the traditional development cycle of design to implementation, but changes made in reaction to how the system behaved in the “real world” and intuitive decisions... be knowledgeable about the patch they are sending, but will also pick up patches that affect their subsystem more readily Depending on the subsystem, the list of people they trust will be heavily influenced by the list of maintainers in the MAINTAINERS file The second major area of influence will be from the subsystem-specific mailing list if there is 7 http://www.kernel.org/pub /linux/ kernel/people/rusty/trivial/... devices require Memory within ZONE NORMAL is directly mapped by the kernel into the upper region of the linear address space, which is discussed further in Section 4.1 ZONE HIGHMEM is the remaining available memory in the system and is not directly mapped by the kernel With the x86, the zones are the following: ZONE DMA First 16MiB of memory 16MiB - 896MiB ZONE NORMAL ZONE HIGHMEM 896 MiB - End Many... and Pages the area reserved for the loaded kernel image in low memory machines Section 2.4 discusses struct pages in detail, and Section 3.7 discusses the global mem map array in detail The basic relationship between all these structs is illustrated in Figure 2.1 Because the amount of memory directly accessible by the kernel (ZONE NORMAL) is limited in size, Linux supports the concept of high memory, . of the algorithms used in the Virtual
Memory (VM) system were designed by theorists, but the implementations have now
diverged considerably from the theory Summerfield
♦ Managing Linux Systems with Webmin: System
Administration and Module Development
Jamie Cameron
♦ Understanding the Linux Virtual Memory Manager
Mel