CS 5600: Computer Systems

Course Description

Studies the structure, components, design, implementation, and internal operation of computer systems, focusing mainly on the operating system level. Reviews computer hardware and architecture including the arithmetic and logic unit, and the control unit. Covers current operating system components and construction techniques including the memory and memory controller, I/O device management, device drivers, memory management, file system structures, and the user interface. Introduces distributed operating systems. Discusses issues arising from concurrency and distribution, such as scheduling of concurrent processes, interprocess communication and synchronization, resource sharing and allocation, and deadlock management and resolution. Includes examples from real operating systems. Exposes students to the system concepts through programming exercises.

Course Information

Course Title:
Computer Systems
Course Number:
CS 5600
Semester:
Fall 2017
Class Place:
307 Whidbey
Class Time:
Mondays 6:30PM-9:30PM
Prerequisites:
None

Piazza

We will use Piazza for all communication, please register for Piazza here.


Contact Information

Role
Name and Email
Location
Office Hours
Instructor
Vinayak Rao (v.rao@neu.edu)
Whidbey
Monday 5-6:30
Instructor
Alexander Lash
TBD
TBD

Course Description

Studies the structure, components, design, implementation, and internal operation of computer systems, focusing mainly on the operating system level. Reviews computer hardware and architecture including the arithmetic and logic unit, and the control unit. Covers current operating system components and construction techniques including the memory and memory controller, I/O device management, device drivers, memory management, file system structures, and the user interface. Introduces distributed operating systems. Discusses issues arising from concurrency and distribution, such as scheduling of concurrent processes, interprocess communication and synchronization, resource sharing and allocation, and deadlock management and resolution. Includes examples from real operating systems. Exposes students to the system concepts through programming exercises.


Grading Policy

The class will consist of 3 or 4 projects with the following weights.

Projects:
95%
Instructor discretion:
5%

The final grade for a student is calculated as the weighted average of the preceding list and rounded up to the nearest integer. The mapping to a letter grade uses the following scale

A
[95,100]
A-
[90,94]
A-
[90,94]
B+
[85,89]
B
[80,84]
B-
[75,79]
C+
[70,74]
C
[65,69]
C-
[60,64]
D
[0,59]

Attendance

You are expected to attend all lectures.

Missing Lectures

If you have to miss a lecture. Materials covered for each lecture, readings, tutorials, assignments, are available on the course web page.

Assignment Extensions

Assignment extensions are at the discretion of the instructors. If you would like to discuss a possible extensions talk to the course instructors in advance.


Academic Honesty

You are expected to read, understand and follow the University's policies on Academic Integrity

During assignments you are encouraged to discuss the problem with classmates on piazza or other forums. You are however not allowed to share solutions.

Working Individually

All work submitted for assignments expected to be completed individual must be your own work. You are not allowed to share code. Code that is identical or similar will be penalized and reported to the appropriate University authorities.

Working in Teams

All work submitted for assignments expected to be completed as a team must be the team's work. You are not allowed to share code with people outside your team or with another team. Code that is identical or similar will be penalized and reported to the appropriate University authorities.


Diversity/Disability Statements

If you require support during the course due to disability please ensure that you are already registered with the University's Disability Center and contact your course instructors in order to coordinate any support needed during the course.


Helpful Links / Resources


The schedule is tentative and might change during the semester.

Operating Systems

  • Operating Systems: Three Easy Pieces. Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau.

    The book is available on line and there is an option to purchase a hardcopy of the book. We will be using some of this book's chapters.

  • Operating Systems Concepts.. Abraham Silberschatz, Peter B. Galvin, Greg Gagne.

    The book is a classic reference of Operating Systems. Covers OS concepts and provides examples from existing OSes.

  • Modern Operating Systems. Andrew S. Tanenbaum.

    Another classic reference. The book is more implementation focused with case studies that cover some of the popular OSes.


C Programming

  • The C Programming Langauge (2nd Edition). Brian W. Kernighan, Dennis M. Ritchie.

    This is "the" C book, covers the language and some of the standard C libraries. This is a classic.

  • C: A Reference Manual (5th Edition). Samuel P. Harbison, Guy L. Steele Jr.

    Provides a thorough treatment of the C language, common libraries and portability. This is one of the best reference books on C.

  • Learn C The Hard Way.

    Online book with a hands on approach that covers topics only through examples.


Unix

The best way to learn working with a large system like UNIX (or derivatives like LINUX) is to use it and read the documentation that comes with the operating system itself. Learn how to use and leverage the info and man programs.

Computer Architecture and Assembly