• Non ci sono risultati.

AOT AOT LAB LAB

N/A
N/A
Protected

Academic year: 2022

Condividi "AOT AOT LAB LAB"

Copied!
49
0
0

Testo completo

(1)

Agent and Object Technology Lab

Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma

AOT AOT LAB LAB

Fondamenti di Informatica Fondamenti di Informatica Fondamenti di Informatica Fondamenti di Informatica

Software di base

Michele Tomaiuolo

(2)

AOT AOT

LAB LAB

Software di baseSoftware di baseSoftware di baseSoftware di base

 Con software di base si intendono tre tipi di programma software:

 Software per permettere l’esecuzione di programmi scritti in linguaggi ad alto livello

 Software per gestione di tutte le componenti hardware e software di un calcolatore

 Software per l’esecuzione delle principali operazioni richieste dagli utenti

(3)

AOT AOT

LAB LAB

Esecuzione dei programmiEsecuzione dei programmiEsecuzione dei programmiEsecuzione dei programmi

 L'esecuzione un programma scritto con un

linguaggio ad alto livello è preceduta dai seguenti passi:

1. Traduzione in linguaggio macchina

2. Collegamento con programmi di supporto (calcoli, comunicazione con periferiche, …)

3. Caricamento in memoria

(4)

AOT AOT

LAB LAB

Esecuzione dei programmiEsecuzione dei programmiEsecuzione dei programmiEsecuzione dei programmi

 Esistono due modi per eseguire i 3 passi menzionati:

 In sequenza, attraverso i tre programmi detti:

Compilatore

Linker

Loader

 In sequenza per ogni istruzione del programma, attraverso un programma detto interprete

(5)

AOT AOT

LAB LAB

Traduzione in linguaggio macchinaTraduzione in linguaggio macchinaTraduzione in linguaggio macchinaTraduzione in linguaggio macchina

 La traduzione di un programma scritto in un

linguaggio ad alto livello viene suddivisa in 2 passi:

 Analisi (lessicale, grammaticale, contestuale)

 Trasformazione del programma sorgente in codice oggetto

 Il codice oggetto così formato non è eseguibile:

 Può ancora contenere dei simboli irrisolti corrispondente a riferimenti esterni a programmi di servizio (accesso

alle periferiche, calcoli matematici, ...)

 Contiene indirizzi relativi

(6)

AOT AOT

LAB LAB

Linker e loaderLinker e loaderLinker e loaderLinker e loader

 Il Linker serve per collegare diversi moduli oggetto

 Sostituisce ai simboli irrisolti i riferimenti esterni

 Il Loader serve per caricare in memoria un programma rilocabile

 Nel caricamento vengono fissati tutti gli indirizzi relativi (variabili, salti, … )

 Vengono caricati anche i programmi di supporto, se necessari

(7)

AOT AOT

LAB LAB

RilocazioneRilocazioneRilocazioneRilocazione

 Esistono due tipi di rilocazione

 Statica

 Dinamica

 Con la rilocazione statica, gli indirizzi logici sono trasformati in indirizzi assoluti

 Con la rilocazione dinamica, gli indirizzi logici sono utilizzati dal programma in esecuzione

 Il programma compilato deve gestire l’indirizzamento tramite un registro speciale chiamato registro base

 Il registro base mantiene l’indirizzo assoluto della parte di memoria dove si trova il programma

(8)

AOT AOT

LAB LAB

Sistema operativoSistema operativoSistema operativoSistema operativo

 Il sistema operativo è quel software che:

 Viene avviato automaticamente all'accensione della macchina

 Fornisce le funzionalità indispensabili per poter

interagire con l'utente ed eseguire gli altri programmi

 Agisce come intermediario tra l’utente e l’hardware di un computer

 Compiti principali del sistema operativo sono:

 Semplificare l’utilizzo del calcolatore all’utente

 Fornire un ambiente per eseguire programmi in modo conveniente ed efficiente

(9)

AOT AOT

