Key-Value Server Implementation and Performance Testing

Key-Value Server Implementation and Performance Testing

This lab guide explains implementing a simple in-memory key-value store that runs as a client-server application over TCP sockets. It covers socket programming basics, multi-threaded server design, event-driven IO with epoll, and load generation for performance testing of the key-value server.

Basics of File Systems and File Operations

Basics of File Systems and File Operations

This document introduces the basic concepts of file systems including file abstractions, directories, file operations like open, read, write, and close, and the role of the operating system in managing persistent storage through files.

Simple File System Design and Implementation

Simple File System Design and Implementation

This document introduces a simple file system called vsfs as a case study to explain basic on-disk data structures like inodes, bitmaps, directories, and policies for allocation and access. It covers file read/write operations, caching, and trade-offs in file system implementation details.

Introduction to Operating Systems

Introduction to Operating Systems

An introduction to operating systems focusing on their role as system software managing hardware, process management, memory management, IO, and system calls. It discusses OS architectures like monolithic kernels and microkernels and the need for OS in convenience, security, and resource usage efficiency.

    Semaphores

    Semaphores

    This lecture covers semaphores as synchronization primitives with counters and their operations (up/post and down/wait). Topics include binary semaphores as mutexes, semaphore usage in producer-consumer problems, and handling deadlocks caused by semaphore misuse.