Linguaggio Assembly
Assembly è un linguaggio che usa parole simboliche, mnemonici, invece degli 0 e 1.
Istruzioni principali
- LOAD → carica un dato, es. LOAD R1, MEM1, cioè prendi il valore nella cella di memoria MEM1 e mettilo nel registro R1.
- STORE → salva un dato, es. STORE R1, MEM1 → prendi un valore nel registro R1 e salvalo nella memoria MEM1.
- CMP → confronta, es. CMP R1, R2; cioè confronta i valori nei registri R1 e R2 → il risultato viene salvato in un registro speciale di stato, flag → flag zero = 1 sono uguali; flag zero = 0 sono diversi. Poi c’è un’istruzione che controlla quel risultato: se il flag dice uguali o diversi il programma può saltare ad un’altra parte del programma, salto condizionato.
- MOV → sposta i dati.
- ADD → aggiungere.
Indirizzamento indiretto → LOAD R1, (R2) → guarda nel registro R2, quel valore è un indirizzo di memoria, vai in quella memoria e carica il dato in R1.
Traduzione e processori
Assembler traduce questo linguaggio mnemonico in un codice binario.
Anche il contrario è possibile, si può risalire all’Assembly dal codice binario → Disassembly.
Ogni processore ha il suo Assembly.
Sistema operativo
Il sistema operativo è un software molto complesso che gestisce il computer, le sue risorse come la CPU, la RAM, il disco, le periferiche.
Esso ha due ruoli principali:
- Gestire l’hardware del computer.
- Permettere ai programmi di funzionare → fa da interfaccia tra i programmi e l’hardware.
Esso è caricato nella parte bassa della memoria.
Due tipi di software
- Programmi di sistema → sono i programmi che gestiscono il computer, SO, utilità di sistema, gestione di memoria, gestione dispositivi.
- Programmi applicativi → i programmi che usano gli utenti per fare qualcosa, browser, editor di testo, giochi, programmi di calcolo.
Quando fai doppio click
- Il programma è salvato su un disco, SSD o hard disk.
- Il sistema operativo lo carica nella memoria RAM, perché la CPU lavora solo su dati che stanno in RAM; quindi il SO deve trovare spazio libero nella RAM e copiare il programma dal disco alla RAM → allocazione di memoria.
- Assegna la CPU al programma.
- Il programma inizia a essere eseguito.
La CPU è una risorsa molto costosa e limitata, può eseguire solo un processo per volta → il SO decide quale programma esegue la CPU in ogni momento, schedulazione dei processi → questa scelta è guidata da un sottoprogramma del SO, ragionamenti possono essere anche complessi.
Quando si accende il computer il SO non parte subito, prima fase chiamata boot in cui il computer controlla l’hardware, verifica che le periferiche funzionino e poi carica il SO.
Tipi di sistemi operativi
I SO possono essere:
- Generali → servono per eseguire tantissimi tipi di programmi, quelli dei PC normali.
- Dedicati.