|
Department and Course Number |
CEG 434 |
Course Coordinator |
Bin Wang |
|
Course Title |
Concurrent Software Design |
Total Credits |
4 |
Classical problems of synchronization and concurrency and their solutions, inter-process communication mechanisms, thread concept, and thread based programming are examined through course projects and readings of operating system design. 4 credit hours. Prerequisites: CEG 433.
Text Books
Home Page
koala.cs.wright.edu/~bwang/teaching.htm
News Group
wright.ceg.434_634 Post all your questions, helpful comments, criticisms, and suggestions regarding this course (lectures, projects, quizzes, exams) to our news group.
The student should have learned the following:
The student should be able to apply the concepts above to the following:
|
Wk |
Lectures |
Reading |
|
1 |
Introduction to Concurrent Programming, Review of Unix I/O, Process Control |
Robbins: 1,2,3 |
|
2 |
Basic Unix Inter-process Communication (Pipes, FIFOs) |
Robbins: 3,4 |
|
3 |
Asynchronous Events and Unix Signals |
Robbins: 5 |
|
4 |
Client Server Communication via Sockets; TCP Sockets connection-oriented protocol |
Gray: 10 |
|
5 |
UDP Sockets connectionless protocol |
Gray: 10 |
|
6 |
Process Coordination: Bounded buffer problem; Critical Sections; Semaphores; Hardware support for synchronization |
Silberschatz: 6 Robbins: 8 |
|
7 |
Process Coordination: Readers and Writers problem; Dining Philosophers problem; Monitors |
Silberschatz: 6 |
|
8 |
Threads: Introduction, User level vs. kernel level, POSIX Thread management |
Robbins: 9 |
|
9 |
Threads: POSIX Thread Synchronization mechanisms |
Robbins: 10 |
|
10 |
Deadlock: Necessary conditions; Prevention, avoidance and detection |
Silberschatz: 7 |
There are three projects for the course, each of which accounts for 15% of the final grade (There two quizzes, one midterm, and one final exam.). Your solutions may be developed in C, or C++, and must run on the College of Engineering and Computer Science Unix workstations. You will be given approximately 2 weeks for each assignment. Bonus credits will be offered in programming assignments. These projects must be work done solely by you, except for the parts provided by the instructor.
The projects are evaluated based on three criteria: (1) design, (2) implementation correctness, and (3) clarity (coding as well as report).
wright.ceg.434_634 Post all your questions, helpful comments, criticisms, and suggestions regarding this course (lectures, projects, quizzes, exams) to our news group.
|
|
Core |
Advanced |
|
|
Core |
Advanced |
|
Data Structures |
|
1.0 |
|
Concepts of PL |
|
1.0 |
|
Algorithms |
|
1.0 |
|
Comp Organization + Architecture |
|
|
|
Software Design |
|
1.0 |
|
Other |
|
There are no oral presentations. Students submit source code of their projects along with a write-up that highlights the design details as well as problems and defects in their programs. The write-up helps students document their design, problems, and solutions in the course of their projects.
None.
Algorithm design, analysis, and correctness proof for critical section problems, deadlock prevention, avoidance, and detection.
The three projects are focused on how to utilize concurrency in software design. Each project emphasizes on a different aspect of concurrent software design and process synchronization. Detailed analyses of the project requirements are performed by the students in order to make the developed software efficiently utilize concurrency before implementation starts.
The three projects are all about writing, testing, and debugging multiple process based software using different inter-process communication mechanisms and process synchronization facilities. Lectures present various choices available in an operating system. Students are required to design further details specific to the project at hand and implement them.