Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi N - Z > Sistemi operativi e distribuiti > 1° Compitino SOD!
Pages (13): « First ... « 2 3 4 5 [6] 7 8 9 10 » ... Last »   Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
LiJay
.illuminato.

User info:
Registered: Mar 2006
Posts: 182 (0.03 al dì)
Location: bergamo
Corso: comunicazione digitale
Anno: 2
Time Online: 3 Days, 11:22:07: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

mi piace come ragiona questo uomo...anche se due giorni prima dell'esame non sa neanche lui come farlo XD

06-04-2009 14:29
Click Here to See the Profile for LiJay Click here to Send LiJay a Private Message Find more posts by LiJay Add LiJay to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
kimin@
.arcimaestro.

User info:
Registered: Sep 2008
Posts: 408 (0.07 al dì)
Location: ---
Corso: comunicazione digitale
Anno: 1
Time Online: 3 Days, 18:19:27 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

bene ragazzi :D :D quindi consegnamo tutti in bianco e ci salviamo a vicenda :P :P
non la vedo molto difficile se leviamo quei 3-4 secchioni nella nostra aula xD

cmq ha davvero un bel modo di ragionare secondo me questo professore.... magari appena mi boccerà non sosterrò più quest'idea :D:D:D ma ora che sono sana e razionale prendetemi in considerazione :P

06-04-2009 14:38
Click Here to See the Profile for kimin@ Click here to Send kimin@ a Private Message Find more posts by kimin@ Add kimin@ to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
ViPah
.arcimaestro.

User info:
Registered: Nov 2008
Posts: 404 (0.07 al dì)
Location: xD
Corso: =]
Anno:
Time Online: 1 Day, 23:12:28 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

No è vero cmq s'è sempre dimostrato pronto ad aiutare e sempre puntuale nel rispondere alle mail. Poi magari fa il pezzo di m***a nel compitino e fa cose impossibili....ma pace!


Mi rimetto a studiare :D

06-04-2009 15:05
Click Here to See the Profile for ViPah Click here to Send ViPah a Private Message Visit ViPah's homepage! Find more posts by ViPah Add ViPah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
LiJay
.illuminato.

User info:
Registered: Mar 2006
Posts: 182 (0.03 al dì)
Location: bergamo
Corso: comunicazione digitale
Anno: 2
Time Online: 3 Days, 11:22:07: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Lezione 6+7+8

• Il perchè della Computazione Distribuita
-è possiblie eseguire programmi in minr tempo perché più pc lavorano sullo stesso problema contemporaneamente
-può incorporare computer con funzioni speciali,migliorando l'efficienza
• Le difficoltà della Comp. Distribuita
-definire i subalgoritmi che possono eseguire relativamente in modo indipendente dagli altri riuscendo però a contribuore alla soluzione dell'algoritm generale.
-assicurate che.nei pochi casi in cui i subalgoritmi interagiscono tra di loro,essi rispettino le asequenzialità definita nell'algoritmo.
• Il concetto di trasporto-->livello i trasporto
fornisce meccanismo END-TO-END per la trasmissione delle informazioni da una computazione sequenziale ad un'altra.Questa struttura viene chiamata peer to peer.
Il programmatore non ha accesso all'implementazione di questo livello,ma può scegliere se lavorare in TCP o in UDP.
-Address space:si estende oltre l'indirizzo internet e la comunicazione avviene referenziata da PORTE specifiche situate su un HOST remoto che a sua volta si appoggia su un network remoto.Le porte sono risorse del SO;un AUC può ottenere il permesso di usare una particolare porta ,occupandola permanentemente.Il network identifica mittente e ricevente in termini di coppie NET-->HOST
• Programma il livello di trasporto
Programmazione delle socket in tcp
-protocollo di connessione:doppio canale per scambio byte.
-L'interfaccia permette al programmatore di leggere/Scrivere sul network
-il byte stream è mappato in una serie di pacchetti
1)consegna assicurata
2)ogni pacchetto viene riconosciuto
3)due effettivi pacchetti per strasmissione
-può parire/chiudere una connessione prima dell'uso:
1)il client contatta il server
-il processo server è il primo a partire
-il server deve prima creare una porta per accogliere il client
2)il client contatta il server
-tramite la creazione di una socket TCP
-quando il client crea la socket,stabilisce la connessione col server TCP specificanto l'IP ADDRESS e numero di porta del server
3)Quando il server viene contattato
-crea una nuova socket per comunicare col client.Il server può comunicare con più client.
• Le Socket
-BSD: socket di sistemi distribuiti.è una struttura del SO che può essere associata dinamicamente ad una porta.E' progettata così che una computazione sequenziale possa configurarla affiche si possa connettere alla porta e quindi scambiare informazioni.
In TCP
Trasmissione byte I/O:abilita una computazione sequenziale per scrivere una collezione arbitraria di byte sullo stream e la lettura da parte di un'altra sequenza di questa collezione
• Che cos’è un COROUTINES?
È un blocco di codice scritto per eseguire un subalgoritmo e per condividere esplicitamente il processore con altre coroutines in modo da poter collaborare.
Differisce da un'ordinaria procedura o funzione.Mantiene lo stato interno usando uno statico set di strutture dati.Quando ha finito l'inizializzazione si autoblocca fino a che qualche altro codice non la risveglia.
• La MSF – Macchine a stati finiti
• OSIX e POSIX (Se volete cercate pure ASTERIX e OBELIX!Marco si starà ammazzando dalle risate!)
• La gestione dei Devices in un OS
le perifferiche hanno un elemento attivo chiamato “controller” che è un mecanismo che interagisce con il resto dell'elettronica(siamo a livello HW).
La parte del SO che comunica con il controller è il device driver della periferica,cioè quello che pilota la periferica e sa come essa è fatta. Permette di trattare tutte le periferiche alla stessa maniera in quanto le operazioni che compie per ognuna di loro sono le stesse: open(),close(),read(),write().
• Il Polling e l’interrupt nella gestione dei Devices
Polling
Tutte le periferiche hanno un bit settato a 0 per done e a 1 per busy.L'idea è cercare di utilizzare la cpu anche mentre le periferiche lavorano.Per sapere quando esse hanno finito la cpu interroga ogni device
interrupt
Sono le periferiche a dire alla cpu che hanno finito.E' un meccanismo proprio dei device.
L'INTERRUPT CONTROLLER è il sensore che avverte la cpu se c'è qualche interruzione.Ci sono più linee di interrupt così che se più periferiche hanno terminato la cpu capisce chi ha avvertito.La cpu si blocca e gestisce l'interruzione(interrupt handler)e poi torna a fare quello che stava facendo.
• L’Overlapping
• Il File System
E' l'organizzazione che il sistema da' ai dati presenti sul supporto di memorizzazione.
-file system fisico:dove metto i byte sulla periferica
-fyle sistem logico:come distribuisco i files nella directory

