1/85
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Procedural vs Object-Oriented Languages: What is the primary structural difference?
Procedural languages (e.g. C) structure code around sequential functions operating on separate data. Object-Oriented languages (e.g. Java) encapsulate data attributes and behavior methods together into objects.
UML Class Diagram Notations: How are inheritance and composition represented visually?
Inheritance (is-a) uses a solid line with a hollow arrowhead pointing to the superclass. Composition/Aggregation (has-a) uses a diamond symbol attached to the owner class.
Java Program Execution Environments: Where do Java Applications
Applets
Process State Lifecycle: What sequence of states does a process transition through?
New (created) -> Ready (waiting for CPU time) -> Running (executing instructions) -> Blocked/Waiting (waiting for I/O or lock) -> Terminated (finished execution).
Java Thread Creation Methods: What is the functional trade-off between extending Thread vs implementing Runnable?
Extending Thread limits a class due to Java single inheritance rules. Implementing Runnable allows the class to implement multiple interfaces and extend another class while defining concurrent behavior.
Race Conditions: Why do race conditions occur in multi-threaded software?
They occur when multiple concurrent threads read and mutate shared data without synchronization
Java Synchronized Keyword: How does a synchronized method ensure thread safety?
It acts as a mutual exclusion lock (mutex) on an object or method
OSI vs TCP/IP Models: How do their layer structures differ?
The OSI model is a theoretical 7-layer framework (Physical
IPv4 vs IPv6 Addressing: What are the differences in address size and format?
IPv4 uses 32-bit addresses written as 4 decimal octets (e.g. 192.168.1.1). IPv6 uses 128-bit addresses written as 8 groups of hexadecimal digits separated by colons.
DNS Lookup Logic: What is the main function of the Domain Name System?
DNS translates human-readable domain names (e.g. kennesaw.edu) into machine-routable IP addresses for TCP/IP network communication.
Logical Port Numbers: Why are logical ports necessary alongside IP addresses?
An IP address routes network packets to a specific host machine
Well-Known Ports Range: What is the port range for well-known services and key examples?
Well-known ports range from 0 to 1023. Key examples include Port 80 (HTTP)
Network Socket Definition: What two elements uniquely define a network socket?
A socket is defined by the combination of an IP address and a 16-bit logical port number (e.g. 192.168.1.1:8080).
URI vs URL Distinction: What is the relationship between a URI and a URL?
A URI (Uniform Resource Identifier) identifies a resource by name or location. A URL (Uniform Resource Locator) is a specific type of URI that specifies both resource location and access protocol (e.g. https://).
Interprocess Communication (IPC)
What primary mechanism allows independent processes to exchange data and synchronize actions in a distributed system?
OS-Level IPC Facilities
Which three basic OS-level facilities are commonly built upon to implement higher-level IPC APIs? (Message queues semaphores shared memory)
Unicast vs Multicast
How does unicast IPC differ from multicast IPC in terms of process targets? (1-to-1 vs 1-to-many communication)
Synchronous Communication
What happens to a process thread of execution when it executes a synchronous IPC operation? (It blocks or waits until completion)
Asynchronous Communication
What is the key advantage of asynchronous IPC over synchronous IPC regarding thread execution? (Non-blocking execution allows the process to continue running immediately)
Synchronous Send
Under what condition does a synchronous send call unblock and return control to the process? (Only after the message is received or acknowledged by the receiving side)
Asynchronous Send
Why does an asynchronous send return control immediately even if the receiver hasn't received the message yet? (The message is placed in a system buffer for background delivery)
Synchronous Receive
What state does a receiving process enter if it issues a synchronous receive call before any message arrives? (It enters a blocked waiting state until a message arrives)
Asynchronous Receive
How does a process handle incoming data during an asynchronous receive without blocking main execution? (Via background threads polling or event callbacks and notifications)
Threads for Asynchronous IPC
How can multi-threading simulate asynchronous behavior when only blocking IPC primitives are available? (By delegating blocking operations to dedicated background worker threads)
Blocking
What state transition does the OS kernel perform on a process executing a blocking IPC call? (Moves it from running to waiting or blocked state freeing the CPU)
Deadlock in IPC
What scenario leads to an IPC deadlock between two communicating processes? (Each process blocks waiting for a message or signal that can only be sent by the other blocked process)
Timeout Mechanism
Why are timeouts essential in network IPC operations? (They prevent indefinite blocking if a network packet is lost or a remote process crashes)
Data Representation
Why is data representation agreement necessary between heterogeneous host architectures in IPC? (Different CPU architectures may use different endianness alignment or primitive bit sizes)
Data Marshalling
What transformation occurs during data marshalling before sending an in-memory object over a socket? (Flattening complex pointers and structures into a contiguous sequence of bytes)
Unmarshalling
What is the role of unmarshalling on the receiving end of an IPC message? (Reconstructing the byte stream back into valid in-memory data structures or objects)
Data Encoding Protocols
Give two examples of self-describing text-based data encoding formats used in distributed systems. (XML and JSON)
Text-Based Protocols
What is a major trade-off of text-based protocols like HTTP compared to binary protocols? (Text protocols are human-readable and easier to debug but incur higher bandwidth and parsing overhead)
Protocol Definition
What essential components must a network protocol define for two processes to interoperate? (Message formats syntax semantics and valid sequence or timing of exchanges)
Request-Response Paradigm
In a standard client-server request-response exchange which process must initiate the sequence? (The client process issues the request first while the server waits passively)
HTTP Protocol Classification
What IPC paradigm and protocol format does basic HTTP use? (A request-response paradigm using a text-based application protocol)
Sequence Diagram in IPC
What does the vertical axis represent in an IPC sequence or event diagram? (The progression of time during message exchange between processes)
Event Synchronization
How do two asynchronous processes achieve event synchronization using IPC primitives? (By sending and waiting on explicit signal or ack messages to align execution checkpoints)
Message Passing vs Remote Procedure Call
Message Passing operates at a low level requiring explicit send/receive and socket protocol handling
Role of Stubs in RPC Architecture
Client stubs marshal parameters and transmit requests across the network
Interface Definition Language (IDL) Purpose in RPC
To define remote procedure signatures in a language-independent manner
Publish-Subscribe vs Point-to-Point Message Systems
Point-to-Point queues deliver each message to exactly one consumer process
Asynchronous Decoupling in Message-Oriented Middleware (MOM)
Senders and receivers do not need to execute simultaneously or hold open connections; messages are stored securely in queues until the receiver is ready to process them.
Differences Between Java RMI and Traditional RPC
RMI is specifically object-oriented and Java-bound
Role of the RMI Registry
Acts as a centralized bootstrap naming service where servers bind URL names to remote object references so clients can look up and obtain remote stubs.
Parameter Passing Semantics in Java RMI
Primitive types and serializable objects are passed by value (deep copy via serialization)
Service Discovery Logic in Network Services Paradigm
Service providers register capabilities with a service broker; clients dynamically query the broker to discover
Object Space (Tuple Space) Synchronization Mechanism
Processes communicate indirectly by writing
Primary Advantage of the Mobile Agent Paradigm
Reduces network latency and bandwidth usage by moving computation code directly to the remote data source host instead of transmitting large data volumes over the network.
Security Risks Associated with Mobile Agents
Host environments must protect themselves from malicious agent code execution
Client-Server Bottleneck and Failure Issues
Centralized servers present a single point of failure and potential performance bottlenecks under high concurrent client requests.
Peer-to-Peer Scalability Advantage
As the number of participating nodes increases
Component Containers Runtime Management Functionality
Containers manage non-functional system services like transaction processing
Marshaling vs Unmarshaling Data Transformations
Marshaling serializes structured in-memory data objects into a standardized flat byte stream for transmission; unmarshaling deserializes the byte stream back into native memory structures.
Synchronous vs Asynchronous Communication Behavior
Synchronous communication requires the sender to block until the receiver accepts or completes processing; asynchronous allows the sender to immediately continue execution.
Synchronous vs Asynchronous Collaborative Applications (Groupware)
Synchronous groupware coordinates real-time concurrent user actions (e.g.
Loose Coupling in MOM Systems
Senders and receivers require no knowledge of each other's identity or runtime location; they only interact through message channels or topic queues.
Object Request Broker (ORB) Function in CORBA
Acts as an intermediate object bus that intercepts client method calls
Associative Addressing in Tuple/Object Spaces
Tuples are retrieved from the shared space by matching the structural pattern and type values of fields
State Migration in Mobile Agents
When an agent moves
Why Remote Operations Can Fail When Local Operations Cannot
Distributed invocations are subject to network partitions
Stateless vs Stateful Server Design Logic
Stateless servers retain no client session state between requests
Trade-offs of Object Space / Generative Communication
Provides extreme spatial and temporal decoupling between processes
Socket API Primary Origin
An Interprocess Communication (IPC) interface originally created for Berkeley UNIX that now serves as the de facto standard for network programming across modern operating systems.
Socket Fundamental Concept
A software construct acting as an abstract endpoint that allows processes on separate machines or the same machine to exchange network data.
Connection-Oriented vs Connectionless Trade-off
Connection-oriented sockets guarantee reliable and in-order delivery with higher overhead
Stream-Mode Data Boundary Behavior
Data sent via stream-mode sockets (TCP) flows as a continuous stream of bytes without preserving message boundaries between write operations.
Datagram-Mode Data Boundary Behavior
Data sent via datagram sockets (UDP) is transmitted as distinct
UDP Packet Loss Logic
If a sent DatagramPacket is dropped by the network
Datagram Socket Port Binding Logic
An application acting as a receiver must bind its DatagramSocket to a specific
Datagram Socket Ephemeral Port Logic
Calling the default DatagramSocket constructor without parameters automatically binds the socket to an available system-assigned port
DatagramPacket Sender Constructor Requirements
To send a packet
DatagramPacket Receiver Constructor Requirements
To receive a packet
DatagramSocket receive Method Execution Behavior
The receive method is a blocking call that halts execution of the thread until an incoming packet arrives at the socket's bound port.
DatagramSocket Timeout Mechanic
Calling setSoTimeout with a millisecond value forces receive to unblock and throw a SocketTimeoutException if no packet arrives within the specified window.
DatagramPacket Buffer Truncation Risk
If an incoming datagram payload exceeds the array size allocated in the receiving DatagramPacket
ServerSocket Role in TCP
ServerSocket listens passively on a specified local port for incoming client connection requests and does not handle direct data transfer itself.
ServerSocket accept Method Return Value
The accept method blocks until a client connects
TCP Server Concurrent Client Handling Logic
A TCP server uses ServerSocket to accept connections and spawns a separate thread per returned Socket object so multiple clients can be handled concurrently.
Socket InputStream/OutputStream Purpose
The getInputStream method obtains a byte stream for receiving data
Socket Connection Sequencing
The client instantiates a Socket specifying the server IP and port
Datagram Socket Sender IP Discovery Mechanic
A UDP receiver can extract the sender's IP address and port from an incoming DatagramPacket using getAddress and getPort to send a reply back.
Blocking Operation Consequences
Executing blocking methods like accept or receive on the main UI thread freezes the user interface until network events complete or time out.
JSSE Application Security Layer
Java Secure Socket Extension provides SSL/TLS protocol implementations that wrap standard socket streams to provide encryption and authentication.
Socket Resource Leak Prevention
Sockets and their associated input/output streams must be explicitly closed using close or a try-with-resources block to free OS network ports and buffers.
DatagramSocket Reuse Across Multiple Messages
A single DatagramSocket instance can be reused to send and receive multiple independent DatagramPacket objects to and from different destinations.
TCP Stream Buffering Logic
Writes to a TCP OutputStream may be buffered locally by the OS until flushed or filled