| |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
esame in arrivo Clicca QUI per vedere il messaggio nel forum |
lik2006 |
ciao a tutti.
ormai mancano 3 settimane all'esame.
che ne dite se postiamo tutti gli appunti presi ? |
@le85 |
Hmmm e quando sarebbe la data del secondo compitino? |
ciops |
dai ragazzi...iniziamo! |
lik2006 |
allora ragazzi il 3 c'è l'esame postiamo tutti gli appunti??? |
zeman13 |
ma le lezioni sono finite? oggi come mai non c'era lezione? |
lik2006 |
finiscono settimana prossima penso il 3 c'è il compito |
ViPah |
confermate che il compitino è il 3?:( |
djbenz |
si l'ha confermato lunedì a lezione... |
ViPah |
qualcuno ha una lista degli argomenti principali e/o le pagine di riferimento sul libro di testo? |
lik2006 |
non c'è nessuno che posta i riassunti in italiano? |
TwiggyAsh |
Ragazzi HELP!!!! : ) |
Rents |
che egoismo :D hahah...io la vedo grigia |
ViPah |
come disse l'alberti...passando su...uno...specch...:ignore::saw:
qualche anima pia che posti qualche appunto?:? |
Andrea86CD |
non so quanto possano essere utili visto che sono abbastanza all inizio XD cmq posto lo stesso
20.04.09 THREADS
Os-mantis:è un os (con architettura ridotta all’osso) con il kernel che coincide con lo schedulatore
Clock handler: gestisce gli interrupts fisici e ne ricava delle informazioni
Più auc in gestione sono indirizzate mediante una tabella vettoriale che contiene in ogni elemento tutte le info del thread/processo (stato – se sono collegate risorse –etc..)
User thread: svolgono operazioni per il sistema operativo
Ad ogni thread corrisponde una parte di memoria nello stack per consentire una separazione per i thread
Quando si crea un thread si richiede uno spazio di memoria x allocare il thread
Stack pointer: puntatore che punta al top della pila
ST: comunicatore di stato del thread per l os
Priority: priorità dell esecuzione del thread
Waiting for pointer: il thread è sospeso fino a al verificarsi di un evento al quale punta il puntatore
Next pointer: in una lista linkata punto al thread successivo
Differenza tra stack e lista dinamica: nella prima devo allocare prima lo spazio se pur virtualmente (è statica ma uso meno spazio) la seconda è dinamica però occupa + memoria
Quando inizializziamo il sistema inizializziamo tutti i campi dei threads
STATO DEI THREADS
Running: la cpu lo sta utilizzando
Spleep block: è un interruzione periodica la prima (finisce il tempo di slice), nella seconda è in attesa di un evento entrambi sono in attesa di essere spostati in ready
Ready: pronti per l esecuzione
Empty: è stato inizializzato senza valori
Thread.new: creo il thread e lo metto in ready
Thread.execute: esegue termina e toglie dallo stack il thread
Schedulatore: è un insieme di funzioni che gestisce i thread e i loro stati tramite degli algoritmi ed il dispatcher
Dispatch: funzione dello schedulatore che esegue la scelta di quale thread mandare in esecuzione (smette di funzionare quando non ci sono + thread in esecuzione)
Thread idle: è un thread che è sempre in funzione
Stato del thread: insieme dei registri associato alla computazione del thread in quel determinato momento
Computazione nel contesto del thread: quando un thread andrà sospeso momentaneamente viene salvato lo stato del thread nella stack in modo da essere richiamato dopo dalla cpu e riprendere da quel che stava facendo
Lez 13
Bit di modo: supporto architetturale che distingue tra l esecuzione di codice in modalità user o kernel
Mod kernel: tutte le operazioni della macchina sono eseguibili
Mod user: viene eseguita un operazione alla volta e per le altre c’è una transazione tra kernel e user mode
Processor Modes (MIPS):
registro di stato
registro di causa
baddvaddr,and
ecp
Kernel : serie di funzioni per la gestione del sistema (utilizzate in mod kernel), crea e gestisce i thread
Interruzione sincrona : (es. trap) eseguita a livello macchina
Interruzione asincrona: (es. chiamata i/o) eseguita a livello sw
Le eccezioni si possono dividere nei seguenti tipi:
* interrupt: richiesta spesso asincrona e di provenienza esterna al microprocessore che forza il sistema operativo a interrompere il programma in esecuzione;
* system call: chiamate di un programma ad una funzione del sistema operativo, ad esempio per eseguire una operazione su un file o su un processo.
Processo : macchina astratta che simula la macchina di VN, ha un proprio spazio di indirizzamento virtuale.
La differenza tra win e unix sono le chiamate di sistema
Process manager:schema astratto di O.S. simile a unix
Program manager: insieme di programmi che prendono in lavorazione dei processi
Fasi aricamento O.S.: carica il kernel, inizializza il process manager, esegue i thread principali
Process control block:sono degli slot che contengono le info dei processi (id,processo padre/figli, puntatori etc)
Modelli multi threading
Molti- 1 + user th posso essere mappati in un kernel th (solaris green thread,gnu portable thread)
1 – 1 un user per un kernel (win nt/xp/2000, linux, solaris)
Molti – molti permette di mappare + user in + kernel e quindi permette allo s di creare abbastanza kernel th (Windows NT/2000 con the ThreadFiber package)
2 level mode: come molti molti ma permette il confinamento di un user in un kernel
Come evitare che i thread sprechino le risorse della cpu:
*tramite la chiamata di sistema yeld() che sostituisce il th che sta cessando l esecuzione con uno in ready
*attraverso degli interrupt periodici al os in modo che lo scheduler controlli lo stato dei th
in questo link ho trovato dei pdf con delle cose riguardanti il nostro corso spiegate in italiano..se volete darci un occhiata male non vi fa :razz:
http://www.di.unipi.it/~susanna/SO_04/ |
lik2006 |
grandissimo continuate così con gli appunti! |
ArtificialGem |
Originally posted by Andrea86CD
Interruzione sincrona : (es. trap) eseguita a livello macchina
Interruzione asincrona: (es. chiamata i/o) eseguita a livello sw
Un errore che ho notato perchè nei miei appunti avevo scritto il contrario allora sono andata a controllare:
# Interruzioni hardware (segnali provenienti da dispositivi esterni) che e' sempre asincrona ,
# Interruzione software o trap (provocate dall'esecuzione di una specifica istruzione di trap, e quindi detta anche interruzione sincrona ).
# Eccezioni, cioe' interruzioni generate dall'hardware interno in caso di errori. |
ciops |
Ragazzi,
qualcuno riesce a postare almeno gli argomenti trattati a lezione? |
Paul442 |
si sarebbero utilissimi gli argomenti...almeno ce li possiamo studiare in italiano... |
ViPah |
minchia, pappa pronta sempre e comunque?
pigliati le slide e guarda gli argomenti, ci metti mezz'ora se è tanto |
Paul442 |
mi sembra che tu hai lasciato come post: "qualcuno ha una lista degli argomenti principali e/o le pagine di riferimento sul libro di testo?"
quindi mi sa che la pappa pronta piace tanto anche a te o no? |
ViPah |
se uno li avesse avuti a portata di mano sul pc è un conto.
Visto che nessuno risponde e nessuno posta niente è evidente che nessuno ha niente, continuare a chiedere non cambierà la situazione.
Mi sono arrangiata di conseguenza. |
Paul442 |
tu arrangiati pure di conseguenza ma io son liberissimo di chiedere se qualcuno può mettere gli argomenti...al max se nessuno li ha, nn avrò risposta. Per altro chiedevo perchè ho visto che per il primo compitino i riassunti e gli argomenti son stati postati proprio negli ultimissimi giorni e son stati utilissimi...è grazie a quelli che ho passato il primo compitino...quindi speravo appunto anche per questo... |
Andrea86CD |
Per gli argomenti...basta che ti guardi le slide...non ha spiegato più di quello ed ha postato il necessario per passare l esame..sempre che lo si capisca bene!!!
btw,
il prof ha riferito che metterà degli esercizi di programmazione su creazione dei processi/thread..so che per alcuni non è assolutamente un problema..ma per altri lo è eccome!!
non vorrei che mettesse anche esercizi sulla gestione del disco o condivisione della memoria.. O_O |
ciops |
secondo me un esercizio sul Round Robin lo mette,
lo metteva sempre anche......... Bellettini. |
ViPah |
esercizi sulle politiche di scheduling intendi esercizi con calcolo carico cpu ecc oppure codice? |
Rents |
io con sto caldo non riesco a studiare una sega -.- |
lik2006 |
Ragazzi facciamo un'appello a Youngz che l'altra volta ci ha postato tutte le definizioni! |
Rents |
credo c manderà un bel vaff*** e non lo biasimo...quindi tra le nomination abbiamo esercizi riguardante round robin e creazione processi quindi fork.. e secondo me c sta che scappi una trap.. bisognerebbe mandare una mail al prof |
Andrea86CD |
sì..gli mandi una mail e ti rimanda in allegato le domande XD |
ViPah |
con anche le risposte ovviamente |
Rents |
a me ha mandato l'invito per un party :D:D:D |
Andrea86CD |
ma noooooooooooooooooooooooooooo :D
ahahhahahah
andiamo al parti se ci fa passare sod ;) |
ViPah |
Sia lodata wikipedia.
Sempre sia lodata. |
lik2006 |
siamo messi malissimo!!! |
lik2006 |
quali sono gli argomenti principali secondo voi da sapere? |
Andrea86CD |
raga riuscireste a fare una cosa del genere?
riuscite a darmi una soluzione?
Scrivere un programma che prende un numero N>1 dalla riga di comando: quindi forka un figlio, il quale a sua volta forka un altro figlio, e così via, fino ad ottenere N processi in tutto.
ragazzi qualcuno sa spiegarmi bene dal punto di vista del codice le funzioni dei thread?
creazione
e
join
|
Rents |
senza sotto gli esempi delle slide del prof sarebbe davvero da pro riuscirci |
surfers |
andre ti doddiamo anche fare il compito?!?!?!?!? |
lik2006 |
una domanda: cos'è l'inode? |
ViPah |
rents fammelo con sotto gli appunti del prof se riesci... |
Andrea86CD |
ehm surfer se ce la fai sì XD
ma tanto siamo allo stesso livello...
mahuahuah
siam fucked
ridereeeeeeeee mercoledì ci sarà da ridereeeeeeeeeeee |
ViPah |
l'inode è un tipo di file system in unix. SO questo lol |
Rents |
mi disp sn in giro ad acchiappare con il prof ! non ho tempo di farlo ! asd :D
Cerca in wikipedia per Inode non è spiegato male |
ViPah |
28 ore e 6minuti al botto |
Andrea86CD |
domani il prof ce lo piazza sicuro con qualcosa di impossibile !!! |
Rents |
non so voi ma x me la parte riguardante il codice è un vuoto assoluto ! |
Andrea86CD |
vuoto assoluto no...
però sicuramente metterà qualcosa di infattibile... |
@le85 |
Ha accennato a qualcosa che molto probabilmente metterà?? ..sia a livello di codice che di teoria... |
nasty121 |
Originally posted by lik2006
una domanda: cos'è l'inode?
Dai miei appunti feat Wikipedia:
"Index-Node - E' una struttura dati che descrive un singolo oggetto del VFS (file, etc..)."
nb VFS = Virtual File System :-D |
nasty121 |
Ma quanto lavoro c'è???
Prima di poter decifrare i concetti delle lezioni d'italiano, bisogna pure tradurle?!!
Mah.. da suicidio ("dont trai et om!!!") |
Andrea86CD |
Originally posted by @le85
Ha accennato a qualcosa che molto probabilmente metterà?? ..sia a livello di codice che di teoria...
io gliel ho chiesto mentre stavamo andando in classe ed è stato molto vago..
eh vi metterò qualcosa sui processi...thread..per forza qualcosa sugli esercizi...della sierie...o studi o sei fottuto... |
ViPah |
Lo passi se:
sei dio in C++,
sculi
hai i bigliettini PRO
hai il vicino (vedi prima ipotesi)che oltre ad essere dio, comunica col pensiero
hai avuto una notte d'amore col bocci on the wall, soddisfando i suoi desideri più reconditi |
Rents |
occhio che il bocci capta i segnali telepatici con la funzione TiFottoCmq();
ribadisco zero codice asd |
ViPah |
tifottocmq ritorna 0 se è tutto ok, 1 o -1 se trova un errore e ti sgama copiare
Se ritorna valore diverso da 0 dopo richiama in automatico la funzione
copione= (NOME, COGNOME, MATRICOLA, FAMIGLIA, PARENTI DI SECONDO GRADO, PARENTI DI TERZO GRADO, MOROSO/A)
kill(copione); ** uccide tutti **
int i, numeroparenti;
for (i=0; i<numeroparenti;i++){
godi(i); ** la funzione godi è proporzionale al numero dei parentiuccisi**
}
shm_id= copione.matricola
shmat(shmid, numeroparenti, NULL); **attacca nella sua bacheca personale, la matricola e il numero di parenti uccisi**
exit(); |
Rents |
Figa poi si che la ridai nel 2012 se sei fortunato la materia :D |
Andrea86CD |
Originally posted by ViPah
tifottocmq ritorna 0 se è tutto ok, 1 o -1 se trova un errore e ti sgama copiare
Se ritorna valore diverso da 0 dopo richiama in automatico la funzione
copione= (NOME, COGNOME, MATRICOLA, FAMIGLIA, PARENTI DI SECONDO GRADO, PARENTI DI TERZO GRADO, MOROSO/A)
kill(copione); ** uccide tutti **
exit();
ahahahahahaha
ti sei scordato la
wait(null);
return(status studenti morti);
aspetta che tutti abbiano finito e poi killa tutti insieme e finisce la sessione ritornando il numero di studenti che hanno copiato, il numero di studenti che non l ha passato, ed il numero che sono morti invani senza neanche aver letto i compiti |
ViPah |
HO editato, leggete nabbi. |
Rents |
io aggiungerei anche un controllo molto comprensibile come :
if (count < 2 * NITER) printf("\n BOOM! count is [%d], should be %d\n", count, 2*NITER);
-.- |
lik2006 |
ragazzi per voi quali sono gli argomenti che chiederà? |
ArtificialGem |
Avete provato a far girare gli esercizi della lezione 17? Io provo ma mi esce sempre Bad system call
-_- |
@le85 |
Originally posted by Andrea86CD
io gliel ho chiesto mentre stavamo andando in classe ed è stato molto vago..
eh vi metterò qualcosa sui processi...thread..per forza qualcosa sugli esercizi...della sierie...o studi o sei fottuto... Insomma..mette tutto..!! Eheheheh ..ma esercizi su cosa? :? ..ci sono esercizi su ogni argomento praticamente..!! :sad: |
EdivaD |
Pagina 12 di queste slide
http://homes.dsi.unimi.it/~boccigno...P_DiskDevx4.pdf
_____________________________
EXAMPLE
• What is the average time to read or write a 512 byte sector for a typical disk?
The advertized average seek time is 9 ms, transfer rate is 4MB/sec, it rotates at 7200 RPM, and the controller overhead is 1 ms. Assume the disk is idle so there is no queueing delay.
• SOLUTION
Average rotation time is <RL>= 0.5 x (1 / 7200 RPM)= 4.15 ms
Transfer time for a block TR = 0.5 KB / (4.0 MB/sec) = 0.125 ms
Thus:
<Tacc>= <ST> + <RL> + TR + Toverhead=
9 ms + 4.15 ms + 0.125 ms + 1 ms = 14.3 ms
________________________
Ordunque mi sapete dire da dove arriva il primo 0,5 che compare?
Visto che è adimensionale presumo sia un un mezzo previsto dalla formula... è così? :? |
ViPah |
E' un quanto di tempo di scarto da aggiungere sempre, se non sbaglio è questo che ha detto il prof.
0,5*60/7200=30/7200=3/720=4.16 -.- |
djpelatino |
Vi posto qualcosa di teoria che magari potrà esservi utile...in bocca al lupo a tutti!! |
EdivaD |
Uhmm "aggiungere" e si moltiplica? E poi, appunto, è adimensionale...
Boh!
Comunque anche a me esce 4,16 ms...
Grazie :D
____________________
I termini "riassunto" e "qualcosa" si adattano poco ad un file di 120 e passa pagine :rotfl:
Grazie! :P |
Andrewz |
Originally posted by ArtificialGem
Avete provato a far girare gli esercizi della lezione 17? Io provo ma mi esce sempre Bad system call
-_-
devi compilarli con il comando seguente:
gcc -pthread poveri_noi.c
per l'esercizio del disco, ho una ipotesi. Ho pensato che il tempo che ci mette un blocco girando a raggiungere la testina si calcola così:il blocco che cerco può essere in un settore a caso della traccia, sia su uno che la ha appena passata (allora il disco deve compiere un'altra rotazione completa per raggiungere la testina ed essere letto, oppure anche essere sotto la testina così da non dover compiere alcuna rotazione per essere letto.
perciò: (1+0)/2 =0,5. mediamente se devi fare tante letture devi contare il tempo di rotazione medio ovvero è come se dovesse fare mezza rotazione, ovvero 0,5 * TR
penso sia così..ditemi che ne pensate!
comunque sto fondendoooo e non ho ancora fatto il file system e i semafori..yaaagh |
ViPah |
Da "aggiungere" alla formula intendo :crazy:...Quel 0.5 penso sia il tempo standard che la testina impiega a raggiungere il settore, oppure all'ipotesi scritta pocanzi da andre..
PS:Bel riassunto, ma il libro non sono meno pagine?:D |
EdivaD |
Originally posted by Andrewz
devi compilarli con il comando seguente:
gcc -pthread poveri_noi.c
per l'esercizio del disco, ho una ipotesi. Ho pensato che il tempo che ci mette un blocco girando a raggiungere la testina si calcola così:il blocco che cerco può essere in un settore a caso della traccia, sia su uno che la ha appena passata (allora il disco deve compiere un'altra rotazione completa per raggiungere la testina ed essere letto, oppure anche essere sotto la testina così da non dover compiere alcuna rotazione per essere letto.
perciò: (1+0)/2 =0,5. mediamente se devi fare tante letture devi contare il tempo di rotazione medio ovvero è come se dovesse fare mezza rotazione, ovvero 0,5 * TR
penso sia così..ditemi che ne pensate!
comunque sto fondendoooo e non ho ancora fatto il file system e i semafori..yaaagh
Sei stato assai convincente! XD
Buona fortuna con i semafori :shock:
Originally posted by ViPah
Da "aggiungere" alla formula intendo :crazy:...Quel 0.5 penso sia il tempo standard che la testina impiega a raggiungere il settore, oppure all'ipotesi scritta pocanzi da andre..
PS:Bel riassunto, ma il libro non sono meno pagine?:D
Ahh ecco non ti avevo inteso X____X |
ViPah |
ciao raga notte e in bocca al bocci per domani |
Rents |
che crisi, vedo implementazioni C ovunque ! aiuto, notte T__T |
Andrea86CD |
ftw
non ci faremo ownare dal bocci!!!!!!!!!!!!!!!!!! |
zeman13 |
come è andata?potete potete postare entrambi i temi d'esame? |
Rents |
è andata di figa 300 cose da studiare e neanche l'ombra di una parte teorica.... -.- va bhè a momenti acceterei anche un terribile 18...magari |
ViPah |
si e poi cadi dal letto e ti svegli nabbo |
surfers |
pensa che io dovrò accettare un 28...mi abbassa la media.... |
zeman13 |
potete postare entrambi i temi d'esame? |
surfers |
hai capito che non li abbiamo o no?!?!?!? |
ciops |
Originally posted by Rents
è andata di figa 300 cose da studiare e neanche l'ombra di una parte teorica.... -.- va bhè a momenti acceterei anche un terribile 18...magari
Un terribile 18????
Dopo il compito di oggi, firmare un 18 sarebbe un successo!!! |
khepti |
Ciao! Gentilmente potreste postare all'incirca le domande che vi ha proposto? Grazie ragazzi |
ViPah |
Domande?pensi davvero che abbia chiesto la teoria? MAVAAAAAAAAAAAAAAAAA! Ti fa studiare 1500 slide, e l'unica domanda "teorica" era : "dopo la fork() processo padre e processo figlio cosa condividono?".
Tutti gli altri esercizi erano da 2 punti, gli ultimi due in C erano da 14, quindi se non li sapevi fare eri piu che fottuto... |
Rents |
lol il problema è riuscire a prenderlo il 18 :D:D...se non le postano è perchè non c erano domande ghghghh |
Rufy |
quindi erano al 90% esercizi in C?....più dell'altra volta? |
djpelatino |
I 2 eserci da 14 punti se non ricordo male erano:
1)Thread figlio deve fare la somma degli elementi di un vettore creato dal padre.Al termine il padre stampa il ris.
2)Data una matrice creare 2 thread figli di cui uno trova il val min e l'altro il max.il padre stampa min e Max |
regularjohn |
Originally posted by Rufy
quindi erano al 90% esercizi in C?....più dell'altra volta?
no proprio 90 % no..
c'erano esercizi su gestione del disco (clook e roba varia), frame (belady e roba varia), disegnare uno schema x la segmentazione, scheduling... |
Andrea86CD |
un esercizio ti chiedeva di creare un processo filgio poiun altro filgio dentro ed infine stampare 3 cose in successione come diceva lui;
l altro era creare 2 thread che lavorino in concorrenza per leggere una matrice (usando i mutex..spiegati una volta...) |
Rents |
ed un altro di metterti a 90° e chiudere gli occhi che sarebbe andato tutto bene :D:D |
Andrea86CD |
sono usciti i risultati..che strage! |
djbenz |
concordo con il PD... un macello! |
coreyzero |
Scusate avete idea di come si risolvano questi esercizi?
D5 (Punti 3). Data la stringa di paginazione R = 204133031263100457 e assumendo che il
sistema operativo abbia allocato al processo 3 frames, calcolare il numero minimo di page fault su tale
stringa.
D6 (Punti 2). Calcolare la distanza di seek per un disco con 200 cilindri, posizionamento iniziale sul
cilindro 28, qualora si applichi una schedulazione C-LOOK della sequente coda di richieste: 20, 175,
80, 130, 10, 120, 80, 30, 100 |
ciops |
sulle sue slide ci sono entrambi con esempi! :) |
Rufy |
Originally posted by ciops
sulle sue slide ci sono entrambi con esempi! :)
:? ah si...? |
Rufy |
ah,ok!Infatti non avevo le 18....grazie....mamma mia chissà domani....:-( |
lik2006 |
domani postate le domande chieste così ci facciamo un'idea di come sarà l'esame |
|
|
|
|