.dsy:it.
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)
-- esame in arrivo (http://www.dsy.it/forum/showthread.php?threadid=38379)


Posted by lik2006 on 13-05-2009 11:28:

esame in arrivo

ciao a tutti.
ormai mancano 3 settimane all'esame.
che ne dite se postiamo tutti gli appunti presi ?


Posted by @le85 on 14-05-2009 11:06:

Hmmm e quando sarebbe la data del secondo compitino?


Posted by ciops on 19-05-2009 16:16:

dai ragazzi...iniziamo!

__________________
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.


Posted by lik2006 on 20-05-2009 19:51:

allora ragazzi il 3 c'è l'esame postiamo tutti gli appunti???


Posted by zeman13 on 20-05-2009 22:09:

ma le lezioni sono finite? oggi come mai non c'era lezione?

__________________
You are what you know...


Posted by lik2006 on 21-05-2009 13:13:

finiscono settimana prossima penso il 3 c'è il compito


Posted by ViPah on 22-05-2009 09:28:

confermate che il compitino è il 3?:(


Posted by djbenz on 22-05-2009 10:33:

si l'ha confermato lunedì a lezione...


Posted by ViPah on 24-05-2009 09:06:

qualcuno ha una lista degli argomenti principali e/o le pagine di riferimento sul libro di testo?


Posted by lik2006 on 24-05-2009 13:50:

non c'è nessuno che posta i riassunti in italiano?


Posted by TwiggyAsh on 24-05-2009 14:30:

Ragazzi HELP!!!! : )


Posted by ViPah on 24-05-2009 18:48:

.-.


Posted by Rents on 25-05-2009 15:29:

che egoismo :D hahah...io la vedo grigia


Posted by ViPah on 25-05-2009 15:55:

come disse l'alberti...passando su...uno...specch...:ignore::saw:




qualche anima pia che posti qualche appunto?:?


Posted by Andrea86CD on 26-05-2009 14:58:

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/


Posted by lik2006 on 26-05-2009 19:35:

grandissimo continuate così con gli appunti!


Posted by ArtificialGem on 27-05-2009 08:31:

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.


Posted by ciops on 27-05-2009 12:10:

Ragazzi,
qualcuno riesce a postare almeno gli argomenti trattati a lezione?

__________________
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.


Posted by Paul442 on 27-05-2009 14:10:

si sarebbero utilissimi gli argomenti...almeno ce li possiamo studiare in italiano...


Posted by ViPah on 27-05-2009 20:47:

minchia, pappa pronta sempre e comunque?

pigliati le slide e guarda gli argomenti, ci metti mezz'ora se è tanto


Posted by Paul442 on 28-05-2009 08:16:

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?


Posted by ViPah on 28-05-2009 09:55:

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.


Posted by Paul442 on 28-05-2009 10:30:

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...


Posted by Andrea86CD on 28-05-2009 11:00:

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


Posted by ciops on 28-05-2009 11:14:

secondo me un esercizio sul Round Robin lo mette,
lo metteva sempre anche......... Bellettini.

__________________
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.


Posted by ViPah on 28-05-2009 12:25:

esercizi sulle politiche di scheduling intendi esercizi con calcolo carico cpu ecc oppure codice?


Posted by Rents on 28-05-2009 16:25:

io con sto caldo non riesco a studiare una sega -.-


Posted by lik2006 on 28-05-2009 18:24:

Ragazzi facciamo un'appello a Youngz che l'altra volta ci ha postato tutte le definizioni!


Posted by Rents on 29-05-2009 11:14:

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


Posted by Andrea86CD on 29-05-2009 11:51:

sì..gli mandi una mail e ti rimanda in allegato le domande XD


Posted by ViPah on 29-05-2009 12:34:

con anche le risposte ovviamente


Posted by Rents on 29-05-2009 16:55:

a me ha mandato l'invito per un party :D:D:D


Posted by Andrea86CD on 29-05-2009 16:56:

ma noooooooooooooooooooooooooooo :D
ahahhahahah
andiamo al parti se ci fa passare sod ;)


Posted by ViPah on 29-05-2009 17:50:

Sia lodata wikipedia.





























Sempre sia lodata.


