![]() |
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. | ||