Elementi del calcolatore: CPU



Documenti analoghi
Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Gestore di Memoria. Gestire le richieste di risorse di memoria Liberare le risorse non più utilizzate. Gestire la memoria virtuale (swap su disco)

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

PARTE 4 La Macchina Software

Il Software. Il software del PC. Il BIOS

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Il sistema operativo: interazione con l utente

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Sistemi operativi. Esempi di sistemi operativi

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

NOZIONI BASE PER ESERCITAZIONI

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

Introduzione alla. Alessandra Giordani Lunedì 27 febbraio

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Terza lezione: Directory e File system di Linux

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Software di base. Corso di Fondamenti di Informatica

INTERAZIONE CON L UTENTEL

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Protezione. Protezione. Protezione. Obiettivi della protezione

Il Sistema Operativo

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Dispensa di Informatica I.1

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Linguaggi e Paradigmi di Programmazione

Introduzione. Informatica B. Daniele Loiacono

Introduzione ai Sistemi Operativi

Il computer: primi elementi

Fondamenti di Informatica

Corso di Informatica

Linguaggi di programmazione

FONDAMENTI di INFORMATICA L. Mezzalira

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Il Sistema Operativo (1)

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Approccio stratificato

Informatica: il sistema operativo

Funzioni del Sistema Operativo

Codifica: dal diagramma a blocchi al linguaggio C++

Esercitazione su Windows. Introduzione al calcolatore Introduzione a Windows

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Informatica e Bioinformatica: Sistemi Operativi

NozionidiBase di Informatica

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Le Infrastrutture Software ed il Sistema Operativo

INFORMATICA 1 L. Mezzalira

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

Software. Definizione, tipologie, progettazione

PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE

Varie tipologie di memoria

Sistema operativo: Gestione della memoria

Organizzazione della memoria

Nozioni di Informatica di base. dott. Andrea Mazzini

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Informatica. Il software (S.O.) e ancora sulle basi numeriche

La Macchina Virtuale

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Laboratorio di Programmazione

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

Laboratorio di Informatica

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

Introduzione alla programmazione in C

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Architettura di un sistema operativo

Cosa è un foglio elettronico

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Il memory manager. Gestione della memoria centrale

Setup e installazione

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Introduzione al sistema operativo Il file system: file, directory,...

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

FrerEnergy: PROGRAMMA PER LA SUPERVISIONE DEI CONSUMI DI ENERGIA ELETTRICA

Calcolatori e interfacce grafiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

12. Implementazione di un File System Struttura a livelli Allocazione contigua

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Il sistema operativo

Infrastrutture Software

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

Informatica Generale 1 - Esercitazioni Introduzione all uso della command-line shell

WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15

Installazione LINUX 10.0

Transcript:

Elementi del calcolatore: CPU Elementi del calcolatore: Memoria Elementi del calcolatore: Memoria Elementi del calcolatore: Hard Disk Antefatto Sistema Operativo Come il computer appare Il calcolatore elabora informazioni codificate in sequenze di bit I dispositivi si interfacciano con il calcolatore tramite complessi protocolli di comunicazione Il sistema operativo astrae questa complessità facilitando l uso e la gestione del calcolatore

Diagramma a cipolla 1. Astrazione dei dispositivi (driver) Consentire a che programmi e utenti interagiscano con i dispositivi in modo naturale Es. 1: Accedere al disco non con le coordinate (cil, trk, sec) ma tramite file Es. 2: Ottenere le coordinate del puntatore del mouse e non gli spostamenti dall ultimo aggiornamento 2. Gestione processi (programmi) Numerosi processi attivi nello stesso istante (come se fossero in parallelo) Politica time-sharing: il tempo diviso in slot e il S.O. assegna gli slot ai processi Sono necessarie ulteriori informazioni non accessibili agli utenti: aree di memoria protette, registri particolari Ogni calcolatore può funzionare in due modalità i. Modalità supervisore: accesso a istruzioni privilegiate che servono a gestire il sistema ii. Modalità utente: accesso proibito alle istruzioni privilegiate 3. Gestione risorse i. CPU: Assegnare gli slot temporali ai vari processi nel modo migliore possibile Esistono concetti di priorità Alcuni processi possono partire anche in mezzo agli slot temporali ii. Memoria centrale (memoria virtuale): La memoria centrale viene partizionata in pagine tutte di una data lunghezza Quando la memoria è totalmente occupata da pagine e ne serve un altra, una pagina in memoria viene spostata sul disco e lo spazio liberato riutilizzato (processo di SWAP) Problema inerentemente difficile da risolvere in maniera ottima Se mal realizzata la memoria virtuale porta ad alte inefficienze (vedi MSWindows)

iii. Gestione delle memorie di massa (file system) Permettere all utente di organizzare le informazioni in file e cartelle (folder, directory,.) Le cartelle contengono file o altre cartelle (struttura ad albero) Ogni file ha dei permessi, ovvero delle proprietà che determinano quali azioni gli utenti possono eseguire su di esso In UNIX ogni file ha un proprietario e un gruppo I permessi determinano cosa il proprietario, i membri del gruppo e tutti gli altri possono fare cpn quel file (leggere, scrivere, eseguire) File e cartelle hanno dei nomi alfanumerici (quasi) I file sono delle sequenza di byte che codificano delle informazioni Le informazioni sono identificate da Le estensioni: nome.jpg, nome.mp3, nome.f90, nome.txt Magic number: i primi bytes del file identificano il formato Struttura ad Albero del File System ROOT FILE CARTELLA Accedere al file system PATH (cammino) /home/server/utente1 (cartella) /home/server/utente1/prova.txt (file di testo) /bin/cp (comando per copiare dei file) In MS Windows si separano i nomi con \. identifica la cartella corrente,.. il livello superiore Accedere al file system Percorsi assoluti: quelli che iniziano con / /home/server/utente1/prova.txt Percorsi relativi: non iniziano con / Se si è all interno di /home/server/ per accedere a prova.txt a) utente1/prova.txt b)./utente1/prova.txt Diagramma: Architettura Software