se qualcuno controlla quel che ho scritto e riempie quello che non sono riuscita a fare mi fa un favorone:D

06-04-2009 15:34
Click Here to See the Profile for LiJay Click here to Send LiJay a Private Message Find more posts by LiJay Add LiJay to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Youngz
.amico.

User info:
Registered: Mar 2009
Posts: 26 (0.00 al dì)
Location:
Corso:
Anno:
Time Online: 6:19:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

ma che son i principi di abbellimento? io sto completando quello che non hai fatto, a breve posterò un sunto di tutto.

06-04-2009 15:50
Click Here to See the Profile for Youngz Click here to Send Youngz a Private Message Find more posts by Youngz Add Youngz to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
LiJay
.illuminato.

User info:
Registered: Mar 2006
Posts: 182 (0.03 al dì)
Location: bergamo
Corso: comunicazione digitale
Anno: 2
Time Online: 3 Days, 11:22:07: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

buh mica li ho trovati sti principi...magari stanno all'estetista...(battutaccia)

06-04-2009 15:57
Click Here to See the Profile for LiJay Click here to Send LiJay a Private Message Find more posts by LiJay Add LiJay to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
kimin@
.arcimaestro.

User info:
Registered: Sep 2008
Posts: 408 (0.07 al dì)
Location: ---
Corso: comunicazione digitale
Anno: 1
Time Online: 3 Days, 18:19:27 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by LiJay
buh mica li ho trovati sti principi...magari stanno all'estetista...(battutaccia)


scusami LiJay ma qste risposte che hai messo sull'ultima parte delle domande di wiittorio le hai ricavate dalle slide di boccignone o fan parte del tuo "bagaglio culturale"?? :D :D
thanks!

06-04-2009 16:12
Click Here to See the Profile for kimin@ Click here to Send kimin@ a Private Message Find more posts by kimin@ Add kimin@ to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
LiJay
.illuminato.

User info:
Registered: Mar 2006
Posts: 182 (0.03 al dì)
Location: bergamo
Corso: comunicazione digitale
Anno: 2
Time Online: 3 Days, 11:22:07: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

un po' dai lucidi del Boccignone,un po' da quelli del profe dell'anno scorso e un po' da wikipedia
mi pare che solo la gestione dei device e la definizione di file system li ho presi dal Bellettini.

06-04-2009 16:29
Click Here to See the Profile for LiJay Click here to Send LiJay a Private Message Find more posts by LiJay Add LiJay to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Youngz
.amico.

User info:
Registered: Mar 2009
Posts: 26 (0.00 al dì)
Location:
Corso:
Anno:
Time Online: 6:19:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Ho quasi finito, ho completato quello che ti mancava tranne i principi di abbellimento, manca solo la 9
Pota

06-04-2009 16:48
Click Here to See the Profile for Youngz Click here to Send Youngz a Private Message Find more posts by Youngz Add Youngz to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
wacca
.grande:maestro.

User info:
Registered: Mar 2006
Posts: 525 (0.08 al dì)
Location: Milano(forse)
Corso: comunicazione digitale
Anno: 2
Time Online: 4 Days, 23:53:46 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

ragazzi domanda ... quindi se io ho frequentato il turno 1 ... e il mio cognome sta tra la H-Z ... lo posso fare la mattina ... o lo devo fare per forza il pomeriggio ???

:D

Grazie in anticipo della risposta ...
E grazie a chi ha messo le domande con le risposte ;)

06-04-2009 18:41
Click Here to See the Profile for wacca Click here to Send wacca a Private Message Find more posts by wacca Add wacca to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
kimin@
.arcimaestro.

User info:
Registered: Sep 2008
Posts: 408 (0.07 al dì)
Location: ---
Corso: comunicazione digitale
Anno: 1
Time Online: 3 Days, 18:19:27 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by LiJay
un po' dai lucidi del Boccignone,un po' da quelli del profe dell'anno scorso e un po' da wikipedia
mi pare che solo la gestione dei device e la definizione di file system li ho presi dal Bellettini.


ok grazie mille ;)

06-04-2009 18:49
Click Here to See the Profile for kimin@ Click here to Send kimin@ a Private Message Find more posts by kimin@ Add kimin@ to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
kimin@
.arcimaestro.

User info:
Registered: Sep 2008
Posts: 408 (0.07 al dì)
Location: ---
Corso: comunicazione digitale
Anno: 1
Time Online: 3 Days, 18:19:27 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by wacca
ragazzi domanda ... quindi se io ho frequentato il turno 1 ... e il mio cognome sta tra la H-Z ... lo posso fare la mattina ... o lo devo fare per forza il pomeriggio ???

:D

Grazie in anticipo della risposta ...
E grazie a chi ha messo le domande con le risposte ;)


devi farlo di "mattina", dall'una e mezza ;)

06-04-2009 18:50
Click Here to See the Profile for kimin@ Click here to Send kimin@ a Private Message Find more posts by kimin@ Add kimin@ to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Youngz
.amico.

User info:
Registered: Mar 2009
Posts: 26 (0.00 al dì)
Location:
Corso:
Anno:
Time Online: 6:19:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged


Lezione 1+2

• Cos’è un Os?
Software che, tramite l'interfaccia utente, consente l'invio di comandi al computer, e che controlla e gestisce tutto il traffico di dati all'interno del computer e fra questo e tutte le periferiche, operando anche come intermediario fra hardware e software di sistema ed i diversi programmi in esecuzione. Sono sistemi operativi il DOS, Unix, Windows '9x, Mac/OS, CP/M.I tre elementi (computer/processore/scheda madre, il sistema operativo, i software da eseguire) devono essere strettamente compatibili. All'acquisto di un programma, ad esempio, è essenziale controllare che sia compatibile con il sistema operativo installato sul nostro computer, oltre che con la sua configurazione. Un sistema operativo è composto da tre parti: l'interfaccia utente (shell), ilfile system ed il kernel.

• Come funziona, da cosa è costituito.
Il sistema operativo è costituito da un insieme di software che si differenziano in due tipologie:
API(Application Programming Interface): Software utilizzato per la astrazione dell’hardware, cioè che “nascondono” l’hardware presente nel computer per permettere un semplificato interfacciamento (alto livello) tra uomo/macchina; questo permette ai programmatori/utenti di scrivere tutte le informazioni in binario,unico codice capito dal computer, o al massimo in assebly
Kernel: Gestisce il file system,cioè il meccanismo tramite il quale i dati vengono immagazzinati nella memoria rigida
Gestione dei Device: Interfacciamento con l’hardware; legge e configura l’hardware della macchina e tenta di utilizzarli al meglio delle possibilità

• OS- Distribuito
Utilizzati nei network, vari calcolatori collegati tra loro, per ottimizzare l’utilizzo delle risorse senza incentrare tutto su un unico calcolatore visto che son dedicati a scopi differenti. Un sistema operativo distribuito deve essere in grado di gestire un gran numero di informazioni e interfacciarle con le altre macchine a seconda del loro scopo in maniera contemporanea.
Questo tipo di OS è diviso principalmente in due parti:
- Gestione del lavoro locale
- Gestione dell’interfacciamento con gli altri calcolatori
I vantaggi che si possono cogliere da questo tipo di sistema operativo son principalmente due: Affidabilità (se una macchina si guasta non crea gravi perdite visto che il lavoro è distribuito su più calcolatori) , Espansibilità (Possibilità di poter modificare l’hardware o aggiungere una nuova macchina senza dover riconfigurare tutto da capo)

• Gli OS nelle reti
Come detto sopra ci son dei sistemi operativi creati appositamente per la gestione delle reti; le funzioni principali sono:
– Gestire un file system per dati, applicazioni, profili utente e periferiche di rete
– coordinare tutte le risorse e i servizi disponibili
– elaborare le richieste degli utenti
– richiedere agli utenti le informazioni per l’accesso alla rete, convalidare gli account, applicare le limitazioni, eseguire le funzioni di gestione degli utenti
– gestire una o più stampanti di rete
– gestire l’interconnessione tra reti locali
– gestire gli utenti connessi in modalità locale e remota
– supportare la protezione del sistema
– supportare le funzioni client/server
– supportare lo sviluppo delle pagine Web e le operazioni del server Web

Il problema principale tra le risorse gestite è il server , il quale è la macchina principale (la quale deve essere molto potente) che contiene un grande file system con tutte le informazioni necessarie.

I sistemi operativi di rete maggiormente conosciuti sono:Novell NetWare, Microsoft Windows NT/2000, Unix, Linux, IBM OS/2

• Il linguaggio macchina
Il linguaggio macchina, detto anche linguaggio a basso livello, è un linguaggio di base di tutti i linguaggi ad alto livello (i linguaggi ad alto livello non fan altro che , dato un linguaggio definito con cui un programmatore scrive il programma, traduce il tutto in un linguaggio a basso livello compreso dal calcolatore) .
Il linguaggio macchina è basato su un alfabeto binario (0/1) , concatenati fra loro, formando istruzioni comprensibili alla CPU. Ogni CPU ha un proprio metodo di interpretare i bit; anche se molti parametri son uguali per tutti (ad esempio in un numero, considerando il primo bit, se è a 1 vuol dire che è negativo, se è a 0 vuol dire che è positivo) .

• Il modello di Von Neumann
Questo modello si riferisce a uno schema di progettazione di calcolatori ideati dal matematico John von Neumann, ed è anche la base per qualunque calcolatore.
Lo schema è basato su 5 principali componenti:
1 CPU o unità di lavoro che si divide a sua volta in
-Unità operativa, nella quale uno dei sottosistemi più rilevanti è l'ALU (Arithmetic Logic Unit)
-Unità di controllo
2 Unità di memoria, intesa come memoria di lavoro o memoria principale (RAM, Random Access Memory)
3 Unità di input, tramite la quale i dati vengono inseriti nel calcolatore per essere elaborati
4 Unità di output, necessaria affinché i dati elaborati possano essere restituiti all'operatore
5 Bus, un canale che collega tutti i componenti fra loro
(uno schema è presente a questo link: http://upload.wikimedia.org/wikiped...von_neumann.png )
L’ALU inoltre serve all’interfacciamento con l’I/O grazie a un meccanismo di caricamento e scrittura sulla memoria.

• I RISC Processor
Reduced Instruction Set Computer è una architettura di microprocessori dedicati all’esecuzione di operazioni molto semplici i quali hanno una velocità di esecuzione molto elevata.
Esempio al seguente url: ( http://upload.wikimedia.org/wikiped...PowerPC_G4e.png )

• I MIPS Processor
Microprocessor without Interlocked Pipeline Stages è un processore di architettura RISC utilizzato in varie console e nei sistemi embedded (sistemi dedicati) .L’architettura è semplice e lineare.

• I CISC Processor
Complex instruction set computer è un’architettura di microprocessori basata su operazioni complesse con tempi di esecuzione variabili,questi CISC permettono di colmare,almeno parzialmente, il divario tra linguaggio macchina e linguaggio ad alto livello.

• Le modalità di indirizzamento della memoria
ci sono due modalita di indirizzamento, modalita indirette (prende l'indirizzo salvato nel registro della cpu), e dirette (l'indirizzo è già presente alla fine dell'istruzione);
esempi di indirizamento diretto:
-diretto con registro: L'istruzione specifica è contenuta in uno dei registri della CPU che essendo interni al processore permettono un accesso veloce. Lo svantaggio di questo indirizzamento consiste nella limitata quantità di registri (solo 8 da R0 a R7).
-immediato: Il dato è presente in memoria nella locazione immediatamente successiva all'istruzione: è parte integrante dell'istruzione stessa. Non utilizza registri ma viene o specificato nell'istruzione il valore del dato oppure viene utilizzata una variabile che contiene il dato in memoria.
-assoluto: Questo tipo di indirizzamento viene utilizzato se i dati hanno una posizione fissa nella memoria. Risulta essere più lento del Diretto con Registro perché anche se la modalità di accesso al dato è la stessa in questo caso si sta utilizzando un dato contenuto in memoria e non nei registri di CPU
esempi di indirizzamenti indiretti:
-con registro indice: L'istruzione contiene sia un indirizzo immediato che l'indicazione di un registro: la CPU carica il dato dall'indirizzo ottenuto sommando il valore immediato al valore del registro.
-autorelativo: L'istruzione contiene un dato immediato che viene sommato al valore del registro IP per ricavare l'indirizzo da cui caricare il dato necessario.
-con spiazzamento: Nell'istruzione sono contenuti un dato in complemento a due e l'identificativo di un registro. La somma di questi due dati darà come risultato l'indirizzo fisico dell'operando.
-predecrementante: Questo tipo di indirizzamento è utile nella scansione di array o dati in sequenza perché prima di accedere al dato decrementa il suo valore (dell'indirizzo e non del dato stesso).
-postincrementante: Opposto al precedente questo indirizzamento prima legge il dato e poi incrementa il valore dell'indirizzo della dimensione specificata (Byte, Word o Long-word)

• OS - Single Thread
I sistemi ST son dei sistemi piccoli dedicati a un determinato processo,utilizzati in piccole macchine come i rilevatori.Possono supportare solo l'esecuzione di un unico processo sequenziale.
Il processo in questione deve controllare tutte le caratteristiche hardware, compreso CPU e ram.Il loro ruolo principale è di fornire una astrazioni softaware delle risorse hardware.
Pricipalmente è strutturato in un main che va in loop e si blocca quando necessita di eseguire un determinato processo(uno alla volta).

• OS – Multi Thread
I sistemi multithread sono sviluppati per lavorare in maniera parallela eseguendo più thread alla volta. Questi thread condividono tutti le stesse risorse(come lo spazio di indirizzamento,la memoria cache, e un buffer che traduce gli indirizzi di memoria virtuale in indirizzi reali).

06-04-2009 19:06
Click Here to See the Profile for Youngz Click here to Send Youngz a Private Message Find more posts by Youngz Add Youngz to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Youngz
.amico.

User info:
Registered: Mar 2009
Posts: 26 (0.00 al dì)
Location:
Corso:
Anno:
Time Online: 6:19:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged


• Il Polling e L’Interrupt
Polling:
Il polling è la verifica ciclica di tutte le unità di input/output da parte del sistema operativo di un personal computer tramite test dei bit di stato associati ad ogni periferica, seguita da un'eventuale interazione (scrittura o lettura). Questa attività impegna molto del tempo di funzionamento del processore (CPU), rallentando di conseguenza l'intero sistema.
Il polling presenta pochi vantaggi e alcuni svantaggi.
Il vantaggio principale è quello di riuscire a gestire le periferiche sia come struttura hardware che software (cosa che non fanno le interruzioni), ma presenta degli svantaggi:
1. Potenzialmente la CPU potrebbe sprecare preziose risorse di calcolo: se, ad esempio, nessuna periferica fosse pronta al colloquio, la CPU farebbe comunque un controllo a vuoto sui bit di stato di tutte le periferiche;
2. L'intervallo tra due interrogazioni del bit di stato non è costante, ma dipende dallo stato delle periferiche;
3. Ci si può trovare in una situazione di emergenza oppure che una periferica mandi un segnale alla CPU per continuare il suo lavoro.

Interrupt
L’interrupt è un segnale inviato alla CPU che permette di interrompere gli attuali processi in caso del verificarsi di particolari condizioni, questi condizioni possono essere di due tipi:
-Interrupt hardware generati da dispositivi esterni alla CPU, che hanno il compito di comunicare il verificarsi di eventi esterni, di solito dispositivi di Input/Output.
-Interrupt software che sono delle istruzioni assembly, tipo INT xx o SYSCALL, che possono essere assimilate alle chiamate di sottoprogrammi, ma che sfruttano il meccanismo delle interruzioni per passare il controllo dal programma chiamante a quello chiamato, e viceversa; vengono utilizzati per accedere direttamente alle risorse del sistema operativo.
Gli interrupt vengono utilizzati principalmente quando:
-un processo tenta di eseguire un'istruzione non valida, come una divisione per zero. In questi casi non è possibile proseguire con l'esecuzione del processo e l'interrupt consente di informare il sistema operativo di quanto avvenuto in modo da permettere la corretta gestione del problema.
-un processo richiede un'operazione di I/O al sistema operativo. Le CPU moderne prevedono la possibilità di utilizzare diversi livelli di privilegi che i processi in esecuzione hanno, per ragioni di sicurezza. Solo il sistema operativo può effettuare alcune operazioni, accedere ad alcune aree di memoria, gestire le periferiche.
-un dispositivo di I/O informa la CPU che è disponibile a ricevere o fornire dati. In questo caso viene avviata un'opportuna procedura del sistema operativo preposta ad occuparsi della relativa periferica. Questo tipo di interrupt necessita una gestione molto attenta, infatti è possibile che due dispositivi abbiano generato un interrupt durante l'esecuzione di un processo, ed è necessario disporre di meccanismi che evitino conflitti e la perdita di informazioni, ad esempio decidendo quale interrupt ha maggiore priorità e deve essere eseguito per primo e ponendo in coda il secondo.
-il tempo massimo a disposizione per tale processo è raggiunto e lo scheduler deve riassegnare la CPU ad un altro processo in coda.
-viene effettuato il debugging di un'applicazione. Durante la fase di sviluppo di un programma è frequente la necessità di testare il funzionamento di quanto creato per scoprire e risolvere l'origine dei malfunzionamenti. Il debugging consente di seguire l'evoluzione del programma istruzione per istruzione, dando la possibilità di interrompere il processo in qualunque momento per verificare il valore di ogni parametro. Per effettuare questo è necessario che il codice sorgente sia compilato in maniera apposita, in questo caso se il programma viene eseguito sotto il controllo di un apposito programma, il debugger, ad ogni istruzione viene eseguito un interrupt che consente di verificare se in tale punto è richiesta l'interruzione del processo.
-l'interrupt viene utilizzato anche in caso di necessità del OS stesso, per evitare di comprometterne la stabilità e il corretto funzionamento.
Gestione delle interruzioni
Nel momento in cui il processore riceve una richiesta di interrupt, vi è l'esigenza di determinare quale sia il dispositivo ad averla generata. Vi sono tre sistemi principali per farlo:
-linee di interrupt multiple
-scansione degli interrupt (polling)
-vettorizzazione degli interrupt
Nelle linee di interrupt multiple ad ogni dispositivo è associato un proprio piedino per la gestione degli interrupt. Questo sistema è impraticabile per la gestione degli interrupt di numerosi dispositivi, ma può essere utilizzato in tecnologie special purpouse.
La scansione degli interrupt consiste nell'effettuare una scansione dei dispositivi, interrogando ognuno per un'eventuale conferma della richiesta di interrupt inviata. Quando il dispositivo che ha generato l'interrupt viene interrogato, invierà una conferma al processore e quest'ultimo avvierà la ISR relativa. Impostando la sequenza della scansione è possibile impostare la priorità.
La vettorizzazione fa uso di un circuito integrato detto Programmable Interrupt Controller che ha in ingresso un certo numero di linee di interrupt request (IRQ), usate dai dispositivi per richiedere un'interruzione. Quando riceve una richiesta, il PIC si occupa di inviare a sua volta una richiesta di interrupt al processore e, dopo che quest'ultimo ha confermato la richiesta (cosa che potrebbe non avvenire se gli interrupt fossero disabilitati), deposita nel bus dati l'indice del vettore di interrupt relativo alla ISR che gestisce l'interazione con il dispositivo. I vettori sono contenuti in una tabella situata ad una determinata locazione in memoria, predefinita o meno, e chiamata interrupt vector table (interrupt descriptor table per 8086 e IA-32). Ogni vettore contiene i dati che permettono al processore di determinare l'indirizzo in memoria della ISR relativa al dispositivo che ha generato l'interrupt, e di gestire quindi l'operazione di I/O richiesta.

• I sistemi dedicati – sistemi Embedded
Il sistema Embedded è un sistema dedicato a una determinata applicazione,questo sistema è formato da un microprocessore progettato ad hoc che serve a controllare particolari funzioni.
A differenza dei processori più comuni, questi processori son utilizzati per delle specifiche funzioni conosciute prima della creazione dello stesso.

Lezione 3+4

Qui ha fatto il “Mini-corso di sopravvivenza a C” questi sono giusto quelle quattro cose che mi sono scritto durante quelle lezioni.

• Dove si colloca C nella programmazione?
Il c si colloca in uno schema ad “alto livello” ,anche se non è uno di quelli più ad alto livello in quanto molte parti somigliano molto all’assembly , ed è orientato alla programmazione per sistemi operativi.

• Linguaggio ad alto o basso livello?
Il C è un linguaggio definito di Alto Livello anche se ha delle istruzioni simili al linguaggio assembly

• I puntatori in C
I puntatori son dichiarati come le variabili ma con un * prima del nome, e contengono l’indirizzo della memoria a cui puntano,ad esempio:
int a=5; (a è all’indirizzo 150)
int *punt=a(*punt conterrà 5 ma punt conterrà 150)

• Scopo di un puntatore
Il puntatore ha l’utilità di puntare a specifiche aree di memoria, in modo da poter semplificare lo scorrimento dell’array o di inserire stringhe formate da una serie di caratteri.

• I tipi di dati in C

Ci son differenti tipi di dati in c (che per altro compaiono all’incirca in tutti i linguaggi di programmazione) , i tipi interi sono int, short , long e i loro rispettivi unsigned(senza segno) ; i decimali sono float,double , long double e il tipo carattere char.
Esempi:
int a = 5;
short b = 020; (ottale)
long c = 0x10;(esadecimale)
float d = 2.145;
double e = 2.546;
char f = ‘A’;

• Le funzioni

Il C non ha procedure, solo funzioni.
In pratica, una funzione che non ritorna alcun valore di interesse (e.g. di tipo void) si comporta come una
procedura.
I programmi C sono in genere composti da molte funzioni semplici.
Esistono librerie standard di funzioni per:
•I/O (printf(), scanf(), getchar(), putchar(),fopen(), ... )
•Gestione caratteri (isalpha(), isascii(), islower(), ...)
•Gestione stringhe (strcpy(), strcmp(), strlen(),...)
•Data e ora (gmtime(), localtime(), ...)
•Calcoli matematici (sin(), cos(), ...)
•Gestione memoria (malloc(), calloc(),...)
•Chiamate di sistema (fork(), exit(),...)
•Altre amenita’...


• Struttura di un funzione

Una funzione viene dichiarata :
int somma(int a,int b){
Int c= a+b;
Return c
}

Dove vuol dire che ritorna un intero(c) e prende all’interno due interi per le proprie procedure

• Puntatore a funzione

Il puntatore a funzione è un modo elegante per richiamare una funzione, in maniera da rendere più snello e più lineare il programma.
Il putatore a funzione si dichiara all'interno del main in questo modo: “int (*func) ()” , così assegnando a func il nome della funzione verrà richiamata la stessa.

06-04-2009 19:08
Click Here to See the Profile for Youngz Click here to Send Youngz a Private Message Find more posts by Youngz Add Youngz to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Youngz
.amico.

User info:
Registered: Mar 2009
Posts: 26 (0.00 al dì)
Location:
Corso:
Anno:
Time Online: 6:19:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged


Lezione 5


• Computazione sequenziale e distribuita
-sequenziale il computer lavora secondo una specifica serie di istruzioni che vengono eseguite una dietro l'altra.La regola fondamentale per quanto riguarda questo tipo di computazione è che L'ISTRUZIONE SUCCESSIVA NELLA SEQUENZA NON DEVE ESSERE ESEGUITA FINCHE' QUELLA IN CORSO NON E' TERMINATA.
-distribuita è un'insieme di computazioni sequenziali coordinate tra di loro.Un sistema è composto da più computer connessi tramite network.E' stata pensata per l'esecuzione delle sequenze in AUC nello scambio coordinato delle informazioni.Estende il concetto di computazione sequenziale in quanto si aggiunge il meccanismo di intercomunicazione.
Anch'essa ha una regola da rispettare: LA COMPUTAZIONE E' DETERMINATA:L'ESECUZIONE DI UN PROGRAMMA PRODUCE SEMPRE IL MEDESIMO OUTPUT.SE UNA DIFFERENTE ESECUZIONE PRODUCE DIFFERENTE OUTPUT UTILIZZANDO GLI STESSI DATI D'INPUT,SI DICE CHE E' INDETERMINATO.L'idea generale della programmazione distribuita è quella di suddividere il lavoro di un algoritmo in pià subalgoritmi.Questi possono essere eseguiti in modo relativamente indipendente:ognuno è implementato in una piccola sequenza ed è assegnato alla propria AUC quando è eseguito nel SO
• Reti di OS
--> network La computazione distribuita è dipendente dal network in cui i computer scambiano informazioni.Il livello del network e quello adibito al trasporto ed è implementato nel SO.I principali protocolli di trasporto sono l''UDP e il TCP.TCP:Abilita le applicazioni a scambiare informazioni su un doppio canale di connessione.E' ispirato al modello della chiamata telefonica.Un chiamante stabilisce una connessione con un ricevitore.Quando la connessione è stata stabilita i frammenti di onversazione possono essere trasmessi attraverso il circuito così chei byte sono trasmessi tramite lo straeam.E' un protocollo affidabile.Utilizzato quando non si vogilono perdite di dati,come nelle transizioni finanziarie.
-UDP:trasmette/riceve datagrammi(blocchi di informazioni).Segue il modello del telegramma nel quale le informazioni vengono trasmesse il blocco in una sola volta.Non è affidabile,non si ha la certezza che i dati giungano a destinazione.Usato ad esempio per lo scambio di file ad alta performance (Es.scambio files video).
• Il modello ISO\OSI (Cosa fa?A che serve?Come funziona?)
Standard definito nel 1978 dall'ISO ,stabilendo una pila di protocolli a 7 livelli,attraverso i quali viene ridotta la complessità implementativa di un sistema di comunicazione per il networking.
Ogni layer racchiude uno o più aspetti tra di loro corelati.Vanno dall'asapetto fisico fino al livello applicativo.
Il passaggio da fisico ad applicativo non è immediato ma avviene gradatamente passando di livello in livello ed ad ogni livello viene aggiunta nuova informazione utile al livello inferiore e per ricosturire il messaggio iniziale.
LIVELLI:
-fisico: livello più basso.Definisce quali byte stanno per essere trasmessi alle altre macchine.Deve decidere come passare i dati al NIC.il protocollo ETHERNET è quello utilizzato.

-data link:prima organizzazione dei dati.Viene stabilito l'indirizzo MAC, viene anche fatto un controllo sui pacchetti e sulla loro integrità, evitando cosi errori di trasferimento nel livello superiore.
-network:Avviene l'indirizzamento logico.Consente di trasferire dati tra le macchine
-transport:invio dati.Converte dei bytes in pacchetti(Vedere TCP/UDP)
-session:connessione logica e sicurezza.Provvede alla sincronizzazione e allos cheduling
-presentation: avviene la codifica(es. Da ASCII a EBCDC)
-application:interfaccia che comunica con l'utente.
• Vantaggi di un protocollo
Il modello ISO/OSI comporta i seguenti vantaggi (derivati dalla suddivisione in livelli) :
-riduce la complessità , grazie alla divisione in livelli stessa, poi
-standardizza le interfacce o i componenti,
-facilita la creazione dei componenti, quindi sia software che hardware,
-assicura l'interoperabilità , quindi consente una gestione indipendente dal tipo di piattaforma (sia hw che sw) e infine
-velocizza lo sviluppo perchè permette l'implementazione di ogni livello indipendentemente da un altro.
• Standardizzazione di un protocollo
Per garantire un corretto interfacciamento,ad esempio la IEEE 802.11 è la standardizzazione di un protocollo wireless che permette a tutti i ricettori e trasmettitori di inviare un segnale comprensibile a tutti.
In dettaglio, l'architettura ISO/OSI è un framework generale nel quale vengono specificati standard più dettagliati per facilitare la comunicazione comune.
• I principi di abbellimento?
• Virtualizzazione della memoria
La virtualizzazione nella memoria consiste nell'utilizzo della memoria di un disco fisso come unità ram nel caso essa si riempia, così da trasformare la memoria secondaria in memoria primaria, perdendo però in performance (a causa di una traduzione dell'indirizzo logico in fisico, controlli che l'indirizzo fisico che si sta cercando esista,carico della memoria da un indirizzo fisico sulla cpu).
Lezione 6+7+8
• Il perchè della Computazione Distribuita
-è possiblie eseguire programmi in minr tempo perché più pc lavorano sullo stesso problema contemporaneamente
-può incorporare computer con funzioni speciali,migliorando l'efficienza

• Le difficoltà della Comp. Distribuita

-definire i subalgoritmi che possono eseguire relativamente in modo indipendente dagli altri riuscendo però a contribuore alla soluzione dell'algoritm generale.
-assicurate che.nei pochi casi in cui i subalgoritmi interagiscono tra di loro,essi rispettino le asequenzialità definita nell'algoritmo.

• Il concetto di trasporto-->livello
il trasporto
fornisce meccanismo END-TO-END per la trasmissione delle informazioni da una computazione sequenziale ad un'altra.Questa struttura viene chiamata peer to peer.
Il programmatore non ha accesso all'implementazione di questo livello,ma può scegliere se lavorare in TCP o in UDP.
-Address space:si estende oltre l'indirizzo internet e la comunicazione avviene referenziata da PORTE specifiche situate su un HOST remoto che a sua volta si appoggia su un network remoto.Le porte sono risorse del SO;un AUC può ottenere il permesso di usare una particolare porta ,occupandola permanentemente.Il network identifica mittente e ricevente in termini di coppie NET-->HOST
• Programma il livello di trasporto
Programmazione delle socket in tcp

-protocollo di connessione:doppio canale per scambio byte.
-L'interfaccia permette al programmatore di leggere/Scrivere sul network
-il byte stream è mappato in una serie di pacchetti
1)consegna assicurata
2)ogni pacchetto viene riconosciuto
3)due effettivi pacchetti per strasmissione
-può parire/chiudere una connessione prima dell'uso:
1)il client contatta il server
-il processo server è il primo a partire
-il server deve prima creare una porta per accogliere il client
2)il client contatta il server
-tramite la creazione di una socket TCP
-quando il client crea la socket,stabilisce la connessione col server TCP specificanto l'IP ADDRESS e numero di porta del server
3)Quando il server viene contattato
-crea una nuova socket per comunicare col client.Il server può comunicare con più client.

