Memory Management
* Virtual address is translated to a physical address using a page table |
Multi-level Page Tables are used to reduce memory overhead in page tables. Instead of a singel-level structure, a multi-level page table uses multiple levels of tables to represent the virtual-to-physical address mapping |
* A linear page table is a one-dimensional array where each entry corresponds to a page. The virtual address is divided into a page number and an offset within the page |
* Super Pages are larger-than-normal memory pages that can be used to increase TLB efficiency and reduce overhead associated with managing multiple smaller pages |
* Translation Lookaside Buffer (TLB) is a hardware cache that store recent translations of virtual addresses to physical addresses, reducing the time needed for address translation |
Security & Cryptography
* Public Key Encryption - involves a pair of keys: a public key for encryption and a private key for decryption. Message decrypted with the public key can only be decrypted by the corresponding private key |
* Cryptography - ensures data privacy by encrypting sensitive information, data integrity by providing mechanisms to detect tampering, and authentication by verifying the identity of communication parties |
* Transport Layer Security (TLS) - Provides secure communication over a network. It operates above the transport layer (usually TCP), encrypting data to ensure confidentiality and using certificates for authentication |
|
|
Process Management
* Swapping involves moving entire processes between main memory and secondary storage to free up space in RAM. It helps manage memory constraints by temporarily storing less frequently used processes on disk |
* Page Fault occurs when a process tries to access a page not currently in physical memory. the OS, through the page faul handler, brings the required page into memory from disk, updates the page table, and allows the process to continue |
* Malloc() - a function for dynamic memory allocation, typically used for creating variable-sized blocks of memory on the heap |
* Mmap() maps files or devices into memory, often used for memory-mapped files or creating shared memory regions. It can create shared memeory regions between processes by mapping the same file into their virtual address spaces |
|
|
Memory Consistency and File Systems
* Sequential Consistency - ensures that the execution of operations in a parallel program appears as if they are executed in some sequential order. it provides a clear, understandable model for concurrent program execution |
* Sequential Consistency in Modern Processors: - Achieving strict sequential consistency can lead to performance degradation in modern processors. Processors often use Optimization like out-of-order execution and catching that may violate strict sequential consistency to improve speed |
* Hard Links - Create additional directory entries pointing to the same inode, effectively creating multiple names for the same file |
* Soft Links - Create a separate file containing the path to the target file |
* File System - are organized on disk with partitions, file allocation tables (FAT), or inode tables |
* Free Command - Displays information about system memory usage |
* Page Cache- stores frequently accessed disk pages in memory, reducing the need for repeated disk access. |
* Buffering - Involves temporarily storing data in a buffer before writing it to disk, optimizing disk I/O |
|
|
Networking
* IPv4 Addresses - 32-bit numerical labels assigned to devices on a network |
* IPv6 Addresses - 128-bit numerical labels designed to address the limitation of IPv4 and accommodate the growing number of connected devices |
* UPD (User Datagram Protocol) - a connectionless, lightweight protocol that does not guarantee delivery or order of packets |
* TCP (Transmission Control Protocol) - a connection-oriented protocol that ensures reliable, ordered, and error-checked delivery |
* Data Marshalling - Involves converting data from one representation to another for communication between systems with different architectures or byte orders. it ensures compatibility in network communication |
* Remote Procedure Call (RPC) - enables programs to execute procedures on a remote machine as if they were local. It involves marshalling parameters, making the remote call, and unmarshalling results. |
|