[:it]Tecniche di commutazione: circuito, commutazione, pacchetto[:]

[:it]

Jim Warren

Commutazione di circuito:

In questo tipo di collegamento la connessione è permanente e completamente dedicata.

L’instaurazione del collegamento avviene attraverso lo scambio di opportuni messaggi di segnalazione. Non appena il collegamento sia stato completato tre i due nodi interessati esiste un canale di trasmissione perfettamente trasparente sicchè può avere inizio la trasmissione dei dati.

Quando la trasmissione è conclusa, il collegamento viene abbattuto e i nodi e i rami che lo costituivano tornano a disposizione dell’intera rete come risorsa comune. Questo tipo di commutazione è comunemente usata nella rete telefonica.

Per capire come avviene la trasmissione, si prendano tre nodi A, B e C come nodo intermedio.

Si richiede un certo tempo per la connessione fisica tra il nodo A alla linea C, poi un tempo di propagazione (che dipende dalla lunghezza della linea) e in maniera analoga tra il nodo C ed il nodo B.

Generalizzando per tanti nodi il tempo di connessione sarà:

T=3T_{p}+(N+1)T_{c}+T_{t}

dove con T_{p} è il tempo di propagazione, T_{c} è il tempo di connessione, T_{t} il tempo di trasmissione vero e proprio.

Commutazione di messaggio

Le connessioni fisiche fra i nodi sono permanenti e che la trasmissione su una singola linea avviene indipendentemente dallo stato di occupazione delle altre linee interessate al collegamento.

Il messaggio deve contenere l’informazione relativa alla destinazione e il nodo di partenza deve avere istruzione riguardante la linea. Il nodo di partenza impiega un certo tempo T_{e} per elaborare l’informazione di instradamento, inoltre si richiede un certo tempo T_{h} necessario per immettere l’intestazione del pacchetto (h sta per header).

Il tempo di connessione sarà:

T=T_{p}+N(T_{e}+T_{h}+T_{t})

Questa tecnica consente una  riduzione nel tempo T dovuta al risparmio di due tempi di propagazione nonché al fatto che il tempo di elaborazione T_{e} è generalmente molto inferiore del tempo di connessione T_{c}.

Di contro si ha un aumento del contributo del ritardo dovuto al fatto che il messaggio deve essere ritrasmesso ad ogni nodo del percorso.

La commutazione di messaggio è sicuramente conveniente quando i messaggi hanno durata minore del tempo necessario per la connessione fisica di ogni nodo della linea.

La commutazione di circuito conviene quando i messaggi sono lunghi.

Commutazione di pacchetto

Il messaggio è suddiviso in parti più piccole, dette pacchetti ciascuna delle quali viene trasmessa, munita di intestazione, come nella commutazione di messaggio.

Si ha un ulteriore vantaggio chiamato effetto pipeline, al fatto cioè che un nodo può trasmettere un pacchetto al nodo successivo senza aver completato la ricezione dell’intero messaggio, mentre altri pacchetti vengono trasmessi lungo le linee precedenti e successive del percorso.

Il messaggio viene suddiviso i M pacchetti.

Il tempo di connessione sarà:

T=T_{p}+\left ( N+M-1 \right )\left ( T_{e}+T_{h}+\cfrac{T_{t}}{M} \right )

Rispetto al commutazione di messaggio, la tecnica comporta una riduzione del tempo dedicato alla trasmissione dei dati utili ed un aumento del tempo dedicato all’elaborazione e alla trasmissione delle intestazioni.

Se il messaggio non è troppo corto, un’opportuna suddivisione in pacchetti comporta una riduzione nel ritardo.

CONCLUSIONI

La commutazione di circuito è vantaggiosa per la trasmissione dei messaggi molto lunghi e la commutazione di pacchetto per messaggi molto corti rispetto ai tempi necessari per la selezione e la connessione fisica delle linee.

La commutazione di pacchetto richiede nodi concettualmente più sofisticati che non la commutazione di circuito.

Nodi “intelligenti” consentono di modificare il formato dei pacchetti e la velocità della loro trasmissione per adattarli a canali trasmissivi diversi.

Il frazionamento dei messaggi comporta lo svantaggio di dover includere nell’intestazione, oltre all’indirizzo del destinatario, anche un numero d’ordine progressivo che consenta al destinatario di ricostruire correttamente il messaggio, dato che i pacchetti possono pervenire in ordine diverso da quello di trasmissione.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Verifica di informatica[:]

[:it] 