LAB LAB

Criteri di classificazioneCriteri di classificazioneCriteri di classificazioneCriteri di classificazione

 Funzionalità

 Sistemi a lotti (o batch)

 Sistemi interattivi

 Tecniche di gestione delle risorse

 Mono-programmazione

 Multi-programmazione

 Multi-elaborazione

 Tipo di accesso fornito agli utenti:

 Mono-utente

 Multi-utente

(10)

AOT AOT

LAB LAB

Uso di piUso di piùUso di piUso di piùùù sistemi operativisistemi operativisistemi operativisistemi operativi

 In un computer possono essere presenti più sistemi operativi

 Questi devono essere utilizzati singolarmente

 Uso contemporaneo → conflitto nella gestione delle risorse della macchina

 Possibilità di virtualizzazione

 Per poter installare più sistemi operativi è necessario:

 Suddividere l'hard disk in sezioni separate (partizioni)

 Assegnare a ognuna un sistema operativo

 Caricare il sistema operativo dalla partizione desiderata

(11)

AOT AOT

LAB LAB

Sistema operativoSistema operativoSistema operativoSistema operativo

 I programmi che costituiscono il sistema operativo possono essere:

 Classificati rispetto alla loro funzionalità

 Ordinati in base alla distanza dalla macchina fisica

(12)

AOT AOT

LAB LAB

Sistema operativoSistema operativoSistema operativoSistema operativo

Software applicativo Interprete comandi Gestione dei file

Gestione delle periferiche Gestione della memoria Gestione dei processi Hardware

(13)

AOT AOT

LAB LAB

Funzioni del sistema operativoFunzioni del sistema operativoFunzioni del sistema operativoFunzioni del sistema operativo

 Il gestore dei processi (o nucleo) è responsabile

dell’esecuzione dei programmi da parte dell’unità di elaborazione

 Il gestore della memoria ha la funzione di allocare la memoria e partizionarla tra i vari programmi

 Il gestore delle periferiche è responsabile delle operazioni di ingresso/uscita che coinvolgono le periferiche

 Il gestore dei file è responsabile della gestione dei file in memoria di massa

 L’interprete comandi (o shell) consente all’utente di attivare i programmi

(14)

AOT AOT

LAB LAB

Gestione dei processiGestione dei processiGestione dei processiGestione dei processi

 Il sistema operativo ha la responsabilità di gestire l’esecuzione dei programmi

 Un programma in esecuzione viene indicato con il nome di processo

 Un processo durante la sua vita può essere in cinque stati:

Nuovo (new)

Attivo (running)

In attesa (waiting)

Pronto (ready)

Terminato (terminated)

 Il sistema operativo può permettere l’esecuzione contemporanea di più programmi (multi-tasking)

(15)

AOT AOT

LAB LAB

Gestione dei processiGestione dei processiGestione dei processiGestione dei processi

 Il sistema operativo è responsabile delle gestione dei processi:

 Crea e cancella i processi

 Decide a quale processo assegnare la CPU

 Sospende e riattiva i processi

 Fornisce meccanismi per:

La sincronizzazione dei processi

La comunicazione fra i processi

La comunicazione con le periferiche

La gestione dei deadlock

(16)

AOT AOT

LAB LAB

Gestione dei processiGestione dei processiGestione dei processiGestione dei processi

 Con CPU singola non c’è reale parallelismo

 In ogni istante un solo processo è in esecuzione

 Ciclicamente ad ogni processo viene assegnato un intervallo di tempo di esecuzione fissato (time-sharing)

 Se il processo termina prima dello scadere dell’intervallo di tempo…

Viene avviato un nuovo intervallo ed eseguito un altro processo

 Se il processo non termina alla scadenza dell’intervallo o si blocca in attesa di una risorsa…

Il processo viene sospeso, viene avviato un nuovo intervallo ed eseguito un altro processo

(17)

AOT AOT

LAB LAB

Vita di un processoVita di un processoVita di un processoVita di un processo

