TECNOLOGIA SISTEMI OPERATIVI
DEFINIZIONE CARATTERISTICHE GENERALI Un sistema operativo (abbreviato in SO, in lingua inglese OS, "operating system"), in informatica, è un insieme di componenti software, che rende operativi (da cui il nome) computer, apparati e dispositivi informatici. Un sistema operativo è un software che fornisce all'utente una serie di comandi e servizi per fruire al meglio della potenza di calcolo di un qualsivoglia elaboratore elettronico, spaziando dal più piccolo dei palmari al più potente tra i mainframe. I sistemi operativi nascondono tutti i dettagli tecnici legati allo specifico hardware e architettura rappresentando le informazioni ad un alto livello, meglio comprensibile dall uomo. Possiamo in definitiva vedere il S.O. come un gestore di risorse
MODELLO A STRATI
CLASSIFICAZIONE DEI S.O. IN BASE ALL ORGANIZZAZIONE INTERNA Seguendo un po' l'evoluzione storica dei sistemi operativi, in generale un sistema operativo può essere: monoutente, se un solo utente per volta può accedere alle risorse dell elaboratore; multiutente, se più utenti possono accedere alle risorse dell'elaboratore che a sua volta può essere: seriale, sequenzialmente uno per volta; parallelo, ciascuno parallelamente agli altri; monotasking, se in grado di eseguire un solo compito o task (processo) alla volta: multitasking o multithreading, se in grado di svolgere più compiti o sottocompiti parallelamente attraverso una certa politica di scheduling (es. timesharing). portabile o meno su differenti architetture hardware di processori.
CLASSIFICAZIONE DEI S.O. DAL PUNTO DI VISTA DELL UTENTE sistemi dedicati sistemi a lotti (batch) sistemi in real-time sistemi transazionali
CLASSIFICAZIONE DEI S.O. IN BASE ALL ARCHITETTURA DEL SISTEMA ELABORATORE S.O. per sistemi di calcolo monolitici S.O. per sistemi di calcolo distribuiti S.O. per sistemi di calcolo paralleli
SISTEMI DEDICATI In generale, un Sistema Dedicato e' un calcolatore applicato espressamente ad una particolare applicazione, a differenza da altri tipi di calcolatori che elaborano applicazioni di tipo generale come i PC. Applicazioni Tipiche dei Sistemi dedicati Sistemi di controllo della accensione delle auto Controllo automatico di un motore Controllo automatico dei freni Elettronica di consumo Televisione digitale DVD, VCR etc PDA Elettrodomestici Giocattoli Telefoni cellulari Videocamera Macchine fotografiche digitali Sistemi di posizionamento GPS
SISTEMI BATCH WIKIPEDIA Il termine batch risale all'epoca della programmazione per schede perforate. In quel contesto, i programmatori solitamente non avevano accesso diretto al computer, bensì preparavano i propri programmi "off-line" e li passavano a un amministratore di sistema, il quale aveva il compito di mandarli in esecuzione quando possibile (accodandoli rispetto ad altri programmi in esecuzione e spesso accorpando più programmi in un'unica unità di esecuzione), restituendo poi in seguito i risultati dell'elaborazione agli interessati. Quando il sistema informativo era organizzato in modo da non prevedere l'uso di terminali direttamente collegati con l'elaboratore centrale, l'unico modo che consentiva di ottenere i servizi del Centro elaborazione dati (CED) era quello di inviare al Centro stesso i documenti cartacei per l'elaborazione e poi di ricevere i risultati. In una situazione di questo tipo, detta batch processing, i dati contenuti nei documenti dovevano essere dapprima codificati, registrati su supporti compatibili con l'elaboratore, verificati con una operazione detta data entry e quindi avviati all'elaborazione.
REAL-TIME WIKIPEDIA Un sistema operativo real-time o in tempo reale (abbreviato in RTOS) è un sistema operativo specializzato per il supporto di applicazioni software real-time. Questi sistemi vengono utilizzati tipicamente in ambito industriale (controllo di processo, pilotaggio di robot, trasferimento dati nelle telecomunicazioni) o comunque dove sia necessario ottenere una risposta dal sistema entro un tempo prefissato. Un sistema operativo real-time non deve essere necessariamente veloce: non è importante l'intervallo di tempo in cui il sistema operativo/applicativo deve reagire; l'importante è che risponda entro un tempo massimo pre-determinato. In altre parole il sistema deve essere prevedibile o piuttosto deterministico, nel senso che nel sistema si possa conoscere il tempismo reale (nei migliori o peggiori dei casi, termini che vengono dall'inglese best case / worst case ) di un determinato processo o elaborazione. In pratica un sistema real-time deve garantire che una elaborazione (o task) termini entro un dato vincolo temporale o scadenza (detta in gergo deadline). Per garantire questo è richiesto che la schedulazione delle operazioni sia fattibile. Il concetto di fattibilità di schedulazione è alla base della teoria dei sistemi real-time ed è quello che ci permette di dire se un insieme di task sia eseguibile o meno in funzione dei vincoli temporali dati.
SISTEMI TRANSAZIONALI "Un Sistema Transazionale è un sistema dedicato ad attività di elaborazione dei dati di tipo gestionale, caratterizzato da più utenti che accedono in modo concorrente a dati condivisi mediante procedure predefinite. Uno dei primi sistemi transazionali informatici della storia fu il sistema di prenotazione per i biglietti aerei. Altro caso di sistemi transazionali sono i sistemi informatici usati dalle banche.
MODELLO MONOLITICO Il S.O è costituito da un unico processo kernel che provvede alla gestione di tutti i servizi di tutte le risorse del sistema (processore, memoria, periferiche, file system,...) gli utenti e i processi applicativi interagiscono con il kernel attraverso l esecuzione di servizi (chiamate di sistema). si hanno due modalità di funzionamento modalità utente: i processi eseguiti in questa modalità non possono accedere a tutte le risorse liberamente. Es. vietato interagire direttamente con i dispositivi di I/O. modalità supervisore (kernel mode): usata dal kernel per implementare le funzionalità necessarie. Nessun limite nelle operazioni effettuabili.
SISTEMI DISTRIBUITI I sistemi ottenuti dall aggregazione di singole CPU, sistemi di memorizzazione e periferiche sono detti sistemi distribuiti, in contrapposizione con i sistemi centralizzati. Per i nostri scopi: Un sistema distribuito è una collezione di computer indipendenti che appaiono all utente come un singolo sistema coerente. Indipendenti significa che sono autonomi Apparire come un singolo sistema è una caratteristica del software (S.O.) Nulla è detto sulla locazione fisica e appartenenza dei singoli computer
SISTEMI PARALLELI WIKIPEDIA In informatica il calcolo parallelo è l'esecuzione simultanea del codice sorgente di uno o più programmi (diviso e specificamente adattato) su più microprocessori o più core dello stesso processore allo scopo di aumentare le prestazioni di calcolo del sistema di elaborazione.