The rocky cliffs of Étretat by Monet.jpg

Per il 6

6.1. Ogni programma dovrà essere chiamato con il proprio nome seguito dal numero dell’esercizio, inserendo l’estensione corretta. Ad esempio RossiMario61.CPP o RossiMario62.py per l’esercizio 6.1.

6.2. al termine della verifica, allegare tutti i file creati all’indirizzo:

francesco.bragadin@whymatematica.com

6.3.  inserire come oggetto il proprio nome e cognome classe, verifica del con la data corretta

6.4. ogni programma dovrà riportare come intestazione:

autore:

data:

oggetto: cosa fa il programma

sotto forma di commento

 

6.5. scrivere a video il proprio nome

6.6. chiedere a video due numeri interi e successivamente mostrarli a video

6.7. Calcolare la somma di tre numeri richiesti all’utente

6.8. calcolare il perimetro e l’area di un triangolo

6.9. aumentare di 1 il valore richiesto a video

6.10 dato il raggio calcolare la lunghezza della circonferenza

Per il 7

7.1. Calcolo della diagonale di un quadrato dato il suo lato

7.2. Calcolare l’accelerazione conoscendo al forza e la massa di un oggetto

Per l’8.

8.1. Dati due numeri interi fornire il resto della loro divisione

Per il 9.

9.1. Verificare il tipo di dato inserito dall’utente ossia se un utente inserisce un intero emettere a video, dato inserito intero, se inserito un carattere verificare emettere a video il messaggio, è stato inserito un carattere

Per il 10.

10.1. Ordinare dal più piccolo al più grande tre numeri richiesti.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Approfondimenti comandi Linux[:]

[:it]

Claude Monet

SISTEMA OPERATIVO LINUX

In Linux oltre all’ interfaccia grafica (shell grafica) con cui

abitualmente lavoriamo, è possibile utilizzare la riga di comando

(shell a riga di comando), usando una finestra di TERMINALE (da

accessori).

Il terminale visualizza il nome del login, il nome host del computer ed il percorso corrente.

Ad esempio antonietta@antonietta-vrtuafffl-mahine:~ dollaro  oppure~]  

NOTA: Il prompt per l’utente root è #. Il prompt della shell è dollaro.

La SHELL è un programma interprete che legge in input i comandi dell’utente, richiede l’esecuzione al Kernel e produce l’output.

Il Kernel o nucleo del sistema operativo gestisce l’esecuzione dei processi.

La shell si trova nella directory /BIN.

Esistono più Shell:

  • shell Bourne

  • shell C

  • shell Korn

  • shell Bash

La shell di default per le distribuzioni GNU/LINUX è la shell BASH.

Attraverso la shell possiamo eseguire i comandi, creare, modificare, eliminare i files, esplorare il sistema.

Per terminare la sessione da terminale si digita exit oppure CTRL+d

NOTA: Se il comando è su più righe, digitare \ prima di dare l’invio

COMANDI FONDAMENTALI DI LINUX

PARAMETRI (sono prefissati da un trattino e separati dal comando, da uno spazio)

————————————————————————————————————–

  • ls elenca i files della directory corrente (list segment)

-l visualizza l’elenco in modo esteso (oltre al nome, diritti,proprietario,gruppo, lunghezza, data)

LE DIRECTORY SONO EVIDENZIATE IN BLU,

I FILES BIANCHI SU SFONDO NERO O NERO SU SFONDO BIANCO

NOTA: su ogni file di linux i permessi possono essere di tre tipi LETTURA/SCRITTURA/ESECUZIONE

e vanno definiti per UTENTE, GRUPPO, ALTRI.

Esempio di riga presente in una lista

drwxrw-r– 1 nobody nogroup 625 jan 16 2015 source

d rwx rw- r- –

d indica che si tratta di una directory (- invece per il file)

rwx indica i diritti del proprietario

rw- indica i diritti del gruppo del file

r– indica i diritti del resto del mondo

nota: r sta per lettura, w per scrittura e x sta per diritti di esecuzione

nobody nome proprietario del file

nogroup nome gruppo

625 dimensione del file in byte

Poi data e ora ultima modifica

  • pwd (present working directory) stampa la directory di lavoro (ossia il percorso assoluto della directory corrente), comincia con uno / e parte dalla root ed arriva al rispettivo file

NOTA (percorso relativo:percorso che parte alla directory corrente)

  • man consente la consultazione in linea del manuale

man seguito dal comando su cui si vuole un help

