Course Information

INFO3400 Fundamentals of Operating Systems

COURSE CODE:   INFO 3400

COURSE TITLE:   Fundamentals of Operating Systems

CREDITS: 4

LEVEL:      3

PRE-REQUISITES: INFO 2425

COURSE DESCRIPTION:

This course provides the student with an introductory understanding of the role and functioning of an operating system. The basic algorithms used to manage processes, memory and disk devices will be presented.

COURSE RATIONALE:

Students will also be introduced to software techniques that will permit them to gain experience that would be useful in the management of an operating system.

CONTENT:

  • System Tools

 Basic systems programming, process creation, input/output re-direction, process overlaying, manipulating semaphores, basic shell scripting, OS administration.

  • Hardware Review

 Review of Von Neumann computer architecture.

  • Processes and Process Management

 Process creation/destruction, implementation, process table entries. Context switching, interrupt handling, inter-process communication, race conditions, mutual exclusion, critical regions, busy-waiting solutions, sleep-wakeup solutions, scheduling algorithms.

  • Deadlocks

Definitions and methods of dealing with deadlocks.

  • Memory Management

 Multiprogramming, relocation and protection, swapping, virtual memory.

  • Virtual Memory Management

 Pages, page frames, page tables, address translation, memory management units (MMU), page faults, page replacement algorithms.

  • File Systems

Contiguous allocation, linked-list allocation, index-nodes, implementing directories.

  • Input/Output

Device controllers, direct memory access, interrupt handlers, device drivers.

  • Resource Protection

Protection domains, access matrices, access lists, capabilities lists,   lock-key mechanisms.

 LEARNING OUTCOMES:

At the end of this course, students should be able to:

  • Describe basic operating systems concepts
  • Apply basic shell scripting
  • Install, use and manage windows and Linux OS.
  • Apply system program using Java/C on Windows and Linux

ASSESSMENT:

Method of Evaluation

Percentage of Grade

Restriction

Coursework

         2 Assignments (20%)

(problem sets and systems programming)

 

         2 1-hr exams (20%)

 

40 %

 

Final Examination

     One 2-hours written paper

     (Covers entire course – all           

       lectures, readings and  

       tutorials.)

 

60%

Fail Theory Regulation

Students must get a passing grade on final examination to pass the course.

TEACHING STRATEGIES:

The course is delivered using a combination of lectures; practical lab sessions for implementing basic concepts and online activities using the myElearning system such as forum discussions.

RESOURCES:

1. Abraham Silberschatz, Peter B. Galvin, Greg Gagne. 2009. Operating System Concepts with Java, 8th Ed. John Wiley & Sons. ISBN: 047050949X.

2. William Stallings. 2011. Operating Systems: Internals and Design Principles, 7th Ed. Prentice Hall. ISBN: 013230998X.

COURSE CALENDAR:

TIME PERIOD

TOPIC

WEEK 1-2

System Tools: Basic systems programming, process creation, input/output re-direction, process overlaying, manipulating semaphores, basic shell scripting, OS administration.

Lab 1 and 2 Linux Commands

WEEK 3

Hardware Review:  Review of Von Neumann computer architecture.

 

WEEK 4-6

Processes and Process Management:  Process creation/destruction, implementation, process table entries. Context switching, interrupt handling, inter-process communication, race conditions, mutual exclusion, critical regions, busy-waiting solutions, sleep-wakeup solutions, scheduling algorithms. Deadlocks: Definitions and methods of dealing with deadlocks.

Assignment 1

Lab 3 and 4 – Implement process concepts in Java

WEEK 7-8

Memory Management:  Multiprogramming, relocation and protection, swapping, virtual memory.

Virtual Memory Management:  Pages, page frames, page tables, address translation, memory management units (MMU), page faults, page replacement algorithms.

Assignment 2

Exam 1

Lab 5 and 6 – Implement Threads

WEEK 9-10

File Systems: Contiguous allocation, linked-list allocation, index-nodes, implementing directories.

 

WEEK 11

Input/Output:  Device controllers, direct memory access, interrupt handlers, device drivers.

Exam 2

WEEK 12

Resource Protection: Protection domains, access matrices, access lists, capabilities lists,   lock-key mechanisms.

 

WEEK 13

Revision