This course deals with Operating systems basic concepts. This course is taken at TMU, formally known for Ryerson. (COE628)
You may refer to my contents, but COPYING them is strictly prohibited, as it would violate policy 60.
-> W2024
- Hardware and software features required for operating systems,
- Process Management,
- Scheduling,
- Inter-Process Communication & Synchronization,
- Process Starvation,
- Deadlocks,
- Memory Managment
- Virtual Memory & file systems. Note: The major lab project will involve developing system modules. (Formerly COE518)
Lab1:
- Implementing a Priority Queue using a linked list (C programming Language)
Lab2:
- Part A: Using a command line arguments and exit codes (C programming Language)
- Part B: Multiprocessing and Synchronizations
Lab3:
- Learn how to use fork(), execXXO and wait()
- Write a simple shell
Lab4:
- Learn how to use dup2 (and/or dop) and pipe
- Write a simple shell to support piping
Lab5:
Lab6:
Lab7:
- Learn about multi-threading in programming language that supports the monitor concept of concurrency control.
- Concurrency Control in a multi-threaded Java Application
Lab8:
- Implement a basic Semaphore in Java to:
- Block Thread or Wake Up the Thread once the resource become available
- Implement two method up(), down()