attivo

pronto

In attesa Salva

stato

Ripristina stato

Fine Inizio

Terminato nuovo

In attesa di I/O

(18)

AOT AOT

LAB LAB

Gestione della memoriaGestione della memoriaGestione della memoriaGestione della memoria

 Il sistema operativo deve poter gestire in modo efficiente il caso in cui lo spazio di memoria

occupato dai programmi in esecuzione è più grande della memoria primaria del calcolatore

 Questo problema si può avere anche con un singolo programma in esecuzione

 Questo è solo possibile se oltre alla memoria primaria viene utilizzata dal sistema operativo anche la memoria secondaria del calcolatore

(19)

AOT AOT

LAB LAB

Gerarchia di memoriaGerarchia di memoriaGerarchia di memoriaGerarchia di memoria

Cache L2

Memoria Principale

Memoria Secondaria CPU CacheL1

Obiettivo: creare l’illusione di una memoria grande, economica e veloce

~ 1ns - 100KB

~ 10ns - 1GB

~ 10ms, 100GB

(20)

AOT AOT

LAB LAB

Gestione della memoria Gestione della memoria Gestione della memoria Gestione della memoria

 Il funzionamento della memoria virtuale è il seguente:

 La memoria è divisa in un insieme di pagine di uguale dimensione

 Ad ogni programma in esecuzione viene assegnato un certo numero di pagine in memoria primaria

 Quando l’istruzione da eseguire non è in memoria primaria (page fault)…

Una pagina della memoria primaria viene spostata in memoria secondaria (se necessario)

La pagina che la contiene l’istruzione da eseguire viene trasferita in memoria primaria

(21)

AOT AOT

LAB LAB

Gestione della memoriaGestione della memoriaGestione della memoriaGestione della memoria

 Il meccanismo di gestione della gerarchia di memoria si dice memoria virtuale

 La memoria virtuale:

 Sfrutta efficacemente la gerarchia

 Rende il programma indipendente dalle dimensioni della memoria della macchina

 Libera il programmatore dalla gestione dello spazio di memoria fisico

(22)

AOT AOT

LAB LAB

Gestione della memoriaGestione della memoriaGestione della memoriaGestione della memoria

 Due fattori che determinano l’efficienza del sistema operativo nella gestione di memoria virtuale sono:

 La scelta delle pagine di ogni programma che inizialmente vengono inserite in memoria

Principio di località

 La scelta della pagina da rimuovere dalla memoria primaria

Algoritmo First–In–First–Out (FIFO)

Algoritmo Least–Recently–Used (LRU)

(23)

AOT AOT

LAB LAB

Gestione della memoriaGestione della memoriaGestione della memoriaGestione della memoria

3: Tl = 6, Ta = 10 4: Tl = 3, Ta = 8 5: Tl = 5, Ta = 11 6: Tl = 5, Ta = 7 7: Tl = 6, Ta = 9 2: Tl = 5, Ta = 7

8: Tl = 2, Ta = 11 1: Tl = 5, Ta = 6

9: Tl = 5, Ta = 7

FIFO LRU

(24)

AOT AOT

LAB LAB

Gestione delle perifericheGestione delle perifericheGestione delle perifericheGestione delle periferiche

 Il sistema operativo deve permettere l’interazione tra i programmi in esecuzione sul calcolatore e le sue periferiche

 In particolare, il sistema operativo:

 Permette di mascherare le caratteristiche hardware delle periferiche

 Fornisce delle procedure ad alto livello che realizzano operazioni di input e output delle diverse periferiche del calcolatore

(25)

AOT AOT

LAB LAB

Gestione delle perifericheGestione delle perifericheGestione delle perifericheGestione delle periferiche

 La Gestione delle periferiche si basa su due elementi

 Il BIOS

 I driver

 Il BIOS (Basic Input Output System) è uno strato di software (firmware) utilizzato per standardizzare

l'accesso ai diversi tipi di periferica

 I driver sono dei programmi software che

