Documente Academic
Documente Profesional
Documente Cultură
1. Clock Synchronization
*********************************************************************************************
2. Clock Synchronization Algorithms
1. Cristian's Algorithm
2. The Berkeley Algorithm
3. Averaging Algorithms
4. Multiple External Time Sources
*********************************************************************************************
3. Threads
1. Introduction to Threads
2. Thread Usage
3. Design Issues for Threads Packages
4. Implementing a Threads Package
a. Implementing Threads in User Space
b. Implementing Threads in the Kernel
c. Scheduler Activations
5. Threads and RPC
1. Introduction to Threads
2. Thread Usage
3. Design Issues for Threads Packages
A set of primitives (e.g., library calls) available to the user relating to threads is called a threads
package.
One technique that is commonly used in threads packages is the mutex, which is a kind of watered-
down semaphore. A mutex is always in one of two states, unlocked or locked. Two operations are
defined on mutexes. The first one, LOCK, attempts to lock the mutex. If the mutex is unlocked,
the LOCK succeeds and the mutex becomes locked in a single atomic action.
create_global("bufptr");
set_global("bufptr", &buf);
bufptr = read_global("bufptr");
*********************************************************************************************
4. Processor Allocation
1. Allocation Models
2. Design Issues for Processor Allocation Algorithms
3. Implementation Issues for Processor Allocation Algorithms
4. Example Processor Allocation Algorithms
a. A Graph-Theoretic Deterministic Algorithm
b. A Centralized Algorithm
c. A Hierarchical Algorithm
d. A Sender-Initiated Distributed Heuristic Algorithm
e. A Receiver-Initiated Distributed Heuristic Algorithm
f. A Bidding Algorithm
1. Allocation Models
Goals:
• Maximize CPU utilization - maximize the number of cpu cycles.
• Minimize mean response time - minimize the response ratio.
5 Issues
1. Deterministic versus heuristic algorithms.
2. Centralized versus distributed algorithms.
3. Optimal versus suboptimal algorithms.
4. Local versus global algorithms.
5. Sender-initiated versus receiver-initiated algorithms.
3. Implementation Issues for Processor Allocation Algorithms
• Measuring Load
i. Count The Number Of Processes On Each Machine
ii. Count Only Processes That Are Running Or Ready
iii. Fraction Of Time The CPU Is Busy
iv. Fraction Of Time Spent In The Idle Loop
• Timer Interrupts
• How Overhead Is Dealt With
• Complexity
i. Seldom
• Stability
b. A Hierarchical Algorithm
c. A Centralized Algorithm
f. A Bidding Algorithm
*********************************************************************************************
5. Distributed File Systems
i. Naming Transparency
a. File Usage
b. System Structure
c. Caching
d. Replication
i. Update Protocols
4. An Example: Sun's Network File System
Sun Microsystem's Network File System (NFS)
a. NFS Architecture
b. NFS Protocols
c. NFS Implementation
Figure: NFS layer structure
5. Trends In Distributed File Systems
a. New Hardware
b. Scalability
c. Wide Area Networking
d. Mobile Users
e. Fault Tolerance
f. Multimedia
*********************************************************************************************