Evoluzione e Architetture dei Sistemi Operativi: Dalla Quinta Generazione alla Virtualizzazione
Classificato in Informatica
Scritto il in
italiano con una dimensione di 7,06 KB
Quinta Generazione e Architetture dei Sistemi
Quinta generazione: Circuiti LSI (Large Scale Integration) appaiono. Surge il PC IBM. L'uso universale diventa quello delle reti di dati.
Struttura Monolitica
La struttura del sistema è un insieme di procedure e ciascuna può invocare o chiamare l'altra. Non ci sono dati nascosti. Non è affatto scalabile.
Struttura a Livelli (Layered Structure)
Un insieme di livelli sovrapposti fino a diventare virtuale per l'utente finale. Ogni livello definisce il livello di privilegio e la modifica del funzionamento del sistema facilita l'astrazione.
Microclienti e Client Server
Immettere il nucleo di un sistema operativo che fornisce un set di primitive o chiamate di sistema per implementare servizi minimi di base. Tutti gli altri servizi vengono eseguiti come processi server nello spazio utente. La potenza di elaborazione è divisa tra client e server.
API (Application Programming Interface)
Un insieme di librerie di programmazione che sviluppano e pubblicano i produttori di componenti per consentire agli sviluppatori di applicazioni di utilizzare tali servizi. Rappresenta l'interfaccia per la comunicazione tra i componenti software e descrive solo come chiamare ogni funzione e svolgere il compito, non importa come si realizza questo compito.
- Win32: Composta da funzioni in C memorizzate in librerie a collegamento dinamico (DLL). Queste librerie vengono utilizzate da Windows quando si desidera aggiungere alcune funzionalità ai propri sistemi operativi.
- SDK (Software Development Kit): Kit di sviluppo applicazioni fornito da Microsoft che include la documentazione e gli strumenti necessari agli sviluppatori per creare applicazioni e utilizzare le risorse del sistema per.
Interfacce Utente e Modalità di Esecuzione
Interfacce Utente
Interfacce comandi dell'utente:
- Modalità testo: Gli ordini sono dati sotto forma di righe di testo che si digitano in un terminale.
- Interfacce grafiche (GUI): Intuitive, dinamiche e produttive.
Gestione Utenti e Processi
- Single User: Tutte le risorse di sistema sono disponibili per un singolo utente.
- Multiutente: Più utenti possono eseguire processi diversi sulla stessa CPU e condividere l'utilizzo delle risorse esistenti nel sistema contemporaneamente.
Gestione del Tempo di Esecuzione
- Monotasking: È possibile eseguire un processo e non finisce fino a quando non inizia il successivo.
- Multitasking: È possibile eseguire più processi simultaneamente.
Sistemi Multiprocessore
Multiprogrammazione
Con un unico processore installato, tutti i lavori si alternano nell'occupazione della CPU.
Multithreading
Quando più processori sono installati sullo stesso computer e il sistema operativo può essere utilizzato contemporaneamente:
- Asimmetrica: Si seleziona un processore per eseguire il codice del sistema operativo, mentre gli altri processori eseguono i processi utente.
- Simmetrica: Il sistema operativo può lavorare su qualsiasi processore libero o su tutti i processori contemporaneamente, condividendo la memoria tra di loro.
Tipologie di Sistemi Operativi
Sistemi in Base ai Requisiti Temporali
- Realtà (Real-Time): Usati per processi che devono soddisfare requisiti di timing molto stretti.
- Sistemi Interattivi: I sistemi operativi più comuni per la CPU. Il sistema operativo dispone di meccanismi che consentono di pianificare l'occupazione della CPU.
Modalità di Avvio dei Processi
Processo discontinuo: Un processo non inizia fino a quando il precedente è terminato.
Evoluzione Storica
- Operativi Centralizzati (Mainframe): I computer mainframe erano responsabili di tutta l'elaborazione e alla fine gli utenti operavano senza memoria o processore dedicato.
- Operativi di Rete: Tengono due o più computer insieme attraverso alcuni mezzi di comunicazione con l'obiettivo di condividere diverse risorse e informazioni di sistema.
- Operativi Distribuiti: Sistemi quasi-indipendenti in grado di distribuire compiti, lavori o processi da un insieme di processori.
Virtualizzazione dei Sistemi e delle Risorse
Virtualizzazione di Server e Sistemi Operativi
Questo è il mascheramento delle risorse del server, compreso il numero e l'identificazione dei singoli server fisici, processori e sistemi operativi per gli utenti del server.
Virtualizzazione dello Storage
Unificazione dei dispositivi di memorizzazione su una rete di area di archiviazione (SAN), fingendo di essere un semplice dispositivo di memorizzazione da una console centrale.
Virtualizzazione del Desktop
Separazione tra il sistema fisico e il desktop, con dati e strumenti utilizzati dall'utente consolidati in desktop virtualizzati che sono memorizzati su un server remoto piuttosto che sulla macchina fisica.
Linguaggi di Programmazione
Programming Language: Un insieme di regole, strumenti e condizioni che ci permettono di creare programmi o applicazioni all'interno di un computer.
Classificazione dei Linguaggi
- Linguaggio Macchina: Quello che il computer capisce senza alcuna conversione.
- Linguaggio di Basso Livello (Low Level): Linguaggi i cui enunciati sono formati da codici mnemonici (assemblatori).
- Linguaggio ad Alto Livello: Quelli le cui frasi sono formate da parole simili a quelle delle lingue umane.
Paradigmi di Programmazione
- Streamline: Creare programmi usando un insieme di frasi scritte la cui esecuzione è sequenziale.
- Programmazione Strutturata (Structured Programming): Il più famoso e antico esistente. Si basa sulla modularità dei programmi, che sono suddivisi in moduli più piccoli e ognuno esegue un compito specifico.
- OOP (Object-Oriented Programming): È un modo di strutturare un programma.
- Programmazione Logica: La cosa più importante è definire un insieme di fatti, noti in precedenza, e un insieme di regole che definiscono le relazioni tra le diverse componenti del programma. Si usano linguaggi di alto livello.