• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/67

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

67 Cards in this Set

  • Front
  • Back

Distributed Computing Advantages

- Resource sharing


- Computational Speed up


- Reliability: Recovery from a failed host


- Communcation: between users


- Cost of effectiveness

Distributed Computing Sources of Unreliability

- Routing choices


- Competing Applications


- Failed Connections


- Congestion

Physical Layer of Network Interconnection

A hardware device to encode/decode a bit stream from the medium. Hardware manufacturers will need to agree upon standards.

Data link Layer of Network Interconnection

- Organize data into fixed- or variable-length frames


- Correct errors introduced by physical layer


- A header to help with error correction


- No routing decisions (LAN)

Network Layer of Network Interconnection

-Organize data into variable-length packets


- Additional header info to make routing data for sending data across multiple connections


- Example: IP

Transport Layer of Network Interconnection

- Provide useful semantics on top of network layer


- Create illusion of messages or connections for clients


- break messages into packets and re-assemble for on arrival


- Examples: TCP and UDP

Internet Protocol (IP)

- best-effort packet delivery service between hosts


- Each host represented by a 32-bit IP address


- No error detection


- No congestion control

User Datagram Protocol (UDP)

- best effort message delivery service between applications-


- No need to establish connection first


- Error detection within message


- port numbers to dispatch messages to the right process

Transmission Control Protocl (TCP)

- Connection must be established first


- In-order byte stream delivery


- packet boundaries hidden


-message boundaries not respected


- Congestion control by sender if network is overwhelmed

Internet Heirarchy (top to bottom)

- Application layer


- transport layer


- network layer


- data link layer


-physical layer

The Sockets API

- A collection of system calls to create and use TCP connections (and other protocols)

Sockets in Java

java.net-ServerSocket


java.net.Socket


java.net.DatagramSocket


Server:


- ss = new ServerSocket(PORT);


- Socket sock = ss.accept();


Client:


- Socket sock = new Socket(HOST, PORT);



Remote Procedure Call(RPC)

- A framework to simplify application distribution by breaking an application at procedure call boundaries

RPC Semantics

- Exactly once Semantics


- Every call is carried out exactly one


- At-least-once semantics


- Client keeps retransmitting until it receives desired response


- At-most-once semantics


- Every call is carried out at most once

Network Operating System

User/ Programmer must be aware of the most boundaries


- Collection of libraries/tools to access remote resources



Distributed Operating system

- User/programmer doesn't need to constantly think about host boundaries


- Remote and local resources look and behave the same

Host-based processing

- Server does almost all the work

Server-based processing

- Server does all application processing


- Client just does user interface



Client-based processing

- Client does all application processing


- Server just does validation and execution of requests

Cooperative processing

- Split application logic and computational load between client and server

Protection: Object

A thing you may want to use

Protection: Operation

Something you can do with an object

Protection: Access right

A rule that says it's OK to do a particular operation on a particular object

Protection: Protection Domain

Our name for the thing that has access rights

Principle of Least Privilege

Programs should have permissions to do only what they needed to do

Access Matrix: Owner Rights

Who can add/remove access rights for an object

Access Matrix: Switch Rights

To change domains

Access Matrix: Control Rights

To decide who can switch to a given domain

Access List

Store permissions within the object

Capability List

Store permissions with the domain

Lock and Key Representation

List of keys for each domain


List of locks for each object


Perform an operation if there's a match

Types of Security Violations

- Breach of Confidentiality


- Breach of Integrity


- Breach of Availability


- Theft of Service


-Denial Of Service

Types of Attacks

- Back-door

-Trojan Horse


- Stack/Buffer overflow


- Logic Bomb


-Timing Attack


-Virus


Symmetric Encryption

- One key to encrypt and ecrypt (DES, RC5, AES)

Asymmetric Encryption

Two keys, one to encrypt and one to decrypt

Cryptographic Hash

Maps a message to small hash value


- Given a hash value, it's hard to find any message that hashes to it


- Example: MD5, SHA-1

Seek Time

Time to move head to desired cylinder


- About 10-15 ms



Rotational Latency

-Time for the desired sector to rotate under the head


- About 4.15 ms for 7200rpm

Transfer Rate

Speed for reading/writing disk


- 30 MB/s - 100 MB/s

SCAN Disk scheduling

Move disk arm back and forth, service requests as you go

C-SCAN disk Scheduling

Similar to SCAN, but runs all the way back to the other edge without servicing requests

LOOK and C-LOOK

Stop at the last (innermost or outermost) request. In the case of C-LOOK go back to the cylinder of the first request.

Data Striping

How we interleave data across disks


Fine grained:


- bit-interleaved


Coarse grained:


-block-interleaved



Host Attached Storage

- Via a device controller, and a physical connection to that controller

- Typically using specialized hardware to communicate (SATA) with device


Network Attached Storage

- Pack up messages destined for the disk


- Wrap them in another protocol and send to another host


- unpack them there, and execute them


- Uses general-purpose networking


- Uses standard remote file system protocls (NFS)

Storage Area Network (SAN)

- Uses special-purpose interconnections (fibre channel)


- Encapsulates disk protocol (SCSI over fibre channel)

CPU vs. GPU

CPU good for running few threads, each doing it's own thing.


GPU good for running thousands of threads, each doing the same thing.

CUDA Blocks

A block of threads

CUDA grid

A collection of blocks, where each thread can figure out what it's supposed to do

CUDA Kernel

A name for a block of code to be run in parallel


(__global__void myFunction). Call by specifying:


myFunction<<blocksPerGrid, threadPerBlock>>()

Thrashing

The system isn't getting much work done because it's spending all its time servicing page faults

Translation Look-aside Buffer

A special cache for each CPU core


Maps page number straight to frame number

The Memory-Management Unit

A hardware device that handles mapping logical to physical address

Page Table Base Register

Tells hardware where the current page table is located

Necessary Conditions for Deadlock

- Mutual Exclusion


- Hold and Wait


- No Preemption


- Circular Wait

Deadlock Prevention

Build a system where deadlock can't occur


- Prevent ONE necessary condition

Deadlock Detection

Let deadlocks happen, notice when they occur, and respond somehow

Deadlock Avoidance

For each request, decide whether the process should wait. Use Banker's Algorithm

How to read and Write Binary data to File

fread(&a, sizeof(int), l, infile);


fwrite(&a, sizeof(int), l, outfile);

How to control for Byte Order

int a;


a = htonl(a);


or if receiving, convert to host's order:


a = ntohl(a);

Requirements for Critical-Section Solution

- Mutual Exclusion


- Progress


- Bounded Waiting

Semaphore PsuedoCode

- sem s = 1


- acquire(s)


- release(s)

POSIX Semaphore Library

sem_init(sem_t* sem, int value);


sem_Destroy(sem_t* sem);


sem_wait(sem_t* sem);


sem_post(sem_t* sem);

Java Semaphore Library

- new Semaphore(5);


- s.acquire()


s.release()


s.acquireUninterruptibly()

Monitor psuedo code

condition c;


c.wait()


c.signal()

POSIX API for Monitors

pthread_mutex_t lock;


pthread_mutex_init(&lock, NULL);


pthread_mutex_lock(&lock);


pthread_mutex_unlock(&lock);




pthread_cond_t cond;


pthread_cond_Wait(&cond, &lock);


pthread_cond_signal(&cond);


pthread_cond_broadcast(&cond);

Java Monitors

Just use synchronized methods and blocks


- any object is a condition variable.


- use wait() and notify() or notifyAll()