Course Code:
Course Title:
Course Unit:
CSC 417
Operating System II
Contact Details
Two hours’ lecture per week for 15 weeks (30 hours)
Lecturer’s Data
Name: Dr. D.T. Akomolafe
Qualification: PhD
College: College of Science and Engineering (Associate)
Email: [email protected]
Lecture period:
Fridays:1pm- 2pm
Course Outline
Memory Management: Address Space, Swapping, Contiguous Allocation, Paging, Segmentation,
Paged Segmentation. Virtual Memory: Demand paging, page replacement, page-replacement
algorithms, frame allocation, thrashing. File Systems: File Concept, Access Method, Directory
Structure, Protection, File-System Structure, Allocation Methods, Free-Space Management,
Directory Implementation, Efficiency and Performance, Recovery.
Course Description
Operating systems are central to computing activities. An operating system is a program that
acts as an intermediary between a user of a computer and the computer hardware. Two
primary aims of operating systems are to manage resources (e.g. CPU time, memory) and to
control users and software. Operating system design goals are often contradictory and vary
depending of user, software, and hardware criteria.
This course will introduce the core concepts of operating systems, such as processes and
threads, scheduling, synchronization, memory management, file systems, input and output
device management and security. The course will consist of assigned reading, weekly lectures,
group presentations, continuous assessment tests and final exam, and a sequence of
programming assignments. The goal of the readings and lectures is to introduce the core
concepts. The goal of the programming assignments is to give students some exposure to
operating system code. The goal of the group presentation is to imbibe the spirit of team work
and give students to have in-depth knowledge of the course.
Course Justification
One of the challenges in studying operating system is the efficient and effective allocation of
diverse resources in computing environment when required and which operating system best
fit different systems that are currently in use (desktop, laptop, embedded systems and mobile
devices such as smart phones etc.). Modern computers consist of processors, memories, timers,
disks, mice, network interfaces, printers, and a wide variety of other devices. In the alternative
view, the job of the operating system is to provide for an orderly and controlled allocation of
the processors, memories, and I/O devices among the various programs competing for them.
Imagine what would happen if three programs running on some computer all tried to print their
output simultaneously on the same printer. When a computer (or network) has multiple users,
the need for managing and protecting the memory, I/O devices, and other resources is even
greater, since the users might otherwise interfere with one another. In addition, users often
need to share not only hardware, but information (files, databases, etc.) as well. In short, this
view of the operating system holds that its primary task is to keep track of who is using which
resource, to grant resource requests, to account for usage, and to mediate conflicting requests
from different programs and users. In this course, students will be exposed to various
algorithms, concepts, devices, means and other strategies being used by operating systems to
overcome the challenge of efficient and effective allocation of resources.
Course Objectives:
Computers are machines that do not operate on their own. They are an assembly of complex
components that individually have some impressive built-in features but, require human
intervention to coordinate themselves and to communicate with humans. This is where the
study of operating systems is important.
Primary objective: The primary objective of this course is to enable students get a clear
understanding of the major principles & algorithms that underlie an operating system and how
they interplay with it and the hardware.
Secondary objectives: After taking this course, students should be able to:
identify the core functions of operating systems and how they are architected to
support these functions,
explain the algorithms and principles of memory management,
explain the concepts and practicability of virtual memory and
discuss the File Concept and different methods of file organization and access Method,
Students should have previous knowledge of Operating System 1
Course Delivery Method
Lectures, individual assignments and group presentation
Requirements and Grading
Students must attend classes regularly and punctually too, read the assigned reading before
class and participate in class discussions and presentations. The course will be graded as follows
at the end of semester.
10% Group presentations,
5%class participation and attendance
15% Continuous Assessments
70% Final Exam
Week 1
Overview of operating systems.
Discuss operating system background
Explain Computer-system structures
Explain Operating system structures
Week 2-5
Memory Management
Discuss Address Space, Swapping,
Explain memory allocation algorithms
Understand the concepts of paging, segmentation andpaged segmentation.
Week 6-9
Virtual Memory:
Discuss in details demand paging and page replacement
Explain and illustrate page-replacement algorithms and frame allocation
Explain thrashing.
Week 10
Group presentations on comparison of different operating systems in terms of robustness,
security features, systems supported, generation and peculiar feature(s). And continuous
assessment test.
To test student understanding of operating systems and the peculiarities of the types and
functions of operating systems
Week 11-15
File Systems
Discuss File Concept
Explain file organization and access method
Explain directory structure, Protection and File-System Structure
Explain and demonstrate the various allocation methods and Free-Space Management.
Text Books
Operating System Concept Essentials, by Silbershatz, Galvin, and Gagne, John
Wiley & Sons 2011. ISBN 978-0-470-88920-6.
Peterson and Silberschatz, Modern Operating Systems
Tanenbaum, Operating Systems: Design and Implementation