Sistemi operativi e componenti software Corso di Idoneità di Informatica
Contenuto Introduzione ai sistemi operativi Gestione dei file e delle directory Rappresentazione dei dati e multimedialità Il software applicativo
Sistemi operativi e software di base La componente software di un sistema informatico è costituita da un insieme di programmi specifici per un determinato problema (software applicativo) rivolti alla gestione dell’intero sistema (software di base) La parte principale del software di base è detta sistema operativo
Principali sistemi operativi MS-DOS, il primo sistema operativo per PC OS/2, un sistema operativo alternativo per PC Windows 95/98/2000, attuali sistemi operativi per PC Windows NT, il sistema operativo per PC utilizzati come server di rete System 8, il sistema operativo per Macintosh Apple Unix, uno dei sistemi operativi più potenti e diffusi Linux, versione di Unix per PC
Architettura di un sistema operativo Software applicativo Interprete comandi (shell) Gestione dei file Gestione delle periferiche Gestione della memoria Gestione dei processi HW
Gestione dei processi Il multitasking (esecuzione di più programmi contemporaneamente) è consentito da molti sistemi operativi Il quasi parallelismo è solitamente gestito tramite la tecnica del time-sharing Ogni processo viene eseguito al massimo per un “quanto” di tempo (ad esempio 100 ms) L’esecuzione poi passa al processo successivo, e poi al successivo, ecc., fino a tornare al primo e così via
Multitasking CPU Word processor Foglio elettronico Trasf. file Browser Posta elettonica Calcolatrice
Memoria virtuale Un servizio offerto dalla gestione della memoria è la cosiddetta memoria virtuale E’ possibile eseguire programmi più grandi della memoria centrale caricando in memoria solo alcuni parti (pagine) del programma Quando serve una pagina del programma residente su disco avviene la sostituzione di una pagina in memoria con quella desiderata
Memoria virtuale
Gestione delle periferiche Il sistema operativo consente all’utente di effettuare operazioni di lettura e di scrittura con le periferiche con comandi indipendenti dalla struttura fisica. Ciò è realizzato tramite driver fisici: effettuano a livello fisico (hardware) il trasferimento dei dati driver logici: effettuano un’interfaccia (software) tra i programmi applicativi e le periferiche
Interprete comandi E’ l’unica parte del sistema operativo visibile all’utente L’interprete comandi interpreta i comandi inviati dall’utente (da tastiera o con il mouse) e li esegue attivando i programmi corrispondenti o effettuando le operazioni richieste
Sicurezza e protezione Un sistema operativo multiutente deve possedere un meccanismo per identificare gli utenti Il sistema più usato è quella di attribuire a ciascun utente una login ed una password Ad ogni utente può essere attribuito un costo per le risorse da lui usate Si può restringere a certi utenti l’accesso al file system e alle risorse L’utente può avere un proprio ambiente personalizzato
Il file system Tra i compiti più importanti del sistema operativo vi è la gestione dei file (file system) che si occupa di gestire le informazioni memorizzate nelle memorie di massa organizzandole logicamente e facilitando le operazione su di esse
File Un file è una contenitore di informazioni identificato da un nome mnemonico (filename) e memorizzato in una delle memorie di massa Il filename può avere un suffisso (estensione) che rappresenta il tipo di informazione che il file contiene ed è solitamente associato al programma con cui è stato creato il file
Esempio di filename Ad esempio una lettera può essere memorizzata nel file domanda_concorso.doc in cui il suffisso .doc indica che il file in questione è un documento creato con Microsoft Word
File system La maggior parte dei sistemi operativi esistenti adotta un file system gerarchico Tutti i file vengono suddivisi in directory o cartelle Le varie directory sono strutturate ad albero, la cui radice è detta directory principale (o ROOT)
Directory Una directory è un contenitore logico che può contenere file ed altre directory Una directory ha un nome che la contraddistingue dalle altre directory Lo scopo principale delle directory è di catalogare i file presenti nel dispositivo di memorizzazione
Esempio di file system gerarchico ROOT foto.jpg ordini lettere sting.mp3 Genn99.xls evasi concorso1.doc marco disdetta directory lettera1.doc lista.doc file
Pathname Ogni file si trova in una sola directory, la quale, a sua volta, si può trovare in un’altra directory (e così via) All’interno della stessa directory non possono esistere più file con lo stesso nome Il percorso per arrivare dalla ROOT al file in questione si chiama pathname
Pathname in MS-DOS e Windows la directory principale si chiama \ Nello specificare il percorso le directory sono separate dal carattere \ Ad esempio il percorso ROOT lettere marco lista.doc viene indicato con \lettere\marco\lista.doc
Unità Il file system può gestire file memorizzati in più memorie di massa (floppy disc, hard disc, CD-Rom, unità di rete, ecc.) Ad ogni dispositivo di memoria di massa in MS-DOS e Windows è associata una lettera identificativa (che viene aggiunta al pathname) A: e B: sono i floppy disc C: è l’hard disc D: è il CD-Rom
Operazioni fondamentali sui file Creare un file Rinominare un file Cancellare un file Copiare un file Spostare un file Aprire e/o modificare un file
Creazione di un file Un file può essere creato solo utilizzando dei particolari programmi applicativi Ad esempio una file contenente una lettera può essere creato usando Microsoft Word Quando un file viene creato gli viene associato il filename e viene memorizzato nella directory e nell’unità voluta dall’utente Solitamente il programma assegna automaticamente l’estensione al filename
Rinominazione Rinominare un file significa cambiare il suo filename Non si può dare un nome di un file già esistente nella stessa directory Cambiando l’estensione il file potrebbe non essere più letto con il programma con cui è stato creato
Cancellazione Cancellare un file significa eliminarlo dal file system La cancellazione solitamente avviene a livello logico: lo spazio occupato dal file cancellato non viene liberato immediatamente, ma viene marcato come libero In molti sistemi operativi un file cancellato è irrecuperabile
Copia Copiare un file significa creare un nuovo file identico al precedente Ha senso creare una copia di un file in un’altra directory o in un’altra unità (es. da hard disc a floppy disc) E’ possibile anche creare una copia di un file nella stessa directory attribuendogli un altro nome
Spostamento Spostare un file significa portarlo in un’altra directory o in un’altra unità Questa operazione corrisponde ad un’operazione di copia del file seguita dalla cancellazione del file originario E’ possibile spostare un file solo se nella directory di destinazione non esiste già un file con lo stesso filename
Apertura e modifica di un file Un file può essere aperto, cioè se ne può leggere il contenuto, e modificato solo attraverso il programma con cui è stato creato Ad esempio un file documento scritto con Word può essere riletto solo con Word o programmi che siano in grado di trattare lo stesso formato
Operazioni sulle directory Creare una directory Cancellare una directory Spostare una directory Copiare una directory Rinominare una directory
Creare una directory Per creare una directory si usa dei comandi particolari del sistema operativo Quando la directory viene creata le viene associato un nome e viene memorizzata nella directory e nell’unità voluta dall’utente
Cancellare una directory Cancellare una directory significa eliminarla dal file system In molti sistemi operativi ciò è possibile solo se la directory è vuota (cioè non contiene né file né altre directory)
Altre operazioni E’ possibile rinominare una directory in modo analogo ad un file E’ possibile inoltre copiare e spostare una directory in altre directory e/o unità: tutti i file e tutte le directory contenuti nella directory copiata o spostata vengono copiati o spostati a loro volta
Interazione con il sistema operativo Esistono sistemi operativi con cui è possibile interagire digitando dei comandi che eseguono le operazioni viste in precedenza (MS-DOS, Unix, ecc.) Windows permette la gestione dei file e l’interazione con il sistema attraverso un’interfaccia visuale e l’utilizzo del mouse
Interfaccia a caratteri
Interfaccia visuale
Altri programmi del software di base Programmi di utilità: formattazione, deframmentazione, scanning del disco Programmi per lo sviluppo di applicazioni: interpreti, compilatori, editor, debugger
Rappresentazione binaria Ogni tipo di dato è rappresentato da una successione di byte, che a loro volta sono sequenze di otto bit Un bit può assumere solo i valori 0 e 1 spento acceso 1
Byte e numeri binari Un byte è un numero binario composto da 8 bit Un byte può rappresentare i 28 =256 numeri interi compresi tra 0 e 255 128 64 32 16 8 4 2 1 1 1 1 16+4+2=22
Rappresentazione dell’informazione numerica I numeri interi sono rappresentati come successioni di byte (2, 4 e 8 byte) Molte macchine usano interi a 32 bit (4 byte): 1 bit per rappresentare se il numero è positivo o negativo (segno), gli altri 31 per le cifre binarie del numero con 32 bit si possono gestire numeri compresi tra -2.147.483.648 e 2.147.483.647
Rappresentazione dell’informazione testuale Un testo “puro” è memorizzato come sequenza di caratteri (spazi e ritorni a capo compresi) Ogni carattere è rappresentato con un codice numerico Il codice più diffuso è il codice ASCII, in cui ad ogni carattere è associato un numero compreso tra 0 e 255 Un codice emergente è l’UNICODE che consente di rappresentare testi scritti in altri alfabeti (quello arabo) o in ideogrammi (ad esempio il cinese)
Codice ASCII 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 13 ‚ ƒ „ … † ‡ ˆ ‰ Š 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 13 ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ 1 14 Œ ‘ ’ “ ” • 2 15 – — ˜ ™ š › œ Ÿ 3 ! " # $ % & ' 16 ¡ ¢ £ ¤ ¥ ¦ § ¨ © 4 ( ) * + , - . / 1 17 ª « ¬ ® ¯ ° ± ² ³ 5 2 3 4 5 6 7 8 9 : ; 18 ´ µ ¶ · ¸ ¹ º » ¼ ½ 6 < = > ? @ A B C D E 19 ¾ ¿ À Á Â Ã Ä Å Æ Ç 7 F G H I J K L M N O 20 È É Ê Ë Ì Í Î Ï Ð Ñ 8 P Q R S T U V W X Y 21 Ò Ó Ô Õ Ö × Ø Ù Ú Û 9 Z [ \ ] ^ _ ` a b c 22 Ü Ý Þ ß à á â ã ä å 10 d e f g h i j k l m 23 æ ç è é ê ë ì í î ï 11 n o p q r s t u v w 24 ð ñ ò ó ô õ ö ÷ ø ù 12 x y z { | } ~ 25 ú û ü ý þ ÿ
Rappresentazione dell’informazione testuale Un testo formattato viene invece memorizzato in modo non standard, a seconda del programma con cui è stato scritto (ad esempio Word) Esistono dei formati standard di diffusione dei testi (i più usati sono PostScript e PDF) utilizzati per la pubblicazione di articoli su Internet Un testo in questo formato può essere generalmente letto e stampato, ma non può essere modificato Un altro formato per testi e ipertesti è HTML, usato per scrivere le pagine web
Rappresentazione delle immagini Un immagine è solitamente rappresentata come matrice di punti Ad ogni punto (detto pixel) è un associato un codice che ne rappresenta il colore La più diffusa rappresentazione dei colori (RGB) associa un codice numerico da 0 a 255 per ciascuna componente elementare (rosso-verde-blu) In totale sono possibili 16.581.375 colori diversi
I pixel e la risoluzione
Rappresentazione delle immagini Questa rappresentazione (formato bitmap) ha bisogno di 24 bit per ogni pixel (molto dispendioso) Ad esempio un’immagine 640x480 pixel con colori a 24 bit occupa 921.600 byte Con particolari accorgimenti si possono utilizzare un numero minore di colori e ridurre lo spazio occupato dall’immagine
Rappresentazione delle immagini Esistono formati compressi (tra i più diffusi vi sono i formati JPEG e GIF) che consentono attraverso particolari tecniche numeriche di memorizzare immagini fotografiche di ottima qualità in uno spazio molto minore Il formato JPEG in realtà non memorizza fedelmente l’immagine ma sfrutta l’ulteriore caratteristica che l’occhio umano non è in grado di vedere che una piccola parte dei circa 17 milioni di colori possibili
Rappresentazione di dati audio I dati audio sono memorizzati attraverso un campionamento dell’intensità del suono Ad esempio il suono stereo di qualità CD è campionato a 16 bit per ciascun canale con una frequenza di 44100 volte al secondo (formato WAV) Esistono formati compressi, come il MPEG layer 3, che consentono di ridurre molto lo spazio necessario alla memorizzazione senza apprezzabili perdite di qualità del suono
Rappresentazione di dati video Un video può essere rappresentato come sequenza di immagini E’ un metodo molto dispendioso, ad esempio 30 fotogrammi (circa un secondo di filmato) occuperebbe 640x480x3x30= 27.648.000 byte Esistono formati compressi (tipo MPEG, QuickTime, MOV) che riducono notevolmente lo spazio necessario sfruttando la caratteristica che tra un fotogramma ed un altro ci potrebbero essere relativamente poche differenze
Compressione video
Compressione dei file Un file o più file insieme possono essere compressi o “zippati” La rappresentazione interna di questi file viene cambiata in modo da occupare meno spazio: si può immaginare che i dati vengano “abbreviati” (tipo sig. per signore) Con i file di tipo testo si può arrivare a risparmiare fino al 70-80% dello spazio originale Un file compresso non è leggibile né modificabile
Compressione dei file Quando serve un file compresso può essere decompresso (“dezippato”) in modo da tornare ad essere utilizzabile Comprimere dei file può servire per per fare spazio a file più utili o per trasferirli più velocemente (su dischetto, via rete, …) Un programma di compressione file molto usato per Windows è WinZip (i file compressi hanno estensione .zip)
Il software applicativo Esistono diversi tipi di software applicativo Software orizzontale: software ad ampia diffusione e di utilizzo generale (ad es. un word processor) Software verticale: software scritto per particolari compiti diffuso in particolari settori (es. gestione di parcelle mediche) Applicazioni personalizzate: software scritto ad hoc per una determinata azienda o cliente (ad es. gestione dei treni per le Ferrovie dello Stato)
Il software applicativo Tra gli svariati tipi di software applicativi “orizzontale” i più utilizzati comunemente in azienda vi sono programmi di videoscrittura (word processor) fogli elettronici programmi di presentazione programmi di grafica programmi gestionali e di contabilità sistemi per la gestione dei database
Programmi di grafica Consentono di creare disegni, presentazioni e per elaborare immagini preesistenti Utilizzano solitamente il mouse o strumenti simili (penna ottica, tavoletta grafica) per interagire con l’utente simulando il modo di disegnare su carta Esistono due tipi principali di programmi di grafica: i programmi “paint” e i programmi “draw”
Programmi di grafica I programmi di tipo “paint” permettono di lavorare a livello di singolo pixel; sono usati ad esempio per ritoccare fotografie o disegnare immagini a mano libera I programmi di tipo “draw” permettono di disegnare immagini come insiemi di linee, punti, cerchi, ellissi, poligoni (grafica vettoriale) e di effettuare rotazioni, ingrandimenti, cambiamenti di angolatura; sono usati come strumenti di progettazione (CAD)
Grafica in modo bitmap
Grafica vettoriale
Sistemi per la gestione dei database Consentono di gestire grosse quantità di dati strutturati (database) e di ricercare i dati in modo veloce e potente Facilitano l’organizzazione dei dati evitando ripetizioni e stabilendo relazioni tra i dati Regolano l’accesso dei vari utenti ai dati permettendo di nascondere parte dei dati a determinati utenti Permettono la definizione di vincoli sui dati che vengono controllati dal programma stesso
Sistemi per la gestione dei database Controllano l’accesso concorrente ai dati permettendo l’utilizzo simultaneo ai dati da parte di più utenti potenzialmente da qualunque macchina Trovano il loro utilizzo in molti parti della gestione di un’azienda, dalla contabilità alla gestione del personale, fino alla gestione del magazzino Tra i più diffusi sistemi di database (DBMS) per PC si trovano Microsoft Access, Paradox, Oracle, SQL Server, FoxPro