Per uscire dal manuale digitare q.

  • touch crea un file vuoto

touch seguito dal nome del file o dal percorso assoluto

  • cd cambia la directory corrente (change directory)

il comando è seguito dal nome della directory o da un percorso assoluto

cd da solo porta alla home

cd .. porta alla directory superiore

  • mkdir consente di creare una nuova directory (make directory)

mkdir seguito dal nome della directory che si vuole creare (se la si vuole creare nella cartella corrente) oppure

mkdir seguito dal percorso assoluto, se la cartella la si vuole creare in un’altra destinazione

  • rmdir per cancellare una directory vuota oppure files (remove directory)

-r consente di cancellare le sottodirectory ed il loro contenuto

  • rm nome file per eliminare invece il file
  • cp (copy) copia ossia duplica un file in un percorso diverso

cp nome sorgente nome destinazione

cp –r nome directorysorgente nome directory destinazione (per duplicarlo)

  • cal mostra il calendario del mese corrente

cal 2017 visualizza il calendario dell’anno specificato

cal 11 2017 visualizza il mese richiesto

  • mv serve per spostare un file o una directory (move) oppure per rinominare nome

mv nome file attuale nuovo nome file

mv nome directory percorso

  • date visualizza la data del sistema
  • passwd per cambiare la propria password
  • bc attiva la calcolatrice e possiamo digitare un’espressione con le seguenti operazioni

+ – * /

% per il resto della divisione

^ per elevare a potenza

NOTA: per uscire dalla calcolatrice digitare su nuova riga, quit oppure CTRL+d

              • tput per pulire il video
              • cat nome file per vedere il contenuto del file
              • who elenco nome utenti collegati
              • write nome utente

per inviare messaggio sul terminale di un utente. Una volta eseguito il write, ogni messaggio verrà visualizzato su entrambi i terminali collegati.

(tty01 esempio di linea cui il mittente è collegato).

mesg n (per non ricevere messaggi da terminale)

mesg y (per ripristinare blocco invio messaggi)

CTRL+d (per interrompere dal mittente)

Il destinatario deve attivare anche lui (tramite write nome utente del suo mittente)

