La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

Presentazioni simili


Presentazione sul tema: "Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,"— Transcript della presentazione:

1 Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition, Addison Wesley CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli Studi di Trento Elisabetta Trentin matricola

2 Indice della presentazione Definizione di sistema operativo e qualche esempio di sistema operativo Breve storia dell’evoluzione dei sistemi operativi dagli anni ‘50 ad oggi Curiosità: chi è Linus Torvalds? L’architettura dei sistemi operativi: dal software al kernel Il coordinamento delle attività della macchina: boot strapping, scheduler e dispatcher La sicurezza del computer: attacchi esterni e interni. Curiosità: Che cos’è l’hacking? 2

3 Definizione di SO Un sistema operativo (SO) è un insieme di programmi (software) che interagiscono da intermediari tra l’utente e le risorse hardware di un calcolatore. Quattro sono le caratteristiche principali: 1. controlla l’insieme delle operazioni su un computer 2. fornisce i mezzi con cui un utente può memorizzare e recuperare i file 3. fornisce un’interfaccia con cui l’utente può eseguire i programmi 4. fornisce l’ambiente necessario a eseguire i programmi richiesti 3

4 Un paragone.. Hardware: struttura di una casa (i muri, il pavimento, le pareti) SO: i servizi di base che rendono la casa abitabile (luce, acqua, gas) Programmi applicativi: arredamento. Per uno scrittore una scrivania (programmi di videoscrittura), per chi ama la musica un impianto stereo (programmi per ascoltare musica), per un bambino la stanza dei giochi (programmi per giocare) e così via Fonte:http://pasticcietpasticcini.blogspot.it/2009/11/una-casa- meta.html 4

5 Alcuni esempi dei SO per computer più usati Windows (Microsoft) Mac (Apple) Ubuntu (GNU/Linux ) Quali sono i criteri di scelta? Per i principianti essenzialmente la cosmetica. Per i più esperti invece, la ricchezza dei pacchetti offerti, la filosofia di progettazione, la sicurezza del sistema e la stabilità Ad esempio, perché usare Linux? 5

6 Evoluzione dei SO Evoluzione dell’ hardware – Invenzione del transistor, dispositivi semiconduttori usati nell’elettronica digitale per amplificare il segnale in entrata o svolgere il ruolo di interruttori - elaboratori, o mainframe, costruiti e venduti in serie - unici acquirenti: centri di calcolo, università, banche - calcolatori inaffidabili dato che le valvole si rompevano spesso - il concetto di SO non esisteva ancora - un programma veniva inserito ad ogni esecuzione in codice binario attraverso dei lettori di schede perforate e il risultato inviato ad una stampante dopo alcune ore Fonte:http://chibi.foru mcommunity.net/?t=

7 Evoluzione dei SO Per eseguire dei programmi o job un programmatore doveva: 1. Scrivere il programma su carta 2. Trasferirlo su schede 3. Caricarlo nel computer 4. Attendere il termine dell'esecuzione e la stampa del risultato Tale sequenza era dispendiosa in termini di tempo e, poiché mancava la Direct Memory Access, in breve DMA, la macchina non era sfruttabile durante le fasi di caricamento di dati e programmi. Fonte: Computer Science An Overview, 11 th Edition, Addison Wesley 7

8 Fonte: 8

9 Evoluzione del SO Sistema batch (lotti) L’idea di base è dividere il job, insieme di istruzioni codificate secondo il Job Control Language (JCL) in 3 fasi : 1. caricamento dei dati secondo la coda FIFO o LIFO 2. esecuzione 3. stampa Nessuna possibilità di modifica delle operazioni in corso: accettabile per attività stabilite in anticipo (ad esempio, elaborazione delle buste paga) ma non per sistemi di prenotazione o computer games che devono operare real time Fonte: Computer Science An Overview, 11 th Edition, Addison Wesley 9