Posted by Rents on 30-05-2009 12:21:

lol


Posted by lik2006 on 31-05-2009 10:31:

siamo messi malissimo!!!


Posted by ViPah on 31-05-2009 15:10:

:pensa:


Posted by ArtificialGem on 31-05-2009 19:14:

Spero non siate messi male come me comunque qui ci sono delle spiegazioni semplici in italiano http://www.sitoserio.it/cpp/conc/main.html


Posted by lik2006 on 31-05-2009 20:18:

quali sono gli argomenti principali secondo voi da sapere?


Posted by Andrea86CD on 01-06-2009 12:06:

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


Posted by Rents on 01-06-2009 13:00:

senza sotto gli esempi delle slide del prof sarebbe davvero da pro riuscirci


Posted by surfers on 01-06-2009 14:23:

andre ti doddiamo anche fare il compito?!?!?!?!?


Posted by lik2006 on 01-06-2009 15:15:

una domanda: cos'è l'inode?


Posted by ViPah on 01-06-2009 16:12:

rents fammelo con sotto gli appunti del prof se riesci...


Posted by Andrea86CD on 01-06-2009 17:51:

ehm surfer se ce la fai sì XD
ma tanto siamo allo stesso livello...
mahuahuah
siam fucked

ridereeeeeeeee mercoledì ci sarà da ridereeeeeeeeeeee


Posted by ViPah on 01-06-2009 21:09:

l'inode è un tipo di file system in unix. SO questo lol


Posted by Rents on 01-06-2009 23:21:

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


Posted by ViPah on 02-06-2009 08:24:

28 ore e 6minuti al botto


Posted by Andrea86CD on 02-06-2009 14:02:

domani il prof ce lo piazza sicuro con qualcosa di impossibile !!!


Posted by Rents on 02-06-2009 14:32:

non so voi ma x me la parte riguardante il codice è un vuoto assoluto !


Posted by Andrea86CD on 02-06-2009 14:57:

vuoto assoluto no...
però sicuramente metterà qualcosa di infattibile...


Posted by @le85 on 02-06-2009 15:00:

Ha accennato a qualcosa che molto probabilmente metterà?? ..sia a livello di codice che di teoria...


Posted by nasty121 on 02-06-2009 15:49:

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


Posted by nasty121 on 02-06-2009 15:53:

Ma quanto lavoro c'è???

Prima di poter decifrare i concetti delle lezioni d'italiano, bisogna pure tradurle?!!

Mah.. da suicidio ("dont trai et om!!!")


Posted by Andrea86CD on 02-06-2009 16:01:

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...


Posted by ViPah on 02-06-2009 16:25:

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


Posted by Rents on 02-06-2009 16:34:

occhio che il bocci capta i segnali telepatici con la funzione TiFottoCmq();

ribadisco zero codice asd


Posted by ViPah on 02-06-2009 16:45:

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();


Posted by Rents on 02-06-2009 16:46:

Figa poi si che la ridai nel 2012 se sei fortunato la materia :D


Posted by Andrea86CD on 02-06-2009 16:48:

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


Posted by ViPah on 02-06-2009 16:49:

HO editato, leggete nabbi.


Posted by Rents on 02-06-2009 16:51:

loool


Posted by Rents on 02-06-2009 16:52:

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);

-.-


Posted by lik2006 on 02-06-2009 17:09:

ragazzi per voi quali sono gli argomenti che chiederà?


Posted by ArtificialGem on 02-06-2009 17:17:

Avete provato a far girare gli esercizi della lezione 17? Io provo ma mi esce sempre Bad system call
-_-


Posted by @le85 on 02-06-2009 17:25:

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:


Posted by EdivaD on 02-06-2009 17:36:

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ì? :?

__________________
"Dicono che ogni atomo del nostro corpo una volta apparteneva ad una stella…
forse non sto partendo, forse sto tornando a casa”


_GATTACA_


Posted by ViPah on 02-06-2009 18:02:

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 -.-


Posted by djpelatino on 02-06-2009 18:08:

Vi posto qualcosa di teoria che magari potrà esservi utile...in bocca al lupo a tutti!!


Posted by EdivaD on 02-06-2009 18:17:

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

