Operating systems : internals and design principles / William Stallings. Operating
systems ... Operating systems : a modern perspective / Gary J. Nutt. Operating ...
BaseTech / Survey of Operating Systems / Holcombe, Holcome, and Smith /
222511-4 / Blind Folio 1. Understanding microcomputer operating systems (OSs)
is ...
Jan 21, 2009 ... Basic concepts of computer architecture ... “Distributed Systems: Concepts and
Design (4th ... edition)” by George Coulouris, Jean Dollimore,.
This paper is intended as an introduction to distributed operating systems, and
especially to current university research about them. After a .... model. In a time-
sharing system, whether with one or more processors, the ratio of. CPUs to ...
Not all operating systems are on a single CPU s. The nature of the distribution
varies widely s. Thus, so do the possible solutions s. Let's look at such computers
, ...
cycles, and so on; distributed computing. Since the late 1970's distributed
computing, and more specifically distributed operating systems research, has
yielded ...
Distributed operating systems have many aspects in common with centralized ....
In a time-sharing system, whether ..... ple manual load balancing is possible.
Andrew S. Tanenbaum. 1. INTRODUCTION. With the explosive growth in
modems, LANs (local-area networks) and WANS (wide-area net- works),
especially the ...
microkernel-based systems can approach the per- formance of traditional .... unsigned int a; unsigned int b; .... The Corba Reference Guide: Understanding the ...
2004 Deitel & Associates, Inc. All rights reserved. Chapter 1 – Introduction to
Operating Systems. Outline. 1.1. Introduction. 1.2. What Is an Operating System?
The exercises in this book assume a basic knowledge of both of ... The Windows
XP operating system is a dynamic and continually changing operating ..... Issuing
ls after the mkdir shows the newly created download directory, as shown in blue
.... p
you do not connect it to a production network. Several ... commands and actions
you need to know for the Security Essentials Boot Camp. This document ...
2Von Neumann was one of the early pioneers of computing systems. He also did
... problem. The details within the chapter, of course, present the solution,.
Distributed Operating Systems: Theoretical Foundations. Neeraj Mittal.
Department of Computer Science. The University of Texas at Dallas neerajm@
utdallas.
Distributed Operating Systems. ▫ Users not aware of multiplicity of machines. ○
Access to remote resources similar to access to local resources.
4 Trends in Distributed Systems: Resuming & Foreseeing. Andrea Omicini ... [
Coulouris et al., 2012]) according to the personal view of the teacher of this
course.
Objectives. Study conceptual and practical aspects of distributed systems. ○.
Client-server model. ○. Distributed protocols. ○. Synchronous. ○.
Asynchronous.
2004 Deitel & Associates, Inc. All rights reserved. Chapter 1 – Introduction to
Operating Systems. Outline. 1.1. Introduction. 1.2. What Is an Operating System?
Introduction and History of Operating Systems. ◦ What is an Operating System ...
Enrollment policy: priority to graduating computer science seniors. CMPSCI 377:
...
Faculty of Computer Science / Institute of Systems Architecture / Operating
Systems. SYSTEMS PROGRAMMING. C++ INTRODUCTION. Alexander Warg ...
UNIT-1. Introduction to Distributed Systems: Why do we develop distributed
systems? • availability of .... 3) some low-level process management and
scheduling.
Fundamental principles of operating systems: process synchronization,
deadlocks, ... Abraham Silberschatz, Peter B. Galvin and Greg Gagne, Operating
System ...
Survey: Distributed Operating Systems Introduction 1 Network ...
A. Arpaci-Dusseau. Department of Computer Science. CS739: Distributed
Systems. University of Wisconsin, Madison. Survey: Distributed Operating
Systems.
A. Arpaci-Dusseau CS739: Distributed Systems
Department of Computer Science University of Wisconsin, Madison
Survey: Distributed Operating Systems Introduction • What is a distributed operating system? • What were the goals of distributed systems (in 1980s)? • What were the defined challenges of distributed systems (in 1980s)? • What were the (unstated) assumptions made about the computing environment? 1980s
Modern and P2P
Scale: Node similarity: Network: Membership: Discuss the following issues in terms of how distributed systems will have to adapt when scale, similarity, network, and membership change in “modern” systems.
1 Network Operating Systems • How is a network operating system different than a distributed OS? • How are network OSes criticized here? • Are the criticisms of network systems more or less applicable given “modern” environments?
2 Design Issues 2.1 Communication Primitives • Message Passing: Early distributed systems built specialized communication primitives; for example, one could choose between reliable vs. unreliable and blocking vs. nonblocking and buffered vs. unbuffered. Why? Should modern systems make a different choice? • Interesting example of specialization presented in Case Studies: Amoeba uses unbuffered messages; message dropped if receiver is not ready to receive; sender retries message later if not acknolwedged. Why might this be okay between a client and a multi-threaded server? Would this be more or less reasonable in a modern system? • Error Handling: The ability to handle client and server crashes is important for availability and reliability. What is nice about protocols with idempotent operations? • Implementation Issues: When implementing systems, it has been found to be important to avoid copies, amortize startup costs of sending small messages, avoid extra round-trips. Any change for modern systems?
2.2 Naming and Protection • Name Servers: Why is a name server needed in a distributed system? This paper suggests a number of approaches in which a name server can be structured. What are they? How well will these approaches work in a modern system? 1
2.3 Resource Management • Processor Allocation: Nodes can be managed in a hierarchical k-way tree. Why does this work well for a classic distributed system? How well does this approach work for a modern system? • Scheduling: When time-sharing communicating processes across multiple nodes, it is important to coschedule the communicating processes. What happens if processes are not coscheduled? In a classic system, how would this coordinated context-switch occur? How well will this work in a modern system? Is this as important of a problem? • Load Balancing: How processes are allocated to nodes depends upon one’s metrics. Why might one want communicating processes to be placed on the same node? Why on different nodes? What considerations are most important currently? • Heuristic Load Balancing: After a process computes its own load, how can the others find out this load? Which works in modern systems? • Heuristic Load Balancing: Why is it so much harder to migrate a running job, compared to perform remote execution of a newly creately job? Why would someone prefer migration?
2.4 Fault Tolerance • What is the difference between reliability and availability? • Redundancy Techniques: One way to make a system reliable is through redundancy, in which multiple nodes perform the same computation after ensuring that each has received the same message; if a node crashes, the others can continue. What are the drawbacks of this approach? • Redundancy Techniques: A variant of this approach performs a periodic checkpoint of each process, records each message on another node, and then plays back the messages against the checkpoint to recover a failed process. What are the pros and cons of this approach relative to the previous one? • Redundancy Techniques: N-version programming helps avoid software bugs (in addition to hardware faults) by running different versions of the program on different nodes. Will this work better or worse now?
2.5 Services • Server Structure: What is the problem with a main loop of a server looking as follows: while (1) { getRequest(); doRequest(); sendReply(); } What is the proposed solution? Will it work for modern systems? • Protection: Why is authentication more complex in a distributed system than on a single machine? How can encryption be used to make a capability? • File Service Caching: Caching on clients greatly improves performance, but what problem does it raise? What are some of the different approaches for (at least partially) fixing this problem? • File System Reliability: Data can be made more reliable by making muliple copies of it on different disks. For what type of workloads can this improve performance? For type of workload does it raise new complexities? How do the issues change for modern systems? • Time Service: Why is it impossible to have a single global time in a distributed system?