Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


informatica mappa concettuale, Schemi e mappe concettuali di Sistemi Informatici

mappa concettuale di informatica

Tipologia: Schemi e mappe concettuali

2025/2026

Caricato il 20/01/2026

mario-malga
mario-malga 🇮🇹

3 documenti

1 / 1

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Il computer non è specializzato in un solo compito, può svolgere molte funzioni diverse.
La finalità cambia a seconda del programma eseguito (testi, filmati, progettazione, musica, giochi, ecc.).
Generalità e programmabilità
Velocissimo esecutore di programmi, capace di miliardi di operazioni.
Se il programma è errato, produce errori molto velocemente (esempio sonda Mariner).
Potenza e rischi degli errori
Natura e uso del computer
Hardware: componenti fisici tangibili (monitor, tastiera, mouse, webcam, stampanti).
Hardware vs Software
Programma speciale che sovrintende tutte le operazioni.
Gestisce sia hardware sia software e permette l’interazione utente–computer.
Sistema operativo come ponte
Hardware, software e sistema operativo
Dati espressi tramite codifiche (numeri, caratteri, immagini, suoni).
Numeri anche in base 2 (binaria), non solo base 10; introduzione a “base N”.
Codifica dei dati e basi numeriche
Bit (0/1) e byte (8 bit) per rappresentare numeri e testo.
Tabelle di codifica: ASCII (1 byte, fino a 256 caratteri) e Unicode (2 byte, fino a 65.536 caratteri).
Codifica binaria e caratteri
Rappresentazione dell’informazione
Memoria interna (RAM): contiene dati e istruzioni dei programmi in esecuzione, è volatile e ad accesso diretto.
Memoria esterna/di massa: conserva dati e programmi in modo persistente, capacità maggiore ma tempi di accesso più lenti.
– Cinque elementi principali
CPU (processore): esegue le elaborazioni, controlla trasferimenti di dati e programmi, legge/decodifica/esegue istruzioni.
Bus di sistema e interfaccia alle periferiche: il bus collega le unità funzionali, l’interfaccia gestisce tastiera, video, mouse e altre periferiche esterne.
– Processore, bus, interfacce
Componenti principali della macchina
Architettura della macchina di von Neumann
Fase di istruzione (fetch): lettura da memoria dell’istruzione da eseguire e sua decodifica da parte della CPU.
Fase di esecuzione: lettura degli operandi, esecuzione dell’istruzione, memorizzazione del risultato.
– Struttura del ciclo
Modello sequenziale: la CPU esegue un passo del ciclo per ogni colpo di clock, procedendo istruzione dopo istruzione.
Necessità di caricamento in RAM: per essere eseguito, un programma deve prima essere caricato nella memoria centrale.
- Caratteristiche del modello
Ciclo della CPU
Celle e indirizzi: la RAM è una sequenza ordinata di celle, ciascuna con un indirizzo univoco, contenente una parola.
Memoria volatile ad accesso diretto: lettura/scrittura illimitata, ma perdita del contenuto allo spegnimento.
– Struttura e proprietà della RAM
Registro indirizzi e registro dati: la CPU usa il registro indirizzi per indicare la cella e il registro dati per contenere la parola letta/scritta.
Lettura/scrittura: in lettura la CPU copia il contenuto della cella nel registro dati; in scrittura copia dal registro dati alla cella, sovrascrivendo il contenuto precedente.
– Indirizzi, registri e operazioni di copia
Memoria centrale (RAM) e accesso
Caratteristiche generali: permanenti, grande capacità, accesso più lento della RAM.
Memoria magnetica: floppy disk (storico), hard disk interni/esterni con dischi, tracce, settori e testine.
Memoria ottica: CD e DVD, basati su laser, con zone opache/riflettenti, versioni ROM, registrabili e riscrivibili.
Pen drive: supporti esterni recenti a stato solido.
Tipi di memoria di massa
Formattazione: suddivisione del disco in settori e tracce che formano blocchi indirizzabili.
FAT e file: File Allocation Table per collegare i blocchi che compongono un file, indicando blocco iniziale e successivi.
Controller: interfaccia che gestisce il flusso dati tra CPU e dispositivo di memoria, nascondendo la gestione dei blocchi.
Organizzazione su disco e controller
Dispositivi di memoria di massa
Porte seriali: collegamento uno-a-uno, 2 linee (trasmissione/ricezione), invia un bit per volta; usata per modem, vecchie stampanti, periferiche.
Porte parallele: trasmettono più bit per volta (es. 8), usate per stampanti e alcuni dispositivi esterni, più veloci delle seriali.
SCSI: interfaccia per collegare in cascata più periferiche (fino a ~8) sulla stessa porta; oggi in disuso.
Collegamenti cablati tradizionali
USB e FireWire: connessione in cascata di molte periferiche, velocità elevata, supporto hot plug e alimentazione delle periferiche.
Bluetooth: collegamenti a breve distanza (cellulari, stampanti, periferiche).
Wi-Fi: connessioni radio a media distanza, per reti e dispositivi.
Collegamenti moderni e wireless
Porte di comunicazione e collegamenti
Periferiche di input: inviano dati e comandi al computer (tastiera, mouse, joystick, tavolette grafiche, touch screen, scanner, microfono).
Tastiera: tasti alfanumerici, funzione, cursore, tastierino numerico, escape; layout QZERTY vs QWERTY; driver associa tasti ai caratteri.
Mouse e alternativi: tecnologie a sfera e ottico; bottoni gestiti da driver; alternative come trackpad, tablet grafico, joystick, trackball.
Periferiche di input e dispositivi di puntamento
Schermo: pixel come unità minima; risoluzione in dpi; tecnologie CRT, LCD, Plasma.
Stampante: output principale dopo lo schermo; risoluzione in dpi; tecnologie laser, getto d’inchiostro, a impatto.
Periferiche di output: schermo e stampante
Periferiche di input e output
Dispositivi di memoria e di input/output
Basata su grandezza fisica continua che varia proporzionalmente al dato.
Esempi: segnale elettrico per audio, termometro a mercurio.
Rappresentazione analogica
Il dato è suddiviso in “pezzi”, ognuno rappresentato da un numero.
Esempi: pixel nelle immagini, ASCII per caratteri, campionamento audio; più campioni e precisione = meno disturbo ma più dati.
Codifica/decodifica tra digitale e analogico è fondamentale nelle comunicazioni di rete.
Rappresentazione digitale
Rappresentazione dei dati (analogica vs digitale)
Ogni livello ha un’interfaccia con quello sopra e sotto; interazione lungo piani orizzontali.
Strato inferiore: hardware, incluso firmware.
Struttura a strati
Sistema operativo: maschera l’hardware; hardware+SO = “macchina astratta”.
Programmi applicativi: usano servizi del SO e creano una macchina astratta per l’utente.
Utente: interagisce con il sistema operativo o tramite programmi.
Ruolo di sistema operativo, programmi e utente
Schema a livelli gerarchici (astrazione del sistema)
Supercomputer: massima potenza, migliaia di processori, enormi capacità di calcolo.
Mainframe: per grandi organizzazioni e grandi quantità di dati.
Workstation: potenza inferiore ai mainframe, usate in CAD/CAM.
Personal Computer: uso personale, includono portatili.
Dispositivi mobili e microcontroller: PDA, smartphone, palmari; microcontroller integrati in altri apparati.
Tipi di computer per potenza di calcolo
Tecnologia a semiconduttore su silicio: CPU e RAM come chip.
Legge di Moore: densità degli elementi base nei chip raddoppia ogni 18 mesi.
Effetti: più potenza a parità di prezzo o stesso calcolo a prezzo minore.
Limiti futuri: vincoli fisici (velocità della luce, principio di indeterminazione), ma non immediati.
Legge di Moore e limiti fisici
Classificazione dei computer e Legge di Moore
Classificazioni e architetture dei calcolatori
Definizione: programma che controlla l’esecuzione dei programmi applicativi e funge da interfaccia tra applicazioni e hardware.
Obiettivi: semplicità, astrazione, efficienza, protezione.
Il SO è il primo software caricato all’accensione e prende il controllo del sistema.
Cos’è un sistema operativo e perché esiste
Servizi: esecuzione programmi, gestione memoria principale/secondaria, gestione I/O, rilevazione e gestione errori.
Multi-utente: gestione utenti, controllo accessi, accounting delle risorse.
Servizi offerti e gestione multi-utente
Definizione, obiettivi e servizi del sistema operativo
Hardware: strato inferiore.
Kernel: sopra l’hardware, gestisce risorse e nasconde dettagli.
System call: interfaccia tra kernel e software.
Librerie di sistema, tool di sistema + kernel = software di sistema.
Strati hardware, kernel e software di sistema
Software applicativo: gira sopra il software di sistema.
Figure: utente, amministratore di sistema, programmatore di sistema, progettista di sistemi operativi.
Software applicativo e figure che usano il SO
Struttura a strati: calcolatore, kernel e software
Gestore del processore (scheduler): organizza esecuzione dei processi.
Gestore della memoria principale: ripartisce RAM tra processi e tiene traccia di spazio occupato/libero.
Gestori dispositivi di I/O: astraggono l’hardware e offrono interfacce comuni.
Gestore della memoria secondaria e file system: astrazione di file/directory e gestione spazio su disco.
Protezione e sicurezza: meccanismi trasversali di controllo accessi.
Componenti principali del sistema operativo
Interrupt: eventi hardware/software che sospendono l’attività corrente e trasferiscono il controllo al SO.
Esempi: tasto tastiera, fine lettura disco, system call, errori.
Il SO esegue routine di gestione e poi torna al processo precedente o cambia processo (context switch).
Gran parte del kernel gira dentro le routine di interrupt.
Interrupt e funzionamento dinamico del SO
Componenti interni e interrupt nei sistemi operativi
Sistemi operativi: ruolo, struttura, componenti
Processo: esecuzione di un algoritmo o attività controllata da un programma.
Programma = entità statica; processo = entità dinamica.
Stato di un processo: immagine di memoria (codice+dati+strutture SO), immagine nel processore (registri, PC), stato di avanzamento.
Definizione e stato di un processo
In esecuzione (running): sul processore.
Pronto (ready): eseguibile ma in attesa di CPU.
In attesa (waiting): sospeso in attesa di evento (es. I/O).
Interrupt e richieste I/O causano passaggi tra stati.
Ciclo di vita e stati (running/ready/waiting)
Cos’è un processo e come “vive”
Multiprogrammazione: durante I/O di un processo, la CPU esegue altri processi.
Time-sharing: tempo CPU diviso in quanti; allo scadere del quanto si passa ad altro processo.
Vantaggi: uso efficiente risorse, percezione di CPU dedicata nei sistemi interattivi.
Multiprogrammazione e time-sharing
Scheduler: decide quale processo eseguire.
Code: processi pronti, code per dispositivi I/O.
Politiche: FCFS e altre più complesse.
Context switch: salvataggio stato processo sospeso e caricamento stato processo successivo.
Scheduler, context switch e code di processi
Multiprogrammazione, time-sharing e scheduler
Lanciare nuovi programmi.
Terminare processi in esecuzione.
Terminare processi bloccati (Task Manager, comando kill).
Cosa può fare l’utente con i processi
fork(): creare nuovi processi.
exec(): eseguire nuovo programma in un processo.
exit(): terminare processo.
signal(), kill(): sincronizzazione e segnali.
send(), receive(): comunicazione fra processi (IPC).
Primitive per programmatori (creazione, esecuzione, comunicazione)
Interazione con i processi e primitive di controllo
Gestione dei processi
Organizza la memoria principale e può usare il disco per emulare più RAM.
Compiti: tracciare memoria libera/occupata, allocare/deallocare memoria ai processi.
Gestore della memoria (Memory Manager)
Ogni processo ha uno spazio di indirizzamento logico.
MMU traduce indirizzi logici in fisici usando strutture preparate dal SO.
Obiettivi: astrazione della memoria fisica, protezione, illusione di memoria dedicata per ogni processo.
MMU e spazio di indirizzamento logico
Gestore della memoria e MMU
Solo parte di codice/dati di un processo deve stare in RAM in un dato momento.
Memoria virtuale: esecuzione di processi parzialmente in RAM e parzialmente su disco.
Obiettivo: eseguire più processi o processi più grandi di quanto consenta la RAM fisica.
Definizione e obiettivi della memoria virtuale
Vantaggio: aumento apparente della memoria disponibile.
Rischio: troppi accessi a pagine su disco causano degrado prestazioni (thrashing).
Tutti i SO moderni supportano memoria virtuale.
Vantaggi, rischi e prestazioni
Memoria virtuale: concetto e impatto sulle prestazioni
Memoria logica suddivisa in pagine; memoria fisica in frame.
Ogni pagina può trovarsi in RAM o su disco.
Paginazione a richiesta (demand paging)
MMU traduce indirizzi di pagina in frame.
Se pagina non è in RAM: SO la carica in frame libero; se non ci sono frame, sostituisce pagina poco usata.
Obiettivo: massimizzare accessi a pagine già in RAM per buone prestazioni.
Ruolo della MMU e politica di sostituzione
Paginazione a richiesta e traduzione pagine/frame
Gestione della memoria
Gestione I/O è cruciale per le prestazioni globali.
Ogni dispositivo: controllore hardware che riceve richieste dal SO e dialoga col dispositivo, spesso con DMA.
Ruolo della gestione I/O e controller
Driver: controparte software del controllore, fornisce interfaccia astratta (“leggi file”).
Controller implementa meccanismi semplici; driver implementa politiche complesse.
Distribuzione driver: inclusi nel SO o forniti a parte; in Linux spesso sviluppati dalla comunità.
Driver: controparte software e politiche
Dispositivi di I/O: controller e driver
CPU invia richiesta e resta in busy waiting controllando la fine dell’operazione.
Poco efficiente: CPU sprecata in attesa.
Programmed I/O (PIO)
Interrupt-driven I/O: CPU invia richiesta e lavora su altro; interrupt segnala fine operazione.
DMA: controllore trasferisce dati direttamente in memoria; CPU riceve interrupt solo a trasferimento completato.
DMA è il meccanismo più efficiente per grandi quantità di dati.
Interrupt-driven I/O e DMA
Modalità di I/O: Programmed I/O, interrupt, DMA
Memoria secondaria contiene codice/dati di tutti i programmi.
Ottimizzazione tramite gestione coda richieste e caching.
Analogia ascensore: riordinare richieste riduce spostamenti testina e tempi di accesso.
Scheduling delle richieste su disco
Cache: copia in RAM dei dati su disco più usati o recenti.
Obiettivo: ridurre accessi a disco.
Combinare scheduling e caching migliora notevolmente le prestazioni.
Cache di memoria secondaria
Gestione della memoria secondaria: scheduling e caching
Gestione dei dispositivi
Media fisici diversi (dischi, CD, nastri) con organizzazioni differenti.
Tutti possono essere visti come insiemi di blocchi.
File system offre astrazione unica basata su file e directory.
Ogni OS ha file system nativi; non tutti sono compatibili tra sistemi.
Perché serve un file system, file e astrazione dei media
Attributi: nome, locazione, dimensione, tempi, proprietario, permessi.
Tipi di file: via estensione (es. .txt) o numero magico (es. %PDF).
Attributi dei file e tipi di file
Concetto di file system, file e attributi
Interfaccia uniforme indipendente dall’organizzazione fisica.
Operazioni fondamentali sui file
Diversi tipi (FAT, NTFS, ext, ecc.).
Codice del SO per interpretare metadati è specifico, quindi non sempre leggibili ovunque.
Tipologie di file system e dipendenza dall’OS
Operazioni sui file e API
Directory: contiene file e altre directory, struttura ad albero con radice.
File: foglie dell’albero.
Ogni file è identificato da un path (es. /b/x/5.txt).
File system ad albero puro: file in una sola directory (FAT, NTFS).
UNIX/Linux: link per raggiungere file da più percorsi.
Directory e struttura gerarchica
Ogni processo ha una directory corrente.
Path assoluto: dalla radice; relativo: dalla directory corrente.
Notazione .. indica la directory genitore.
Vantaggi: nomi più brevi per l’utente, percorsi più corti per il SO.
Programmatore: crea/cancella/rinomina directory; lettura directory tramite open/read/close; niente scrittura diretta, gestita dalle operazioni sui file.
Directory corrente, path assoluti/relativi e notazione
Directory, struttura ad albero, path e collegamenti
File System
Sicurezza: meccanismi di controllo accesso alle risorse.
Obiettivi CIA: confidenzialità, integrità, disponibilità.
Definizione e obiettivi della sicurezza
Autenticazione: associare utente a identità nota.
Autorizzazione: verificare diritti su risorse.
Protezione: impedire operazioni non autorizzate.
Problemi fondamentali
Obiettivi e problemi fondamentali della sicurezza
Vantaggi: semplice.
Rischi: password visibili, banali, attacchi dizionario/forza bruta.
Password sicura: ≥8 caratteri, mix di lettere/numeri/simboli, senza significato.
Attacchi: login spoofing, sniffing; serve canale sicuro.
Autenticazione basata su password
Hardware: token, smart card, generazione di password diverse ogni volta, spesso combinata con password.
Biometrica: impronte, voce, retina, tratti somatici; molto sicura ma costosa.
Autenticazione hardware e biometrica
Autenticazione: meccanismi e rischi
Processi agiscono per conto degli utenti.
Utente specifica diritti; SO controlla ogni system call.
Esempio: verifica permessi prima di open() su file.
Meccanismo di autorizzazione
Principio di privilegio minimo
Autorizzazione e protezione
Sicurezza nei SO
markmap
19/01/26, 18:41
Markmap
file:///C:/Users/lucac/Downloads/cap 2.html
1/1

