about summary refs log tree commit diff stats
path: root/README.md
blob: 61d664f8cdac96f52afd6899157228a924850ad1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# BT-Programming-Assignment

## General instructions

Languages: C/C++
Initiate a github repository for each task
Provide the code accompanied with a Makefile to compile it as well as instructions on how to run your applications

## Server/client application

Task description: Implement the following two programs:

Server:
        Initializes a hash table of given size (provided via the command line)
        Supports the insertion of items in the hash table
        Hash table collisions are resolved by maintaining a linked list for each bucket/entry in the hash table
        Supports concurrent operations (multithreading) to perform insert, get and delete operations on the hash table
        Use readers-writer lock to ensure safety of concurrent operations; try to optimize the granularity
        Communicates with the client program using shared memory buffer (POSIX shm)

Client:
        Enqueues requests/operations (insert, read, delete) to the server (that will operate on the the hash table) via a shared memory buffer (POSIX shm)