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
