Computer Systems Engineering (Undergraduate), Fall 2019

Overview

This course involves two mains aspects to illustrate computer systems: operating systems and computer architecture.

In operating systems part, we will examine the important problems in operating system design and implementation. The operating system provides an established, convenient, and efficient interface between user programs and the bare hardware of the computer on which they run. The operating system is responsible for sharing resources (e.g., disks, networks, and processors), 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 interfering with one another. The course will start with a brief historical perspective of the evolution of operating systems over the last fifty years and then cover the major components of most operating systems. This discussion will cover 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 file systems; and on operating system support for distributed systems.

In computer architecture part, we will give an introduction on computer architecture. In this class, we will focus on microprocessor design, including CPU and memory, the interface between hardware and software, and an introduction to multiprocessors.

More specifically, we will cover the following topics:

Requirements: Programming Language (C/C++/Python/Java), Data Structure, Computer Organization.


Instructor

NameEmailOfficeTelOffice Hours
Chentao Wu Room 513 SEIEE Building #3 (021) 3420 8230 By appointment

Teaching Assistant

NameEmailOfficeTelOffice Hours
Heming Zeng 3rd floor, Winning Lab, School of Software Building By appointment
Chi Zhang 3rd floor, Winning Lab, School of Software Building By appointment

Course Policies

Teamwork

Students are encouraged to talk to each other, to the course staff, or to anyone else about any of the assignments. Assistance must be limited to discussion of the problem and sketching general approaches to a solution. Each student (or team) must write out his or her own solutions to the homework. Any forms of copying code is strictly prohibited.

Late Policy

Cheating

Cheating is NOT tolerated! Please read the SJTU's Academic Code of Conduct if you are not familiar with the definition of cheating. If you are caught cheating on an assignment, you will get a zero for that assignment. Other repercussions are also possible.