__________________
"Dicono che ogni atomo del nostro corpo una volta apparteneva ad una stella…
forse non sto partendo, forse sto tornando a casa”


_GATTACA_


Posted by Andrewz on 02-06-2009 19:01:

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


Posted by ViPah on 02-06-2009 19:01:

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


Posted by EdivaD on 02-06-2009 20:37:

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

__________________
"Dicono che ogni atomo del nostro corpo una volta apparteneva ad una stella…
forse non sto partendo, forse sto tornando a casa”


_GATTACA_


Posted by ViPah on 02-06-2009 22:08:

ciao raga notte e in bocca al bocci per domani


Posted by Rents on 03-06-2009 00:51:

che crisi, vedo implementazioni C ovunque ! aiuto, notte T__T


Posted by Andrea86CD on 03-06-2009 07:08:

ftw
non ci faremo ownare dal bocci!!!!!!!!!!!!!!!!!!


Posted by zeman13 on 03-06-2009 17:07:

come è andata?potete potete postare entrambi i temi d'esame?

__________________
You are what you know...


Posted by Rents on 03-06-2009 17:45:

è 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


Posted by ViPah on 03-06-2009 18:24:

si e poi cadi dal letto e ti svegli nabbo


Posted by surfers on 03-06-2009 20:40:

pensa che io dovrò accettare un 28...mi abbassa la media....


Posted by zeman13 on 03-06-2009 20:55:

potete postare entrambi i temi d'esame?

__________________
You are what you know...


Posted by surfers on 03-06-2009 21:32:

hai capito che non li abbiamo o no?!?!?!?


Posted by ciops on 03-06-2009 22:42:

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!!!

__________________
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.


Posted by khepti on 04-06-2009 08:24:

Ciao! Gentilmente potreste postare all'incirca le domande che vi ha proposto? Grazie ragazzi


Posted by ViPah on 04-06-2009 08:33:

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...


Posted by Rents on 04-06-2009 11:05:

lol il problema è riuscire a prenderlo il 18 :D:D...se non le postano è perchè non c erano domande ghghghh


Posted by Rufy on 04-06-2009 15:27:

quindi erano al 90% esercizi in C?....più dell'altra volta?

__________________
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)


Posted by djpelatino on 04-06-2009 15:52:

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


Posted by regularjohn on 04-06-2009 15:55:

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...


Posted by Andrea86CD on 04-06-2009 22:05:

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...)


Posted by Rents on 05-06-2009 22:19:

ed un altro di metterti a 90° e chiudere gli occhi che sarebbe andato tutto bene :D:D


Posted by Andrea86CD on 08-06-2009 11:01:

sono usciti i risultati..che strage!


Posted by ViPah on 08-06-2009 11:29:

PD si può dire?


Posted by djbenz on 08-06-2009 13:04:

concordo con il PD... un macello!


Posted by coreyzero on 16-06-2009 08:11:

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


Posted by ciops on 16-06-2009 08:13:

sulle sue slide ci sono entrambi con esempi! :)

__________________
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.


Posted by Rufy on 16-06-2009 10:22:

Originally posted by ciops
sulle sue slide ci sono entrambi con esempi! :)

:? ah si...?

__________________
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)


Posted by ciops on 16-06-2009 10:33:

C-Look
http://homes.dsi.unimi.it/~boccigno...P_DiskDevx4.pdf


Balady's
http://homes.dsi.unimi.it/~boccigno...17_MPMem3x4.pdf

__________________
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.


Posted by Rufy on 16-06-2009 10:44:

ah,ok!Infatti non avevo le 18....grazie....mamma mia chissà domani....:-(

__________________
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)


Posted by lik2006 on 16-06-2009 11:09:

domani postate le domande chieste così ci facciamo un'idea di come sarà l'esame


Posted by Vikyg13 on 16-06-2009 11:53:

ma data la stringa di paginazione R e 3 frame, come si fa a vedere il numero minimo di pages fault per la stringa? C'è uno degli algoritmi che per caso minimizza il numero di page fault?


Posted by Youngz on 16-06-2009 12:14:

Ragazzi, postiamo esempi diversi di programmi che possono essere utili per l'esame, io qui ho appena fatto un programma sulle fork:

