• Non ci sono risultati.

AOT AOT LAB LAB

N/A
N/A
Protected

Academic year: 2023

Condividi "AOT AOT LAB LAB"

Copied!
48
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

Software di Base

Prof. Agostino Poggi

(2)

AOT AOT

LAB LAB Software 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 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 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 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 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 Rilocazione

Š 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 Il Sistema Operativo

Š Il sistema operativo è quel software che:

ƒ Viene avviato automaticamente all'accensione della macchina

ƒ Consente di acquisire le funzionalità indispensabili per poter interagire con l'utente ed eseguire gli altri

programmi

Š Il sistema operativo 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 Classificazione

Š Funzionalità

ƒ Sistemi interattivi

ƒ Sistemi a lotti (o batch)

Š 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 Diversi Sistemi Operativi

Š In un computer possono essere presenti più sistemi operativi

Š Questi sistemi operativi devono essere utilizzabili singolarmente

ƒ Un uso contemporaneo creerebbe un conflitto nella gestione delle risorse della macchina

Š 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 Il Sistema Operativo

Š I programmi che costituiscono il sistema operativo sono:

ƒ Classificati rispetto alla loro funzionalità

ƒ Ordinati in base alla distanza dalla macchina

fisica

(12)

AOT AOT

LAB LAB Il Sistema 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 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 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 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 Processi

Š L’esecuzione non è parallela, ma in ogni istante un solo programma è in esecuzione:

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

ƒ Se il programma termina prima dello scadere dell’intervallo di tempo:

viene avviato un nuovo intervallo ed eseguito un altro programma

ƒ Se il programma non termina alla scadenza

dell’intervallo o si blocca in attesa di una risorsa:

il programma viene sospeso, viene avviato un nuovo intervallo ed eseguito un altro programma

(17)

AOT AOT

LAB LAB Vita di un Processo

attivo

pronto

In attesa Salva

stato

Ripristina stato

Fine Interruzione Inizio

Terminato nuovo

(18)

AOT AOT

LAB LAB Gestione 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 Memoria

Cache

L2 Memoria

Principale

Memoria Secondaria CPU CacheL1

(20)

AOT AOT

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

(21)

AOT AOT

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

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

(22)

AOT AOT

LAB LAB Gestione 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 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 10: Tl = 3, Ta = 9

FIFO LRU

(24)

AOT AOT

LAB LAB Gestione 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 Periferiche

Š La Gestione delle periferiche si basa su due elementi

ƒ Il BIOS

ƒ I driver

Š Il BIOS (Basic Input Output System) è uno strato di software utilizzato per standardizzare l'accesso ai diversi tipi di periferica

Š I driver sono delle schede hardware e dei

programmi software che permettono l’accesso ad

una specifica periferica

(26)

AOT AOT

LAB LAB BIOS

Š 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

Velocità della tastiera

(27)

AOT AOT

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

(28)

AOT AOT

LAB LAB Interruzione

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

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

Š Tra i compiti più importanti del sistema operativo vi è la gestione delle informazioni delle memorie di massa organizzandole logicamente e facilitando le operazione 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 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 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 System

Root

A: C: D:

f1 f2 d1 f1 d1

f2 f1

d1 f1 f1

(34)

AOT AOT

LAB LAB File

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

ƒ Ogni volta che vogliamo scrivere qualcosa in memoria

Creiamo un file

Modifichiamo un file già esistente

ƒ Ogni volta che vogliamo leggere qualcosa dalla memoria, leggiamo uno o più file

(35)

AOT AOT

LAB LAB File

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

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

Š L’interprete di comandi permette all’utente di eseguire programmi e funzioni del sistemi operativi:

1. Riceve il comando

2. Lo interpreta richiamando le funzioni opportune del sistema operativo

Š Esistono due modalità di interazione tra l’utente e l’interprete di comandi

ƒ Testuale

ƒ Grafica

(39)

AOT AOT

LAB LAB Interprete di Comandi

(40)

AOT AOT

LAB LAB Interprete 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 Software Applicativo

Š 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

Š Esistono diversi tipi di software applicativo

ƒ 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

(42)

AOT AOT

LAB LAB Software Applicativo

Š 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

(43)

AOT AOT

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

disegni, di controllare l’ortografia, …

(44)

AOT AOT

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

(45)

AOT AOT

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

(46)

AOT AOT

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

(47)

AOT AOT

LAB LAB Sistemi per la Gestione

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

(48)

AOT AOT

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

Š Infrared transmission uses low frequency light waves to carry data through the air. Š Its

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