University of New York Tirana

Komuna e Parisit,Tirana, Albania

Tel.: 00355-(0)4-273056-8 – Fax: 00355-(0)4-273059

Web Site Address: http://www.unyt.edu.al

Operating Systems

Fall 2009

 

Course            : Operating Systems (3 credit hours)

Instructor        : Dr. Marenglen Biba

Office              : Faculty building 1st floor

Office Hours   : Tuesday 15-17 PM or by appointment

Phone              : 42273056 / ext. 112

E-mail              : marenglenbiba@unyt.edu.al

Course page   : http://www.marenglenbiba.net/opsys/

 

Course Location and Time

 

Laboratory Room 5A, Thursday 15-18.

 
Catalog Description

 

This module covers the core concepts of modern operating systems, and provides contextual application of theory, using examples of currently used operating system environments.

 

Course Purpose

 

This course will provide an introduction to operating system design and implementation. The operating system provides an efficient interface between user programs and the hardware of the computer on which they run. The operating system is responsible for allowing resources (such as processors, disks or networks) to be shared, providing common services needed by many different programs (e.g., file service, the ability to start or stop processes, and access to the printer), and protecting individual programs from one another.

The course will start with an historical perspective of the evolution of operating systems since their birth. Then it will cover the major components of most operating systems and  the tradeoffs that can be made between performance and functionality during the design and implementation of an operating system. Particular emphasis will be given to three major OS subsystems: process management (processes, threads, CPU scheduling, synchronization, and deadlock), memory management (segmentation, paging, swapping) and storage management (file systems, disk management, I/O operations).

At the end of the course students will be able to:

1.      Understand the design and implementation issues that have led to the current modern operating systems.

2.      Understand and apply key concepts for process management in modern operating systems.

3.      Understand and apply essential concepts for memory management in modern operating systems.

4.      Understand and apply important concepts of storage management in modern operating systems.

5.      Understand and compare different operating systems in order to be able to select them in different use scenarios.

6.      Understand and apply essential algorithms that are implemented as part of an operating system.

7.      Understand and apply essential concepts regarding the deployment of modern operating systems.

8.      Understand and apply essential concepts for increasing the performance of modern operating systems.

 

Course Prerequisites      

 

Computer Architecture or Data Structures.

 

 

Required Readings

 

Silberschatz, Abraham, Galvin, Peter and Gagne, Greg, (2005). Operating System Concepts, Seventh edition, New York, NY: John Wiley & Sons ISBN: 0-471-69466-5. (required).

 

Andrew Tanenbaum, Modern Operating Systems, Prentice Hall. Second Edition. (only specific sections of the book will be required for special topics).

 

 
Content of the Course

 

1.                  Introduction to Operating Systems

What Operating Systems Do. Computer-System Organization. Computer-System Architecture. Operating-System Structure. Operating-System Operations. Process Management Memory Management. Storage Management. Protection and Security. Distributed Systems. Special-Purpose Systems. Computing Environments.

 

2.                  Operating System Structure

Operating System Services. User Operating System Interface. System Calls. Types of System Calls. System Programs. Operating System Design and Implementation. Operating System Structure. Virtual Machines. Operating System Generation. System Boot.

 

3.                  Processes

Process Concept. Process Scheduling. Operations on Processes. Cooperating Processes.

Interprocess Communication. Communication in Client-Server Systems.

 

4.                  Threads

Overview. Multithreading Models. Threading Issues. Pthreads. Windows XP Threads. Linux Threads. Java Threads

 

5.                  CPU Scheduling

Basic Concepts. Scheduling Criteria. Scheduling Algorithms. Multiple-Processor Scheduling. Real-Time Scheduling. Thread Scheduling. Operating Systems Examples. Java Thread Scheduling. Algorithm Evaluation.

 

6.                  Process Synchronization

Background. The Critical-Section Problem. Peterson’s Solution. Synchronization Hardware. Semaphores. Classic Problems of Synchronization. Monitors. Synchronization Examples. Atomic Transactions.

 

7.                  Deadlocks

The Deadlock Problem. System Model. Deadlock Characterization. Methods for Handling Deadlocks. Deadlock Prevention. Deadlock Avoidance. Deadlock Detection. Recovery from Deadlock.

 

8.                  Main Memory

Background. Swapping. Contiguous Memory Allocation. Paging. Structure of the Page Table. Segmentation. Example: The Intel Pentium.

 

9.                  Virtual Memory

Background. Demand Paging. Copy-on-Write. Page Replacement. Allocation of Frames

Thrashing. Memory-Mapped Files. Allocating Kernel Memory. Other Considerations. Operating-System Examples.

 

10.              File System Interface

File Concept. Access Methods. Directory Structure. File-System Mounting. File Sharing. Protection.

 