Anteprima parziale del testo

Scarica informatica mappa concettuale e più Schemi e mappe concettuali in PDF di Sistemi Informatici solo su Docsity!

Generalità e programmabilità Il computer non è specializzato in un solo compito, può svolgere molte funzioni diverse. La finalità cambia a seconda del programma eseguito (testi, filmati, progettazione, musica, giochi, ecc.). Natura e uso del computer Potenza e rischi degli errori Velocissimo esecutore di programmi, capace di miliardi di operazioni. Se il programma è errato, produce errori molto velocemente (esempio sonda Mariner). Hardware vs Software^ Hardware: componenti fisici tangibili (monitor, tastiera, mouse, webcam, stampanti). Software: dati e istruzioni che regolano il funzionamento (sistema operativo, browser, programmi vari). Hardware, software e sistema operativo Sistema operativo come ponte Programma speciale che sovrintende tutte le operazioni. Gestisce sia hardware sia software e permette l’interazione utente–computer. Codifica dei dati e basi numeriche^ Dati espressi tramite codifiche (numeri, caratteri, immagini, suoni). Numeri anche in base 2 (binaria), non solo base 10; introduzione a “base N”. Rappresentazione dell’informazione Codifica binaria e caratteri Bit (0/1) e byte (8 bit) per rappresentare numeri e testo. Tabelle di codifica: ASCII (1 byte, fino a 256 caratteri) e Unicode (2 byte, fino a 65.536 caratteri).

  • Cinque elementi principali^ Memoria interna (RAM): contiene dati e istruzioni dei programmi in esecuzione, è volatile e ad accesso diretto. Memoria esterna/di massa: conserva dati e programmi in modo persistente, capacità maggiore ma tempi di accesso più lenti. Architettura della macchina di von Neumann Componenti principali della macchina – Processore, bus, interfacce CPU (processore): esegue le elaborazioni, controlla trasferimenti di dati e programmi, legge/decodifica/esegue istruzioni. Bus di sistema e interfaccia alle periferiche: il bus collega le unità funzionali, l’interfaccia gestisce tastiera, video, mouse e altre periferiche esterne.
  • Struttura del ciclo^ Fase di istruzione (fetch): lettura da memoria dell’istruzione da eseguire e sua decodifica da parte della CPU. Fase di esecuzione: lettura degli operandi, esecuzione dell’istruzione, memorizzazione del risultato. Ciclo della CPU - Caratteristiche del modello Modello sequenziale: la CPU esegue un passo del ciclo per ogni colpo di clock, procedendo istruzione dopo istruzione. Necessità di caricamento in RAM: per essere eseguito, un programma deve prima essere caricato nella memoria centrale.
  • Struttura e proprietà della RAM^ Celle e indirizzi: la RAM è una sequenza ordinata di celle, ciascuna con un indirizzo univoco, contenente una parola. Memoria volatile ad accesso diretto: lettura/scrittura illimitata, ma perdita del contenuto allo spegnimento. Memoria centrale (RAM) e accesso – Indirizzi, registri e operazioni di copia Registro indirizzi e registro dati: la CPU usa il registro indirizzi per indicare la cella e il registro dati per contenere la parola letta/scritta. Lettura/scrittura: in lettura la CPU copia il contenuto della cella nel registro dati; in scrittura copia dal registro dati alla cella, sovrascrivendo il contenuto precedente. Caratteristiche generali: permanenti, grande capacità, accesso più lento della RAM. Memoria magnetica: floppy disk (storico), hard disk interni/esterni con dischi, tracce, settori e testine. Tipi di memoria di massa Memoria ottica: CD e DVD, basati su laser, con zone opache/riflettenti, versioni ROM, registrabili e riscrivibili. Pen drive: supporti esterni recenti a stato solido. Formattazione: suddivisione del disco in settori e tracce che formano blocchi indirizzabili. FAT e file: File Allocation Table per collegare i blocchi che compongono un file, indicando blocco iniziale e successivi. Organizzazione su disco e controller Controller: interfaccia che gestisce il flusso dati tra CPU e dispositivo di memoria, nascondendo la gestione dei blocchi. Dispositivi di memoria di massa Porte seriali: collegamento uno-a-uno, 2 linee (trasmissione/ricezione), invia un bit per volta; usata per modem, vecchie stampanti, periferiche. Porte parallele: trasmettono più bit per volta (es. 8), usate per stampanti e alcuni dispositivi esterni, più veloci delle seriali. Collegamenti cablati tradizionali SCSI: interfaccia per collegare in cascata più periferiche (fino a ~8) sulla stessa porta; oggi in disuso. USB e FireWire: connessione in cascata di molte periferiche, velocità elevata, supporto hot plug e alimentazione delle periferiche. Collegamenti moderni e wireless Bluetooth: collegamenti a breve distanza (cellulari, stampanti, periferiche). Wi-Fi: connessioni radio a media distanza, per reti e dispositivi. Porte di comunicazione e collegamenti Periferiche di input: inviano dati e comandi al computer (tastiera, mouse, joystick, tavolette grafiche, touch screen, scanner, microfono). Tastiera: tasti alfanumerici, funzione, cursore, tastierino numerico, escape; layout QZERTY vs QWERTY; driver associa tasti ai caratteri. Periferiche di input e dispositivi di puntamento Schermo: pixel come unità minima; risoluzione in dpi; tecnologie CRT, LCD, Plasma. Mouse e alternativi: tecnologie a sfera e ottico; bottoni gestiti da driver; alternative come trackpad, tablet grafico, joystick, trackball. Periferiche di output: schermo e stampante Stampante: output principale dopo lo schermo; risoluzione in dpi; tecnologie laser, getto d’inchiostro, a impatto. Periferiche di input e output Dispositivi di memoria e di input/output Rappresentazione analogica^ Basata su grandezza fisica continua che varia proporzionalmente al dato. Esempi: segnale elettrico per audio, termometro a mercurio. Il dato è suddiviso in “pezzi”, ognuno rappresentato da un numero. Esempi: pixel nelle immagini, ASCII per caratteri, campionamento audio; più campioni e precisione = meno disturbo ma più dati. Rappresentazione digitale Codifica/decodifica tra digitale e analogico è fondamentale nelle comunicazioni di rete. Rappresentazione dei dati (analogica vs digitale) Struttura a strati^ Ogni livello ha un’interfaccia con quello sopra e sotto; interazione lungo piani orizzontali. Strato inferiore: hardware, incluso firmware. Sistema operativo: maschera l’hardware; hardware+SO = “macchina astratta”. Programmi applicativi: usano servizi del SO e creano una macchina astratta per l’utente. Ruolo di sistema operativo, programmi e utente Utente: interagisce con il sistema operativo o tramite programmi. Schema a livelli gerarchici (astrazione del sistema) Supercomputer: massima potenza, migliaia di processori, enormi capacità di calcolo. Mainframe: per grandi organizzazioni e grandi quantità di dati. Workstation: potenza inferiore ai mainframe, usate in CAD/CAM. Personal Computer: uso personale, includono portatili. Dispositivi mobili e microcontroller: PDA, smartphone, palmari; microcontroller integrati in altri apparati. Tipi di computer per potenza di calcolo Tecnologia a semiconduttore su silicio: CPU e RAM come chip. Legge di Moore: densità degli elementi base nei chip raddoppia ogni 18 mesi. Legge di Moore e limiti fisici Effetti: più potenza a parità di prezzo o stesso calcolo a prezzo minore. Limiti futuri: vincoli fisici (velocità della luce, principio di indeterminazione), ma non immediati. Classificazione dei computer e Legge di Moore Classificazioni e architetture dei calcolatori Definizione: programma che controlla l’esecuzione dei programmi applicativi e funge da interfaccia tra applicazioni e hardware. Obiettivi: semplicità, astrazione, efficienza, protezione. Cos’è un sistema operativo e perché esiste Servizi: esecuzione programmi, gestione memoria principale/secondaria, gestione I/O, rilevazione e gestione errori. Il SO è il primo software caricato all’accensione e prende il controllo del sistema. Servizi offerti e gestione multi-utente Multi-utente: gestione utenti, controllo accessi, accounting delle risorse. Definizione, obiettivi e servizi del sistema operativo Hardware: strato inferiore. Kernel: sopra l’hardware, gestisce risorse e nasconde dettagli. Strati hardware, kernel e software di sistema System call: interfaccia tra kernel e software. Librerie di sistema, tool di sistema + kernel = software di sistema. Struttura a strati: calcolatore, kernel e software Software applicativo e figure che usano il SO Software applicativo: gira sopra il software di sistema. Figure: utente, amministratore di sistema, programmatore di sistema, progettista di sistemi operativi. Gestore del processore (scheduler): organizza esecuzione dei processi. Gestore della memoria principale: ripartisce RAM tra processi e tiene traccia di spazio occupato/libero. Gestori dispositivi di I/O: astraggono l’hardware e offrono interfacce comuni. Gestore della memoria secondaria e file system: astrazione di file/directory e gestione spazio su disco. Protezione e sicurezza: meccanismi trasversali di controllo accessi. Componenti principali del sistema operativo Interrupt: eventi hardware/software che sospendono l’attività corrente e trasferiscono il controllo al SO. Esempi: tasto tastiera, fine lettura disco, system call, errori. Interrupt e funzionamento dinamico del SO Il SO esegue routine di gestione e poi torna al processo precedente o cambia processo (context switch). Gran parte del kernel gira dentro le routine di interrupt. Componenti interni e interrupt nei sistemi operativi Sistemi operativi: ruolo, struttura, componenti Processo: esecuzione di un algoritmo o attività controllata da un programma. Programma = entità statica; processo = entità dinamica. Definizione e stato di un processo Stato di un processo: immagine di memoria (codice+dati+strutture SO), immagine nel processore (registri, PC), stato di avanzamento. In esecuzione (running): sul processore. Pronto (ready): eseguibile ma in attesa di CPU. In attesa (waiting): sospeso in attesa di evento (es. I/O). Interrupt e richieste I/O causano passaggi tra stati. Ciclo di vita e stati (running/ready/waiting) Cos’è un processo e come “vive” Multiprogrammazione: durante I/O di un processo, la CPU esegue altri processi. Time-sharing: tempo CPU diviso in quanti; allo scadere del quanto si passa ad altro processo. Multiprogrammazione e time-sharing Vantaggi: uso efficiente risorse, percezione di CPU dedicata nei sistemi interattivi. Scheduler: decide quale processo eseguire. Code: processi pronti, code per dispositivi I/O. Politiche: FCFS e altre più complesse. Scheduler, context switch e code di processi Context switch: salvataggio stato processo sospeso e caricamento stato processo successivo. Multiprogrammazione, time-sharing e scheduler Lanciare nuovi programmi. Terminare processi in esecuzione. Cosa può fare l’utente con i processi Terminare processi bloccati (Task Manager, comando kill). fork(): creare nuovi processi. exec(): eseguire nuovo programma in un processo. exit(): terminare processo. Primitive per programmatori (creazione, esecuzione, comunicazione) signal(), kill(): sincronizzazione e segnali. send(), receive(): comunicazione fra processi (IPC). Interazione con i processi e primitive di controllo Gestione dei processi Gestore della memoria (Memory Manager)^ Organizza la memoria principale e può usare il disco per emulare più RAM. Compiti: tracciare memoria libera/occupata, allocare/deallocare memoria ai processi. Ogni processo ha uno spazio di indirizzamento logico. MMU traduce indirizzi logici in fisici usando strutture preparate dal SO. MMU e spazio di indirizzamento logico Obiettivi: astrazione della memoria fisica, protezione, illusione di memoria dedicata per ogni processo. Gestore della memoria e MMU Solo parte di codice/dati di un processo deve stare in RAM in un dato momento. Memoria virtuale: esecuzione di processi parzialmente in RAM e parzialmente su disco. Definizione e obiettivi della memoria virtuale Vantaggio: aumento apparente della memoria disponibile. Obiettivo: eseguire più processi o processi più grandi di quanto consenta la RAM fisica. Vantaggi, rischi e prestazioni Rischio: troppi accessi a pagine su disco causano degrado prestazioni (thrashing). Tutti i SO moderni supportano memoria virtuale. Memoria virtuale: concetto e impatto sulle prestazioni Paginazione a richiesta (demand paging)^ Memoria logica suddivisa in pagine; memoria fisica in frame. Ogni pagina può trovarsi in RAM o su disco. MMU traduce indirizzi di pagina in frame. Se pagina non è in RAM: SO la carica in frame libero; se non ci sono frame, sostituisce pagina poco usata. Ruolo della MMU e politica di sostituzione Obiettivo: massimizzare accessi a pagine già in RAM per buone prestazioni. Paginazione a richiesta e traduzione pagine/frame Gestione della memoria Ruolo della gestione I/O e controller^ Gestione I/O è cruciale per le prestazioni globali. Ogni dispositivo: controllore hardware che riceve richieste dal SO e dialoga col dispositivo, spesso con DMA. Driver: controparte software del controllore, fornisce interfaccia astratta (“leggi file”). Controller implementa meccanismi semplici; driver implementa politiche complesse. Driver: controparte software e politiche Distribuzione driver: inclusi nel SO o forniti a parte; in Linux spesso sviluppati dalla comunità. Dispositivi di I/O: controller e driver Programmed I/O (PIO)^ CPU invia richiesta e resta in busy waiting controllando la fine dell’operazione. Poco efficiente: CPU sprecata in attesa. Interrupt-driven I/O: CPU invia richiesta e lavora su altro; interrupt segnala fine operazione. DMA: controllore trasferisce dati direttamente in memoria; CPU riceve interrupt solo a trasferimento completato. Interrupt-driven I/O e DMA DMA è il meccanismo più efficiente per grandi quantità di dati. Modalità di I/O: Programmed I/O, interrupt, DMA Memoria secondaria contiene codice/dati di tutti i programmi. Ottimizzazione tramite gestione coda richieste e caching. Scheduling delle richieste su disco Cache: copia in RAM dei dati su disco più usati o recenti. Analogia ascensore: riordinare richieste riduce spostamenti testina e tempi di accesso. Cache di memoria secondaria Obiettivo: ridurre accessi a disco. Combinare scheduling e caching migliora notevolmente le prestazioni. Gestione della memoria secondaria: scheduling e caching Gestione dei dispositivi Media fisici diversi (dischi, CD, nastri) con organizzazioni differenti. Tutti possono essere visti come insiemi di blocchi. Perché serve un file system, file e astrazione dei media File system offre astrazione unica basata su file e directory. Ogni OS ha file system nativi; non tutti sono compatibili tra sistemi. Concetto di file system, file e attributi Attributi dei file e tipi di file Attributi: nome, locazione, dimensione, tempi, proprietario, permessi. Tipi di file: via estensione (es. .txt) o numero magico (es. %PDF). Operazioni fondamentali sui file^ create(), open(), close(), read(), write(), append(), lseek(), unlink(), ftruncate(), fstat(), chown(), chmod. Interfaccia uniforme indipendente dall’organizzazione fisica. Operazioni sui file e API Tipologie di file system e dipendenza dall’OS Diversi tipi (FAT, NTFS, ext, ecc.). Codice del SO per interpretare metadati è specifico, quindi non sempre leggibili ovunque. Directory: contiene file e altre directory, struttura ad albero con radice. File: foglie dell’albero. Ogni file è identificato da un path (es. /b/x/5.txt). File system ad albero puro: file in una sola directory (FAT, NTFS). UNIX/Linux: link per raggiungere file da più percorsi. Directory e struttura gerarchica Ogni processo ha una directory corrente. Path assoluto: dalla radice; relativo: dalla directory corrente. Notazione .. indica la directory genitore. Vantaggi: nomi più brevi per l’utente, percorsi più corti per il SO. Programmatore: crea/cancella/rinomina directory; lettura directory tramite open/read/close; niente scrittura diretta, gestita dalle operazioni sui file. Directory corrente, path assoluti/relativi e notazione Directory, struttura ad albero, path e collegamenti File System Definizione e obiettivi della sicurezza^ Sicurezza: meccanismi di controllo accesso alle risorse. Obiettivi CIA: confidenzialità, integrità, disponibilità. Autenticazione: associare utente a identità nota. Autorizzazione: verificare diritti su risorse. Problemi fondamentali Protezione: impedire operazioni non autorizzate. Obiettivi e problemi fondamentali della sicurezza Vantaggi: semplice. Rischi: password visibili, banali, attacchi dizionario/forza bruta. Autenticazione basata su password Password sicura: ≥8 caratteri, mix di lettere/numeri/simboli, senza significato. Attacchi: login spoofing, sniffing; serve canale sicuro. Autenticazione: meccanismi e rischi Autenticazione hardware e biometrica Hardware: token, smart card, generazione di password diverse ogni volta, spesso combinata con password. Biometrica: impronte, voce, retina, tratti somatici; molto sicura ma costosa. Processi agiscono per conto degli utenti. Utente specifica diritti; SO controlla ogni system call. Autorizzazione e protezione^ Meccanismo di autorizzazione Principio di privilegio minimo Esempio: verifica permessi prima di open() su file. Sicurezza nei SO

markmap

19/01/26, 18:41 Markmap

file:///C:/Users/lucac/Downloads/cap 2.html 1/