![]() |
Pages (2): [1] 2 » Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi e distribuiti (http://www.dsy.it/forum/forumdisplay.php?forumid=270)
-- 1° Compitino SOD! (http://www.dsy.it/forum/showthread.php?threadid=38098)
1° Compitino SOD!
Ciao a tutti, l'8 Aprile ci sarà il primo compitino di SOD.
Qui l'avviso.
http://www.ccdinf.unimi.it/it/avvisi/6391.html
Ciao!

__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?
auguri!
mah.. auguri veramente!! più che gli auguri ViPah ci dovresti fare un in bocca al lupo xkè la vedo proprio drammatica...
scusate continuo a scrivere qui senza aprire un nuovo topic...
ma da qualche parte ci sono i compitini svolti negli anni precedenti dall'altro professore??giusto per farmi un'idea.
thanks
![]()
A proposito, qualcuno riuscirebbe a dare i capitoli del libro?
Grassie.
__________________
Kantina27 - Punk Rock
MySpace Profile
Libro?
Compitini vecchi?
Per darvi un itdea di come stiamo messi uso questa faccina--> 
Scherzi a parte.![]()
Trovate le info sul sito del Prof: Boccignone.
http://homes.dsi.unimi.it/~boccigno...bpage/Home.html
Li ci sono le Slide del corso di quest'anno con il nuovo Prof. e i riferimenti che da di volta in volta, per il resto un vero ordine dal libro non lo stà seguendo anzi non stà seguendo proprio il libro, più che altro è da usare come supporto perchè credo, per quanto mi riguarda, che molto di questo esame lo si imparerà dal Web stesso, sono un sacco i riferimenti che il Prof. tira in ballo a lezione.
E comunque a questo proposito ha messo a disposizione delle altre risorse sul sito.
Perciò per chi cercasse dei vecchi compitini\esami degli anni passati la risposta è: "n'cè stanno..!
"
In quanto il Prof. è cambiato e il nuovo Prof. è la prima volta che tiene il corso di SOD in Com. Dig. pertanto non esiste del materiale precedente di riferimento.
A questo proposito, proporrei, come già gli avevo chiesto a lezione se facesse prima dell'esame magari una sorta di simulazione\anteprima chimatela come volete, insomma qualcosa che ci possa dare idea di che cosa ci potremmo trovare all'esame, perchè quando gliel'ho chiesto io mi ha detto che non crede che ci sia il tempo per farlo, anche se credo che a meno 3 lezioni dal compitino spenderne una ma anche metà lezione per darci un idea non dovrebbe costarlgi molto!
Perciò che ne dite di contattarlo tutti, magari apriamo un topic non sò troviamo un modo e chiediamo a "vox populi" di fare stà benedetta simulazione?
__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?
e si Wiittorio.. io ci sto ci sto.. è l'unica cosa che possiamo fare se vogliamo sperare di passare il compitino..
io ancora devo finire di tradurmi tutte le sue slide (e ti dico che già finire qsto passo non è facile...)
"vox populi" fatevi avanti
![]()
ah.. la smile + adeguata x la mia situazione è qsta: 


ciau
e grazie mille
altra cosa che proporrei... chi è disposto a tradurre pezzetto per pezzetto tutte le slide di Boccy?? così ci mettiamo d'accordo, ognuno fa un pezzo e unendoli abbiamo tutte le slide con il 90% di fatica in meno ![]()
alla Wiittorio: collabboration is good!
ahahha
Originally posted by kimin@
e si Wiittorio.. io ci sto ci sto.. è l'unica cosa che possiamo fare se vogliamo sperare di passare il compitino..
io ancora devo finire di tradurmi tutte le sue slide (e ti dico che già finire qsto passo non è facile...)
"vox populi" fatevi avanti![]()
ah.. la smile + adeguata x la mia situazione è qsta:
ciaue grazie mille
altra cosa che proporrei... chi è disposto a tradurre pezzetto per pezzetto tutte le slide di Boccy?? così ci mettiamo d'accordo, ognuno fa un pezzo e unendoli abbiamo tutte le slide con il 90% di fatica in meno
alla Wiittorio: collabboration is good!ahahha
, è un ottima idea!Altri due colleghi di Com. Dig. mi hanno detto che anche loro hanno avuto questa idea e che avevano tradotto parte delle slide, magari mi ci metto in contatto e chiedo se le vogliono mettere in condivisione!E vediamo a che percentuale di slide tradotte stiamo!;-)
!__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?
ci sto, giusto per avere un idea sulla modalità, risposta multipla domande aperte, esercizi, risposte casuali..... ![]()
![]()
![]()
![]()
![]()
![]()
viPah risposte casuali.. quella è l'unica cosa certa del compitino per ora.. ahahhaha (me la prendo a ridere ke è meglio... ) 
Wiittorio io sono sempre davanti alle macchinette ma anzichè comprare caffè cerco la speranza di passare ai compitini dentro le macchinette
![]()
poi... non so chi sei come faccio a farmi vedere??xD heeeeeeeeeeeeelp
intanto traduco wa.. ![]()
anche io ci sto..sia x chiedere della simulazione che x la traduzione collettiva!
fatemi sapere!!!
con l'altro professore i compitini erano a risposta multipla piu' 2 o 3 esercizi (rispettivamente scheduling per il primo e file system pr il secondo )
Delle modalità di quest'anno ho capito solo che ci sarà un piccolo esercizio in c.
Se invece può esservi utile ci sono le slide del profe dell'anno scorso in italiano..on seguiranno l'ordine del Boccy ma alla fine la materia è sempre la stessa! (almeno spero)
ok grazie mille LiJay per tutti i suggerimenti sul compitino ![]()
x quanto riguarda Dia io sto iniziando con le prime 4 dispense proprio quelle in cui lui ha scritte "Dispense". fammi sapere anche tu ![]()
Secondo me sn più semplici le slides di Boccignone, nonostante siano in inglese..io le sto traducendo e mi trovo decisamente meglio: sarà anche dovuto al fatto che lui è molto chiaro quando spiega e sopratutto moooooooooolto più pratico..
Se serve una mano per la traduzione fatemi sapere che ho anche un aiuto in casa da una laureata in lingue ![]()
__________________
La notte apparteneva a me e ai miei soma e a tutti gli altri moschetti.
che Paola sia benedetta e santicata...
![]()
aiutaci tutti!!! siamo nella mmmmmmmm**** 


Come vi sentite dopo la lezione di oggi?
Non sò da che parte iniziare prima...
Voi come vi state muovendo...non è che ruba troppo tempo tradurre le slide?
Magari facciamo una lista degli argomenti trattati fin'ora, in base agli appunti che abbiamo?
Bho...
__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?
io quoto il consiglio di wittorio, l'unico problema è che oggi, per l'ennesima volta, non ho capito niente...
io per adesso ho dato una lettura veloce ai vari tipi di OS, ho rivisto nei dettagli l'architettura di Von Neumann ed ho cercato qualcosa sulle ""interruzioni"" ..
se c'è qualcuno che ha preso appunti e può sparare giu una lista degli argomenti, anche velocemente, farebbe un grande favore..
ciao vittorio.. io sinceramente non mi sento xD non so che fare proprio e per adesso ho iniziato con le slide (quelle in cui lui ha scritto dispense) che sono un pò più ampie, a tradurre con babel fish, a leggere leggere e aggiustare là dove babel fish fa cilecca.. perchè col fatto che traduce parola per parola frasi serie diventano incomprensibili..
è certo che tradurre porta via tantissimo tempo, ma in inglese non c'è speranza che riesca a impararmele..quindi devo fare per forza così!
fammi sapere ![]()
anzi fatemi sapere tutti come ci dobbiamo organizzare????
scusate ma leggo dal suo sito che la prove dell'8 è riservata a chi segue il corso...ma prende le presenze?elenchi o cose varie?ci si iscrive da sifa?
thx!
__________________
Nascerà qui, al ristorante "L'Orologio",ritrovo di artisti e sarà per sempre una squadra di grande talento.
Questa notte splendida darà i colori al nostro stemma: il Nero e l'Azzurro sullo sfondo d'oro delle stelle.
Si chiamerà Internazionale,perchè noi siamo fratelli del mondo.
(Milano,1908)
nooo, non prende le presenze, ma lunedì ha fatto girare un foglio in modo tale da mettere i nomi di chi più o meno viene sempre a lezione...
Beh se permettete io la penso così: pure io ho iniziato a tradurre le slide ma secondo me è una cosa inutile ( tranne se si è di madrelingua inglese) perchè sono troppe (senza contare le dispense) e il tempo stringe...
sostengo a pieni voti la proposta di wittorio ( cumpà terrone!!
) di fare una lista degli argomenti trattati a lezione in modo da concentrare lo studio solo su quelle cose, con tanto spirito di collabbbborazione...
Se nò.. simmu nguaiat'! ( lett. siamo nella m*****)
Lista!
Lista!
Lista!
__________________
Ma che film la vita tutta una tirata storia infinita a ritmo serrato da stare senza fiato.
Ma che film la vita tutta una sorpresa attore, spettatore tra gioia e dolore tra il buio ed il colore.
anche secondo me tradurre tutto è impossibile..
Ciao a tutti!
Io la lista con gli argomenti da trattare l'ho iniziata oggi stesso a lezione, domani come rientro da IACS la metto su un file di word e la incollo qua, per il resto direi che ognuno quello che riesce a mettere qui nel suo piccolo è ben gradito che se ci va in pappà stò benedetto compitino nel bene e nel male avremo gettato le basi per il futuro compitone!
Ah per chi non era presente alle ultime due lezioni può iscriversi tramite SIFA, io oltre che firmare due volte i fogli mi sono iscritto anche via SIFA non si sà mai, fatelo anche voi sempre meglio!
Ciao belli, notte!

__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?
Scusatemi, ma gli orari del compitino sono in funzione del congnome? Quindi da H-Z alle ore 17:30 in Aula G8 in Comelico?
Grazie dell'aiuto!
Originally posted by Wiittorio
Ah per chi non era presente alle ultime due lezioni può iscriversi tramite SIFA, il oltra che firmare due volte i fogli mi iscritto anche non si sà mai, fatelo anche voi sempre meglio!
Originally posted by TwiggyAsh
Scusatemi, ma gli orari del compitino sono in funzione del congnome? Quindi da H-Z alle ore 17:30 in Aula G8 in Comelico?
Grazie dell'aiuto!
Originally posted by Fedilla
eh? xD
__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?
wiittorio aspettiamo la tua lista, pendiamo tutti dalle tue labbra ( e dita )



![]()
provo anche io a buttare una lista ma non penso che uscirà niente di buono, appunti presi troppo a casaccio 
Originally posted by Fedilla
Esatto! I compitini vanno fatti con il proprio turno di appartenenza (anche se magari le elzioni le hai seguite con l'altro turno ma tanto va in parallelo perciò non c'è problema)
Scusatemi ma ho un bel po' di confusione in testa...
- Sul sito del prof ( http://homes.dsi.unimi.it/~boccigno...ge/Courses.html ) leggo l'avviso che la prova dell'8 aprile è riservata a chi ha frequentato il corso.. quindi le firme servivano a questo??
- Ieri non ero presente a lezione ( la seconda lezione per quelli del primo turno ) ha per caso detto qualcosa per il compitino? come lo farà? o cose simili ??
__________________
Skype: lely-86
ragazzi allora c'è qualcosa di nuovo per il compitino dell'8?!?!?!'appunti,argomenti...bho?!?!sarà un disastro....
Originally posted by ArtificialGem
No il prof ha detto che quelli del turno H-Z che hanno seguito le lezioni del turno A-G possono fare l'esame nell'orario del turno A-G perchè tanto l'aula è grande.
Per quelli che seguono con il secondo turno non so cos'abbia deciso.
Esatto i ragazzi del gruppo h-z sosteranno il compito l'8 cn quelli del corso a-g;
riguardo a chi lo possa frequentare il prof credo sia stato chiaro sul suo sito;
infine se si è frequentanti ma il malocchio l'anciato a tt dall'albertina ad inizio anno vi perseguita xD e non avete seguito le ultime lezioni e d conseguenza non siete segnati sui fogli fatti girare penso che ci sia da allarmarsi solo in caso non ci si sia iscritti col sifa in quanto se dovesse magari fare un appello da questi famosi fogli ci si possa giustificare in qualche modo...
Aspettiamo tutti la venerabile lista wiiittorio asd xD...
preciso la prima riga gli h-z che frequentano il corso a-g ovviamente...non vorrei creare ambiguità xD
Nonstante l'avviso sul sito del prof, qunati non frequentanti pensano di provare a partecipare al compitino?
Giusto per sapere quanti siamo e se il prof. avra' pieta' di noi... : )
The Wiittorio's Programm!
Ciao a tutti scusate il ritardo riesco a postare solo adesso una lista dei potenziali argomenti da fare per il compitino di SOD.
Solo un premessa quella che vedete di sotto è solo una “Personallissima lista” degli argomenti che penso possa essere utile studiare per questo primo compitino.
Stilata sulla base degli appunti presi a lezione, appunti che si basano su quelle parole che più ricorrono durante le spiegazioni del Boccy, a proposito chi ha detto sensOOOOri
?
Perciò non consideratelo il programma del corso di SOD perché non lo è. Consideratelo il mio programma, e considerate che devo ancora studiarmelo…. 
Eccolo qui, spero possa essere utile anche per voi, a nel caso aggiungete pure quegli argomenti che reputate di utilità, ciao belli;-)!
Lezione 1+2
• Cos’è un Os?
• Come funzione, da cosa è costituito.
• OS- Distribuito
• Gli OS nelle reti
• Il linguaggio macchina
• Il modello di Von Neumman
• I RISC Processor
• I MIPS Processor
• I CISC Processor
• Le modalità di indirizzamento della memoria
• OS - Single Thread
• OS – Multi Thread
• Il Polling e L’Interrupt
• I sistemi dedicati – sistemi Embedded
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?
• Linguaggio ad alto o basso livello?
• I puntatori in C
• Scopo di un puntatore
• I tipi di dati in C
• Le funzioni
• Struttura di un funzione
• Puntatore a funzione
Lezione 5
• Computazione sequenziale e distribuita
• Reti di OS
• I protocolli di rete
• Il modello ISO\OSI (Cosa fa?A che serve?Come funziona?-.-)
• Vantaggi di un protocollo
• Standardizzazione di un protocollo
• I principi di abbellimento
• Virtualizzazione della memoria
Lezione 6+7+8
• Il perchè della Computazione Distribuita
• Le difficoltà della Comp. Distribuita
• Il concetto di trasporto
• Programma il livello di trasporto
• Le Socket
• Che cos’è un COROUNTINES?
• 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
• Il Polling e l’interrupt nella gestione dei Devices
• L’Overlapping
• Il File System
Lezione 9
• Il modello delle COROUNTINES
• Il concetto di VAM
• La Call e la Write
• Implementare una VAM su una macchina fisica
• Il meccanismo delle System Call
• Le AUC – Abstract Computation Unit
• Il legame tra COROUNTINES+AUC
• Il Kernell
• Sincronizzare le AUC
• Funzioni linkate dinamicamente
• La gestione dei driver
• Time Sharing e Space Sharing
Per il resto tanto di questo
a tutti...!!
E ora vediamo di iniziare...

