So

Subdecks (1)

Cards (1223)

  • Sistema Operativo (SO)

    Software che agisce da intermediario tra l'utente e l'hardware del computer, fornendo servizi e caratteristiche per gli utenti
  • Scopi del sistema operativo
    • Eseguire i programmi, supportando l'utente nel "risolvere problemi"
    • Rendere agevole l'interfaccia fra l'uomo e la macchina
    • Gestire in modo efficiente le risorse (hardware/software) del sistema di calcolo
    • Prevenire le interferenze fra/con le attività degli utenti
  • Il sistema operativo controlla e coordina l'utilizzo delle risorse hardware da parte dei diversi programmi di sistema e applicativi
  • Programmi applicativi
    Definiscono le modalità di utilizzo delle risorse del sistema per risolvere i problemi di calcolo degli utenti
  • Utenti
    Persone, altri macchinari, altri elaboratori
  • Modello a cipolla

    Struttura del sistema di calcolo composta da una serie di gusci concentrici, che racchiudono l'hardware e i diversi strati di software che lo gestiscono/utilizzano
  • Kernel
    Il nucleo del sistema operativo, a contatto diretto con l'hardware
  • Shell
    La parte del sistema operativo che permette agli utenti di interagire con il sistema stesso, impartendo comandi e richiedendo l'avvio di altri programmi
  • Il sistema operativo funge da allocatore di risorse, gestisce tutte le risorse hardware/software (programmi e dati) del sistema di calcolo
  • Il sistema operativo è un programma di controllo, controlla l'esecuzione dei programmi utente per prevenire errori e/o uso improprio delle risorse del sistema
  • Software di sistema
    Software ausiliario e di servizio, abitualmente presente ed utilizzato insieme al sistema operativo
  • Programmi applicativi
    Strumenti di office automation, applicazioni aziendali, ambienti di sviluppo, giochi, etc.
  • I sistemi operativi per dispositivi mobili non sono costituiti esclusivamente da un kernel, ma anche da un middleware
  • Middleware
    Un insieme di programmi informatici che fungono da intermediari tra diverse applicazioni e componenti software
  • Sia iOS di Apple che Android dispongono di un middleware che supporta lo sviluppo di app multimediali, grafiche e database oriented
  • Bootstrap
    L'insieme dei processi che vengono eseguiti da un computer durante la fase di avvio, in particolare dall'accensione fino al completo caricamento in memoria primaria del kernel del sistema operativo a partire dalla memoria secondaria
  • BIOS
    Un insieme di routine software che fornisce una serie di funzioni di base per l'accesso all'hardware
  • UEFI
    Un firmware più recente rispetto al BIOS, che ha cambiato sostanzialmente il funzionamento del boot loader
  • Intel ha scelto di fare un ulteriore passo avanti, lavorando a un nuovo strumento chiamato PFRUT (Platform Firmware Runtime and Telemetry), che permetterà al sistema operativo di aggiornare il firmware UEFI senza necessità di riavviare la macchina
  • Lo strumento per ora sarà destinato esclusivamente al mercato server, dove la possibilità di effettuare questo tipo di operazioni senza necessità di riavviare le macchine è fondamentale per offrire standard di sicurezza elevati, senza bloccare intere aziende
  • Lo sviluppo procede spedito con il codice già incluso in "Linux Next" e quindi pianificato con la prossima release del kernel
  • È lecito aspettarsi l'arrivo di questa funzionalità anche nei sistemi operativi Microsoft, tuttavia non sappiamo se (o quando) verrà effettivamente implementata
  • Alcuni bootloader
    • LILO
    • GRUB
    • SYSLINUX
    • PXELINUX
    • BootX
  • Architettura del sistema di calcolo
    Una o più CPU e diversi controllori di device connessi ad un bus comune, che permette l'accesso ad una memoria condivisa<|>Esecuzione concorrente delle CPU e dei controllori di device, che competono per garantirsi cicli di memoria
  • I/O
    1. La CPU e i device di I/O (input/output) possono eseguire operazioni concorrenti
    2. Ciascun controllore gestisce un particolare tipo di periferica
    3. Ciascun controllore gestisce un buffer (memoria usata temporaneamente per l'entrata o l'uscita dei dati) locale
    4. La CPU sposta i dati da/verso la memoria principale verso/da i buffer locali
    5. L'I/O avviene effettivamente sui dati contenuti nei buffer delle periferiche
    6. Il controllore informa la CPU quando ha portato a termine l'operazione di I/O, causando un interrupt
  • Interrupt
    Al verificarsi di un interrupt, il controllo viene trasferito all'opportuna routine di gestione, utilizzando il vettore degli interrupt (residente nella memoria) che contiene gli indirizzi di tutte le routine di servizio<|>Si salva inoltre l'indirizzo dell'istruzione "interrotta" e lo "stato" della CPU, dalla quale dovrà riprendere l'esecuzione al termine della gestione dell'interruzione<|>Durante la gestione di un interrupt, altri eventuali interrupt giunti al sistema sono momentaneamente "disabilitati"<|>Una trap (o eccezione) è un interrupt generato via software, causato da un errore o da una richiesta utente (effettuata tramite una system call)
  • Dispositivi di memoria
    • Velocità di accesso
    • Costo
    • Volatilità
  • Caching
    Produzione di una copia dell'informazione in un dispositivo di memoria più veloce (situato più in alto nella gerarchia delle memorie)<|>La memoria principale costituisce una cache per le memorie secondarie
  • Device driver, uno per ciascun controllore di device, per guidarne le operazioni di I/O. Garantiscono un'interfaccia comune fra kernel e controllori
  • Attuale tendenza è sviluppare strutture 3D-multistrato, e.g. https://www.hwupgrade.it/news/storage/micron-ecco-la-3d-nand-a-176-layer-maggiore-capacita-e-prestazioni-migliori-per-gli-ssd_93356.html
  • RAM disk
    In informatica è usata per indicare una porzione di RAM utilizzata (via software) come se fosse una memoria secondaria
  • Caching & I/O
    La cache ha dimensioni inferiori rispetto al supporto di memoria dal quale si effettua il caching<|>Una percentuale cospicua del codice del SO è dedicata alla gestione dell'I/O, l'interazione con i dispositivi di I/O è fondamentale per il progetto di un sistema affidabile ed efficiente, vi è una grande variabilità nei dispositivi di ingresso/uscita<|>Ciascun controllore si occupa di un particolare tipo di dispositivo (può gestire una o più unità ad esso connesse, e.g. più schede video SLI di NVIDIA). Il driver del dispositivo è il "sistema operativo" del controllore
  • I/O
    1. In seguito ad una richiesta di I/O, da parte di un processo utente, si verifica un'interruzione
    2. Dopo l'inizio dell'operazione di I/O il flusso di esecuzione può seguire due percorsi distinti: I/O sincrono (si restituisce il controllo al processo utente solo dopo il completamento dell'operazione di I/O) o I/O asincrono (si restituisce immediatamente il controllo al processo utente)
  • Device driver

    Il software di livello più basso che gira su un calcolatore, in quanto è direttamente connesso alle caratteristiche hardware della periferica
  • Direct Memory Access (DMA)

    Utilizzato per dispositivi di I/O ad alte prestazioni, con velocità di trasferimento comparabili alla velocità di accesso alla memoria centrale<|>Il controllore di device trasferisce blocchi di dati dal buffer locale direttamente nella memoria principale, senza intervento della CPU
  • Remote Direct Memory Access è una tecnologia che si basa sul Direct Memory Access (DMA) e che consente di trasferire dati dalla memoria di lavoro di un computer a quella di un altro sistema senza sovraccaricare il sistema operativo, la cache o la CPU
  • È possibile usare tecnologie DMA-based per trasferire dati da memoria secondari a memoria GPU
  • Una delle principali novità di Windows 11 in ambito gaming è stata l'introduzione di alcune delle funzionalità nate sulle nuove Xbox, come DirectStorage
  • Multiprocessori
    Permettono la multielaborazione asimmetrica (ad ogni processore viene assegnato un compito specifico; un processore principale sovrintende all'intero sistema) o la multielaborazione simmetrica (ogni processore è abilitato all'esecuzione di tutte le operazione del sistema)
  • Multicore
    Raggruppano diverse unità di calcolo core in un singolo chip, più efficienti perché le comunicazioni, sul singolo chip, sono più veloci