Principles of Computer System Design


Book Description

Principles of Computer System Design is the first textbook to take a principles-based approach to the computer system design. It identifies, examines, and illustrates fundamental concepts in computer system design that are common across operating systems, networks, database systems, distributed systems, programming languages, software engineering, security, fault tolerance, and architecture. Through carefully analyzed case studies from each of these disciplines, it demonstrates how to apply these concepts to tackle practical system design problems. To support the focus on design, the text identifies and explains abstractions that have proven successful in practice such as remote procedure call, client/service organization, file systems, data integrity, consistency, and authenticated messages. Most computer systems are built using a handful of such abstractions. The text describes how these abstractions are implemented, demonstrates how they are used in different systems, and prepares the reader to apply them in future designs. The book is recommended for junior and senior undergraduate students in Operating Systems, Distributed Systems, Distributed Operating Systems and/or Computer Systems Design courses; and professional computer systems designers. Concepts of computer system design guided by fundamental principles Cross-cutting approach that identifies abstractions common to networking, operating systems, transaction systems, distributed systems, architecture, and software engineering Case studies that make the abstractions real: naming (DNS and the URL); file systems (the UNIX file system); clients and services (NFS); virtualization (virtual machines); scheduling (disk arms); security (TLS) Numerous pseudocode fragments that provide concrete examples of abstract concepts Extensive support. The authors and MIT OpenCourseWare provide on-line, free of charge, open educational resources, including additional chapters, course syllabi, board layouts and slides, lecture videos, and an archive of lecture schedules, class assignments, and design projects




Software Metrics


Book Description







Software Psychology


Book Description

Motivation for a psychological approach; Research methods; Programming as human performance; Programming style; Software quality evaluation; Team organizations and group processes; Database systems and data models; Database query and manipulation languages; Natural language; Interactive interface issues; Designing interactive systems.




Foundations of Computing


Book Description

Written for professionals learning the field of discrete mathematics, this book provides the necessary foundations of computer science without requiring excessive mathematical prerequisites. Using a balanced approach of theory and examples, software engineers will find it a refreshing treatment of applications in programming.










Computer Systems


Book Description

Computer Architecture/Software Engineering







Computer Systems Development


Book Description

This book outlines the entire history of computer systems development. Based on surveys from Europe, Japan, Australia, and the United States, it emphasizes the rising concern with user relations as a major shift in systems development.