CIS207 Introduction to Operating Systems

Dr. Justin Y. Shi   

Day

Time

Location

Content

Mondays

2:40-4:30 PM

WH207

Lab.

Wednesdays

3:40-4:30 PM

TL403B

Lecture

Fridays

2:40-4:30 PM

TL403B

Lecture

Textbooks:

Computer Systems -- A Programmer's Perspective, by Randal Bryant and David O'Hallaron, Prentice Hall, ISBN: 0-13-034074-X (For computer architecture and general systems programming)

Primary Reference:

Operating Systems -- A Design-Oriented Approach, by Charles Crowley, IRWIN, ISBN: 0-256-15151-2 (For operating system calls programming)

Lab Reference Books:

·         Kernel Projects for Linux - by Gary Nutt, Addison Wesley, ISBN: 0-201-61243-7

·         Sams: Teach Yourself Linux Programming in 24 Hours
by Warren W. Gay, Larren W. Gay (Highly recommended)

·         Programming Perl, 2nd Edition, O'Reilly Associates

Course Objectives:

Understand operating system design principles. Learn how to use critical operating system functions to efficiently manage system resources. Develop skills for building versatile computer applications with performance and functionality.   

Course Resources:

Online Portal:  http://tuportal.temple.edu

Telephone: (215)204-6437 Fax: (215)204-5082

Email: shi@temple.edu

Office: Room 302, Wachman Hall

Teaching Assistant: Ms. Jingting Zeng, email: jingting.zeng@temple.edu
TA Website: http://astro.temple.edu/~tua66760

Course Outline:

Introduction

Six functional operating system components:

    • Process management
    • Memory management
    • File sub-system
    • I/O sub-system
    • Communication sub-system
    • Networked resource management

         Focus: Component Speed Disparity and Performance Concerns

Processes

    • Application Programming Interfaces (API)
    • Interprocess communication
    • Process Scheduling
    • Process recovery
    • The deadlock problems

        Focus: Creation/termination of processes + interprocess communication.

I/O Sub-system

    • Devices and controllers
    • Terminal devices
    • Communication devices
    • Disk devices
    • Tape devices

       Focus: Device driver structure and optimization algorithms.

File system

    • File naming
    • File organizations
    • File system objects and operations
    • Booting
    • Security
    • Backups and high availability methods

       Focus: File system data structures and access to the data structures.

Memory management

    • Program loaders
    • Memory allocation: static v.s. dynamic
    • Memory protection
    • Virtual memory
    • Fragmentation and compaction
    • Paging
    • Segmentation

      Focus: Understanding of memory allocation methods.

Networked resource management

    • Client/server models
    • Security

      Focus: Inter-processor communication methods.

Credit Distribution: 30%(Homework) + 30% (midterm) + 40% (Final).

Lab Work Requirements:

  1. Each lab should be saved in its own directory, such as lab1, lab2, …
  2. Each lab should have its own makefile.
  3. Each lab is expected to be completed independently.
  4. Each lab should be accompanied by a report containing the following:

¨      Description of the lab.

¨      Outline of our solution by describing functions of major routines.

¨      Description of test method. How did you test your program?

¨      Source codes

  1. Each report should be saved under the name ReadMe.doc.
  2. When a lab is completed, please send an email to TA with your login and password (optional, if changed).
  3. Late penalty is 10% per week.
 

Copyright or other proprietary statement goes here.
For problems or questions regarding this web contact shi@temple.edu.
Last updated: January 22, 2008.