|
|
| Aim of Module | To use the facilities provided by the Unix operating system to introduce the students to the principles and problems of software development. |
| Credits | 14 |
| Knowledge Assumed From | OS210 Operating systems (Internals) PR22n Programming (Further techniques) |
| Suggested Time | 140 student learning hours |
| Prescription Expiry Date | Nov 2002 |
| Topics | Highest Skill Level | Suggested Assessment Percentage | |
| 1 Use Of Unix Operating System | A | 15 | |
| 2 Multiple Program Applications | C | 5 | |
| 3 Concurrent Programming | C | 20 | |
| 4 Applications Programming | A | 60 | |
| 100 | |||
| 1 Use Of Unix Operating System |
| A | Use the facilities provided for software development under the Unix operating system. | |
| 1.1 | Files and Directories | |
| 1.2 | Editors | |
| 1.3 | Shell commands | |
| 1.4 | Macros and shell programming. | |
| 2 Multiple Program Applications |
| C | Describe the general problems of applications that involve multiple communicating programs, and their solutions. | |
| > | Distinguish between these solutions explaining their inherent advantages and disadvantages and typical applications. | |
| 2.1 | Problems that require these solutions. | |
| 2.2 | Process spawning (fork). | |
| 2.3 | Alternate process execution or chaining. | |
| 2.4 | Interprocess communications | |
| - message queues | ||
| - shared memory communications | ||
| 3 Concurrent Programming |
| C | Building on the above solutions describe the problems and their solutions for applications that lead to multiple programs accessing the same data from a file or memory. Reference should be made to single processor and multiple processor environments. | |
| 3.1 | Problems that require these solutions | |
| 3.2 | File locking | |
| 3.3 | Collision detection | |
| 3.4 | Mutual exclusion and critical regions | |
| 3.5 | Deadlock | |
| 3.6 | Event handling - signals and semaphores | |
| 3.7 | Review of features (extensions) provided by this and other languages (e.g. Ada, Modula-2) which make special provision for concurrency problems. | |
| 4 Applications Programming |
| A | Use the theory studied from the previous topics to develop application programs which implement the theory to solve typical application problems. | |
| > | Sample applications include: | |
| - A file and record locking system for an application | ||
| - Online multi-user applications (e.g. enrolment, banking, reservations) which have multiple processes updating a database in a transaction processing environment (via a single control program). | ||
| - Watchdog timers which interrupt a process when a certain operation or event occurs. | ||