π©π»βπ» Data Structre and Concurrent Programming (2020.03 - 2020.07)
- Create a networked server (βJXServerβ) that sends files to clients in response to requests.
- Server supports multiple connecting clients simultaneously as well as multiple simultaneous connections from the same client for increased transfer speeds.
- Huffman Coding and Compression π³
- A program that reads from a specified file, and uses Huffman coding to compress that file.
- Use Bitarray and Huffman Tree(binary tree)
- Advanced Round Robin method in uniprocessor System
- Stsge 1: Multi-Level Queue Dispatcher
- Stsge 2: Simple Memory Management
- Stsge 3: Swapping Strategy
- Manage concurrent students(threads for each) to do the lab exericse.
- Constraints: one teacher (coordinater), and only one lab room to fit one group each time
- Use mutex and conditional vriable to handle synchronization issue.
-
π Thread Safe Hash Map (separate chaining)
- Half-fine grained locking
- Buckets: list of dynamic array
- Collision Handling: Separate chaining. (each cell of hash table point to a linked list)
- Load factor of HashMap is 0.75f
-
Thread Safe Unrolled Linked List
- Coarse-grained locking linked list
-
- The office is structured as a hierarchy where the boss is at the top and everyone else is below.
- Using a tree data structure to support many different queries.
- MPSC (multiple producer, single consumer) channel
- Process communication with single central process
- Game ND-Minesweeper
- Simple Version Control
- Design and implement the storage method, as well as some functions for Simple Version Control (SVC)
- (Very) simplified system derived from the Git version control system.