Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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.