11.              File System Implementation

File-System Structure. File-System Implementation. Directory Implementation. Allocation Methods. Free-Space Management. Efficiency and Performance. Recovery. Log-Structured File Systems. NFS. Example: WAFL File System.

 

12.              Mass-Storage Systems

Overview of Mass Storage Structure. Disk Structure. Disk Attachment. Disk Scheduling.

Disk Management. Swap-Space Management. RAID Structure. Disk Attachment. Stable-Storage Implementation. Tertiary Storage Devices. Operating System Issues. Performance Issues.

 

13.              I/O Systems

I/O Hardware. Application I/O Interface. Kernel I/O Subsystem. Transforming I/O Requests to Hardware Operations. Streams. Performance.

 

 

Course Requirements

 

Students are required to attend lectures and labs. Lecture handouts and lab notes will be available before commencement of the class. Students are expected to participate in class discussions. In the event of illness or emergency, contact your instructor IN ADVANCE to determine whether special arrangements are possible.

 

Participation: Participation extends beyond mere attendance. You may miss up to two classes without penalty. Each absence beyond the first two will cost you points off of your participation grade. The only exceptions to this rule are severe illness (doctor’s note required) and UNYT approved trips/activities. Appropriate documentation for absences beyond the first two is necessary and is to be provided on the class day directly before or after the one you miss. Students are expected to collect materials from the online course page, their classmates or see the instructor during consultation hours.

 

Exams: Two examinations will be taken one midterm and one final. Test format may combine a mixture of Definitions, Blanks, and short answers, two or three Essay questions covering all readings, lecture, and hand-out and class discussion content. No Student may miss a scheduled exam without receiving permission before the administration of the exam. Make-up exams might be significantly different from the regular tests, and will be administered at a time of instructor own convenience.

 

Reading assignments: You will be required to read all the handouts, slides, and other relevant materials. Each week, I will notify you in class what specific materials to read and/or assignments to prepare for the week. The reading assignments are selected to give you adequate understanding of the course material.

 

Project: I will announce projects usually based on the chapters/materials covered in class. Due dates will be specified accordingly. Projects must be submitted as specified to be considered on-time. Late assignments are accepted with the following penalties: -2 if submitted the next day it is due, and -1 for each day late after that. I will accept e-mail submissions.

 

Make-up policy Midterm/Final exam: Only students who miss an exam for university-approved and verifiable reasons will be allowed to take a make-up exam. Even then, except in the most extreme circumstances, no student may miss a scheduled exam without receiving permission before the administration of the exam. Make-up exams might be significantly different in format from the regular tests, and will be administered at a time of my own convenience.

 

Cheating policy: Cheating policy: Exams, assignments, projects and quizzes are subject to the STUDENT HONOUR CODE. The University’s rules on academic dishonesty (e.g. cheating, plagiarism, submitting false information) will be strictly enforced. Please familiarize yourself with the STUDENT HONOUR CODE, or ask me for clarification.

 

Grading Policy

 

Participation

10%

Project

30%

Midterm

30%

Final

30%

 

Grading Scale (Standard UNYT grading scale)

Letter Grade

Percent (%)

Generally Accepted Meaning

      A

96-100

Outstanding work

      A-

90-95

      B+

87-89

Good work, distinctly above average

      B

83-86

      B-

80-82

      C+

77-79

Acceptable work

      C

73-76

      C-

70-72

      D+

67-69

Work that is significantly below average

      D

63-66

      D-

60-62

      F

0-59

Work that does not meet minimum standards for passing the course

 

 

Technology Expectations

 

1.       Internet use is necessary since students should regularly check the course home page.

2.       Continued and regular use of e-mail is expected

3.       Students must keep copies of all assignments and projects sent by e-mail.

 

 

Course Material

 

  1. 15/10-2009  Introduction            Test 1
  2. 22/10/2009  OS Structure           Test 2
  3. 29/10/2009  Processes               Test 3
  4. 05/11/2009  Threads                  Test 4
  5. 12/11/2009  Scheduling              Test 5
  6. 19/11/2009  Synchronization       Test 6
  7. 26/11/2009  Deadlocks
  8. 03/11/2009        MIDTERM
  9. 10/11/2009  Memory
  10. 17/11/2009  Virtual Memory
  11. 07/01/2010  File System Interface
  12. 14/01/2010  File System Implementation 
  13. 21/01/2010  Mass Storage Systems
  14. 28/01/2010  IO                                                 

 

 

Tests Results    Tests Solutions

 

Test Final                     

           

Results

 

           

Template for project specification

Project Analysis+Design Results

 

DEMO Material

 

Sockects 1

Sockects 2

 

 

Last updated: Saturday, 06 February 2010, 10:48:17 AM