code:
#include <stdio.h> #include <stdlib.h> #include <signal.h> #include <sys/types.h> pid_t pid,p_nipote,p_nonno; int appoggio,nip,non,somma,molt,sott; float divisione; void * Scelta(void *); int main() { printf("inserire 1 se si vuole fare (pid delnonno/pid del nipote)\ninserire 2 se si vuole fare (pid del nonno+ pid del nipote)\ninserire 3 se si vuole fare (pid del nonno*pid del nipote)\ninserire 4 se si vuole fare (pid del nonno-pid del nipote)\ninserire 5 se si vuole mandare affanculo il bocci\n"); do{ scanf("%d",&appoggio); if(appoggio < 1 || appoggio > 5) printf("mongolo non sai inserire neanche un numero!"); }while(appoggio < 1 || appoggio > 5); if(appoggio == 5){ int i,k=rand() % 100 + 1; for(i=0;i<k;i++){ printf("Bocci vanculo"); int t; for(t=0;t<i;t++) printf("o"); printf("\n"); } return; } pid=fork(); if(pid < 0){ printf("Non funziona la fork,ciao!\n"); exit(1); } if(pid == 0){ printf("\nSon il papà, il mio id è : %d , invece quello di mio papà (nonno) è %d\n",getpid(),non=getppid()); p_nonno=getppid(); printf("sto partorendo un figlio! WOW\n"); pid=fork(); if(pid < 0){ printf("figlio venuto male, l'ho soppresso!\n"); exit(1); } if(pid == 0){ printf("figlio nato perfettamente, il nipotino ha pid pari a : %d\n",nip=getpid()); p_nipote=getpid(); //scelta if(appoggio == 1){ divisione=non/nip; printf("La divisione: %d/%d=%g\n",non,nip,divisione); } if(appoggio == 2){ somma=non+nip; printf("La somma: %d+%d=%d\n",non,nip,somma); } if(appoggio == 3){ molt=non*nip; printf("La moltiplicazione: %d*%d=%d\n",non,nip,molt); } if(appoggio == 4){ sott=non-nip; printf("La sottrazione: %d-%d=%d\n",non,nip,sott); } printf("schiatta il nipote\n"); exit(0); } while(wait(NULL)>=0) ; printf("schiatta il padre\n"); exit(0); } while(wait(NULL)>=0) ; printf("fico, ho finito, ora può schiattare anche il nonno, Adios\n"); exit(0); }


Ora si va in pausa pranzo, quando torno creo un programma che sincronizza 3 thread per scrivere "bocci fatti fottere!". :D


Posted by ViPah on 16-06-2009 12:43:

Simpatico il programma, non vedo l'utilità del moltiplicare gli id ma va beh xD

printf("Bocci vanculo");

lo modificherei con


printf("Bocci VAFFANCULO!");

:D


Posted by ViPah on 16-06-2009 13:12:

Ecco qua, mi aggrego agli esercizi che potrebbero esservi utili.
Questo prog crea un array di int, riempito dall'utente, di insulti al bocci.
Inserisci 1 se vuoi insultarlo, un altro numero altrimenti.

Il programma, ovviamente, accetta solo insulti.

Il compito inutile dei due thread è quello di contare, anche grazie a un mutex che non fa inputtanare la variabile swearcount, gli insulti.


E', ovviamente, perfettamente funzionante.:)

code:
#include <pthread.h> #include <stdio.h> #include <stdlib.h> int swearcount = 0; pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER; void * swearCounter(void *); //stamerdalaeseguonoithread int main() { pthread_t tid1, tid2; printf("inserisci un numero a caso") scanf("%d", &nswear) int insulto[nswear]= void * swearCounter(void *) if(pthread_create(&tid1, NULL, swearCounter, NULL)) { printf("\n Cazzo, non mi crea il thread, butta il pc dalla finestra!"); exit(1); } if(pthread_create(&tid2, NULL, swearCounter, NULL)) { printf("\n Cazzo, non mi crea il thread, butta il pc dalla finestra!"); exit(1); } if(pthread_join(tid1, NULL)) { printf("\n Non va T.T"); exit(1); } if(pthread_join(tid2, NULL)) { printf("\n Non va PD!!!!! T.T"); exit(1); } printf("\n Numero di insulti = %d , su %d\n", pxlcount,nswear); pthread_mutex_destroy(&mutex1); pthread_exit(NULL); } void *swearCounter(void * a) { int swearcount, j; for(j = 0; j < nswear; j++){ printf("inserisci 1 se vuoi insultare il bocci, un altro numero altrimenti"); scanf("%d", &insulta); if (insulta!=0) printf("mi dispiace, accetto solo insulti"); while (insulta!=0){ pthread_mutex_lock( &mutex1 ); //uso il mutex, ma infondo, come il bocci, non so perchè... insulto[j]=insulta swearcount++: pthread_mutex_unlock( &mutex1 ); } } }