@Antonietta.Gemmiti[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT: Test sulla teoria dell’informazione e codici[:]

[:it]

hermin abramovitch

[WpProQuiz 51][:]

Pubblicato in Senza categoria | 5 commenti

[:it]TPSIT: Aspetti evolutivi delle reti[:]

[:it]

jacek yerka

La telematica è la fusione di TELEcomunicazione e inforMATICA; essa, per poter funzionare ha la necessità che esista una rete, cioè un insieme di sistemi per l’elaborazione messi in comunicazione fra loro.

STORIA

Inizialmente esisteva il mainframe e dei semplici terminali che si connettevano con il mainframe con dei semplici cavi coassiali, nel momento in cui uno di essi veniva staccato dalla rete, solo il terminale in questione non poteva più comunicare senza inficiare il funzionamento del resto della rete.

Il disco fisso era presente solo sul calcolatore centrale.

Con l’abbassamento del costo dell’hardware si è passati al concetto moderno di rete in cui ogni PC è:

  • autonomo: se disconnesso dalla rete esso può funzionare egregiamente
  • interconnesso: scambia informazione con altri PC della rete

Una rete è un insieme di sistemi per l’elaborazione messi in comunicazione tra loro.

Si è passati quindi da sistemi di elaborazione delle informazioni aventi la caratteristica di essere concentrati, cioè strutture hardware composte da una singola CPU alla quale venivano connessi più terminali, alle stazioni di lavoro connesse tra loro e dotate di capacità elaborativa propria, cioè a sistemi distribuiti.

Nello stesso periodo la rete telefonica, in continuo sviluppo da quasi un secolo, ha subito una drastica ristrutturazione, concretizzandosi nella conversione delle centrali di commutazione da elettromeccaniche ad elettroniche e soprattutto nel passaggio, nei collegamenti fra le centrali di commutazione, da metodi di trasmissione analogica a metodi di trasmissione numerica.

Quindi si è passati dal MODEM all’ADSL di casa.

I MODEM modulano e demodulano il segnale ossia convertono il flusso di dati in un segnale analogico, con al conversione inversa in ricezione.

ADSL è acronimo di Asymmetric Digital Subscriber Line che consente la trasmissione, sempre su doppino telefonico di segnali solo digitali.

Il doppino telefonico in rame era stato progettato, e viene tuttora usato, per la comunicazione in voce, che utilizza frequenze tra 300 e 3.400 hertz.

Nel 1960 comincia a diffondersi la tecnica di trasmissione numerica, nota come PCM (Pulse Code Modulation), in cui la trasmissione di un segnale vocale è affidata ad un flusso di informazione di 64kbit/s. Più conversioni telefoniche sono poi affasciate mediante multiplazione a divisione di tempo  (TDM Time Division Multiplexing) e trasmette su canali numerici con capacità dell’ordine dei Mbit/s.

Il grande boom delle reti è avvenuto grazie al Dipartimento della Difesa degli Stati Uniti, che ha svilupato ARPANET (Advanced Resercg Project Agency Net-work) che è riuscito a collegare macchine diverse con i più diversi sistemi operativi e potenze di calcolo diverse.

Per quest’ultimo problema è stata fondamentale l’attività degli organismi di standardizzazione che ha permesso di creare regole di comunicazione.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Python esercizi[:]

[:it]

  1. Roger de la Fresnaye

    Dati in input 7 numeri con due cifre decimale, calcolane la media

  2. Calcolare l’area di un triangolo data la sua base e l’altezza
  3. Sapendo che un gestore telefonico fa pagare 0,20 centesimi al minuto, per una telefonata di 3m e 30 secondi quando si dovrà pagare?
  4. dati i coefficienti numerici di un’equazione di primo grado fornire la relativa soluzione
  5. Dati tre numeri provare ad ordinarli dal più piccolo al più grande.

[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]C++: esercizi sul casting e sulle istruzioni di input ed output[:]

[:it]

  1. David Hettinger

    Scrivere un programma che chieda in input due valori interi e che mostri a video la loro divisione:

    1. senza fare il casting
    2. facendo il casting (ossia mostrare i numeri decimali)
  2. un gruppo di ragazzi vince un certo numero di gettoni in una sala giochi e decide di dividersi i gettoni in parti uguali, lasciando il resto della divisione come riserva per l’intero gruppo. (Usare l’operatore % per calcolare il resto)
  3. Mostrare a video il seguente testo andando a capo opportunamente con il corretto comando:

” Cercare di arrivare ad una laurea senza studiare

è come andare in bicicletta senza le ruote”.

4. Scrivere il programma che, letto un numero intero, calcoli e scriva la sua metà;

5. Dato il raggio del cerchio di base di un cilindro e la sua altezza, calcolare il peso del cilindro sapendo che la sostanza di cui è composto ha peso specifico =3.4 g/cm3

6. Data una parabola, scrivere le sue coordinate del vertice.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]C++: istruzioni di ingresso ed uscita[:]

[:it]

David Hettinger

La lettura di dati (input) è rappresentata dall’operatore >>.

La scrittura dei dati (output) è rappresentata dall’operatore >>.

La sintassi di un’istruzione di input è:

unità_input>>variabile;

La sintassi di un’istruzione di output è:

unità_putput<<variabile;

L’unità di input standard è la tastiera e si indica con la parola cin (console input):

cin>>raggio;

L’unità di output standard è il video e si indica con la parola cout (console output):

cout<<area;

Le definizioni della tastiera (cin) e del video (cout) sono memorizzate nel file iostream delle librerie di I/O del linguaggio. Questo significa che per poter utilizzare gli operatori di I/O sulle periferiche standard è necessario includere tale file all’inizio del programma:

#include <iostream>

Se si vogliono mostrare a video delle stringhe si usa il comando:

cout<<“Sono una stringa”;

se voglio andare a capo dopo aver mostrato una stringa si possono usare indifferentemente questi due comandi:

cout<<“Vado a capo”<<endl;

oppure

cout<<“Vado a capo \n”;

endl sta per end line

mentre \c viene detta sequenza di escape.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]C++: il casting[:]

[:it]

David Hettinger

Per casting si intende un’operazione volta a trasformare un valore di un certo tipo in un valore di un altro tipo.

Ad esempio il seguente programma fa sì che una variabile di tipo float venga salvata in una variabile di tipo int.

#include<iostream>
using namespace std;
int main()
{
int a=5;
float b=3.56;
a=b;
cout<<a;
return 0;
}

Il casting è l’azione che consente di trasformare la rappresentazione di un dato dal suo tipo originale a un altro.

La sintassi per il cambio di tipo è la seguente:

(tipo) espressione;

ad esempio

b = (int) a;

oppure in alcune versioni più recenti:

b= static_cast <int> (a);

eccone l’applicazione:

