Skip to content

πŸ‘©πŸ»β€πŸ’» Data Structre and Concurrent Programming (Mar 2020 - Nov 2020)

License

Notifications You must be signed in to change notification settings

YiranJing/SystemProgramming-and-DataStructure

Repository files navigation

SystemProgramming-and-DataStructure

πŸ‘©πŸ»β€πŸ’» Data Structre and Concurrent Programming (2020.03 - 2020.07)

Concurrency Project

  • 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.

Data Structure

  1. πŸ” 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
  2. Thread Safe Unrolled Linked List

    • Coarse-grained locking linked list
  3. Office

    • 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.

System Programming

  1. MPSC (multiple producer, single consumer) channel
  2. Process communication with single central process
  3. Game ND-Minesweeper
  4. 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.

About

πŸ‘©πŸ»β€πŸ’» Data Structre and Concurrent Programming (Mar 2020 - Nov 2020)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published