How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
This practical book includes a tutorial of the entire set of Windows and .NET APIs required to write concurrent programs. Because so much of the threading and synchronization features of the platform are Windows-general, the author, Joe Duffy, focuses first on the general behavior and then on the API details of native and managed code. Interspersed among the tutorial are many difficult-to-discover, useful insights, and internal details about how things work.
W. Richard Stevens, Bill Fenner, Andrew M. Rudoff
* *Previous editions sold over 160,000 units! Second Edition (1998) sold over 53,000 in retail alone! *Updates coverage of programming standards, debugging techniques, and covers Operating Systems including Red Hat 9, Solaris 9, HP-UX, Free BSD 4.8/5.0, AIX 5.x, and Mac OS X. *Bill Fenner (AT/T Labs) and Andrew Rudoff (SUN) carry on the tradition of this great work.
Maurice Herlihy, Nir Shavit
Multiprocessor machines, or Multicores, as they are known in the industry, are quickly taking over every aspect of computing. This volume provides a presentation of the guiding principles and algorithmic techniques necessary for effective multiprocessor programming.
W. Richard Stevens, Gary R. Wright
This book's innovative approach helps readers at all levels to truly understand how TCP/IP really works. Rather than just describing what the RFCs say the protocol suite should do, TCP/IP Illustrated uses a popular diagnostic tool so you can actually watch the protocols in action. By forcing certain conditions to occur (connection establishment, timeout and retransmission, fragmentation, etc.) and watching the results, Rich Stevens provides insight into how the protocols work, and why certain design decisions were made. Written in his well-known style with lots of examples, Stevens shows how current, popular TCP/IP implementations operate (SunOS 4.1.3, Solaris 2.2, System V Release 4, BSD/386, AIX 3.2.2, and 4.4 BSD), and relates these real-world implementations to the RFC standards.
With the new C++ Standard and Technical Report 2 (TR2), multi-threading is coming to C++ in a big way. TR2 will provide higher-level synchronization facilities that allow for a much greater level of abstraction, and make programming multi-threaded applications simpler and safer. Concurrent programming is required if programmers are to take advantage of the multi-core microprocessors increasingly available from Intel and others. The new standard for C++ has extensions to the language that make concurrent programming more accessible to regular developers. As a guide and reference to the new concurrency features in the upcoming C++ Standard and TR2, this book is invaluable for existing programmers familiar with writing multi-threaded code in C++ using platform-specific APIs, or in other languages, as well as C++ programmers who have never written multithreaded code before.
Andrew S. Tanenbaum
The widely anticipated revision of this worldwide best-seller incorporates the latest developments in operating systems technologies. The Third Edition includes up-to-date materials on relevant operating systems such as Linux, Windows, and embedded real-time and multimedia systems. Includes new and updated coverage of multimedia operating systems, multiprocessors, virtual machines, and antivirus software. Covers internal workings of Windows Vista (Ch. 11); unique even for current publications. Provides information on current research based Tanenbaum's experiences as an operating systems researcher. A useful reference for programmers.
The Linux Programming Interface is the definitive guide to the Linux and UNIX programming interface—the interface employed by nearly every application that runs on a Linux or UNIX system. In this authoritative work, Linux programming expert Michael Kerrisk provides detailed descriptions of the system calls and library functions that you need in order to master the craft of system programming, and accompanies his explanations with clear, complete example programs. You'll find descriptions of over 500 system calls and library functions, and more than 200 example programs, 88 tables, and 115 diagrams. You'll learn how to: * Read and write files efficiently * Use signals, clocks, and timers * Create processes and execute programs * Write secure programs * Write multithreaded programs using POSIX threads * Build and use shared libraries * Perform interprocess communication using pipes, message queues, shared memory, and semaphores * Write network applications with the sockets API While The Linux Programming Interface covers a wealth of Linux-specific features, including epoll, inotify, and the /proc file system, its emphasis on UNIX standards (POSIX.1-2001/SUSv3 and POSIX.1-2008/SUSv4) makes it equally valuable to programmers working on other UNIX platforms. The Linux Programming Interface is the most comprehensive single-volume work on the Linux and UNIX programming interface, and a book that's destined to become a new classic.
David R. Butenhof
Threads are the key to faster, more efficient, and easier-to-maintain operating systems. Butenhof, a recognized authority on POSIX threads, tells how to use Pthreads in the real world, making efficient and portable applications. A unique feature of the book is the many examples which consist of simple instructive programs. The code is expansive and well-annotated. Key chapters are devoted to advanced threaded programming, real code (including read-write locks), and hints to avoid bad code and performance problems. Programming in POSIX Threads provides a solid general understanding of threaded programming models, concurrency, synchronization, and scheduling--need to know information for learning to think in terms of threaded concepts.
John L. Hennessy, David A. Patterson
This best-selling title, considered for over a decade to be essential reading for every serious student and practitioner of computer design, has been updated throughout to address the most important trends facing computer designers today. In this edition, the authors bring their trademark method of quantitative analysis not only to high performance desktop machine design, but also to the design of embedded and server systems. They have illustrated their principles with designs from all three of these domains, including examples from consumer electronics, multimedia and web technologies, and high performance computing. The book retains its highly rated features: Fallacies and Pitfalls, which share the hard-won lessons of real designers; Historical Perspectives, which provide a deeper look at computer design history; Putting it all Together, which present a design example that illustrates the principles of the chapter; Worked Examples, which challenge the reader to apply the concepts, theories and methods in smaller scale problems; and Cross-Cutting Issues, which show how the ideas covered in one chapter interact with those presented in others. In addition, a new feature, Another View, presents brief design examples in one of the three domains other than the one chosen for Putting It All Together. The authors present a new organization of the material as well, reducing the overlap with their other text, Computer Organization and Design: A Hardware/Software Approach 2/e, and offering more in-depth treatment of advanced topics in multithreading, instruction level parallelism, VLIW architectures, memory hierarchies, storage devices and network technologies. Also new to this edition, is the adoption of the MIPS 64 as the instruction set architecture. In addition to several online appendixes, two new appendixes will be printed in the book: one contains a complete review of the basic concepts of pipelining, the other provides solutions a selection of the exercises. Both will be invaluable to the student or professional learning on her own or in the classroom. Hennessy and Patterson continue to focus on fundamental techniques for designing real machines and for maximizing their cost/performance. * Presents state-of-the-art design examples including: * IA-64 architecture and its first implementation, the Itanium * Pipeline designs for Pentium III and Pentium IV * The cluster that runs the Google search engine * EMC storage systems and their performance * Sony Playstation 2 * Infiniband, a new storage area and system area network * SunFire 6800 multiprocessor server and its processor the UltraSPARC III * Trimedia TM32 media processor and the Transmeta Crusoe processor * Examines quantitative performance analysis in the commercial server market and the embedded market, as well as the traditional desktop market. Updates all the examples and figures with the most recent benchmarks, such as SPEC 2000. * Expands coverage of instruction sets to include descriptions of digital signal processors, media processors, and multimedia extensions to desktop processors. * Analyzes capacity, cost, and performance of disks over two decades. Surveys the role of clusters in scientific computing and commercial computing. * Presents a survey, taxonomy, and the benchmarks of errors and failures in computer systems. * Presents detailed descriptions of the design of storage systems and of clusters. * Surveys memory hierarchies in modern microprocessors and the key parameters of modern disks. * Presents a glossary of networking terms.
Chet Haase, Romain Guy
This book is about building better, more effective and cooler desktop application using Java tools. Graphical effects, especially animated ones, can be overdone creating an application that would overload the senses. The authors show how to enrich the graphics and animate effectively.
Maurice Herlihy, Nir Shavit
Revised and updated with improvements conceived in parallel programming courses, The Art of Multiprocessor Programming is an authoritative guide to multicore programming. It introduces a higher level set of software development skills than that needed for efficient single-core programming. This book provides comprehensive coverage of the new principles, algorithms, and tools necessary for effective multiprocessor programming. Students and professionals alike will benefit from thorough coverage of key multiprocessor programming issues. This revised edition incorporates much-demanded updates throughout the book, based on feedback and corrections reported from classrooms since 2008 Learn the fundamentals of programming multiple threads accessing shared memory Explore mainstream concurrent data structures and the key elements of their design, as well as synchronization techniques from simple locks to transactional memory systems Visit the companion site and download source code, example Java programs, and materials to support and enhance the learning experience
W. Richard Stevens
Well-implemented interprocess communications (IPC) are key to the performance of virtually every non-trivial UNIX program. This book provides coverage of various forms of IPC, including message passing, synchronization, shared memory, and Remote Procedure Calls (RPC). It offers a basic introduction to IPC and the problems it is intended to solve.
Y. Daniel Liang
Introduction to Java Programming, Comprehensive, 8e, features comprehensive coverage ideal for a one-, two-, or three-semester CS1 course sequence. Regardless of major, students will be able to grasp concepts of problem-solving and programming — thanks to Liang's fundamentals-first approach, students learn critical problem solving skills and core constructs before object-oriented programming. Liang's approach has been extended to application-rich programming examples, which go beyond the traditional math-based problems found in most texts. Students are introduced to topics like control statements, methods, and arrays before learning to create classes. Later chapters introduce advanced topics including graphical user interface, exception handling, I/O, and data structures. Small, simple examples demonstrate concepts and techniques while longer examples are presented in case studies with overall discussions and thorough line-by-line explanations. Increased data structures chapters make the Eighth Edition ideal for a full course on data structures.
Game Programming Gems 6 is the latest ALL new volume in this critically acclaimed series. Filled with insights from game industry pros, this volume provides faster, better, tools and techniques for making the best games possible. These techniques have been used in today?s most successful games and will help solve many of the challenges facing the development team. Not only do they help the team avoid redundancy and save valuable programming hours, but they push the team to approach problems from a new perspective and develop their own tools to prevent future issues. As with all previous volumes, the core areas of graphics, programming, networking, AI, physics, and audio are thoroughly covered and in this volume, new coverage of game testing, wireless gaming, and scripting has also been added. Game Programming Gems 6 is an indispensable resource that every developer must have on their shelves!
This book offers an up-to-date, in-depth, and broad-based exploration of the latest advances in UNIX-based operating systems. Focusing on the design and implementation of the operating system itself, this text compares and analyzes the alternatives offered by several important UNIX variants, and covers several advanced subjects, such as multi-processors and threads.
Gregory R. Andrews
Foundations of Multithreaded, Parallel, and Distributed Programming covers, and then applies, the core concepts and techniques needed for an introductory course in this subject. Its emphasis is on the practice and application of parallel systems, using real-world examples throughout. Greg Andrews teaches the fundamental concepts of multithreaded, parallel and distributed computing and relates them to the implementation and performance processes. He presents the appropriate breadth of topics and supports these discussions with an emphasis on performance.Features Emphasizes how to solve problems, with correctness the primary concern and performance an important, but secondary, concern Includes a number of case studies which cover such topics as pthreads, MPI, and OpenMP libraries, as well as programming languages like Java, Ada, high performance Fortran, Linda, Occam, and SR Provides examples using Java syntax and discusses how Java deals with monitors, sockets, and remote method invocation Covers current programming techniques such as semaphores, locks, barriers, monitors, message passing, and remote invocation Concrete examples are executed with complete programs, both shared and distributed Sample applications include scientific computing and distributed systems 0201357526B04062001
Kathy Sierra, Bert Bates
This text treats Java as a software engineering language rather than a means of developing simple applets. It aims to enable programmers to find out more about how to use concurrency in the design of classes, applets and applications to create multi-threaded applications. Features of the book include integrated surveys and tutorials on concurrency and Java programming constructs, and reusable components and micro-architectures solving common software construction problems.