Complementi di Informatica Sistemi Operativi Definizione Uno speciale insieme di programmi che gestisce le risorse di un elaboratore (memorie periferiche, programmi, dati ecc.) e tutte le operazioni di input e output possibili con esse. (dizionario Garzanti!!) Licenze software Open: programma il cui codice sorgente è disponibile e libero. Freeware: programma dispobile gratuitamente Shareware: programma disponibile con obbligo morale di contribuzione Adware: programma gratuito che inoltra pubblicità per ottenere un ritorno economico da essa. Commerciale: programma a pagamento. Nota: molti programmi commerciali somigliano a freeware, ma non lo sono affatto. Una gerarchia a ”blocchi” L'organizzazione funzionale dei moderni calcolatori è immaginata come una gerarchia di strati. Allo strato più alto si trova l'utente, allo strato più basso l'hardware. Il nostro studio si rvolge all'interfaccia tra lo strato SO e lo strato applicazione. Tipi di sistemi operativi Benché la classificazione per tipi sia labile possiamo distigure: Sistemi operativi realtime, multiuser, multitasking (PC) Sistemi operativi distribuiti (usato da Google) Sistemi operativi embedded (recentementi affermatisi negli smarphone) Architettura del sistema operativo Monolitco. Attualemnte il migliore. Rappresentante: Linux Microkernel. Sistema ideale attualmente in fase di sviluppo Ibrido. Variante attualmente implementata, con tutti i pro e i contro. Rappresentanti Windows, MacOS. Concetti sviluppati dai Sistemi operativi Processo esecuzione di un programma File porzione di memoria (fissa o mobile) di un elaboratore che contiene un insieme organizzato di informazioni omogenee. Funzioni dei sistemi operativi Gestione dei processi. Il S.O. è deputato alla gestione dei processi rispetto ai privilegi di esecuzione che ne determinano l'autorizzazione per l'accesso alle risorse. Tempo di calcolo Spazio di memoria Periferiche ecc Funzione dei sistemi operativi Gestione delle risorse Il S.O. gestisce le risorse disponibili al fine di allocarle in maniera corretta, efficiente ed equa. Lo scheduler gestisce le frazioni di tempo in cui eseguire i processi Il gestore di memoria fornisce gli spazi di memoria per eseguire i programmi Il file system gestisce la memoria permanente che contiene dati e programmi Scheduler Lo scheduler alloca il tempo di calcolo ai processi al fine di realizzare un ambiente multiuser, multitaskin e quando richiesto realtime. Interrupt Il meccanismo hardware con il quale si implementa lo scheduling è l'interrupt. L'interrupt è un segnale con il quale un processo passa lo stato di esecuzione ad un'altro processo. L'interrupt può anche essere generato dall'hardware per sospendere l'esecuzione di un processo. Un pericolo in agguato: lo stallo La gestione delle risorse e il cambio e l'alternarsi dei processi può portare a situazioni di stallo in cui i processi si bloccano a vicenda nel tentativo di accedere contemporaneamente a più risorse risorsa. Gestore di Memoria Il gestore di memoria implementa le seguenti strategie Riallocazione/virtualizzazione Protezione Condivisione Organizzazione fisico/logica Il file system Il files sono organizzati attraverso un contenimento gerarchico di directory. Una directory è un indice di file contenuti in una o più porzioni di memoria. Una directory è anch'essa un file. Per uniformità logica anche le periferiche di sistema (stampante, tastiera, mouse, ecc.) sono rappresentate con file. Sicurezza: Access Permission La sicurezza del sistema è garantita dai peremessi di accesso del filesystem. Ogni file ha: Un proprietario Permessi utente Permessi gruppo Permessi a tutti Bootstrap L'avvio del sistema è la procedura che consente al sistema di attivare tutte le sue funzionalità. L'inizio di questa procedura dipende dall'hardware. Alla fine della procedura tutti i servizi e i processi necessari alla gestione del software dell'utente devono essere attivati. La sequenza (per i PC) è la seguente: Verifica hardware Salto alla prima istruzione del BIOS Caricamento da parte del programma BIOS del S.O. a cascata