click below
click below
Normal Size Small Size show me how
Git Reading5+6 Rev.
| Question | Answer |
|---|---|
| Which statement best describes a precise interrupt? | Program state and program counter are saved so execution can resume correctly |
| What is the correct order of the I/O software stack from lowest to highest? | Interrupt handler -> device driver -> device-independent I/O -> user-level I/O |
| Which layer handles hardware interrupts directly? | Interrupt handler |
| Which best describes DMA operation? | CPU sets up transfer and is interrupted once per completion |
| What is the main advantage of DMA over programmed I/O? | Lower CPU utilization during data transfer |
| What is the purpose of the IOMMU? | To protect memory during DMA transfers |
| Which best describes memory-mapped I/O (MMIO)? | Device registers appear in physical address space |
| Which statement best describes a block device? | A device organized into fixed-size, randomly accessible blocks |
| Which statement best describes a character device? | Byte stream with no seek capability |
| Why does NVMe eliminate traditional disk scheduling? | It supports parallel queues with no seek cost |
| What is TRIM used for in SSDs? | Inform SSD which blocks are free |
| What is the elevator (SCAN) algorithm designed to do? | Minimize disk arm movement |
| What is a key limitation of Shortest Seek First (SSF)? | It may starve distant requests |
| What is io_uring? | A shared ring buffer between user and kernel for I/O |
| What is a monotonic clock? | Never moves backward |
| What is the Y2038 problem? | Overflow of 32-bit signed time representation |
| Why are kernel-mode drivers dangerous? | They run with full system privileges |
| What is the role of device-independent I/O software? | Provide a uniform interface across devices |
| What is spooling used for? | Allowing shared access to dedicated devices |
| What is user-level I/O software responsible for? | Providing application-facing I/O interfaces |
| What is a key benefit of buffering? | Reducing number of I/O operations |
| Which layer interacts most directly with applications? | User-level I/O software |
| Why is disk scheduling less useful for SSDs? | No mechanical seek time exists |
| What describes FCFS disk scheduling? | Requests handled in arrival order |
| Why are precise interrupts important? | They ensure restartable execution state |
| What does the bottom half of an interrupt handler do? | Handles heavy processing after ISR |
| What is true about DMA? | CPU sets up transfer and waits for completion interrupt |
| What does a device driver do? | Converts OS requests into hardware operations |
| Which is NOT a goal of I/O software? | Increasing CPU clock speed |
| Why is disk scheduling unnecessary for NVMe? | No mechanical seek delay exists |
| What is the primary role of an IOMMU in a system using DMA? | It restricts DMA devices to authorized memory regions |
| Why is the IOMMU important for DMA devices? | It prevents devices from reading or writing arbitrary physical memory |
| What is the key feature of MSI-X interrupts? | Multiple interrupt vectors per device for parallel event handling |
| MSI-X improves performance mainly by enabling: | Parallel interrupt delivery to different CPU cores |
| What is the main limitation of MBR partitioning? | It supports only up to four primary partitions |
| Why did GPT replace MBR in modern systems? | It supports more partitions and includes redundancy for recovery |
| What trade-off does GPT introduce compared to MBR? | Loss of backward compatibility with some legacy BIOS systems |
| Which RAID level provides no redundancy? | RAID 0 |
| Why is RAID 5 risky on modern large disks? | Rebuild time is long, increasing probability of unrecoverable read errors |
| What does write-through caching guarantee? | Data is immediately written to disk before acknowledging completion |
| Which clock should be used for measuring elapsed time intervals? | CLOCK_MONOTONIC |
| Why is CLOCK_REALTIME unsafe for timeouts? | It can change due to system clock adjustments |
| The Y2038 problem refers to: | Overflow of 32-bit signed Unix time values |
| What was the main fix for Y2038 in Linux 5.6? | Default migration to 64-bit time representation on 32-bit systems |