permettono l’accesso ad una specifica periferica

(26)

AOT AOT

LAB LAB

BIOSBIOSBIOSBIOS

 Il BIOS svolge anche la funzione di avvio di un computer

 Svolge alcuni compiti di diagnostica

 Inizializza l’hardware

Controlla la memoria

Verifica quali dispositivi sono collegati al computer

Segnala eventuali condizioni di errore

 Provvede ad effettuare il caricamento della parte iniziale (boot sector) del sistema operativo

 Consente di modificare il setup del computer

Data e ora

Quantità di memoria utilizzata

Numero e tipo delle unità a disco

(27)

AOT AOT

LAB LAB

Gestione delle perifericheGestione delle perifericheGestione delle perifericheGestione delle periferiche

 In genere le periferiche:

 Elaborano dati ad una velocità normalmente molto

inferiore rispetto alla capacità di elaborazione della CPU

 Inviano dati verso la CPU in modo saltuario e imprevedibile

 Il sistema operativo deve quindi disporre di un meccanismo che

 Permetta di gestire una periferica mentre la CPU compie altre attività

 Senza che la CPU debba interrogare continuamente le periferiche per sapere se sono pronte a ricevere o

inviare dei dati (polling)

(28)

AOT AOT

LAB LAB

InterruzioneInterruzioneInterruzioneInterruzione

 Le periferiche vengono gestite attraverso un meccanismo detto interruzione (interrupt)

 Nel suo stato normale di elaborazione la CPU ignora ciò che avviene nelle periferiche

 Nel momento in cui una periferica deve inviare o

ricevere dei dati viene attivata una linea del bus che arriva alla CPU che genera una interruzione

(29)

AOT AOT

LAB LAB

InterruzioneInterruzioneInterruzioneInterruzione

 Quando si genera una interruzione:

 Il processo in esecuzione viene sospeso

 Il suo stato viene salvato in modo tale che l’elaborazione possa riprendere poi esattamente dal punto in cui era

stata interrotta

 Il trasferimento dati da/verso la periferica viene eseguito

 Il processo sospeso viene riattivato

(30)

AOT AOT

LAB LAB

Gestione dei fileGestione dei fileGestione dei fileGestione dei file

 Tra i compiti più importanti del sistema operativo vi è la gestione delle informazioni delle memorie di massa, organizzandole logicamente e facilitando le operazioni su di esse

 In particolare, il sistema operativo:

 Organizza le informazioni delle memorie di massa

attraverso una struttura gerarchica (file system) basata su file e directory

 Fornisce operazioni di alto livello per la gestione di file e directory

 Protegge i dati da accessi esterni

 Garantisce la condivisione sicura dei dati

(31)

AOT AOT

LAB LAB

File systemFile systemFile systemFile system

 Il file system permette all’utente di vedere la

memoria di massa come un unico contenitore di dati organizzati secondo una struttura ad albero

 Gli elementi di tale albero sono:

 Memorie di massa

 Directory

 File

(32)

AOT AOT

LAB LAB

File systemFile systemFile systemFile system

 Un calcolatore può avere diverse memorie di

massa (ad esempio, tre hard disk, un floppy disk, un CD-RW e un DVD)

 Ogni memoria di massa è la radice di un sotto albero del file system del calcolatore

 In un sistema operativo Windows alle diverse memorie di massa sono associate delle lettera identificative (A, B:

floppy disk, C: hard disk, D: CD-ROM, etc.)

 Le directory rappresentano i nodi intermedi dell’albero

 I file sono i nodi terminali dell’albero del file system

(33)

AOT AOT

LAB LAB

File systemFile systemFile systemFile system

Root

A: C: D:

f1 f2 d1 f1 d1

f2 f1

d1 f1 f1

(34)

AOT AOT

LAB LAB

