Comprehensive practice problems covering OS fundamentals including CPU instructions, memory management, process management, threading, concurrency control, virtual memory, paging, and filesystem operations.

Introduces fundamental concepts of threads including thread creation, management, context switching, and thread design patterns. Explores differences between processes and threads, benefits of multithreading, and challenges in thread-based programming.

 Evaluating Network Stacks for the Virtualized 5G Mobile Packet Core

 Evaluating Network Stacks for the Virtualized 5G Mobile Packet Core

This study evaluates several state-of-the-art network stacks for running compute-intensive 5G control plane VNFs such as AMF and AUSF. Results show that popular userspace kernel bypass network stacks outperform Linux kernel stack on IO intensive VNFs but the gap narrows for CPU-intensive VNFs. The work emphasizes the importance of traffic partitioning at subscriber granularity for scalability. It also profiles the CPU usage breakdown revealing network stack overheads are relatively low compared to VNF computation.

Performance Comparison of State Synchronization in Distributed LTE EPC

Performance Comparison of State Synchronization in Distributed LTE EPC

  1. Summary: This paper compares various state synchronization strategies in a distributed LTE Evolved Packet Core (EPC) implemented as virtualized network functions. It studies designs ranging from no synchronization, synchronization at session boundaries, to synchronization after every message, analyzing throughput and latency trade-offs. Synchronization after every message has prohibitive overhead, while session granularity offers a balance between fault tolerance and performance. The authors provide open-source implementations and experimental results guiding EPC design choices.
 DiME – Performance Emulator for Disaggregated Memory Architectures

 DiME – Performance Emulator for Disaggregated Memory Architectures

  1. Summary: DiME is a software performance emulator for disaggregated memory architectures that injects configurable delays in local memory operations to mimic remote memory access latency. It supports fine-grained partitioning and memory isolation per process, enabling accurate emulation of heterogeneous memory systems. DiME is designed for flexibility and accuracy without requiring special hardware, useful for evaluating application performance in disaggregated memory environments.