Module Code - Title:
CE4206
-
OPERATING SYSTEMS 2
Year Last Offered:
2024/5
Hours Per Week:
Grading Type:
N
Prerequisite Modules:
CE4204
Rationale and Purpose of the Module:
Study of multitasking operating systems. Study will be confined to single processor systems. A Unix or WIN-32 operating system will be selected as the prime example operating system. The module lab work will teach the student to develop concurrent program solutions. The module includes: concurrency, states, queues, scheduling. Process inter-communication. Memory management. File systems to support multitasking, File sharing, file protection, performance issues. Conditions for deadlock and solutions. I/O devices and device drivers. File security and protection.
Syllabus:
1) Processes: Concurrency, states, queues, scheduling. 2) Process Communication: Mutual exclusion, race conditions, busy-waiting solutions, Test/Set locks, semaphores, monitors, simple message passing, pipes, classical problems. 3) Memory Management: Swapping, virtual memory, paging, segmentation, performance and protection issues. 4) File systems to support multitasking: File sharing, file protection, performance issues. The UNIX i-node system. 5) Deadlock: Conditions for deadlock and solutions. 6)Input/Output: I/O Devices for multitasking environments, need for design of re-entrant drivers. 7) Computer Security and Protection: User authentication; protection matrix; ACL; capabilities. 8) Case Study: The UNIX Operating System: Origins; Standards; Shells; Utilities; Process Management; Memory Management; File Management; Programming in the Unix environment (Or, equivalent study based on a WIN-32 operating system.)
Learning Outcomes:
Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)
- Be able to define the underlying concepts for computer operating system design.
- Be able to identify concurrency problems in software examples and describe how they can be fixed using appropriate synchronisation mechanisms.
-Compare the features of two separate operating systems (Unix and WIN-32) by identifying the underlying architectural and conceptual differences. so that they can compare and relate to the underlying concepts.
-Describe the key concepts and requirements for a memory management system, including virtual memory, partitioning, paging, protection and performance.
-Analyse problems that can be solved with understanding of API/libraries in an operating system context. Given a specific programming problem show, without reference to a resource, how operating system APIÆs and libraries can be used to reduce the amount of code that has to be written to solve the problem.
- Develop a simple I/O device driver, know the individual steps necessary to copy the contents of a memory buffer to a physical block on a hard disk, as a formal driver.
Affective (Attitudes and Values)
NA
Psychomotor (Physical Skills)
NA
How the Module will be Taught and what will be the Learning Experiences of the Students:
Formal lectures, laboratory based assignments and projects, laboratory based tutorials.
Research Findings Incorporated in to the Syllabus (If Relevant):
Prime Texts:
A. Silberschatz (2005)
Operating System Concepts
, Wiley
Other Relevant Texts:
W. Stallings (2008)
Operating Systems: Internals and Design Principles
, Prentice Hall
A. Tanenbaum (2007)
Modern Operating Systems
, Prentice Hall
Programme(s) in which this Module is Offered:
Semester(s) Module is Offered:
Module Leader:
eoin.oconnell@ul.ie