Solo un paio di osservazioni secondarie.
Ciao, provo a risponderti io poi eventualmente i professori
mi correggeranno.
L'ALU effettua le operazioni di AND e OR tramite l'utilizzo
delle porte logiche (AND e OR) presenti al suo interno.
In sostanza viene inviato un segnale al multiplexer della ALU
per identificare l'operazione da svolgere: nel caso di AND e
OR viene effettuata proprio l'AND o l'OR logico tra i valori
in ingresso.
Più che la "operazione da svolgere" si tratta, in questa ALU semplificata oltre il livello della decenza, di "selezionare il risultato di interesse", tra tutti risultati, che sono comunque calcolati!
Supponiamo di voler effettuare una AND tra due valori, questi
due valori saranno i valori di input della ALU e verrà inviato
il segnale 00 al multiplexer della ALU (ignoriamo per un
attimo gli altri segnali di selezione) che a questo punto
svolgerà l'AND logico tra i due valori in ingresso (confrontando
bit a bit i due valori).
Anche qui, in eventuali risposte a domande aperte, starei molto attento a non dire che c'è una attivazione di quella sotto-parte dell'ALU svolge l'operazione richiesta (che non è il multi-plexer come appare - penso per svista - nella risposta), questo
sempre per lo stesso motivo: in questa ALU didattica (irrealistica) i risultati delle diverse operazioni sono calcolati tutti e poi si seleziona solo quello di interesse.
Se guardi lo schema della ALU a 1 bit nelle slides delle reti
combinatorie è più semplice vederne il funzionamento.
In generale, io terrei presente anche il libro di testo, si tratta del testo più usato al mondo su questi argomenti e, con l'eccezione della gestione dell'I/O, è fatto bene.