IPC Items Flashcards
What is IPC?
IPC (Inter-Process Communication) refers to the mechanisms and techniques used by processes to communicate and synchronize with each other within a computer system or across networked systems.
What are two general classes of IPC?
(shared memory and message passing)
Shared Memory: Processes share a portion of memory, allowing them to read from and write to the same memory region. Changes made by one process are visible to others.
Message Passing: Processes communicate by sending and receiving messages through a predefined communication channel, which can be either synchronous or asynchronous.
What is the idea of shared memory? What are the advantages and disadvantages of shared memory?
Idea: Shared memory allows multiple processes to access the same memory region directly, facilitating fast communication and data sharing.
Advantages: Fast communication, no need for data copying, efficient for large data transfers.
Disadvantages: Synchronization issues, potential for data inconsistency or race conditions, limited to processes running on the same system.
What is the idea of message passing? What are the advantages and disadvantages of message passing?
Idea: Message passing involves processes communicating by sending and receiving messages through a communication channel managed by the operating system.
Advantages: Implicit synchronization, supports communication between processes running on different systems, flexible and scalable.
Disadvantages: Overhead due to message copying, potential for message loss or delay, requires careful design of communication protocols.
Can shared memory kind of IPC communication be used for two processes running on two different computers? Why do you think so?
No, shared memory IPC communication cannot be directly used for processes running on different computers because shared memory is confined to a single system’s memory space. Processes on different computers have their own isolated memory spaces and cannot directly access each other’s memory. Instead, network-based communication mechanisms such as sockets and message passing protocols are used for inter-computer communication.
What is a network?
(a bunch of computers connected together to exchange data)
A network is a collection of interconnected devices (such as computers, servers, routers, and switches) that communicate and exchange data with each other using wired or wireless connections.
What is an IP address? How does a classic IP address (IPv4) look like?
An IP (Internet Protocol) address is a unique numerical identifier assigned to each device connected to a network. A classic IP address, known as IPv4 (Internet Protocol version 4), consists of four sets of numbers separated by dots, where each set can range from 0 to 255 (e.g., 192.168.1.1).
Why isn’t an IP address alone enough for networking communications?
An IP address alone is not enough for networking communications because it only identifies the location of a device on a network. Additional information, such as the port number and the specific application protocol being used, is required to establish a connection and exchange data between devices.
What is a networking port?
A networking port is a software-based endpoint that allows communication between devices over a network. Ports are identified by numerical values and are associated with specific protocols or services. For example, port 80 is commonly used for HTTP (web) traffic, and port 22 is used for SSH (secure shell) connections.
What are well-known ports?
Well-known ports are ports numbered from 0 to 1023, reserved for specific services or protocols defined by the Internet Assigned Numbers Authority (IANA). These ports are commonly used by well-known network services such as HTTP (port 80), HTTPS (port 443), FTP (port 21), and SSH (port 22).
What is a (networking) socket?
A socket is a communication endpoint that allows processes to communicate over a network. It consists of an IP address and a port number, enabling bidirectional data transfer between client and server applications.
What is a server (like in “web server” or “email server”)?
A server is a computer program or hardware device that provides services or resources to other computers, known as clients, over a network. Examples include web servers (which deliver web pages), email servers (which handle email communication), and file servers (which store and distribute files).
What is a client?
A client is a computer program or device that requests services or resources from a server over a network. Clients initiate communication with servers to access data, services, or applications provided by the server.
What is a communication protocol?
A communication protocol is a set of rules and conventions that govern the exchange of data between devices or systems. Protocols define the format, timing, sequencing, and error handling mechanisms used in communication to ensure reliable and efficient data transfer.
What is a URL?
A URL (Uniform Resource Locator) is a web address used to specify the location of a resource on the internet. It typically consists of a protocol identifier (such as “http://” or “https://”), followed by the domain name or IP address of the server, and optionally, the path to the specific resource.