Posted by Rufy on 16-06-2009 14:21:

....posso consigliare....dato che son qui da taanto tempo...che è meglio evitare di insultare i Prof...dato che anche loro leggono il forum Dsy e ok, che non sanno chi si cela dietro l'avatar...ma magari si incazzano e ci bastonano....anche se ci bastonano lo stesso....^_^'
cmq grazie per gli esempi di prog!!!!bravi!

__________________
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)


Posted by zeman13 on 16-06-2009 16:33:

concordo con rufy...si questa cosa di insultare il prof e soprattutto di bestemmiare non è che sia il massimo...

__________________
You are what you know...


Posted by Youngz on 16-06-2009 16:49:

va bene moralisti..

Ora ho fatto un programma per sommare in alternanza un thread i numeri pari e uno i numeri dispari di una matrice.

code:
#include <pthread.h> #include <stdio.h> #include <stdlib.h> #define DIM 5 int mat[DIM][DIM]={ {77,20,12,100,-4}, {21,80,0,7,2}, {39,40,0,45,1}, {40,50,600,-30,1}, {0,0,0,1,0}}; void *Dispari(void *a); void *Pari(void *a); pthread_mutex_t mutex1=PTHREAD_MUTEX_INITIALIZER; pthread_cond_t cond=PTHREAD_COND_INITIALIZER; int vivo2 = 0; int i,j; int sommap,sommad; main(){ sommap=sommad=0; for(i=0;i<DIM;i++) for(j=0;j<DIM;j++) if((mat[i][j] % 2) == 0) sommap+=mat[i][j]; else sommad+=mat[i][j]; printf("La somma dei valori pari e':%d , dei valori dispari e': %d\nCliccare invio per continuare",sommap,sommad); char caxxi; scanf("%c",&caxxi); printf("\n Perfetto, avvio mutex: \n"); for(i=97;i<107;i++){ //fa solo fico! sleep(0); printf("%c\n",i); } sommad=sommap=0; pthread_t pit1,pit2; if(pthread_create(&pit1, NULL, Dispari, NULL)){ printf("Errore!\n"); exit(1); } if(pthread_create(&pit2, NULL, Pari, NULL)){ printf("Errore!\n"); exit(1); } if(pthread_join(pit1, NULL)){ printf("Errore nella join!\n"); exit(1); } if(pthread_join(pit2, NULL)){ printf("Errore nella join!\n"); exit(1); } printf("Somma dei numeri pari: %d, Somma dei numeri dispari: %d\n", sommap,sommad); pthread_exit(NULL); } void *Dispari (void *a) { int k,l; sommad=0; printf("thread1 entra in fase critica\n"); sleep(2); pthread_mutex_lock( &mutex1); printf("thread1 e' entrato in fase critica\n"); for(k=0;k<DIM;k++){ for(l=0;l<DIM;l++){ if((mat[k][l] %2) !=0){ sleep(1); printf("trovato dispari,VIVO2=%d\n",vivo2); sommad+=mat[k][l]; } else if(vivo2==0){ printf("trovato pari,entro in condizione di wait\n"); pthread_cond_wait(&cond,&mutex1); printf("trovato segnale, thread1 torna al lavoro\n"); //pthread_cond_signal(&cond); } } } printf("thread1 sta uscendo dalla fase critica\n"); pthread_mutex_unlock( &mutex1); printf("thread1 e' uscito dalla fase critica\n"); } void *Pari (void *a) { int k,l; sommap=0; printf("thread2 entra in fase critica\n"); sleep(5); pthread_mutex_lock( &mutex1); printf("thread2 e' entrato in fase critica\n"); for(k=0;k<DIM;k++){ for(l=0;l<DIM;l++){ if((mat[k][l] %2) ==0){ sleep(1); printf("trovato Pari, VIVO2 = %d\n",vivo2); sommap+=mat[k][l]; } else if(vivo2 != 1){ //printf("trovato dispari,entro in condizione di wait\n"); //pthread_cond_wait(&cond,&mutex1); printf("trovato segnale, thread2 torna al lavoro\n"); vivo2=1; pthread_cond_signal(&cond); } } } printf("thread2 sta uscendo dalla fase critica\n"); pthread_mutex_unlock( &mutex1); printf("thread2 e' uscito dalla fase critica\n"); }


