Homepage  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


.dsy:it. .dsy:it. Archive > Didattica > Corsi N - Z > Sistemi operativi e distribuiti
Pages: [1] 2 
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!!!! : )

ViPah
.-.

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.

Rents
lol

lik2006
siamo messi malissimo!!!

ViPah
:pensa:

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

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
loool

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!

ViPah
PD si può dire?

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

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


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

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

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate