Si tienes memoria transaccional y las transacciones son versionadas
(optimistic locking), entonces se mantiene la coherencia transaccional de
cada una de las transacciones aunque ejecuten en paralelo.



2012/11/20 Andres Valloud <[email protected]>

> Si hay cosas como generaciones, entonces become: aun con object table
> es un quilombo porque te pueden quedar referencias cruzadas que no se
> permiten en tu implementacion.  A veces puede que no te quede otra que
> copiar object bodies.  Y ademas actualizar los remember tables de
> turno, hacer algo especial si esta andando el IGC, y todas esas cosas.
>
> 2012/11/20 Hernan Wilkinson <[email protected]>:
> > dependiendo de la implementacion del manejo de memoria, el become puede
> ser
> > simple o complejo... en el caso de usar forward references
> (implementacion
> > que usa la mayoria) el become es similar el paso del mark de un gc de
> mark &
> > sweep, o sea, hay que buscar todas las referencias, y por lo tanto su
> > implementacion sera similar a la del gc y en la mayoria de los
> smalltalks el
> > gc hace un "stop the world"... tene en cuenta que la mayoria de las
> > implementaciones usan green threads.
> >
> > En el caso de gemstone que usa object table, el become es un simple swap
> de
> > referencias y resuelven el conflico de concurrecia simplemente por
> utilizar
> > memoria transaccional, no tienen que hacer nada raro mas alla de lo que
> ya
> > proveen para trabajar concurrentemente (segun lo que entiendo, puedo
> estar
> > equivocado)
> >
> > Saludos
> > Hernan.
> >
> >
> > 2012/11/19 Angel Java Lopez <[email protected]>
> >>
> >> Hola gente!
> >>
> >> Hoy, mientras leia el Smalltalk-80 the language and its implementation
> en
> >> el desayuno, se me ocurrio pensar:
> >>
> >> Como hace un Smalltalk para hacer un become: si hay multithreading (es
> >> decir, si hay varios threads ejecutandose)?
> >> Pues me imagino que mientras se hace
> >>
> >> a become: b
> >>
> >> alguno otro thread puede estar operando con b o con a (por ejemplo, tomo
> >> la clase de b ANTES del become, lookup de un metodo, y luego lo aplica
> a b
> >> DESPUES del become)
> >> (o, si la implementacion interna es un object table (una celda por
> >> objeto), accedo a la celda de b, tomo algo de la celda (por ejemplo, el
> >> puntero a la clase), y mientras me cambian la celda, donde esta el
> puntero
> >> al resto de los datos)
> >> (tambien me puedo imaginar una implementacion por object table (una
> celda
> >> por objeto), donde haya menos cosas que confundan a un become: a medio
> >> hacer; por ejemplo, que tenga apenas el puntero al contenido del
> objeto, y
> >> ahi en el contenido este el puntero a la clase).
> >>
> >> Bueno, no se si me explico ..
> >>
> >> Tienen idea?
> >>
> >> Me imagino respuestas:
> >>
> >> - No, los Smalltalks X, Y, Z solo manejan un thread, y todo lo demas son
> >> "green threads"
> >> - En el Smalltalk W, hacemos become: multithreading, pero sin controlar
> >> nada (sin poner locks, semaforos o lo que sea)
> >> - En el Smalltalk T, tenemos multithread y hacemos un lindo bolonki para
> >> hacer que el become: sea thread-safe
> >> - En el Smalltalk S, tenemos multithread y la implementacion interna
> >> (object table con celda atomica, con pocos datos; o puntero directo, o
> lo
> >> que sea) es tal, que el become termina siendo thread-safe por naturaleza
> >>
> >> Cual es?
> >>
> >> Nos leemos!
> >>
> >> Angel "Java" Lopez
> >> @ajlopez
> >>
> >> --
> >> To post to this group, send email to [email protected]
> >> To unsubscribe from this group, send email to
> >> [email protected]
> >>
> >> http://www.clubSmalltalk.org
> >
> >
> >
> >
> > --
> > Hernán Wilkinson
> > Agile Software Development, Teaching & Coaching
> > Phone: +54 - 011 - 6091 - 3125
> > Mobile: +54 - 911 - 4470 - 7207
> > email: [email protected]
> > site: http://www.10Pines.com
> > Address: Alem 693, Floor 5 B, Buenos Aires, Argentina
> >
> > --
> > To post to this group, send email to [email protected]
> > To unsubscribe from this group, send email to
> > [email protected]
> >
> > http://www.clubSmalltalk.org
>
> --
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
>
> http://www.clubSmalltalk.org
>



-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]

http://www.clubSmalltalk.org

Responder a