• Le Socket
-BSD: socket di sistemi distribuiti.
è una struttura del SO che può essere associata dinamicamente ad una porta.E' progettata così che una computazione sequenziale possa configurarla affiche si possa connettere alla porta e quindi scambiare informazioni.
In TCP
Trasmissione byte I/O:abilita una computazione sequenziale per scrivere una collezione arbitraria di byte sullo stream e la lettura da parte di un'altra sequenza di questa collezione

• Che cos’è un COROUTINES?
È un blocco di codice scritto per eseguire un subalgoritmo e per condividere esplicitamente il processore con altre coroutines in modo da poter collaborare.
Differisce da un'ordinaria procedura o funzione.Mantiene lo stato interno usando uno statico set di strutture dati.Quando ha finito l'inizializzazione si autoblocca fino a che qualche altro codice non la risveglia.

• La MSF – Macchine a stati finiti
L' automa a stati finiti è un modello di calcolo semplice rappresentabile come un piccolo dispositivo, che mediante una testina legge una stringa di input su un nastro e la elabora, facendo uso di un meccanismo molto semplice di calcolo e di una memoria limitata. L'esame della stringa avviene un carattere alla volta attraverso precisi passi computazionali che comportano l'avanzamento della testina. In sostanza un ASF è un caso particolare di macchina di Turing, utilizzato per l'elaborazione di quei linguaggi che nelle Grammatiche di Chomsky sono definiti di Tipo 3 o Regolari. Distinguiamo due tipi di automi a stati finiti: gli automi a stati finiti deterministici (ASFD) e gli automi a stati finiti non deterministici ASFND.
• OSIX e POSIX
Posix è un progetto che definisce gli standard IEEE;grazie ad esso c'è la possibilità di creare una virtual machine standardizzata per tutti i sistemi opertaivi.
Osix se lo è inventato il prof
• La gestione dei Devices in un OS
Le periferiche hanno un elemento attivo chiamato “controller” che è un mecanismo che interagisce con il resto dell'elettronica(siamo a livello HW).
La parte del SO che comunica con il controller è il device driver della periferica,cioè quello che pilota la periferica e sa come essa è fatta. Permette di trattare tutte le periferiche alla stessa maniera in quanto le operazioni che compie per ognuna di loro sono le stesse: open(),close(),read(),write().

