Appunti integrativi di Tecnologie di progettazione di sistemi informatici e di telecomunicazioni
Classa 3a
Maria Grazia Maffucci
dal 2019 ad oggi
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/.
Contact mariagrazia@maffucci.cc
La struttura della memoria di un processo 3
CLIL - Listening - The Call Stack 4
CSS - Cascading Style Sheets 8
La memoria virtuale di un processo[1] viene divisa in segmenti, cioè un insieme contiguo di indirizzi virtuali ai quali il processo può accedere. Solitamente un programma C viene suddiviso nei seguenti segmenti.
double pi = 3.14;
questo valore sarà immagazzinato in questo segmento. La memoria di questo segmento viene preallocata all’avvio del programma e inizializzata ai valori specificati.
La seconda parte è il segmento dei dati non inizializzati, che contiene le variabili il cui valore non è stato assegnato esplicitamente. Ad esempio se si definisce:
int vect [100];
questo vettore sarà immagazzinato in questo segmento. Anch’esso viene allocato all’avvio, e tutte le variabili vengono inizializzate a zero mentre i puntatori a NULL (questo vale solo per le variabili che vanno nel segmento dati, e non è affatto vero in generale).
Storicamente questa seconda parte del segmento dati viene chiamata BSS (Block Started by Symbol) e la sua dimensione è fissa.
Watch the following video in order to understand properly how stack works.
The Call Stack by Computer Science
Si leggano le dispense del Prof. Claudio E. Palazzi per vedere degli esempi di risoluzione di ordinamento dei processi.
Soluzione dell’es. a p.47 per Round Robin delle dispense del Prof. Claudio E. Palazzi
Processo | Tempo di arrivo | Burst CPU (millisec.) |
A | 0 | 2 |
B | 0 | 12 |
C | 0 | 4 |
Tempo di attesa medio con quanto di tempo 1
Il tempo di attesa è ottenuto dalla somma degli intervalli temporali passati in attesa della risorsa.
Nell’esempio riportato di seguito un carattere MAIUSCOLO indica un tempo di esecuzione del processo, mentre un carattere minuscolo indica un tempo di attesa della CPU. L’indicazione ,P indica il momento di terminazione di un processo, mentre l’uso del simbolo . indica un pre-rilascio della CPU a favore di un altro processo.
ABCA,ABCBCBC,CBBBBBBBB,B
AaaA,A
bBbb,ABbBbBb,CBBBBBBBB
ccCc,AcCcCcC,C
Tatt(A) = 0A + 1B + 1C = 2
Tatt(B) = 1A + 1C + 1A + 1C + 1C + 1C = 6
Tatt(C) = 1A + 1B + 1A + 1B + 1B + 1B = 6
Tatt(medio) = (2 + 6 + 6) / 3 = 4,6 u.t.
Tempo di turnaround con quanto di tempo 1
Il tempo di turnaround corrisponde al tempo in cui i risultati di un processo sono resi disponibili, quindi al tempo di completamento. Questo tempo è dato dalla somma di tutti i tempi di attesa e di esecuzione del processo, fino al suo completamento.
Nell’esempio riportato di seguito un carattere MAIUSCOLO indica un tempo di esecuzione del processo, mentre un carattere minuscolo indica un tempo di attesa della CPU. L’indicazione ,P indica il momento di terminazione di un processo.
ABCA,ABCBCBC,CBBBBBBBB,B
AaaA,A
bBbb,ABbBbBb,CBBBBBBBB
ccCc,AcCcCcC,C
Tta(A) = 1A + 1B + 1C + 1A = 4
Tta(B) = 1A + 1B + 1C + 1A + 1B + 1C + 1B + 1C + 1B + 1C + 8B = 18
Tta(C) = 1A + 1B + 1C + 1A + 1B + 1C + 1B + 1C + 1B + 1C = 10
Tta(medio) = (4 + 18 + 10) / 3 = 10,6 u.t.
Tempo di attesa medio con quanto di tempo 5
Il tempo di attesa è ottenuto dalla somma degli intervalli temporali passati in attesa della risorsa, in questo caso la CPU.
Nell’esempio riportato di seguito un carattere MAIUSCOLO indica un tempo di esecuzione del processo, mentre un carattere minuscolo indica un tempo di attesa della CPU. L’indicazione ,P indica il momento di terminazione di un processo, mentre l’uso del simbolo . indica un pre-rilascio della CPU a favore di un altro processo.
AA,ABBBBB.CCCC,CBBBBBBB,B
AA,A
bb,ABBBBB.bbbb,CBBBBBBB,B
cc,Accccc.CCCC,C
Tatt(A) = 0A = 0
Tatt(B) = 2A + 4C = 6
Tatt(C) = 2A + 5B = 7
Tatt(medio) = (0 + 6 + 7) / 3 = 4,3 u.t.
Tempo di turnaround con quanto di tempo 5
Il tempo di turnaround corrisponde al tempo in cui i risultati di un processo sono resi disponibili, quindi al tempo di completamento. Questo tempo è dato dalla somma di tutti i tempi di attesa e di esecuzione del processo, fino al suo completamento.
Nell’esempio riportato di seguito un carattere MAIUSCOLO indica un tempo di esecuzione del processo, mentre un carattere minuscolo indica un tempo di attesa della CPU. L’indicazione ,P indica il momento di terminazione di un processo, mentre l’uso del simbolo . indica un pre-rilascio della CPU a favore di un altro processo.
AA,ABBBBB.CCCC,CBBBBBBB,B
AA,A
bb,ABBBBB.bbbb,CBBBBBBB,B
cc,Accccc.CCCC,C
Tta(A) = 2A = 2
Tta(B) = 2A + 5B + 4C + 7B = 18
Tta(C) = 2A + 5B + 4C = 11
Tta(medio) = (2 + 18 + 11) / 3 = 10,3 u.t.
STUDIARE: A. Lorenzi, V. Moriggia, PRO.TECH - Informatica per Istituti Tecnici Tecnologici - Algoritmi e programmazione Linguaggi C e C++ | Pagine Web, vol. A, es. Atlas, 2019
Si vedano anche le seguenti slide:
STUDIARE: A. Lorenzi, V. Moriggia, PRO.TECH - Informatica per Istituti Tecnici Tecnologici - Algoritmi e programmazione Linguaggi C e C++ | Pagine Web, vol. A, es. Atlas, 2019
Processo | Burst CPU (millisec.) | Priorità |
P1 | 10 | 3 |
P2 | 1 | 1 |
P3 | 2 | 3 |
P4 | 1 | 4 |
P5 | 5 | 2 |
Tutti i processi arrivano al tempo 0 nell’ordine P1, P2, P3, P4, P5. Si illustri quale sarà l’ordine di esecuzione e si calcoli il tempo di attesa medio e il tempo di turnaround nel casi di scheduling:
Processo | Tempo di arrivo | Burst CPU (millisec.) |
A | 0 | 3 |
B | 2 | 6 |
C | 4 | 4 |
D | 6 | 5 |
E | 8 | 2 |
Si calcoli il tempo medio di attesa ed il tempo di turnaround nel caso di scheduling:
Cliente | Ora di arrivo | Tempo servizio (minuti.) |
Paolo | 10:00 | 8’ |
Gianni | 10:05 | 4’ |
Roby | 10:07 | 1’ |
Nell’ipotesi che alle ore 10:00 lo sportello sia libero, rispondere alle seguenti domande:
Processo | Tempo di arrivo | Burst CPU (millisec.) | Priorità |
A | 0 | 17 | 2 |
B | 5 | 5 | 3 |
C | 10 | 10 | 0 |
D | 7 | 9 | 1 |
E | 11 | 7 | 4 |
Si calcoli il tempo medio di attesa ed il tempo di turnaround nel casi di scheduling:
Di seguito viene fornito un esempio della pagina proposta.
Tutte le pagine hanno la stessa struttura e lo stesso layout, con un menu orizzontale contenente le voci:
La parte centrale della pagina è divisa in due riquadri di differenti larghezze, con un elenco di scelte a sinistra e una fotografia.
Le scelte sono:
Di seguito sono riportate le pagine Home e Dove siamo, che possono servire come traccia per creare le pagine. Si creino liberamente le pagine Scriveteci e Dicono di noi in modo coerente con quanto si ritiene debbano contenere.
Home
Dove siamo
La pagina Web utilizza i fogli di stile CSS per creare un semplice sito con un menù fisso posto a sinistra della pagina. La pagina è di dimensioni costanti (800x400 pixel) e divisa in due parti:
Nel caso in cui il contenuto non rientri interamente nella pagina vengono mostrate le barre di scorrimento.
Facendo clic su una voce del menu non viene aperta una nuova pagina, ma vengono visualizzati i contenuti nella zona a destra.
Il menù è un elenco puntato ed è composto da tre voci:
Lo schema della pagina Web è riportato sotto.
Aprendo il documento index.html nel browser, viene visualizzato il menù a sinistra su sfondo blu e il contenuto nella parte centrale (con le barre di scorrimento). Facendo clic su una voce del menù, la zona centrale scorre fino a visualizzare il contenuto desiderato.
Di seguito viene mostrato un esempio.
Simone Piccardi, GaPiL - Guida alla Programmazione in Linux: 2.2.2 La struttura della memoria di un processo
A. Lorenzi, V. Moriggia, PRO.TECH - Informatica per Istituti Tecnici Tecnologici, vol. A, ed. Atlas, 2019.
A. Lorenzi, PRO.TECH - Informatica per Istituti Tecnici Tecnologici, Risorse per l’insegnante, ed. Atlas, 2019.
C. E. Palazzi, Sistemi Operativi, Università degli Studi di Padova, ultimo accesso maggio 2021
[1] Simone Piccardi, GaPiL - Guida alla Programmazione in Linux: 2.2.2 La struttura della memoria di un processo
[2] Esercizio ideato dalla Prof.ssa Filomena Daraio
[3] Esercizio ideato dalla Prof.ssa Filomena Daraio
[4] A.Lorenzi, PRO.TECH - Informatica per Istituti Tecnici Tecnologici, Risorse per l’insegnante.
[5] Esercizio ideato dalla Prof.ssa Filomena Daraio
[6] A.Lorenzi, PRO.TECH - Informatica per Istituti Tecnici Tecnologici, Risorse per l’insegnante.
[7] A.Lorenzi, PRO.TECH - Informatica per Istituti Tecnici Tecnologici, Risorse per l’insegnante.
[8] A.Lorenzi, PRO.TECH - Informatica per Istituti Tecnici Tecnologici, Risorse per l’insegnante.