Page 1 of 1

Module Code - Title:

CE4206 - OPERATING SYSTEMS 2

Year Last Offered:

2024/5

Hours Per Week:

Lecture

2

Lab

2

Tutorial

0

Other

0

Private

6

Credits

6

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