• Il Polling e l’interrupt nella gestione dei Devices
Polling
Tutte le periferiche hanno un bit settato a 0 per done e a 1 per busy.L'idea è cercare di utilizzare la cpu anche mentre le periferiche lavorano.Per sapere quando esse hanno finito la cpu interroga ogni device 
interrupt
Sono le periferiche a dire alla cpu che hanno finito.E' un meccanismo proprio dei device.
L'INTERRUPT CONTROLLER è il sensore che avverte la cpu se c'è qualche interruzione.Ci sono più linee di interrupt così che se più periferiche hanno terminato la cpu capisce chi ha avvertito.La cpu si blocca e gestisce l'interruzione(interrupt handler)e poi torna a fare quello che stava facendo.
• L’Overlapping

Nel overlapping 2 o più processori lavorano sui rispettivi processi con una sovrapposizione delle operazioni nel tempo, dunque abbiamo la possibilità di processare 2 o più istruzioni nello stesso istante.
Nella Programmazione Concorrenziale le istruzioni che vanno eseguite nello stesso momento sono incluse tra le operazioni COBEGIN e COEND.
Per esempio consideriamo il calcolo di una delle due radici di un'equazione di grado secondo; possiamo in questo caso creare o inizializzare più di una variabile alla volta.
Algoritmo:
cobegin
T1:= -b; T2:=b*b; T3:=4*a; T7:=2*a
coend
//etc etc

