Consiglio libri su Sistemi Operativi.

Tutta l'informatica

Consiglio libri su Sistemi Operativi.

Messaggioda AmigaCori » mer gen 23, 2008 7:21 pm

Allora, ho finalmentericevuto by Amazon "C" di K&R, veramente bello, e' molto istruttivo e piacevole da leggere ed esente da quel "buonismo" da dummies presente nei libracci moderni: le cose te le spiega per quello che sono senza inventarsi caxxate semplificatrici che poi alla fine confondono solo.

Altro bel libro e' "UNIX Network Programming", quello lo sto sfogliando piano piano che e' un po' mattone :scherza: , pero' moooolto interessante!


Ora, perche' qualche anima pia non mi consiglia un buon o dei buoni testi per apprendere le varie differenze e funzionalita' di un OS?, vorrei sapere perche' un OS e' multitasking, perche' e cosa e' la memoria virtuale, la memoria protetta, la predizione, ecc.

Chi studia sta roba sicuramente mi sapra' consigliare testi validi come lo sono stati quelli sopra commentati. :felice:


Grazie in anticipo :felice:
Admin. di NSA www.NonSoloAmiga.com
Twitter: https://twitter.com/NonSoloAmiga
Facebook: http://www.facebook.com/NonSoloAmiga
Gruppo FB: http://www.facebook.com/groups/NonSoloAmiga/
Youube: http://www.youtube.com/user/NonSoloAmiga
AmigaCori

Supremo
 
Messaggi: 4527
Iscritto il: gio feb 26, 2004 4:48 pm

Messaggioda MazinKaesar » mer gen 23, 2008 9:28 pm

Beh, c'è il classico I Moderni Sistemi Operativi di Tanenbaun...
Immagine Immagine
Immagine Immagine
Immagine Immagine
Avatar utente
MazinKaesar

Supporter!!
 
Messaggi: 4051
Iscritto il: sab set 18, 2004 8:43 pm
Località: Modena

Messaggioda AmigaCori » mer gen 23, 2008 9:57 pm

MazinKaesar ha scritto:Beh, c'è il classico I Moderni Sistemi Operativi di Tanenbaun...


Ti diro', di Tanebaum ho letto solo "Architettura dei computer", bello ma non mi ha soddisfatto molto...proprio lo stile di Tanebaum non mi piace, si vede troppo che si sente superiore a tutti, e' come se l'informatica l'avesse inventata lui e sta cosa non mi piace molto :riflette: , per carita', e' indubbiamente un'autorita' nel suo campo, ma non apprezzo come scrive...


Magari un altro consiglio? :eheh2:
Admin. di NSA www.NonSoloAmiga.com
Twitter: https://twitter.com/NonSoloAmiga
Facebook: http://www.facebook.com/NonSoloAmiga
Gruppo FB: http://www.facebook.com/groups/NonSoloAmiga/
Youube: http://www.youtube.com/user/NonSoloAmiga
AmigaCori

Supremo
 
Messaggi: 4527
Iscritto il: gio feb 26, 2004 4:48 pm

Messaggioda Blackfede » mer gen 23, 2008 10:37 pm

Da me all'uni consigliano questi:

1 - A. S. Tanenbaum. Reti di calcolatori quarta ed., Prentice Hall.
2 - J. F. Kurose, K. W. Ross. Internet e reti di calcolatori Seconda ed. , McGraw Hill
3 - L. P. Peterson, B. S. Davie. Reti di calcolatori, Apogeo, 2004

l'anno scorso andava anche:

A. Silberschatz - P. Galvin - G. Gagne. Sistemi operativi - Concetti ed esempi - 7a Edizione Link x info
I troll sono solo dei dementi che finisco in /dev/null
-------------------------------------------
I video giochi non influenzano i bambini. Voglio dire, se Pac-man avesse influenzato la nostra generazione, staremmo tutti saltando in sale scure, masticando pillole magiche e ascoltando musica elettronica ripetitiva...e dopo qualche anno ci furono i rave party!
Avatar utente
Blackfede

Eroe
 
Messaggi: 1227
Iscritto il: gio gen 16, 2003 10:18 am
Località: Parma

Messaggioda riko » ven gen 25, 2008 12:18 pm

Blackfede ha scritto:Da me all'uni consigliano questi:

1 - A. S. Tanenbaum. Reti di calcolatori quarta ed., Prentice Hall.
2 - J. F. Kurose, K. W. Ross. Internet e reti di calcolatori Seconda ed. , McGraw Hill
3 - L. P. Peterson, B. S. Davie. Reti di calcolatori, Apogeo, 2004

l'anno scorso andava anche:

A. Silberschatz - P. Galvin - G. Gagne. Sistemi operativi - Concetti ed esempi - 7a Edizione Link x info


