Modern Operating Systems


Andrew S. Tanenbaum - 1992
    What makes an operating system modern? According to author Andrew Tanenbaum, it is the awareness of high-demand computer applications--primarily in the areas of multimedia, parallel and distributed computing, and security. The development of faster and more advanced hardware has driven progress in software, including enhancements to the operating system. It is one thing to run an old operating system on current hardware, and another to effectively leverage current hardware to best serve modern software applications. If you don't believe it, install Windows 3.0 on a modern PC and try surfing the Internet or burning a CD. Readers familiar with Tanenbaum's previous text, Operating Systems, know the author is a great proponent of simple design and hands-on experimentation. His earlier book came bundled with the source code for an operating system called Minux, a simple variant of Unix and the platform used by Linus Torvalds to develop Linux. Although this book does not come with any source code, he illustrates many of his points with code fragments (C, usually with Unix system calls). The first half of Modern Operating Systems focuses on traditional operating systems concepts: processes, deadlocks, memory management, I/O, and file systems. There is nothing groundbreaking in these early chapters, but all topics are well covered, each including sections on current research and a set of student problems. It is enlightening to read Tanenbaum's explanations of the design decisions made by past operating systems gurus, including his view that additional research on the problem of deadlocks is impractical except for "keeping otherwise unemployed graph theorists off the streets." It is the second half of the book that differentiates itself from older operating systems texts. Here, each chapter describes an element of what constitutes a modern operating system--awareness of multimedia applications, multiple processors, computer networks, and a high level of security. The chapter on multimedia functionality focuses on such features as handling massive files and providing video-on-demand. Included in the discussion on multiprocessor platforms are clustered computers and distributed computing. Finally, the importance of security is discussed--a lively enumeration of the scores of ways operating systems can be vulnerable to attack, from password security to computer viruses and Internet worms. Included at the end of the book are case studies of two popular operating systems: Unix/Linux and Windows 2000. There is a bias toward the Unix/Linux approach, not surprising given the author's experience and academic bent, but this bias does not detract from Tanenbaum's analysis. Both operating systems are dissected, describing how each implements processes, file systems, memory management, and other operating system fundamentals. Tanenbaum's mantra is simple, accessible operating system design. Given that modern operating systems have extensive features, he is forced to reconcile physical size with simplicity. Toward this end, he makes frequent references to the Frederick Brooks classic The Mythical Man-Month for wisdom on managing large, complex software development projects. He finds both Windows 2000 and Unix/Linux guilty of being too complicated--with a particular skewering of Windows 2000 and its "mammoth Win32 API." A primary culprit is the attempt to make operating systems more "user-friendly," which Tanenbaum views as an excuse for bloated code. The solution is to have smart people, the smallest possible team, and well-defined interactions between various operating systems components. Future operating system design will benefit if the advice in this book is taken to heart. --Pete Ostenson

Numerical Analysis


Richard L. Burden - 1978
    Explaining how, why, and when the techniques can be expected to work, the Seventh Edition places an even greater emphasis on building readers' intuition to help them understand why the techniques presented work in general, and why, in some situations, they fail. Applied problems from diverse areas, such as engineering and physical, computer, and biological sciences, are provided so readers can understand how numerical methods are used in real-life situations. The Seventh Edition has been updated and now addresses the evolving use of technology, incorporating it whenever appropriate.

Computer Systems: A Programmer's Perspective


Randal E. Bryant - 2002
    Often, computer science and computer engineering curricula don't provide students with a concentrated and consistent introduction to the fundamental concepts that underlie all computer systems. Traditional computer organization and logic design courses cover some of this material, but they focus largely on hardware design. They provide students with little or no understanding of how important software components operate, how application programs use systems, or how system attributes affect the performance and correctness of application programs. - A more complete view of systems - Takes a broader view of systems than traditional computer organization books, covering aspects of computer design, operating systems, compilers, and networking, provides students with the understanding of how programs run on real systems. - Systems presented from a programmers perspective - Material is presented in such a way that it has clear benefit to application programmers, students learn how to use this knowledge to improve program performance and reliability. They also become more effective in program debugging, because t

OCA Java SE 7 Programmer I Certification Guide: Prepare for the 1ZO-803 exam


Mala Gupta - 2012
    You'll explore a wide range of important Java topics as you systematically learn how to pass the certification exam. Each chapter starts with a list of the exam objectives covered in that chapter. You'll find sample questions and exercises designed to reinforce key concepts and to prepare you for what you'll see in the real exam, along with numerous tips, notes, and visual aids throughout the book.About This BookTo earn the OCA Java SE 7 Programmer Certification, you need to know your Java inside and out, and to pass the exam it's good to understand the test itself. This book cracks open the questions, exercises, and expectations you'll face on the OCA exam so you'll be ready and confident on test day.OCA Java SE 7 Programmer I Certification Guide is a comprehensive guide to the 1Z0-803 exam. You'll explore important Java topics as you systematically learn what is required. Each chapter starts with a list of exam objectives, followed by sample questions and exercises designed to reinforce key concepts. It provides multiple ways to digest important techniques and concepts, including analogies, diagrams, flowcharts, and lots of well-commented code.Written for developers with a working knowledge of Java who want to earn the OCA Java SE 7 Programmer I Certification.Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.What's InsideCovers all exam topicsHands-on coding exercisesHow to avoid built-in traps and pitfallsAbout the AuthorMala Gupta has been training programmers to pass Java certification exams since 2006. She holds OCA Java SE7 Programmer I, SCWCD, and SCJP certifications.Table of ContentsIntroductionJava basicsWorking with Java data typesMethods and encapsulationString, StringBuilder, Arrays, and ArrayListFlow controlWorking with inheritanceException handlingFull mock exam

Compilers: Principles, Techniques, and Tools


