Aat Dsa
Aat Dsa
AY: 2024-25
CCA
• Problem Statement: Implement a memory management system for an operating system that
uses data structures like linked lists, arrays, and hash tables to manage memory allocation,
deallocation, and garbage collection.
• Description: Create a simulation of memory allocation using dynamic memory allocation
techniques such as the First Fit, Best Fit, and Worst Fit algorithms. Use data structures to
keep track of memory blocks, allocated and free segments, and perform defragmentation when
necessary.
• Data Structures Used: Arrays, Linked Lists, Hash Maps.
• Features to Implement:
o Simulate memory allocation and deallocation for different processes.
o Implement memory compaction to reduce fragmentation.
o Track memory usage statistics.
• Applicability: Demonstrates how memory management can be implemented using data
structures in an operating system.
• Problem Statement: Create a file system simulation that uses data structures to manage files,
directories, and the file allocation table.
BMS INSTITUTE OF TECHNOLOGY AND MANAGEMENT
(An Autonomous Institution, Affiliated to VTU, Belagavi)
Avalahalli, Doddaballapur Main Road, Bengaluru -560064
Department of Computer Science and Business Systems
• Description: Implement a hierarchical file system with operations such as file creation,
deletion, searching, and directory management. Use different data structures for storing file
metadata, directory structures, and file allocation.
• Data Structures Used: Trees (e.g., B-trees), Hash Tables, Linked Lists.
• Features to Implement:
o Support for basic file operations: create, delete, rename, move, and search.
o Simulate different file allocation methods (contiguous, linked, indexed).
o Implement file permissions and access controls.
• Applicability: Shows how data structures are used in designing file systems in operating
systems.
• Problem Statement: Implement an online banking system that manages transactions between
multiple bank accounts. The system should use data structures to track accounts, handle
transactions, and manage user sessions.
• Description: Create a simulation of online banking that supports user authentication, account
management, money transfer, and transaction history. Use data structures to manage account
details, transaction queues, and user sessions.
• Data Structures Used: Hash Maps, Queues, Stacks, Linked Lists.
• Features to Implement:
o User authentication and session management.
o Account balance checks and money transfers.
o Maintain a log of transaction history for each account.
o Implement basic concurrency control to avoid race conditions during transactions.
• Applicability: Demonstrates the role of data structures in managing data for online transaction
processing systems.
• Problem Statement: Develop a task manager that simulates an operating system's task
management system with priority-based scheduling and resource management.
• Description: Create a task management application that supports adding, removing, and
updating tasks with different priority levels. The task manager should efficiently schedule tasks
based on priority and support task preemption.
• Data Structures Used: Priority Queues, Heaps, Linked Lists.
• Features to Implement:
o Add, remove, and update tasks with different priorities.
o Implement scheduling policies like priority scheduling with preemption.
o Monitor and display system resource usage (e.g., CPU, memory).
• Applicability: Provides insight into how data structures are used to implement task scheduling
in operating systems.
• Problem Statement: Create an ATM simulation that supports online transaction processing,
including cash withdrawal, deposit, balance check, and fund transfers between accounts.
BMS INSTITUTE OF TECHNOLOGY AND MANAGEMENT
(An Autonomous Institution, Affiliated to VTU, Belagavi)
Avalahalli, Doddaballapur Main Road, Bengaluru -560064
Department of Computer Science and Business Systems
• Description: Develop an ATM system with support for different types of transactions. Use
data structures to manage accounts, transaction queues, and maintain logs of all transactions
for auditing purposes.
• Data Structures Used: Queues, Hash Maps, Linked Lists.
• Features to Implement:
o Account verification and transaction processing.
o Simulate different transaction types: withdrawal, deposit, fund transfer.
o Maintain a log of all transactions for audit purposes.
• Applicability: Demonstrates the role of data structures in managing online transactions in
financial applications.
• Problem Statement: Implement a disk scheduling algorithm simulator that uses different disk
scheduling algorithms such as FCFS, SSTF (Shortest Seek Time First), SCAN, C-SCAN,
etc.
• Description: Create a simulation to visualize and compare different disk scheduling algorithms
in terms of disk head movement. Use appropriate data structures to represent requests and
manage the scheduling queue.
• Data Structures Used: Queues, Linked Lists.
• Features to Implement:
o Implement multiple disk scheduling algorithms.
o Simulate disk head movement based on different algorithms.
o Calculate and compare the total head movement for different algorithms.
• Applicability: Illustrates the use of data structures in managing I/O operations in operating
systems.
• Problem Statement: Implement a system that simulates deadlock detection and avoidance
algorithms like Banker's Algorithm. The system should model processes requesting and
releasing resources, and detect or avoid deadlocks.
BMS INSTITUTE OF TECHNOLOGY AND MANAGEMENT
(An Autonomous Institution, Affiliated to VTU, Belagavi)
Avalahalli, Doddaballapur Main Road, Bengaluru -560064
Department of Computer Science and Business Systems
• Objective: Simulate resource allocation, track available and allocated resources, and
implement deadlock detection/avoidance algorithms.
• Data Structures: Arrays, Matrices (for representing resource allocation and need tables),
Graphs (for detecting deadlock using wait-for graphs).
• Expected Output: A command-line interface that shows resource allocation status, detects
deadlocks, and applies the Banker's Algorithm for deadlock avoidance.
• Problem Statement: Implement a memory management system that simulates Paging and
Segmentation techniques. Create processes, allocate memory, and simulate the behavior of
paging (fixed-sized partitions) and segmentation (variable-sized partitions).
• Objective: Allow users to create, delete, and view processes and memory allocation using
paging and segmentation. Display memory tables and page tables.
• Data Structures: Arrays, Linked Lists, Hash Maps (for page tables and segment tables).
• Expected Output: The system should display the status of memory (allocated/free), process
memory usage, and paging/segmentation details.
• Problem Statement: Develop an inventory management system that supports multiple users
performing transactions such as adding, removing, and updating inventory items in real-time.
Implement concurrency control to manage simultaneous transactions on the same items.
• Objective: Ensure consistency in inventory levels and prevent conflicts between multiple
transactions by implementing locking mechanisms.
• Data Structures: Hash Maps (for storing inventory items), Thread-safe Collections, Linked
Lists (for transaction logs).
• Expected Output: A real-time system that tracks inventory changes and ensures consistency
when multiple users update the same items simultaneously.
Note: Select one problem from the collection, Implement using any 2 different data structures and give
the comparative analysis to justify which data structure is efficient for the given scenario.