• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Slide trentin
 

Slide trentin

on

  • 267 views

 

Statistics

Views

Total Views
267
Views on SlideShare
267
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Slide trentin Slide trentin Presentation Transcript

    • CAPITOLO IIISISTEMI OPERATIVI Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Corso di Didactics of Computer Science Università degli Studi di Trento
    • IndiceLa storia dei sistemi operativiL’architettura dei sistemi operativiIl coordinamento delle attività della macchinaSicurezza del computer
    • Definizione di SOUn sistema operativo (SO) è un insieme di programmi (software) cheinteragiscono da intermediari tra l’utente e le risorse di un calcolatore.Quattro sono le caratteristiche principali:1. controlla l’insieme delle operazioni su un computer2. fornisce i mezzi con cui un utente può memorizzare e recuperare i file3. fornisce un’interfaccia con cui l’utente può eseguire i programmi4. fornisce l’ambiente necessario a eseguire i programmi richiesti
    • Un paragone..- Hardware: struttura di una casa (i muri, il pavimento, le pareti)- SO: fornisce i servizi di base che rendono la casa abitabile (luce,acqua, gas, telefono)- Programmi applicativi: larredamento. Uno scrittore avrà bisognodi una scrivania (programmi di videoscrittura), chi ama la musica vorràun impianto stereo (programmi per ascoltare musica), per un bambinoservirà la stanza dei giochi (programmi per giocare) e così via..
    • Esempi di SO per computer Windows (Microsoft) Mac (Apple) Ubuntu (GNU/Linux )Cosmetica vs pacchetti offerti, filosofia diprogettazione, sicurezza e stabilità.
    • L’evoluzione del SOSito che racconta la storia hardware dei computerhttp://www.windoweb.it/edpstory_new/eh1960.htm 1950 – 1960: rivoluzionaria invenzione del transistor (dispositivisemiconduttori usati nell’elettronica digitale per amplificare il segnalein entrata o svolgere il ruolo di interruttori)- gli elaboratori (o mainframe) costruiti e venduti in serie,- unici acquirenti: Centri di Calcolo, Università, banche- calcolatori erano molto inaffidabili- le valvole che li componevano si rompevano spesso- non esisteva ancora il concetto di SO- il programma da eseguire veniva inserito ad ogni esecuzione in codicebinario attraverso dei primitivi lettori di schede perforate e dopo alcuneore il risultato veniva inviato ad una stampante
    • L’evoluzione del SO Per eseguire dei programmi o job un programmatore doveva:1. Scrivere il proprio programma su carta2. Trasferirlo su schede3. Caricarlo nel computer4. Attendere il termine dellesecuzione e la stampa del risultato Tale operazione era molto dispendiosa in termini di tempo e non permetteva di sfruttare la macchina durante le lunghe fasi di caricamento di dati e programmi: manca DMA (direct memory access)
    • L’evoluzione del SO Soluzione: sistema batch (a lotti) l’idea di base è dividere il job (istruzioni codificate secondo il job control language JCL) in 3 fasi :1. caricamento dei dati (coda FIFO, LIFO)2. calcolo3. stampa Necessaria la presenza di un operatore che legga ed esegua le istruzioni Nessuna possibilità di modifica delle operazioni in corso il che va bene per attività decise in anticipo (ad esempio elaborazione buste paga) ma non per sistemi prenotazione, computer games etc
    • L’evoluzione del SO1960: Si riscontra la necessità di un dialogo continuo e veloce. Sviluppodei Processi interattivi “è la macchina che si adegua ai tempi dell’utente e non il contrario”Processi Real Time: computer è obbligato a eseguire gli ordini entroun tempo di scadenzaDati i costi ingenti si vuole soddisfare più utenti allo stesso tempo:Time-sharing (tecnica della multiprogrammazione)*
    • L’evoluzione del SOProgrammi vengono salvati nella memoria di massa e si eliminano le schedeperforate con la conseguente riduzione degli spazi occupatiSvanisce il ruolo dell’intermediario tra l’utente e la macchina (ad oggisiamo noi i responsabili totali delle nostre azioni sui nostri personal computer)Nascita del ruolo dell’ amministratore del sistema: controllo attività deivari account e delle nuove componenti installate, imposta i limiti della memoriaSe le istruzioni sono complesse è possibile assegnare compiti diversi aprocessori diversi per accelerare i tempi: nascono i multiprocessori.Problemi di load balancing (assegnare le attività ai processori in manieraefficiente) e scaling (suddividere le mansioni in sottomansioni in numerocompatibile col numero di processori disponibili)E’ possibile far eseguire più compiti allo stesso utente: MultitaskingE’ possibile connettere computer tra qualsiasi parte del mondo grazie alcomputer’s network per gestire risorse su più macchine
    • L’evoluzione del SOUNIX fu progettato a partire dal 1969 da un gruppo diricercatori della AT&T, tra cui erano presenti Ken Thompson, DennisRitchie e Douglas Mcllroy presso i Bell Laboratories, NJ Si ispirò a Multics, e divenne un sistema molto interattivo, affidabile ericco di funzionalità, tanto che tuttora domina il mercato delleworkstation (tipologia di computer non destinato a specifici compiti))Furono sviluppate diverse varianti di UNIX, come BSD (BerkleySoftware Distribution)e Minix (usato in ambito didattico) esuccessivamente (sulla base di MINIX e UNIX) lormai famosissimoLinux
    • Chi ha inventato Linux? 1991: "Hello everybody out there [...] im doing a (free) operating system, just a hobby, wont be big and professional [...]".Linus Torvalds, studente finlandese dell’università di Helsinki, è colui cheha iniziato lo sviluppo del kernel Linux. Il sistema operativo GNU/Linux, éentrato nella storia come valida alternativa ai sistemi operativi commerciali alicenza chiusa (come Microsoft Windows, Mac OS X); a differenza di questiultimi sistemi, infatti, Linux è software libero rilasciato sotto licenza GeneralPublic License GPL (chiunque può accedere al codice sorgente del SO,modificarlo, usare leseguibile per ogni scopo e copiare legalmente talesoftware)La popolarità di Torvalds ebbe inizio a seguito di unadisputa di carattere tecnico con il professor AndrewTanenbaum che aveva realizzato per scopi didatticiMinix, un SO simile a Unix che veniva distribuito conil codice sorgente ma vietava di apportare modificheal codice senza lautorizzazione dellautore.Lidea di Tux, la mascotte di Linux, è attribuita allamoglie.
    • L’evoluzione del SONegli anni 80 la tecnologia LSI (large scale integration) porta allacostruzione di chip integrati ed allabbattimento dei prezzidellhardware, facendo sorgere lera del personal computerNegli anni ‘80 la Apple era uno dei pochi che credeva nellideaPersonal Computer : un computer ad uso generico le cui dimensioni,prestazioni e prezzo di acquisto lo rendano adatto alle esigenze delsingolo individuo.Allepoca era difficile immaginare cosa potesse farsene una persona diun computer in casa, figuriamoci di un computer per quasi ognicomponente della stessa famigliaLa Xerox lancia il primo Sistema Operativo con interfaccia grafica La Apple prende in “prestito” questa idea e lancia nel 1984 il Mac OS,primo sistema operativo per personal Computer Successivamente la Microsoft avrebbe commercializzato Windows(novembre 1985)
    • L’evoluzione del SOOggigiorno è disponibile una grande varietà di sistemi di elaborazione dallepiù disparate dimensioni e performance a costi contenuti :- SO per cellulari: Android, Apple iOS, BlackBerry ,Symbian OS.- smartphone “cellulare intelligente”: dispositivo portatile che abbinafunzionalità di telefono cellulare a quelle di gestione di dati personali.- sistemi embedded (incorporati): progettati appositamente per unadeterminata applicazione ovvero non riprogrammabili.Esempi: sportelli bancomat, apparecchi POS, decoder digitali,elettrodomestici, dispositivi medici, navette spaziali.. “Forse un giorno riusciremo ad avere dei computer pesanti solo 1 tonnellata e grandi qualche metro quadrato.˝ (Dipendente IBM verso gli anni ˛50)
    • Analisi dell’architettura del SO Fornisce infrastrutture richieste dall’applicationProgrammi utili software per regolarneper l’utente: attività-Fogli di calcolo-Database-Editoria-Giochi Programmi non inclusi ma che utente sceglie in base ai propri gusti: -compressione dati -multimedialità -chat -creazione cd
    • InterfacciaPermette la comunicazione tra le azioni richieste dall’utente e ilcomputerQuelle più datate (shell) comunicavano tramite messaggi sulloschermo inseriti con la tastieraQuelle più moderne GUI (graphical user interface) permettono lamanipolazione degli oggetti rappresentati da icone tramite il mouse,dispositivi touch o puntatori graficiQualche SO permette di sceglierne fra varieUna componente importante è il Windows Manager (WM) cheriserva porzioni dello schermo (finestre) per visualizzare le applicazioniin uso. E’ il WM che reagisce nel punto corretto e con l’applicazioneselezionata quando clicchiamo il mouse.
    • KernelContiene 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à del software che comunicano con stampanti, monitor, etc Memory manager: incaricata di coordinare l’uso della memoria principale quando i programmi vengono eseguiti. Quando lo spazio di memoria richiesta eccede lo spazio libero crea l’illusione di avere dello spazio di memoria addizionale: Paging . E’ possibile caricare i blocchi di memoria solo quando necessario tramite una memoria virtuale poiché i programmi 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 queste attività
    • Windows Manager e interfaccia Mac OS e DOS
    • Cosa succede all’accensione della macchina?Procedura Boot strapping (booting) : SO viene trasferito dalla memoria di massa dove è memorizzato permanentemente alla memoria principale che è volatile quindi vuota ad ogni accensione. Dopo il booting è il SO che controlla l’attività della macchinaProblema: la memoria principaleessendo volatile perde tutti i datiad ogni arrestoSoluzione: 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 alterabileDomanda: perché non caricare tutto il SO sulla memoria principale ed evitare il booting? Non sarebbe una scelta efficiente in termini di occupazione spazio e non sarebbero possibili gli aggiornamenti di cui un SO necessita ai fini della sicurezzaFirmware Update: aggiorna il SOFirmware system: attività fondamentali di I/O prima che SO diventi funzionante, include la BIOS (basic input output system)
    • Il SO come coordina l’attività della macchina?Differenza tra programma (spartito) ed esecuzione di un programma(suonatore)Processo: attività di eseguire un programma sotto il controllo della CPUStato di un processo: stato corrente dell’attività eseguita identificato daivalori del registro della CPU e dalle relative celle assegnateLa gestione dei processi è affidata a:- Scheduler: sa quali processi sono presenti nel computer, introduce quelli daeseguire e cancella quelli eseguiti. Per tenere traccia di tutte le informazioniusa una memoria chiamata tavola dei processi. Ogni volta che è richiestal’esecuzione di un programma crea una nuova entrata per quel processo nellatavola assegnandogli una priorità: vi sono due tipi di priorità, processi pronti oin attesa- Dispatcher: controllo l’esecuzione e i tempi dei processi scheduled,indispensabile per la tecnica della multiprogrammazione
    • Multiprogrammazione tra i processi A e B Azionato da un circuito a tempo interrompe Esempi: Click, lavoro CPU che salva posizione corrente tasto, power Fondamentale è la capacità si saper Microsecondi: 10−6 s riprendere lavoro e ricreare l’ambiente
    • Sicurezza del sistema informatico Vogliamo un SO ben progettato, affidabile, protetto e sicuro (evitare danneggiamento file o perdita dati causa crash del sistema) Ingegneria del software Per evitare attacchi esterni è conveniente: - se il computer è utilizzato da più persone servirsi di account con username e password (procedura Login), - creazione del ruolo dell’amministratore: account che detiene privilegi speciali come ad esempio il poter monitorare il comportamento degli altri utenti e modificare i pacchetti del software - sviluppo di Auditing software: segnalano comportamenti insoliti rispetto alle azioni svolte dall’utente in genere o vari tentativi errati di inserimento password Pericolo degli Sniffing software: memorizzano le attività svolte dall’utente e le riportano a un intruso 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.Un sito per creare password robuste:http://www.marbaro.it/creare_password_complesse.htm
    • Sicurezza del sistema informaticoUna volta ottenuto l’access0 come amministratore si possono esplorare tutte le informazioni contenute 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 diventa capace di alterare gli intervalli di tempo che regolano la multiprogrammazione allora è in grado di dominare la macchina intera, etc.. Protezione da attacchi interni: oggi le CPU sono dotate di meccanismi per sventare tali attacchi, ma è necessario continuare a lavorare in questo settore! CPU ha una modalità privilegiata (istruzioni limitate) e una non privilegiata Il tentativo di svolgere un’istruzione privilegiata quando la CPU è in modalità non privilegiata causa un arresto.All’accensione è in modalità privilegiata, dopo il booting e all’inizio di ogni time slice è in modalità non privilegiata così da permettere gli arresti
    • Che cos’è l’hacking? La pirateria informaticaUn video (in inglese) che ce lo spiega in tre minuti: http://www.youtube.com/watch?v=hzC6BONJgsQHacker: un esperto informatico con ottime capacità duso del pc, che si diverte nellampliamento delle sue conoscenze. Si differenziano in white hat e black hat (dai film western)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 simpegna nella difesa dintegrità di questo strumento. Ad esso contrapposto, il Black hat o cracker. Molti hacker tentano di convincere lopinione pubblica che gli intrusi che entrano allinterno dei sistemi informatici senza autorizzazione con lunico scopo di causare danno dovrebbero essere chiamati cracker piuttosto che hacker, ma luso errato permane nel vocabolario comune della gente.
    • Fine