Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...Michele Maffucci
Corso di recupero per gli allievi di classe 1 ITIS Informatica - Progetto Biennio Integrato.
Argomento della lezione:
Operazioni con numeri binari:
addizione
sottrazione
moltiplicazione
divisione
somme algebriche
rappresentazione dei numeri negativi
esercizi
Programma di recupero:
- sistemi di numerazione e cambiamenti di base;
- somme e sottrazioni in binario;
- struttura hardware e software del PC;
- foglio elettronico.
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1caioturtle
Goodlier ecco il sistema operativo.
Ti spiego cos'è e quali sono le problematiche relative alle strutture a 32 e 64 bit dello stesso, dei programmi e dei drivers delle periferiche.
Buona Formazione. Stay Tuned... Till death do us part! Ciao.
Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...Michele Maffucci
Corso di recupero per gli allievi di classe 1 ITIS Informatica - Progetto Biennio Integrato.
Argomento della lezione:
Operazioni con numeri binari:
addizione
sottrazione
moltiplicazione
divisione
somme algebriche
rappresentazione dei numeri negativi
esercizi
Programma di recupero:
- sistemi di numerazione e cambiamenti di base;
- somme e sottrazioni in binario;
- struttura hardware e software del PC;
- foglio elettronico.
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1caioturtle
Goodlier ecco il sistema operativo.
Ti spiego cos'è e quali sono le problematiche relative alle strutture a 32 e 64 bit dello stesso, dei programmi e dei drivers delle periferiche.
Buona Formazione. Stay Tuned... Till death do us part! Ciao.
Ormai Ubuntu Touch, la versione mobile di Ubuntu è una realtà che possiamo toccare con mano. Infatti, questa distro è disponibile per alcuni device come Nexus 4, Nexus 7 2013 (solo versione WiFi) e Nexus 10, anche se deprecated, Ubuntu Touch gira anche su Galaxy Nexus e Nexus 7 2012 WiFi.
Poi c'è anche l'emulatore per Ubuntu Touch, insomma tutto quello che ci serve ormai è pronto e disponibile, quindi, per questo motivo ho deciso di mostravi come si fa a creare una piccola app per questo sistema operativo mobile.
È un semplice Hello World, tanto per cominciare, però andando avanti proverò a pubblicare anche altre slide dedicate a questo argomento.
Come sempre mi auguro che anche questo nuovo capitolo sia di vostro gradimento, per qualsiasi domanda o chiarimento aspetto un commento qui sotto.
Dispense del corso IN530 "Sistemi per l'elaborazione delle informazioni" presso il Corso di Laurea in Matematica dell'Università degli Studi Roma Tre.
[http://www.mat.uniroma3.it/users/liverani/IN530/]
Lezioni introduttive all'uso del computer e di Internet
Usato nella palestra Garbatella di Informatici senza Frontiere nel progetto Navigare Insieme
Licenza Creative Commons BY-NC-SA
1. Sistemi Operativi
A.A. 2008/2009
Mauro Andreolini
mauro.andreolini@unimore.it
Home page del corso:
<http://informatica.scienze.unimo.it/sistemi-operativi.shtml>
2. Prerequisiti del corso
• Conoscenza di base della struttura di un
calcolatore elettronico
• Conoscenza del linguaggio C
• Utilizzo “di base” di un calcolatore
elettronico
2
3. Prerequisiti del corso
• Testi consigliati:
– A. Silberschatz, J. Peterson, P.Galvin,
“Operating System Concepts” (Settima Edizione),
Pearson, 2004
ISBN: 0471694665
– R. Love,
“Linux Kernel Development”,
Novell Press, 2005
ISBN: 0672327201
– R. Love,
“Linux System Programming”,
O'Reilly, 2007
ISBN: 0596009585
– Dispense fornite dal docente
3
4. Definizione di SO
• Sistema Operativo(SO): programma che
agisce come intermediario fra utente di
un computer e l'hardware del computer
stesso
• Scopi di un SO:
– fornire un ambiente in cui un utente sia in
grado di eseguire dei programmi
– rendere semplice e conveniente l'utilizzo di
un computer
– utilizzare l'hardware del computer in maniera
efficiente
4
5. SO in un sistema di calcolo
utente utente utente utente
1 2 3 n
compilatore assemblatore editor di testo database
Programmi applicativi
Sistema Operativo
Hardware
5
6. Ruoli di un SO
• Allocatore di risorse
– il SO alloca le risorse a sua disposizione
(CPU time, DISK space, I/O devices) a
programmi ed utenti in base alle necessità
– il SO risolve i conflitti di assegnazione delle
risorse in modo tale da operare
efficientemente e correttamente
• Programma di controllo
– il SO è un grande programma di controllo
– controllo esecuzione programmi
– impedisce che vengano commessi errori
– impedisce utilizzi non corretti
6
7. L'evoluzione dei SO
I primi sistemi
•
• Automatizzazione tramite monitor
• Funzionamento off-line
• Buffering e Spooling
• I sistemi multiprogrammati
Time sharing
•
• Sistemi distribuiti
• Sistemi real-time
7
8. I primi sistemi (1940-1950)
• Macchine molto grandi pilotate in
maniera elettromeccanica
– input: schede perforate immesse dall'
operatore, console con switch elettrici
– output: indicatori elettrici di stato, stampa su
schede perforate
• Natura interattiva del sistema
– programmatore = operatore
– tempo di esecuzione della macchina gestito
manualmente tramite foglio prenotazioni
8
12. I primi sistemi (1940-1950)
• Svantaggi
– schema di prenotazione scomodo ed
inefficiente
– assenza di librerie generiche per la gestione
delle risorse (device driver)
– immissione del programma scomoda
12
13. I primi sistemi (1940-1950)
• Migliorie successive
– introduzione dei device driver
– facilitazione del processo di generazione del
programma tramite:
♦ assemblatori
♦ compilatori
♦ linker
♦ librerie di funzioni comuni
– utilizzo di periferiche più avanzate
♦ lettori di schede
♦ stampanti
♦ nastri magnetici
13
14. I primi sistemi (1940-1950)
Schede perforate IBM
(Fortran, 1964)
Codifica +
Codifica -
Codifica
digit 0-9
Codifica di 80 cifre “0-9”
14
16. I primi sistemi (1940-1950)
Unità stampante
IBM 1403 (1959)
16
17. I primi sistemi (1940-1950)
• Job: è la sequenza di operazioni
– caricamento nastro compilatore
– esecuzione nastro compilatore
– rimozione nastro compilatore
– caricamento nastro assemblatore
– esecuzione nastro assemblatore
– rimozione nastro assemblatore
– caricamento programma oggetto
– esecuzione programma oggetto
17
18. I monitor residenti (1950-1960)
• Problemi
– Tempo necessario per la preparazione di un
job troppo elevato
– Esecuzione alternata di programmi scritti in
linguaggi diversi estremamente scomoda
– Interruzione di un job problematica
• Soluzioni
– operatore professionista (diverso dal
programmatore)
– sequenzializzatore automatico dei job
(monitor residente)
18
19. I monitor residenti (1950-1960)
caricatore
sequenzializzatore
di job
interprete delle
schede di controllo
area programmi
utente
19
20. I monitor residenti (1950-1960)
• Monitor residente: programma residente in
memoria che automatizza il caricamento di un
job
• Caricatore: si occupa del caricamento del
programma in memoria
• Sequenzializzatore di job: si occupa della
esecuzione sequenziale dei job
• Interprete delle schede di controllo: gestisce le
cosiddette “schede di controllo” che indicano
al monitor quale programma eseguire
20
21. I monitor residenti (1950-1960)
• Ciascun programma è descritto da una scheda
di controllo che lo attiva
• Un job è delimitato da due schede di controllo
speciali: $JOB, $END
$END
dati del programma
$RUN
$LOAD
programma da compilare
$FTN
$JOB
21
23. Funzionamento offline (1950-1960)
• Problemi
– velocità I/O << velocità CPU
– di conseguenza, la CPU è spesso inattiva,
aspettando il completamento I/O
• Soluzioni
– utilizzo di periferiche più veloci
– modalità di funzionamento off-line
23
24. Funzionamento offline (1950-1960)
• Modalità off-line:
– i nastri di input vengono riversati su un
nastro veloce
– la CPU legge i dati dal nastro
– il calcolatore riversa i dati su nastro
– i dati su nastro vengono stampati
– funzionamento delle periferiche lente (lettori
di schede, stampanti) avviene off-line
– primo esempio di gerarchia di memoria
– device-independence dei programmi
24
25. Funzionamento offline (1950-1960)
• Approcci off-line:
– periferiche (lettori di nastro, stampanti)
direttamente collegate alle unità nastro
– piccolo elaboratore delegato alla copia da/su
nastro
• Es.: sistema IBM 1401 (1959)
25
27. Buffering e Spooling (1960)
• Problemi:
– la modalità di funzionamento off-line
richiede l'utilizzo di più macchine separate
• Soluzioni:
– utilizzo delle tecniche di:
♦ buffering
♦ spooling
27
28. Buffering
• Buffering: area di memoria intermedia
dedicata al salvataggio temporaneo di
informazioni
– sovrapposizione tempo I/O – tempo CPU
– appena letto il blocco di dati corrente:
♦ la CPU elabora il blocco dati corrente
♦ la periferica legge il blocco dati successivo
– la CPU produce dati fino al riempimento del
buffer
– buffering implementato nel (device driver del)
dispositivo
– se velocità CPU >> velocità I/O, il buffering non
sempre è efficiente
28
30. Buffering e Spooling (1960) (3)
• Spooling:
– Simultaneous Peripheral Operations On Line
– Se velocità CPU >> velocità I/O, occorrono
buffer enormi per gestire un numero elevato
di utenze
– Implementazione dei buffer tramite file
temporanei memorizzati su dischi
– utilizzo dei primi sistemi a disco
– Utilizzato ancora oggi nei sistemi in cui
l'output predomina sul calcolo:
♦ Posta elettronica
♦ Stampa
30
31. Spooling
Unità di I/O
Elaboratore
(disco)
Input Output
Area spool
Pronto Output
Unità di I/O
(stampa)
31
32. Multiprogrammazione (1960)
• Problemi:
– singoli job eseguiti sequenzialmente
– problema dei tempi morti dovuti ad I/O
• Soluzioni:
– job eseguiti fino a quando non si verifica
attesa su I/O (non più eseguiti integralmente)
– quando un job è in attesa di I/O, il sistema
ripristina l'esecuzione di un altro job
– finchè c'è un job da eseguire, la CPU rimane
attiva
– requisiti: gestione memoria, job scheduling
32
33. Sistema monoprogrammato
Job scheduling
Sistema monoprogrammato
Job 1
I/O
CPU
Job 2
Job
Idle
Job 3
0 5 10 15 20 25 30 35 40 45
Tempo
13+25=38 Finisce a 39!
istanti di idle
33
34. Sistema multiprogrammato
Job scheduling
Sistema multiprogrammato
Job 1
I/O
Idle
Job 2
CPU
Job
Idle
Job 3
0 5 10 15 20 25 30 35
Tempo
3+5+8+16=32 Finisce a 33!
istanti di idle
34
35. Time Sharing (1960)
• Problemi
– mancanza di interattività fra macchina ed
utente durante l'esecuzione del job
– il programmatore può ricevere l'output del
job svariati giorni dopo la sua esecuzione
• Soluzioni
– Aumentare l'interattività del sistema con
l'utente
– Tecnica del Time Sharing
35
36. Time Sharing (1960)
• estensione logica della multiprogrammazione
• la CPU esegue più job (concorrentemente) in
modalità multiprogrammata
• ciascun job possiede, a turno, la CPU per un
intervallo di tempo (quanto)
• Frequenza commutazione elevata:
job scheduling->CPU scheduling
• gli utenti possono interagire con i programmi
• evoluzione rispetto ai sistemi batch non interattivi
• interazione on-line tramite schermi e tastiera
(concetto di shell)
• utilizzo dei primi file system
• multiutenza
36
37. Time Sharing (1960)
Job scheduling
Sistema time sharing
Job 1
I/O
Idle
CPU
Job 2
Idle
Job
CPU
Idle
Job 3
0 5 10 15 20 25 30 35 40
Tempo
Uso CPU
finisce a 6!
37
38. Sistemi distribuiti (1980)
• Problemi
– singolo elaboratore peggiora le prestazioni
al crescere della richiesta di calcolo
– dati utente non replicati
• Soluzioni
– distribuzione del calcolo su diversi
processori fisici
♦ sistemi multiprocessori (strettamente
accoppiati)
♦ nodi distribuiti in rete locale (debolmente
accoppiati)
38
39. Sistemi distribuiti (1980)
• Pregi dei sistemi distribuiti
– condivisione di risorse
– accelerazione del calcolo
– affidabilità
– comunicazione fra utenti
39
40. Sistemi real time (1980)
Problemi
• spesso le prestazioni di un SO sono altamente
fluttuanti
• alcuni problemi dedicati richiedono
elaborazione entro un prefissato intervallo di
tempo
• Soluzioni
– estendere il SO con supporto real-time
♦ soft real-time
♦ hard real-time
40