10 Evoluzione dei SO 1960: Si riscontra la necessità di un dialogo continuo e veloce. Sviluppo dei Processi interattivi: è la macchina che si adegua ai tempi dell’utente e non il contrario Processi Real Time: il computer è obbligato a eseguire gli ordini entro un tempo di scadenza Time-sharing (tecnica della multiprogrammazione) Fonte: Computer Science An Overview, 11 th Edition, Addison Wesley 10 Dati i costi ingenti si vuole soddisfare più utenti allo stesso tempo. Vedi la figura

11 Evoluzione dei SO Programmi salvati nella memoria di massa eliminando le schede perforate con la conseguente riduzione degli spazi occupati dall’hardware Per accelerare i tempi, assegnano compiti diversi a processori diversi: nascono i multiprocessori. Si fronteggiano problemi di load balancing (assegnazione delle attività ai processori in maniera efficiente) e scaling (suddivisione delle mansioni in numero compatibile col numero di processori disponibili) 11 È possibile connettere computer anche distanti geograficamente grazie alle reti di computer che gestiscono risorse su più macchine Nasce il ruolo dell’ amministratore del sistema: controlla le attività dei vari account e delle nuove componenti hardware installate, imposta i limiti della memoria

12 Evoluzione del SO 1969 : Fu progettato UNIX da alcuni ricercatori dei Bell Laboratories in New Jersey, tra cui Ken Thompson, Dennis Ritchie e Douglas Mcllroy. Si ispirò a Multics, e divenne un sistema interattivo, affidabile e ricco di funzionalità, tanto che tuttora domina il mercato delle workstation (computer non destinati a compiti specifici) Furono sviluppate diverse varianti di UNIX: BSD (Berkley Software Distribution), Minix (usato in ambito didattico) e successivamente Linux 12

13 Evoluzione dei SO 1984: Apple prende “in prestito” questa idea e lancia Mac OS, primo SO per PC Xerox lancia il primo SO con interfaccia grafica 1985: Microsoft commercializza Windows Apple era uno dei pochi che credeva nell'idea del PC: un computer ad uso generico le cui dimensioni, prestazioni e prezzo di acquisto lo rendevano adatto alle esigenze del singolo individuo. All'epoca era difficile immaginare cosa le persone potessero farsene di un computer per casa, figuriamoci di un computer per quasi ogni componente della famiglia Anni '80: la tecnologia LSI (Large Scale Integration) porta alla costruzione di chip integrati e all'abbattimento dei prezzi dell'hardware, iniziando l'era del Personal Computer (PC) 13

14 Curiosità: Chi ha inventato Linux? 1991: "Hello everybody out there [...] i'm doing a (free) operating system, just a hobby, won't be big and professional [...]". Fonte: ogni-lunga-marcia-inizia-con-un-piccolo.html La popolarità di Torvalds ebbe inizio a seguito di una disputa di carattere tecnico con il Professor Andrew Tanenbaum che aveva realizzato per scopi didattici Minix, un SO simile a Unix che veniva distribuito con il codice sorgente ma vietava di apportare modifiche al codice senza l'autorizzazione dell'autore. L'idea di Tux, il pinguino mascotte di Linux, è attribuita alla moglie. Linus Torvalds, studente finlandese dell’Università di Helsinki, sviluppatore del kernel Linux. Il sistema operativo GNU/Linux, é entrato nella storia come alternativa ai SO commerciali a licenza chiusa (come Microsoft Windows, Mac OS X). A differenza di questi ultimi, Linux è un software libero rilasciato sotto licenza GPL,General Public License, ossia chiunque può accedere al codice sorgente del SO, modificarlo, usare l'eseguibile per ogni scopo e copiare legalmente tale software) 14

15 Evoluzione dei SO Oggi è disponibile una grande varietà di sistemi operativi, dalle più disparate dimensioni e performance a costi contenuti. Sono stati inseriti persino nei telefoni cellulari, dando il via all’era degli smartphone o “cellulare intelligente”: un dispositivo portatile che abbina le funzionalità di telefono cellulare a quelle di gestione di dati personali. Esempi di SO per cellulari: Android, Apple iOS, BlackBerry, Symbian OS “Forse un giorno riusciremo ad avere dei computer pesanti solo 1 tonnellata e grandi qualche metro quadrato.” (Dipendente IBM verso gli anni ‘50) 15