__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?



Wow sono messo proprio male 
Wiittorio la tua lista mi pare proprio fatta bene, ottimo lavoro!
Ma oggi che ha detto il prof riguardo il compitino??
Ah una cosa, io sono h-z, a che ora è il compito e dov'è il luogo??
Oggi non sò potuto venire...
Originally posted by Emily89
![]()
!

__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?
Originally posted by b4cco
Wow sono messo proprio male
Wiittorio la tua lista mi pare proprio fatta bene, ottimo lavoro!
Ma oggi che ha detto il prof riguardo il compitino??
Ah una cosa, io sono h-z, a che ora è il compito e dov'è il luogo??
Oggi non sò potuto venire...
__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?
ciaoo grazie per la lista, e cmq piccola segnalazione guarda ke il prof ha detto che le cose della 10° lezione non le metterà 
riguarderanno il secondo compitino..
qualche anima buona che mette on line le definizioni della lista di vittorio?
Originally posted by Wiittorio
Grassie grassie, e io mi sa che di SOD saprò solo quello!
Non oggi non c'è SOD è solo il Lunedì e il Mercoledì.
Ah il prox Lunedì se non sbaglio non c'è lezione, mi dicevano che l'aveva detto il prof. a lezione scorsa.
Originally posted by b4cco
No ma io sono H-Z, il venerdì ce l'abbiamo lezione purtroppo...
Ehm.. mò lo ridico va![]()
C'è qualcuno del corso H-Z che sa a che ora è il compitino e dove?
Ma soprattutto, quante ore ci dà?
(io alle 20.30 devo esse in centrale per partire)
__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?
Se qualcuno mette online le definizioni gli offro la cena 