Software di Base Comandi per gestire il file system e i processi a livello utente Creare un file (touch, >, ) (>, ) Creare una cartella (mkdir) (mkdir) Copiare un file (cp) (copy) Cancellare un file (rm) (del) Entrare in una cartella (cd) (cd) Help (man nomecomando!!! [ man man ]) Software di Base SHELL: programma principale di interfaccia con l utente per Eseguire comandi Lanciare programmi Eseguire script (Ogni shell ha associato un linguaggio che consente di specificare algoritmi) Software di Base Ancora Architettura Software Includono spesso Programmi di produttività Sviluppo software Multimedia Internet Software di base e software utente non sono categorie rigide (infatti sono sullo stesso livello) Software Utente Pacchetti applicativi utilizzati dall utente MSOffice, OpenOffice, Matlab, Autocad, Il software può essere proprietario Non modificabile e soggetto a licenze d uso Oppure Open Source Modificabile dall utente e ridistribuibile (licenza GPL) Linux e quasi tutti i suoi applicativi sono GPL!! Software Utente Software prodotto direttamente dall utente tramite Compilatori: ricevono un file di testo e producono il codice macchina per eseguire il programma Interpreti: un programma (parser) legge l input e esegue le istruzioni che vi sono scritte (shell, awk, perl, python ) Macchine virtuali: il programma è scritto per una macchina concettuale che viene simulata dal calcolatore (Java, molto usato in Internet)

Il Compilatore Il compilatore riceve in ingresso un programma specificato ad alto livello e restituisce lo stesso programma in linguaggio macchina Alto livello vuol dire in linguaggio simile a quello naturale (ma di fatto molto meno versatile) Lo stesso programma significa che la funzione calcolata dai due è la stessa (a meno di una codifica) Il Compilatore Il programma originale (codice sorgente) è scritto su un file di testo (un mero elenco di caratteri) Il compilatore procede attraverso alcune fasi 1. Analisi sintattica: vengono individuati i costrutti del linguaggio (parole chiave, variabili) e controllato il set di caratteri Rilevati errori sul set di caratteri 2. Analisi lessicale: vengono analizzate le istruzioni Es. 5+3*2 è legale, 5+-3*2 è illegale vengono comunicati i errori di sintassi Il Compilatore 3. Analisi semantica: il programma viene trasformato in un formato intermedio e vengono anche effettuate delle ottimizzazioni Le espressioni del linguaggio vengono tradotte in sequenze di istruzioni elementari Rilevati altri errori Questi tre passi (eventualmente ripetuti) generano il codice oggetto ovvero la sequenza di istruzioni macchina più alcune tabelle utili per la fase finale di link Il Linker Il codice oggetto non è un programma eseguibile Il programma manca di alcuni elementi che sono nelle librerie! Una libreria è un catalogo di funzioni e procedure (vedremo in futuro cosa sono esattamente) utilizzate dal programma Il Linker Se all interno del programma utilizziamo la funzione cos(x) o se stampiamo qualcosa sullo schermo (print) il compilatore produce un codice oggetto che chiama (CALL) queste funzioni Queste funzioni sono riposte in una libreria (nel caso di fortran nelle librerie runtime) Il linker produce il codice eseguibile che può essere caricato in memoria (fase di load (eseguita dal loader)) e eseguito Il Linker Il linker aggiunge al programma le funzioni di libreria utilizzate nel programma stesso Vengono aggiunte anche delle fasi di preambolo e postambolo che servono al programma per essere correttamente caricato in memoria e eseguito Non esiste solo la libreria di runtime, ma è possibile costruire nuove librerie con funzioni specifiche (alcune sono molto usate: BLAS, Lapack, FFTW, ) che vengono linkate ai programmi utenti

Il Compilatore Il compilatore, se non specificato altrimenti, esegui tutte queste fasi, anche la fase di link gfortran nome.f90 o nome )produce un eseguibile) gfortran nome.f90 c (non fa il link) gfortran nome.f90 S o nome.s (produce il codice assembly) Il compilatore può essere un programma complesso da usare quando i programmi diventano complessi Il Debugger Dopo che tutti gli errori sintattici (errori di compilazione) sono stati corretti, non è detto che il programma funzioni! Anzi! Possono verificarsi errori al runtime ( run è il verbo per indicare l esecuzione di un programma) che interrompono il programma Possono non verificarsi errori che interrompino il programma ma il programma stesso potrebbe non funzionare correttamente perché calcola la funzione sbagliata Il Debugger Un errore in un programma è chiamato bug Il debugger (gdb, ddd, dbx, ) è un programma che aiuta il programmatore a trovare gli errori Per usarlo servono i concetti di Breakpoint: il numero di riga di un file in cui il programma si deve interrompere Stepping: la possibilità di eseguire un programma passo-passo scorrendo le istruzioni di alto livello una a una Durante il processo possono essere stampati i valori delle variabili Si esegue con gdb programname (man gdb)