OS Course Outline

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Hawassa University

Institutes of Technology
Faculty of Informatics
Department of Computer
Science
Module Title Operating System and Computer Architecture Module CoSc-M2021
Code
Course Title Operating Systems Course CoSc3022
Code
CP/ECTS 5 ECTS / 3CrHr Study Hours
Lec. 32 Lab. 48 Tut.0 HS. 66
Instructor’s Name: Kassawmar M. (MSC)
Information Email: kassawmar2010@gmail.com/ kassawmar.mandefro@hu.edu.et
Phone: +251931856507
Office location: _______________
Course Academic Year: 3
Information Semester: I
Class Room:
Prerequisite(s): CoSc2021
Course The course introduces students to basics of operating system design principles
Description and components, and their functions. It will also discuss memory management,
processor management, process management and deadlocks, concurrency
control, scheduling and dispatching, device management, file systems, file
management, security and protection, and system performance evaluation. In
addition, students will be introduced with different operating systems, and they
will see their similarities and differences.
Learning At the end of this course students will be able to:
Outcomes  Describe the functions of operating system with respect to convenience, efficiency,
and the ability to evolve.

 Explain the different states that a task may pass through and the data structures
needed to support the management of many tasks.
 Explain conditions that lead to deadlock.
 Compare and contrast the common algorithms used for both preemptive and non-

1
preemptive scheduling of tasks in operating systems, such as priority, performance
comparison, and fair-share schemes.

 Explain the concept of virtual memory and how it is realized in hardware and software

Course Content
Topic Duration
(Week)

Chapter 1: History and overview Week 1

1.1. Introduction
1.2. Why study operating systems?
1.3. History of operating system development
1.4. Types of operating systems
1.5. Operating system concepts
1.6. Describe the role and purpose of operating systems
1.7. Operating Systems Structure
1.8. Interrupts in Operating System
1.9. Concurrency and its importance
1.10. Computer System Organization
1.11. The purpose and role of operating system in computer Engineering

Chapter 2: Processes and Thread Week 2-3

2.1. Process and Thread


2.2. Process States and state diagrams
2.3. Thread implementation
2.4. Interprocess communication
2.4.1. Race conditioning
2.4.2. Critical Sections
2.5. The “mutual exclusion” problem and some solutions
2.6. Dispatching and context switching
2.7. Producer-consumer problems and Synchronization
2.8. Concurrent execution: advantages and disadvantages
2.9. Models and mechanisms (semaphores, monitors, condition variables,
rendezvous)
2.10. Deadlock
2.10.1. Deadlock prevention
2.10.2. Deadlock detection
2.10.3. Deadlock avoidance

2
Chapter 3: Scheduling and dispatch Week 4-5

3.1. Introduction to scheduling


3.2. When to schedule?
3.3. Scheduling algorithms Goals
3.4. Scheduling algorithms (Preemptive and non-preemptive scheduling)
3.5. Schedulers and policies
3.6. Scheduling in Real-Time Systems

Chapter 4: Memory management Week 6-7

4.1. Introduction
4.2. Review of physical memory and memory
4.3. Overlays, swapping, and partitions
4.4. Paging and Segmentation
4.5. Placement and Replacement Policies
4.6. Working sets and thrashing
4.7. Caching
Chapter 5: Device management Week 7-9

5.1. Introduction
5.2. Characteristics of serial and parallel devices
5.3. Buffering strategies
5.4. Direct memory access
5.5. Recovery from failures
Chapter 6: Security and protection Week 9-11

6.1. Overview of system security


6.2. Policy/mechanism separation
6.3. Security methods and devices
6.4. Protection, access, and authentication
6.5. Memory protection
6.6. Encryption
6.7. Recovery Management

3
Chapter 7: File systems Week 11-12

7.1. Introduction
7.2. Files: data, metadata, operations, organization, buffering, sequential,
non-sequential
7.3. Directories: contents and structure
7.4. File systems: partitioning, mount/unmount, and virtual file systems
7.5. Standard implementation techniques
7.6. Memory-mapped files
7.7. Special-purpose file systems
7.8. Naming, searching, access, and backups

Minimum laboratory activities for this course:


• Introduction to how to write simple C++ programs for handling CS.
• Writing UNIX programs.
• Writing C++ programs for file handling.
Required Hardware tool: Desktop computer,
software and/or Software tool: C++ compiler, Linux
hardware tools

Teaching The course will be delivered in the form of lectures, presentations, group discussions,
Strategy Lab practice and individual and group project works
Assessment The evaluation shall be based on both formative and summative assessment which
Criteria include:

Assessment Forms % of credit allotted


• Quiz 5
• Mid-exam 30
• 1 Assignment 15
• Final exam 50
Reference Text book:
1. William Stalling, Computer Organization and Architecture: Designing for
Performance, 7 th Edition, Prentice Hall, 2006 Reference books: 1. Andrew S.
Tannenbaum, Structured Computer Organization, 4 th Edition, Prentice Hall, 1999
2. Mano M, Morris, Computer System Architecture, 3rd Edition, 1993
3. B. Ram, Computer Fundamentals, Architecture and Organization, 200

4
Role of Delivers lectures, conduct lab session, prepares reading assignments and topics for
Instructor(s) group discussion, prepares projects by discussion with student, gives consultation and
advises students on project works and assignments, prepares and evaluates quiz,
assignment, midterm and final examination.

Role of Attend lectures, lab session and presentation, work in team on group work, participate
Students in group discussion, discusses with the instructor on topics of interest for project work,
delivers and presents project work, attend quiz, midterm and final examination.

Lab Content Duration


(Weeks)
Basics of UNIX commands Week 1
C Program to simulate UNIX commands Week 2
Shell Programming Week 3
C programs to implement Different Scheduling algorithm Week 4
Implementation of Semaphore Week 5
Implementation of Shared memory and IPC Week 6

You might also like