Name | Herr Prof. Dr. Timothy Roscoe |
Lehrgebiet | Informatik |
Adresse | Institut für Computing Platforms ETH Zürich, STF H 314 Stampfenbachstrasse 114 8092 Zürich SWITZERLAND |
Telefon | +41 44 632 88 40 |
troscoe@inf.ethz.ch | |
URL | http://people.inf.ethz.ch/troscoe/ |
Departement | Informatik |
Beziehung | Ordentlicher Professor |
Nummer | Titel | ECTS | Umfang | Dozierende | |
---|---|---|---|---|---|
252-0061-00L | Systems Programming and Computer Architecture | 8 KP | 4V + 2U + 1A | T. Roscoe | |
Kurzbeschreibung | Introduction to computer architecture and system programming: Instruction sets, storage hiearchies, runtime structures with an emphasis on computers as engines for the execution of compiled programs. Interaction between system software and the hardware. Problems that arise from the final respresentation, performance measurement and tuning, and program portability issues are covered. | ||||
Lernziel | The objective is to allow students to understand all aspects of the execution of compiled (C) programs on modern architectures -- the instruction set, the storage resources (registers, stack, memory), input/output, the impact of compiler decisions, and the interaction between the operating system and hardware. Two main themes are correctness issues (esp. those that arise from the finite representation of data) and performance issues (incl. measurement and tuning issues). The interface to the operating system is discussed to prepare for subsequent classes on more advanced systems topics. The two key goals are: 1) To equip students with a thorough understanding of how to write correct programs that run fast on modern computer, and 2) How to write correct and efficient low-level systems code. This course does not cover how to design or build a processor or computer. | ||||
Inhalt | This course provides an overview of "computers" as a platform for the execution of (compiled) computer programs. This course provides a programmer's view of how computer systems execute programs, store information, and communicate. The course introduces the major computer architecture structures that have direct influence on the execution of programs (processors with registers, caches, other levels of the memory hierarchy, supervisor/kernel mode, and I/O structures) and covers implementation and representation issues only to the extend that they are necessary to understand the structure and operation of a computer system. The course attempts to expose students to the practical issues that affect performance, portability, security, robustness, and extensibility. This course provides a foundation for subsequent courses on operating systems, networks, compilers and many other courses that require an understanding of the system-level issues. Topics covered include: machine-level code and its generation by optimizing compilers, address translation, input and output, trap/event handlers, performance evaluation and optimization (with a focus on the practical aspects of data collection and analysis). | ||||
Literatur | The course is based in part on "Computer Systems: A Programmer's Perspective" (2nd Edition) by R. Bryant and D. O'Hallaron, with some additional material. | ||||
Voraussetzungen / Besonderes | 252-0024-00L Parallel Programming, 252-0014-00L Digital Circuits | ||||
252-0817-00L | Distributed Systems Laboratory Im Masterstudium können zusätzlich zu den Vertiefungsübergreifenden Fächern nur max. 10 Kreditpunkte über Laboratorien erarbeitet werden. Diese Labs gelten nur für das Masterstudium. Weitere Laboratorien werden auf dem Beiblatt aufgeführt. | 10 KP | 9P | G. Alonso, F. Mattern, T. Roscoe, R. Wattenhofer | |
Kurzbeschreibung | This course involves the participation in a substantial development and/or evaluation project involving distributed systems technology. There are projects available in a wide range of areas: from web services to ubiquitous computing including wireless networks, ad-hoc networks, RFID, and distributed applications on smartphones. | ||||
Lernziel | Gain hands-on-experience with real products and the latest technology in distributed systems. | ||||
Inhalt | This course involves the participation in a substantial development and/or evaluation project involving distributed systems technology. There are projects available in a wide range of areas: from web services to ubiquitous computing including as well wireless networks, ad-hoc networks, and distributed application on smartphones. The goal of the project is for the students to gain hands-on-experience with real products and the latest technology in distributed systems. There is no lecture associated to the course. For information of the course or projects available, please contact Prof. Mattern, Prof. Wattenhofer, Prof. Roscoe or Prof. G. Alonso. | ||||
263-3800-00L | Advanced Operating Systems | 6 KP | 2V + 2U + 1A | T. Roscoe | |
Kurzbeschreibung | This course is intended to give students a thorough understanding of design and implementation issues for modern operating systems, with a particular emphasis on the challenges of modern hardware features. We will cover key design issues in implementing an operating system, such as memory management, scheduling, protection, inter-process communication, device drivers, and file systems. | ||||
Lernziel | The goals of the course are, firstly, to give students a broader perspective on OS design than that provided by knowledge of Unix or Windows, building on the material in a standard undergraduate operating systems class, and secondly, to provide them with practical experience in dealing directly with the concurrency, resource management, and abstraction problems confronting OS designers and implementers. | ||||
Inhalt | This course is intended to give students a thorough understanding of design and implementation issues for modern operating systems, with a particular emphasis on the challenges of modern hardware features. We will cover key design issues in implementing an operating system, such as memory management, scheduling, protection, inter-process communication, device drivers, and file systems. | ||||
Voraussetzungen / Besonderes | The course is based around a milestone-oriented project, where students work in small groups to implement major components of a microkernel-based operating system. The final assessment will be a combination grades awarded for milestones during the course of the project, a final written report on the work, and a set of test cases on the final code. | ||||
263-3900-00L | Communication Networks Seminar Maximale Teilnehmerzahl: 24 | 2 KP | 2S | T. Roscoe, A. Singla | |
Kurzbeschreibung | We will study recent advances in computer networking by reading and presenting research papers from recent iterations of the top conferences in the area, including NSDI, SIGCOMM, and CoNEXT. | ||||
Lernziel | The objectives are (a) to understand the state-of-the-art in the field; (b) to learn to read, present and critique papers; and (c) to identify opportunities for new research. Students are expected to attend the entire seminar, choose a topic for presentation from a given list, and make a presentation on that topic. Students are evaluated on the knowledge gained, the presentation made, and the report they present at the end of the semester. |