Per entrambi i corsi l'esame è nell'orario di lezione però non so quanto tempo darà.
Originally posted by Wiittorio
Ah il prox Lunedì se non sbaglio non c'è lezione, mi dicevano che l'aveva detto il prof. a lezione scorsa.
__________________
Skype: lely-86
Originally posted by lely
Quindi lunedì 6 non c'è lezione? qualcuno può confermare...
"Si avvisa gli studenti che il primo compitino di Sistemi Operativi e Distribuiti si terrà il giorno 08/04/2009 alle ore 13:30 in Aula V1 e alle ore 17:30 in Aula G8."
Non lo sapevo solo io ![]()
Comunque datemi le vostre prime impressioni (tragiche) in vista di mercoledì...
Come state messi??
riprenderei la cara e vecchia frase.... in aaaltoo maareee =D
ehehehe ma speriamo che si riesca un po' a... ehm... sbircia.... ehm... ce siamo capiti no? ![]()
eeeh bhò...io mi sono ritirato ieri dallo studio...pausa di rilessione asd =D
Io mi sò svegliato un'ora fa ![]()
ma il sabato pomeriggio/sera è sacro sisi! xD
nex che mette qualche definizione?
oggi non credo proprio lol =D
SOD = Saranno Orrendi Dolori

Qualcuno sa come far andare gli esercizi FirstClient e FirstServer che ha messo sul sito?
No
![]()
![]()
![]()
![]()
![]()
![]()
sono l' unico o anche qualcun altro ha l'impressione che molte cose delle slide parlino di tutto ma sopratutto di niente..?! xD
ma guarda le dispense...
Ciao belli!
Tornato adesso dal lavoro!
Sò muorto 
Voi avete fatto gli bravi studentelli nel week end?
Io...no...!
![]()
Domani parte la maratona tipo "30 ora per la vita" io farò "30 ora per SOD" e poi se va bene altre 30 per...vabbè...ci siamo capiti...
Ma anche se va male...eh!
![]()

