16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

• Networking subsystem focusing on the transport layer protocols (stop and wait, pipelined, congestion<br />

control, windowing) , network layer protocols (Dijkstra, distance vector) and service models (circuit-,<br />

message-, and packet-switching), link layer protocols (Ethernet, token ring)<br />

• Networking gear (NIC, hubs/repeater, bridge, switch, VLAN)<br />

• Performance of networking (end-to-end latency, throughput, queuing delays, wire delay, time of flight,<br />

protocol overhead).<br />

What is the format of the course<br />

Three hours of lecture per week; Two hours of TA-led recitation per week to provide help on homeworks and<br />

projects; and 3 hours of unsupervised laboratory per week. Video recordings of classroom lectures (from past<br />

offering) available as an additional study aid.<br />

How are students assessed<br />

Two midterms, one <strong>final</strong>, 5 homeworks, 5 projects (two architecture projects: processor datapath and control<br />

implementation, and augmenting processor to handle interrupts; three OS projects: paged virtual memory<br />

management, multithreaded processor scheduler using pthreads, and reliable transport layer implementation using<br />

pthreads). Plus an extra-credit project (a uniprocessor cache simulator).<br />

Course textbooks and materials<br />

Ramachandran and Leahy Jr., Computer Systems: An Integrated Approach to Architecture and Operating Systems,<br />

Addison-Wesley, 2010.<br />

Why do you teach the course this way<br />

There is excitement when you talk to high school students about computers. There is a sense of mystery as to what<br />

is “inside the box” that makes the computer do such things as play video games with cool graphics, play music—<br />

be it rap or symphony—send instant messages to friends, and so on. What makes the box interesting is not just the<br />

hardware, but also how the hardware and the system software work in tandem to make it all happen. Therefore, the<br />

path we take in this course is to look at hardware and software together to see how one helps the other and how<br />

together they make the box interesting and useful. We call this approach “unraveling the box”—that is, resolving<br />

the mystery of what is inside the box: We look inside the box and understand how to design the key hardware<br />

elements (processor, memory, and peripheral controllers) and the OS abstractions needed to manage all the<br />

hardware resources inside a computer, including processor, memory, I/O and disk, multiple processors, and<br />

network. Since the students take this course in their sophomore year, it also whets the appetite of the students and<br />

gets them interested in systems early so that they can pursue research as undergraduates in systems. The<br />

traditional silo model of teaching architecture and operating systems in later years (junior/senior) restricts this<br />

opportunity. The course was first offered in Fall 1999. It has been offered 3 times every year ever since. Over<br />

the years, the course has been taught by a variety of faculty specializing in architecture, operating systems, and<br />

networking. Thus the content of the course has been revised multiple times; the most recent revision was in 2010.<br />

It is a required course and it has gotten a reputation as a “tough” one, and some students end up taking it multiple<br />

times to pass the course with the required “C” passing grade.<br />

- 415 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!