Page 1 of 1

Module Code - Title:

CS4023 - OPERATING SYSTEMS

Year Last Offered:

2025/6

Hours Per Week:

Lecture

2

Lab

1

Tutorial

1

Other

0

Private

6

Credits

6

Grading Type:

N

Prerequisite Modules:

CS4211

Rationale and Purpose of the Module:

On successful completion of this module a student should have a clear understanding of the (1) Logical structure of, and facilities provided by, a modern OS (2) Concepts of processes, threads and multithreading and how they are implemented in a modern OS (3) Problems that arise when processes collaborate and compete and well as being able to demonstrate practical experience of mechanisms for handling these situation (4) Different ways of implementing virtual memory (5) Use of system calls

Syllabus:

(1) Positioning the operating system (OS) between the user and the hardware; the need for the OS; different types of OSs; interfaces to an OS and the interface with the hardware; (2) The concept of a process and a thread; representation of processes and threads; process and thread state; process creation and termination; thread creation, scheduling and termination; multithreading; (3) Scheduling; context switching; concurrency, including interaction between threads; (4) Inter process communication (IPC); synchronization and mutual exclusion problems; software algorithms for IPC; 2 processes, n processes; (5) Low and high level mechanisms for IPC and synchronization: signals; spinlocks; semaphores, message passing and monitors; deadlock; use of semaphores for synchronization, mutual exclusion, resource allocation; implementation of semaphores; use of eventcounts and sequencers for classical IPC problems; conditional critical regions; monitors and condition variables; (6) Physical and virtual memory; address translation; base and length registers; segmentation and paging; cache memory; system services for memory management; (7) I/O subsystem, directory name space; inodes; synchronous and asynchronous I/O; locking; buffering; (8) File systems and file management; file system types; disk organization; mounting a file system; device drivers; file system based IPC; pipes; the socket mechanism; IPC using sockets; (9) Fault tolerance and security;

Learning Outcomes:

Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)

On successful completion of this module students will be able to: 1. Explain the objectives and functions of modern operating systems. 2. Describe the logical structure of, and facilities provided by, a modern operating system. 3. Analyze the tradeoffs inherent in operating system design. 4. Differentiate between the concepts of processes, threads and multithreading. 5. Demonstrate practical experience of mechanisms for handling situations of process collaboration and competition. 6. Identify the problems that arise when processes collaborate and compete. 7. Categorise different ways of implementing virtual memory. 8. Discuss networked, client-server, distributed operating systems and how they differ from single user operating systems. 9. Summarise the use of system calls.

Affective (Attitudes and Values)

N/A

Psychomotor (Physical Skills)

N/A

How the Module will be Taught and what will be the Learning Experiences of the Students:

Research Findings Incorporated in to the Syllabus (If Relevant):

Prime Texts:

A. Silberschatz, P. B. Galvin and G. Gagne (2005) Operating Systems Concepts (7th edition) , Wiley
John O'Gorman (2000) Operating Systems , Basingstoke: Macmillan Press
John O'Gorman (2001) Operating Systems with Linux , Basingstoke: Macmillan Press
Harvey M. Deitel, Paul J. Deitel and David R. Choffnes (2003) Operating Systems (3rd edition) , Prentice Hall

Other Relevant Texts:

Programme(s) in which this Module is Offered:

Semester(s) Module is Offered:

Module Leader:

emil.i.vassev@ul.ie