#include<iostream>
using namespace std;
int main()
{
/*****************************************/
/* conversione implicita */
/*****************************************/
int a=5;
int d,e;
float b=3.56;
a=b;
cout<<a<<endl;
/******************************************/
/* primo esempio di conversione esplicita */
/******************************************/
cout<<“Altro esempio”<<endl;
d=(int)b;
cout<<d<<endl;
/*******************************************/
/* secondo esempio di conversione esplicita */
/******************************************/
cout<<“altro esempio con la funzione static_cast”<<endl;
e=static_cast<int>(b);
cout<<e;
return 0;
}

Tale conversione comincia a diventare molto importante quando si eseguono delle divisioni tra interi e bisogna tener conto se la divisione fornisce ancora un intero o un numero decimale di cui poi tenere conto nel proseguo del programma stesso.

Ad esempio in questo programma che differenza intercorre tra la prima parte del programma e la seconda?

 

#include<iostream>
using namespace std;
int main()
{
int a,b;
float c;
cout<<“Inserisci il primo numero intero\n”;
cin>>a;
cout<<“Inserisci il secondo numero intero\n”;
cin>>b;
cout<<“Nessun casting: “<<a/b<<endl;
c=(float)a/b;
cout<<“Casting: “<<c;
return 0;
}[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Codice a controllo d’errore: codice di Hamming(7,4)[:]

[:it] 

David Hettinger

Il codice di Hamming permette di correggere gli errori nella trasmissione inserendo della ridondanza nel codice trasmesso.

Nel caso specifico il codice di Hamming(7,4) inserisce in un codice di 4 bit, 3 bit in più appunto di ridondanza necessari per verificare e correggere il codice trasmesso.

In questo codice l’errore che si corregge è 1 di un bit e si parla quindi di distanza di Hamming di valore 1.

Al codice trasmesso si aggiungono dei bit di parità alla posizione 1, 2, 4, ricapitolando alla posizione:

Il bit 1 controlla la parità dei bit 1, 3, 5, 7

Il bit 2 controlla la parità dei bit 2, 3, 6, 7

Il bit 4 controlla la parità dei bit 4, 5,6, 7

Schematicamente ho quindi:

Si nota che:

  • il bit di parità 1 (p1) copre i bit 1 – 3- 5- 7
  • il bit di parità 2 (p2) copre i bit 2 – 3- 6- 7
  • il bit di parità 3 (p3) copre i bit 4 – 5 – 6- 7

Per leggere la tabella si deve andare a vedere la riga del Bit#

Il Bit 1 è controllato da p1

Il Bit 2 è controllato da p2

Il Bit 3 è controllato da p1 e p2

Il Bit 4 è controllato da p3

Il Bit 5 è controllato da p1 e p3

Il Bit 6 da p2 e p3

il Bit 7 da p1, p2 e p3.

In termini operativi si controllano p1, p2 e p3

p1 p2 p3
ok ok ok

messaggio corretto

p1 p2 p3
no ok ok

vedo che solo p1 è errato allora correggo il bit1

p1 p2 p3
no ok no

 

p1 e p3 sono sbagliati.

ALGORITMO

Cerco la colonna con il segno di spunta verde su p1 e p3–> colonna 5 ossia relativa al Bit 4

Ossia partendo dalla riga con la spunta in verde si vede il relativo bit errato

Esempio:

Devo trasmetter 0101

il messaggio trasmesso sarà:

P1 P2 M1 P3 M2 M3 M4
0 1 0 0 1 0 1
1 2 3 4 5 6 7

in quanto il P1 controlla la posizione 1357

P2 controlla la posizione 2367

P3controlla la posizione 4567

Mi arriva il seguente messaggio

P1 P2 M1 P3 M2 M3 M4
0 1 1 0 1 0 1
1 2 3 4 5 6 7

P1 è errato!

P1 P2 M1 P3 M2 M3 M4
0 1 1 0 1 0 1
1 2 3 4 5 6 7

P2 è errato!

P1 P2 M1 P3 M2 M3 M4
0 1 1 0 1 0 1
1 2 3 4 5 6 7

P3 è corretto.

Siccome P1 e P2 sono errati dalla tabella vedo che è errato il bit 3 e lo correggo da 1 a 0! Ed ho il messaggio di partenza corretto senza richiedere la ritrasmissione.

Il codice di Hamming(7,4) corregge solo 1 bit e si chiama appunto distanza 1. Non corregge gli errori doppi.[:]

Pubblicato in Senza categoria | Lascia un commento