__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?
Sto provando a rispondere alle domande, però non ho sbatti di guardare sul libro/slide visto che in inglese son una capra.
Le modalità di indirizzamento della memoria sono quelle
dirette:
Diretto con Registro
Immediato
Assoluto
indirette:
indiretto con registro
indiretto con spiazzamento
relativo
predecrementante
postincrementante
Altra cosa, io sto rispondendo a tutte le domande, se qualcuno ha già risposto a tutte può postare pls *.*
Qui son le mie prime risposte:
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
• OS - Single Thread
• OS – Multi Thread
• 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 è una istruzione della 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.
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
Non ho utilizzato il libro, ho preso tutto da mie conoscenze e wikipedia
se trovate errori correggetemeli e contribuite a completare tutte le definizioni.
L'interrupt non è un istruzione, ma è un segnale inviato alla cpu che ferma istantaneamente il processo in corso, dando la priorità di risorse ai casi che tu hai citato.
Aggiungo anche che l'interrupt viene utilizzato anche in caso di necessità del OS stesso, per evitare di comprometterne la stabilità e il corretto funzionamento.
Grande...
__________________
Ma che film la vita tutta una tirata storia infinita a ritmo serrato da stare senza fiato.
Ma che film la vita tutta una sorpresa attore, spettatore tra gioia e dolore tra il buio ed il colore.
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
-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
( Credo sempre tcp/udp ma non ne ho la certezza)
• Standardizzazione di un protocollo
• I principi di abbellimento
• Virtualizzazione della memoria
ma diavolo,sto guardando un po' le domande e si parla sempre delle solite cose..
in ogni caso questo è quello che ho io su questa lezione,correggetemi se sbaglio
Grandi, ottimo lavoro!
Si comunque molte cose sono ridondanti, vengono riprese più volte...me ne rendo conto pure io, ma come ripeto non ho fatto altro che segnarmi quelle che reputavo le parole o gli argomenti chiave di volta in volta a lezione!
Ma questa ridondanza stavo notando che è presente pure nelle slide!
__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?
Aggiungerei (essenziale) che nel datalink, viene fatto un controllo sui pacchetti e sulla loro integrità, evitando cosi errori di trasferimento nel livello superiore.
Ragazzi siete grandissimi!
Bravi bravi bravi..davvero!
__________________
La notte apparteneva a me e ai miei soma e a tutti gli altri moschetti.
Ciao a tutti, pubblico una mail con relativa risposta del prof riguardo al compitino (purtroppo niente di particolarmente interessante, ma il è troppo simpatico però il Bocci per non pubblicarla!).
Buongiorno,
> Buongiorno prof.re, volevo farle una domanda riguardante il primo
> compitino del corso di "Sistemi operativi e distribuiti". Volevo chiederle
> se poteva pubblicare gli argomenti su cui verterà il sudetto (non in
> dettaglio ovviamente) e fino a che punto del programma che credo di
> essermi perso le informazioni dette a lezione.
Argomento del compito sarà tutto ciò che è stato fatto a lezione, ad
esclusione dell'ultima lezione sui sistemi multi-threaded (trattata
peraltro solo nell'edizione A-H)
>Chiederei anche se ha già
> pensato in che modo impostarlo (domande aperte, chiuse, quante domande,
> modalità di calcolo del punteggio, ecc) ma forse chiedo troppo.
>
sì chiede troppo
...anche perchè non ci ho ancora pensato. L'unica cosa
che le posso dire è che in generale nei compiti utilizzo una valutazione
relativa all'andamento medio della classe: quindi chi consegue un 30 o un
OTTIMO non è un genio ma semplicemente uno che è andato meglio di tutti
gli altri. Questo criterio, che è utilizzato in larga parte del mondo
anglosassone serve a garantire gli studenti e a commisurare il risultato
del singolo a risultato della classe: per essere chiari se una prova non
viene superata da nessuno è più probabile che la prova fosse troppo
difficile oppure che io abbia fatto pessime lezioni, piuttosto che la
classe sia composta da una totalità di ignoranti.
mi scuso se non le ho risposto esaustivamente, ma spero cmq di esserle
stato utile
Cordiali saluti e buon studio ovviamente!
gb
Buono studio a tutti!
P.S.: Ottimo lavoro per le domande-risposte, complimenti a chi di dovere
Byez
in sostanza se c sega tutti viene annullato?? xDD
mi piace come ragiona questo uomo...anche se due giorni prima dell'esame non sa neanche lui come farlo XD
bene ragazzi
quindi consegnamo tutti in bianco e ci salviamo a vicenda

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 ![]()
![]()
ma ora che sono sana e razionale prendetemi in considerazione 
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 ![]()
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![]()
ma che son i principi di abbellimento? io sto completando quello che non hai fatto, a breve posterò un sunto di tutto.
buh mica li ho trovati sti principi...magari stanno all'estetista...(battutaccia)
Originally posted by LiJay
buh mica li ho trovati sti principi...magari stanno all'estetista...(battutaccia)
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.
Ho quasi finito, ho completato quello che ti mancava tranne i principi di abbellimento, manca solo la 9
Pota
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 ???
![]()
Grazie in anticipo della risposta ...
E grazie a chi ha messo le domande con le risposte ![]()
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.
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 ???
Grazie in anticipo della risposta ...
E grazie a chi ha messo le domande con le risposte![]()
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).
• 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.
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
Questa la chiamo
La manna dal cielo ![]()
EROE
non ci sono parole!
Bravissimi!!
Il principio di abbellimento della prima lezione lo usava per indicare la visione del sistema operativo come un insieme di algoritmi che nasconde i dettagli dell'hardware e crea un ambiente più piacevole. Non so se per la quinta lezione fosse sempre riferito a questo.
ragazzi ma voi se foste sicuri di non passare il compitino, escludendo solo la possibilità di avere domande a risposta multipla che fareste??ci andreste lo stesso a fare il compitino??
non so se è peggio avere la faccia e consegnare in bianco o precludersi una possibilità di "provare" con esito quasi certo negativo il compitino...
Originally posted by kimin@
ragazzi ma voi se foste sicuri di non passare il compitino, escludendo solo la possibilità di avere domande a risposta multipla che fareste??ci andreste lo stesso a fare il compitino??
non so se è peggio avere la faccia e consegnare in bianco o precludersi una possibilità di "provare" con esito quasi certo negativo il compitino...
la faccia.. XD grazie dia x il consiglio
e grazie a tutti per le risp ![]()
ma si kimin@ tanto quando corregge il compito mica ha li davanti la tua faccia!!!!! io ci provo!!! al massimo farò il totale!!!
più che quando lo corregge quando glielo consegno xD xD
non so nullaaaaaaa proprio.. :S
quando lo consegni non fargli vedere che è tutto bianco 
cerca di nasconderlo ahahahah
Si infatti.. lo nascondi un po' e lo consegni di fretta, non ti fai vedere ![]()
Non sai quante di quelle volte l'ho fatto!!! 
Dopo un po' ci prendi pure lo sfizio 
Youngz IDOLO!!! 
se non sai nulla, scrivi cazzate, almeno quando lo consegni il foglio è un pò pieno.
Io qualcosa so, ma tanto le cazzate le scrivo ugualmente ![]()
ke dio ce la mandi di .... xD
ma qua la gente che cuore ha a afare sti riassunti?!?!?
siete veramente degli eroi....
enjoy!
ragazzi vorrei ricordarvi che mancano ancora queste:
• I principi di abbellimento?
• Il modello delle COROUNTINES
• La Call e la Write
• Implementare una VAM su una macchina fisica
• Il meccanismo delle System Call
• Il legame tra COROUNTINES+AUC
• Funzioni linkate dinamicamente
• La gestione dei driver
• Time Sharing e Space Sharing
Io non ce la faccio più , ho passato tutto il pomeriggio con in università con un mio amico a rispondere a tutte e ora ho la testa in tilt! contribuite, creamo una wiki sod (il vecchiaccio ne sarebbe orgoglioso)
Con la sigla VAM il prof intende la Virtual Abstract Machine.
Una Virtual Abstract Machine differisce da una macchina fisica perchè inculde un gran numero di istruzioni ognuna delle quali è implementata come una procedura.
raga sono sbalordito!!!
avete fatto veramente un bel lavoro..
ora non vorrei diffondere il panico maaaaa.....e se chiede la programmazione di rete in c ? e non sto parlando di teoria...
facciamo partire il totoscommesse sull'esame?
allora, per me domande su:
ISO/OSI
compilazione/linkaggio/loader
coroutine
definizione di SO
differenze tra st/mt/mp
secondo me non va sul pesante proprio perchè è il primo.
voi che dite?
chi vince buffetto sulla guancia
Ah, non intendeva la cosa di sicurezza? E poi che senso ha dire virtual abstract machine.
In fondo abstract e virtual son piu' o meno sinonimi
io inizio a studiare esattamente ora, subito dopo una partitina a pes09 xD, gran bel lavoro i riepiloghi ![]()
principio di abbellimento: "un sistema operativo è un set di algoritmi che nasconde i dettagli dell'hardware all'utente e provvede ad una piattaforma più piacevole"
Originally posted by surfers
ma qua la gente che cuore ha a afare sti riassunti?!?!?
siete veramente degli eroi....
enjoy!



