OMSE 510: Computing Foundations
Instructor:
Francis Chang (Home page | francis at francischang dot com)
Office hours: By e-mail appointment (for now)
TA:
TBA
Office hours: By e-mail appointment (for now)
Time:
Tuesdays, Neuberger Hall 387
Class e-mail list:
cse510-malware-subscribe@yahoogroups.com
http://groups.yahoo.com/group/PSU-OMSE510/
Room:
TBA
Remote bradcast:
Not Available
About This Course
This course has been designed for graduate level software
engineering students who are lacking key foundation computer science knowledge
in the areas of computer architecture and operating systems. This course may
also be taken by students needing or wanting to upgrade their knowledge in
these areas. With the approval of an OMSE advisor, OMSE students may register
in this course and count it for credit as an OMSE elective.
Prerequistes
The chief prerequisite for this course is a basic understanding of C or C++.
Course Description
Students are first introduced to the building blocks of a basic
computing machine including the central processing unit, data transfer buses,
registers, program counters, various types of memories, and instruction sets.
A range of processor architectures and organizations including pipelining,
virtual memory and caching are explored. The course then explores the
principles of operating systems and how they relate to the underlying hardware
structures. Concurrency, process synchronization, process scheduling, memory
management, interrupt handling, and device management are also explored.
Required textbooks:
Textbooks & Readings:
Computer Systems: A Programmer's Perspective
Bryant, Randal E. & O'Hallaron, David R.
Prentice Hall, August 2002
ISBN: 013034074X
Modern Operating Systems, 2nd Ed.
Author: *Tanenbaum, Andrew S.
Prentice Hall, January 2001
ISBN: 0130313580
Optional Textbook:
Computer Architecture A Quantitative Approach 2nd ed
John L. Hennessy & David A. Patterson
Morgan kaufmann Publishers, 1996
ISBN 1-55860-329-8
Course Outline
- Session 1 - Class Intro
- Class Overview/Intro
- Ahmdal's Law
- binary/hex/integers/IEEE floats
- Grande Architectural Overview
- Readings:Bryant & O'Hallaron, Ch 1,2, Hennesy & Patterson, Ch 2
- Assignment: Bryant & O’Hallaron:
Problems 5.9 & 5.10, p 443
2.4, p 32
2.16, p 52
2.31, p 82
2.33, p 87
- Session 2 - System Devices
- Disk Drives
- RAID
- The buses
- Memory
- Session 3 - The CPU
- Caches
- Simplified DLX
- Brief on IA32
- Overview of the CPU
- Session 4 -
- Pipelining, Hazards & Bubbles
- Superscaler Execution
- Branch Prediction
- Session 5 - Midterm & Cleanup
- Computer Architecture Cleanup
- MIDTERM
- Session 6 - Operating Systems & Processes
- Operating Systems overview
- Processes, Kernel
- Timeslicing, memory abstractions
- Process scheduling
- Session 7 - Memory Management
- Memory Management Schemes
- Virtual/Physical Memory management
- TLB
- Virtual Memory
- Session 8 - Concurrency
- IPC
- Multi-threading
- Critical Sections
- Synchronization
- Deadlock, consumer/producer, dining philosphers
- Session 9 - File Systems
- File System types
- Directory structures
- Inodes & Blocks
- Fragmentation
- Permissions
- Session 10 - Operating Systems Cleanupg
- Kernel Design
- Device Drivers
- Micro/Monolithic Kernel
Slides Available at http://www.cs.pdx.edu/~francis/omse510/lectures/.
Last updated... sometimish