Download Computer Architecture and Operating Systems

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Memorial University
Department of Computer Science
PhD Comprehensive Exam Guidelines
Computer Architecture and Operating Systems
Aim: To examine candidates’ familiarity with basic concepts of computer architecture and operating systems, outlined in the Body of Knowledge of the ACM/IEEE Computer Science Curriculum 2013. The
emphasis is on high-performance computing, concurrency and parallelism, and quantitative characterization.
Duration: 1 hour.
Topics: The following core–level knowledge areas of the ACM/IEEE Computer Science Curriculum 2013
are covered: SF – Systems Fundamentals, AR – Architecture and Organization, OS – Operating Systems,
anf PD – Parallel and Distributed Computing.
AR / Digital logic and digital systems
combinatorial versus sequential logic • basic building blocks: arithmetic-logic unit, registers, central
processing unit, memory • register transfer notation, hardware description languages • physical
constraints (gate delay, fan-in, fan-out, “power wall”)
AR / Machine level representation of data
bits, bytes and words • numeric data representations and number bases • fixed- and floating-point
systems, signed and twos-complement representations • representation of non-numeric data (characters, strings, graphical data) • representation of records and arrays
AR / Assembly level machine organization
basic organization of von Neumann machine • control unit, instruction fetch, decode and execution
• instruction sets and instruction types (data manipulation, control, I/O) • instructions formats •
addressing modes • subroutine call and return mechanisms • instruction level parallelism, pipeling •
I/O and interrupts • program stack and heap • shared-memory multiprocessor/multicore organizations • introduction to SIMD versus MIMD and the Flynn taxonomy • translation of fundamental
high-level constructs to machine-language level
AR / Memory system organization and architecture
memory hierarchy, temporal and spatial locality • main memory organization • latency, cycle time,
bandwidth and interleaving • cache memories (address mapping, block size, replacement and store
policy) • cache consistency • virtual memory (page table, TLB, working set) • fault handling and
reliability • error coding, data compressions and data integrity
AR / Interfacing and communication
I/O fundamentals, buffering, programmed and iterrupt-driven I/O • interrupt structures, vectored
and prioritized interrupts • buses, bus protocols, arbitration, direct memory access (DMA) • communication networks, RAID architectures
SF / State and state machines
discrete versus continuous systems • clocks, states and state transitions, sequencing • combinational
logic, sequential logic, registers, memory • computer and network protocols as state machines
SF / Parallelism
sequential versus parallel processing • parallel versus concurrent programming • request versus task
parallelism • client-server/web services, thread (fork-join), pipelining • multicore architectures and
hardware support for synchronization
SF / Evaluation
performance metrics • workloads and benchmarking • CPI (cycles per instruction) metric and instruction set design • Amdahl’s law (the upper bound on the parallel speed-up)
SF / Proximity
latencies in computer systems • caches and the effects of temporal and spacial localities • cache
coherency in computer systems • memory hierarchy and the average memory access time
OS / Overview of operating systems
objectives and functions of operating systems • design issues (efficiency, robustness, flexibility, portability, security, compatibility) • networked, client-server, distributed operating systems
OS / Operating system principles
structuring methods (monolithic, layered, modular, micro-kernel model) • abstractions, processes,
resources • application program interfaces (APIs) • device organization • interrupts: methods and
implementations • concept of user/system state and protection, state transitions to kernel
OS / Concurrency
concurrency within the framework of an operating system • process states and state diagrams •
data structures (ready lists, process control blocks, etc.) • dispatching and context switching •
synchronization primitives • multiprocessor issues (spin-locks, reentrancy)
OS / Scheduling and dispatch
preemptive and non-preemptive scheduling • schedulers and policies • processes and threads • deadlines and real-time issues
OS / Memory management
physical memory management hardware • working sets and thrashing • caching
OS / Security and protection
overviews of system security • policy/mechanism separation • security methods and services • protection, access control and authentication • backups
PD / Parallelism fundamentals
multiple simultaneous computations • parallelism versus concurrency • parallelism, communication
and computation; programming constructs for coordinating simultaneous computations • programing
errors in non-sequential programs (data races, deadlocks, starvation)
PD / Parallel decomposition
task-based decomposition (thread implementation) • data-parallel decomposition (SIMD and MapReduce) • actors and reactive processes
PD / Communication and coordination
shared-memory communication • message-passing communication • atomicity (critical sections, transactions, mutual exclusion)
PD / Parallel algorithms, analysis and programming
critical paths, work and span, Amdahl’s law • speed-up and scalability • naturally parallel algorithms
• parallel algorithmic patterns (divide-and-conquer, map-and-reduce, master-worker)
PD / Parallel architectures
multicore processors • shared versus distributed memory • symmetric multiprocessing (SMP) • vector
processing (SIMD architectures)
References for Computer Architecture:
• J.L. Hennessy, D.A. Patterson, “Computer architecture: a quantitative approach” (5 ed.), Morgan
Kaufmann 2012 (ISBN 978-0-12-383872-8).
• A.S. Tanenbaum, “Structured computer architecture” (6 ed.); Prentice-Hall 2012 (ISBN 978-0-13291652-3).
• W. Stallings, “Computer organization and architecture” (10 ed,); Pearson 2016 (ISBN 978-0-13410229-0).
References for Operating Systems:
• A. Silbershatz, P.B. Galvin, G. Gagne, “Operating system concepts” (9 ed.), Addison-Wesley 2012
(ISBN 978-1-118-06333-0).
• A.S. Tanenbaum, “Modern operating systems” (4 ed.); Pearson 2014 (ISBN 0-13-359162-0).
• M. Milenkovic, “Operating systems: concepts and design”; McGraw Hill Education 2009 (ISBN
0-07-463272-8).
Last update: February 2017.
Related documents