Riassunti VERIFICATO

Sistemi Operativi

Università degli Studi di Perugia informatica 2026
Nessun voto ancora
Condividi: WhatsApp Telegram
Anteprima pagina 1 — Sistemi Operativi Anteprima pagina 2 — Sistemi Operativi Anteprima pagina 3 — Sistemi Operativi

Di cosa parla

  • Introduzione ai Sistemi Operativi (SO): Un programma che controlla l'esecuzione di altri programmi e gestisce le risorse hardware (CPU, memoria, I/O, file). Le sue funzioni principali sono fornire un'interfaccia e gestire le risorse. Obiettivi: convenienza, efficienza, evoluzione. Compiti: creazione/esecuzione programmi, gestione file/I/O, controllo accessi, rilevazione errori, contabilità. Evoluzione storica attraverso generazioni (valvole, transistor, circuiti integrati, PC, mobile), concetti di multiprogrammazione e time-sharing.
  • Architettura del sistema di elaborazione: Computer come componenti connessi da un bus di sistema (CPU, RAM, Moduli I/O). Registri CPU fondamentali: Program Counter (PC), Instruction Register (IR), Memory Address Register (MAR), Memory Buffer Register (MBR), I/O Address/Buffer Register. Il ciclo di istruzione Fetch-Execute (prelievo, decodifica, esecuzione) è il cuore del processore. Le interruzioni (programma, timer, I/O, hardware) permettono a moduli esterni di segnalare eventi alla CPU, temporaneamente sospendendo il programma corrente.
  • Struttura del sistema operativo e servizi: I SO offrono servizi come interfaccia utente (CLI, GUI, batch), esecuzione programmi, operazioni I/O, gestione file system, comunicazione tra processi, rilevazione errori, allocazione risorse, accounting, protezione/sicurezza. Le System Call sono l'interfaccia usata dai programmi per richiedere questi servizi. Strutture dei SO: monolitici (veloci, difficili da mantenere), stratificati (semplici, portabili), microkernel (affidabili, portabili, maggiore overhead), modulari (combinano vantaggi). Il sistema si avvia tramite bootstrap.
  • Processi: Un processo è un programma in esecuzione, un'entità attiva con proprio PC, registri e risorse. La sua struttura in memoria include testo, dati, heap, stack. I processi passano attraverso stati: New, Ready, Running, Waiting, Terminated. Il Process Control Block (PCB) contiene tutte le informazioni di un processo. Gli scheduler (breve, lungo, medio termine) gestiscono i passaggi di stato. I processi possono creare gerarchie di figli, terminare tramite exit() o abort() (processi zombie/orfani).
  • Threads: Un thread è un'unità di esecuzione all'interno di un processo. Più thread condividono le risorse di un processo ma hanno stack e contesto separati. Vantaggi: creazione/terminazione più rapida, cambio contesto più veloce, comunicazione semplice, maggiore reattività, parallelismo. Implementazione: user-level (veloci, portabili, ma bloccanti) o kernel-level (gestiti dal kernel, non bloccanti). Modelli di threading: 1:1, M:1, M:N. La legge di Amdahl descrive il limite di speedup con più CPU.
  • Concorrenza: La multiprogrammazione e il multithreading introducono la concorrenza, richiedendo sincronizzazione per evitare corruzione dati (es. race condition). La sezione critica è il segmento di codice che accede a risorse condivise. Soluzioni corrette richiedono: mutua esclusione, progresso, attesa limitata. Meccanismi di sincronizzazione: semafori (binari, contatori) con operazioni atomiche wait() e signal(), monitor (costrutti ad alto livello). Problemi classici: Produttore-Consumatore, Lettori-Scrittori, Filosofi a cena.
  • Deadlock (Stallo): Si verifica quando processi sono bloccati in attesa circolare di risorse. Condizioni necessarie: mutua esclusione, possesso e attesa, assenza di prerilascio, attesa circolare. Rappresentazione tramite grafo di allocazione delle risorse (ciclo implica possibile deadlock). Strategie per gestire il deadlock: prevenzione (impedire una delle 4 condizioni), evitamento (es. algoritmo del banchiere, che richiede conoscenza a priori), rilevazione e ripristino (terminare processi o revocare risorse).

Altri appunti di SISTEMI OPERATIVI CON LABORATORIO

Condividi questi appunti

WhatsApp Telegram