How smxlikith/kalpavriksha works
Purpose and Scope
This is a C programming assignment repository organized as independent exercises rather than one integrated application. The root only identifies it as Kalpvriksha coursework; each assignment has its own executable entry point and local README. Major topics progress from data structures and CRUD to simulations, caching, scheduling, and Unix IPC.
Paths: Assignment-1/calculator.c, Assignment-10/README.md, README.md.
Standalone Program Entry Points
Each assignment is launched through a dedicated C source file, typically a CLI-oriented main program. There is no evident shared build system or cross-assignment runtime dependency, so compilation and execution boundaries are per assignment.
Paths: Assignment-2/userCRUD.c, Assignment-6/virtualFileSystem.c, Assignment-8/LRUCache.c, Assignment-9/fcfsScheduler.c.
Core Data-Structure and Management Programs
Early assignments implement self-contained stateful applications: a stack-backed calculator, user CRUD, student performance analysis, sonar image processing, and inventory management. Inventory is the first visible modular boundary, separating product domain operations and input handling from the application driver.
Paths: Assignment-1/calculator.c, Assignment-1/stack.c, Assignment-5/dynamicInventoryManagementSystem.c, Assignment-5/lib/product.c, Assignment-5/lib/userInput.c.
Virtual File-System Simulation
The virtual file-system assignment is structured as a command-driven simulator. The entry program delegates command parsing/execution, file-system operations, memory-block management, queue behavior, and input validation to separate modules. Control flow is likely interactive: user input → command dispatch → virtual storage/memory state update.
Paths: Assignment-6/virtualFileSystem.c, Assignment-6/lib/commands.c, Assignment-6/lib/fileSystem.c, Assignment-6/lib/memBlock.c, Assignment-6/lib/queue.c.
Sports Analysis and Cache Workloads
The ODI player analyzer combines static player data, player/team models, commands, and heap sort to analyze or rank performance. The LRU cache is similarly modular, with command handling driving a hash-map-plus-queue implementation; the map provides lookup while the queue tracks recency/eviction order.
Paths: Assignment-7/ODIPlayerPerformanceAnalyzer.c, Assignment-7/data/Players_data.h, Assignment-7/lib/heapSort.c, Assignment-8/LRUCache.c, Assignment-8/lib/hashMap.c, Assignment-8/lib/queue.c.
Scheduling Simulation
The FCFS scheduler is a discrete process-management program. Input processing creates process records, the scheduler consumes them in first-come-first-served order, and queue/hash-map modules support ordering and process state lookup. Domain types are explicitly separated from scheduling logic.
Paths: Assignment-9/fcfsScheduler.c, Assignment-9/lib/scheduler.c, Assignment-9/lib/processesInput.c, Assignment-9/lib/processTypes.h, Assignment-9/lib/queue.c.
IPC and ATM Client/Server Boundaries
Assignment 10 moves from single-process simulations to Unix process communication. IPC examples provide paired p1/p2 processes using files, pipes, shared memory, and message queues, with reusable IPC utilities where present. The ATM sample establishes a networked client/server boundary and shares protocol/common declarations through a local library header.
Paths: Assignment-10/IPC/file/p1.c, Assignment-10/IPC/pipe/p1.c, Assignment-10/IPC/sharedMemory/p2.c, Assignment-10/IPC/lib/ipcUtils.c, Assignment-10/ATM/client.c, Assignment-10/ATM/server.c, Assignment-10/ATM/lib/common.h.
Runtime and Infrastructure
The repository targets native C execution, likely on a Unix-like environment due to IPC primitives and the client/server ATM exercise. No database, cloud service, web runtime, package manager, or centralized build/deployment infrastructure is represented in the tree.
Components 22
Early assignments
Independent CLI and management exercises.
- Stack calculator
Assignment-1/calculator.c - Calculator stack
Assignment-1/stack.c - User CRUD
Assignment-2/userCRUD.c - Inventory manager
Assignment-5/dynamicInventoryManagementSystem.c - Product and input modules · Separates product operations from user input.
Simulations and algorithms
Command-driven storage, analysis, cache, and scheduling programs.
- Virtual file system
Assignment-6/virtualFileSystem.c - Command dispatcher
Assignment-6/lib/commands.c - Virtual storage state · File operations, memory blocks, and queue state back commands.
- ODI player analyzer
Assignment-7/ODIPlayerPerformanceAnalyzer.c - Player data and ranking · Static player data is analyzed with heap sort.
- LRU cache
Assignment-8/LRUCache.c - Cache hash map
Assignment-8/lib/hashMap.c - Recency queue
Assignment-8/lib/queue.c - FCFS scheduler
Assignment-9/fcfsScheduler.c - Process input
Assignment-9/lib/processesInput.c - Scheduling logic · Consumes process records in arrival order.
Assignment-9/lib/scheduler.c
Unix IPC and ATM
Multi-process IPC examples and a networked ATM sample.
- IPC process pairs · Paired processes communicate through files, pipes, shared memory, or message queues.
- IPC utilities
Assignment-10/IPC/lib/ipcUtils.c - ATM client
Assignment-10/ATM/client.c - ATM server
Assignment-10/ATM/server.c - ATM common protocol
Assignment-10/ATM/lib/common.h
Other components
- Coursework repository · Independent C assignments with no shared runtime.
README.md
Connections 20
- Coursework repository → Stack calculator: contains
- Coursework repository → User CRUD: contains
- Coursework repository → Inventory manager: contains
- Coursework repository → Virtual file system: contains
- Coursework repository → LRU cache: contains
- Coursework repository → FCFS scheduler: contains
- Stack calculator → Calculator stack: uses
- Inventory manager → Product and input modules: delegates to
- Virtual file system → Command dispatcher: dispatches commands
- Command dispatcher → Virtual storage state: updates
- ODI player analyzer → Player data and ranking: analyzes and ranks
- LRU cache → Cache hash map: looks up entries
- LRU cache → Recency queue: tracks recency
- FCFS scheduler → Process input: reads processes
- FCFS scheduler → Scheduling logic: runs
- Process input → Scheduling logic: provides records
- IPC process pairs → IPC utilities: uses
- ATM client → ATM server: client/server requests
- ATM client → ATM common protocol: uses
- ATM server → ATM common protocol: uses