Lenguaje C Persistente - Departamento de Computación

Anuncio
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ó
Descargar