Fede, hai consigliato 3 libri di reti! :ride:

Parlando di sistemi operativi.... c'è poco da dire. Il tanenbaum è una spanna sopra agli altri per capire. Sul silbe ci sono alcuni argomenti che non sono trattati in modo molto chiaro: ti riempie di informazioni, nozioncine, ma non va al punto.

Aggiungo che Silbe insiste sull'erronea percezione dei thread come un necessario miglioramento, dimenticando di dire che nei sistemi multi-core attuali usare i thread come si fa al momento significa ammazzare le performance.
-enrico
fibs = 0 : 1: [ a + b | (a, b) <- zip fibs (tail fibs) ]


Akropolix: Community OFF-TOPIC di IKSnet
http://www.akropolix.net/forum

"se do da mangiare a un affamato mi dicono che sono un santo, se mi chiedo perch? ? affamato mi dicono che sono un comunista" (Helder C?mara, Arcivescovo di Recife)
Avatar utente
riko

Supremo
 
Messaggi: 3329
Iscritto il: gio mar 04, 2004 4:28 pm
Località: Chiba City

Messaggioda Blackfede » ven gen 25, 2008 3:58 pm

Cavolo ho copiato dalla pagina sbagliata! :scherza:

In ogni caso credo che un libro di SO aggiornato sulle ultime novita dei multicore non ci sia ancora. Ma piuttosto non esistono libri sulle architetture SMP? Direi che sarebbero degli ottimi spunti per approfondire il discorso multicore!
I troll sono solo dei dementi che finisco in /dev/null
-------------------------------------------
I video giochi non influenzano i bambini. Voglio dire, se Pac-man avesse influenzato la nostra generazione, staremmo tutti saltando in sale scure, masticando pillole magiche e ascoltando musica elettronica ripetitiva...e dopo qualche anno ci furono i rave party!
Avatar utente
Blackfede

Eroe
 
Messaggi: 1227
Iscritto il: gio gen 16, 2003 10:18 am
Località: Parma

Messaggioda clros » ven gen 25, 2008 4:31 pm

riko ha scritto: dimenticando di dire che nei sistemi multi-core attuali usare i thread come si fa al momento significa ammazzare le performance.


Dettaglia please...vuol dire che thread appartenenti alle stesso processo non possono essere eseguiti su core/processori differenti (...in effetti...)??
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Messaggioda MazinKaesar » ven gen 25, 2008 7:30 pm

riko ha scritto:
Fede, hai consigliato 3 libri di reti! :ride:


:ahah: infatti...

Parlando di sistemi operativi.... c'è poco da dire. Il tanenbaum è una spanna sopra agli altri per capire. Sul silbe ci sono alcuni argomenti che non sono trattati in modo molto chiaro: ti riempie di informazioni, nozioncine, ma non va al punto.


Beh, Tany ha scritto un piccolo classico... :annu:
Immagine Immagine
Immagine Immagine
Immagine Immagine
Avatar utente
MazinKaesar

Supporter!!
 
Messaggi: 4051
Iscritto il: sab set 18, 2004 8:43 pm
Località: Modena

Messaggioda riko » ven gen 25, 2008 10:45 pm

clros ha scritto:Dettaglia please...vuol dire che thread appartenenti alle stesso processo non possono essere eseguiti su core/processori differenti (...in effetti...)??


Questo dipende dal sistema operativo. No, il problema è che fare multithreading a memoria condivisa fotte abbondantemente il meccanismo di caching che è una delle cose che più aumenta le performance.

In particolare se hai due thread che possono scrivere su una data pagina di memoria, quando uno dei due scrive, la invalida anche all'altro (a seconda che siamo su multiprocessore -- in questo caso di sicuro -- multicore -- dipende come è gestita la cache --). Per cui nel caso sfigato significa dovere scrivere *immediatamente* la pagina in RAM e tirarla su per l'altro processo. Più l'overhead di informare tutti che la scrittura è stata fatta.

Tipicamente per scrivere sw multithread senza questo problema (oltre che più facile da debuggare, scrivere, pensare e ottenere) conviene usare le code di messaggi. I thread non scrivono in area comune, ma leggono e scrivono in una coda. Comunicando solo così non si sputtanano la memoria a vicenda.

Ma a questo punto tanto vale usare i processi.

Il problema principale è che Windows è molto inefficiente a gestire i processi e se la cava meglio con i thread, oltre che Java ha rovinato la percezione di svariate generazioni di programmatori.
-enrico
fibs = 0 : 1: [ a + b | (a, b) <- zip fibs (tail fibs) ]


Akropolix: Community OFF-TOPIC di IKSnet
http://www.akropolix.net/forum

