COT6600 Quantum Computation

advertisement
General Information
Spring 2012: COP 4932 - Computer Systems Design Principles
Instructor: Dan Marinescu
Office: HEC 304;
Email: dcm@cs.ucf.edu
Class: M – Wd; 3 - 4:15 PM, HEC 103
Office hours: M – Wd; 2- 3 PM
Class Web site:
Textbook: “ Principles of Computer Systems Design; An Introduction''
by Jerome Saltzer and Frans Kaasohoek. Publisher: Morgan Kaufmann,
2009, ISBN 978-0-12-374957-4.
Class objectives: Give the students a fresh look at basic principles guiding
the design and implementation of operating systems. The focus of the class
on the identification of the most important questions the designer of an
operating system has to address and “why” a solution is better than others,
while traditional operating systems classes focus on “how” existing systems
are implemented. Another major departure from the more traditional
approach in covering operating systems is the emphasis on performance;
several lectures cover computer system performance analysis. We also
emphasize the “big picture,” the relationship of operating systems with other
subjects from undergraduate curriculum including: computer
architecture/computer organization, programming languages, algorithms,
networking, databases, modeling and performance analysis. This course
covers topics on the engineering of computer software and hardware
systems: techniques for controlling complexity; strong modularity using
client-server design, virtual memory, and threads; networks; atomicity and
coordination; performance. The discussion is anchored in reality and abstract
subjects are followed by an in depth analysis of case studies.
Class attendance and grading: The students are strongly encouraged
to attend every class and be active. Our policy is simple, based on
professional standards: on exams you should not collaborate. On all other
assignments you are welcome to work with anyone else on ideas and
understanding, but your writing should be your own and you should
carefully acknowledge all contributions of ideas by others, whether from
classmates or from papers you have read. Acts of academic dishonesty will
not be tolerated; when detected they lead to unconditional failure of the
class. The grading scheme is:
Homework and research paper: 30%
Project: 35%
Midterm: 10%
Final: 25%
Class outline
A. Week 1
a. Class organization
b. System complexity
c. Sources of complexity
d. Coping with complexity
e. Complexity of computing and communication systems
f. Basic abstractions
i. Communication Links
ii. Interpreters
iii. Memory
B. Weeks 2 - 3
a. Networking concepts
i. Network architecture; network core; routing
ii. Networking protocols (data link, network, transport,
application protocols)
iii. Congestion control
iv. Latency and bandwidth; network performance
b. The Internet as a complex system
C. Week 4 – Coping with complexity
a. Modularity
b. Layering
c. Hierarchy
d. Naming
e. Fundamental abstractions – interpreters, memory, communication
channels
f. The hardware layer
i. Processors
ii. Memory
iii. Disks
iv. RAID
D. Week 5
a. The software layer
i. The kernel
ii. File systems
b. Case study – the Unix file system
c. Naming in Unix
E. Week 6 - Naming
a. Generic naming model
b. Name mapping algorithms
c. Practical design of naming schemes
d. Metadata and name overloading
e. Addresses and names
f. Pitfalls in naming
g. Unique names and lifetime of names
h. Case study URLs (Uniform Resource Locators)
F. Week 7 - Modularity
a. Soft modularity
b. Procedure call conventions and the memory map
c. Enforced modularity
d. Clients and services
e. Heterogeneity
f. Remote procedure call (RPC)
g. Communication through an intermediary
h. Case study – the Web, HTTP, HTML.
G. Week 8
a. Case study: DNS - the Internet Domain Name Service
b. Case study: NFS – the Network File System
c. Peer-to-peer systems
d. Midterm
H. Week 9 - Processor virtualization
a. Virtualization
b. Processor virtualization- threads
i. Thread state
ii. Thread management
iii. Kernel and application threads
c. Address space
d. Processor sharing
e. Thread coordination with a bounded buffer
f. The YIELD system call
I. Week 10 - Concurrency
a. Safety, Liveness, Bounded-Wait, Fairness
b. Critical sections – a solution to critical section problem
c. Locks and Before-or-After actions.
d. Hardware support for locks
e. Deadlocks
f. Signals
g. Semaphores
h. Monitors
J. Week 11
a. WAIT, NOTIFY, AWAIT, ADVANCE, SEQUENCE, TICKET
systems calls for thread coordination with a bounded buffer.
b. Processor switching
c. The scheduler and the processor thread
d. Basic scheduling concepts and objectives
e. Scheduling algorithms
i. First In first Out - FIFO
ii. Shortest Job first, SJF – optimality of SJF
iii. Round robin
iv. Priority scheduling
v. Multiple queues, multiple queues with feedback.
f. Comparison of scheduling algorithms
K. Week 12 – Memory virtualization
a. Memory virtualization
b. Virtual memory and caching
c. Paging, segmentation, paging and segmentation
d. Dynamic address translation
e. Page fault
f. Multi-level memories
g. Name resolution in multi-level memories
h. The Multi-Level-Memory-Management and the Scheduler
L. Week 13
a. Performance of multi-level memories
b. Page replacement algorithms
i. FIFO
ii. OPTIMAL
iii. LRU
iv. MRU
c. Belady anomaly
d. The subset property of a page replacement algorithm and total
ordering
e. Simulation analysis of page replacement algorithms
f. Practical implementation of page replacement – the clock
algorithm
M. Week 14
a. Performance of computing and communication systems
b. Performance metric
c. Analytical models
d. Elements of queuing analysis; M/M/1 systems
e. Simulation of computing and communication systems
f. Discrete event simulation
g. Process-oriented simulation
h. Distributed simulation
N. Week 15
a. Review
b. The big picture
Download