Anteprima
Vedrai una selezione di 6 pagine su 25
Appunti teoria Sistemi di calcolo 2 Pag. 1 Appunti teoria Sistemi di calcolo 2 Pag. 2
Anteprima di 6 pagg. su 25.
Scarica il documento per vederlo tutto.
Appunti teoria Sistemi di calcolo 2 Pag. 6
Anteprima di 6 pagg. su 25.
Scarica il documento per vederlo tutto.
Appunti teoria Sistemi di calcolo 2 Pag. 11
Anteprima di 6 pagg. su 25.
Scarica il documento per vederlo tutto.
Appunti teoria Sistemi di calcolo 2 Pag. 16
Anteprima di 6 pagg. su 25.
Scarica il documento per vederlo tutto.
Appunti teoria Sistemi di calcolo 2 Pag. 21
1 su 25
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Informazioni sulle pipe e FIFO

Una volta lette, le informazioni spariscono dalla pipe a meno che non vengano riscritte. Utilizzo due descrittori per leggere e scrivere dalla pipe. Un processo che prova a leggere da una pipe vuota resta bloccato fino a quando non ci sono dati disponibili, rimane bloccato anche quando è piena fino a quando un processo non rimuove abbastanza dati da poterla liberare per scriverci sopra. Se la scrittura venisse bloccata, allora il kernel potrebbe mandare in esecuzione un altro processo.

Le pipe sono strutture logiche, pertanto, un processo non può vedere quando finisce un file su una pipe perché non ho un dispositivo fisico. Per convenzione, vengono chiusi i descrittori quando tutti hanno finito di scrivere o leggere. Prima terminano gli scrittori e poi i lettori. Per evitare situazioni di deadlock, un processo che scrive e basta deve chiudere immediatamente il descrittore in lettura e uno che legge e basta deve chiudere quello in scrittura.

FIFO può essere aperta.

<14/11/2022 - Rete>

Il turno“. Controllare il flusso attraverso il meccanismo dellefinestre e dell’acknowledgement Multiplexing attraverso l’uso delle porte. Quando duecomputer utilizzano TCP devono innanzitutto creare una sessione. La proceduraattraverso la quale la sessione viene stabilita si chiama „three way handshacking“, ohandshacking a tre vie. TCP fornisce un servizio connection-oriented, mentre UDP è unprotocollo connectionless (senza connessione). UDP, User Datagram Protocol. E‘ usatoin tutti quei casi in cui non è necessaria tutta la potenza di TCP, ad esempio quandodobbiamo inviare una richiesta che sta tutta in un solo datagramma. Infatti ognidatagramma UDP viene mandato in un singolo datagramma IP. In sostanza l’unicacosa che un datagramma UDP aggiunge al protocollo IP è la capacità di usare le porte.L’UDP non si divide in datagrammi e non tiene conto di ciò che viene mandato o di ciòche non è arrivato.

Dopo tutto, se qualcosa va storto e non si riceve risposta, basta inviare lo stesso pacchetto UDP. IP è un protocollo un po' particolare: non garantisce che i suoi pacchetti, detti datagrammi IP, arrivino a destinazione, che siano privi di errori, o che essi arrivino nell'ordine corretto. Questo lavoro viene lasciato ai protocolli superiori come TCP. Per questo motivo IP è un protocollo abbastanza semplice. Un datagramma IP, quando viene passato al livello fisico, viene incapsulato in un header Ethernet per formare un frame fisico. Il problema è che le dimensioni massime di questo frame sono limitate. Il valore di questo limite è chiamato MTU, maximum transfer unit (unità massima di trasferimento). Se il datagramma IP è troppo grande per stare in una trama lunga al massimo MTU byte si usa la tecnica della frammentazione. Il datagramma IP viene spezzettato in tanti frammenti abbastanza piccoli da entrare nel frame della rete. Ogni frammento.

