Distributed Systems

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/144

encourage image

There's no tags or description

Looks like no tags are added yet.

145 Terms

1
New cards

Distributed System

Hardware and software components, located at networked computers that communicate and coordinate their actions by message passing. They appear to the user as a single computer.

2
New cards

Functional separation

Feature of distributed system that specifies different computers can have different capabilities/purposes

3
New cards

Inherent distribution

Feature of distributed system that allows resources to be physically spread out

4
New cards

Power imbalance and load variation

Feature of distributed system that allows computational load to be spread out

5
New cards

Reliability

Feature of distributed system that means if one computer goes down the system as a whole is still okay

6
New cards

Economies

Feature of distributed systems that means the cost of a technology can be reduced by splitting the cost between several parties

7
New cards

Concurrency

Challenge in a distributed system to keep independent autonomous actions atomic and coordinated

8
New cards

Heterogeneity

Challenge in a distributed system to allow different devices to work together

9
New cards

No global clock

Challenge in a distributed system to ensure all devices keep the same time

10
New cards

Independent failures

Challenge in a distributed system to manage failures of a single node.

11
New cards

Transmission Control Protocol

Transport layer protocol that is connection-oriented

12
New cards

User Datagram Protocol

Transport layer protocol that is connectionless

13
New cards

Port

A 16-bit positive integer that routes network traffic to a specific process on a computer

14
New cards

Socket

An interface between programming networks and the transport layer

15
New cards

Socket(hostname, port)

Java constructor for communication/client socket

16
New cards

ServerSocket(port)

Java constructor for listening socket

17
New cards

accept()

Java method that waits for incoming connections and then returns their socket.

18
New cards

close()

Java method to shut off a socket connection

19
New cards

DatagramSocket(port)

Java constructor for UDP socket

20
New cards

DatagramPacket(message, n, hostname, port)

Java constructor to send UDP message

21
New cards

receive(packet)

Java method for receiving a UDP message

22
New cards

multi-threaded server

A server that simultaneously manages multiple clients

23
New cards

Middleware

A layer of software between applications and the operating system that powers the nodes of a distributed system. Manages higher level features such as communication and management

24
New cards

Distributed Operating System

Single, shared OS that is run over several machines, making them appear to act as one computer. Theoretically ideal but generally not used in practice

25
New cards

Network Operating Systems

Software that connects multiple devices and computers on the network and allows them to share resources on the network. An alternative to DOS

26
New cards

Process manager

OS component that creates and manages processes

27
New cards

Thread manager

OS component that creates and manages threads within processes

28
New cards

Memory manager

OS component that allocates and manages RAM

29
New cards

Communication manager

OS component that handles interprocess communication

30
New cards

Supervisor

OS component that manages privileged operations and protection

31
New cards

Multitasking

Multiple applications (processes) being run concurrently at the OS level

32
New cards

Multithreading

Multiple operations (threads) being run concurrently at the application level

33
New cards

Thread

A piece of code that runs concurrently with other pieces of code

34
New cards

yield()

Java method used to give up CPU voluntarily

35
New cards

suspend()

Java method used to pause thread execution (deprecated)

36
New cards

resume()

Java method used to restart thread execution (deprecated)

37
New cards

stop()

Java method used to terminate thread execution (deprecated)

38
New cards

setPriority(int)

Java method used to set the priority of a thread (lowest = 1, highest = 10)

39
New cards

currentThread()

Java method used to get a reference to the current thread

40
New cards

new Thread(() -> f()).start();

Java expression used to function f() on a new thread.

41
New cards

Worker pool

Multithreaded server architecture that holds a fixed number of threads that can be accessed

42
New cards

Thread per request

Multithreaded server architecture that creates a new thread for every request

43
New cards

Thread per connection

Multithreaded server architecture that creates a new thread for every connection

44
New cards

Thread per object

Multithreaded server architecture that creates a new thread for every object (used in OOP)

45
New cards

Client server model

DS architectural model that requires client processes to interact with server process to access data/resources

46
New cards

Two-tier model

Classic type of client server model that involves one server and (potentially) multiple clients

<p>Classic type of client server model that involves one server and (potentially) multiple clients</p>
47
New cards

Three-tier model

Type of client server model that involves two servers, one of which also acts as a client

<p>Type of client server model that involves two servers, one of which also acts as a client</p>
48
New cards

Multi-tier (cascade) model

Type of client server model that several layers of servers acting as clients to other servers