FileFileFileFile

 Un file è l’unità elementare di memorizzazione dei dati in memoria di massa

 Ogni volta che vogliamo scrivere qualcosa su disco…

 Creiamo un file, oppure

 Modifichiamo un file già esistente

 Ogni volta che vogliamo leggere qualcosa da disco…

(35)

AOT AOT

LAB LAB

FileFileFileFile

 Ad ogni file sono associati:

 Un nome

 Un percorso (pathname)

 Un tipo

 Una dimensione

 Delle protezioni

 Il nome del file può avere un’estensione indicante il tipo del file

 Ad esempio, in un sistema operativo Windows:

 documento.doc

 eseguibile.exe

(36)

AOT AOT

LAB LAB

DirectoryDirectoryDirectoryDirectory

 Una directory (cartella) è un contenitore logico che può contenere file ed altre directory

 Una directory ha un nome che la contraddistingue dalle altre directory e dai file

 Una directory non può contenere più file e/o directory con lo stesso nome

 Directory differenti possono contenere file e/o directory con lo stesso nome

 Lo scopo principale delle directory è di catalogare i file presenti nel dispositivo di memorizzazione

(37)

AOT AOT

LAB LAB

Operazioni su file e directoryOperazioni su file e directoryOperazioni su file e directoryOperazioni su file e directory

 Un file e una directory possono essere:

 Creati

 Rinominati

 Cancellati

 Copiati

 Spostati

 Il contenuto di un file può essere:

 Visualizzato

 Modificato

 Eseguito

(38)

AOT AOT

LAB LAB

Interprete di comandiInterprete di comandiInterprete di comandiInterprete di comandi

 L’interprete di comandi permette all’utente di eseguire programmi e funzioni del sistema operativo

1. Riceve il comando

2. Lo interpreta richiamando le funzioni opportune del sistema operativo

 Esistono due modalità di interazione tra l’utente e il sistema operativo

 Testuale

 Grafica

(39)

AOT AOT

LAB LAB

Interprete di comandiInterprete di comandiInterprete di comandiInterprete di comandi

(40)

AOT AOT

LAB LAB

Interprete di comandiInterprete di comandiInterprete di comandiInterprete di comandi

 Un sistema operativo multi-utente deve possedere un meccanismo per identificare gli utenti

 La tecnica più usata è 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 l’accesso al file system e alle risorse

 È associato un proprio ambiente personalizzato

(41)

AOT AOT

LAB LAB

SoftwareSoftware applicativiSoftwareSoftware applicativiapplicativiapplicativi

 Il calcolatore è diventato lo strumento principale non solo per le normali operazioni di ufficio, ma anche per gran parte delle altre attività umane

 Scrivere un documento

 Gestire la contabilità

 Controllare le macchine di una catena di montaggio

(42)

AOT AOT

LAB LAB

Classificazione delle applicazioniClassificazione delle applicazioniClassificazione delle applicazioniClassificazione delle applicazioni

 Software orizzontale

 Software di utilizzo generale

 Software verticale

 Software per compiti diffuso in particolari settori

 Applicazioni personalizzate

 Software scritto ad hoc per una determinata azienda o cliente

(43)

AOT AOT

LAB LAB

Principali Principali Principali Principali softwaresoftwaresoftwaresoftware applicativi applicativi applicativi applicativi

 Tra gli svariati tipi di software applicativi

“orizzontale” i più utilizzati comunemente sono

 Programmi di videoscrittura (word processor)

 Fogli elettronici

 Programmi di presentazione

 Programmi di grafica

 Sistemi per la gestione dei database

 Programmi gestionali

 Navigazione e comunicazione

(44)

AOT AOT

LAB LAB

Programmi di videoscritturaProgrammi di videoscritturaProgrammi di videoscritturaProgrammi di videoscrittura

 Un programma di videoscrittura permette di

scrivere, modificare, formattare, salvare su file e stampare un documento

 Rispetto alla macchina da scrivere ha molti vantaggi

 Separazione tra la fase di stesura e di stampa

 Composizione di documenti copiando e incollando parti di testo

 Gli editor più avanzati permettono di formattare un documento (cioè di impaginare il testo, di usare

diversi tipi di caratteri, …) di includere immagini e