16 Architettura del software e ruolo di un SO Programmi utili per l’utente: -Fogli di calcolo -Database -Editoria -Giochi Programmi non inclusi ma che l’utente sceglie in base ai propri gusti: -compressione dati -multimedialità -chat -creazione cd Fornisce le infrastrutture richieste dall’application software per regolarne le attività Fonte: Computer Science An Overview, 11 th Edition, Addison Wesley 16

17 Interfaccia Permette la comunicazione tra le azioni richieste dall’utente e il computer Quelle più datate (shell) comunicavano tramite comandi inseriti con la tastiera Quelle più moderne, le GUI (Graphical User Interface), permettono la manipolazione degli oggetti rappresentati da icone tramite il mouse, dispositivi touch o puntatori grafici Una componente importante è il Windows Manager (WM) che riserva porzioni dello schermo (finestre) per visualizzare le applicazioni in uso. È il WM che reagisce nel punto corretto e con l’applicazione selezionata quando clicchiamo il mouse. 17

18 Kernel Contiene le informazioni per svolgere le funzioni di base al momento dell’installazione del SO. Componenti del kernel (nucleo): File manager: contiene l’annotazione di tutti i file salvati nella memoria, dove sono e quali utenti possono accedervi. Per convenienza permette un organizzazione gerarchica delle cartelle espressa dal percorso Driver delle periferiche: unità software che comunicano con stampanti, monitor, etc Memory manager: coordina l’uso della memoria quando i programmi vengono eseguiti. Quando lo spazio di memoria richiesta eccede lo spazio libero, crea dello spazio di memoria addizionale: Paging E’ possibile caricare i blocchi di memoria solo quando necessario tramite una memoria virtuale. I programmi infatti raramente utilizzano tutte le parti del loro codice contemporanemante Scheduler: fa avanzare più processi parallelamente interrompendoli quando opportuno ed eseguendo un cambio di contesto (switch) Dispatcher: controlla il tempo per le diverse attività Fonte: J.Glenn Brookshear, (2012) Computer Science An Overview, 11 th Edition, Addison Wesley 18

19 Cosa succede all’accensione della macchina? Procedura Boot strapping (booting): il SO viene trasferito dalla memoria di massa, dove è memorizzato permanentemente, alla memoria principale. Dopo il booting è il SO che controlla l’attività della macchina Problema: la memoria principale essendo volatile perde tutti i dati ad ogni arresto. Soluzione: si inserisce un programma chiamato Boot Loader che fa eseguire alla CPU le istruzioni iniziali nella ROM (Read Only Memory) porzione di memoria principale non alterabile Fonte:Computer Science An Overview, 11 th Edition, Addison Wesley 19

20 Cosa succede all’accensione del computer? Perché non caricare tutto il SO sulla memoria principale ed evitare il booting? Non sarebbe una scelta efficiente in termini di occupazione dello spazio e di memoria. Inoltre non sarebbero possibili gli aggiornamenti di cui un SO necessita ai fini della sicurezza. Due componenti importanti: Firmware Update: aggiorna il SO Firmware System: svolge le attività fondamentali di I/O prima che il SO diventi funzionante. Include la BIOS (Basic Input Output System) 20

21 Come il SO coordina le attività della macchina? Il SO ha un ruolo analogo a quello di un suonatore che esegue uno spartito. Possiamo immaginare che lo spartito sia il programma e che il suonatore sia il SO che esegue tale programma Processo: attività che consiste nell’esecuzione di un programma sotto il controllo della CPU Stato di un processo: stato corrente dell’attività eseguita, è identificato dai valori del registro della CPU e dalle relative celle assegnate La gestione dei processi è affidata a due componenti del SO: - Scheduler: sa quali processi sono presenti nel computer, introduce quelli da eseguire e cancella quelli eseguiti. Per tenere traccia di tutte le informazioni usa una tavola dei processi. Ogni volta che è richiesta l’esecuzione di un programma crea una nuova voce per il processo assegnando una priorità. Vi sono due tipi di priorità che distinguono i processi in processi pronti o in attesa - Dispatcher: controlla l’esecuzione e i tempi dei processi; indispensabile per la tecnica della multiprogrammazione 21

