Newsgroup: it.comp.os.linux.development
Titolo: Programmazione concorrente

Salve !!!
Mi servirebbero qualche info su:
* Che differenza c'e' fra allocare memoria condivisa con shmget() e 
  dirlo direttamente a LILO e usarlo con mmap()? 
* Ho studiato a scuola i monitor, come implementati nel concurrent pascal.
  Come li uso con Linux?
-- 
Massimiliano Masi - m...@MasCanc.NET
Anger is a gift ... - 
http://www.mascanc.net/~max

   Come li uso con Linux?
te li implementi volta per volta, in genere con semafori e memoria 
condivisa. mi sono trovato a farlo (per un esame) e ti assicuro che la cosa 
e' molto piu' astratta di quanto sembri. un monitor scemo puo' essere poco 
piu' di un semaforo, ma se ne possono implementare che gestiscono impicci 
tipo espressioni condizionali strane, priorita' ecc.
comunque il concetto e' quello del concurrent, solo che lo devi 
riprogrammare (in c immagino...)
Pinolo

   Come li uso con Linux?
Tutti i problemi di sincronizzazione possono essere risolti con le primitive
POSIX (pthread_*, sem_*). Se vuoi i monitor usa una libreria che li fornisca
oppure implementali da te.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail** 
-<! Gesu' e' morto per i nostri peccati.  Non rendiamo inutile il suo
		martirio non commettendone !>-

)
Make Money Fast (MMF) chain letter or lookalike
Reposting or quoting significant portions of one of the above
Binary posting in non-binary newsgroup
Open Proxy abuse
Retromoderation by request of legitimate group moderator or due
   to charter violation
Forgery canceled by request of forged individual or organization
X-Cancel-ID: ]1>'NQ4H].:<H,+T/U(M(25'M^M%6"06S-#R)&^"75%5=^<;=8A41OP`
The From: address above is not monitored or answered, as it has been
scraped too many times by brain-dead spammers looking for addresses
for UCE.  This address is sent directly to /dev/null.  Mail should be
sent to postmaster at the domain 
stopspam.org
 regarding this cancel
message.

Così a naso penso ti sia più utile shmget
--
Riccardo Ricci
Centro Servizi Netmore D.I.
-------------------------------------------
+39 340 0068797
 (24 hrs)

 
Che libreria?


 definire un indirizzo nei programmi e passarlo a mmap.
Qui` c'e`  qualcosa di concettualmente sbagliato. LILO  (stiamo parlando
del  LInux LOader,  vero?) lavora  ancora in  modalita` reale,  un volta
bootato il kernel i programmi non  hanno piu` possibilita` di accedere a
locazioni fisiche della memoria.
Inoltre  LILO  e` programma  minimale  (e`  un bootloader!),  mica  puoi
attaccargli tutta la libreria C.
Spiega meglio [1] quello che vuoi fare.
[1] meglio := piu` di una frase, possibilmente sensata.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
I went to God just to see
And I was looking at me
Saw heaven and hell were lies
When I'm God everyone dies

 file descriptor...
sotto linux mmap() puo' essere utilizzata anche con il flag
MMAP_ANON che permette di allocare una porzione di memoria senza
usare alcun file di partenza. Siccome tale flag non e' standard, un
altro metodo piu' portabile e' quello di fare mmap di /dev/zero.
(se vi sembra una soluzione astrusa sappiate che e' usata anche dalla
funzione malloc() della glibc per gestire le richieste di allocazione
superiori ai 128 KB).
Per quanto riguarda la condivisione della memoria tra piu' processi,
mmap() si puo' chiamare col flag MMAP_SHARED, ma poi non so di
preciso come fare per condividere la memoria cosi' ottenuta, quindi
preferisco starmene zitto piuttosto che dire una castronata ;))
-- 
addio, e grazie per tutto il pesce

 
http://groups.google.com/advanced_group_search

 Spiega meglio [1] quello che vuoi fare.
Credo si riferisca al trucco usato per mappare un'area di memoria > di 
16k da usare per il dma.
Per applicazioni che non devono dialogare con l'hw, imho non ha senso.
Si parla di cio' sul libro (ottimo) di rubini, capitolo 8 o 9, mi pare 
(Boot time allocation?)


 Che libreria?
Che ne so :-)) A me poi i monitor nuociono. Cerca su freshmeat e qualcosa
salta fuori di sicuro. 
Se ti piace il MT dai un'occhiata a libmtrwe sul sito in firma.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
        **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
 [cowo@braveheart cowo]$ make sex
    make: *** No rule to make target 'sex'.  Stop. 

 Se ti piace il MT dai un'occhiata a libmtrwe sul sito in firma.
So veramente poco di thread. E' l'unico capitolo che la profe ha 
saltato. Ora cmq, me lo studio. 


 saltato. Ora cmq, me lo studio. 
Oddio... 
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Computer programmers never die, they just get lost in the processing. !>-

 locazioni fisiche della memoria.
non so se e' quello a cui si riferisce lui, ma ho visto fare qualcosa
di simile da un driver per una scheda di acquisizione (matrox
meteor): con un adeguato append="mem=xxM" nella configurazione del
boot loader si dice al kernel di non usare tutta la memoria
disponibile, e quella che avanza e' usata dal driver come frame buffer.


 disponibile, e quella che avanza e' usata dal driver come frame buffer.
E' il metodo utilizzato dai drivers o dal kernel per allocare pagine di 
memoria fisica (contigua) piu' grandi di tot kb (non ricordo mai il 
valore. 16k o 128k?).
In effetti e' utilizzata generalmente dalle schede di acquisizione.
L'ho usato anche io per scrivere il driver di una dma busmaster pci. 
Sul libro di rubini c'e' un capitolo sull'allocazione e sul dma, ed un 
driver di esempio (allocator.o)