(45)

AOT AOT

LAB LAB

Fogli elettroniciFogli elettroniciFogli elettroniciFogli elettronici

 Un programma per la gestione di fogli elettronici ha lo scopo di fornire all’utente strumenti semplici e potenti per l’analisi dei dati

 Un foglio elettronico è costituito da una matrice bidimensionale

 In ogni cella della matrice è possibile inserire:

 Dei valori numerici e testuali

 Delle formule le cui variabili sono riferimenti a celle del foglio elettronico o di altri fogli elettronici

 I fogli elettronici più avanzati permettono di

costruire delle rappresentazioni grafiche dei valori nel foglio elettronico

(46)

AOT AOT

LAB LAB

Programmi di presentazioneProgrammi di presentazioneProgrammi di presentazioneProgrammi di presentazione

 Un programma di presentazione permette di

organizzare e presentare in pubblico informazioni multimediali attraverso la creazione di un file di

presentazione

 Un file di presentazione contiene un certo numero di pagine di presentazione (diapositive)

 Ogni diapositiva può contenere: testo, immagini, grafici ed elementi multimediali (suoni, video)

 Il contenuto di ogni diapositiva può essere presentato dinamicamente attraverso degli strumenti di animazione

(47)

AOT AOT

LAB LAB

Programmi di graficaProgrammi di graficaProgrammi di graficaProgrammi di grafica

 Un programma di grafica permette di creare disegni, presentazioni e modificare immagini

 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 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

(48)

AOT AOT

LAB LAB

Gestione di basi di datiGestione di basi di datiGestione di basi di datiGestione di basi di dati

 Un sistema per la gestione di basi di dati (DBMS) è in programma che permette la creazione e il

mantenimento di grosse quantità di dati strutturati

 Un DBMS ha il compito di:

 Memorizzare i dati

 Aggiornare i dati garantendo la consistenza, la riservatezza e l’integrità

 Fornire un accesso ai dati attraverso interrogazioni ad alto livello

 Trovano il loro utilizzo in molti parti della gestione di un’azienda, dalla contabilità alla gestione del personale, fino alla gestione del magazzino

(49)

AOT AOT

LAB LAB

Programmi gestionaliProgrammi gestionaliProgrammi gestionaliProgrammi gestionali

 Un programma gestionale ha lo scopo di aiutare a gestire e mantenere le informazione e a preparare i documenti necessari all’attività di un’azienda

 In particolare, un programma gestionale dovrebbe aiutare nelle seguenti attività:

 Contabilità

 Personale

 Inventario

 Magazzino

 Ordini

 Preventivi e fatture

Riferimenti

Documenti correlati

Š Questo è solo possibile se oltre alla memoria primaria viene utilizzata dal sistema operativo anche la memoria secondaria del calcolatore..

Quando un server invia una risposta, può inviare anche informazione di stato da memorizzare sul client.  Specificato del range di url per cui lo stato

Š International Standardization Organization (ISO) is responsible for a wide range of standards including networking standards.. AOT LAB

Š FIPA ACL is an “outer language” that defines a set of performatives (communicative acts) used for exchanges of knowledge. Š But knowledge can be expressed in different

 L’ereditarità tra le classi Java è singola: solo una classe base (diretta) per ogni classe derivata..  Tutte le classi sono derivate (implicitamente)

La pubblicazione è resa disponibile sotto le norme e i termini della licenza di deposito, secondo quanto stabilito dalla Policy per l'accesso aperto dell'Università degli Studi

La pubblicazione è resa disponibile sotto le norme e i termini della licenza di deposito, secondo quanto stabilito dalla Policy per l'accesso aperto dell'Università degli Studi

La pubblicazione è resa disponibile sotto le norme e i termini della licenza di deposito, secondo quanto stabilito dalla Policy per l'accesso aperto dell'Università degli Studi