CENTRO DE INVESTIQíUMON Y Ot ESTUDIOS AVANZADOS 0EL i. P. N. B IB L IO T E C A ING E N I E R A ELECTRICA CENTBO DE INVEST1GACIOH Y DE ESTUDIOS AVADADOS DEL INSTITUTO POLITECNICO NACIONAL De p a r t a m e n t o de I n g e n ie r ía E l é c t r ic a S e c c ió n d e Co m p u t a c ió n CENTRO DE INVESTIGACION Y Dfc ESTUDIOS AVANZADOS DEL I. P. N. b i b l i o t e c a INGENIERÍA ELECTRICA "LENGUAJE C PE1SISTENTE" Tesis obtener el que presenta grado de FELIX FRANCISCO MAESTRO EN CIENCIAS RAMOS CORCHADO para en la especialidad de INGENIERIA ELECTRICA con opcion de COMPUTACION México D.F. Jul io de 1989 <d edid ica ción > — <pa d res> ► <pa d res> <hermanos> ’y ’ -----► y k Z ix %aMb&o Paouued/UL - I X&wiUa. S. cte JìxjMi&ò <hermanos> ------ ► <nom bres><a p e llid o s > <nom bres> ------ ¥ JM guel sin ge t / JKasús 'S-wi&ùtir I Jia. i PaM icia. / Jia, de £<sxiAxLe¿> / Ma, i 'S-uÀtt&UM PoAZa / PedAa ÿaA ji& i i tfe'iQZ l Ma/ics jtfrUtrnÀs i $VAJ\ t o M a o --- * Xomkto 'Qe'uJuular <ap&llidos> CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS bel i. P . N. B I B L I O T E C A INGENIERIA ELECTRICA i dLeZ PUaA. £ u io a . < a g ra d e c im ie n to s > ---- * < a sesores> t <ju ra d o> / < in s titu c ió n > t omUq&o < a s e s o r e s > ---- > JleruLbr S oaa&ul JUv&ia. / J txcmi 'Soa Zg o P é t e ? 'SaotaXíeda < j u r a d o > ----- * fruajn. ’S a/iteo tPéie.^ 'Gaotdfteda. / / < \ n s titu c ió n > ----- ► 'K&taA. J’cJts'i Qocasi Olmeda rfguÁAAe, I ’€OJ*JTSJ‘ / SZMtfcT* rPWTBn nc ¡'ii,rPTIn LtNTRO De í^yESTIQ ACION Y BE E ST üO . ' CS A V A N Z A D O S B E L I. P. N. B I B L I O T E C A ü INGENIERÍA ELECTRICA LENGUAJE CLPERSISTENTE TABLA DE CONTENIDO CAPITULO I INTRODUCCION 1.1 A n te c e d e n te s i 1.2 D e fin ic ió n del Problem a y solu ción 3 CAPITULO I I EL SISTEMA 5 II.1 Concepción d el S istem a II .2 C a r a c t e r ís t ic a s II.3 D escrip ció n d el s is te m a 6 111.1 E s tr u c tu r a de D atos 8 111.2 E s tr u c tu r a 8 III .3 P e r s is t e n c ia 8 del Len gu a je C _p ex*sisten te CAPITULO 6 III CONCEPTOS 111.4 P rogra m a ción p e r s is t e n t e 9 111.5 O b je to P e r s is t e n t e 9 III.ó O b je to Base 10 111.7 Indice 10 111.8 C lase 10 111.9 Indice de c la s e 10 CENTRO DE INVESTISAC!©N Y 01 ESTuOiCS AVANZADOS BEL I. P. N. B I B L I O T E C A INGENIERIA ELECTRICA CAPITULO IV PREPROCESADOR IV. 1 Necesidad d el P r e p ro c e s a d o r 11 IV.2 T a re a 12 IV.2.1 D ecla ra cio n es de OPs IY.2.1.1 A u tóm ata p a ra r e c o n o c e r Objetaos IV.2.1.2 A u tóm ata que re c o n o c e O b je to s IV.2.1.3 S in ta x is de d e c la ra c io n e s de O b je to s IV.2.2 Alcance de la s D ecla ra cion es de O b je to s IV.2.3 In s tru c c io n e s que In volu cran IV.2.4 In s tru c c io n e s que C on tien en Llamadas y su Im plantación 12 14 P e r s is t e n t e s COPs) de t ip o b á s ic o 15 P e r s is t e n t e s de Tipo E s tr u c tu r a 16 P e r s is t e n t e s COPs> 18 P e r s is t e n t e s Id e n tific a d o r-e s de O b je to s P e r s is t e n t e s 18 a Funciones del M anejador de O b je to s 22 P e r s is t e n t e s MOP CAPITULO V MANEJADOR DE OBJETOS PERSISTENTES. 24 V.l M anejador de O b je to s P e r s is t e n t e s V.2 Mecanismo de C orresp on d en cia V.2.Í Id e n tific a d o r de O b je to P e r s is t e n t e . V.2.2 E s tr u c tu r a de un O b je to P e r s is t e n t e . 26 V.2.3 D ir e c t o r io de U suarios. 29 Y.2.4 D ir e c t o r io de In form ación . 29 Y.2.5 In dice del O b je to Base. V.2.6 F o rm a to de O b je to s P e r s is t e n t e s V.2.7 F o rm a to de O b je to s P e r s is t e n t e s R e s id e n te s en Memoria Secundaria. 31 V.2.8 Indice de Clases. 32 V.3 Alm acenam iento P e r s is t e n t e 34 e n t r e la M emoria P rim a ria y la M emoria Secu n daria R e s id e n te s en Memoria Prim a ria . 25 26 29 30 V.3.1 In form ación que s e N e c e s ita C o n s e rv a r 34 V.3.2 C o n s s is te n c ia en los D atos 35 V.3.3 Método de C o n s is te n c ia 35 V.4 Mecanismo de T ran sacción 36 36 V.4.1. E fic ie n c ia en la s Tra n sa ccion es V.4.1.1 C osto de la s T ra n sa ccion es 36 V.4.1.2 L im ita n te s F ís ic a s 37 V.4.2 Tra n sa ccion es A tóm icas 37 V.4.2.1 Condiciones de Falla 38 V.5 Funciones Im plantadas 41 V.5.1 Funciones p a ra e l Manejo de O b je to s V.5.1.1 AbreBase. 42 V.5.1.2 Bbase. 44 V.5.2 Funciones p a ra e l Manejo de O b je to s V.5.2.1 Busca. 46 48 Base 42 P e r s is t e n t e s . 46 V.5.2.2 In s e rta . V.5.2.3 B orraob. V.5.3 Funciones p a ra E fe c tu a r V.5.3.1 Compromiso 52 e l Compromiso de la T ran sacción 53 53 CAPITULO VI PRUEBAS Y EJEMPLOS VI.1 Ejem plos de R esu ltados del P r e p ro c e s a d o r VI.2 Tiempos de E jecu ción de O peracion es VI.3 P ro y ecció n de la Im plantación Básicas del MOP 56 79 89 CAPITULO V II CONCLUSIONES 91 BIBLIOGRAFIA 95 v 1 C _ P e r x is t e n t e CAPITULO I INTRODUCCION El p r o p ó s it o d el p r e s e n t e t r a b a jo p ro g ra m a ció n basán dose que en tie n d e la e s p r e s e n t a r un en fo q u e en a fa c ilita r u n ific a c ió n de la s el d e s a r r o llo de a b s tr a c c io n e s la s is te m a s , de m em oria p rim a ria y m em oria secu ndaria. 1.1 ANTECEDENTES En le n g u a je s m em oria t r a d ic io n a le s p rim a ria ; s in e x is t e la d a to s en m an ejador de m em oria secu n d a ria , in fo rm a c ió n que n os p a ra o tra es ú t il que é s to s o p ción es el u su a rio crea r t e n d r á que c r e a r alguna fu n ción que e n t e r e a l s is te m a sy s te m ") el de c o n s e r v a r lo s C file si fa c ilid a d desea a r c h iv o s em bargo, sean d isp on ib le em pleo de alm acenados p ara o tra s en co n serva r h e r r cim ientas, como lo son lo s m an eja d o res de b a s e s de d a to s o lo s m a n eja d o res de a rc h iv o s . De en lo con serva r a n t e r io r c ie r ta podem os d e c ir in fo rm a c ió n , que t ie n e el u su a rio que tra b a ja r- in te r e s a d o con dos t ip o s de d a to s d if e r e n t e s que son: i.- Los c re ó . que d esa p a re c e n ju n to con el p ro gra m a que lo s 2 C _ P e r s is t e n t e ii.- L o s que d es e a co n serva r aún d espu és de que norm alm ente con el p rogra m a que lo s c r e ó term in e. Elp rim e r capacidades m ediante t ip o e l s is te m a p ro ced u a les, d el de d a to e s m anejado mismas por m an ejador del le n g u a je , mane ja d o r fu n c io n e s de bases m ie n tra s de a rc h iv o s e s p e c ific a s de d a to s , que en e l p a ra o la s e l segundo caso ese de fin m edian te es le n g u a je s en la s lo el ca so fa c ilid a d e s im plantadas en e l m anejador de a rc h iv o s . Haciendo in fo rm a c ió n con la s un y a n á lis is alm acen arla, fa c ilid a d e s g e n e ra l, ya en tid a d e s , que así por d a to s a r b o r e c e n te r e g is tr o b ien de de le n g u a je s de ejem p lo ; p a ra o una r e d e tc .. no gu a rd a r n e c e s a r io la en un e n tre fa c ilid a d e s p a ra que c r e a r casi cu a lq u ier g en era r es r e la c ió n una crear in fo rm a c ió n le n g u a je tra d ic io n a l, podemos una capa de que E s ta puede la más e n tre estru c tu ra lo s o b ten id a s in in fo rm a c ió n le n g u a je dos de la fa s e g en era r con la s je r á r q u ic o , a n á lis is deseada de m ed ian te ten em o s m em oria, la s que o de de un n e c e s a r io fa c ilid a d e s el p rim a ria de un lé x ic o in fo rm a c ió n fa c ilid a d e s em bargo, en e l p r o c e s o p roced u al t ip o s un s is te m a re p re s e n te v e r s a tild a d ser m an ejador de b a s e s de d a to s , d isp o n ib les un e s t a b le c e r un t r a b a ja d o r un com pilador, la s en con tra m os en la cual cada uno de su s nodos r e p r e s e n t e podemos c r e a r lo s p ro p ia s podemos de nos y mapeo secu n d a ria , p a ra c o n s e r v a r lo s d a to s e s e fe c tu a d o en dos p a r t e s : i.- ii.- Código g en era d o por e l u su ario p a ra e s t e fin . Lo Fu nciones del m anejador de a rc h iv o s . m an ejador a n t e r io r de d a to s , ya que e s n e c e s a r io debido a que a r c h iv o s o rg a n iz a n a d m in istra n lo s le n g u a je s de una m anera d if e r e n t e s t ip o s de d if e r e n t e m em oria . y lo s el 3 C _ P e r s is t e n t e Las d ife r e n c ia s e n tre lo s dos t ip o s de d a to s , a su lo n g itu d de vid a como a su dominio, tra e n ta n t o re s p e c to c o n s ig o p roblem as a l u su a rio , p o r ejem plo: - E n ten d er e l m anejo del mapeo e n t r e lo s dos t ip o s de d a to s p a ra a s í generar- e l có d igo n e c e s a rio . - P érd id a de la p o sib le p r o te c c ió n o fr e c id a por el d e fin ir el len g u a je a la in form ación . 1.2 DEFINICION DEL PROBLEMA Y SOLUCION Teniendo como lo s la a n te c e d e n te s e x is t e n c ia o rg a n iz a c ió n , cada m an ejador de de uno a n t e r io r e s , podemos dos t ip o s de por p a rte s m anejado a rc h iv o s d a to s dos d if e r e n t e s r e s p e c t iv a m e n t e ). u su ario a h a c e r uso a rm on ioso de la s y de C lenguaje lo cual fa c ilid a d e s , problem a t ip o s d ific u lt a qué p a ra y al gen era r in fo rm a c ió n y c o n s e r v a r la p ro p o rc io n a un len gu a je. E x is te n como es el ca so común d iv e r s a s s o lu c io n e s a un problem a, y en n u e s tr o c a so ten em os las s ig u ie n te s : 1^.- im p la n ta r un le n g u a je que s u s t r a ig a el problem a d e te c ta d o .* 2a.- im p la n ta r s o lu c io n a r el fu n cio n es problem a en que la s ayuden de h e rra m ie n ta s alguna m anera d isp o n ib les ya a sea n m a n eja d o res de b a s e s de d a to s o le n g u a je s p roced u ales. En n u e s tr o h e rra m ie n ta s solu ció n c a so de a ca so d isp o n ib les e s te problem a, le n g u a je s despu es y de de la s hacer seleccion am os proceduades y un e s tu d io c o r r ie n t e s la que segunda e s ta b le c e m o s op ción como de la s d ir ig e n p a ra solu ció n la el la s ig u ie n te : U n ific a r e l m anejo de lo s el pu nto de im p lan tación v is ta de del fu n c io n e s ^im plantaciones de Sma.llTa.lk de Xerox. este dos t ip o s u s u a r io ) que tipo en de el p e rm ita n in icia n d a to s d e te c ta d o s le n g u a je ad con C, le n g u a je el (b a jo m ediante hacer d e sa rro llo la el de 4 C P e rs is te ríte mismo n iv e l con cep ción de d el p o s ib le al p rim e ro d e b e rá y el es com pilador el puede del len g u a je que de se e in d ic a r d es e a ambos al el de lo s como una o d a to s . m ayor dos c o n s u lta r. el p e r s is t e n t e s , b ib lio te c a el La t r a b a jo módulos, o b je t o s com pilador con serva r t ip o s d e ja r im p la n ta r in fo rm a ció n c o n c e p tu liz a r s e o b je t iv o in fo rm a c ió n p a ra e scen cia lm en te de e x t r a e r segundo tie n e a b s tr a c c ió n s is te m a la m anejo cual de El p r o p ó s ito la d el p r e s e n t e t r a b a jo d e s c r ib ir la im plan tación de dichas fu n cion es. El p re s e n te t r a b a jo e s tá o rg a n iza d o en s e is c a p ítu lo s , incluyendo e l p r e s e n t e , de lo s cu ales damos una l i s t a a con tin u ación . I.- In trodu cción . II.- El Sistem a. III.- Conceptos. IV.- P re p ro c e s a d o r. V.- M anejador VI.- P ru ebas VII.- C onclusiones de y Apendice O b je to s P e r s is t e n t e s . Ejem plos. y P ro y e c c ió n del c o n tie n e : La L en gu aje. A. Apendice B. El p rim e r c a p ítu lo a n te c e d e n te s , im plantada. s is te m a , la En su s c o n s titu y e n . en la c a p ítu lo En el c a p ítu lo im plantación. ca p ítu lo de o b je t o s con clu sion es a pén dice de lo s VI c o n tie n e tie m p o s sob re el II Los módulos lo s de p e r s p e c t iv a s la m u e s tra la la s c a p ítu lo s que la s docum entación IV y o b te n id o s o p e ra c io n e s de que té rm in o s del lo usados V d e s c rib e n la s el sis te m a . El de la s b á s ic a s VII im plan tación . la s lo s solu ció n con cep ción c a p itu lo la la p a rte s lo s componen El de y d e s c rib e d e s c rib e n re s u lta d o s p e r s is t e n t e s . y se se in tro d u c c ió n , problem a y III e je c u c ió n c o n tie n e e l s is te m a . del c a r a c t e r ís t ic a s im p la n ta cio n es lo s d e fin ic ió n fu n c io n e s p ru eb a s y e fe c tu a d a s c o n tie n e Fin alm en te que el componen S G _ P e r s is t e n t e CAPITULO II EL SISTEMA I I . l CONCEPCION DEL SISTEMA El s is te m a p re s e n ta d o e s un p rogra m a com pu esto de que p e rm ite n h a c e r p rogra m a ción p e r s is t e n t e , p ro g ra m a s dos es, módulos e s c r ib ir que tie n e n e l mismo n iv e l de a b s tr a c c c ió n p a ra m em oria p rim a ria y m em oria secu ndaria. De e s t á del é s to le n g u a je , in fo rm a c ió n , p o s te r io r m e n te el u su ario puede mandarla p a ra a m anera con la s crea r, m em oria elim in a r secu n d a ria o y capacidades m o d ific a r s o lic it a r la em p learla con e l mismo p ro c e d im ie n to o con o t r o s i t ie n e e l p erm iso de a c c e s o apropiado. E s te n iv e l de a b s tr a c c ió n p e r m ite a l u su a rio no p re o c u p a rs e de la fo rm a en que e s tá n guardados lo s d a tos. F is- I I . l Diagram a de con cepción del s is te m a 6 C _ P e r s is t e n t e II.l CARACTERISTICAS i>.~ El u n iv e rs o de mismo que el DEL C-PERSISTENTE d iscu rso del le n g u a je e l del len g u a je p e r s is t e n t e s , s a lv o ’‘C _ p e r s is t e n t e " "C” más lo s r e s t r ic c io n e s p o s te r io r m e n te . Con e s t o es o b je t o s d is c u tid a s asegu ram os un cambio mínimo a l len gu a je. ii> - C rea ción será IT.3 a de o b je t o s p a r t ir DESCRIPCION de DEL su p e r s is t e n t e s . y son fu e e s c o g id o - p a ra p ro p o rc io n a r por la s P o s e e buena id e n t ific a c ió n SISTEMA Los módulos que componen e l s is te m a e s tá n “ G" Su d eclaración . p e r s is t e n c ia s ig u ie n te s p o rta b ilid a d , im plan tados en le n g u a je al le n g u a je ”C” , e l cual ra zo n e s : e s to es, es el en la m ayoría de lo s ca s o s c o r r e s in ningún cam bio có d igo en g en era d o d if e r e n t e s com putadoras. - Es un le n g u a je que p r o v e e la fa c ilid a d de in c lu ir fu n c io n e s en b ib lio te c a s , la s cu ales pueden s e r em pleadas fá c ilm e n te . El s is te m a e s p e c ífic a s . E s to s e s tá d ividido en módulos y dos su s fu n c io n e s módulos son la s con fu n c io n e s s ig u ie n te s : i>.- P r e p ro c e s a d o r. Función que desempeña: G en era a le n g u a je " C - p e r s is t e n t e " , p a r tir en le n g u a je "C". d el p ro g ra m a e s c r i t o un p ro g ra m a en e q u iv a le n te 7 C _ P e r s is t e n t e ii> - M anejador Función de O b je to s que P e r s is t e n t e s CMOP) desempeña: Mapea de m em oria p rim a ria (RAM) a m em oria secu n d a ria (d is c o ) y v ic e v e r s a . La fo rm a como e l s is te m a o p e ra e s la s ig u ie n te : i.- El p ro c e s a d o r r e c ib e “ C - p e r s is t e n t e " . id e n t ific a d o r e s llam adas a exp a n sion es de la s de in s tr u c c io n e s como e n tra d a un a rc h iv o Con e s t e o b je t o s gen era p e r s is t e n t e s , fu n cio n es del MOP la s que p e r s is t e n t e s p a ra pogram a, p a ra en de id e n t if ic a la s e fe c tu a r la s fu n cio n es n e c e s a r ia s , m anejan in d ire c c io n e s de o b je t o s Jlamada l?. fu n ción h a cer la e e s c r ito una l i s t a id e n t ific a a la s m an ejad ora de in d ire c c io n e s . ii.- El por p ro gra m a un c o m etid o s o b je t o s . r e s u lt a n t e en le n g u a je "C " puede p a s a r com pilador e s ta n d a r que d e t e c t a r á y lig a r a la s fu n cio n es d el lo s ya errores m an ejador de 8 C P e rs is te n te CAPITULO III CONCEPTOS E s te c a p ítu lo la r g o de la d e s c rib e t e s is . p ro gra m a ció n L os algunos, de lo s c o n c e p to s c o n c e p to s p e r s is t e n t e , d e s c r it o s o b je t o em pleados a son: p e r s is t e n t e , lo p e r s is t e n c ia , ín d ice de o b je t o b a se, c la s e e ín d ice de clase. 111.1 ESTRUCTURA DE DATOS E s te una té rm in o unidad y es cuya em pleado paira r e f e r i r c a r a c t e r ís t ic a d a to s que s e p r in c ip a l es la m anejan como r e p r e s e n ta c ió n de c i e r t a s e s t r u c t u r a s , p o r ejem plo: lis t a s , p ila s , a r b o le s , e tc . . 111.2 ESTRUCTURA Por sim plicidad, cuando s e m encione e l té rm in o e s tru c tu ra , se e s t a r é hablando de una e s t r u c t u r a del le n g u a je "C” . III.5 OBJETO PERSISTENTE Un té rm in o P e r s is t e n t e que C'OP” m anejam os u "o p " fre c u e n te m e n te >. E s te es té rm in o o b je t o s que tie n e n la s p ro p ied a d es s ig u ie n te s : el lo de O b je to ap licam os a 9 C _ P e r s is t e n t e i) . - Un o b je t o le n g u a je ii).~ Un p e r s is t e n t e que o b je t o tiem p o iii> .- Un es s o p o rta un e lem en to del d is c u rs o del la p e r s is te n c ia . p e r s is t e n t e , si se d esea , puede e x is tir más que e l p rogram a que lo a c tiv a . o b je t o p e r s is t e n t e e fe c t u a r con (in s e r c ió n , él puede m od ifica ción , p ro ced im ien to n e c e s a r io y ser cu a lq u iera de que lo la s a ccesad o o p e ra c io n e s b o r r a d o ), re q u ie r a , si por t ie n e p a ra b á sica s cu a lqu ier el p erm iso s in im p o r ta r que é s t e no lo haya cread o. III.4 PERSISTENCIA El té rm in o e s tá p e r s is t e n c ia rela cio n a d o d u ra n te el con cual la su se a p lic a p e río d o de in fo rm a c ió n a un vid a, (o b je t o ) o b je t o es to Cvéase es, es con a c c e s ib le II.5 ) el y tiem p o p a ra su empleo. En p e río d o se le n g u a je s tra d ic io n a le s lo s d a to s norm alm ente de vid a ig u a l o m enor al del p rogra m a desea a r c h iv o s , que lo s tie n e n un a c t iv a ; si que lo s d a to s s o b r e v iv a n s e n e c e s it a r á d el s is te m a de o de un m anejador de b ase de d a to s y de có d igo d el usuario. En le n g u a je s con la fa c ilid a d p ro gra m a d o r no in fo rm a ció n . El m étodo de a c c e s o a lo s si e l d a to es de de p e r s is t e n c ia , el t ie n e que s a lir s e de su t a r e a p a r a alm acenar vid a c o r t a o d a to s es su in d ep en d ien te de la rg a . III.5 PROGRAMACION PERSISTENTE Por p ro gra m a ció n p ro gra m a ció n alm acenam iento p e r s is t e n t e en ten dem os donde e l u su ario no t ie n e de lo s d a to s que un m étodo que p re o c u p a rs e sea n ú t ile s por de el p a ra 10 C _ P e r s is t e n t e p ro c e s a m ie n to s c r e ó o con p o s t e r io r e s , o t r o que lo s ya sea con el p ro c e d im ie n to que lo s req u ie ra . 111.6 OBJETO BASE Un o b je t o b ase e s una e s t r u c t u r a de t ip o "C" que fu n cion a como en cab ezad o p a ra " c o lg a r " o b je t o s p e r s is t e n t e s . 111.7 INDICE E s tr u c tu r a de d a to s p o r la que s e pueden a c c e s a r lo s o b je t o s p r e s is t e n t e s y c la s e s “ c o lg a d o s” de un o b je t o base. 111.8 CLASE Una c la s e es un co n ju n to de o b je t o s de una c la s e e s tru c tu ra t ip o decla ra ció n . La d ec la ra c ió n d e c la ra c ió n una de ,'C,,. Su que es co m p a rten o b te n id a id e n t ific a d o r una de la d e n tr o d el ín d ice e s o b ten id o del id e n t ific a d o r de la e s tr u c tu r a . 111.9 INDICE DE CLASE E s tr u c tu r a de d a to s p o r medio de la cual s e pueden o b je t o s de una c la s e y que p e r te n c e n a un o b je t o base. accesar lo s C _ p e r s is t e n t e 11 CAPITULO IV PREPROCESADOR E s te c a p ítu lo se r e fie r e al t r a b a jo re a liz a d o por el p re p r o c e s a d o r , uno de lo s dos módulos que componen e l sistem a . En e s te p rep rocesad or, ta re a s cap itu lo se se exp lica que e fe c t ú a y se la ju s tific a fo rm a d e s c r ib e la en la que necesidad son in fo rm a ció n cual e l com pilador esta n d a r C, puede m an ejar del r e a liz a d a s g en erad a, con ju n tam en te con la s la con e l MOP lo s OPs. IV .l NECESIDAD DEL PREPROCESADOR En e l s is te m a un p resen ta d o p ro c e d im ie n to le n g u a je que el tom a C _ p e r s is te n te , y p r e p ro c e s a d o r como e n tra d a e n tre g a como un de C _ p e r s is te n te p rogram a sa lid a un e s c r ito p rogram a es en que e f e c t ú a l a ( s ) m isupCs) t a r e a ( s ) que e l que tom ó como e n tra d a , con la con d ife r e n c ia un de que com pilador de el p rogram a C r e s u lt a n t e " e s ta n d a r ", p odrá incluyendo el ser com pilado p re p ro c e s a d o r p ro p io d el com pilador. E s te módulo e s n e c e s a rio p o r la s s ig u ie n te s ra zo n es: Cp e rsis te n te i.- El 12 m étodo adoptado le n g u a je que con tra e base és te se c o n s ig o de in c re m e n ta r Cen n u e s tro c a so pueda h acer la p o ten cia e l len gu a je p rogra m a ción p e r s is t e n t e , que e l com pilador ya no s e a om n ip oten te en cu a n to a lo s t ip o s de d a to s que pueden s e r un p rogra m a , e s t o de o b te n e r com p ilad or, del "C**>, p a ra im plica, que e l s is te m a in form a ción p a ra que n e c e s a r ia é s te y pueda manejados en p ro p u esto debe com unicarla e fe c t u a r su al ta re a norm alm ente. ii.- L os u s u a r io s MOP por p o s ib le lo s e rá n que lo s és ta s que u t iliz a r á n deben de las ser: fu n cion es p o d ero sa s y del en lo tra n s p a r e n te s . IV.2 TAREA Y SU IMPLANTACION La t a r e a en c a rg a d a a l p re p ro c e s a d o r de o b te n e r o b je t o s p e r s is t e n t e s efectu a n d o un a n á lis is que al m aneja program a un in form a ción de lo s progra m a , e s c r ito en se r e s u e lv e C _ p e s is te n te , en e s t e a n á lis is s e id e n tific a n : i- DecLar acio n es de OPs. ii.- A m b ito de las d ecla ra cio n es de OPs. iii- In s tr u c c io n e s que iv - In s tr u c c io n e s que involucran id e n t ific a d o r e s con tien en llam adas a de OPs. fu n cion es d el m an ejador de OPs. A c o n tin u a c ió n cada uno n ecesa ria . de lo s se d e s c rib e in c is o s la in fo rm a c ió n a n t e r io r e s , y se que se ex p lic a o b tie n e de porqué es C _ p e r s is t e n t e 13 IV.2.1 DECLARACIONES DE OPs. El p ro c e s a m ie n to de la s d ecla ra cio n es de OP es n e c e s a rio por la s s ig u ie n te s ra zo n e s : i.- El MOP n e c e s ita to m a r s a b er d e c is io n e s la con d e s c rip c ió n re s p e c to de a los su OPs p a ra ad m in istración , ya que de la d escrip ció n s e puede d eterm in a r: - Tipo del o b je t o (c a r á c t e r , e n t e r o , e s tr u c tu r a , e t c .). - Tamaño en b y te s que ocupa. - Alcance ii.~ Los de los OPs son id e n t ific a d o r e s en tid ad es que sus únicam ente por medio cu ales son asignados le s denominamos lo s PID s, PIDs p a ra e s tru c tu ra d eclarad as lo es to s d e n tro de (v é a s e hacer hace de v á lid o s ), de al t ip o las Como medio a de apu n tador tie n e n d ec la ra c io n e s de el algún de Ejemplo 1: Supongamos la s ig u ie n te d eclaración : p e r s is t e n t s t r u c t perro-C char nombre[201; in t edad; s t r u c t p e r r o » h ijo ; s t r u c t p e r r o »p a d re ; >; p e r s is t e n t s t r u c t p e r r o * p p e r r o l,* p p e r r o ; y lo s que usuario no sab e o b je t o de t ip o (ú n icos tra n s fo rm a d o s a PIDs. únicos, crea rse v a ria b le s que OPs. r e fe r e n c ia d a s id e n tific a d o r e s V.2.1>. a p u n tadores los ser momento r e fe r e n c ia por de pueden ser p e r is t e n t e s ap u n ta d o res id e n tific a d o s e s tr u c tu r a s y 14 C _ p e r s is t e n t e El p re p ro c e s a d o r tr a n s fo r m a e s te con ju n to de d ec la ra c io n e s en: s t r u c t p erro < char nombre[20J; in t edad; long h ijo ; long p adre; >; s t r u c t p e r r o * p p e r r o l,* p p e r r o ; iii.- La p osición ocupada p o r una decla ra ción d e n tr o del código nos s ir v e para: - G enerar una ta b la que nos indique e l alcan ce de los de la s id e n tific a d o r e s . - Generar- el apu ntador in s tru c c io n e s apropiado, Debido a que las d ec la ra c io n e s d ec la ra c io n e s del v e r ifiq u e s in ta x is e s te la C e s t andar, p roced im ien to de a la a que hacen uso de los las vez es de OPs p a r tir id e n tific a d o r e s . son d if e r e n t e s de la s n e c e s a rio un p ro ced im ien to d ecla ra cion es. En e s ta que v e r ific a la que im plan tación s in ta x is o b tie n e la in fo rm a ció n que re q u ie r e e l MOP. Los " in t " , OPs que son e s tr u c tu r a s m u estran , a y m anera de re c o n o c id o s a r r e g lo s g r á fo s , de lo s p or el s is te m a é s to s . au tóm atas A son "c h a r", con tin u ación que se reco n o cen su d el d iscu rso del s in ta x is . IV.2.1.1 A u tóm ata Un OP de t ip o C e s ta n d a r que Reconoce b á sico puede de t ip o en te ro , ser OPs de cu alqu ier ca rá c te r, Tipo B ásico. elem en to o a r r e g lo de es to s . Debido a 15 C_persistente que lo s por OPs son en tid a d es medio PIDs, deben bá sico v a r ia b le s de tip o é s to s la p r e s e n te en que únicam ente de ser de C. La im plan tación pueden s e r d is tin g u ib le s a manera es en dando r e fe r e n c ia d a s lo s OPs que se de las d ife r e n c ia n una s in ta x is d ife r e n t e a lo s OPs de tip o básico. A el continuación a u tóm a ta que se m u estra re c o n o c e la a m anera s in ta x is de g r á fo de d ecla ra cio n es d ir ig id o de t ip o e n t e r o , c a r á c t e r y a r r e g lo s de e s t o s . F ig IV .l Autóm ata p a ra re c o n o c e r tip o s e n te r o , c a r a c t e r y a r r e g lo s de e s to s . IV.2.1.2 Autóm ata Que R econoce Tipos E stru ctu ra . El a u tóm a ta IV.2a re p re s e n ta d o m uestran e stru c tu ra , s it a x is de la la fig u r a una en fo rm a s in ta x is IV.2 e stru ctu ra de de m u estra y g r á fo en d eclaracion es IV.2a la la la e s tr u c tu r a s in ta x is fig u r a de de OP IV.2 de gen eral lo s y tip o de la m iem bros de la e s tr u c tu r a . Las d iferen ciáis e n tre es ta s in ta x is y la del le n g u a je "C" p a ra e l t ip o e s tr u c tu r a son: i.- En len gu aje e s tr u c tu r a " C _ p e r s is t e n t e '’ no puede una c o n te n e r d ecla ra ción o tra de un tip o d ecla ra ció n de tip o e s tru c tu ra . ii.- En len gu aje hacer "C _ p e r s is t e n t e " r e fe r e n c ia a o tra s las e s t r u c t u r a s e s tr u c tu r a s pueden de t ip o 16 C_persistente p e rs is te n te a tra v é s de apuntadores. El preprocesador verifica la sintaxis de las declaraciones, si no son correctas, genera un mensaje de error, en caso contrario modifica la declaración, sustituyendo los campos de tipo apuntador por campos de enteros largos que contendrán los PIDs de los objetos persistentes referenciados. F ig IV.2 Autómata para verificar la sintaxis de estructura de OPs Fig. IV.2a Autómata para verificar la sintaxis de los miembros de una estructura. La salida de este autómata es mostrada en la fig. IV.2. IV.2.3 SINTAXIS DE DECLARACIONES PARA OBJETOS PERSISTENTES En esta sección se describe la sintaxis de la gramática de OPs, empleando la notación Bakus Naur Form CBNF) extendida y modificada. Los términos empleados fueron tomados del apéndice de la referencia 18. 17 C _ p e r s is t e n t e S in ta x is de d e c la r a c io n e s t y p e - s p e c ifie r : d e OP : := i n t e g e r - t y p e - s p e c i f ie r s tr u c t u r e - t y p e - s p e c if ie r ¡ i n t e g e r - t y p e - s p e c if i e r : := s ig n e d - t y p e - s p e c i f ie r ! ch a ra c t e r - t y p e - s p e c ifie r s i g n e d -ty p e -s p e c i f i e r in t c h a r a c t e r - ty p e -s p e c i f i e r ::= char s tr u c t-ty p e -s p e c if i e r = s t r u c t u r e - t y p e - d e f i n i t i on ¡ s t r u c t u r e - ty p e -r e fe r e n c e s t r u c t u r e - t y p e - d e f i n i t i on : : = ’ s t r u c t ’ {s t r u c tu r e - ta g ? > s tru c tu re -ty p e -re f eren ce s tru c tu -ta g fie ld - lis t ::= id e n tifie r : := { c o m p o n e n t-d e c la r a tio n c o m p o n e n t - d e c la r a t io n : : = ty p e -s p e c i f ie r co m p o n e n t-d e c l a r a t o i— l i s t : := >+ c o m p o n e n t-d e c l a r a t i o n - l i s t ' : := s i m p le -c o m p o n e n t s im p le -c o m p o n e n t d e c la r a to r : := ’ (c o m p o n e n t d e c l a r a t o r # c o m p o n e n t - d e c la r a t o r d e c la r a t o r ’ <' fie ld - lis t s t r u c t - s tru c tu re - ta g ’ j’ >+ ::= s im p le - d e c la r a t o r ! a r r a y - d e c la r a to r 1 p o in te r - d e c la r a to r s im p le - d e c l a r a t o r : := p o i n te r - d e c la r a to r a r r a y - d e c la r a t o r c o n s ta n t : := e x p r e s ió n id e n tifie r '» " d e c l a r a t o r d e c l a r a t o r ’ I * ( c o n s t a n t - e x p r e s ió n )? ’ 1 ’ 13 C _ p e r s ís t e n t e IV.2.2 Am bito de la s d e c la ra c io n e s de OP Dado que el com p ren sib le o b je t iv o por del p re p ro c e s a d o r un com pilador saber a de lo s id e n t ific a d o r e s p a r tir d el a n á lis is del de lo s es g en era r de G e s ta n d a r, cód igo G _ p e r s is te n te , OPs, p a ra un e l s is te m a gen era r el el cód igo n e c e s it a alcan ce a pu n tador apropiado. La fo rm a como id e n t ific a d o r e s , es e s tr u c tu r a d o s an idam ien to se igu al de t ip o d eterm in a a la bloque, el alcan ce m anejada por con ju n ta m en te más cercan o. E s ta té c n ic a es lo s con la em pleada de lo s le n g u a je s té c n ic a por de le n g u a je s como "p a s c a l" y "C ", etc.. IV.2.3 INSTRUCCIONES QUE INVOLUCRAN IDENTIFICADORES DE OP Como co n secu en cia de aún despu és de que in s tr u c c io n e s que r e f e r e n c ia lo que cuando la s m em oria d u ra n te y por a OPs ten em os lo lo s OPs L as la que en meraoria lo s s in OPs a la E s ta su re q u e rid o s . fu e r z a n que lo c in d fu n ción c a so cuando dar m anera (v é a s e ver que r e f e r e n c ia de expan sión , a un como im p lan tación , hace o p e ra de r e q u e rid o s a La p re s e n te lo c a liz a c ió n , En s id o en c re a d o s p rim a ria . p ro c e d im ie n to fu n ción s e c c ió n ). im p o r ta r un sid o p re s e n ta rá m encionadas. la por o cu rre co n te n id o s han hayan a n te r io r m e n te la p rim e ra OPs se la s hacer a n te r io r id a d , La a s itu a c ió n in s tr u c c io n e s e fe c t ú a llam adas 3 de e s t a p a ra , r e fe r e n c ia r e s té n de con OPs in s tr u c c ió n in t e r c a la OPs pueden en exp an sión lo s OPs lo s bién e x is tir lo s r e fe r e n c ia o poder* term in a d o , cre a d o s cual de haya p re p ro c e s a m ie n to OPs. cual la s OPs creo d ife r e n t e s . La segunda no lo s expan sión una del ejem p lo hacen en e l d e s c r it a s a m edian te La sid o en cu rso le íd o s ). s itu a c io n e s el a s itu a c io n e s r e fe r e n c ia d o s hace r e fe r e n c ia hu bierán tra n s a c c ió n ta n to lo s que (c a s o de que dos in s tr u c c io n e s p r e p ro c e s a m ie n to se prop ied ad p rogram a hacen p rim a ria la la el es a el co n tin u a ció n con lo s si es p o s ib le sea p o s ib le no PID s de 19 C_p e r s i s t e n t e r e f e r e n c i a r un OP s e g e n e ra un m en saje de e r r o r . Los ta b la p a r á m e tr o s de de la id e n t ific a d o r e s s in t á c t ic o . El t ip o a c a r á c t e r , p o r lo del fu n ción de v a lo r que e s son OPs que g e n e ra d o s g en era d a regresa n e c e s a r io la a tra vés d u ra n te fu n ció n un “c a s t " el es de la a n á lis is a p u n tador p a ra f o r z a r a l t ip o re q u e rid o . Ejemplo2: Supongamos la s ig u ie n te d ecla ra ció n , que es la única de t ip o p e r s is t e n t e en e l a rch ivo : p e r s is t e n t s t r u c t animales-C s t r u c t m a m íferos *pmam: s tr u c t aves ♦p ave; * p p e z; s t r u c t p ez s tr u c t r e p til *p re p ; > «p a n i; A p a r tir in fo rm a c ió n de é s t a apuntada por , e l p re p ro c e s a d o r g e n e r a la v a r ia b le t ip o s que es la una s ig u ie n te v a r ia b le de t ip o global: t ip o s anim ales clase campo tipo m a m ífe r o s pmam pest avez pavez pest pez ppez pest r e p tí1 p rep pest p e st como d é c l a r a e l t lp o de l campo a p u n t a d o r a © stru c tu ra. de C __p e isiste n te 20 Supongamos que el p re p ro c e s a d o r e n c u e n tra la s ig u ie n te in s tru c c ió n : p a n i-> p ave-> p atos-> n om b re ... E n ton ces g e n e r a la in fo rm a c ió n s ig u ie n te : campo_____ t ip o _________ clas e pañi pest anim ales p ave pest aves p a to s pest p a to nombre ch ar y con ayuda de é s t a s e e fe c t ú a la s ig u ie n te expansión: C s tru c t p a to s *>locin dC locin dC pan i->pave,ptipos[il,obase>~>patos, p tip o srj],o b a se> -> n o m b re donde p t ip o s til gen era d o por y el p t ip o s t jl son p r e p ro c e s a d o r la que p e te n e c e e l OP lo s y Ín d ices que d el id e n t ific a a r r e g lo el la p t ip o s c la s e a a l que s e hace r e fe r e n c ia . Ejem plo 3: Teniendo la d e c la ra c ió n dada en ejem p lo 1, sí en co n tra m o s s ig u ie n te in s tru c c ió n : p p errol-> ed a d = 2 5 ; El p r e p r o c e s a d o r la expande a * C s tru c t p e r r o * )lo c in d C p p e rro l,p tip o s [il,o b a s e > —>edad = 25; la 21 C _ p e r s is t e n t e y la in s tru c c ió n : p p e rro l-> h ijo -> e d a d = 25; e s expandida a: (s t r u c t p erro *) lccindC lo c in d < p p e r r o l,p tip o s ti],o b a s e )-> h ijo , p tip o s t j3 ,o b a s e )—>edad = 25; Le. fu n ció n ap u n tad or locind al e n c o n tr a r s e con r e fe r e n c ia d o se regresa rá la dos fu n ció n p o sib ilid a d es, d ire c c ió n e fe c t ú a una del r e fe r e n c ia d o , e n c u e n tre cuando e l OP no s e fu n ción es o b je t o en donde en MOP su la p rim e ra m em oria p rim a ria se en cu en tra . que regresa desem peño El es , que le c tu r a y asign a ció n de el OP en cuyo c a so segundo c a so será e n c u e n tre en m em oria p rim a ria , en e s t e la un puede m em oria, ca so la re g re s a n d o é s t a ú ltim a Ccomo un a p u n ta d or). A p a ra la vez v e r ific a r que e l p re p ro c e s a d o r v a an alizan do que sea lo s OPs. se La va la g en eran d o fo rm a de la e x p r e s ió n ta b la in fo rm a c ió n r e fe r e n te in s tr u c c ió n e s c o r r e c t a , e s p o r medio del s ig ie n t e au tóm ata. F ig IV.3 a c o rre c ta , v e r ific a r A u tóm ata que v e r i f i c a la s in t a x is de una in s tru c c ió n con id ire c c io n e s . si de una 22 C _ p e r s is t e n t e IV.2.4 INSTRUCCIONES QUE CONTIENEN LLAMADAS A FUNCIONES DEL MOP L as in stx-u ccion es que m anejan llamadas n e c e s ita n p ro c e s a m ie n to que se desea debido b rin d a r al a fu n c io n e s p rin cip a lm en te a u su ario. Las la del MOP tra n s p a r e n c ia o p e ra c io n e s e fe c tu a d a s con la s in s tr u c c io n e s que c o n tie n e n llamadas: a fu n c io n e s del MOP son: - O b te n e r cual in fo rm a c ió n se e n c u e n tra in fo rm a c ió n n e c e s a r ia del la y medio llamada, pod er a m b ien te p a ra gen erar lo s en el o b ten er la p a rá m e tro s que le hacen f a l t a a la función. - H acer tom ando e l el t ip o "c a s t" de la al v a lo r v a r ia b le que r e g r e s a de t ip o la fu n ción , apu n tad or que r e c ib e e l v a lo r. P o r ejem plo: supongam os que tem em os la s ig u ie n te d ecla ra ción : p e r s is t e n t s t r u c t v a m p iro s í ch a r c la s e [201; ch a r origentSOl; s t r u c t fa m ilia *apfam ; > p e r s is t e n t s t r u c t vam p iros »apvam p; y e l s ig u ie n te fr a g m e n to de código: ob asep = a b reb a s e C "m a m ife ro s ,’, " f e l i x " , ” xilef",MODOLE>; a p va m p = b u a s c a C d e rrin g u e ",o b a s e p ); El p re p r o c e s a d o r expande la llamada a la fu n ció n busca de la s ig u ie n te manera: V e r ific a a que c la s e p e r te n e c e la v a r ia b le que r e s ib e el 23 C _ p e r s is t e n t e la fu n ción re g re s a , ap u n tad or v a lo r que que regresa la p e r te n e c e el apu n tad or y y fu n ción , pasa con é s te además hace e l in id ica como p a rá m e tro su el "c a s t" t ip o a al que d e s crip ció n , de e s t a m anera ten em o s p a ra la llamada a busca fin a lm en te: ap va m p = < stru ct vam p iros * )b u a s c a (p t ip o s [jl, "d e rrin g u e ",o b a s e p > ; No to d a s expandidas, el ca p ítu lo u su a rio , el e s t e c e n tr o . una V, cual la s fu n cio n es d e s c rip c ió n y una e s tá del M anejador d eta lla d a d e s c rip c ió n disp on ib le de de en la su su de O b je to s im p lan tación uso s e c c ió n de en el se son da en manual de com pu tación, de 24 C„ p e r s is t e n t e CAPITULO V MANEJADOR DE OBJETOS PERSISTENTES CHOP) En la s s e c c io n e s de es te ca p ítu lo se d e s c rib e n la s ta re a s e fe c tu a d a s p o r e l MOP, uno de lo s módulos que componen e l s is te m a que se p r e s e n ta o b je t iv o s en que debe e s ta cum plir t e s is . el m ecanismo de c o rre s p o n d e n c ia e n t r e te rc e ra s e c c ió n in fo rm a ció n . La tra n s a c c ió n . Y en d e s c rib e c u a r ta la ú ltim a el La p rim e ra s e c c ió n MOP. La segunda s e c c ió n lo s dos t ip o s mecanismo s e c c ió n s e c c ió n de d e s c rib e de es te lis t a el de memoria. La v a lid a ció n el lo s e x p lic a de m ecanismo c a p itu lo se la de d e s c r ib e con seu d ocód igo e l mecanismo de tra n s a c c ió n . V.l MANEJADOR DE OBJETOS PERSISTENTES En e l s is te m a que s e de d iv e r s a s é s ta s sea n ta re a s d e s c rib e , e l MOP e s e l módulo que s e r e fe r e n te s e fe c tu a d a s al m anejo c o r r e c ta m e n te , el de lo s MOP debe OPs. de e n c a rg a P a ra que cum plir con c i e r t o s o b je t iv o s , lo s cu ales s e lis t a n a con tin u ación : i. E fe c tu a r la s o p e ra c io n e s p a ra hacer la c o rre s p o n d e n c ia e n t r e la m em oria p rim a ria y la m em oria secu n d aria. 25 C _jpersis L en te ii. C o n s e rv a r la s la in te g r id a d d e c la ra c io n e s a p lica ció n , con de la in fo rm a c ió n , o b ten id a d a s la s del d e c la ra c io n e s c o n fro n ta n d o p ro gra m a r e s id e n t e s en de m em oria secu n d a ria p a ra o b je t o s p e r s is t e n t e s . iii. P ro p o r c io n a r un in te g r id a d de mecanismo que a s e g u r e la in fo rm a c ió n e fic ie n c ia co n te n id a en e m em oria p rim a ria . V.2 MECANISMO DE CORRESPONDENCIA ENTRE LA MEMORIA PRIMARIA Y LA MEMORIA SECUNDARIA L os OPs son unidades que ocupan un e s p a c io en m em oria secu n d a ria , en n u e s tr o (ló g ic a s ), em plea un p e r m ite nos el uso que n e c e s a ro r e fe r im o s tam bién, e s p a c io im p o r ta r es c a so así cuando en de se la la a é s te un OP m em oria un mecanismo en de medio en prin cip a l. in fo rm a ció n e n cu en tren per r e s id e Ya c o n ten id a m em oria de que en s is te m a OPs o e n tre p rim a ria el lo s p rim a ria c o rre s p o n d e n c ia d ir e c c io n e s m em oria s in secu n d a ria ambas m em orias. El mecanismo p rim a ria La y la p rim e ra s is te m a y es el que se in fo rm a c ió n a n t e r io r e s que e fe c t ú a la c o rre s p o n d e n c ia m em oria secu n d a ria tom a p rep rocesad or, ex p licó g en era d a en c a so por de que en p rim e r el el p ro p io de módulo ca p ítu lo hayan e n tre in fo rm a c ió n IV. MOP e x is tid o . que La m em oria fu e n te s . compone segunda en La la dos es el la p ro c e s a m ie n to s in fo rm a c ió n o b te n id a de ambas fu e n t e s e s almacendada en e s t r u c t u r a s de d a to s que gu ard a in fo rm a c ió n c o n ten id o de lo s en el ú t il p a ra p ro p io de com p on en tes m ecanismo e n c o n tr a r en d e s c r it a s son: de el la lo s a d m in is tra c ió n OPs. im p o r ta n te s de tra n s a c c ió n . La a r c h iv o de A con tin u a ción la s nombrado lo s o b je t o s se e s tru c tu ra s , d e c la ra c ió n "th ea d .h ” . base, exp lica n y su co m p leta Las se y el algunos u tilid a d puede estru c tu ra s 26 C _ p e r s is t e n t e i. Id e n tific a d o r de O b je to P e r s is t e n t e ii. E s tr u c tu r a de un O b je to P e r s is t e n t e . PID. iii. D ir e c t o r io de U suarios. iv. D ir e c t o r io v. In dice de O b je to s v i. F orm a to de OP en Memoria Prim a ria . v ii. F o rm a to de OP en Memoria Secundaria. v iii. Indice de Clase. de In form ación . Base. V.2.1 Id e n tific a d o r de Ob je t o P e r s is t e n t e <PID> Cada OP r e c ib e ai s e r croad o que c o n s e r v a r á d u ra n te número que e s tá un id e n t ific a d o r to d a su rea lcio n a d o vida. único nombrado Dicho id e n t ific a d o r con la d ire c c ió n t ip o "lo n g " C lógica) del PID, es un OP en m em oria secu ndaria. El PID e s un número de en G, que se fo rm a de la s ig u ie n te manera: La unidad mínima de un s e c t o r fo rm a y con sid eran d o lo c a liz a c ió n m em oria un co n ju n to dentx-o el de bloque d el secu n d a ria s e c to re s mismo en el que foi'm an que bloque. se E s ta puede un bloque. e s c r ib e accesar Un pid el in fo rm a c ió n OP nos y es se su s ir v e p a ra lo c a liz a r un o b je t o cuando no e s t á en m em oria prim a ria . D IR E C C IO N NUM ERO DE B LO O U E DENTRO DEL B LO O UE F ig V.l S ig n ific a d o de un PID V.2.2 E s tr u c tu r a de un Ob je t o P e r s is t e n t e Los o b je t o s m em oria p e r s is t e n t e s p rim a ria y o tro tie n e n cuando dos fo r m a to s : uno e s tá n en cuando e s t á n m em oria secu n d aria. en La 27 ^ p e rs is te n te d i f e r e n c ia p rim a ria y b á sica se e n tre tie n e n d ir e c c io n e s e s to s ambos: ló g ic a s dos fo r m a to s verd ad eros es que a p u n ta d o res PIDs m ie n tra s que e l en d el m em oria le n g u a je *'C" fo r m a to en m em oria d ecla ra d a con secu n d a ria s ó lo c o n tie n e lo s segundos. Un o b je t o de lo s p e r s is t e n t e t ip o s p rop ied ad es v a lid o s p e r s is t e n t e cu alq u ier en "C " (p a r a y v a r ia b le que haya e n te ra r al s id o alguno decla ra d a m an ejador de con o b je t o s p e r s is t e n t e s M O P), p o r lo que e s t o s pueden s e r : i ) - C ualquier t ip o b á sico C en tero s, r e a le s , c a r a c t e r ). ii> .- V e c to r e s de cu alqu iera de lo s t ip o s b á sico s. iii> .- E s tr u c tu r a s que con ten ga n cu alqu ier número de campos de lo s t ip o s i y ii. Ya n e c e s it a La que p rim e ra c a p ítu lo vem os IV, a el MOP conocer un es y la es el gen era d a la OP en cargad o com posición segunda como una por es segunda le llamamos el de m a n eja r in fo rm a ció n de p r e p ro c e s a d o r p ro p o rcio n a d a unidad p rim e ra le llamamos e n c a b e z a d o la e d ivid id a en cu erp o Ccontiene OP el dos la OP s. en el u su ario. Si p a rte s , ú t ile s es te lo s d e s c r it o por C contiene d a to s lo s to d o s a la a l MOP), y a in fo rm a c ió n del u s u a r io ), ten em o s que: La e s t r u c t u r a del en cabezado e s la s ig u ie n te : F ig V.2 E s tr u c tu r a del Encabezado S ig n ific a d o y u tiliz a c ió n de lo s campos: lo. PID Ce n t e r o o b je t o s de t ip o p e r s is t e n t e s lon g p a ra ). S ir v e id e n t if ic a r al m an ejador de u n ívocam en te un 28 C _ p e r s is t e n t e o b je t o , por y con és te efe c tu a r- la s o p e ra c io n e s indicadas la tr a n s a c c ió n a l o b je to . 2o. Ide n t i f i c a d o r con ven ción p a ra de t ip o , ad op tad a id e n t ific a r su en el v a lo r la t ip o es de a cu erdo im plantación. d el OP S ir v e (e n t e r o , a al la MOP c a ra c te r e t c . ) La con ven ción ad op tad a es: 100 e n te r o . 110 a r r e g lo de e n te r o s . 200 c a ra c te r. 210 a r r e g lo de c a r a c t e r e s . 300 e s tr u c tu r a . 310 a r r e g lo de e s tr u c tu r a s . 3o. B an d era de opción , su c on ven ción de y lo com prom iso. v a lo r u t iliz a La ei es de acu erd o MOP p a ra con ven ción a la e fe c tu a r tom ada en la el s ig u ie n te p ro c e s o im plan tación e s la s ig u ie n te : - cre a d o 1. - m odificado 2. - b o rra d o __ 3. - leid o 4. 4o. Tamaño en B y tes, su in fo rm a c ió n e s é s te p a ra es el u tiliz a d o OP, por ta n to el p a ra MOP e l tam año cuando m em oria d el o b je t o , s o lic it a p rim a ria m em oria como p a ra m em oria secu ndaria. 5o. Número de a p u n ta d o res, su s ig n ific a d o es el número de a r r e g lo de o b je t o s , que s e pueden r e f e r i r desde e s t e OP. 6o, Apuntado r e s , en te ro s que e s te campo c o n tie n e es lo s d e s c e n d ie n te s desde e s t e 0P. en re a lid a d PID’s de un lo s o b je t o s 29 C _ p e r s is t e n t e V.2.3. D ir e c t o r io de U su arios El d ir e c t o r io a rb o re c e n te id e n t ific a d o r e s puede hacer d ir e c t o r io de u su a rios e s t á Cárbol de b in a rio ). de lo s con ten id o E s ta u su a rio s, a c c e s ib le su o b je t o s base en una estru c tu ra la s c la v e s in fo rm a ció n , c re a d o s por y por e s tru c tu ra c o n tie n e la s un el lo s cu a les se ap u n tad or u su ario. al E s ta e s t r u c t u r a e s t á ordenada p o r e l id e n t ific a d o r del u su ario. F ig V.3 E s tr u c tu r a del D ir e c t o r io de U su arios V.2.4. D ir e c t o r io de In fo rm a ció n Cada u su a rio c o n s u lta r m ediante el de estru c tu ra t ie n e Tal una e s t r u c t u r a d ir e c t o r io E s ta r e g is t r a d o in fo rm a ció n . a r b o r e c e n te de id e n t ific a d o r e s es d erech o in fo rm a c ió n ordenada por crea r, puede m o d ific a r ser Cárbol b in a r io ) de lo s el a o b je t o s que c o n tie n e b a se id e n t ific a d o r y accesa d a que c re a d o s el u su a rio a l o b je t o base. IDENTIFICADOR DEL OBJETO BASE APUNTADOR AL IND IC E DE OB JET OS A P UNT AD OR A LIS TA DE O B J E T O S RE SI DE N TE S EN MEMORI A P RI MA R IA F ig V.4 E s tr u c tu r a del D ir e c t o r io de O b je to s Base V.2.5 En lo s c o rto Indice d el Ob je t o Base s is te m a s de cóm puto e s d esea b le un tiem p o por lo que la in fo rm a c ió n o p tim iz a r e l tiem p o de acceso. debe e s ta r de re s p u e s ta o r g a n iz a d a p a ra 30 C _ p e r s is t e n t e De la s fu n ción d iv e r s a s de hash, creax- un a r r e g lo de ) Si el ín d ice. e s to s fo rm a s e tc . El ín d ice o rg a n iz a c ió n t ip o (b á s ic o s ), p o r e l u su ario. De o t r a la cla se. de en e l p r e s e n t e se del o b je t o o red en a m anera, s e c re a d o t ie n e que e x is t e n t r a b a jo es por ord en a se c a rá c te r, Ja lla v e por una e s t r u c t u r a (ín d ic e , a d op tó la de e n te ro e i id e n t ific a d o r de o p ro p o rcio n a d a á rb ol de de BAYER* con e l fo r m a t o que s e m u e s tra a continu ación: ID E N T IF IC A D O R OEL OBJETO B ASE APUNTADOR A IN D I C E DE C LA S E S r> ELEMENTOS ID E N T IF IC A D O R DEL OÜJETO BASE DESCENDIENTE DESCENDIENTE EN EL NODO DONDE n ES EL ORDEN DEL F ig V.5 E s tr u c tu r a del In dice del O b je to base V.2.6 F o rm a to de lo s OPs R e s id e n te s en M em oria P rim a ria Los o b je t o s tra n s a c c ió n que han sid o c re a d o s le íd o s o m od ifica d os tie n e n que e s t a r en m em oria p rim a ria d u ra n te p a ra la e v it a r a c c e s o s no n e c e s a r io s a m em oria secu ndaria. Los p a ra OPs se cada o b je t o guardan b ase en y lis t a s lig a d a s orden adas e s t r u c t u r a e s im plantada ten ien d o por el in d ep en d ien tes PID del OP. E s ta en cuenta: i>.- Que e l a c c e s o a m em oria p rim a ria es más rá p id o que e l a c c e s o a m em oria secu d aria. ii> .- Todo debe o b je t o poder p e r s is t e n t e ser a ccesad o cre a d o , s in m od ificad o te n e r m em oria secu n d a ria más de una ocasión . v éa se la. r e fe r e n c ia 21. o que r e f e r i r s e leid o , a 31 C _ p e r s is t e n t e D E S C R IP C IO N DE LA CLA SE 3 O P E R A C IO N EFECTUADA 1 2 INFORMACION 4 F ig V.6 E s tr u c tu r a de O b je to s P e r s is t e n t e s en Memoria P rim a ria Los c o n te n id o s de lo s campos de la fig u r a V.6 son. lo .- El id e n t ific a d o r d el OP (PID>. 2o.- In d icad or de la o p e ra c ió n que s e e fe c t u ó con e l OP Cleído, c rea d o o m o d ificad o). 3o.- Un apu n tad or a una estru c tu ra que c o n tie n e la d e s c rip c ió n c u a lit a t iv a del OP. 4o.- A p u n tador a la in fo rm a c ió n que c o n tie n e e l OP. V.2.7 F orm a to de lo s OPs R e s id e n te s en Memoria S ecu n d aria Los OPs r e s id e n t e s en m em oria secu n d a ria no son o t r a s in o cadenas de c a r a c t e r e s , s in em bargo, pueden s e r de c a ra c te re s a ta d o s a una con seb id o s como un c o n ju n to estru c tu ra la cual c o n tie n e d e s c rip c ió n , como s e m u e s tra en la s ig u ie n te fig u r a V.7. I D E S C R IP C IO N . I~) i L IS T A DE OBJETO S |D E S C R IP C IO N 2^ ................... ¡ D E S C R IP C IO N I i OBJETO L IS T A DE OBJETOS F ig V.7 Concepción de OP R e s id e n te s en M em oria Secu n daria ¿T| ' su 32 C _ p e r s is t e n t e V.2.8 Indice de C lases A sí como la in fo rm a ció n de t ip o medio de un ín d ice, tra vés de un ín d ice b á sico puede s e r la in fo rm a ció n de cla se. E s te de a ccesad a una c la s e ín d ice e s tá es por a c c e s ib le im plantado a como un á r b o l de BAYER, y su co n ten id o e s e l s ig u ie n te : CADA NODO DE LA ESTRUCTURA CONTIENE ELEMENTOS, SIEN DO r> EL ORDEN DEL ARBOL F ig V.8 E s tr u c tu r a del Indice de C lases La in fo rm a c ió n con ten id a y e l s ig n ific a d o de lo s campos de la fu g u ra V.8 son lo s s ig u ie n te s : a. .- A pu ntador al d es c e n d ie n te menor (c o n re s p e c to a la lla v e p o r la que s e ord en a la e s t r u c t u r a ). b. .- L Lave p o r la que e s t á ordenada la e s tr u c tu r a . c. .“ PID d el o b je t o id e n tific a d o por la lla v e c o n te n id a en e l campo número dos del elem en to del nodo. d. A pu n tador lla v e La u su a rio crea el fig u r a por al la m an ejador crea se V.9 m u e s tra desea co n serva r m od ifica y d es c e n d ie n te que de por ord en a como m ayor (c o n r e s p e c t o la a d m in is tra medio de la s o b je t o s a la e s t r u c t u r a ). la in fo rm a c ió n e s tru c tu ra s p e r s is t e n t e s . El que de d a to s m an ejador e s t a in fo rm a c ió n p a ra e f e c t u a r su o b je t iv o . de el que OPs 33 C _ p e r s is t e n t e 4512 L 19 e s t u d i a n t e s 3423 L 23 F é l i x 10 3443 G 12 Rubén 10 F ig V.9 F é lix Ramos Rubén Rus i l e s Ejem plo de R elación e n t r e E s tr u c tu r a s de D atos c re a d a s p o r e l m an ejador de OPs y la in fo rm a c ió n d el u su a rio MOP 34 C _ p e rs is t e n t e V.3 ALMACENAMIENTO PERSISTENTE El o b je t iv o im p la n ta r de e s t e la in c is o e s m o s tr a r la s id e a s prop ied ad La fo rm a de en que lo s p e r s is t e n c ia le n g u a je s al segu id a s le n g u a je o rg a n iz a n la p a ra "C” . m em oria p rin c ip a l e s com p leja y la fo rm a de im plan tación e s m a te r ia l de un tem a que co n vien e tra ta r com p lejid ad , p e r s is t e n c ia s u fr ir es tra n s p a re n te e l fo rm a de a lc a n za r dar de una medio de n u e s tr o sa lid a o rg a n iz a c ió n de y punto cam bios, m anejo e n tra d a c a so , con o ga n iza c ió n como pocos por hacer de mismo la S i c on sideram aos debe fu n c io n e s Ene l e n c u e n tra secu n daria. le n g u a je a p a r te . se de y que m em oria p r o p ó s ito es m em oria p a r tid a que fu n c io n e s la la se la que de en ca rga n de secu n d aria, d e ja r s in in fo rm a c ió n el ad ición una m o d ific a r del Jenguaje, y ab o ca rn o s a c ie r ta de a p a ra la la s ta rea o b te n e r lo s re s u lta d o s deseados. V.3.1 In fo rm a ció n que s e N e c e s ita C o n s e rv a r Algunos le n g u a je s dan la fa c ilid a d de h a cer r e f e r e n c ia a la in fo rm a c ió n c o n ten id a en la m em oria p rim a ria p o r medio de: i.- Nombres de m aneja i i.- V a ria b les a la s v a r ia b le s d ecla ra d a s de algún t ip o que e l len gu aje. de t ip o apu n tad or, loca lid a d es v a r ia b le s o que a sign ad as bión a a lo s e s p a c io s pueden h a cer r e f e r e n c ia id e n t ific a d o r e s de m em oria de la s d e fin id o s m edian te una asign ación . E s ta s que ú ltim as hacen r e fe r e n c ia a c o n tie n e n lo s d a to s. Dichos d a to s s e denominada "h e a p " tre f le n g u a je , y e lla n e c e s it a y la en 121. E s ta ten em os la s á rea la m em oria de que dispone. lo ca lid a d es en c u e n tra n es m em oria una a d m in istra d a in fo rm a c ió n Si de en que pudiéram os por el á rea el p roceso d is t in g u ir C _ p e r s is t e n t e 13 con servar, c o n ten id a la 35 in fo rm a ció n s e r la en no fá c i l e s te e s tru c tu ra cual que deseam os c o n s e r v a r d el e s tá cam bios "h ea p " E s to (e l de la Por por lo no y el que no g u a rd a r s ó lo le n g u a je contem plado a l len g u a je. p e r s is t e n t e s e le c c io n a r "heap". de la que es la p o s ib le o rg a n iz a p rin c ip io desea in fo rm a c ió n si m odificam os el "h e a p "), de hacer id e n tific a r e m o s p e r is t e n t e , p o r se la medio lo p ocos in fo rm a c ió n de e s tru c tu ra s g e n e ra d a s p o r e l MOP y e l p re p ro c e s a d o r y, que hacen r e f e r e n c ia la in fo rm a c ió n que s e d esea c o n s e r v a r (O P s ) (t o d a c o n ten id a a en e l ‘‘h ea p "). V 3.2 C o n s is te n c ia en lo s d a to s La m em oria p e r s is t e n t e c o n s is te n c ia en que cu alq u ier t ip o el proceso; el no su cede cuando p ro c e s o s es L os le n g u a je , o a algún p e r s is t e n t e , por ra z ó n c o n sig o problem as p a ra v e r i f i c a r in form ación . le n g u a je s e n co n tra d a en un p r o c e s o en e s to alm acenam iento e s ta de v a r ia b le d ecla ra d o emmpieados tra e t ip o ten em os p u e s to que lo s d ife r e n t e s n e c e s a r ia la a p e r te n c e t ip o lo s a d e fin id o la la c o n sid era n un en el p rop ied a d d a to s de pueden ser que lo s c re a ro n . Por de un mecanismo im p lan tación de c o n s is te n c ia en lo s d a to s. V.3.3. Métod o de C o n sisten cia P u e s to que c o n s is te n c ia con servar- en to d o s lo s ta n t o , la t ip o s una por su de v a r ia b le la de la d ec la ra d o s , es n e c e s a r io lo s t ip o s d e fin id o s con p rop ied a d le n g u a je p o s ib le s con é s t a "C " e x c e p to es con el de un por p ro c e s o p e r s is t e n t e con lo s m aneja "u n ión ", En d el p r o c e s o ; c o in c id ir de p re s e n te in fin it a . p rop ied ad dada d e n tr o debe de la c o n s is te n c ia im p lan tación t ip o s d eclarad a d e fin ic ió n v e r ific a r son p ro c e s o s . La d e c la ra c ió n puede que le c o n fr o n t a r d el ca n tid a d dado, a n t e r io r . p a ra d if e r e n t e s d e fin id a e x is t ia , com pilador únicam ente d a to s in fo rm a c ió n p e x -s is te n te , t ip o s el de lo s la p ero e s tá si ya d e fin ic ió n 36 C p e rs í siente E s to la de tra e c o n sig o un o b je t o Un o b je t o cuando e s cre a d o una con cepción que no posee p e r s is t e n t e por de la t ie n e p rim e ra vez, un OP prop ied ad d if e r e n t e de unad e c la ra c ió n y e s tá se de p e r s is te n c ia . ge n e ra d a c o n s e rv a d u ra n te su tiem p o de vida. La con cep ción v e r ific a r la p e r s is t e n t e , además im p lan tación de que de un OP dada c o n s is te n c ia de en en la s e c c ió n p ro p o rc io n a r no será duplicada, sin o se t ip o ú t il t ip o que p e rm ite de in fo rm a c ió n p ro ced im ien to s que m anejan e s t e la in fo rm a c ió n V.2 d e c la ra c io n e s de en d a to s , t r a b a ja r á la ya con tina s o la in form a ción . V.4 MECANISMO DE TRANSACCION La fu n ció n de s ecu n d a ria d u ra n te e s te la s la p ro ced im ien to m o d ifica cio n es tra n s a c c ió n in volu cra d os. El al es que O b je to mecanismo r e fle ja r h u biesen Base im plantado en s id o u m em oria e fe c tu a d a s O b je to s a s e g u ra B ases a la s tra n s a c c io n e s : i>.- E fic ie n c ia . ii> .- Atom icidad La d e s c rip c ió n de e s t o s pu n tos e s la s ig u ie n te : V.4.1. E fic ie n c ia en la s T ra n sa ccio n es El té rm in o co s to de e fic ie n c ia una en la s tra n s a c c ió n tra n s a c c io n e s y de la s en fu n ción del lim ita n te s e s tá fís i c a s del s is te m a en e l que s e t r a b a ja ; e l a n á lis is e s e l s ig u ie n te : V.4.1.1. C o s to En tr a n s a c c io n e s donde "n " es de que mucho la s T ra n s a c c io n e s m odifican un c i e r t o m enor que e l núm ero número "n " to ta l de r e g is tr o s , de r e g is tr o s (^ p e r s i s t e n t e co n te n id o s 37 en el de to d o e l o b je t o la ta rea o b je t o base, b ase puede e fe c tu a d a , el p r e c io ser muy dependiendo de le c t u r a a lt o del y e s c r it u r a en com paración m ecanismo de con tra n s a c c ió n im plantado. V.4.1.2. L im ita n te s F ís ic a s del S is te m a Los s is te m a s p rim a ria , la s d e s a r r o llo de de mucha r e a le s cu a les tie n e n lim ita n te s deben de s e r cu alq u ier sistem a . in fo rm a c ió n se fís i c a s tom adas en En s is te m a s hace más que se m em oria e v id e n te p a ra re q u ie r e n la e s t a b le c e r un mecanismo que tom e en cu en ta e s t a s es, de cu en ta n ecesid a d ya que es p o s ib le la e x is te n c ia de de lim ita n te s , e s t o deben m an ten er en m em oria p rim a ria ú nicam ente lo s n e c e s a r io s , el m anejo una b a se d a to s de d a to s que s e a más gra n d e que la m em oria disponible. Del a n á lis is m ecanismo e s c r it u r a de a n t e r io r es e v id e n te tr a n s a c c ió n que e fe c t ú e de lo s OPs la necesid ad únicam ente la de un le c t u r a y la b a s e de que s e indiquen. V.4.2 T r a n sa ccio n es A tóm icas Un pu nto que r e q u ie r e co n s id e ra c ió n e s e l de c o n s e r v a r d a to s c o n s is t e n t e cuando s e e fe c t ú a alguna tra n s a c c ió n . Al e fe c t u a r s e o b je t o b a se, in c o n s is te n te s ; e s to s p e ro e s ta d o s d e b e rá ver una tra n s a c c ió n s o b r e la b a se de d a to s de és te puede al fin a l debe deben la pasar ser tra n s a c c ió n por una co n serva r tr a n s p a r e n t e s sim plem en te, al s e r ie su un e s ta d o s c o n s is te n c ia u su a rio , como de el e fe c tu a d a y cual o no e fe c tu a d a , e s t o e s lo que s e con oce como tra n s a c c ió n átom ica. Un o b je t o b ase puede p a s a r de un e s ta d o c o n s is t e n t e o t r o in c o n s is te n te p o r dos cau sas p rin c ip a le s que son: i.ii.- F alla del s istem a . F alla del program a. a C _p ei-sisterste En el 38 p re s e n te t r a b a jo e l mecanismo de tr a n s a c c ió n es el que sigu e: E x is te lo s A una e s t r u c t u r a o b je t o s p a r tir b ase de r e s id e n t e s crea d o s. e s ta en OPs o b je t o que ta re a , se se e s c r ito s c re a d o s y un m odificados. ín d ices en e la r c b iv o el con ten id o c o n tie n e lis t a con tin u a ció n , de te m p o ra le s OPs lo s la OPs a de la s de se o b je t o s p e r s is t e n t e s m od ifica d os te m p o ra l Una vez c la s e s la lis ta m odifican d e fin it iv o s en lo s de lo s m em oria lo s e s ta y o b je i-o s por b ase O b je to s O b je to s o cada únicam ente m od ifica d a s, c o n tie n e b ase p a ra e fe c tu a d a que de tra n s a c c ió n . r e s id e n t e s a rc h iv o lo s A de v is it a n De e s t o s en e s c r ib e m od ificad os. ín d ic e s id e n t ific a d o r e s d u ra n te in d ep en d ien tem en te e s c r ib e n m o d ifica d o s, la se a lca n za b les m odificado. son últim o lo s m od ificad os estru c tu ra son fu e r o n que c o n tie n e han sid o m em oria p rim a ria y que hayan sid o b a se p rim a ria , que Base Base que lo s m od ificad os, se cambian y el id e n t ific a d o r se b orra del o b je t o b a se de la lis t a . Las t a r e a s a n t e r io r e s s e e fe c tú a n p a ra cada O b je to Base que e s t é c o n ten id o en la li s t a de O b je to s Base m odificados. V.4.2.1 C ondiciones de F alla E s te punto es im p o rta n te porqu e e x is t e n dos p o s ib le s con d icio n es de fr a c a s o d u ra n te la tr a n s a c c ió n , e lla s son: i.- No p o d er c r e a r un a rc h iv o tem p oral, ii.- F a lla d el s is te m a debido a cau sas e x te r n a s . La p rim e ra m em oria fa lla p ro v o c a secu n d a ria y e s del que no cau sa s is te m a debida a se r e fle je de f r u s t r a c ió n cau sas la tra n s a c c ió n en la tra n s a c c ió n . ex te rn a s tie n e dos en La casos in t e r e s a n t e s que son: i.ii.- Cuando Cuando se e s tá se e s tá e s c rib ie n d o en e l a c tu a liza n d o a rc h iv o e l o b je t o tem p o ra l. base en m em oria 39 C _ p e r s is t e n t e secundaria. La p rim era e s causa de fr u s t r a c ió n y e l a rc h iv o o r ig in a l no s e a fe c t a . La segunda d e ja e l o b je t o b ase en un e s ta d o in c o n s is t e n t e y r e c u p e r a r la c o n s is te n c ia e s t a r e a de algún p roced im ien to. El seu d ccód igo s ig u ie n te m u estra el m ecanismo im plantado y segu id o p o r to d a s la s tra n s a c c io n e s que s e e fe c tú a n . T ra n s a c c ió n O b egin in ic ia liz a O m ie n tra s e x is t a condición de tr a n s a c ió n b egin ca s o s del MOP a b r e fc a s e O : s i a b r e b a s e O fa lla b egin g e n e r a m en saje " f a lla en a b r e b a s e " g e n e r a con dición de f a lla end in s e r ta C ) : si in s e r t a O fa lla b egin g e n e ra m en saje " f a lla en in s e r t a " g e n e ra con dición de fa lla end buscaO : s i b u s c a í) fa lla b egin g e n e r a m en saje " f a lla en bu sca" g e n e ra con dición de fa lla end c o m p ro m is o O : s i c o m p ro m is o O fa lla b egin g e n e r a m en saje " f a lla en com prom iso" g e n e r a con dición de fa lla end end c a s o s del MOP regresa end tr a n s a c c ió n 40 C „ p e r s is t e n t e Del seu docódigo n e g r it a s s e c c ió n e s ta s con a n t e r io r son fu n c io n e s de es te cap ítu lo . p e r te n e c e n e lla s son en ca rg a de com prom iso; a la s m anejados la que fu n c io n e s a d e s c r it a s Adelantándonos fu n c io n e s lo s a tom icidad misma la s del MOP, y s e r á n OPs. de un d isp o n ib les De la e s ta s poco, p a ra se la d e s c r ib e es a la que la com prom isoO s i e x is t e n o b je t o s b ase m o d ificad os o c re a d o s b egin paira cada o b je t o base c rea d o o m odificado b egin s i t ie n e e l o b je t o b ase OP en m em oria p rim a ria b egin c r e a un te m p o ra l y gu arda en é s t e lo s OP c re a d o s o m od ificad os c r e a un te m p o ra l p a ra e l ín d ice d el o b je t o b ase c r e a un te m p o ra l p a ra cada ín d ice de c la s e a ccesad o gu arda lo s id e n t ific a d o r e s de lo s ín d ic e s de c la s e m odificados. end g e n e r a te m p o ra le s p a ra lo s o b je t o s b ase m od ifica d os end gu ard a la l i s t a de o b je t o s b ase m o d ificad os a c tu a liz a fís ic a m e n te la b ase de d a to s d el o b je t o b ase cam biar te m p o ra le s de d i r e c t o r io s a d e f in it iv o s s e b o r r a la l i s t a de a c tu a liz a c ió n r e g r e s a é x it o end end com prom iso y se lim a d a m anera bo.gin elim in a r lo s o b je t o s base b o rra d o s que u su a rio seudocó<iigo. cam biar te m p o ra le s a d e fin it iv o s con s ig u ie n te d irem os el fu n c io n e s , tra n s a c c ió n con tin u a ción indicadas en de 41 C _ p e r s is t e n t e V.5 FUNCIONES IMPLANTADAS El o b je t iv o OPs es, de la s como u su ario el c on su lta n d ijo m anejo y fu n cio n es que c o n s titu y e n se de m od ifican a n te r io r m e n te , y a n te r io r m e n te , m em oria el son m an ejador de tr a n s p a r e n t e al secu n daria. co n ten id o la el hacer única de la s ad ición E s ta s fu n c io n e s estru c tu ra s al le n g u a je d e fin id a s ”G” p a ra p od er h a c e r con é l p rogra m a ción p e r s is t e n t e . L o s o b je t iv o s de la s fu n c io n e s del m an ejador de o b je t o s son: i.- H acer tra n s p a re n te m em oria el secu n d aria mapeo de (m em oria m em oria p rim a ria secu n d a ria a a m em oria p rim a ria ). ii.- G a r a n tiz a r lo que en b ase de d a to s se llama atom icid ad de tra n s a c c ió n . iii. - P r o p o rc io n a r u su ario e n tra d a a fu n cio n es g e n e r a le s pueda e fe c t u a r cu alqu iera de p a ra que la s el o p e ra c io n e s b á s ic a s (in s e r c ió n , busqueda, e t c . ) con lo s OP. Las t ip o de fu n c io n e s OPs con im plantadas que pueden tr a b a ja n , y ser la d ivid id a s ta re a que de a cu erd o desem peñan al en fu n c io n e s para: i.- Maneja de O b je to s Base. ii.- M anejo de O b je to s . iii.- P a ra e fe c t u a r e l com prom iso de la tra n s a c c ió n . A cada P a ra co n tin u a ció n uno cada de e s to s se d e s c rib e n tre s p ro c e d im ie n to t ip o s lo s de p ro c e d im ie n to s fu n c io n e s que se que s e indicaCn): i.- El Nombre de la función. ii.- La s in t a x is de la llamada i ii.- La fo rm a en que s e o b tie n e n a la función. lo s componen m encionaron. p a rá m e tro s . C _ p e r s is t e r it e **'í iv.~ Un seu docódigo que d e s c r ib e la fo rm a v.- Las e s t r u c t u r a s con que in te r a c tú a . en que está. im plantada la función. V.5.1 Funciones p a ra e l mane jo de Ob je t o s Base En e s te p rim e r p ro c e d im ie n to s m anipular, co n ju n to por c rea r, medio accesar, de de fu n c io n e s , lo s elim in a r o cu ales, m o d ific a r se d e s c rib e n el u su ario lo s lo s puede O b je to s Base. Las fu n c io n e s que componen e s t e p rim e r c o n ju n to son: - ab reb aseO ; - bbaseO ; - c ie r r a b a s e O ; V.5.1.1. a b r e b a s e La s in t a x is de la fu n ción e s la s ig u ie n te : OBJETOB * a i » r e b a s e ( Nom breBase, C o n tra señ a , Modo> ch ar »N om breB ase; / * id e n t ific a d o r d el o b je t o b ase a /*■ abx-ir ch ar «C o n tra s e ñ a lla v e del o b je t o que s e in t e n t a / * a b r ir in t Modo; modo en e l que s e a b r e o s e */ c r e a e l o b je t o o b je t o b ase 4 Form a de o b t e n e r lo s p a rá m e tro s : N om breB ase: p a rá m e tro u su ario en el p ro p o rcio n a d o e x p líc ita m e n te p rogram a de a p lica ció n e s c r ito por el en le n g u a je C _ p e r s is te n te . Contraseña: p a rá m e tro p ro p o rcio n a d o e x p líc ita m e n te por el C _ p e r s is t e n t e u su ario 43 en el p rogra m a de a p lica ció n , e s c r ito en len g u a je C _ p e r s is te n te . Modo: en p a rá m e tro el p ro p o rcio n a d o p rogra m a de e x p líc ita m e n te ap lica ció n , por e s c r ito el en u su ario le n g u a je C jp e r s is t e n t e . El o b je t iv o nombrado el de en e s ta el p a rá m e tro fu n ción p rim e r es a b r ir o y con lo s p a rá m e tro Modo. El s ig u ie n te crear el O b je to p e rm is o s seu sd ocód igo Baso indicados m u e s tra en la s d e c ic io n e s y a c cio n es que tom a la función: a b re b a s e bogin S i e l modo en que se q u ie re a b r ir e l o b je t o b a se e s le c t u r a le c tu r a e s c r it u r a y ya e x is t e o tro o b je t o b ase a b ie r t o en e s e modo e m p ieza g e n e r a m en saje que indique e l hecho r e g r e s a un apu ntador nullo end Si e x is t e si la base e s tá a b ie r t a regresa si la de d a to s p a ra C o n tra señ a regresa s i no e x is t e e s c r it u r a a pu n tador nulo es in c o r r e c t a apu n tador nulo la b ase de d a to s manda m en saje b ase no e x is t e , s i no s e pudo c r e a r regresa regresa apu n tador apu n tador nulo ú til, end de A b reb a se. La a p e rtu ra de un o b je t o base es e fe c tu a d a con lo s p a rá m e tro s que le son p ro p o rc io n a d o s de la s ig u ie n t e manera: i.- S i e l modo en e l que s e q u ie re a b r ir e l o b je t o b ase es C _ p e r s is t e n t e 44 e s c r it u r a o tro o O b je to le c t u r a _ e s c r it u r a , Base a b ie r t o se v e r ific a en e s o s que no modos, e s t o podrá e x i s t i r un O b je to Base a b ie r t o e x is t a e s , s ó lo en uno de e s t o s dos modos. ii.- V e r ific a si e x is t e e l O b je to Base, si es el caso y se puede a c c e s a r s e r e g r e s a e l apu n tador a l O b je to Base. iii.- Si no e x is t e e l O b je to Base s e in t e n t a c r e a r y s i e s la c re a c ió n , se regresa el a p u n tador al O b je to e x it o s a Base cread o. E s tr u c tu r a s que in te r v ie n e n en a b re b a s e i. D ir e c t o r io de u su arios. ii. D ir e c t o r io de o b je t o s b a se del usuario. V.5.1.2. 6ber.se La s in t a x is de la fu n ción e s la s ig u ie n te : bbaseC U su ario, Nom brebase, C o n tra s e ñ a ) ch ar «U s u a rio ; / * id e n t ific a d o r del u su a rio que */ q u ie re b o r r a r e l O b je to Base ch a r »Nom base; id e n t ific a d o r del o b je t o b ase chai- C o n tra señ a c o n tra s e ñ a del u su ario */ Form a en que s e o b tie n e la in form ación : U su a rio : id e n t if ic a r P a rá m e tro al u su ario p ro p ro rc io n a d o que in t e n t a e x p líc ita m e n te b orrar el p a ra o b je t o b ase, é s t e debe s e r e l p r o p ie t a r io . N om base: P a rá m e tro p ro p o rcio n a d o por el u su a rio e x p líc ita m e n te . Id e n t ific a e l o b je t o b ase a s e r elim inado. C o n ír o s e fía : Clave de a c c e s o del u su ario a la in form a ción . 45 (^ p e r s is t e n t e Función p r im itiv a del i. Elim inar MOP, sus o b je t iv o s son: un o b je t o b ase del d ir e c t o r io de O b je to s B ases del usuario. ii. L ib e r a r la efe c tu a r- m em oria e s ta ú tliz a d a ta rea se por el n e c e s ita o b je t o saber el base. P a ra id e n t ific a d o r del o b je t o base. El seu d ocód igo s ig u ie n te m u estra la fo rm a en que la fu n ción e fe c t ú a su o b je t iv o : bbaseO em p ieza busca el id e n tific a d o r o b je t o s si b ase e l o b je t o del fu e del o b je t o b ase en el d ir e c t o r io de usuario, e n co n tra d o em p ieza elim in a el id e n t ific a d o r del d ir e c t o r io de o b je t o bases d el u su ario c o p ia ei id e n tifc a d o r del o b je t o b a se en la lis t a de o b je t o s b ase b o rra d o s te rm in a s i e l o b je t o no fu e en co n tra d o g e n e r a m en saje " o b je t o base no e x i s t e " re g re s a te rm in a bbase Las e s t r u c t u r a s con que in t e r a c t ú a la fu n ción son: i.- D ir e c t o r io de o b je t o s b ase del u su ario. ii.- L is t a de id e n t ific a d o r e s de o b je t o s b a se b o rra d o s d u ra n te la tra n s a c c ió n . La fu n ció n estru c tu ra es elim in a r e s id e n t e elim inado de el id e n t ific a d o r en m em oria m em oria f unción de com prom iso. d el p rim a ria ; secu n d a ria s ó lo o b je t o p ero cuando b a se e l o b je t o se en la base e fe c tú e la 46 C_ p e r s is t e n t e V.5.2 Funciones p ara e l Mane jo de OP En e s te in c is o se d e s c rib e n la s fu n cio n es con la s cu ales e l u su a rio puede m an ejar lo s o b je t o s p e r s is t e n t e s . V.5.2.1 busca La s in ta x is de la fu n ción busca e s la s ig u ie n te : ch ar *busca< P tip o , L la v e . O b je to b a s e > TIPOS « P t ip o ; / * a pu n tador a la d e s c rip c ió n del /* o b je t o a in s e r t a r */ ch ar «L la v e ; lla v e p o r la que s e busca e l o b je t o VS OPJETOB «O b je to b a s e apu n tador al o b je t o donde se busca */ Form a de o b te n e r lo s p a rá m e tro s Ptip o: e s t e p a r tir del p a rá m e tro e s g en era d o p o r id e n t ific a d o r que r e c ib e el el p re p r o c e s a d o r v a lo r a que la fu n ción por el u su ario r e g r e s a y la ta b la que g e n e r a e l p re p ro c e s a d o r. L la ve: en p a rá m e tro el p ro p o rcio n a d o cód igo d el e x p líc ita m e n te p rogram a e s c r it o en le n g u a je C_ p e r s is t e n t e . O b je t o b a s e : p a rá m e tro e x p líc ita m e n te , e s c r itó en en el p ro p o rcio n a d o cód igo le n g u a je del por p ro gra m a C _ p e r s is t e n t e , es el de u su ario a p lica ció n o b te n id o de la fu n ción a b reb a se. E s ta fu n ció n e s el o b je t o o b je t o que LLave. La b a se de t ip o apu ntador. Su o b je t iv o e s p e c ific a d o te n g a lla v e fu n ción e x is t e , y un apu n tad or en ig u a l regresa nulo a un en el la p a rá m e tro indicada apu n tad or c a so es bu scar O b je to b a s e , en al el o b je t o , c o n t r a r io . seu docódigo d e s c rib e la fo rm a en que o p e ra la fu nción. El en el p a rá m e tro si és te s ig u ie n te 47 C _ p e rs is t e n t e bu sca begin Si o b je t o b a se no e s t á a b ie r t o g e n e r a m en saje r e g r e s a apu n tador nulo s i e x is t e n o b je t o s en mem oria p rim a ria s i e s t a e l o b je t o en mem oria p rim a ria r e g r e s a apuntador- a l o b je t o s i e x is t e la lla v e en e l ín dice b egin le e e l o b je t o de m em oria secu n d aria in s é r t a lo en la l i s t a de o b je t o s en m em oria p rim a ria r e g r e s a a pu n tador a l o b je t o end r e g r e s a apu n tad or nulo end de busca La fu n ció n r e a liz a su o b je t iv o en b ase a lo s p a rá m e tro s que le son su m in is tra d o s de la s ig u ie n te manera: i.- V e r ific a s i e l p a rá m e tro o b je t o b a s e , de t ip o apu n tad or e s d if e r e n t e de nulo. ii.- Inspeccionando p a rá m e tro la p tip o in fo rm a ció n id e n t ific a r e fe r e n c ia d a el t ip o por del OP el bu scar Cbásico o e s t r u c t u r a ), y d ecide e l paso a s e g u ir. iii- S e e fe c t ú a la busqueda del Op en m em oria p rim a ria . S í s e lo c a liz a e l o b je t o s e r e g r e s a su apu ntador. iv .- S i e l OP no fu e lo c a liza d o m em oria secu n d aria; s i o b je t o s r e s id e n t e s en e x is t e , m em oria se p rim a ria in s e r t a en m em oria p rim a ria en y se busca en lis ta de regresa el la ap u n tad or a su lo c a liza c ió n . v.- Si e l OP no e s lo c a liza d o s e r e g r e s a un ap u n tad or nulo. 48 C _jp e rs is te n te E s tr u c tu r a s que in te r v ie n e n eri busca i.- E s tr u c tu r a g en era d a p o r ii.- L is t a de OPs r e s id e n t e s iii.- O b je to s Base. iv .- In d ice de o b je t o s base. eJ p re p ro c e s a d o r. en m em oria p rim aria. O b s e rv a c io n e s i. El u su a rio no t ie n e que hacer d e c la ra c ió n de e s ta f unción. ii. El p r e p ro c e s a d o r debe de h a cer el "c a s t" a l t ip o que r e g r e s a la fu n ción p a ra no t e n e r p roblem as de in co m p a ti­ bilidad de tip o s . V.5.2.2 In s e r t a La s in ta x is de la fu n ción in s e r t a e s la s ig u ie n te : in s e rta C L la v e , O b je to b a s e , P in form , Tinform > ch a r *L la v e ; / * lla v e p o r la que s e id e n tific a # / / * e l o b je t o */ OBJETOS * O b je to b a s e ; / * o b je t o b je t o b ase en e l que s e TIPOS * T in fo r ; / * a pu n tador a la d e s c rip c ió n in s e r t a y * del o b je t o a in s e r t a r ch ar ♦ P in fo rm ; a p u n tador a la in fo rm a c ió n a #/ in s e r t a r . Form a de o b te n e r lo s p a rá m e tro s L la ve: e s t e p a rá m e tro e s p ro p o rcio n a d o p o r e l u su a rio en fo rm a de a pu n tador a cadena de c a r a c t e r e s O b je to b a s e : p a rá m e tro de t ip o v a lo r que regresa la ap u n tad or que e s o b te n id o fu n ción a b re b a s e , del c o n ju n to d el de 49 C __p ersisten te p rim itiv a s d el m anejador de o b je t o s , e s te p a rá m e tro es p ro p o rcio n a d o e x p líc ita m e n te p or e l usu ario. T in fo r: p a rá m e tro de d ir e c c ió n p a ra gen era d o por el id e n t ific a d o r e s de Cvéase t ip o accesar p r e p o rc e s a d o r o b je t o s que e s te tomando c o n tie n e la p a rá m e tro es la lis t a p e r s is is t e n t e s de ge n e ra d a ca p ítu lo IV). Finform : p a rá m e tro de t ip o la apu n tador in fo rm a ció n , in fo rm a c ió n a a p u n tador a c a r a c t e r que in s e r t a r . E s te p a rá m e tro se c o n tie n e c o n v ie r t e al t ip o c a r a c t e r p a ra p r o p o rc io n a r g en era lid a d a la función. E s ta fu n ción e s de t ip o e n te r o . e l o b je t o b a se e s p e c ific a d o por Su o b je t iv o e s , in s e r t a r e l p a rá m e tro un OP en Obj€?to£>ase>. El o b je t o e s in s e r ta d o con la lla v e dada en e l p a rá m e tro LLave. La e s tru c tu ra de lo s e lem en to s g e n e ra d o s por el preprocesador* t ie n e e l s ig u ie n te fo rm a to : TAMAÑO DE L O B JE T O IDENTIFICADOS; NUMERO DE CAMPOS T IP O DE LOS CAMPOS DEL O B JET O ID E N T IF IC A D O R E S DE LOS CAMPOS F ig . V.9 E s tr u c tu r a g en era d a p o r e l p r e p ro c e s a d o r Teniendo la in fo rm a ció n g en era d a p o r el p re p r o c e s a d o r la fu n ción e s d ivid id a en dos p a r te s : 1).- Id e n t ific a r . 2 ).- In s e r t a r . I d e n t ific a r E s te a p ro c e s o una c la s e , v e r ific a si es el el t ip o ca so , d el se o b je t o v e r ific a no lo son, s e g e n e r a un m en saje y s e el que c a so son de d e c la ra c io n e s d e c la ra c io n e s que a b o r ta p e r te n e c e n e q u iv a le n te s p a ra que a si saber sean si p e r te n e c e co m p a tib le s , la tra n s a c c ió n . una c la s e , el se id e n t ific a d o r si En d ice de C _jp e rsiste n te la c la s e 50 es el id e n tific a d o !* y com paración secu n d a ria mismo se y to d o s é s to s hace la y campos son del la c la s e e n tre d eclarad a lo s en la tie n e n mismo que s ó lo mismo tip o . E s ta en m em oria e x is t e tra n s a c c ió n , el en el c a so que e x is t a la cla se. In s e r t a r E s te p roceso in s e r t a el OP en la lis t a de OPs r e s id e n t e s en m em oria p rim a ria . La in s e r c ió n e fe c tu a rá al en e l a rc h iv o llam ar fís ic o e x p líc ita m e n te (m em oria la se c u n d a ria ) fu n ción de se com prom iso (co m m it). E x is te o b je t o una b a se, tra n s a c c ió n s id o c la s e en sid o e x is t e que OPs p a ra m od ificad os cada a b ie r t o una l i s t a c re a d o s la de es, haya in fo rm a c ió n , hayan lis ta e s to y/o en que c re a d o s b ase algún modo in s e r t a r En el el que ca so OP, s e p a ra que la m odifiqu e la lo s que cada d u ra n te c o n tie n e únicam ente m odificados. desam os y o b je t o no e fe c tú a el OPs que e x is t a la s ig u ie n te p ro ced im ien to : 1).- In se rta r- e l id e n tific a d o r de la c la s e en el ín d ice del o b je t o base. 2>.- P e d ir a tra vés del en cabezado del o b je t o b ase un bloque in ic ia l e in ic ia rlo . 3>.- C re a r un a rc h iv o que c o n te n d rá el ín d ice de la c la s e creada. 4>.- P e d ir bloque. lo s un id e n tific a d o r CPID> In s e rta r o b je t o s el o b je t o m o d ifica d os, p a ra en el en cab ezad o la l i s t a c re a d o s o que del c o n tie n e b o rra d o s d el d e c is io n e s que O b je to Base. El seu d ocód igo tom an en la función: s ig u ie n te d e s c r ib e la s se C _ p e r s is t e n t e 51 in s e r t a s i o b je t o baso no e s t á a b ie r t o p a ra e s c r it u r a no s e e fe c t ú a ninguna t a r e a y s e g e n e r a un m en saje s i la c la s e a la que e l OP a in s e r t a r e x is t e s i lo s t ip o s no son com p a tib les no s e e fe c t ú a ninguna t a r e a y s e g e n e r a un m en saje s i la lla v e o o r ia que s e in s e r t a e x is t e en la c la s e o b te n e l PID m o d ifica in form ación , ban dera de o p e ra c ió n -- m o d ifica ció n bandera de o p e ra c ió n = crea ció n . in s e r t a el OP en la lis ta de OPs r e s id e n t e s en m em oria p rim a ria s i no e x is t e la c la se crea la c la s e Ccon to d a la in fo rm a ció n a d m in is tr a tiv a n e c e s a r ia ) ban dera de o p e ra c ió n = c re a c ió n in s e r t a OP en la lis t a de r e s id e n t e s en m em oria p rim a ria del o b je t o base. fi n de in s e r ta . P a ra m em oria saber m od ifica d os v e r ific a r a si p rim a ria , si el se OP que busca y c re a d o s la c la s e deseam os con del la o b je t o e x is t e par-a in s e r t a r lla v e b a se, bu scar en en el la ca so OP en es tá lis ta c o n t r a r io lo s en de OPs se e le m e n to s que é s t a con tie n e . P a ra d el saber si id e n t ific a d o r cual e s t á de la la c la s e c la s e apuntada desde la e x is t e , en b ase la se hace estru c tu ra a b ie r t a p a ra la busqueda del ín d ice, e s c r it u r a y por la el p a rá m e tro p in o b je to base. P a ra s a b e r s i se hace lis ta nodo la g e n e ra d a un t ip o com paración por del id e n t ific a d o r s o la v e z y el es de com p a tib le la p re p r o c e s a d o r de la c la s e , con o t r o in fo rm a c ió n e s tó a n te a de r e a liz a r la in s e rc ió n . y se la que ya e x is t e , c o n ten id a c o n te n id a t ie n e que en la en el hacer una C_persi siente P a ra em pleada, 52 saber lo cual si la lla v e in dica p or que la el OP que s e q u ie re ya e x is t ia , cuya c la s e o b je t o b ase in s e r t a r se la ya fu e busca en el In d ice de OPs del o b je t o base. Cuando crea y se se d ice in s e r t a que un o b je t o p e r te n e c e al no e x is t a , donde se é s ta in s e r t a se el OP. E s tr u c tu r a s que in te r v ie n e n en in s e r ta . 1>- L is t a gener-ada p o r e l p re p ro c e s a d o r. 2>.- L is t a de o b je t o s r e s id e n t e s en m em oria prim a ria . 3>.~ A pu ntador a l o b je t o base. V.o.2.3 b o r r a o b La s in t a x is de la fu n ción e s la s ig u ie n te : ch ar «b o rra o b C L la ve,C la se,O b jeto b a se> ch a r * L la v e ; /# lla v e que t ie n e e l o b je t o a b o r r a r TIPOS «C la s e ; a pu n tador a la d e s c rip c ió n del / * o b je t o a b o r r a r . OBJETOB *O b je to b a s e ; apu n tad or a l o b j e t o b j e t o del que s e /* b o r r a e l o b je t o . */ Form a de o b te n e r lo s p a rá m e tro s L la v e : p a rá m e tro U su a rio , id e n t ific a e l o b je t o a b o r r a r . C la s e : p a rá m e tro g en era d o p o r e l p re p r o c e s a d o r a p a r t i r t ip o d el o b je t o que r e c ib e e l O b je t o b a s e : e lim in a r e l p ro p o rcio n a d o apu n tad or al e x p líc ita m e n te por el del v a lo r de la fu n ción . o b je t o b a se d el que se q u ie re 53 C _ p e r s is t e n t o O b serva cio n es: i. El a p a r tir p a rá m e tro del tip o c la s e de la es gen era d o v a r ia b le que por el r e c ib e el prep rocesad or v a lo r , la cual debe s e r de t ip o p e r is t e n t e . ii. el P u e s to que p re p r o c e s a d o r , la fu n ción g e n e ra la regresa un c o n v e rs ió n a p u n ta d or al t ip o a de c a ra c te r, la v a r ia b le e s ta fu n ció n que r e c ib e e l v a lo r de la función. Función regresa un un o b je t o d el co n ju n to de p r im itiv a s a pu n tador b a se, a el ca ra c te r, o b je t o del MOP, su o b je t iv o id e n tific a d o por la es elim in a r lla v e dada t ip o e n te ro de en e l p a rá m e tro lla ve. V.5.3 Funciones P a ra E fe c tu a r El Compromiso V.5.3.1 Com prom iso La s in t a x is de e s t a fu n ción es: in t com m itO ; ya que en e l le n g u a je C d e fa u lt, to d a s las fu n cio n es son de por e s t a d ec la ra c ió n puede s e r o m itid a Los o b je t iv o s de e s t a fu n ción son: i.- R e f le ja r en m em oria in fo rm a c ió n ii.- Lo secu n d a ria el e s ta d o de en e l momento de su llamado. A s e g u ra r la atom icidad de la tra n s a c c ió n . a n t e r io r seu d o có d igo . puede s e r m e jo r en ten d id o con e l s ig u ie n te la C _ p e r s is t e n t e 34 com prom isoO em pieza si no e x is t e base a b ie r t a p a ra e s c r it u r a regresa si no tie n e e lem en to s c re a d o s o m o d ificad os re g re s a si crea te m p o ra l p a ra ele m e n to s c re a d o s y /o m od ifica d os fa lla g e n e r a m ensaje regresa in s e r t a ele m e n to s en e l a rc h iv o crea d o si crea te m p o ra l de Índice fa ila g e n e r a m en saje re g re s a gu arda in fo rm a c ió n del Índice en e l a rc h iv o c rea d o si g e n e r a te m p o ra le s p a ra la s c la s e s fa lla g e n e r a m en saje regresa s i c r e a a rc h iv o que c o n te n g a la s c la s e s m od ificad as fa lla g e n e r a m en saje regresa si fa lla en la e s c r it u r a al a rc h iv o gen era d o de la s c la s e s m od ificad as g e n e r a m en saje regresa p ren de bandera a a rch ivo . a c tu a liz a e l a rc h iv o con li s t a r e s id e n t e en memoria, m over te m p o ra le s a d e fin it iv o s a p a g a r la bandera a l a rc h iv o , r e g r e s a é x it o te rm in a com prom iso. E s tr u c tu r a s con l . - L is t a de que o b je t o s in t e r a c t ú a b ase a b ie r t o s la función: p a ra e s c r it u r a o e s c r it u r a le c t u r a d u ra n te la tra n s a c ió n . 2 .-L is ta de OPs r e s id e n t e s en m em oria p rim a ria de cada o b je t o 55 C. „ p e r s is t e n t e base que cumpla con 1. La v a r ia b le s in fo rm a c ió n de t ip o que em plea e s t a g lob a l, que hacen fu n ción e s t á r e f e r e n c ia a d a to s que con tien en : i.ii.- L is t a de o b je t o s b ase m odificados, L is t a s de o b je t o s p e r s is t e n t e s m odificados. co n te n id a en es tru c tu ra s de 56 C p e rs is te u te CAPITULO VI PRUEBAS Y EJEMPLOS En e s te ca p ítu lo se m u estran la s p ru eb as y algunos de lo s e jem p lo s que s e d e s a r r o lla r o n empleando e l sis te m a . Los p ru eb as re s u lta d o s e fe c tu a d a s que al se m u estran s is te m a s is te m a o p e r a t iv o " u lt r ix ” v e r s ió n en fu e r o n una o b te n id o s com pu tadora de la s Gould con 3.02. VI.1 EJEMPLOS DE RESULTADOS DEL PREPROCESADOR. En e s ta s e c c ió n p rim e r módulo r e s u lt a de cada se d el m u estra s is te m a p rocesar ejem p lo se p rep rocesad or, c o n v e n ie n c ia y lo s el f u ncionam iento im plantado, un p rogram a m u estra en e s c r ito p rim ero segundo a rc h iv o s lu ga r son del m ostran d o en p ro p ro c e s a d o r, el a rc h iv o ”C _ j> e r s is te n te ". el a rc h iv o de el a rc h iv o r e s u lt a n t e . s e n c illo s , y en que P a ra e n tra d a al Por lo p o s ib le i l u s t r a t i v o s del t r a b a jo que r e a liz a e l p re p ro c e s a d o r. El p ro gra m a uno r e a liz a la in s e r c ió n de OPs en un O b je to Base d eterm in ado. En é s t e a s e g u ir , desean lo s cu a les in s e rta r lo s son: a b r ir OPs y el O b je to e fe c tu a r la un número desead o se de m u estra n lo s p a so s B ase llamada en a el la cual se fu n ció n 57 C _ p e r s is t e n t e in s e r t a , la cual se e n c a rg a de v e r ific a r si es p o sib le in s e rc ió n , s i no lo e s e l s is te m a g e n e r a r á un m ensaje. /* pi.p p rogram a de pru eba p a ra el s is te m a e fe c tú a la s s ig u ie n te s ta r e a s : 1. a b re un O b je to Base de un u su ario e s p e c ífic o 2. in s e r t a un número de o b je t o s de t ip o p e r r o en e l obas© 3. hace llamadas a la fu n ción le e lla v e s p a ra o b te n e r­ la s lla v e s que id e n t ific a n a lo s OPs in s e r ta d o s . ^include "th ea d .h " ^include "h e x te rn .h " p e r s is t s tru c t p e rro s í ch ar nombre[453; ch ar razat323; in t edad; s t r u c t p e r r o s « h ijo ; >; p e r s is t s t r u c t p e r r o s » p p e r r o ; p e r s is t s t r u c t p e r r o s « p p e r r o l; OBJETOS íp o b a s e = NULL; m ainO in t i= l,j,k = 0 ; ch a r obase[93; ch a r aparL50Q3[53; ifCCraizu=em ptransO>==NULL>< p r in tfC 'n o e x is t e r e g i s t r o de u s u a rio s \ ri"); e x itO ; > p r i n t f C o b j e t o b ase a a b r ir ?'*); s c a n f ( "% s ",o b a s e ); ifC (p o b a s e = a b ro b a s e < "fe lix *’,o b a s e ,,,x ilef",2 »= = N U L L > < p rin tf("p ro b J e m a s en ia a p e r tu r a d el o b a s e N n "); e x itO ; > w h ileC iX le e lla v e s Capar >; p r in tf("c u a n t.o s caninos in ser-to s c a n f C"%d",S:j>; em p c o n te o O ; for<;k<j;k++>< p p e iT O = (s tr u c t p e rro s *> m a llo c C s iz e o fC s tru c t p e r r o s ) ) ; strcp y(p p erro -> n o m b re,a p a rtk 3 > ; ifC in s e rta (p p e rro -> rio m b re ,p o b a s e ,p p e rro > = = F A L L A ) e x itO ; 58 C _ p e r s is t e n t e > p a r acont-eoCst.de r r , "in s e r c ió n " ); com m itO : p iú n tfO ’Sn \ t \ t o t r a m edición ?">; s c a n f ("%d",&i>; > > / * de rnain * / P r o g 1.a. Progrm am a en C _ p e r s is t e n t e m u e s tra la in s e rc ió n OPs de c la s e p e r r o en e l O b je to Base deseado El cuando s ig u ie n te se le da cód igo como es e n tra d a el que el p rog. e n tre g a el 1.a. d ife r e n c ia s Las p rep rccesad or e n tre ambos a rc h iv o s s e indica en n e g r it a s , y como puede o b s e r v a r s e la in clu sión que e s tra b a jó : de una llamada a un a rc h iv o la fu nción- una fu n ción que c o n tie n e y la lo s expan sión con un id e n t ific a d o r e s de la llamada in s e r ta . ¿'include "th ead .h " ¡^include "h e x te rn .h " stru c t p e rro s í ch a r nombre[451; ch ar raza[323; in t edad; s t r u c t p e r r o * h ijo ; >; s tr u c t p e rro s «p p e rro ; s t r u c t p e r r o s « p p e r r o l; OBJETOS *p o b a se = NULL; m ainO < in t i= l,j,k = 0 ; ch ar obase[93; ch a r aparC5003C53; in ic i a l i z a í " i d p i . p > ; i f C(raizu=em ptransO>==NULL>< p r i n t f ("n o e x is t e r e g i s t r o de u su a rio s\ n “ ) ; e x itO ; > p r i n t f ( " o b j e t o b ase a a b r ir ?">; s c a n f("% s ",o b a s e ); i f C (p o b a s e = a b re b a s e C "fe lix ",o b a s e ,"x ile f ",2>)==NULL)< p r i n t f ("p ro b le m a s en la a p e r t u r a del obaseN n “ ); e x it O ; > único son p a rá m e tro de OPs con que al p ro ced im ien to 59 C _ p e r s is t e n t e w h ileC iX le e lla v e s C apar); p r i n t f C ’cu a n tos caninos in s e r t o ? " ) ; s c a n f C"%d",&j); em pconteoC ); fo rC ;k < j;k + + ){ p p e rro = C s tru c t p e rro s *)m a llo c .C s ize o f C s tru c t p e r r o s ) ) ; strc p y C p p e rro -> n o n ib re ,a p a r[k l); i f C in s e r ta C p p e r ro-> n on \ b re,p ob a.se,Cchar * ) p p e r r o , &p t ip o s í 03)= = F A LLA ) e x itO j > p a ra c o n te o C s td e r r / ’in s e r c ió n "); com m itC); p r in t fC ” \n \ t \ t o t r a m edición ? " ) ; scarifC’,% d",& i); > > / * de main P r o g l.b . P rogra m a que e n t r e g a e l p r e p ro c e s a d o r d el s is te m a cuando s e le da como e n tra d a e l cód igo del p ro g. 1.a El cód igo del p rogram a dos m u e s tra como pueden s e r lo s a t r ib u t o s de un OP a t r a v é s puede lo c a liz a r un OP y con é s t e que é s t e o b tie n e haga r e fe r e n c ia , s i in fo rm a c ió n de es un OP de de una in d ire c c ió n , accesa d o s e s to es, uno o b te n e r in fo rm a c ió n de lo s OPs a que la la hace. En e l p ro gra m a misma c la s e , s in 2 se em bargo en p ro g ra m a de pru eba p a ra el s is te m a G^ p e r s is t e n t e . o b je t iv o de é s t e e s lo c a liz a r in d ire c ta m e n te un OP s i e s que e x is t e . El o t r o c a so pueden s e r de d ife r e n t e cla se. /* */ ^include "th ea d .h ” ¿include "h e x te rn .h " p e r s is t s t r u c t p errosC ch a r nombreC45]; ch ar razat321; in t edad; s t r u c t p e r r o s » h ijo ; >; p e r s i s t s t r u c t p e r r o s »p p e r r o ; p e r s i s t s t r u c t p e r r o s » p p e r r o l; 60 C _jp e rsiste n te OBJETOB » p o t a s e = NULL; m ainO ch a r per[45J,ob jbaseCPJ; ch ar hijatSOJ; i f CCraizu=emptransO:>==NULL> e x it O ; p r in tfC " o b je t o base a a b r ir ?“J; s c a n f C"%s.’\ob jbase>; ifC C p o b a s e = a b re b a s e C "fe lix ",o b jb a s e ,"x ile f",2 »= = N U L L > < p r i n t f ("p ro b le m a s p a ra a b r ir e l o b je t o b a se\ n ” >; e x it.O ; > p r in t fC 'p e r r o a bu scar ? “ >; s c a n f< "% s ",p e r ); i f CCperi’ o2 —•buscaCper ,pobase>>-:=NULL> p r in t fC p e r r o no r e g is t r a d o \ n " ); e ls e if(p p e r r o 2 - > h ijo != NULL> p r i n t f C ’e l h ijo de <%s> e s % s\ n ",p er,p er-> h ijo-> n om b re> ; e ls e p r i n t f ("n o t ie n e h ijo\ n "> ; P r o g 2.a P rogram a en C __p ersisten te cuyo o b je t iv o e s lo c ia iz a r a t r a v é s de una in d ire c c ió n un o b je to . En e s t e c a so ambos son de la misma cla se El p ro gra m a cuando se le cód igo so n o b te n e r in d ire c c ió n , e s to por lo que se p a r tir del OP lo s p ro g ra m a s in d ire c c ió n , que 2.b en es, un OP puede é s ta y 2.b se debe de accesar en m em oria llamada a la fu n ción del que de que 2.a. un h a cer OP en OP, una la por y lo s id e n t ific a d o r e s en si e s te in clu sión OP el a de m an eja al que e s d el e s to s in d ica de la una OPs, có d ig o s que que es te de o tro s lo s in s tr u c c ió n expanción, i.nicializa con un p a rá m e tro c o n tie n e a c o n ten id a secu n d a ria , s is te m a de medio e n tre id ep en d ien tem en te o el o b je t iv o s r e f e r e n c ia d ife r e n c ia s e s tá n e n ti-e g a L os Ja in fo rm a ció n Las e fe c t ú a un cód igo puede p rim a ria t r a b a ja e l p ro ced im ien to . ^include “ th ead.h " el p rogra m a o b te n e r loca liza d o. 2.a el in fo rm a ció n e n c u e n tra a r c h iv o m u estra p ro p o rc io n a la MOP de se la nom bre con que C jje r s is ie n t e 61 ^include "h e x te rn .h " s¡ti*uet. p e r r o s i c h a r no,’nbre[451; ch a r ra za [3 2 ]; in t edad; long h ijo ; >; s t r u c t p e r r o s ip p e r r o ; s t r u c t p e r r o s « p p e r r o l; OB.JETGB *p o b a se = NULL; rnairiO < ch a r per[453,objbaseC93; ch ar hijaCSOl; in ic ia liz a C id p 2 > ; i f CCraizu=emptransO>==NULL> e x it O ; p r in tfC "o b j e t o b ase a a b r ir ?">; s c a n f C % s " ,ob jb a s e ); ifC C p o b a se= a b reb a seC felix ",o b jb a se,"x ilef",2 > > = = N U L L > < p r in tfC "p rob lem as p a ra a b r ir e l o b je t o base\n">; ex i-tO j > p r i n t f C p e r r o a bu scar ?">; scan fC "% s",p er>; ifC C p e r r o 2 = C s tr u c t p e r r o «>bu scaC & ptipos£03?p e r , pobase>>==NU LL> p r i n t f C p e r r o no r e g is t r a d o \n">; e ls e if(p p e r r o 2 - > h ijo != NULL> p r in tfC e l h ijo de <%s> es %s\n” ,p e r , C s tru c t p erro lo c in d C p p e r r o 2 -> h i jo ,S b p tip a s [0 ],p o b a s e > -> n o m b re > ; e ls e p r in t fC n o t ie n e hijoN n">; *> p r o g . 2.b Código C r e s u lt a n t e a l p r o p o rc io n a r como e n tra d a e l p rogra m a 2.a. El p rogra m a 3a m u e s tra la fo rm a en que dos OPs in s e r ta d o s p re v ia m e n te pueden s e r rela cio n a d o s. p ro gra m a de pru eba p a ra el s is te m a G _ p e r s is te n te . El o b je t iv o de é s t e e s e s t a b le c e r una r e la c ió n e n t r e dos OPs 62 C _ p e r s is t e n t e que e x is ta n ^include "th ead.h " ^include "h e x te rn .h " p e r s is t s tru c t p e rro s í ch ar nombret453; ch a r razat3 2 ]; in t edad; s t r u c t p e r r o s « h ijo ; >; p e r s i s t s t r u c t p e r r o s c p p e rro ; p e r s i s t s t r u c t p e r r o s * p p e r r o l; OBJETOB «p o b a s e = NULL; m ainO < ch a r per[451,objbaseE9]; ch a r hijaLSOl; i f CCraizu=emptransO>==NULL> e x itO ; p r i n t f C ’ob j e t o b ase a a b r ir ?'*>; sca n f< "% s” ,ob jb ase> ; ifC C p o b a se= a b reb a seC "felix ” ,o b jb a s e ,,,x i l e f ,"i2»==NULL>< p r i n t f ("p ro b le m a s p a ra a b r ir e l o b je t o b a s e \ n "); e x itO ; > p r i n t f C p e r r o a bu scar ? *'}; s c a n f("% s ",.p e r); i f (C p erro2 =b u sca (p er,p ob a se»= = N U L L > p r in t fC 'p e r r o no r e g is t r a d o \ n ” >; else< p r i n t f C"Cual e s su h ija ? ” >; s c a n f C"%s'',hi ja>; i f (C p e r r o l =busca<hi ja,pobase)>==NULL> p r in tfC 'n o e s i t e la h ija \ n "> ; e ls e p e r r o 2 -> h ijo = p e r r o l; > com m itO ; P r o g 3.a P rogra m a en C __p ersisten te. En e s t e ejem p lo s e m u e s tra como puede s e r e s ta b le c id a una re la c ió n e n t r e OPs. En e s t e c a so , lo s OPs son de la misma c la s e El cód igo sa lid a 3.a. el Las del p rogram a s is te m a cuando s e d ife r e n c ia s e n tre 3.b es el p rogra m a p ro p o rc io n a lo s p ro gra m a s como 3.a que e n tre g a e n tr a d a y 3.b el como p rogra m a e s tá n en la s 63 C _ p e r s is t e n t e in s tr u c c io n e s que co n tie n e n id e n t ific a d o r e s de son expandidas p a ra in d ica r a l MOP que t a r e a el cód igo la ta re a de la és te es n e c e s a r io que p r e s e n te e s ta s fu n ción d ife r e n c ia s son locpid es lo c a liz a r cuando se e s tá OPs, debe m arcadas el p id haciendo las cu a les de e fe c t u a r . con del En n e g r ita s , o b je t o , r e f e r e n c ia a ya lo s campos de t ip o apuntador, como s e ex p licó en e l c a p ítu lo V. «^includo "th ead .h " ffinclude "h e x te rn .h " s tru c t p e rro s í chai- nombret451; ch ar razat323; in t edad; lo n g h ijo ; >; s t r u c t p e r r o s ¡fcpperro; s t r u c t p e r r o s « p p e r r o l; OBJETOS *p o b a se = NULL; m ainO < ch a r perC45],objbaseL93; ch ar hijatSOJ; in i c i a l i z a ( i d p r o 2 > ; ifC (r a iz u = e m p tr a n s (»= = N U L L ) e x itO ; p r i n t f (" o b j e t o b a se a a b r ir ?">; s c a n f (”% s",ob jb ase> ; i f C (p o b a s e = a b re b a s e ("fe lix ",o b jb a s e ," x ile f ",2>>-=NULL>< p r i n t f ("p ro b le m a s p a ra a b r ir e l o b je t o base\n ">; . e x it O ; > p r in t fO 'p e r r o a bu scar ? ” >; s c a n f C"%s",per>; if< C p e r r o 2 = ( s t r u c t p e r r o ★> b u sca(& ptiposíO J,per,pobase>>=¡=N U LL,> p r i n t f ( “p e r r o no r e g is t r a d o N n " ); e ls e ( p r i n t f ("C u al e s su lu ja ? ” >; s c a n f ("% s ",h ija > ; i f ( < p e r r o l = ( s t r u c t p e r r o ♦ > b u s c a (& p tip o s tO ]>hija,pob¿*se>>==N U LL> p r i n t f ("n o e s i t e la h ija \ n "> ; e ls e p e r r o 2 - > h ijo = l o c p i d ( ( c h a r + ) p e r r o l , p o b a s e ) ; > com m itO ; P r o g 3.b P rogra m a C o b te n id o del s is te m a cuando s e da como e n tra d a e l cód igo de la f ig u r a 3.a. E s te p ro g ra m a m u e s tra la m anera de e s t a b le c e r la r e la c ió n e n t r e dos OPs 64 C _ p e r s is t e n t e El fu n ción O b je to lo s p rogram a 4.a m u estra la fo rm a como busca ob, B ase, a s í cu ales fu n ción con son: busca. le& llaves la la cual puede mismo s e a b r ir El cual un puede lo c a liza d o m u estran lo s p a so s O b je to y e fe c t u a r una llamada de cadenas p rogram a in ic ia liz a ser Base e fe c t ú a un a r r e g lo que s e r u tliz a d a un OP en la un deben s e g u ir s e , llamadas a la de a la fu n ción c a ra c te re s , la s cu ales son u tiliz a d a s como lla v e s de lo s OPs que s e buscan. /* p rogram a de pru eba p a ra e l sis te m a , e l o b je t iv e de e s t e p rogra m a e s bu scar o b je t o s p e r s is t e n t e s . Las busqueüas son e fe c tu a d a s en gru pos. Las lla v e s de lo s OP3 que s e buscan son tom adas d el a r r e g lo a p a r, e l cual e s in ic ia liz a d o p o r la fu n ció n leeJLlaves. */ ^include "th ead .h " «^include "h e x te rn .h " p e r s is t s tru c t p e rro s í ch a r nombre[453; ch a r raza[321; in t edad; s t r u c t p e r r o « h ijo ; >; p e r s is t s tr u c t p e rro s *p p erro ; p e r s is t s t r u c t p e r r o s » p p e r r o l; OBJETOB *p o b a se = NULL; m ainO < in t i = l , j rk=0; ch a r obaset91; c h a r aparC500][51; if((ra iz u = e m p tr a n s O )= = N U L L X p r in tfO 'n o e x is t e r e g i s t r o de u su arios\ n "> ; e x itO ; > p r i n t f ( " o b j e t o b a se a a b r ir ?">; s c a n f ("% s ",o b a s e >; if((p o b a s e = a b r e b a s e (” fe lix '\ o b a s e ,"x ile f",2 »= = N U L L > < p i-in tf("p ro b le m a s en la a p e r t u r a del o b a s e \ n "); e x itO ; > le e lla v e s (a p a r > ; 65 C¡ „ p e r s is t e n t e w h ileC iX p r in t f(" c u a n t o s caninos busco ?">; s c a n f C"%d'\&j>; e m p co n teo O ; forC ;k<j;k++X ifC C p p errol=b u sca(ap ar[k ],p ob ase}>==N U LLX p r i n t f ("p p e rro l-> n o m b re =% s\ ri"p p erro l-> n o m b re); p r i n t f (" p p e ii'o l- > r a z a = % s \ n ",p p e rro l-> ra za > ; p rin tfC "p p e rro í-> e d a d = %d\n” ,p p e rro l-> e d a d ); e ls e p r i n t f C ’no e x is t e e l p e rro \ n "> ; p a r a c o n te o C s td e rr,"in s e rc io n "> ; p r in tf< "\ n \ t \ t o t r a medición ? ” >; s c a n f ("% d‘',&i>; > > de main * / P r o g 4.a P rogra m a en C _ p e r s is te n te . El o b je t iv o de e s t a fu n ción e s e f e c t u a r busquedas de OPs en un O b je to Base, to d o s lo s OPs son de la misma c la s e en e s t e ejem plo. El cód igo s is te m a d ife re n c iá is Gomo de p rogram a se e n tre puede in clu sión d el cuando le ambos da c ó d ig o s o b serva rse la llamada de OPs es el se la fu n ción con dos «in clu d e "h e x te rn .h ” s t r u c t p errosC ch a r nom bret45]; ch a r razaC321; in t edad; lo n g h ijo ; >; s tr u c t p e rro s *p p erro ; s t r u c t p e r r o s « p p e r r o l; OBJETOB *p o b a se = NULL; m ainO en t r a b a ja e n tre g a 4.b con 4.a. el con el la s n e g r ita s . d ife r e n c ia s e l nombre del a r c h iv o que que p rogra m a in icia liza expanción de la llamada a la fu n ción buscaob. ¿'include "th ead .h " el m arcan ú nicas a re s u lta d o e n tra d a las como p a rá m e tro , la cual e s id e n t ific a d o r e s 4.b como son: una que c o n tie n e p ro c e d im ie n to , la cadena y lo s la 66 C _ p e r s is t e n t e in t i= l,j,k = 0 ; chai- obase[91; chai- aparE500][53; in ic ia liz a C id b u s > ; if((ra iz u = e m p tra n s ()> = = N U L L X p r in t f (" n o e x is t e r e g i s t r o de u su arios\ n "> ; e x it O ; > p i- in tfC 'o b je to b a se a a b r ir ?">; s c a n f ( ” % s",obase>; i f C (p o b a s e = a b r e b a s e ("fe lix ” ,o b a se/ ,x ilef",2 )> = = N U L L X p r in tfC p r o b le m a s en la a p e r tu r a del ob ase\n ">; e x itO ; > le e lla v e s (a p a r > ; w h iloC iX p r i n t f ("c u a n to s caninos busco ? “ >; s c a n f C"%d” e m p co n teo O ; fo r (;k < j;k + + X i f ( ( p p e r r o l = ( s t r u c t p e r r o * )b u s c a (& p tip o s [0 1 ,a p a r lk ], ... p o b a s e )> = = N U L L )í p r i n t f C ’pp erro l-> n o m b re = % s \ n "p p e rro l* >nom bre); p r i n t f (" p p e r r o l- > r a z a = % s\ n ".p p eri-o l-> i-a za ); p i- in tf ("p p e r r o l-> e d a d = % d\n",pperrol->edad>; e ls e p r i n t f ("n o e x is t e e l p e rro \ n "> ; p a ra c o n te o ( s td e r r , "busqueda">; p r i n t f ( “\n N t V t o t r a m edición ? ” >; s c a n f (■,%d” ,6ci); > > de main p r o g 4.b có d igo que e n t r e g a e l s is te m a cuando s e le da como e n tra d a e l p rogram a 4.a. El p rogra m a fu n ción 5 m u estra borra ob p e r t e n e c ie n t e a p a ra un la fo rm a elim in ar u su ario como OPs determ in ado. de El puede una ser u tliz a d a O b je to p ro c e d im ie n to o b je t o s con lla v e s co n ten id a s en e l a r r e g lo llamado apar. la Base elim ina C _ p e r x is t e n t e p rogram a de pru eb a p a r e l s istem a , e l o b je t iv o de e s t e co d igo e s elim in ar OPs de un O b je to Base. Las lla v e s de io s OPs que se elim inan son tom adas del a i-re g lo a p a r, el cual es in ic ia liz a d o p o r la fu n ción le e lla v e s . /^include "th ead .h " ¿‘include "h extei-n .h ” p e r s is t s tru c t p e rro s í chai* nombre[45J; chai* razaC323; in t edad; s t r u c t p e r r o « h ijo ; >; p e i-s is t s t r u c t p e r r o s #pperx-o; p e r s is t s t r u c t p e r r o s « p p e r r o l; OBJETOB *p o b a se = NULL; m ainO in t i= l,j,k = 0 ; ch ar obase£93; ch a r apartSOOltSl; ifC (ra izu = e m p tra n s O }= = N U L L X p r ir ít fC n o e x is t e r e g i s t r o de u s u a r io s V i"); e x it O ; > p r i n t f C” o b je t o base a a b r ir *?">; s c a n f C"% s",obase ); ifC C p o b a se= a b reb a seC "felix ” ,o b a s e ," x ile f“ ,2 »= = N U L L X p r in tf("p r o b le m a s en la a p e r tu r a del obase\n ">; e x itO ; > le e lla v e s Capar ); w h ileC iX pi*in tfC “ cu a n tos caninos elim ino ? ” >; s c a n f C"%d*‘,&j>; e m p co n teo O ; forC;k<j;k++> ppex-rol=bori'aobCapar-tkJ,pobase> p a ra c o n te o C s td e rr,"b o rra d o p r ir itfC ” \n \ t \ t o t r a m edición ?">; sca n fC '’%d",&i>; > e x it O ; > de main * / P r o g 5.a P ro gra m a en C _ p e i*s is te n te cuyo o b je t iv o e s elim in a r OPs de un O b je to Base, to d o s lo s OPs son de la misma cla se. 63 C _ p e r s is t e n t e El se p rogram a S.b como e n tra d a llamada a fu n ción fu n ción inicializa, con que da la c o n tie n e lo s es el el cód igo p rogram a borra ob y la un p a rá m e tro id e n t ific a d o r e s r e s u lt a n t e 5.a. Las in clu sión que e s de OPs del s is te m a d ife r e n c ia s de el la llamada nom bre con que cuando son: a la la del a rc h iv o t r a b a ja el p roced im ien to. ^include "th ead .h " #inc'ude "b e x te rn .h " s t r u c t p e rro s < ch ar nombreC45]> ch a r razaC321; in t edad; lo n g h ijo ; >; s t r u c t p e r r o s fcpperro; s t r u c t p e r r o s » p p e r r o l; OBJETOB *p o b a se = NULL; m ainO < in t i= l.j,k = 0 ; ch ar obase[91: ch a r aparC5001[51; in ic ia liz a C id b o r r a > ; i f «ra izu = e m p tra n s O > = = N U L L X p r in t fC n o e x is t e r e g i s t r o de u su a rio sN n "); e x itO ; > p r i n t f C ’o b je t o base a a b r ir ?'*>; s c a n f C'‘% s",obase>; i f < (p o b a s e = a b r e b a s e ("fe lix ” ,o b a s e ,” x i l e f ” ,2>>==NULL>< p rin tfO 'p ro b le m a s en la a p e r tu r a del o b a s e \ n "); e x it O ; > leellavesC ap ar> ; v/hileCiX p r in t f(" c u a n t o s can in os elim ino s c a n f C” %d" ,&j >; e m p co n teo O ; fo r (;k < j;k++> pperrai=<struct perros *>borraobC&ptiposI01,aparlkl,pobase> p a r a c o n t e o (s t d e r i,,,‘borr-adc p r in tfC 'N n \ t \ t o t r a m edición ?'*>; s c a n f C’’%d",&i>; 69 C_pei-sis t e n t e e x it O ; > /'* cío main * / P r o g 5.b P rogra m a r e s u lt a n t e del p re p ro c e s a d o r cuando s e le da como e n tra d a e l código del p rogram a 5.a. El cód igo de e s t a fu n ción r e s u lta n te e s tá en G esta n d a r. El la p rogram a cual c r e a r á caso de que lo s 6 m u estra O b je to s e x is ta n , la u tiliz a c ió n Base d esead os únicam ente s e rá n de si la fu n ción e s to s a b ie r t o s en a b re b a s e no e x is te n , la m anera en que se indica. /* p rogra m a de pru eba p a ra el s is te m a C _ p e r s is te n te . el o b je t iv o de e s t e p ro ced im ien to e s c r e a r e l numero p o s ib le de o b je t o s ba se, e s to es el numero p e rm itid o p a ra una tra n s a c c ió n . ^include "th ead .h ” ^include "h e x te rn .h " p e r s is t s tru c t p e rro s í ch ar nombreC45]; ch ar razat323; in t edad; s t r u c t « h ijo ; >; p e r s is t s t r u c t p e r r o s * p p e r r o ; p e r s is t s t r u c t p e r r o s * p p e r r o l; OBJETOS «p o b a s e = NULL; m aiaO < in t i= l,j,k = 0 ; ch ar obase[93; ch a r aparC5003[53; if(C ra izu = em p tra n sO > = = N U L L X p r in tfC 'n o e x is t e r e g i s t r o de u su arios\ n "> ; e x itO ; > le e lla v e s C apar); w h ileC iX p i-in tf ("c u a n to s O b je to s Base c r e o ?">; s c a n f C"%d'*,&j>; e m p co n teo O ; forC ;k<j;k++) 70 C _jje rsiste n t.e if« a b r e b a s e C " f e l i x ,‘,apar[k3,"xilef",MODOL>==NULLX p rin tfC 'p ro b le m a s en la a p e r tu r a c r e a c ió n dei O b je to B a se\ n "); e x itO ; > com m itO ; p a ra c o n te o C s td e r r ,"b o rra d o p r i n t f C"\n N t V t o t r a m edición '?">; scanfC"% d,‘,&i>; %d esim o > e x it O ; > / * de main * / P r o g . 6.a P rogram a en C ¡_persis t e n t e cuyo o b je t iv o e s a b r ir s i e s que e x is t e n lo s O b je to s Base, o c r e a r lo s en caso c o n tr a r io . El número de O b je to s Base a b ie r t o s , depen derá de la c o n fig u ra c ió n que te n g a e l s is te m a que s e u&e El p rogram a es con p ro p o rcio n a d o el 6.a ir iic ia liz a O , que es lo s un el r e s u lta d o p rogram a únicam ente con c o n tie n e ó.b e s el la 6.a. que da La in clu sión p a rá m e tro que id e n tific a d o r e s el d ife r e n c ia de in dica la de las c la s e s itinclude "th ea d .h " ¿^include "h e x te rn .h " s tru c t p e rro s i ch a r nombre[453; ch ar razat3 2 1; in t edad; lo n g hi jo ; >; s t r u c t p e r r o s * p p e r io ; s t r u c t p e r r o s * p p e r r o l; OBJETOB *p o b a se = NULL; m ainO < in t i= l,j,k = 0 ; ch a r obasei[93; ch ar aparrS00ir51; in i c i a l i z a < " i d c r e a . p ” >; if< < raizu = em p tran sO > = = N U L L X p r in tfC "n o e x is t e r e g i s t r o de u su arios\ n "> ; e x itO ; > de a nombre de cuando e s te llamada el e l p roced im ien to. s is te m a OPs le p ro g ra m a la fu n ció n del a r c h iv o que m aneja 71 C _ p e rs is t e n t e leellaves<apax->; w h ileC iX printfC'cuantos Objetos Base creo ?">; s ca n f("% d ",& j> ; e m p co n teo O ; foi*(;k< j;k++> ifC <abrebaseC Mf e l i x ,,,apar[k3J,,x i l e f ,,,MODOL>==NULL>< px-iritf ("p ro b le m a s en la a p e r tu r a c re a c ió n del O b je to E a s e 'a i"); e x itO ; %d esim o com m itO ; p a ra c o n te o C s td e iT .‘‘boi-rado p r i n t f C*'\n \ t \ t o t r a m edición ? " ) ; a c a n f C"%d",&i>; > e x it O ; > y » de rrtain P r o g 6.b P rogram a que r e s u lt a cuando s e da e l cód igo del p rog. ó.a. E s te código en C e fe c t ú a la a p e r t u r a o c re a c ió n de O b je to s Base p e r te n e c ie n te s a un u su a rio p a rtic u la r. El p rogra m a fu n ción b o b a s e 7 m u estra la la cual tie n e el fo rm a como o b je t iv o puede ser de elim in a r u tiliz a d a O b je to s la Base de urj u su ario /* p ro gra m a de p i-ocediiniento usu-ar-io. prueba pai'a e l s istem a . El o b je t iv o de e s t e e s elim in ar o b je t o s b ase p e i't e n e c ie n t e s a un ^include "th ead .h " ¿"include "h ejite rn .h " p er-sist s ti-u c t p e r r o s í chai' nombre[453; ch ar razat323; in t edad; s ti-u c t p e r r o * h ijo ; >; p e r s is t s t r u c t p e r r o s « p p e r r o ; p e r s is t s t r u c t p e r r o s * p p e r r o l; OBJETOB »p o b a s e = NULL; m ainO < in t i«l,j,k = 0 : ch ar obaset93; 72 C _ p e r s is t e n t e ch ar apar[5003t5]; irCCraizu=e‘mpti-ansC>>==NULL>< p r in tfO 'n o e x is t e r e g i s t r o de u su arios\ n "> ; e x it O ; > le ella ves< a p a r> ; v h ile C iX p r i n t f ("c u a n to s O b je to s Base elim ino ?">; s c a n fC ,%d‘,,S:j>; em p co n teo O ; fort;k<j;k++> ifC b o b a s e C "fe lix '',a p a rtk ],"x ile f"> = = F A L L A X p r i n t f ("p ro b le m a s en la elim in ación del O b je to B ase\ n "); e x itO ; %desimo commit O ; p a r a c o r ite o (s td e r r ,"b o r r a d o p r i n t f ( ” \n \ t V t o t r a m edición s c a n f C’ '%d" ,&i >; > e x i t . C>; > / * de main p r o g 7.a P rogra m a en C _ p e r s is te n te ,c u y o o b je t iv o e s eliminarO b je to s Base de un u su ario El p rogram a 7.b e s e l re s u lta d o el p rogra m a p ro ced im ien to u su sa rio 7.a al son s is te m a elim in ar particular-. una llamada a la La fu n ción de p r o p o rc io n a r im plantado. O b je to s Base d ife r e n c ia inicia liza con e s tá Los como e n tr a d a o b je t iv o s en la un p a rá m e tro es te a in clu sión un de que c o n tie n e lo s id e n t ific a d o r e s de la s c la s e s con que t r a b a ja la función. ¿include "th ead .h " ¿include "h e x te rn .h " p e r s is t s tru c t p e rro s í char- nombreE453; ch ar razaf321; in t edad; lo n g h ijo ; >; s tru c t p erro s »p p erro ; s t r u c t p e r r o s « p p e r r o l; OBJETOB »p o b a s e = NULL; m ainO de p e r t e n e c ie n t e s C _ p e r s is t e n t e irit i =1, j.k=Q; ch ar obaseC93: chai- apar[5003I5J; in ic ia liz a C "id p b o b o .p "> ; if((ra izu = e m p tr*a n s (»= = N U L L > < p r in t f (" n o e x is t e r e g i s t r o de u su arios\n ">; e x it O ; > le e ila v e s C apar); w h ile (iX p r in t f(" c u a n t o s O b je te s Base elim ino ?">; s c a n f ( "%d’ ’ ,&j ); em p coriteoO ; T o r ( Jc<j;k++> if(b o b a s e ("fe lix ",a p a r [k 3 ..‘‘x ile f"> = = F A L L A X p r i n t f ("p ro b le m a s en la elim in ación d el O b je to Base\n">; e x it O ; > com m itO ; p a r a c o n te o (s td e r r ,"b o i'r a d o ” >; p r i n t f ( “ \n V t V t o t r a m edición ?">; s c a n f ( "%d” ,&i >; > e x it O ; > de main %desimo P r o g 7.b P rogra m a en C que r e s u lt a cuando s e da a l s is te m a e l cód igo m ostrad o en e l p rog. 7.a. El o b je t iv o de e s t e p ro ced im ien to e s elim in ar O b je to s Base de un usu ario. El p rogrm a se 8 es un ejem p lo puede exam inar o m o d ific a r p rogram a p rin c ip a l e fe c t ú a del un llam adas uso O b je to a del s is te m a Base de con un la.>- fu n c io n e s el cual u su a rio, b á s ic a s el paz-a OPs.. E s te ejem p lo e s típ ic o de un s is te m a de con su lta. p rogra m a de ap lica ción del s is te m a C _ p e r s i te n t e . el o b je t iv o de e s t e p ro ced im ien to e s e l c la s ic o de a lt a s b a ja s y cam bios que s e e fe c t ú a con una b ase de d a to s. / ¿‘include "th ead .h " ^include "h e x te rn .h " Cj p e r s i s t c n t e p e r s is t s tru c t p e rro s i ch ar nombre[453; ch ar ra za [3 2 ]; in t edad; s t r u c t p e r r o s * h ijo ; >; p e r s i s t s t r u c t p e r r o s «p p e r r o ; p e r s i s t s t r u c t p e r r o s * p p e r r o l; OBJETOB *p o .b a se = NULL; mairiO < irit tr a n s = 1; ch a r o b ase[9 ]; if<C raizu=-em ptransO )==NU LL)< p rin tfC 'Y .o e x is t e r e g i s t r o do u s u a rio s X n "); e x it O ; > p r i n t f C"ob j e t o b ase a a b r ir ?">; s c a n f ( "%s " rob ase ) ; ifCCpobase = ab rebaseC ’T eiix *’ ,o b a se,,,x i l e f “ ,2»=®NULL>< p r i n t f (p ro b lem a s en la a p e r tu r a \n‘‘>; e x it O ; > w h ile C tra n s X p r i n t f C"\n\n); --------------------- 0 \ n "); p r in tf ( ”\ t\ t\ b s a lir p r i n t f C V t V t V t i n s e r t a r ---------------- l\n">; p r in t fC ” \ t \ t \ t b u s c a r ------------------- 2\n">; p r i n t f ( " \ t \ t \ t b o r r a r ------------------- 3 \ n "); p r i n t f <"\n\ri): scan fC ‘'% d ",& tran s); i f (tra n s= = 0 > e ls e ifC tr a n s ==1> a lt a O ; e ls e ifC tr a n s ==2> lo c a liz a O ; e ls e ifC tr a n s ==3> b o rra O ; e ls e p r in t f C ’c p cion in v a lid a "); >/* de w hile #/ com m it O ; > / « d e m ain * / a lt a O í in t i-1 ; w h ileC iX p p e r r o = C s tru c t p e r r o s *> m a llo c C s ize o fC s tru c t p e r r o s ) ) ; p r in t fC " \ n \ t \ t p erro -> n o m b re? " ) ; 74 C _ p e r s is t e n t e s c a n f("% s ",p e r i,o->n om b re); p r i n t f C'NnNtNt p e r r o -> r a z a ? s c a rif("% s ",p e rro -> j'a z a > ; p r i n t f C "\ n \ t\ t perro~>edad? " >; s c a n f (” % d",pG rro->edad); p p e rro -> lii j o = NULL; iris e rta (p p erro -> n o m b i-e,.p o b a se,p p erro ); p r i n t f ("N n S ti"); p r in t f C 'o t r a in s e rc ió n CO i>? s c a n f C"%d'\i); > / * de a lt a lo c a liz a O < in t i= lj c h a r llave[3 0 ]; w h ileC iX p i’iritfC “ lla v e del o b je t o a bu scar ? “ >j K can fC ’% s ",lla v e ); ifC C p p errol=b u scaC llave.p ob ase»!=N U LL)< p r i n t f C“ p p erro l-> n o m b re = %s\n’% p p errol-> n om b re); p r in tfC ,‘p p e ri-o l-> ra z a = % s\ n ".p p e rro l-> ra za > ; p r i n t f C "pp errol->ed ad = %d\n” ,p p e rro l-> e d a d ); > e ls e p r in tfC 'n o e x is t e e l o b je t o \ n " ); p r i n t f C’o t r a busqueda CO 1) ? " ): s c a n f C"%d",&i>; b o rra C ) < in t i= l; ch a r llavetSO]; w h ileC iX p r in t fC 'lla v e del o b je t o a b o r r a r ? " ) ; scan fC "% s*',llave); ifC C p p erro l = b orra ob C lla ve,p ob a se))!= N U L L X p r i n t f C "pperrol->n om bre = % s\ n ",p p eri'o l-> n o m b re); p r i n t f C "p p erro l~ > ra za = % s \ n ",p p e r r o l-> r a z a ); p r i n t f C’’p p e rro l-> e d a d = % d\n'% pperrol->edad); > e ls e p r in t f C ’no e x is t e e l o b je to \ n "> ; p r in t f C 'o t r a exclu cion ? " ) ; s c a n f C"%d",i>; > > p r o g 8.a P rogram a en C _ p e r s is te n te . E s te p ro ced im ien to m u e s tra la s oper a cio n es b á s ic a s que s e pueden r e a liz a r con io s OPs , en una ap lica ció n de a lt a s b a ja s y busquedas. 75 76 C p e r s is t e n Le El p rogram a 8.b m u estra e l cód igo C que r e s u lt a como lo s e n tra d a c ó d ig o s al son expanción de la s han sid o obtu b o, s is te m a m arcadas p rogram a con como con la lo s 8.a. n e g r it a s fu n cio n es con que s e aum entadas así el de y Ja que OPs, el llamada «rinclude "th ead .h " ¿Include "h e x te rn .h " s t r u c t p e rro s < ch ar nombre[453; ch a r razat32J; in t edad; lo n g h ijo ; >; s tr u c t p e rro s *p p erro ; s t r u c t p e r r o s C p p erro l; OBJETOB *p o b a se = NULL; mainO < in t t r a n s = 1; ch ar obase[93; ifC (ra izu = em p tra n sO )= = N U L L > { p r in t fC n o e x is t e r e g i s t r o de u s u a r io s V i" ): e x it O ; > p r i n t f ( " o b j e t o b a se a abril- ?">; s c a n f <“ %s " ,ob ase >; ifCCpobase = ab reb a seC "felix ",o b a se,"x ilef"..2 ))= = N U L L > < p r i n t f (p ro b lem a s en la a p e r tu r a \n">; e x it O ; > vrh ileC tran sX p r i n t f ("\n \n >; --------------------- 0\n">; p r in tf C "\ t\ t\ t s a lir p r in t f C " \ t \ t \ t i n s e r t a r ----------------- l\n ">; p r i n t f ( " \ t \ t \ t b u s c a r -------------------- 2\n” >; p r i n t f ( " \ t \ t \ t b o r r a r --------------------3\n">; p r i n t f C"Sn\ri>; s c a n f <"% d",&trans>; i f(t r a n s = = 0 ) la s da e n tre b á sica m en te, lo s inicializa. e ls e ifC tr a n s ==1> cuando s e d ife r e n c ia s son , m anejan p a rá m e tro s inclu sión Las la cu a les p re p r o c e s a d o r a la fu n ció n C _ p e r s is t e n t e 77 a lt a O ; e ls e i f ( t r a r i s ==2> lo c a liza C ); e ls e i f ( t r a n s ==3> b orra O ; e ls e p r in tfC 'o p c io n in v a lid a ” ); >/* de while * / com m itO ; > /#de main * / a lt a O C in t i~ l; v.’h i l e d X p p e rro = ( s t r u c t p e r r o s * > m a ilo c (s iz e o f(s t r u c t p e r r o s » ; p r in t f (" \ n \ t V t p e r r o - >noinbre? " ) ; sca n f("% s",p erro ~ > n o m b re> ; p r i n t f ( " \ n \ t \ t p e r r o -> r a z a ? " ) ; s c a n f(" % s " ,p e r r o - > r a z a ); p r i n t f (" \ n V t \ t p erro -> ed a d ? " >; s ca n f("% d ".p ei-ro -> ed a d ); p p e rro -> h i jo — NULL; in s e ] ta íp p e r r o - > n o «iíb r e ,p o b ¿ ts e ,(c h a r * )p p e rro ,& p tip o s [O J > ; p r in t f(" \ n \ n “ >; p r i n t f ( " o t r a in s e rc ió n (0 1>? s c a n f("% d ” , i ) ; > > de a lt a #\ lo c a liz a O < in t i= l; ch ar llave[303; v/hile(i>< p r i n t f (" lla v e del o b je t o a bu scar ? " ) ; s c a n f("% s ".lla v e ); i f C (p p e r r o l = ( s t r t i c t p e r r o s ♦ )b u s c a (& p t ip o s lO ]>l l a v e , p o b a s e ))!= N U L L )< p r i n t f ( ” p p errol-> riom b re = % s\ n ",p p erro l-> n o m b re); p r in t f (" p p e r io l- > r a z a = % s \ n ",p p e r r o l-> r a z a ); p r in t f(" p p e r r o l- > e d a d = % d\n ",p p erxol- > ed a d ); > e ls e p r i n t f ("n o e x is t e e l o b je t o \ n ” >; p r i n t f ( " o t r a busqueda (0 1) '?"): s c a n f ( ”% d",&i); > b o rra C ) Cjp e r s i s t e n t e 78 in t i= l; ch ar llave[30]; w h ileC iX p r i n t f (" lla v e del o b je t o a b o r r a r ? *'); scan f lla v e ); i f í C p p e r r o l = C s tr u c t p e r r o s * )b o r i'a o b (& p t ip o s í0 1 , llave,p ob ase> > != N U L L > < p r in tí'("p p e r r o l-> n o m b r e = % s \ n ",p p e rro l-> n o m b re ); p i'in tf< "p p e r i‘o l- > r a z a = / ís \ n ",p p e r r o l-> r a z a ); pr,in tf< "p p e r r o l-> e d a d = % d\n">p p e rro l-> e d a d ); > e ls e p r in t f C ’no e x is t e e l o b je t o \ n ” >; p r i n t f ( " o t r a exclu cion ? sc¿m f ("% d",i>; 79 C_pei-sis t e n t e VI.2 TIEMPO DE EJECUCION DE OPERACIONES BASICAS DEL MOP En e s ta s e c c ió n o p e ra c io n e s O b je to s Base. m ediciones es p a rá m e tro , de la s m o stra d o s, que tim es, del la la s tim&s g r á fic a s que e fectu a r- la s y a en e l de manipular OPs y de e s te tiem p o un p a rá m e tro se de hacen eje m p lo s uso de e s t a c o n ta b iliz a . que em plea em pleado similar.. de t ie n e p ro gra m a s que el en en e s t e y la s b ib lio te c a fu n ción p a ra c o n te o tiem p o es en la s e fe c t u a r la E s ta lo s tiem p o del u su ario p a ra p a rte UNIX. En em pconteo r e p o r ta n son e l area e je c u c ió n e stru ctu ra , efe c tu a d a s . o p e ra c io n e s , e l de p a ra em pleó fo rm a r e p o r ta n e l se se o p e r a t iv o apu ntador fu n cio n es tiem p o s disponen que cual s is te m a t ip o lo s se fu n ción m ediciones fu n ción t ra b a jo m u estran de La p ro c e d im ie n to s r e fle ja n se b á s ic a s la Las CPU en e fe c t u a r caso el ya que el s is te m a s e p rob ó cuando no e x is tía n o t r o s u su arias. L as son g r á fic a s o b te n id a s ejem p los. El r e s p u e s ta de de tiem p o s la e je c u c ió n o b je t iv o del de s is te m a , de r e s p u e s ta lo s de lo s e jem p lo s por- lo que del s is te m a p rogra m a s es se o b te n e r un tra ta im plantado m o stra d o s de como tiem p o elim in a r de en lo p o s ib le la in te r a c c ió n del s is te m a con e l usuario. P a ra algunas fu n cion es no es p o sib le m o s tr a r un tiem p o de r e s p u e s ta único debido a la n a tu ra le z a misma de la función. En cada c a so se in dica la fu n ción que s e u t iliz o , y se e x p lic a la g r á f ic a r e s u lta n te . In s e rc ió n C onservando OPs en Memoria P rim a ria Sin Compromiso Enla g r á f ic a r e s u lta d o s p rogram a (n o x,y> o b te n id o s l.b, m ostrad a al exeptuando en la e je c u t a r el en és te la f ig u r a 6.1 p ro gra m a in clu sión de se m u e s tra m o stra d o la lo s en llamada a el la C _ p e r s is t e n t e fu n ción coramit. r e s p u e s ta ca so la in s e r c ió n p o s te r io r m e n te o b je t o s En é s ta del s is te m a es se se g r á fic a se cuando s e in s e r ta n in crem en ta !, e s to pide in s e r t a r p re v ia m e n te in s e r ta d o s tie n e n de es, o tro 1 a se lo s tie m p o s in s e r t a o b je t o un podemos o b je t o , con servan d o en m em oria p rim a ria , h a s ta un t o t a l de 500 OPs. De la g r á fic a de 500 OPs. En e s t e o b serva r que lo s in s e r ta r el tiem p o de r e s p u e s ta tie n d e a s e r lineal. f i g . 6.1 Tiem pos de R esp u esta del S is te m a a In serció n , de OPs con servá n d o lo s en Memoria P rim a ria s in Compromiso In s e rc ió n s in C o n serva r OPs en Memoria P rim a ria Sin Compromiso La g r á f ic a s in la 6.2 fu e e je c u c ió n o b ten id a de la de llamada la e je c u c ió n a la del fu n ción px-ograma de l.b, p ero com prom iso. En 81 C _ p e rs is t e n t e dicha fig u r a in serció n . se s in c o n s e r v a r lo s OPs, se m u estra En e s t e ca so la r e s p u e s ta los o b je t o s en m emoria, e s t o r e in ic ia liz o el s is te m a , del s is te m a fu e ro n e s , p o r ejem p lo y p a ra in s e r ta d o s nu evam ente se se la fu n ció n por g ru p o s in s e r t a r o n in s e r t ó 10 o tro g ru po de más elem en tos. De la s g r á fic a s podemos ob serva r el c om p orta m ien to lin e a l d el sistem a . f i g . 6.2 Tiem pos de R e s p u e s ta del S is te m a a In serció n , de OPs s in c o n s e r v a r lo s en Memoria P rim a ria y s in Compromiso In s e rc ió n C onservando OPs en M emoria P rim a ria E fectu an do Compromiso La g r á f ic a p rogram a cuando s e 6.3 l.b. m u e s tra lo s tie m p o s E s ta g r á f ic a m u e s tra el in s e r ta n OPs en un O b je to o b te n id o s al c o m p o rta m ien to Base. P a ra cada e je c u t a r del el s is te m a in s e r c ió n se 82 C _ p e rs is te r»te c o n serva n lo s e fe c tu a n d o OPs ya in s e r ta d o s in s e r c io n e s , al fin a l en mem oria de la s p rim a ria in s e r c io n e s y se se sig u en e fe c tú a el com prom iso de la tra n sa cció n . f i g . 6.3 Tiem pos de R e sp u esta del S is te m a a In serció n , de OPs con servá n d o lo s en Memoria P rim a ria con Compromiso In s e rc ió n s in C o n s e rv a r OPs en M emoria P rim a ria E fectu an do Compromiso La f ig u r a 6.4 m u e s tra lo s tiem p o s de r e s p u e s ta op era ció n de in s e r c ió n o s to es, se cada vez un número sin c o n s e r v a r o b je t o s e je c u ta r o n v a r ia s v e c e s d if e r e n t e de el o b je t o s , d el s is te m a p a ra la en m em oria p ro gra m a l.b, además se p rim a ria , in s e rta n d o r e a liz ó al fin a l de cada tr a n s a c c ió n la fu n ción de com prom iso. Nuevam ente o b s e r v a r que de la in fo rm a ció n de la e l s is te m a tie n d e a t e n e r g r á fic a (n o una r e s p u e s t a x,y> podem os lin eal. 83 C _ p e r s is t e n t e f i g . 6.4 Tiem pos de R es p u e s ta del S is te m a a In serción , de OPs s in c o n s e r v a r lo s en Memoria P rim a ria con Compromiso Busqueda de OPs Teniendo OPs en Memoria P rim a ria La fig u r a 6.5m u estra lo s tiem p o s de r e s p u e s ta o p e ra c ió n el busqueda ten ien d o p ro ced im ie n to p o s ib le Los de que r e s u lta d o s e je c u t a r el m edicion es fu e en perm anecen que se s e m u estran en tomando el m em oria en como a r r e g lo de en la La lla v e s s in p rim a ria , del s is te m a m em oria en OPs In icia lm en te em bargo por lo lo s que cu a les es en prim a ria . o b te n id o s al e fe c t u a r o n la s lo c a liz a r ningún co n fo rm e ia es, que s e a p a ra e s to m em oria fu e r o n m anera lo s de en g r á f ic a de p rim a ria , OPs, p re s e n te s 4. apar. p rim a ria , m em oria en busquedas e n cu en tren p rogra m a co n te n id a s e n c u e n tra r e a liz a algunos OPs OP la s se se lo c a liz a n , la s ig u ie n te 84 C _ p e r s is t e n t e busqeueda s e e n cu en tra n ya algunos de é s t o s en m em oria p rim a ria . fig .6 .5 Tiem pos de CPU em pleados p o r e l s is te m a p a ra e fe c t u a r busquedas de OPs con servan do lo s que s e e n cu en tra n en m em oria p rim aria. Busqueda de OPs en Sin M an ten erlos en Mem oria P rim a ria La f ig u r a el 6.6 m u e s tra lo s p rogram a 4. La ejecu ta n d o v a r ia s e x is tir OPs en fo rm a r e s u lta d o s que s e en e fe c t u a r o n que se o b tu v ie r o n a l e je c u t a r la s m edicion v e c e s e l program a, de t a l m anera que no pu dieran m em oria prim aria. Las lla v e s p o r lo ca liza n lo s OPs son tom adas del a r r e g lo apar. la s cu a les se 85 C _ p e r s is t e n t e tiempo en decim os de fig .6 .6 Tiem pos de CPU em pleados p o r e l s is te m a p a ra e fe c t u a r bus quedas de OPs s in c o n s e r v a r lo s que s e en cu en tra n en m em oria p rim aria. Elim inación de OPs de Un O b je to Base La g r á f ic a e je c u t a r el 6.7 m u estra p ro g ra m a lo s 5. La elim inan gru p o s de OPs p e ro m ie n tra s que lo s re s u lta d o s p rim era re s u lta d o s que g r á f ic a s in e fe c t u a r g r á fic a d o s es se la fu n ción de com prom iso. En cuando al se la fu n ció n de com prom iso, en la u ltim a, fu e r o n o b te n id o s de la misma fo rm a , s ó lo que en e s t a e fe c t ú a o b tu v ie r o n o b te n id a ambos lo s d a to s o c a s ió n s i casos cuando elim inan lo s OPs, e s t o s no s e en cu en tra n en m em oria p rim aria. se se 86 C _ p e rs is t e n t e ti.«mpo en decimos cte s e g . fig .6 .7 a Tiem pos de CPU em pleados p o r e l s is te m a p a ra b o r r a r OPs s in e fe c t u a r la fu n ción de com prom iso fig .6 .7 c Tiem pos de CPU em pleados p o r e l s is te m a p a ra b o r r a r OPs e fe c tu a n d o la fu n ción de com prom iso C _ p e r s is t e n t e 87 1. 3 1. 7 tiempo fig OPs 1. P 2. i en d e c i m os d e 2. 3 2. 5 seg. 6.7d Tiem pos de U suario r e p o r ta d o s cuando s e elim inan de un O b je to Base e fe c tu a n d o la fu n ción de com prom iso C rea ción y/o A p e r tu r a de O b je to s Base La g r á f ic a 6.8 m u e s tra el p rogrm a 6.b razón caso por la cuyo, que que ya e x i s t i e r a tiem p o s medidos cuando ninguno de O b je to s secu n dai'ia y/o O b je to s de p rim a ria , Base e s e l máximo que p e rm ite e je c u t ó e l program a. es e s to c re d o s o crear a p ertu ra a b r ir cuando es g r á fic a s la p r im itiv a que es, en se a b re n O b je to s Base el ejem p lo son la c o n fig u ra c ió n se en son a breba se en La el "c re a rá ", m u estran e x is t ía lo s e je c u t a Base. porqu e no e x is t a fu n ción se O b je to s a b rirá . Las llama Base o d esea s ó lo s e se o b te n id o s a b r ir c re a c ió n Base que s e en caso número re s u lta d o s indicam os que e l O b je to lo s lo s o b je t iv o lo s y m em oria crea d o s. 28, debido El a que del s is te m a en e l que s e C _ p e r s is t e n t e 88 tiempo en decimas de segundo fig .6 .8 Tiem pos de CPU em pleados p o r e l s is te m a p a ra c r e a r O b je to s Base Elim inar O b je to s Base Elim inar un O b je to la s fu n cio n es tiem p o que r e q u ie r e c a r a c t e r ís t ic a ca p ítu lo s cu a les que tr a e c la s e s del es del u tiliz a n p a ra em pleado con sea más cla s e s . s ig o un por que y ya Base cada ta re a s un un que e fe c t ú a em bargo su que la como ser Base, se de v a ria d a s es la s O b je to más rá p id o que e lim in a r o t r o no en b ase O b je to que que del es e x p lic a v a r ia s una en los c la s e s , número, n e c e s a r io c la s e s una de c u a n tiza c ió n t r a b a jo puede c o n te n e r pueden O b je to e lim in a r la s s in e fe c t u a r s is te m a , es p a c io elim in a r una de MOP, 3 y 4, un O b je to p a ra e s p a c io Base b á sica s la s por recu p era r c o n tie n e , co n te n g a Base lo el e s to pocas que c o n te n g a C _ p e r s is t e n t e 89 VI.3 PROYECCION DE LA IMPLANTACION En e s ta s e c c ió n se d iscu ten algunas s u g e re n c ia s p a ra la p ro y e c c ió n del s istem a . El s is te m a o r ie n ta d o hacia e l m anejo de d a tos. La im plan tación s im ila r a la e x is t e en e lla in t e r r o g a c ió n se p r e s e n ta por la s un p a ra la ejem p lo haciendo r e a liz a d a como ta l tie n e una de un M anejador de B ases de D atos, uso len g u a je o b te n e r op ción alguno de la s e s tru c tu ra s de que p e rm ita in fo rm a ció n im p lan tar basado en fu n cio n es por el un c o n c re ta . a lg e b ra del o r ie n ta c ió n em bargo hacer un le n g u a je el b á sica s g en era d a s más s in de Por s is te m a , o de lo que in te r r o g a c ió n , . re la c io n a l MOP, , no tip o el cual d ire c ta m e n te p e rm ita de o b te n e r in fo rm a ció n más c o n c re ta . El s is te m a o rie n ta d o hacia una p ro gra m a ció n o r ie n ta d a a o b je t o s . Como r e s u lta d o com pu esta o b je t o s ; de haciendo in fo rm a c ió n cada c la s e e s ta s dos de de de la módulos fo rm a en un unos cam bios la s fu n cio n es o b je t o s , d e te rm in a r al que que se d iv id ió y p r e p ro c e s a d o r le y obtener- fu n cio n es que p re p ro c e s a d o r s e r iá n sean se el a puede de o b te n e r e fe c t u a r o b je t o s p erm itid a s s is te m a , m anejador p erm itid a s r e fe r e n c ia s le un a p a ra con e fe c tu a r p or con cepción de h eren cia . El s is te m a con capacidades g r á fic a s . Del o b je t o s punto de t ip o a n t e r io r , g r á fic a , pudiéram os e s to s o b je t o s te n e r la d eb erá n de p o d er e fe c tu a r 90 C _ p e r s is t e n t e Unicam ente c ie r t a s o p e ra c io n e s , como son d e s p le g a r, im p rim ir, a g ra n d a rs e en tam año, dism in u irse en tam año, e tc.. L as s u g e re n c ia s a n t e r io r e s no son f á c ile s de im p la n ta r, sin embai-go e l s is te m a que s e p r e s e n ta e s una b ase que puede to m a rs e par-a a b o rd a r la s t a r e a s mencionadas con "m ás" fa cilid a d . 01 C jp e rs is te n te CAPITULO VII CONCLUSIONES En este capitulo se describe el trabajo presentado, tomando como base, los objetivos fijados como métas, las experiencias en su desarrollo, uso del sistema, utilización de otras herramientas y con otras herramientas, y un análisis de las proyecciones del sistema. 1.- Durante el estudio preliminar a la implantación del sistema se consideraron diferentes aspectos, referentes a las maneras en que podría ser implantada una solución a los problemas que crean los lenguajes proceduales al tratar de diferentes maneras la memoria primaria y la memoria secundaria de una computadora, obteniendose como conclusión que el sistema debería de tener las dos características siguientes: Adoptar un lenguaje base y sobre éste montar un conjunto de funciones que proporcionaran un sólo nivel de abstracción para memoria primaria y para memoria secundaria. El lenguaje base seleccionado deberla ser poco modificado. 92 C _p ersisten te El usuario el len gu a je debe n o ta r m odificado y el una mínima d ife r e n c ia len gu aje base. a l program ar E s to im plica que en debe s e r tr a n s p a r e n te en lo p o sib le e l s is te m a im plantado. El s is te m a cumple con lo s pu n tos a n t e r io r e s , como puede s e r ob serva d o en lo s ejem plos del ca p itu lo 6. 2.- Durante sis te m a se m ig ra rlo la im plantación t u v ie r o n p or del problem as d ife r e n t e s lo s de s istem a s módulos equipo, Ctodos que lo componen cual UNIX), ob ligo lo cual el a t r a jo co n sig o , una v e r ific a c ió n de la p o rta b ilid a d del sistem a . De e s t a s e x p rie n c ia s tenem os: i.- El s is te m a o p e r a tiv o es p o rta b le (UNIX), en los s is te m a s sa lvo d ife re n c ia s con e l p ro p ia s mismo de las sis te m a v e rs io n e s CBerkley y ATT>. ii.~ Como r e s u ltad o seleccion ad o d ife r e n t e s fu n ción al el UNIX, de la p o rta b ilid a d s istem a d eb erá efectu an d o compromiso. básicam en te es ta de C’C "), s u s titu c io n e s fu n ción hace c ie r t a s E sta s de len gu a je en base sis te m a s m o d ificacion es a m od ifica cion es nom bres uso de comandos del fu n cio n a r de fu nciones. d isp on ib les en la s e rá n Ya la que m ayoria de lo s s is te m a s o p e ra tiv o s . 3.- Como re s u lta d o del uso del s is te m a tem em os lo s s ig u ie n te s puntos que cabe r e s a lt a r : i.- D ebido al g a r a n t iz a r como uso en su con secu en cia prueba se poco fin a l lle g a ra n de a su del s is te m a to ta lid a d de su el u tiliz a c ió n confiabilidad. d ete c ta r im plantado, s is te m a , Sin s e r ia n no y será que se em bargo la s con secu en cia es p osib le únicam ente o b ten g a la fa lla s que de una im plantación d e fic ie n t e , no a si del co n c e p to desa rrolla d o. C _p ersisten te ii.- Cuando lo 93 se p r e s e n ta cual es in form ación , cuales de se podemos y salid a un necesidad r e s a lt a r : del m anejador de con servar c a r a c t e r ís t ic a tie n e n p ro p ia s im plantado. la una d ife r e n t e s el uso lengu aje de P a ra de bases las de que in form ación , sis te m a s a lt e r n a t iv a s , la s fu n cio n es e s te m o s d a to s , dos lo s o de de en tra d a u tiliza n d o , el uso p rim e ra s de la s el del uso s is te m a op cion es podemos mencionar: Si u tiliza m o s de un len g u a je como de se almacenan alm acenar le c tu r a y las fu nciones de e n tra d a tra d ic io n a l, ten d rem os y lo s le e r d a tos, los e s c r it u r a im p lan tar d a to s , y salida p ro p ia s que en te n d e r la manera una im p lan tar fo rm a e fic ie n t e p roced im ien tos de a memoria secundaria. S i empleamos un m anejador de b a s e s de d a to s tenem os que apren der o tro orga n iza n len gu a je, lo s d a to s y v e r ific a r nos es si ú t il la fo rm a p a ra la en que aplicación se en la cual n ecesita m o s c o n s e rv a r la in form ación . Cuando en memoria prim a ria en tid ad es con un sig n ific a d o un g r á fo que re p resen te es d ifíc il con cualqu iera el de ten em os e s p e c ific o , a n alisad or las dos una re la c ió n tenem os lé x ic o por de en tre ejem plo un len gu a je, a lt e r n a t iv a s a n t e r io r e s c o n s e rv a r la r e la c ió n e n t r e las e n tid a d es que la form an. 4.- Del uso d el s is te m a tenem os: Los cuando problem as algún que se p ro ced im ien to p re s e n ta n hace uso usando del t ip o el s is te m a "unión" re s u lta n de "C‘*,esto con o tra s e s causado porque la im plantación no m aneja e s t e tip o . 5.- Comparando el s is te m a im plantado 94 C _p e rs is te n te h e rra m ie n ta s y haciendo un a n á lis is de su posible u tiliz a c ió n con o t r a s h e rra m ie n ta s tenemos: i.- En com paración con e l uso el s is te m a tie n e de m anejadores b ases d a to s puede o b s e r v a r en la s g r á fic a s de tiem p os de r e s p u e s ta , la s cuales tie n d e n en ser s is te m a s e s to s lo lin ea les cual op era cio n es com p arativam en te m anejadores tie n e n la s a cep ta b le , de se a r e s p u e s ta de como in s e rc ió n , una de tiem pos b a ses de de de con d a to s r e s p u e s ta busqueda algunos es de m e jo r, que tien d en e lo s ya que a ser expon en ciales. ii.- P a ra usar e l s is te m a com p ilad ores, únicam ente al a n á liz a r código que el con el n e c e s it a el o tra s h erra m ien ta s s is te m a módulo d el y e fe c t u a r p a ra las o tro s m od ifica cion es p re p ro c e s a d o r, prop orcion ad o MOP, como son n e c e s ita r á el o b te n e r cual la d eb erá in fo rm a ció n expansiones n e c e s a ria s en la fo rm a que s e req u iera . 6.- Del a n á lis is de las p ro y e c c io n e s del sis te m a tenem os: Las p r o y e c c io n e s del s is te m a son muchas como re s u lta d o de no m o d ific a r el len gu aje medio de fu n cion es t ie n e un s is te m a increm en tadas. y s ó lo in crem en ta r ad icio n a les, sin o un p or len gu a je sus lo con capacidades que unas no s ó lo por se capacidades 95 REFERENCIAS 1.- M.P Atkinson, P. J. Bailey, K . J. Chisolm and R. Morrison, "PS-algol reference manual”, Tech. report PPR-4-83, University of Edimburg-, January 1983. 2.- R. Morrison, ”S-algol languaje reference manual”, report CS/79/1, University of St. Andrews,1979. Tech. 3.- M. P. Atkinson, K. J. Chisholm, P. J. Bailey, W. P. Cockshott and R. Morrison, "An approach to persistent programming”, The computer Journal, 26, (1983). 4 .- R. Morrison, ”S-algol languaje reference manual”, report CS/79/1, University of St. Andrews,1979. Tech. 5.- R. Morrison, “The string as a simple data type", ACM SIGPLAN Notices, 17, C3>, <1982>. 6.- R. Morrison, "low cost computer graphics for microcomputer", Software Practice and Expirience, 12, 767-776 (1982). 7.- B. Bayer and A. McCreight, "Organization and maintenance of large ordered indexes", Acta informatica, 1,173-189 (1972). 8.- M. P. Atkinson, "Progamming languajes and databases", Tech. report CSR-26-78, Computer Science Department, Univerity of Edimburg, 1978. Also in Proceedings of the fourth International Conference on Very Large Databases, 1978. 9.- M. P. Atkinson, K. J. Chisholm and W. P. Cockshott, "Nepal the new Edimburg persistent algorithmic language", in Database, Pergamon Infotech State of the Art Report, Pttrgamon Infotech, 1982. 96 la - M. P. A tkin son , and R. M orrison , in S to k e r e t P. Cambridge 11.- M. P. algol: 24-31 S t. S cien ce, M. <eds>, a P. and V. 15.- M. "S -a lg o l r e fe r e n c e Andrews A tk in son , K. J. manual” . Chisholm, fo r a and P. A tk in son , 273-285 P. K. J. J. B rian en 18.- A tkin son , "An 19. - E xperien ce, Chisholm, K. J. rep ort of cs Com puter W. An to and W. R. S o ftw a r e 13, 259-271<1984>. P. C ock sh ott,“CMS W. a and E xperien ce, P. C ockshott,and p e r s is t e n t In tro d u c tio n K ernighan, P r e n tic e Harbison, Densis Hall, program m ing", K ernighan, E n viron m en t, El to P r e n tic e M. Hall. <4>, D atabase System s v o l R itc h ie , L en gu a je P r e n t ic e F ir s t 26, R. The 36 2, W esley. Guy L. S t e e le L a b o r a to r ie s , W. heap", P r a c tic e Chisholm, approach E dition, Addison Samuel P. B rian Tech. P. C ocksh ott Journal, D a te, in g lé s , T a r ta n “PS N o tices <1983>. F o u rth 17.- W. p e r s is t e n t C om puter C. S t r u c tu r e , ACM Sigplan U n iv e rs ity , D epartm ent "A lg o rith m s M orrison , 16.- Chisholm P. C ock sh ott, heap", chunck management s y s te m ", S o ft w a r e 13, J. program m ing", O a tab ase-R ole and p e r s is t e n t P r a c t ic e M. K. P r e s s ,1984. K. J.Chisoholm w ith C ock sh ott, 1979. M arshall, 14.- P. w hith p e r s is n te n t C1982). M orrison , 79/1, 13.- a lg o l Baley, V. al. U n iv e rs ity A tk in son , an 17<7>, 12.- R. P. "P r o g r e s s de de Jr.C la p rim era ed ición Program ación A R e fe re n c e C. Manual, Hall. E d ition , The Unix P rogram in g 97 20.- Aho, A. V., s tru c tu re s 21.- W irth N. J. and E. H o p c r o ft, A lg o rith m s ", A lgoritm s+ D a ta and J. Addison D. Ullman, "D ata Wesley. S tru c tu re s = P ro g ra m s , 'P r e n tic e Hall 1976 22.- A lfr e d V. Aho, p rin c ip le s , 23.- J e ffr e y D. R avi S e th i, Techniques, Ullman, J e ffr e y and T o o ls, P rin c ip le of D. Ullman, P r e n tic e D atabase Com pilers Hall 1984. S ystem s, Com puter S cien ce 1983. 24.- R en ato B a rrera C _ p e rs is te n te M e m o ria s R iv e ra , F é lix del IlISim p o sium Fco. Ramos de Corchado, In fo rm a tic a , T ecn ològico de Toluca Mex. Mex 25.- F é lix Fco. Ramos C _ p e r s is te n te , CIEA. Manual de usuaria del len gu a je El ju ra d o d esig n a d o por la Sección de Computación del Departamento d e In g e n ie ría E léctrica del C entro d e In ve stig a c ió n y de E stu d io s Avanzados del In stitu to e sta t e s i s el día 3 de Julio de xp 8 p. P o litécn ico Nacional. Aprobó