Possiede un proprio header molto simile all'header IP del datagramma originale, ma con i campi Identification, Flags, Fragment Offset settati opportunamente. Vengono inoltrati normalmente. Sul computer ricevente viene riassemblato il datagramma IP originale facendo uso di questi campi.

16/11/2022 - Network e socket

Computer communications: mando le informazioni in modo cooperativo. Quando due o più computer sono interconnessi, comunicano tramite una rete che utilizza dei protocolli (linguaggi).

Protocollo: un insieme di regole che consente lo scambio di dati tra due entità (qualcosa capace di mandare o ricevere info). Sistema: oggetto fisico che contiene due o più entità.

Elementi chiave del protocollo:

  1. Sintassi: include dati come il formato delle info
  2. Semantica: include controllo delle informazioni e la gestione degli errori
  3. Timing: include velocità matching e sequenziale.

TCP/IP è modulo costituito da 5 livelli (riduzione dell'OSI).

Application-transport-internet-network-physical.

Operazioni del TCP/IP. Ogni sistema è identificato da un nome univoco che è l'indirizzo IP, ogni entità deve essere identificata ma devo trovare un modo per renderle univoche. Rendo univoca la coppia IP-porta anziché le due cose singolarmente, va a rappresentare in qualsiasi comunicazione l'applicazione che la utilizzerà.

UDP. Mando messaggi senza creare prima una connessione.

Sockets. E' un concetto o astrazione che permette la comunicazione tra un client e un server, può essere orientata o non alla connessione ed è considerato un endpoint in quanto identifica univocamente l'entità che riceverà i dati. A livello della macchina è gestita completamente dal kernel (SO).

Stream sockets-> usa TCP

Datagram sockets-> usa UDP

Raw sockets-> permette accesso diretto ai protocolli

Sono caratterizzate da indirizzo IP e porta, quindi una connessione è

Identificata da una quadrupla (IP-port sorgente e destinazione). Se voglio identificare la macchina basta la coppia, per la connessione serve la quadrupla. Struttura della socket - vedi slide 29. Come funziona una connessione? Due macchine stanno lavorando, una fa una richiesta di connessione e iniziano a dialogare per poi stabilirne una. Fanno le comunicazioni, una delle due chiede la disconnessione e informa l'altra e si chiude la connessione tornando entrambe IDLE.

21/11/2022 - Network e socket (parte seconda) Funzionamento Client/Server. Per identificare una socket si utilizzano l'indirizzo IP dell'host e un numero di porta. Nel funzionamento il client manda una request con un numero di porta sconosciuto (generalmente è standard per alcuni tipi di servizi) e il server risponderà non necessariamente sulla porta iniziale perché potrebbe avere altre comunicazioni in ingresso. La chiamata alla funzione socket() restituisce un descrittore. Le altre

Le primitive necessarie per la comunicazione sono:

  • listen() per bloccare il processo in attesa di ricevere dei dati
  • connect() che tenta di stabilire una connessione
  • send() per inviare i dati
  • receive() per bloccare il processo in attesa di ricevere dati
  • disconnect() per avvisare che si vuole chiudere la connessione

Le primitive per le socket TCP di Berkeley (Unix) sono:

  • socket() per creare una comunicazione
  • bind() per assegnare il mio indirizzo alla socket
  • listen() per prepararsi ad accettare connessioni
  • accept() per accettare una richiesta di connessione
  • connect() con l'indirizzo del destinatario per stabilire una connessione
  • send() per mandare dati
  • recv() per ricevere dati
  • close() per chiudere la connessione

Nel caso di UDP avrò le funzioni:

  • sendto() con l'indirizzo del destinatario per inviare dati
  • recvfrom() per ricevere dati

Non viene usata la bind().

Network Adaptors. Un network adaptor (scheda di rete) è l'interfaccia tra un host e la rete. La scheda

È costituita da due parti separate che interagiscono tramite una FIFO. Una parte interagisce con la CPU, la seconda parte interagisce con la rete e implementa i livelli fisico e di collegamento. Tutto il sistema è comandato da una SCO (sottosistema di controllo della scheda) che comunica con la CPU attraverso il CSR, un registro in cui entrambi possono settare e leggere dei flag. L'host può comunicare cosa accade nel CSR in due possibili modi: Busy waiting (la CPU legge continuamente il CSR finché non trova una modifica che indica l'operazione da eseguire, ragionevole per dispositivi che non fanno altro come i router) o Interrupt (l'adaptor invia un interrupt all'host che va quindi a leggere il CSR per capire cosa fare). Il trasferimento dei dati dall'adaptor alla memoria e viceversa può essere Direct Memory Access (non coinvolge la CPU, l'host ha un'area di memoria assegnata in cui vengono immediatamente inviati i frame,