In questo caso T1,T2,T3 e T7 sono state inizializzate nello stesso istante, tutto ciò amplifica le prestazioni ma può risultare proibitivo da un punto di vista economico.
• Il File System
E' l'organizzazione che il sistema da' ai dati presenti sul supporto di memorizzazione.
-file system fisico:dove metto i byte sulla periferica
-file sistem logico:come distribuisco i files nella directory

Lezione 9

• Il modello delle COROUNTINES

• Il concetto di VAM
Vulnerability Assessment and Mitigation è un processo dedicato alla test sui sistemi di sicurezza e a trovarne le falle. Controlla le infrastrutture TCP/IP
• La Call e la Write
• Implementare una VAM su una macchina fisica
??
• Il meccanismo delle System Call
• Le AUC – Abstract Computation Unit
L'auc è una macchina astratta ,utilizzata per lo svolgimento di processi in contemporanea (almeno in apparenza). Le auc vengono create in base al numero di processi da eseguire,ed il compito di gestirle è del sistema operativo che controlla il modo in cui vengono utilizzate le risorse destinate alle auc.
• Il legame tra COROUNTINES+AUC
• Il Kernel
Il kernel(nucleo) è il centro del sistema operativo, ha il compito di arbitrare l’interfacciamento tra i processi e l’hardware gestendone anche i tempi e la priorità dei processi stessi.
Il kernel ha il compito di creare una astrazione dell’hardware in maniera tale da rendere allo sviluppatore un ambiente di sviluppo pulito.
• Sincronizzare le AUC
Un sistema distribuito è composto da molti computer connessi in rete, una computazione distribuita può essere creata definendo una collezione di computazioni sequenziali eseguite nelle auc che coordinano i loro sforzi scambiando informzioni.La coordinazione può essere raggiunta attraverso sia il contenuto dell'informazione sia il tempo nel quale è scambiata(la sincronizazione è un aspetto della coordinazione). La regola della computazione sequenziale implica che la computazione sia determinata nel senso che ogni esecuzione del programma(con gli stessi dati di input) produce gli stessi risultati di output se invece esecuzioni differenti della computazione producono differenti output,sempre con gli stessi input, la computazione viene detta non determinata.
• Funzioni linkate dinamicamente
• La gestione dei driver
• Time Sharing e Space Sharing



Mancano ancora delle domande da rispondere, ma per oggi passo :D almeno per ora.

06-04-2009 19:09
Click Here to See the Profile for Youngz Click here to Send Youngz a Private Message Find more posts by Youngz Add Youngz to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 19:25.    Post New Thread    Post A Reply
Pages (13): « First ... « 2 3 4 5 [6] 7 8 9 10 » ... Last »   Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.055 seconds (72.89% PHP - 27.11% MySQL) con 26 query.