Computer Systems

Only available on StudyMode
  • Download(s) : 102
  • Published : February 13, 2013
Open Document
Text Preview
Computer Systems
A Programmer’s Perspective

This page intentionally left blank

Computer Systems
A Programmer’s Perspective

Randal E. Bryant
Carnegie Mellon University

David R. O’Hallaron
Carnegie Mellon University and Intel Labs

Prentice Hall
Boston Columbus Indianapolis New York San Francisco Upper Saddle River Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montreal Toronto Delhi Mexico City Sao Paulo Sydney Hong Kong Seoul Singapore Taipei Tokyo

Editorial Director: Marcia Horton Editor-in-Chief: Michael Hirsch Acquisitions Editor: Matt Goldstein Editorial Assistant: Chelsea Bell Director of Marketing: Margaret Waples Marketing Coordinator: Kathryn Ferranti Managing Editor: Jeff Holcomb Senior Manufacturing Buyer: Carol Melville Art Director: Linda Knowles Cover Designer: Elena Sidorova Image Interior Permission Coordinator: Richard Rodrigues Cover Art: © Randal E. Bryant and David R. O’Hallaron Media Producer: Katelyn Boller Project Management and Interior Design: Paul C. Anagnostopoulos, Windfall Software Composition: Joe Snowden, Coventry Composition Printer/Binder: Edwards Brothers Cover Printer: Lehigh-Phoenix Color/Hagerstown Copyright © 2011, 2003 by Randal E. Bryant and David R. O’Hallaron. All rights reserved. Manufactured in the United States of America. This publication is protected by Copyright, and permission should be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. To obtain permission(s) to use material from this work, please submit a written request to Pearson Education, Inc., Permissions Department, 501 Boylston Street, Suite 900, Boston, Massachusetts 02116. Many of the designations by manufacturers and seller to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed in initial caps or all caps. Library of Congress Cataloging-in-Publication Data Bryant, Randal. Computer systems : a programmer’s perspective / Randal E. Bryant, David R. O’Hallaron.—2nd ed. p. cm. Includes bibliographical references and index. ISBN-13: 978-0-13-610804-7 (alk. paper) ISBN-10: 0-13-610804-0 (alk. paper) 1. Computer systems. 2. Computers. 3. Telecommunication. 4. User interfaces (Computer systems) I. O’Hallaron, David Richard. II. Title. QA76.5.B795 2010 004—dc22 2009053083 10 9 8 7 6 5 4 3 2 1—EB—14 13 12 11 10

ISBN 10: 0-13-610804-0 ISBN 13: 978-0-13-610804-7

To the students and instructors of the 15-213 course at Carnegie Mellon University, for inspiring us to develop and refine the material for this book.

This page intentionally left blank

Contents

Preface

xix

About the Authors xxxiii

1
A Tour of Computer Systems
1.1 1.2 1.3 1.4

1
4

1.5 1.6 1.7

1.8 1.9

1.10

Information Is Bits + Context 3 Programs Are Translated by Other Programs into Different Forms It Pays to Understand How Compilation Systems Work 6 Processors Read and Interpret Instructions Stored in Memory 7 1.4.1 Hardware Organization of a System 7 1.4.2 Running the hello Program 10 Caches Matter 12 Storage Devices Form a Hierarchy 13 The Operating System Manages the Hardware 14 1.7.1 Processes 16 1.7.2 Threads 17 1.7.3 Virtual Memory 17 1.7.4 Files 19 Systems Communicate with Other Systems Using Networks 20 Important Themes 21 1.9.1 Concurrency and Parallelism 21 1.9.2 The Importance of Abstractions in Computer Systems 24 Summary 25 Bibliographic Notes 26

Part I

Program Structure and Execution

2
Representing and Manipulating Information 29
2.1 Information Storage 33 2.1.1 Hexadecimal Notation 34 2.1.2 Words 38 2.1.3 Data Sizes 38

vii

viii

Contents

2.2

2.3

2.4

2.5

2.1.4 Addressing and Byte Ordering 39 2.1.5 Representing Strings 46 2.1.6 Representing Code 47 2.1.7...
tracking img