22 Multiprogrammazione tra due processi Dell’ordine di microsecondi: 10 −6 s Azionato da un circuito a tempo, interrompe il lavoro della CPU che salva la posizione corrente Fondamentale la capacità si poter riprendere l’attività e ricreare l’ambiente Es: click, tasto power Fonte: Computer Science An Overview, 11 th Edition, Addison Wesley 22

23 Sicurezza dei sistemi informatici Vogliamo un SO ben progettato, affidabile, protetto e sicuro (per evitare, ad esempio il danneggiamento dei file o la perdita di dati a causa di crash del sistema). Di questo si occupa l’Ingegneria del software Per evitare attacchi esterni conviene: - servirsi di account con username e password (procedura di Login), - creare il ruolo dell’amministratore: un account che detiene privilegi speciali come, ad esempio, poter monitorare il comportamento degli altri utenti e modificare i pacchetti del software - installare Auditing software: programmi che segnalano comportamenti insoliti rispetto alle abitudini o vari tentativi errati di inserimento password - porre attenzione agli Sniffing software: memorizzano le attività svolte dall’utente e le riportano a un intruso Tuttavia, il rischio principale resta la noncuranza degli utenti che usano password troppo facili come nomi o date, non le cambiano mai e le passano tra amici Suggerimento: un sito web per creare password robuste 23

24 Sicurezza dei sistemi informatici Con l’accesso come amministratore si possono esplorare tutte le informazioni contenute in un sistema informatico e inserire software distruttivi. Ad esempio, si può indurre il Memory Manager a permettere accessi fuori dall’area assegnata occupando spazi di altri programmi; se un processo può alterare gli intervalli di tempo che regolano la multiprogrammazione è in grado di dominare il computer, etc Protezione da attacchi interni: le CPU sono dotate di meccanismi per sventare tali attacchi, ma è necessario continuare a lavorare in questo settore. La CPU ha una modalità privilegiata (istruzioni limitate) e una non privilegiata. All’accensione è in modalità privilegiata, dopo il booting e all’inizio di ogni time slice è in modalità non privilegiata così da permettere gli arresti. Il tentativo di svolgere un’istruzione privilegiata quando la CPU è in modalità non privilegiata causa un arresto 24

25 Curiosità: che cos’è l’hacking? Risponde questo video: Hacker: un esperto informatico, che si impegna nell'affrontare sfide intellettuali per aggirare o superare creativamente le limitazioni che gli vengono imposte, non limitatamente ai suoi ambiti d'interesse (che di solito comprendono l'informatica o l'ingegneria elettronica), ma in tutti gli aspetti della sua vita. Molti hacker tentano di convincere l'opinione pubblica che, gli intrusi che entrano all'interno dei sistemi informatici senza autorizzazione e con l'unico scopo di causare danni, dovrebbero essere chiamati cracker (criminali informatici) piuttosto che hacker, ma l'uso errato permane nel vocabolario comune della gente. Si differenziano in white hat e black hat, ricalcando l’analogia proposta nei film western dove i “buoni” portavano un cappello bianco e i “cattivi” un cappello nero. Il White hat crede che la rete internet sia un grande mezzo per permettere la comunicazione di notizie in tutto il mondo da parte di tutti e s'impegna nella difesa d'integrità di questo strumento. Ad esso contrapposto, il Black hat o cracker 25

26 Bibliografia J.Glenn Brookshear, (2012) Computer Science An Overview, 11 th Edition, Addison Wesley U. Erra, (2009) Dispensa sui sistemi operativi, Corso di laurea in Informatica, Università degli Studi della Basilicata 26


Scaricare ppt "Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,"

Presentazioni simili


Annunci Google