Lo studente che segue il corso e supera l'esame acquisisce una solida conoscenza dei sistemi a singolo processore basati sull'architettura AMD64, incluso il suo linguaggio Assembly, il meccanismo delle interruzioni, i metodi di protezione e la paginazione. Inoltre, sarà in grado di capire come tali meccanismi possono essere utilizzati per realizzare un semplice, ma funzionante, nucleo di Sistema Operativo multiprogrammato.
The student who takes the course and passes the exam will gain a solid understanding of single-processor systems based on the AMD64 architecture, including its Assembly language, interrupt mechanism, protection methods, and paging. In addition, he or she will be able to understand how these mechanisms can be used to implement a simple, but workable, multiprogrammed Operating System kernel.
Le conoscenze dello studente verranno verificate durante la prova orale dell'esame finale.
The student's knowledge will be tested during the oral examination of the final exam.
Lo studente sarà in grado di scrivere programmi misti C++/Assembly per l'architettura AMD64 e modificare un semplice nucleo didattico che implementa la multiprogrammazione con memoria condivisa, la memoria virtuale e l'accesso alle periferiche di I/O.
The student will be able to write mixed C++/Assembly programs for the AMD64 architecture and modify a simple educational kernel that implements multiprogramming with shared memory, virtual memory, and access to I/O peripherals.
Le capacità dello studente saranno verificate durante la prova pratica al calcolatore, parte dell'esame finale.
The student's skills will be tested during the practical computer test, part of the final exam.
Lo studente può aumentare la propria capacità di identificare e correggere le vere cause del malfunzionamento di un sistema di elaborazione, soprattutto quelle causate dai propri errori di programmazione.
The student can increase his or her ability to identify and correct the true causes of a computing system's malfunction, especially those caused by his or her own programming errors.
Lo studente si troverà ad operare in un sistema di cui conosce tutte le componenti, sia hardware che software. Inoltre, nel caso lo studente consegni all'esame una programma non funzionante, dovrà poi essere lui stesso a trovarne gli errori.
The student will be operating in a system of which he knows all the components, both hardware and software. In addition, in case the student delivers a non-functioning program to the exam, he will then have to find the errors himself.
Linguaggio assembly per AMD64, programmazione mista C++/assembly, passaggio dei parametri tramite registri; la memoria cache ad accesso diretto e associativa ad insiemi; la paginazione su quattro livelli, il TLB; le periferiche di I/O: tastiera, video in modalità testo e grafica, l'interfaccia di conteggio, gli hard disk ATA; il bus PCI e il bus mastering; le interruzioni e il controllore APIC; la CPU: la tecnica della pipeline, l'esecuzione fuori ordine e speculativa; la protezione; la multiprogrammazione e i processi; la mutua esclusione e i semafori; la memoria virtuale.
Assembly language for AMD64, mixed C++/assembly programming, parameter passing via registers; direct access and associative set cache memory; four-level paging, the TLB; the I/O peripherals: Keyboard, text-mode and graphics-mode video, the counting interface, ATA hard drives; the PCI bus and bus mastering; interrupts and the APIC controller; the CPU: the pipeline technique, out-of-order and speculative execution; protection; multiprogramming and processes; mutual exclusion and semaphores; virtual memory.
Dispense fornite dal docente, registrazioni delle lezioni online degli A/A 2020/21 e 2021/22.
Approfondimenti:
"Computer Architecture, Fifth Edition: A Quantitative Approach", 5th edition, J.L. Hennesy and D.A. Patterson, Morgan Kaufmann
Handouts provided by lecturer, online lecture recordings of A/A 2020/21 and 2021/22.
Insights:
"Computer Architecture, Fifth Edition: A Quantitative Approach," 5th edition, J.L. Hennesy and D.A. Patterson, Morgan Kaufmann
L'esame è composto da una prova pratica al calcolatore e una prova orale
La prova pratica deve essere sostenuta prima della prova orale. Per accedere alla prova orale è necessario aver ottenuto una votazione di almeno 15/30 alla prova pratica. La prova pratica viene conservata per 3 appelli.
The exam consists of a practical computer test and an oral test
The practical test must be taken before the oral test. A grade of at least 15/30 on the practical test is required to enter the oral test. The practical test is retained for 3 appeals.