<p>Type of client server model that several layers of servers acting as clients to other servers</p>
49
New cards

Kubernetes

Example of a distributed system that divides work between nodes, with allocation manages by a single master entity

50
New cards

Microservices

DS architecture that breaks down software into individual components that communicate via APIs

51
New cards

Proxy server

Servers that sit in the middle of a web server and client and manage caches

52
New cards

Peer processes model

DS architectural model commonly used in messaging applications where any peer can act as client or server

53
New cards

Mobile code

Client server model where code moves to server to client

54
New cards

Mobile agent

Client server model where running program moves from server to client

55
New cards

Thin client and compute server

Client server model where all computation is done server-side

56
New cards

Spontaneous networking

Client server model where clients are small portable, heterogenous and need to be able to seemlessly connection/disconnect (e.g. WLAN)

57
New cards

Fundamental model

A formal description of the properties that are common to all architectures

58
New cards

Interaction model

Model of how DS communicate and coordinate

59
New cards

Latency

Delay when a message is sent/received (problem managed by interaction model)

60
New cards

Bandwidth

Capacity of the network (problem managed by interaction model)

61
New cards

Jitter

Variation in the time taken to deliver a series of messages (problem managed by interaction model)

62
New cards

Clock drift

Difference between time on individual machines (problem managed by interaction model)

63
New cards

Failure Model

Model of the faults that can occur in a DS

64
New cards

Fail-stop

Type of failure where program crashes (detectable)

65
New cards

Crash

Type of failure where program crashes (not detectable)

66
New cards

Omission

Type of failure where message sent is never received

67
New cards

Send-omission

Type of failure where message is set to be sent, but never placed in outgoing buffer

68
New cards

Receive-omission

Type of failure where message is placed in in-buffer, but never received

69
New cards

Arbitrary

Type of failure where message is corrupted, timing is unpredictable, etc.

70
New cards

Clock

Type of failure where local time exceeds bounds of drift from real time

71
New cards

Performance

Type of failure where transmission or operation takes too long

72
New cards

Security model

Model of the threats that a DS is prone to

73
New cards

Kernel

Core component of the OS that manages system resources, hardware and essential resources.

74
New cards

Monolithic

OS design that keeps most of the services in the kernel space

75
New cards

Layered OS

OS design that requires services to be accessed through the interface of the layer below

76
New cards

Microkernel

OS design that keeps a minimal number of services in the kernel space

77
New cards

Hybrid

OS design that combines the benefits of other OS designs

78
New cards

User mode

Privilege level for applications and user space services

79
New cards

Kernel mode

Privilege level for kernel and critical system services

80
New cards

System calls

Used to allow user programs to access the kernel

81
New cards

Maybe

Guarantee of middleware that states RPC may be executes once or not at all (no way of knowing)

82
New cards

At-least-once

Guarantee of middleware that states RPC may be executed at least once

83
New cards

At-most-once

Guarantee of middleware that states RPC may be executed once or not at all

84
New cards

Remote procedure call

Remote invocation used in procedural languages

85
New cards

Remote Method invocation

Remote invocation used in object-oriented languages

86
New cards

Communication Module

Part of RPC that implements design choices (e.g. retransmission requrests, duplicate handling and retransmission of results)

87
New cards

Client stub procedure

Part of RPC that marshals the procedure identifiers and arguments to the communication module

88
New cards

Dispatcher

Part of RPC that selects the server stub based on the procedure identifier and forwards the request to the server stub

89
New cards

Server stub procedure

Part of RPC that unmarshalls the arguments in the request and forwards to service procedure

90
New cards

Remote object

Part of RMI that processes method calls (server)

91
New cards

Remote interface

Part of RMI that specifies which methods can be invoked remotely (client)

92
New cards

LocateRegistry.createRegistry(port)

Java method used to create an RMI registry at the specified port

93
New cards

bind(name, stub)

Java method used to publish a stub to the registry

94
New cards

LocateRegistry.getRegistry(address)

Java method used to retrieve an RMI registry from the specified address

95
New cards

lookup(name)

Java method used to retrieve a stub from the registry

96
New cards

UnicastRemoteObject

Java class that must be extended to create RMI remote object

97
New cards

Remote

Java interface that must be implemented to create RMI remote interface (methods must throw remote exception)

98
New cards

Time coupling

Client and server must exist at the same time

99
New cards

Space coupling

Client and server must know who they are communicating with

100
New cards

Indirect communication

Communication in DS with no direct coupling