Joe McCarthy Course Description:This course introduces the logical design of operating systems, especially focusing on the design in Java. Topics covered include processes, threads, CPU scheduling, synchroization, deadlocks, memory management, virtual memory, file systems, I/O systems, network programming, protection, and security used in the popular desktop and real-time operating systems. Through the course, we will use Java to illustrate many operating-system concepts. Using Java, you will implement each concept of process management, memory management, and file system. Discussion GuidelinesI encourage you to participate in discussions - online and offline, in class and out of class, with me and with other students. Asking and answering questions is an essential part of the learning process. To ensure constructive engagement, please abide by the principles of non-violent communication in all interactions. For online discussions, please note there are three discussion areas:
For assignments, feel free to post questions and/or answers, but do not post your assignment solutions (it is okay to include snippets of code). Also, please use appropriate and clear subject headers (for new threads involving assignments or labs, include the assignment / lab number) AcknowledgementMuch of the material on these pages is adapted from materials developed and refined by Professors Munehiro Fukuda and Kelvin Sung for whose generosity I am very grateful. |