Course Description
This course presents a review of the basic concepts of the operating systems (processes and threads, process states, process scheduling), an introduction to distributed systems (what is a distributed system? What is a real-time system? What is a parallel system?) And some sample distributed application. This course includes both concurrency and distributed systems; the purpose of the first part is to provide students with some understanding on mutual exclusion and synchronization (principles of concurrency, mutual exclusion -software and hardware approaches-, semaphores, monitors, message passing, readers/writers problems) and on deadlock and starvation (principles of deadlock, deadlock prevention, deadlock detection, deadlock avoidance, dining philosophers problem). The distribution concerns: memory management (review of centralized memory management, simple and shared memory model, distributed shared memory and memory migration), distributed process management (distributed scheduling algorithm choices, scheduling algorithm approaches, coordinator elections and orphan processes) and distributed file systems (distributed name service, distributed file service, distributed directory service and NFS. X.500). Students will be trained on some software tools such as: Unix, WINDOWS.NT, and CORBA.
Course ID: CS 525
Credit hours | Theory | Practical | Laboratory | Lecture | Studio | Contact hours | Pre-requisite | 3 | 3 | 3 | CS 412 / CIS 325 |
---|