Skip to content

System Programming

  • Instructor: Pu-Jen Cheng 鄭卜壬

Programming Assignments

    • topics:
      1. I/O multiplexing
      2. advisory file lock
    • description: Given a simple server, you have to modify it to a banking system supporting I/O Multiplexing and content protection
    • my implementation
    • topics:
      1. multi-processing and handling zombie processes
      2. Inter process communication by pipe and FIFO
    • description: Implement a bidding system which will handle a sequence of competitions. The goal of this assignment is to practice how to communicate between processes through pipe and FIFO, and to understand how to use fork() to create processes.
    • my implementation
    • topics:
      1. signal handling
      2. non-local jump (setjmp(), longjmp())
    • description: Simulate a user-thread library by using longjmp(), setjmp(), and implement a scheduler to control the action of these threads. Additionally, signals are used to send instructions to the scheduler, and signal mask is applied to handle the timing of the delivery of signals.
    • my implementation
    • topics:
      1. multi-threading
      2. pthread library
    • description: implement a multiclass classifier with thread. You should train a model to classify handwritten digits from MNIST dataset. And the most important part is that you have to accelerate the matrix multiplication (let it parallelly) by thread.
    • my implementation

Hand-written Assignments

  1. Assignment 1

  2. Assignment 4

  3. Assignment 5

  4. Assignment 7