Programma del corso

INTRODUCTION
Introduction to computer science. Organization and architecture of computers. Computer evolution and performance. A taxonomy of modern computer systems.

THEORETICAL MODELS FOR COMPUTING MACHINES
Combinatorial machines, sequential machines and automata, the Turing machine, the Von Neumann's model.

COMPUTER ARCHITECTURE
Computer components and functions. Interconnections.

THE CENTRAL PROCESSING UNIT
Main concepts. Processor structure and function. Pipelining. X86 and ARM architectures in brief. RISC and CISC. Superscalar processors. Performance issues. Programming in assembly language.

MEMORY
Memory hierarchy. Primary memory: organization and technologies. Secondary memory: organization and technologies. Caching: organization and technologies. Performance issues.

INPUT/OUTPUT
Main concepts and organization.

SOFTWARE
The operating systems: organization and function. Scheduling. Memory management. Application software. Performance issues.

COMPUTER NETWORKS
Introduction to computer networks. Classification of networks. Local networks. Internetworking. ISO/OSI and TCP/IP. Internet. High performance networks. Performance issues.

PARALLEL SYSTEMS
Multiprocessor systems and organization. NUMA and UMA. Cache issues. Vector processors. Computer clusters. Multicore computers. Performance issues.

WAREHOUSE SCALE COMPUTERS
Introduction. Main issues. Datacenter organization. Cloud computing. Performance issues.