Alfred V. Aho - 1986
    The authors present updated coverage of compilers based on research and techniques that have been developed in the field over the past few years. The book provides a thorough introduction to compiler design and covers topics such as context-free grammars, fine state machines, and syntax-directed translation.

Chemistry: An Introduction to General, Organic, and Biological Chemistry


Karen C. Timberlake - 1976
    Now in it's tenth edition, this text makes chemistry exciting to students by showing them why important concepts are relevant to their lives and future careers.

Abstract Algebra


I.N. Herstein - 1986
    Providing a concise introduction to abstract algebra, this work unfolds some of the fundamental systems with the aim of reaching applicable, significant results.

Discovering the Universe [with CD-ROM]


Neil F. Comins - 1984
    The accompanying CD-ROM features a special student version of the award-winning virtual planetarium software Starry Night plus software animations and videos, all illustrations from the text, interactive Q&A and exercises, and supplementary resources. Material can be updated periodically from the Freeman Web site. www.whfreeman.com/astronomy. There is an online study guide offering a CD-Web guide, chapter objectives, key terms, review questions, Starry Night observations exercises and online tutorials.

Research Methods for the Behavioral Sciences


Frederick J. Gravetter - 2002
    Gravetter, and co-author Lori-Ann B. Forzano have written a text for research methods that helps you see how interesting and exciting experimental and non-experimental research can be. Inviting and conversational, RESEARCH METHODS FOR THE BEHAVIORAL SCIENCES, Third Edition, leads you through the research process from start to finish. The text opens with tips and strategies for generating research ideas, moves to selecting measures and participants, and then offers an examination of research strategy and design. This step-by-step approach emphasizes the decisions researchers must make at each stage of the process. The authors avoid a "cookbook" approach to the facts by linking terminology with applied concepts; their "lecture in a book" style emphasizes discussion and explanation of topics. Each chapter ends with a set of exercises and activities.

Language, Proof and Logic: Text and CD


Jon Barwise - 1999
    The unique on-line grading services instantly grades solutions to hundred of computer exercises. It is specially devised to be used by philosophy instructors in a way that is useful to undergraduates of philosophy, computer science, mathematics, and linguistics.The book is a completely rewritten and much improved version of The Language of First-order Logic. Introductory material is presented in a more systematic and accessible fashion. Advanced chapters include proofs of soundness and completeness for propositional and predicate logic, as well as an accessible sketch of Godel's first incompleteness theorem. The book is appropriate for a wide range of courses, from first logic courses for undergraduates (philosophy, mathematics, and computer science) to a first graduate logic course.The package includes four pieces of software:Tarski's World 5.0, a new version of the popular program that teaches the basic first-order language and its semantics; Fitch, a natural deduction proof environment for giving and checking first-order proofs;Boole, a program that facilitates the construction and checking of truth tables and related notions (tautology, tautological consequence, etc.);Submit, a program that allows students to submit exercises done with the above programs to the Grade Grinder, the automatic grading service.Grade reports are returned to the student and, if requested, to the student's instructor, eliminating the need for tedious checking of homework. All programs are available for Windows, Macintosh and Linux systems.Instructors do not need to use the programs themselves in order to be able to take advantage of their pedagogical value. More about the software can be found at lpl.stanford.edu.The price of a new text/software package includes one Registration ID, which must be used each time work is submitted to the grading service. Once activated, the Registration ID is not transferable.

Personality Theories


Barbara Engler - 1979
    Each chapter focuses on one theory or group of theories, providing brief biographies that shed light on how the theories were formed.

Java SE 6: The Complete Reference


Herbert Schildt - 2006
    He includes information on Java Platform Standard Edition 6 (Java SE 6) and offers complete coverage of the Java language, its syntax, keywords, and fundamental programming principles.

Understanding Thermodynamics


Hendrick C. Van Ness - 1983
    Language is informal, examples are vivid and lively, and the perspectivie is fresh. Based on lectures delivered to engineering students, this work will also be valued by scientists, engineers, technicians, businessmen, anyone facing energy challenges of the future.

Artificial Intelligence: A Modern Approach


Stuart Russell - 1994
    The long-anticipated revision of this best-selling text offers the most comprehensive, up-to-date introduction to the theory and practice of artificial intelligence. *NEW-Nontechnical learning material-Accompanies each part of the book. *NEW-The Internet as a sample application for intelligent systems-Added in several places including logical agents, planning, and natural language. *NEW-Increased coverage of material - Includes expanded coverage of: default reasoning and truth maintenance systems, including multi-agent/distributed AI and game theory; probabilistic approaches to learning including EM; more detailed descriptions of probabilistic inference algorithms. *NEW-Updated and expanded exercises-75% of the exercises are revised, with 100 new exercises. *NEW-On-line Java software. *Makes it easy for students to do projects on the web using intelligent agents. *A unified, agent-based approach to AI-Organizes the material around the task of building intelligent agents. *Comprehensive, up-to-date coverage-Includes a unified view of the field organized around the rational decision making pa

Objects First with Java: A Practical Introduction Using BlueJ


David J. Barnes - 2002
    It takes a truly objects first approach to teaching problem solving using Java. These are complicated concepts so the book uses the development environment BlueJ to help the student's understanding. BlueJ has a strong emphasis on visualization and interaction techniques, and allows the students to manipulate objects and call methods as a first exercise. BlueJ is free and freely available, and has been developed specifically for teaching. The book is loaded with projects so that the student can really get a grip on actually solving problems; and it takes a spiral approach , introducing a topic in a simple context early on, then revisiting it later in the book to deepen understanding. It also comes with a CD containing JDK, BlueJ, a BlueJ tutorial and code for all the projects. The website contains style guide for all examples, PowerPoints for lecturers and also a Solutions Manual.