fannydai / CSE320

Programming assignments for programming and essential concepts of operating systems, compilers, concurrency, and performance analysis course.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CSE320

Programming assignments for programming and essential concepts of operating systems, compilers, concurrency, and performance analysis course.

Taken Fall 2018 at Stony Brook University with Professor Eugene Stark..

  • Intro
    • Intro to linux
    • Install vmware or virtual box
  • MIPS Convertor
    • command line utility to translate MIPS machine code between binary and human-readable mnemonic form
  • Audible
    • Perform certain transformations on audio files encoded in Sun audio (.au) format
    • Intro to C
    • Check for valid arguments passed from the terminal
    • Ensure that all flags are valid and store their definitions accordingly
    • Write a program which slows down, speeds up, and encodes the audio file
  • Snarf
    • Functions like the curl command on the terminal
    • a simple HTTP client, which can contact an HTTP server over the Internet and retrieve a document
  • Grades
    • Debugging and Fixing
    • Given an ancient code in C, fix it up so that it will run with no seg fault nor mem-leaks using gdb and valgrind
    • Although still reachable mem leaks are not considered
    • Ensure that opt_long works correctly
    • Add an additional feature (the -o flag) for output file
  • sfmm
    • Dynamic Allocator
    • Best-fit placement policy
    • One free list for each block size. The collection of free lists will itself be organized as a "list of lists", maintained in increasing order of block size.
    • Immediate coalescing on free with adjacent free blocks.
    • Boundary tags with footer optimization that allows footers to be omitted from allocated blocks.
    • Block splitting without creating splinters.
    • Allocated blocks aligned to "double memory row" (16-byte) boundaries.
    • Free lists maintained using last in first out (LIFO) discipline.
  • Printer Spooler
    • processes, signal handling, files, and I/O redirection
    • forking, executing, and reaping
    • Signal handling
    • Understand the use of "dup" to perform I/O redirection.
    • Implemented breadth first search
  • Xacto
    • socket programming
    • Understand thread execution, locks, and semaphores
    • Have an advanced understanding of POSIX threads
    • Have some insight into the design of concurrent data structures

About

Programming assignments for programming and essential concepts of operating systems, compilers, concurrency, and performance analysis course.


Languages

Language:C 96.1%Language:Makefile 1.9%Language:Assembly 1.0%Language:Objective-C 0.5%Language:Shell 0.2%Language:C++ 0.2%Language:Batchfile 0.2%