Trovate un modo per migliorarla :D ViPah ti stimo!

Ps: non penso che il bocci abbia sbatti di leggere un forum per gli studenti, non mi sembra il tipo.


Posted by Rufy on 16-06-2009 17:02:

Originally posted by Youngz
va bene moralisti..
.
.
Ps: non penso che il bocci abbia sbatti di leggere un forum per gli studenti, non mi sembra il tipo.


Qua non ti si fa la morale.....:roll:.....sto solo consigliando un tono da tenere in un forum di studenti frequentato e letto ANCHE da professori...che ci pensi o no(...e ti assicuro che lo guardano il forum...)prima che qualche Moderatore magari lo faccia chiudere...tutto qui...;)

__________________
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)


Posted by Youngz on 16-06-2009 17:12:

Va bene , scusate se ho insultato i prof.


Posted by ViPah on 16-06-2009 17:25:

youngz, una domanda seria: come mai usi il mutex? sono due funzioni separate ognuna gestita dal proprio thread separatamente, non è inutile utilizzarlo?










ps. il bocci a quest'ora è a fare l'aperitivo :D


Posted by dellabest on 16-06-2009 17:35:

il mutex a quanto ho capito serve a sincronizzare vari thread,quindi quando metto wait a uno quello con signal parte e quando finisce la sua eseguzione ritorna al wait.

Esempio, io sto studiando, mi parte il wait voglia di sigaretta, mi fumo la sigaretta e ritorno a studiare.



Ps: no, il bocci a quest'ora si sta facendo due svedesi.

Edit: sono youngz a casa di dellabest! per questo scrivo col suo.

PS2: riassuntino su tutti gli schemi hardware di paging in ita ? :D

Edit2: Io penso che questo possa essere uno schema delle possibili domande:

Programmazione in c di thread/semafori

2 tra algoritmi di disco,memoria e cpu
1 schema hardware di qualcosa come tlb e co (che non so)
1 domanda primo semestre generale(cosa son le auc e co)
1 BHO XD


Posted by ViPah on 16-06-2009 18:10:

il meccanismo dei mutex lo so, ma si utilizza nel caso in cui 2 thread, operino sulla stessa funzione! NO?


Lui ha detto che mette c+teoria, quindi in teoria (asd) non ci sono altri esercizi tipo roundrobincazziemazzi. SPERO!


Posted by dellabest on 16-06-2009 18:24:

No, spero che ci siano, una cosa che so. Sai che mi sa che si possono usare in entrambi i casi.Solo che nel caso operino su una stessa funzione lo trovo un bel po' inutile.
Se mette solo teoria teoria son fottuto, io ho puntato su fare il programma in C e gli algoritmi di schedulazione.


Posted by Vikyg13 on 16-06-2009 19:08:

Io credo che lui gli algoritmi li intenda come "teoria". Penso ci saranno almeno due domande/esercizi sugli algoritmi


Posted by Rents on 16-06-2009 23:32:

Bocci del azz se dopo tutta la sbatta avuta nell imparare le funzioni

in c da soli non C dai un 30 e lode a capa altro che algoritmi che ti

insultato si passa dall' ultima versione di windows al OS FckdBocci beta.0

bill gates ci farà una pippa


All times are GMT. The time now is 16:27.
Show all 115 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.