__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?
essì!!!! Grazie!!!!
giusto x sapere...qualcuno sa l'ora e il lugo del compitino di domani'?
se sei nel gruppo a-g in V1 nell'orario di lezione, appena dopo che il prof finisce l'aperitivo. ha troppo stile. Ah , ha detto di finire in fretta il compitino che se no fa tarti per l'happy hour e quindi dopo deve correre per arrivare all'atlantique
Time sharing :
Il time sharing è una modalità di utilizza da un network,dove è presente un calcolatore centrale che condivide le proprie risorse in base al tempo; cioè: molti utenti si collegano a questo calcolatore che usa tutti i tempi, anche quelli morti , per elaborare informazioni da restituite agli utenti in maniera da farle sembrare contemporanee. Questo calcolatore necessita di un sistema di controllo di tempi, i quali devono bloccare le pause di attesa di input.
Il file sharing è la base dell'attuale multitasking
Penso sia importante anche la definizione di API:
Le api son dei software che semplificano il lavoro del programmatore permettendo di dare molte cose per scontato, questi si allocano tra il sistema operativo e le applicazione e vengono chiamate qualora qualcuno voglia usufruirne. Ad esempio per la stesura di una parola bisognerebbe disegnare lo schema delle lettere (ad esempio come è fatta una H) preparare una matrice a seconda della quantità di quest'ultime, etc etc)
Le api in norma son comprese direttamente nel OS però volendo si possono aggiungere in maniera manuale.
ragazzi oggi in aula mi hanno detto che il professore ha intenziodi di mettere 2 esercizi pratici di C, non vorrei diffondere il panico, ma... =( =(
inoltre, una mattina il prof era con un gruppetto che gli aveva chiesto cosa metteva al compitino e dice che non gli ha accennato niente tranne il fatti di sti 2 esercizi.. :S
spero sia una balla!! =(
Originally posted by regularjohn
compilazione/linkaggio/loader
anche io ho sentito degli esercizi,inoltre girava voce che ci sarebbero state anche un paio di domande aperte...
ma secondo me il prof decide stasera come farlo 
ma secondo me già lo ha deciso ma dice così per non essere scortese nel non volerci dire cosa vuole mettere xD xD
riguardo a C, senza parole veramente.. spero che non lo metta perchè sinceramente non credo che un linguaggio di programmazione si possa imparare in due lezioni, e soprattutto a noi che siamo di primo... chi non ha fatto informatica è praticamente ******* :S :S
no più che altro abbiamo fatto pochissimo esercizio!
tipo: magari non c'ero ma ha mai fatto qualche esercizio (non solo vedere come funziona, proprio fatto) su socket client/server?
no l'ha solo fatto vedere sulle slide e spiegato, ma niente esercizi
mah...speriamo niente infamate
a proposito dell'architettura di von neumann secondo me ha una certa importanza conoscere il ciclo fetch/Execute... ci ho impiegato un giorno a capirlo e ora me lo sono scordataa
Io ho finito alle 9 di studiare è ho il vuoto cosmico!!
__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?
Provo a dare anche io il mio contributo,ma non prendete le mie parole per oro colato, anzi... andateci cauti ![]()
![]()
Modello delle coroutine
Le coroutine sono una classe speciale di sottoprogrammi in cui non si ha piu' un programma chiamante ed uno chiamato ma due programmi allo stesso livello che si passano il controllo l'un l'altro, quindi non c'è più la gerarchia master-slave tra chiamante e chiamato. Quando una coroutine riceve il controllo da un altro sottoprogramma viene eseguita di solito parzialmente. L'esecuzione della coroutine e' sospesa quando ritorna il controllo e in un momento successivo un'altra chiamata fa riprendere l'esecuzione dal punto in cui era stata sospesa.Si puo' notare in questo meccanismo una certa simmetria tra chiamante e chiamato. Il modello coroutine possiede solo l'istruzione RESUMUE che gestisce le chiamate e il passaggio del controllo da una coroutine ad un'altra; in ogni momento c'è una ed una sola coroutine attiva.
Space Sharing
Un gruppo di k processi (thread) correlati viene assegnato a k CPU disponibili
– In ogni istante l’insieme di CPU è staticamente partizionato in gruppi che eseguono processi tra loro correlati
– Buono per lavori batch: si conoscono le relazioni tra i processi » Shortest Job First, FIFO
Lo Space Sharing elimina l’overhead del cambio di contesto ma le CPU possono rimanere idle per molto tempo
Non considerando le relazioni tra i processi (thread) si possono avere inefficienze dovute alle comunicazioni.
Alcuni algoritmi cercano di effettuare in contemporanea loscheduling nel tempo e nello spazio tenendo in considerazione le dipendenze/relazioni tra i processi (thread)
Space Sharing
Un gruppo di k processi (thread) correlati viene assegnato a k CPU disponibili
– In ogni istante l’insieme di CPU è staticamente partizionato in gruppi che eseguono processi tra loro correlati
– Buono per lavori batch: si conoscono le relazioni tra i processi » Shortest Job First, FIFO
Lo Space Sharing elimina l’overhead del cambio di contesto ma le CPU possono rimanere idle per molto tempo
Non considerando le relazioni tra i processi (thread) si possono avere inefficienze dovute alle comunicazioni.
Alcuni algoritmi cercano di effettuare in contemporanea loscheduling nel tempo e nello spazio tenendo in considerazione le dipendenze/relazioni tra i processi (thread)
Speriamo solo che siano a crocette!
Basta, mi sono bevuto tutto dalle nove d sera, speriamo non sia complicatissimo e buona fortuna a tutti, si aspettano commenti post compito che sono sempre i migliori xDD!
Grazie ai MR riassunti lol !
stanotte nel panico mi sono messa a cercare su gooooogle materiale del Boccignone...beh ho trovato lucidi interessanti sull'architettura di von neumann e il SO in generale...
dubito ora possa servire,ma nel caso dobbiate dare l'appello (tocchiamo ferro
)ecco il link
http://nclab.diiie.unisa.it/Courses...fi_download.htm
io non ho toccato esattamente ferro, va bene comunque?![]()
io per forza di cosa devo toccare ferro ![]()
ripasso frenetico in aula studiooo ><
BUONA FORTUNA A TUTTI ![]()
se sentite qualcuno imprecare in aula....sono io <.<
un grazie a tutti quelli che hanno contribuito x i riassunti..buon compito!
Originally posted by lik2006
un grazie a tutti quelli che hanno contribuito x i riassunti..buon compito!

In bocca al lupo per quelli del secondo turno i servirà davvero!!
Fatto?? Com'è??
non c'entra granchè coi riassunti fatti...comunque tutto a domande aperte,metà compito è su c
per quanto mi riguarda, un disastro 
siamo in due allora... le prime 5 domande erano fattibili ma la metà delle cose io nn le ho mica trovate sulle slide!!! bah... speriamo sia buono xDD
beh anche se è buono resta che sono 5 domande giuste(se sono giusteXD)su tutto il resto...comunque come funziona?deve essere perforza un 18 o fa media col prossimo compitino?
cosa scioccante è stato vedere gente ritirarsi! non ho mai visto nessuno ritirarsi da un compitino!!! forse a istituzioni....
ripeto.... BAH!!!
Si ritirarsi è un cazzata da non fare, tirare almeno giù qualcosa è sempre meglio..almeno per te stesso..!![]()
Cmq la parte di domande aperte nonm era impossibile..!
__________________
Quand'è che al posto di quell'Avatar ci sarò io:-)?
Non sarà stata pure possibile ma metà compito in C credo abbia frega quasi tutti, c.v.d ci ha fucked ![]()
Dai pd che cazzo di roba era?
Esercizi in C che non stavano nè in cielo nè in terra zio maiale.
Originally posted by ViPah
Dai pd che cazzo di roba era?
Esercizi in C che non stavano nè in cielo nè in terra zio maiale.
Non è possibile chidere cosi tanti esercizi di programmazione c se è un compito di sistemi!oltretutto senza nemmeno averlo spiegato bene, e col resto del materiale in inglese... chi sa già un po di c se la cava ma chi lo deve fare da zero è penalizzato... il bocci pretende troppo da un primo anno di comunicazione digitale.
hola qualcuno di voi si ricorda qualche domanda che c'era al compitino nel dettaglio?? così visto che qsto nn l'ho passato mi esercito con le cose del primo 
Marco89 al bocci aggiungiamoci pure un bel malchiodi o un bel mereghetti che se sei del primo di comdig senza basi d info o del terzo con 8 anni d inform alle spalle se ne fott***...
ci ha powned...
ha fatto con noi un astrazione di inchiappentamento...
boccignone fa rima con?
![]()
massì andiamo easy....pensiamo a quelli che si sn ritirati e potevano consegnare almeno la media della classe si abbassava e passavamo tutti con 2 punti... XD XD skerzo ovviamente....
SODomia...
Dai, ottimismo! 
__________________
"Dicono che ogni atomo del nostro corpo una volta apparteneva ad una stella…
forse non sto partendo, forse sto tornando a casa”
_GATTACA_
non ho seguito attivamente la discussione ma ho seguito molto il thread per aiutarmi con lo studio. Ho solo un commento possibile
What The Fuck Was That Shit o_O
(in inglese proprio le sue caxxo di slide)
| All times are GMT. The time now is 06:00. | Pages (2): [1] 2 » Show all 186 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.