bastano pochi bytes sulla scheda) o Programmed I/O(lo scambio dati tra memoria ed adapter passa per la CPU, bisogna bufferizzarealmeno un frame sulla CPU, la memoria deve essere dual port per cui sia processoreche adaptor devono poter leggere e scrivere). Nel caso di Direct Memory Access lamemoria dove allocare i frames è organizzata attraverso una buffer descriptor list (unain lettura e una in scrittura) che è un vettore di puntatori ad aree di memoria (ovvero ibuffer) dove è descritta anche la quantità di memoria disponibile in ciascuna area. Perethernet vengono tipicamente preallocati 64 buffers da 1500bytes. Per i frame chearrivano dall'adapter si utilizza la tecnica scatter read / gather write secondo la qualeframe distinti sono allocati in buffer distinti, nel caso in cui un frame sia troppo grandepuò essere spezzato in più buffer. Quando un messaggio viene inviato da un utente inuna socket il sistema operativo lo copia in un

buffer nella memoria in una zona di buffer descriptor. Tale messaggio viene processato da tutti i livelli che aggiungono le header. Quando il messaggio è pronto viene avvertita la SCO dell'adapter attraverso alcuni flag del CSR, la SCO invia il messaggio sulla linea e notifica alla CPU il termine dell'invio settando CSR e inviando un interrupt. La CPU a questo punto lancia un interrupt handler che resetta i flag del CSR e libera le opportune risorse. Il device driver è una collezione di routine del sistema operativo che permettono la comunicazione fra il sistema operativo e l'hardware specifico dell'adaptor.

23/11/2022 - Distributed Systems

Cos'è? È un insieme di entità separate spazialmente (su dispositivi differenti), ognuna ha una certa potenza computazionale e sono capaci di comunicare tra loro per raggiungere un obiettivo comune ma appare agli utenti come un singolo sistema coerente. Si usano perché potrebbero

Posso fornirti alcune risorse che potrebbero essere utili per gestire una singola macchina: 1. Microsoft Windows: un sistema operativo ampiamente utilizzato per computer personali. 2. macOS: il sistema operativo sviluppato da Apple per i suoi computer Mac. 3. Ubuntu: una distribuzione Linux popolare e user-friendly. 4. VirtualBox: un software di virtualizzazione che consente di eseguire diversi sistemi operativi su una singola macchina. 5. VMware: un altro software di virtualizzazione che offre funzionalità avanzate per la gestione di macchine virtuali. 6. Docker: una piattaforma per la creazione, la distribuzione e l'esecuzione di applicazioni in contenitori. 7. Microsoft 365: una suite di produttività che include applicazioni come Word, Excel e PowerPoint. 8. Google Chrome: un browser web veloce e sicuro. 9. Mozilla Firefox: un altro browser web popolare e open source. 10. Adobe Photoshop: un software di fotoritocco e grafica molto utilizzato. Spero che queste risorse ti siano utili per gestire la tua singola macchina!
Dettagli
Publisher
A.A. 2022-2023
25 pagine
SSD Scienze matematiche e informatiche MAT/08 Analisi numerica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher sergiovine di informazioni apprese con la frequenza delle lezioni di Sistemi di calcolo 2 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma La Sapienza o del prof Lazzeretti Riccardo.