Skip navigation.

Contact Us

Department of Computer Science

Janssen Engineering
Room 236
PO Box 441010
Moscow, Idaho
83844-1010

phone: 208-885-6592
fax: 208-885-9052

e-mail:
dept chair
graduate info
undergrad info
sys admin
webmaster

CS Department Banner Graphic

CS 240 Computer Operating Systems

Total Credits: 3 cr

Course Coordinator: John Munson

URL: http://www2.cs.uidaho.edu/~krings/CS240/index.html

Current Catalog Description: Overview of operating systems principles, concurrency, scheduling and dispatch, memory management, introduction to net-centric computing, communication and networking, OS security. Prereq: CS 121 and 150. Coreq: CS 270.

Textbook: Silberschatz, et. Al., Operating Systems Concepts, 6th Ed, John Wiley, 2003 or equivalent text.

References: Various Linux supporting materials on class website and on the web.

Course Goals: Teach the major operational characteristics of a modern operating system. A single operating system, typically a Unix derivative, will be used to illustrate the various features of a typical modern operating system. Students should be able to evaluate various operating systems with regard to their file systems, scheduling algorithms, network capabilities, and their user interfaces. Students will use various utilities to implement O/S design features such as inter-process communication, scheduling, multi-threaded processes, and networking.

Prerequisites by Topic:

  • Fundamentals of computer science comprised of: (1) programming skills in C/C++, (2) knowledge of data structures, (3) a basic command-level knowledge of an operating system such as Unix / Linux, and (4) an understanding of the basic run-time representation of programming languages. (CS 121)
  • Computer organization and architecture including notions of: (1) binary arithmetic, (2) basic hardware organization including memory and CPU register sets, (3) notions of interrupts, (4) concepts of computer networking and data communications, (5) linking and loading, and (6) basic assembler programming. (CS 150)

Major Topics Covered in the Course: (duration) (CC 2001 BOK reference)

  • Software/Hardware Architecture
    • Review of architecture (1 hour) (AR6)
    • Review of numbers (1 hour) (AR2)
    • Assemblers, Linking and Loading (1 hour) (AR3)
    • O/S evolution
    • Operating system overview (1 hour) (OS1)
    • Functional hardware organization (1 hour) (AR4, AR5, AR6, AR7)
  • O/S architecture
    • Kernels / Micro kernels (1 hour)
    • Shells (1 hour) (HC1)
  • Process Management (OS2)
    • Process description (2 hours) (OS2)
    • Threads (3 hours) (OS2)
    • Concurrency; hours exclusion and Synchronization (2 hours) (OS3)
    • Deadlock (2 hours) (OS3)
  • Memory management
    • Swapping-Overlays (2 hours) (OS5)
    • Paging (1 hour) (OS5)
    • Virtual memory (2 hours) (OS5)
  • Scheduling
    • Uniprocessor scheduling (1 hour) (OS4)
    • Mulitprocessor and Real-time scheduling (1 hour) (OS4)
  • I/O Systems
    • Devices (2 hours) (OS2)
    • Device Controllers/Handlers (1 hours) (OS6)
  • File Management
    • File concepts (1 hour) (OS8)
    • File Directories (2 hours) (OS8)
    • File systems (5 hours) (OS8)
  • Networking
    • Distributed processing (3 hours) (NC2)
    • Security (2 hours) (NC3)
  • Software Measurements
    • Static measurements (2 hours) (OS11)
    • Dynamic measures (2 hours) (OS11)
    • Performance measures (1 hours) (OS11)

Laboratory projects (specify number of weeks on each):

  • Use objdump to analyze the contents of a relocatable program module (1 week)
  • Compare and contrast a relocatable versus an absolute program module in ELF (1week)
  • Use ?ps? and ?top? to interrogate process and compare CPU utilization (1 week)
  • Run compute bound versus I/O process and compare CPU utilization (1 week)
  • The system command line interface with arguments (1week)
  • The use of exec commands (1week)
  • Write a simple shell program (2 weeks)
  • Write a program using multiple thread applications (1week)
  • Write a consumer-producer thread application (1week)
  • Write a program to interrogate the contents of a Unix directory item (1week)
  • Write a program to emulate the Unix 1s -alR command (1week)
  • Term project (8 weeks)

Estimated Curriculum Category Content:

Area Core Advanced Area Core Advanced
Algorithms 0.5 cr   Data Structures    
Software Design 0.5 cr   Prog. Languages    
Computer Arch 0.5 cr   Other 1.5 cr  

Oral and Written Communications: Every student is required to submit at least one written report (not including exams, tests, quizzes, or commented programs) of typically 20 pages and to make one oral presentation of typically 15 minutes in duration.

Social and Ethical Issues: None.

Theoretical Content: Problems in CPU and resource scheduling, concurrency including mutual exclusion and deadlock, memory management, the Input/Output environment including programmed I/O, I/O with interrupts, I/O with DMAs and channel I/O, files and directories, fundamentals of OS computer security, networking, and distributed operating systems.

Problem Analysis: Compare and contrast various operating systems.

Solution Design: None.

Course Outcomes: The following list documents the course outcomes and crossreferences them to the BSCS program outcomes. The letter at the beginning of each reference identifies the program outcome supported. The numbers sequentially identify the course outcome for this course. After completing CS 240 a student should be able to:

  • Identify and describe the major components of a modern operating system and how they work together to provide services for system and application programs. (a-1)
  • Identify and describe the common approaches to and algorithms for process management. (a-2)
  • Identify and describe the common approaches to and algorithms for memory management. (a-3)
  • Identify and describe the common approaches to and algorithms for resource scheduling. (a-4)
  • Identify and describe how device I/O is handled. (a-5)
  • Identify and describe the OS facilities and support for network communication. (a-6)
  • Identify and describe how file systems are organized and managed, and how file system security can be achieved. (a-7)
  • Effectively implement programming constructs to achieve process synchronization, communication, and deadlock prevention. (a-8)
  • Conduct experiments on software systems. (c-1)
  • Analyze and interpret experimental data. (c-2)
  • Communicate effectively in written form. (f-1)
  • Communicate effectively in oral form. (f-2)
  • Recognize the need for lifelong learning. (h-1)
  • Acquire broad knowledge in a discipline such as operating systems. (h-2)
  • Use various Unix system commands and utilities including: ps, top, exec,and objdump. (i-1)