"se do da mangiare a un affamato mi dicono che sono un santo, se mi chiedo perch? ? affamato mi dicono che sono un comunista" (Helder C?mara, Arcivescovo di Recife)
Avatar utente
riko

Supremo
 
Messaggi: 3329
Iscritto il: gio mar 04, 2004 4:28 pm
Località: Chiba City

Messaggioda clros » ven gen 25, 2008 11:29 pm

riko ha scritto:
clros ha scritto:Dettaglia please...vuol dire che thread appartenenti alle stesso processo non possono essere eseguiti su core/processori differenti (...in effetti...)??


Questo dipende dal sistema operativo. No, il problema è che fare multithreading a memoria condivisa fotte abbondantemente il meccanismo di caching che è una delle cose che più aumenta le performance.


Parli di cache HW?
Continui aggiornamenti delle linee delle chache?
(si, ok, mi hai risposto dopo! :-)

[...]

Ma a questo punto tanto vale usare i processi.


Ecco, stavo per dirlo io.
In effetti sto perdendo un pò la visione generale del tutto; molte delle cose (nuove) mi sono sconosciute.

oltre che Java ha rovinato la percezione di svariate generazioni di programmatori.


Vedi sopra: non avendo una visione generale (o particolaregiata) del tutto, anche io credevo che in effetti usare i thread di java o altro fosse conveniente (e in Java, almenochè non si vogliono fare cose particolari, è anche facilissimo farlo).

Insomma, non ho mai collegato mentalmente, prima di adesso, il problema della gestione della cache con lo "scambio" di dati attraverso aree di memoria comune.
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Messaggioda riko » sab gen 26, 2008 12:38 pm

clros ha scritto:Vedi sopra: non avendo una visione generale (o particolaregiata) del tutto, anche io credevo che in effetti usare i thread di java o altro fosse conveniente (e in Java, almenochè non si vogliono fare cose particolari, è anche facilissimo farlo).


Tutt'altro: in Java usare i thread è assurdamente complesso. In primo luogo il brillante concetto di 'monitor' (e le synchronized) è fonte di inefficienze *paurose*. Ma questo, possiamo dire, che chissene frega. Non fosse che da un falso senso di sicurezza e fa perdere di vista il problema di proteggere la sezione critica proteggendo tutto un metodo.

In secondo luogo questo senso di sicurezza porta direttamente all'idea (falsa, come si mostrerà poi) che lavorare con i thread sia semplice. E si scrivono programmi inutilmente inefficienti[0], usando un modello a memoria condivisa che è poco adatto a risolvere i problemi.

Tra l'altro anche a livello di API, ho dato per 'sbaglio' un occhiata alle API di Ruby, e ho visto che sono *grandemente* più semplici da usare. Poi i Thread di Ruby (al momento) sono solo dei green thread, ma questo è un discorso a parte.

Questo è quello che scrivono Van Roy e Haridi nel loro bellissimo libro:

Concurrency in Java is complex to use and expensive in computational resources. Because of these difficulties, Java-taught programmers conclude that concurrency is a fundamentally complex and expensive concept.

Program specifications are designed around the difficulties, often in a contorted way. Biut these difficulties are not fundamental at all. There are forms of concurrency that are quite useful and yet as easy to program as sequential programs (e.g., stream programming as exemplified by Unix pipes).

Furthermore, it is possible to implement threads, the basic unit of concurrency, almost as cheaply as procedure calls. If the programmer were taught about concurrency in the correct way, then he or she would be able to specify for and program in system without concurrency restrictions (including improved versions of Java).

Concepts, Techniques and Models of Computer Programming,
Peter Van Roy and Seif Haridi



Aggiungo: gli autori danno per scontato che i programmatori si accorgano che usare i thread è complesso. Purtroppo sbagliano: i programmatori non se ne accorgono fino a quando non si scontrano in un problema di media complessità e ci restano dentro.

----
[0] inefficienti al di la dei meccanismi di caching: i vari metodi non è infrequente che loggino roba o magari addirittura scrivono su db e/o rete. Ecco, mettere un lock che dura per tutto l'I/O è a dir poco criminale.
-enrico
fibs = 0 : 1: [ a + b | (a, b) <- zip fibs (tail fibs) ]


Akropolix: Community OFF-TOPIC di IKSnet
http://www.akropolix.net/forum

"se do da mangiare a un affamato mi dicono che sono un santo, se mi chiedo perch? ? affamato mi dicono che sono un comunista" (Helder C?mara, Arcivescovo di Recife)
Avatar utente
riko

Supremo
 
Messaggi: 3329
Iscritto il: gio mar 04, 2004 4:28 pm
Località: Chiba City


Torna a Tecnologia, internet, coding

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti