Homework #1 (100 Points)
Due 03:00pm on Tuesday 01/31/2012 through http:/blackboard.bu.edu (and
gsubmit of code).
Feel free to make assumptions, if you feel that such assumptions are justified or necessary. Please state
your assumptions clearly. Unreasona
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 17
A Bird's Eye View of System Abstractions
In this chapter, we will present a bird-eyes view of computer organization in order to understand how issues of concurrency and synchronization a
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 13
Real-Time Scheduling
In most of the systems we have been concerned with so far in this course, it was assumed that the "correctness" of the system's response to a request was independent
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 13
Concurrency and Synchronization: Two-Process Mutual Exclusion
So far our consideration of resource management has made a fundamental assumption-that the processes competing for a shared
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 5
Concurrency and Synchronization: N-Process Mutual Exclusion
Recall that we solved the 2-process mutual exclusion problem using Dekkers and Petersons algorithms. We now turn our attention
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 9
Concurrency and Synchronization: Basic Primitives and Constructs
So far, we have established that hardware approaches relying on disabling interrupts do not solve the mutual exclusion pro
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 12
Concurrency and Synchronization: Deadlocks and Starvation
As we have observed when discussing the dining philosophers problem, deadlock and thus the possibility of starvation should be a
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 9
The Concept of Transactions
The notion of a "transaction" is a recurring one when building computing systems in general, and database systems in particular. Consider, for example, the tas
Computer Science
Computer Speedup
Computer Science
CS-350
Distributed Computing
Azer Bestavros
Computer Science Department Boston University
Moores Law: The density of transistors on a chip doubles every 18 months, for the same cost (1965)
Copyright Azer
Computer Science
Distributed Systems
Computer Science
CS-350
Distributed Synchronization
Azer Bestavros
Computer Science Department Boston University
Examples:
Client-Server Systems
Distributed File systems (e.g. NFS, AFS, etc.) Web Applications (e.g. HT
Computer Science
Clock Synchronization: Example Impossible to guarantee that crystals in different computers all run at exactly the same frequency clock skew clock drifts problems!
Computer Science
CS-350
Clock Synchronization
Azer Bestavros
Computer Scie
CS-350: Fundamentals of Computing Systems
Lecture Notes
Page 1 of 10
Sampling and Confidence Intervals
Sampling
Assuming that we know the distribution of a random variable, how do we determine its
parameters (namely, the mean and variance)? For example, a
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 11
Stateful Resource Scheduling
So far, we have only examined scheduling approaches for state-less resources. Recall that we defined such resources as those whose service time (for a given
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 10
Resource Management Basics (continued)
So far we have only examined one non-preemptive scheduler-namely FCFS-and we have noted that it was not "friendly" to short jobs. One approach we h
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 13
Processes as Resource Consumers
Sources of Concurrency in a Computing System
As we alluded to before, the management of concurrency (coordination, resource management, synchronization, e
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 14
Performance Metrics of Computing Systems
Introduction
Performance metrics of computing systems are needed in order to evaluate the goodness of a particular solution (architecture, protoc
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 7
Performance Evaluation of Computing Systems
Introduction
The various performance metrics we have examined so far enable us to speak of many aspects of a systems performance (e.g., utiliza
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 15
A Basic Introduction to Probability
The study of probability is all about the study of chancethe quantification of the chance or the likelihood that something (e.g. an event, an outcome)
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 13
Probability Distributions as Modeling Tools
Recall that a probability distribution provides a characterization of a random variableby enabling us to calculate the probability of a random
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 9
Elementary Queuing Analysis
Notation In discussing various server queues, it will be necessary to talk about various random variables associated with these queues. The Figure 1 below prov
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 4
Variations of the M/M/1 Queuing System
In the analysis of the M/M/1 system, we have been concerned with exponential service times. Recall that an exponential distribution is memoryless (i
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 10
Discrete Event Simulation
As it should be obvious by now, models that are amenable to analysis, such as queuing models, ignore (or abstract out) many of the details often present in real
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 11
Elementary Queuing Analysis
Multiple Server Queuing Systems Multi-server Queues
Assume that there are N servers in a system. We consider two scenarios. In the first scenario, (illustrate
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 4
General Processor Sharing
From non-preemptive FCFS to preemptive round-robin scheduling
The queuing systems (and networks) we have studied so far helped us model how processes consume res
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 12
Resource Management Basics
When we discussed the simple M/M/1 system earlier in this class, we assumed that upon completion of service, the server (e.g., CPU or Disk) would simply pick t
CS-350: Fundamentals of Computing Systems Lecture Notes
Page 1 of 8
Elementary Queuing Analysis
Examples
Example 1: Consider the following system. Jobs arrive to a system according to a Poisson arrival process with mean rate of 10 jobs per second. Jobs re