![Page 1: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/1.jpg)
![Page 2: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/2.jpg)
![Page 3: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/3.jpg)
CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS
DEL
INSTITUTO POLITECNICO NACIONAL
DEPARTAMENTO DE INGENIERIA ELECTRICA
SECCION DE COMPUTACION
-IMPLEMENTACION DE PASCAL CONCURRENTE PARA
MICROCOHPUTADORAS IBM PC"
T e = i 5 q u e o r s c e n f a el Inq . U r i e l T i r a d o F'i o ? c a r a o b t e n e r el
a r a d o d e MAESTRO EN CIENCIAS e n la e s p e c i a l i d a d d e INGENIERIA
ELECTRICA. Tr a b a j o d i r i g i d o c o r l o e D o c t o r e s M a n u e l E d g a r d o G u z m á n
R e n t e r í a y A r m a n d o Ma l d o n a d o T a l a m a n t e s .
B e c a r i o del C O N A C Y T M ô ï î î c o 0. P. , N o v i e m b r e 1 9 8/.
![Page 4: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/4.jpg)
![Page 5: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/5.jpg)
Deseo expresar mis agradecimientos a las siguientes instituciones por la ayuda brindada:
Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Naci onal.
Consejo Nacional de Ciencia y Tecnologí a.
Instituo Mexicano del Petroleo.
![Page 6: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/6.jpg)
Dedico r 1 presente trabajo a mis padres y hermanos que han sido ejemplo de dedicaci ón y esfuerzo, al Dr. Manuel E. Guzmán Rentería por el apoyo y confianza brindados.
![Page 7: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/7.jpg)
I N D I C E
P A G I N A
I RESUMEN. 5
II. INTRODUCCION. 7
III. IMPLEMENTACION DE CO-RUTINAS EN TURBOPASCAL. 10
111.1 Arquitectura básica de la microcomputadora 11TBM-PC.
111.2 Las primitivas del NUCLEO. 20111.3 Ejemplos con primitivas del NUCLEO. 25111.4 Implementación de las primitivas del NUCLEO. 36
111.4.2 Organización de la memoria al mo -mento de ejecución.
111.4.3 Orqanización de la memoria para procesos que utilicen el NUCLEO.
111.4.4 Conmutación de contexto.111.4.5 Maneja de interrupeiones.
IV. IMPLEHENTACION DE UN MANEJADOR DE PROCESOS EN TIEMPO 39REAL PARA PASCAL.
40IV.1 Las primitivas del KERNEL.IV.2 Comunicación y sincronización entre procesos. 41
IV.2.1. Semáforos.IV.2.2. Eventos.IV.2.3. Mensajes.
IV.3 Manejo del reloj. 45IV.4 Manejo de interrupeiones. 45IV.5 Tempori:adores. 46IV.6 Orqanización de los programas. 48IV.7 Relación entre el KERNEL v Pascal Concurrente. 48IV.8 Implementación. 50
IV.8.1. Rutinas compartidas.IV.8.2. Manejo del procesador.IV.8.3. La estructura del KERNEL
IV.9. Ejemplos. 52
![Page 8: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/8.jpg)
PAGINA
V- MANIPULACION DEL "HARDWARE" DESDE UN LENGUAJE DE 6 3
ALTO NIVEL.
V . 1 C o n t r o l a d o r d e I n t e r r u p c i o n e s . 6 4
V . 2 C o n t r o l a d o r d e D M A . 6 8
V . 3 C o n t r o l a d o r d e D i s c o F l e x i b l e . 7 6
VI. IMPLEHENTACION DE UN NANEJADOR DE DISCO 89
VI . 1 I m p l e m e n t a c i ó n . 9 0
V I . 2 E j e m p l o s . 9 8
VII. CONCLUSIONES. 1 0 7
VIII. BIBLIOGRAFIA. 1 0 9
IX. APENDICE A. 1 1 0
I X . 1. N U C L E O . E X T 11 1
I X . 2. N U C L E O . A S M 1 1 2
X. APENDICE B. 119
X . l K E R N E L .R A S 1 2 0
X . 2 1 0 . R A S 1 3 2
XI. APENDICE C. 136
X I . 1 D I S K D R T V .R A S 1 3 7
![Page 9: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/9.jpg)
5
RESUMEN.
![Page 10: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/10.jpg)
6
RESUMEN DEL TRABAJO
El p r e s e n t e t r a b a j o c o n s i s t e e n el d i s e n o e i m p l e m e n t a d ó n d e
l a s r u t i n a s n e c e s a r i a s p a r a d a r al l e n q u a j e d e p r o q r a m a c i ó n
s e c u e n c i a l T u r b o P a s c a l , l a - f a c i l i d a d d e m a n e j a r p r o c e s o s
c o n c u r r e n t e s .
E s t e l e n q u a j e p e r m i t e c o n t r o l a r " h a r d w a r e " e i n t e r r u p c i o n e s s i n
l a n e c e s i d a d d e t r a b a j a r e n e n s a m b l a d o r .
El t r a b a j o e s t a e s t r u c t u r a d o e n t r e s p a r t e s , q u e s o n l a
si q u i e n t e s :
1 . - I m p l e m e n t a d ó n d e l a s r u t i n a s b á s i c a s p a r a el m a n e i o d e c o -
r u t i n a s . A e s t e m ó d u l o s e l e l l a m ó N U C L E O .
2 . - I m p l e m e n t a c i ó n d e u n m a n e j a d o r d e p r o c e s o s j u n t o c o n l a s
h e r r a m i e n t a s n e c e s a r i a s p a r a s u c o m u n i c a c i ó n y s i n c r o n i z a c i ó n . A e s t e
m ó d u l o s e l e l l a m ó K E R N E L .
3 . - Imp l e m e n t a c i ó n d e u n m a n e i a d o r d e d i s c o -fle x i b l e , c o m o b a s e
p a r a el d i s e ñ o p o s t e r i o r d e u n m a n e j a d o r d e a r c h i v o s .
L a p r i m e r a p a r t e e s d e s a r r o l l a d a e n l e n q u a j e e n s a m b l a d o r p a r a
l o q r a r el m a n e j o d e r e c u r s o s q u e n o s o n m a n e j a b l e s d e s d e P a s c a l ,
c o m o e s el c a s o d e l o s r e q i s t r o s m i s m o s de l p r o c e s a d o r . E s t a s
r u t i n a s s o n c o m p i l a d a s p o r s e p a r a d o y d e c l a r a d a s c o m o e x t e r n a s d e s d e
m ó d u l o s e n P a s c a l .
L a i d e a d e e s t e m o d u l o e s i m p l e m e n t a r el m a n e j o d e c o - r u t i n a s
q u e s o n l a b a s e p a r a l a c r e a c i ó n d e p r o c e s o s . E n e s t e n i v e l p o d e m o s
y a c o n m u t a r d e u n a c o - r u t i n a a o t r a m e d i a n t e u n a p r i m i t i v a l l a m a d a
t r a n s - f e r y p o d e m o s t a m b i é n a s o c i a r u n a c o - r u t i n a a u n a i n t e r r u p c i ó n
m e d i a n t e la p r i m i t i v a i o t r a n s t e r .
L a s e q u n d a p a r t e e s t a e s c r i t a e n P a s c a l y p e r m i t e t e n e r u n
a d m i n i s t r a d o r d e r e c u r s o s c o m o l o e s el m i s m o p r o c e s a d o r . I m p l e m e n t a
h e r r a m i e n t a s d e s i n c r o n i z a c i ó n y c o m u n i c a c i ó n e n t r e p r o c e s o s , c o m o
l o s s o n l o s s e m á f o r o s , e v e n t o s , m e n s a j e s y m o n i t o r e s . L o s p r o c e s o s
s o n a d m i n i s t r a d o s e n b a s e a c o l a s d e p e n d i e n d o d e l e s t a d o d e l p r o c e s o
( s u s p e n d i d o , l i s t o p a r a e j e c u c i ó n o e j e c u t á n d o s e ) , e s t a s c o l a s s o n
■formados d e a c u e r d o a l a s p r i o r i d a d e s a s i q n a d a s a l o s p r o c e s o s . E s
p o s i b l e a s o c i a r u n p r o c e s o a u n a i n t e r r u p c i ó n d a d a , p e r o s o l o u n
p r o c e s o p u e d e e s p e r a r p o r e s a i n t e r r u p c i ó n a l a v e z .
P o r ú l t i m o s e i m p l e m e n t a u n m a n e j a d o r d e d i s c o f l e x i b l e , q u e n o s
p e r m i t e l e e r o e s c r i b i r u n b l o q u e d e 1 0 2 4 b y t e s e n d i s c o . S o b r e él
s e p u e d e c o n s t r u i r p o s t e r i o r m e n t e u n m a n e j a d o r d e a r c h i v o s . L a r a z ó n
d e e s t e m a n e j a d o r d e d i s c o s e d e b e a q u e l a s r u t i n a s n o r m a l e s d e
e n t r a d a / s a l i d a del s i s t e m a o p e r a t i v o D O S n o s o n " r e e n t r a n t e s " , p o r
l o a u e e s n e c e s a r i o c o n s t r u i r n u e v a s r u t i n a s a u e si l o s e a n .
![Page 11: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/11.jpg)
INTRODUCCION.
7
![Page 12: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/12.jpg)
INTRODUCCION
T o d a s l a s c o m p u t a d o r a s m o d e r n a s p u e d e n r e a l i z a r v a r i a s t a r e a s al
m i s m o t i e m p o . M i e n t r a s e j e c u t a m o s u n p r o g r a m a , el c o m p u t a d o r p u e d e
t a m b i é n e s t a r a c c e s a n d o a l g ú n d i s c o y d e s p l e g a n d o e n u n a t e r m i n a l o
p a n t a l l a . E n l o s s i s t e m a s d e m u í t i p r o a r a m a c i ó n , l a C P U t a m b i é n
c o n m u t a d e u n p r o c e s o a o t r o , e j e c u t a n d o c a d a u n o p o r d é c i m a s o
c e n t é s i m a s d e s e g u n d o . Si s e h a b l a e s t r i c t a m e n t e , l a C P U s o l a m e n t e
e j e c u t a u n p r o g r a m a a l a v e z , p e r o e n el c u r s o d e u n s e g u n d o p u e d e
t r a b a j a r c o n v a r i o s p r o g r a m a s , d a n d o as í al u s u a r i o l a i l u s i ó n del
p a r a l e l i s m o . A la r á p i d a c o n m u t a c i ó n d e l a C P U e n t r e p r o g r a m a s
a l g u n a s v e c e s s e l e l l a m a p s e u d o p a r a l el i s m o p a r a d i f e r e n c i a r l a del
p a r a l e l i s m o g u e s e d a p o r " h a r d w a r e " c u a n d o el p r o c e s a d o r t r a b a j a
m i e n t r a s u n o o m á s d i s p o s i t i v o s d e ent.r a d a / s a l i d a r e a l i z a n s u
f u n c i ón.
U n c o n c e p t o c l a v e e n t o d o s l o s s i s t e m a s o p e r a t i v a s c o n c u r r e n t e s
o s el p r o c e s o . U n p r o c e s o e s b á s i c a m e n t e u n p r o q r a m a e n e j e c u c i ó n .
E s t e e s t a c o n s t i t u i d o p o r c ó d i q o e j e c u t a b l e , u n á r e a d e d a t o s y
u n a p i l a , s u p r o p i o c o n t a d o r d e p r o q r a m a , s u a p u n t a d o r d e p i l a y
o t r o s r e q i s t r o s , y t o d a l a i n f o r m a c i ó n n e c e s a r i a p a r a q u e el
p r o g r a m a s e e j e c u t e .
C u a n d o u n p r o c e s o e s s u s p e n d i d o t e m p o r a l m e n t e , se e s p e r a q u e s e a
r e a c t i v a d o e x a c t a m e n t e e n el m i s m o e s t a d o c u a n d o se d e t u v o . E s t o s i g n i f i c a q u e t o d a l a i n f o r m a c i ó n a c e r c a d e l p r o c e s o d e b e s e r
e x p l í c i t a m e n t e g u a r d a d a e n a l g ú n l u g a r d u r a n t e l a s u s p e n s i ó n . E n
m u c h o s s i s t e m a s o p e r a t i v o s , t o d a l a i n f o r m a c i ó n d e c a d a p r o c e s o , e s
g u a r d a d a e n u n a t a b l a d e l s i s t e m a o p e r a t i v o l l a m a d a " t a b l a d e
p r o c e s o s " , l a c u a l e s u n a r r e g l o o u n a l i s t a d e e s t r u c t u r a s ,
p e r t e n e c i e n d o c a d a e s t r u c t u r a a u n p r o c e s o e x i s t e n t e .
As í u n p r o c e s o ( s u s p e n d i d o ) c o n s i s t e d e u n a p u n t a d o r al á r e a
d o n d e s e q u a r d a r o n s u s p a r á m e t r o s y s u r e s p e c t i v a e n t r a d a e n l a t a b l a
d e p r o c e s o s .
U n s o l o p r o c e s a d o r p u e d e s e r c o m p a r t i d o p o r v a r i o s p r o c e s o s , e n
b a s e a a l g ú n a l g o r i t m o d e s e l e c c i ó n u s a d o p a r a d e t e r m i n a r c u a n d o
d e t e n e r u n p r o c e s o p a r a p o n e r e n f u n c i o n a m i e n t o o t r o d i f e r e n t e .
U n a m a n e r a n a t u r a l d e i n t r o d u c i r s e al c o n c e p t o d e c o n c u r r e n c i a
e s e m p e z a r c o n u n l e n q u a j e s e c u e n c i a l c o m o P a s c a l y a ñ a d i r l a s
r u t i n a s n e c e s a r i a s p a r a m a n e j a r p r o c e s o s s i n a l t e r a r el c o m p i l a d o r o
l a s b i b l i o t e c a s d e s o p o r t e . D e b i d o a q u e c u a n d o s e r e a l i z a l a
c o n m u t a c i ó n d e p r o c e s o s d e b e n m a n i p u l a r s e l o s r e g i s t r o s d e l
8
![Page 13: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/13.jpg)
9
p r o c e s a d o r , l a s r u t i n a s a ñ a d i d a s d e b e r á n i m p l e m e n t a r s e e n
e n s a m b 1 a d o r .
Si el c o m p i l a d o r d e P a s c a l p e r m i t e p r o c e d i m i e n t o s e x t e r n o s , e s
p o s i b l e a i s l a r l a s o p e r a c i o n e s d e c o n m u t a c i ó n d e c o n t e x t o q u e n o
p u e d a n s e r e s c r i t a s e n P a s c a l y e s c r i b i r l a s e n l e n q u a i e
e n s a m b l a d o r . E n el c a p í t u l o III s e d e s c r i b e u n i u e q o d e r u t i n a s
e s c r i t a s e n e n s a m b l a d o r a l a s c u a l e s e l e s h a 11 a m a d o N U C L E O y s o n
s i m i l a r e s a 1 a s p r i m i t i v a s u s a d a s e n MODU L . A - 2 .
L a s p r i m i t i v a s , o p e r a c i o n e s i n d i v i s i b l e s , de l N U C L E O s o n d e b a j o n i v e l y n o s e p r e t e n d e q u e s e u t i l i c e n d i r e c t a m e n t e e n p r o q r a m a s d e
a p l i c a c i ó n p o r l o q u e e n c a p í t u l o I V s e d e s a r r o l 1 a r o n p r i m i t i v a s d e
m a y o r n i v e l p a r a p r o q r a m a c i ó n e n t i e m p o r e a l , é s t a s -fueron e s c r i t a s
e n P a s c a l y s e l e s l l a m ó K E R N E L E N T I E M P O R E A L . E s p o s i b l e t a m b i é n
u s a r el N U C L E O p a r a p r o b a r n u e v a s p r i m i t i v a s p a r a p r o q r a m a c i ó n
c o n c u r r e n t e . El K E R N E L i m p l e m e n t a h e r r a m i e n t a s d e s i n c r o n i z a c i ó n c o m o
s e m á f o r o s , e v e n t o s y m e n s a j e s .
D e b i d o a q u e l a s r u t i n a s d e e n t r a d a / s a l i d a del s i s t e m a o p e r a t i v o
M S - D O S n o -fueron d i s o n a d a s p a r a s e r u s a d a s p o r p r o c o s o s , s e
i mp l e m e n t a r o n r u t i n a s p a r a m a n e j o d e d i s p l a y y s e i m p l e m e n t . ó e n el
c a p í t u l o VI u n m a n e j a d o r d e d i s c o q u e p u e d e s e r v i r d e b a s e p a r a u n
m a n e j a d o r d e a r c h i v o s .
![Page 14: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/14.jpg)
10
IMPLEMENTACION DE CO-RUTINAS EN
TURBOPASCAL
![Page 15: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/15.jpg)
11
IMPLEMENTACION DE CO-RUTINAS EN
TURBOPASCAL
E n el p r e s e n t e t r a b a j o s e h a n i m p l e m e n t a d o l a s p r i m i t i v a s
n e c e s a r i a s p a r a d a r l a c a r a c t e r í s t i c a d e c o n c u r r e n c i a a T u r b o P a s c a l
v e r s i ó n 3 . 0 ( c o r r e e n c o m p u t a d o r e s p e r s o n a l e s c o m p a t i b l e s c o n I B M
b a j o v e r s i o n e s d e s i s t e m a s o p e r a t i v o s 2 . 0 o s u p e r i o r e s ) .
U n c o n c e p t o c l a v e p a r a l a c r e a c i ó n d e p r o c e s o s e s l a c o - r u t i n a ,
l a c o - r u t i n a a d i f e r e n c i a d e l o s p r o c e d i m i e n t o s , n o
n e c e s a r i á m e n t e d e b e e j e c u t a r s e d e p r i n c i p i o a -fin c u a n d o s e l e l l a m a .
P o r e j e m p l o e n u n p r i m e r l l a m a d o p u e d e n e j e c u t a r s e l a s t r e s p r i m e r a s
l í n e a s d e s u c ó d i q o y e n e s e m o m e n t o r e q r e s a r al p r o c e d i m i e n t o
l l a m a d o r , e n u n a s e q u n d a l l a m a d a a l a c o r - r u t i n a s e c o n t i n u a r á c o n la
e j e c u c i ó n d e s u c u a r t a l í n e a , s i n t e n e r q u e p a s a r p o r l a s t r e s l í n e a s
a n t e r i o r e s . U s a n d o e s t e m i s m o c o n c e p t o e s p o s i b l e h a c e r q u e
p r o c e d i m i e n t o s s e c o m p o r t e n c o m o p r o c e s o s .
C o m o s e m e n c i o n ó e n l a i n t r o d u c c i ó n l a s p r i m i t i v a s -fueron
i m p l e m e n t a d a s e n e n s a m b l a d o r p o r l o q u e s e c o n s i d e r a p e r t i n e n t e
e x a m i n a r l o s d e t a l l e s d e " h a r d w a r e " y e n s a m b l a d o r n e c e s a r i o s p a r a
c o m p r e n d e r l a i m p l e m e n t a c i ó n d e l N U C L E O .
ARQUITECTURA BASICA DE LA MICR0C0MPUTAD0RA IBM-PC.
El m i c r o p r o c e s a d o r u s a d o e n l a I B M - P C f u e d i s e ñ a d o y c o n s t r u i d o
p o r I N T E L y e s el I n t e l 3 0 8 8 , el c u a l e s l i q e r a m e n t e d i f e r e n t e al
8 0 8 6 de l m i s m o I n t e l . L o s p r o c e s a d o r e s 8 0 8 6 y 8 0 8 8 r e a l i z a n l a s
m i s m a s i n s t r u c c i o n e s y d e s d e el p u n t o d e v i s t a de l p r o q r a m a d o r s o n
i d é n t i e o s .
A h o r a e x p l i c a m o s la d i f e r e n c i a e n t r e el m i c r o p r o c e s a d o r 8 0 8 8 y
8 0 8 6 . El f u n c i o n a m i e n t o d e e l l o s e s el m i s m o , r e a l i z a n l a s m i s m a s
o p e r a c i o n e s . P e r o c u a n d o h a b l a m o s d e l o q u e h a y a l r e d e d o r a p a r e c e l a
d i f e r e n c i a , el 3 0 8 6 s e c o n e c t a c o n c i r c u i t e r í a q u e m a n e j e 1 6 b i t s d e
d a t o s a l a v e z , m i e n t r a s q u e el 3 0 8 8 l o h a c e p a s a n d o al e x t e r i o r 8
b i t s a l a v e z . L a d i f e r e n c i a p u e s e n t r e e s t o s d o s p r o c e s a d o r e s e s el
b u s d e d a t o s e x t e r n o q u e m a n e j a n . E s t o n o s h a r í a p e n s a r q u e el 8 0 8 R
n o e s c o m p l e t a m e n t e u n p r o c e s a d o r d e 1 6 b i t s , l o c u a l e s c i e r t o ñ e r o
n o t o t a l m e n t e . El 3 0 8 8 u s a i n t e r n a m e n t e u n a a r q u i t e c t u r a d e 16 b i t s ,
p e r o s e c o m u n i c a al e x t e r i o r c o n u n b u s d e 8 b i t s .
L a d i f e r e n c i a del b u s d e d a t o s del 8 0 8 3 y el 8 0 8 6 n o s i n d i c a q u e
el 8 0 8 6 p a s a r á d o s p a l a b r a s p o r u n a q u e p a s e el 3 0 3 8 , l o c u a l n o
s i g n i f i c a n e c e s a r i á m e n t e q u e el 8 0 3 6 t r a b a j e d o s v e c e s m á s r á p i d o q u e
el 8 0 8 8 , y a q u e ú n i c a m e n t e u n a p a r t e d e t i e m p o e s u s a d a p o r el
![Page 16: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/16.jpg)
p r o c e s a d o r p a r a e s p e r a r d a t o s del m e d i o e x t e r n o y a v e c e s s o l a m e n t e
r e q u i e r e d e 3 b i t s .
U n a s e q u n d a d i f e r e n c i a p r á c t i c a e s el d i s e n o d e c i r c u i t o s y
s e l e c c i ó n d e c o m p o n e n t e s y a q u e e s m á s f á c i l d i s o n a r c i r c u i t o s d e 8
b i t s y e x i s t e m a y o r v a r i e d a d d e c o m p o n e n t e s a m e n o r p r e c i o . D e e s t a
m a n e r a I B M s i m p l i f i c ó el d i s e n o y r e d u j o el c o s t o s a c r i f i c a n d o a l q o
d e v e l o c i d a d e n p r o c e s a m i e n t o .
El p r o c e s a d o r 3 0 8 8 c o n s t a d e d o s u n i d a d e s s e p a r a d a s d e
p r o c e s a m i e n t o : L a u n i d a d d e e j e c u c i ó n ( E U ) , l a c u a l s e e n c a r q a d e
e j e c u t a r i n s t r u c c i o n e s y l a u n i d a d d e i n t e r f a c e d e B U S ( B I U ) , l a c u a l
e s r e s p o n s a b l e d e l a c o m u n i c a c i ó n d e l 3 0 8 8 c o n el m u n d o e x t e r i o r . L a
" E U " p r o p o r c i o n a u n a d i r e c c i ó n l ó q i c a al "BILI" , el c u a l l a c o n v i e r t e
a u n a d i r e c c i ó n f í s i c a . E s t a o p e r a c i ó n l l a m a d a c á l c u l o d e d i r e c c i ó n
f í s i c a , u s a d o s p a r á m e t r o s d e 16 b i t s : u n r e o i s t r o d e s e q m e n t o (un
s e q m e n t o e s u n b l o q u e d e 6 4 k b y t e s ) y u n d e s p l a z a m i e n t o
( o f f s e t ) . L a n o t a c i ó n l ó q i c a u s a d a e s t a d a d a p o r
s e q m e n t o : d e s p l a z a m i e n t o . L o s r e q i s t r o s d e s e q m e n t o ( q u e f o r m a n p a r t e
del B I U ) s o n : (CS) s e q m e n t o d e c ó d i q o , CDS) s e q m e n t o d e d a t o s ,
(SS) s e q e m n t o d e s t a c k , (ES) s e q m e n t o e x t r a . E L d e s p l a z a m i e n t o
u s u a l m e n t e l o p r o p o r c i o n a el EU.
P a r a c a l c u l a r l a d i r e c c i ó n f í s i c a , el 3 0 8 8 r e a l i z a u n
c o r r i m i e n t o a l a i z q u i e r d a d e c u a t r o b i t s s o b r e el r e g i s t r o d e
s e q m e n t o y l o s u m a al d e s p l a z a m i e n t o e n el s u m a d o r d e d i c a d o d e l B I U .
L o s s e q m e n t o s s o n b l o q u e s d e m e m o r i a d e 6 4 k b y t e s r o l o c a l i z a b l e s
d e n t r o d e u n b l o q u e f í s i c o d e 1 M b y t e d e m e m o r i a y p u e d e n
t r a s l a p a r s e .
L a d i r e c c i ó n d e l a s i q u i e n t e i n s t r u c c i ó n a e j e c u t a r s e e n c u e n t r a
e n el p a r d e r e q i s t r o s C S : I P . P a r a i n c r e m e n t a r e f i c i e n t e m e n t e , el Bill
g u a r d a b y t e s e n u n a c o l a ( r e a l i z a b ú s q u e d a d e i n s t r u c c i e n e s
a n t i c i p a d a ) . P a r a f a c i l i t a r e s t o el r e q i s t r o IP e s g u a r d a d o e n el
B I U .
E L E U c o n t i e n e r e q i s t r o s d e 1 6 b i t s c u a l q u i e r a d e l o s c u a l e s
p u e d e s e r u s a d o e n c á l c u l o s . C u a t r o r e q i s t r o s f o r m a n e s t e q r u p o .
E s t o s s o n a c u m u l a d o r (AX) , b a s e ( BX), c o n t a d o r ( C X>, y r e q i s t r o DX.
E L 3 0 3 8 p u e d e a c c e s a r l o s 8 b i t s m á s s i g n i f i c a t i v o s o l o s 8 b i t s
m e n o s s i q n i f i c a t i v o s d e e s t o s r e q i s t r o s d e d a t o s . L a s d o s m i t a d e s del
r e q i s t r o A X s o n p o r e j e m p l o A H y AL.
L o s d o s s i g u i e n t e s r e q i s t r o s g e n e r a l e s , el a p u n t a d o r d e p i l a
( s t a c k p o i n t e r SP) y el a p u n t a d o r al á r e a d e v a r i a b l e s l o c a l e s (
b a s e p o i n t e r B P > , c o n s t i t u y e n el g r u p o d e a p u n t a d o r e s . E s t o s
r e g i s t r o s m a n i p u l a n l a p i l a . C u a n d o u n a s u b r u t i n a e s l l a m a d a S S : S P
a l m a c e n a l a d i r e c c i ó n d e r e a r e s o e n l a p i l a . S P a p u n t a al t o p e d e 1 a
p i l a y B P a l a b a s e . S P s e d e c r e m e n t a a u t o m á t i c a m e n t e p o r u n a
l l a m a d a a u n a s u b r u t i n a y s e i n c r e m e n t a p o r u n r e q r e s o d e ó s t a . L a
p i l a t a m b i é n e s u s a d a p a r a p a s a r p a r á m e t r o s d e s u b r u t i n a s y c o n la
a y u d a d e B P s e a c c e s a n e s t o s p a r á m e t r o s .
12
![Page 17: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/17.jpg)
13
O t r o s d o s r e g i s t r o s g e n e r a l e s , el r e g i s t r o í n d i c e <SI) y el
r e g i s t r o d e s t i n o (DS> c o m p l e t a n el g r u p o d e a p u n t a d o r e s y s o n u s a d o s
g e n e r a l m e n t e p a r a m a n e j o d e c a d e n a s d e c a r a c t e r e s .
![Page 18: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/18.jpg)
14
15 7 0
FIG- III.l DIAGRAMA ELEMENTAL A BLOQUES DEL 8088
![Page 19: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/19.jpg)
El h a c e r q u e u n m i c r o p r o c e s a d o r t r a b a j e r e q u i e r e del a u x i l i o d e
m u c h o s o t r o s c o m p o n e n t e s , p o r l o q u e d a r e m o s u n b r e v e p a n o r a m a d e l o s
c i r c u i t o s i n t e q r a d o s i m p o r t a n t e s d e l a PC.
L a s s e ñ a l e s b á s i c a s d e r e l o j s o n p r o v i s t a s p o r el g e n e r a d o r d e
r e l o j 8284. E s t a s s e ñ a l e s s o n u s a d a s p o r el s i s t e m a c o m p l e t o p a r a
c o n t r o l a r l a d u r a c i ó n d e l a s o p e r a c i o n e s . R e l a c i o n a d o c o n el r e l o j
t e n e m o s u n c i r c u i t o i n t e q r a d o t e m p o r i z a d o r 8253 y u n 8255A5 el c u a l
e s u s a d o p a r a c o n t r o l a r l a i n t e r - f a c e d e " c a s s e t t e " y l a b o c i n a .
P a r a c o n t r o l a r l a s i n t e r r u p c i o n e s d e l " h a r d w a r e " s e u t i l i z a u n 8259A. P a r a t r a n s f e r i r d a t o s e n el s i s t e m a s e h a c e u s o d e u n B U S c o m ú n , p o r
l o q u e e s n e c e s a r i o u n á r b i t r o d e a c c e s o al B U S , e s t a -f u n c i ó n s e
r e a l i z a c o n u n c o n t r o l a d o r 8288.
T o d o s l o s c i r c u i t o s m e n c i o n a d o s a n t e r i o r m e n t e s e l o c a l i z a n e n la
t a r j e t a m a d r e . A h o r a c u a n d o a n a l i z a m o s l a s t r a i e t a s d e l a s r a n u r a s
d e e x p a n s i ó n e n c o n t r a m o s o t r o s d i s p o s i t i v o s i n t e r e s a n t e s . E x i s t e n
d o s t i p o s d e a d a p t a d o r e s d e " d i s p l a y " . U n o d i s e ñ a d o p a r a c o n t r o l a r
m o n i t o r e s m o n o c r o m á t i c o s y o t r o p a r a m a n e j a r m o n i t o r e s q r á f i c o s d e
c o l o r . A u n q u e l o s d o s t i p o s d e m o n i t o r e s o p e r a n d e m a n e r a d i f e r e n t e y
t i e n e n d i f e r e n t e s c a p a c i d a d e s , s e u t i l i z a el m i s m o c i r c u i t o i n t e q r a d o
p a r a c o n t r o l a r 1 o s . El c o n t r o l a d o r M o t o r o l a 6845 C R T e s l a p a r t e
p r i n c i p a l d e a m b o s c o n t r o l a d o r e s .
U n a p a r t e i m p o r t a n t e d e u n a c o m p u t a d o r a e s l a f o r m a e n q u e
m a n e j a s u m e m o r i a . L a m e m o r i a d e l a c o m p u t a d o r a e s t a o r q a n i z a d a e n
m u c h a s l o c a l i d a d e s d e m e m o r i a d o n d e p u e d e n q u a r d a r s e d a t o s e n
g e n e r a l , c a d a l o c a l i d a d d e m e m o r i a e s i d e n t i f i c a d a p o r u n a d i r e c c i ó n .
L a m í n i m a l o c a l i d a d d e m e m o r i a d i r e c c i o n a b l e e n l a P C e s el b v t e q u e
c o n s t a d e 8 b i t s . V a q u e el b y t o e s el t a m a ñ o e x a c t o d e m e m o r i a p a r a
a l m a c e n a r u n c a r á c t e r , l o s t e r m i n o b y t e o c a r á c t e r s o n u s a d o s en
f o r m a i n d i s t i n t a .
C a d a l o c a l i d a d d e m e m o r i a t i e n e u n a d i r e c c i ó n a s o c i a d a p a r a
a c c e s a r l a y e m p i e z a d e s d e 0 0 0 0 0 p a r a l a p r i m e r a l o c a l i d a d h a s t a l a
l o c a l i d a d m á s a l t a q u e e s p r e c i s a m e n t e el t a m a ñ o d e m e m o r i a m á x i m o
d e l a c o m p u t a d o r a . N o r m a l m e n t e l a s m i c r o c o m p u t a d o r a s t i e n e m e n o s
m e m o r i a q u e l a q u e s o n c a p a c e s d e d i r e c c i o n a r .
L a I B M - P C h a c e u s o d e l e s p a c i o t o t a l d i r e c c i o n a b l e . P a r a el 3 0 8 9
l a s d i r e c c i o n e s s e f o r m a n c o n 2 0 b i t s así q u e el p r o c e s a d o r p u e d e
d i r e c c i o n a r 1 0 2 4 k b y t e s o s e a m á s d e u n m i l l ó n d e b v t e s .
C o m o s e v i o a n t e r i o r m e n t e l o s r e q i s t r o s del m i c r o p r c c e s a d o r s o n
d e 16 b i t s , c o n l o s c u a l e s s o l o p o d e m o s d i r e c c i o n a r h a s t a 6 4 k b y t e s
d e m e m o r i a , a s í q u e p a r a a c o m p l e t a r l o s 2 0 b i t s d e d i r e c c i o n e s s e
d e b e d e u s a r a l g ú n m ó t o d c p r á c t i c o . L a s o l u c i ó n f u e d a d a c o n l o q u e
s e c o n o c e c o m o d i r e c c i o n a m i e n t o s e q m e n t a d o .
Si s e t o m a u n n ú m e r o d e 16 b i t s , y s e a g r e g a n c u a t r o c e r o s
b i n a r i o s a s u d e r e c h a , s e t e n d r á u n n ú m e r o d e 2 0 b i t s , el c u a l p u e d e
s e r u s a d o c o m o u n a d i r e c c i ó n d e 2 0 b i t s , e n r e a l i d a d h e m o s
15
![Page 20: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/20.jpg)
16
m u l t i p l i c a d o n u e s t r o n ú m e r o p o r 1 6 y s u r a n q o a h o r a p u e d e a l c a n z a r
h a s t a 1 0 2 4 k b y t e s . P a r a c o m p l e t a r l a s o l u c i ó n , s e u t i l i z a n d o s
n ú m e r o s d e 16 b i t s . E n el p r i m e r o s e ci n s i d e r a q u e s u s ú l t i m o s c u a t r o
d í g i t o s b i n a r i o s s o n c e r o , d e ta l m a n e r a q u e s e t o r m é n l o s 2 0 b i t s ,
e s t e n ú m e r o e s l l a m a d o el s e q m e n t o d e la d i r e c c i ó n . El s e q u n d o
n ú m e r o s e d e j a ta l c u a l y s e l e l l a m a d e s p l a z a m i e n t o . S u m a d o s a m b o s
n ú m e r o s d a n l a d i r e c c i ó n -física d e n t r o d e l á r e a d e m e m o r i a . El
s e q m e n t o e s p e c i f i c a u n a l o c a l i d a d q u e e s u n m ú l t i p l o d e 1 6 b i t s q u e
e s l l a m a d a f r o n t e r a a p á r r a f o .
E j e m p l o :
r e g i s t r o o r d i n a r i o d e 16 b i t s d e s p l a z a m i e n t o
16 b i t s = 4 d í q i t o s h e x a d e c i m a l e s
1 d í q i t o h e x a d e c i m a l = 4 b i t s
r e q i s t r o d e s e q m e n t o
r e q i s t r o d e d e s p l a z a m i e n t o y r e q i s t . r o d e s e q m e n t o c o m b i n a d o s
R e s u l t a d o d e 2 0 b i t s
FIG. II1.2 CALCULO DE DIRECCION FISICA.
P a r a h a c e r u s o d e e s t o s s e q m e n t o s , el 8 0 3 3 t i e n e u n j u e g o
e s p e c i a l d e r e g i s t r o s d e d i c a d o s a q u a r d a r l a p a r t e b a s e d e l s e q m e n t o .
C o n a l q ú n v a l o r e n u n r e q i s t . r o d e s e q m e n t o , e s p o s i b l e d i r e c c i o n a r
c u a l q u i e r a d e l a s 6 4 k b y t e s l o c a l i d a d e s d e m e m o r i a q u e l e s i q u e n . Si
n o s e m o d i f i c a el r e q i s t r o d e s e q m e n t o , l a c o m p u t a d o r a t i e n e u n
e s p a c i o t e m p o r a l d e t r a b a j o d e 6 4 k b y t e s , l o c a l i z a d o d e n t r o d e l
e s p a c i o t o t a l d e m e m o r i a d e 1 0 2 4 k b y t e s .
![Page 21: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/21.jpg)
P a r a q u e s e a p o s i b l e t r a b a j a r c o n m á s d e 6 4 k b y t e s a l a v e r , el
8 0 8 8 u s a l o s c u a t r o r e q i s t r o s d e s e g m e n t a s , c a d a u n o d e e l l o s c o n u n
u s o e s p e c i a l . U n a c o m p u t a d o r ? u s a s u m e m o r i a p a r a d i - f e r e n t e s
p r o p ó s i t o s , u n o d e l o s c u a l e s e s c o n t e n e r l o s p r o g r a m a s y d a t o s q u e
e s t o s m a n e j a n . A s í q u e d o s d e l o s s e q m e n t o s e s t á n d e d i c a d o s al m a n e j o
d e c ó d i q o y d a t o s . P a r a el s e q m e n t o d e d a t o s s e u s a el r e a i s t r o DS.
P a r a el c ó d i q o del p r o q r a m a s e u s a el C S . P a r a el s e q m e n t o d e p i l a
s e u s a el r e g i s t r e SS. F i n a l m e n t e s e p r o v e e u n c u a r t o r e g i s t r o d e
s e q m e n t o p a r a el m a n e j o d e u n s e q e m e n t o e x t r a l l a m a d o ES,
D e b e q u e d a r c l a r o q u e e s t o s c u a t r o s e q m e n t o s n o t i e n e n q u e
r e f e r i r s e f o r z o s a m e n t e c o m o á r e a s d e m e m o r i a s s e p a r a d a s . P u e d e n e s t a r
e n c u a l q u i e r p a r t e , c e r c a o l e i o s . o a ú n t r a s l a c a d a s .
U n a c o m p u t a d o r a d e b e s e r c a p a z d e r e s p o n d e r a e v e n t o s q u e
s u c e d e n f u e r a d e s u s c á l c u l o s , p o r e j e m p l o e n t e r a r s e d e q u e s e
t e c l e o . H a y d o s m a n e r a s d e c h e c a r e s t o , u n a e s e x a m i n a n d o
c o n s t a n t e m e n t e si ol e v e n t o o c u r r i ó . E s t e m é t o d o e s c o n o c i d o c o m o " P G O L I N G " p e r o c o n e s t e m é t o d o el p r o c e s a d o r q a s t a m u c h o d e s u t i e m p o
c h e c a n d o si el e v e n t o o c u r r i ó . El s e q u n d o m é t o d o p e r m i t e al
p r o c e s a d o r s e g u i r c o n s u t r a b a io a m e n o s q u e a l q o e n el e x t e r i o r
r e q u i e r a d e s u a t e n c i ó n , e s t e m é t o d o e s c o n o c i d o c o m o
" I N T E P P U P C I O N ".
A l g u n o s e j e m p l o s d e i n t e r r u p c i o n e s s e e n c u e n t r a n e n el t e c l a d o ,
d o n d e c a d a v e z q u e s e p r e s i o n a u n a t e c l a s e p r o d u c e u n a i n t e r r u p e i ó n .
G t r a m á s e s el c a s o del t i c k ( I N T O B H i del r e l c i , q u e e s c o n s t r u i d o
e n l a PC . U n e j e m p l o m á s d e u s o d e i n t e r r u p c i ó n l o e n c o n t r a m o s e n el
m a n e j a d o r d e d i s c o q u e p r o d u c e u n a i n t e r r u p c i ó n ( I N T 0 E H > p a r a
i n d i c a r q u e s e h a c o m p l e t a d o u n a o p e r a c i ó n de l " d i s k e t t e " .
A l q u n a s v e c e s e s i m p o r t a n t e q u e el p r o c e s a d o r n o s e a
i n t e r r u m p i d o e n s u t r a b a j o , d e b i d o a q u e s e e n c u e n t r a h a c i e n d o a l q o
c r í t i c o . P a r a o e r m i t i r o s t o el 3 0 8 8 t i e n e u n a i n s t r u c c i ó n a u e c e r m i t e
t e m p o r a l m e n t e d e s h a b i l i t a r i n t e r r u p c i e n e s y o t r a i n s t r u c c i ó n p a r a
v o l v e r l a s a h a b i l i t a r . C u a n d o s e d e s h a t i l i t a n i n t e r r u p c i o n e s n o
i m p l i c a q u e e s t a s s e p i e r d a n , e s t a s s o n c o n s e r v a d a s c a r a c u a n d o s e
h a b i l i t e n i n t e r r u p c i o n e s n u e v a m e n t e .
El m e c a n i s m o b a j o el c u a l t r a b a j a n l a s i n t e r r u p c i o n e s e s el
s i g u i e n t e : C a d a i n t e r r u p c i ó n t i e n e u n n ú m e r o a s o c i a d o a e l l a , p o r
e j e m p l o l a d e l r e l o j e s l a i n t e r r u p c i ó n n ú m e r o 8. A l m a c e n a d a e n l a s
d i r e c c i o n e s m á s b a j a s de l m a p a d e m e m o r i a e x i s t e u n a t a b l a d e
d i r e c c i o n e s d e l o s p r o q r a m a s q u e s e r á n a c t i v a d o s c u a n d o l a s
d i f e r e n t e s c l a s e s d e i n t e r r u p c i o n e s o c u r r a n . E s t a s d i r e c c i o n e s d e b e n
s e r c o n s e q m e n t o , a s í q u e s e r e q u i e r e n d o s p a l a b r a s p a r a c a d a
d i r e c c i ó n . E s t a s d i r e c c i o n e s s o n c o n o c i d a s c o m o v e c t o r e s d e
i n t e r r u p c i ó n . L a i n t e r r u p c i ó n O t i e n e s u v e c t o r d e i n t e r r u p c i ó n
a l m a c e n a d o e n l a d i r e c c i ó n 0 0 0 0 0 , l a i n t e r r u p c i ó n 1 e n l a l o c a l i d a d
0 0 0 0 4 y as í s u c e s i v a m e n t e . C u a n d o l a i n t e r r u p c i ó n X s e p r e s e n t a , el
v e c t o r X * 4 e s c a r g a d o d e n t r o d e l o s r e q i s t r o s C S e I P de l
p r o c e s a d o r , y el p r o c e s a d o r e m p i e z a a e j e c u t a r la r u t i n a d e s e r v i c i o
d e i n t e r r u p c i ó n q u e e s t a c a r g a d a e n e s t a d i r e c c i ó n .
17
![Page 22: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/22.jpg)
18
C u a n d o s e h a c o m p l e t a d o l a r u t i n a d e i n t e r r u p c i ó n , s e r e q r e s a el
c o n t r o l al p r o q r a m a q u e e s t a b a e j c u t a n d o s e , u s a n d o u n a i n s t r u c c i ó n d e
r e q r e s o e s p e c i a l l l a m a d a I R E T . P a r a h a c e r e s t o p o s i b l e , a n t e s d e q u e
el v e c t o r d e i n t e r r u p c i ó n s e a c a r q a d o , l o s r e g i s t r o s d e d i r e c c i o n e s
C E : I P s o n s a l v a d o s u s a n d o l a p i l a .
E x i s t e n t r e s c l a s e s d e i n t e r r u p c i o n e s , l a s c u a l e s l l a m a r e m o s p o r
" h a r d w a r e " , l ó g i c a s y p o r "so - f t w a r e " .
L a s i n t e r r u p c i o n e s p o r " h a r d w a r e " s o n g e n e r a d a s p o r a l g ú n e g u i p o
g u e d e m a n d a a t e n c i ó n . E x i s t e n s o r p r e n d e m e n t e p o c a s e n l a P C . P r i m e r o
e x i s t e l a l l a m a d a n o m a s c a r a b l o , u s a d a p a r a i n d i c a r u n a f a l l a d e
a l i m e n t a c i ó n ; e s t a i n t e r r u p c i ó n e s l a n ú m e r o 2. L a s s i g u i e n t e s
i n t e r r u p c i o n e s s o n : l a 8 p a r a el r e l o j , l a 9 p a r a el t e c l a d o v í a 14
p a r a el m a n e j a d o r d e d i s k e t t e . E x i s t e n o t r a s s i e t e i n t e r r u p c i o n e s
r e s e r v a d a s , 6, 7, 1 0 a 13 y 1 5 g u e p u e d e n s e r u s a d a s p a r a - f u t u r a s
n e c e s i d a d e s .
L a s i n t e r r u p c i o n e s l ó q i c a s s o n g e n e r a d a s p o r el m i s m o 8 0 8 8 ,
c u a n d o e n c u e n t r a s i t u a c i o n e s a n o r m a l e s . E x i s t e n c u a t r o d e e l l o s . L a
i n t e r r u p c i ó n O e s q e n e r a d a c u a n d o el 3 0 8 8 e n c u e n t r a u n i n t e n t o d e
d i v i d i r e n t r e c e r o . L a i n t e r r u p c i ó n t e s u s a d a p a r a o p e r a r el
p r o c e s a d o r p a s o a p a s o , e j e c u t a n d o u n a i n s t r u c c i ó n a l a v e z ; e s t a
i n t e r r u p c i ó n s e u s a p a r a p r u e b a d e p r o q r a m a s . L a i n t e r r u p c i ó n 3
t a m b i é n s e u s a p a r a p r u e b a d e p r o q r a m a s y e s q e n e r a d a p o r l a
i n s t r u c c i ón " b r e a k - p o i nt.". L a i n t e r r u p c i ó n 4 e s q e n e r a d a p o r u n a
c o n d i c i ó n d e s o b r o - f l u j o , p o r e j e m p l o c u a n d o u n a i n s t r u c c i ó n
a r i t m é t i c a p r o d u c e u n r e s u l t a d o d e m a s i a d o q r a n d e p a r a q u e q u e p a e n
l o s r e g i s t r o s .
L a s i n t e r r u p c i o n e s p o r " s o - f t w a r e " s o n l a s m á s i n t e r e s a n t e s . L a
i d e a d e e s t a s e s t e n e r l a c a p a c i d a d d e i n v o c a r u n a s u b r u t i n a y
r e g r e s a r el c o n t r o l 1 c u a n d o s e h a y a e j e c u t a d o , s i n t e n e r l a n e c e s i d a d
d o c o n o c e r l a s d i r e c c i o n e s d e l a s s u b r u t i n a s .
L a s i n t e r r u p c i o n e s p o r " s o - f t w a r e " s o n u s a d a s p o r l o s s e r v i c i o s
q u e s e q u i e r a e s t e n d i s p o n i b l e s al u s u a r i o .
E x i s t e n d o s r a z o n e s p o r q u e s o n p r e t e r i d a s l a s i n t e r r u p c i o n e s e n
l u g a r d e l l a m a d o s a s u b r u t i n a s . L a m á s i m p o r t a n t e e s q u e p e r m i t e q u e
l a s r u t i n a s a s e r l l a m a d a s s e m o d i f i q u e n c u a n d o s e a n e c e s a r i o . G t r a
r a z ó n e s q u e p u e d e n s u b s t i t u i r s e c u a n d o s e r e q u i e r a .
El u s o d e p i l a s e s u n a d e l a s c a r a c t e r í s t i c a s m á s i m p o r t a n t e s e
i n t . e r e s a n t e s d e l a s c o m p u t a d o r a s m o d e r n a s . J u n t o c o n l a s
i n t e r r u p c i o n e s l a s p i l a s h a c e n q u e u n a c o m p u t a d o r a s e a e f i c i e n t e .
Q u e e s u n p i l a ? . U n p i l a i s t a c k ) e s u n l u q a r d o n d e l a
c o m p u t a d o r a g u a r d a s u s n o t a s d e t r a b a j o d e t a l m a n e r a q u e u n j u e g o d e
n o t a s n o i n t e r f i e r a c o n o t r o .
C u a n d o u n a c o m p u t a d o r a s e e n c u e n t r a t r a b a j a n d o , y r e c i b e u n a
i n t e r r u p c i ó n , n e c e s i t a u n l u q a r d o n d e q u a r d a r l o s r e q i s t r o s c o n q u e
e s t a b a t r a b a j a n d o . Ei r e c i b e o t r a i n t e r r u p c i ó n m i e n t r a s e s t a b a
p r o c e s a n d o l a p r i m e r a , n e c e s i t a u n l u q a r d o n d e q u a r d a r el e s t a d o d e
é s t a . Y c u a n d o l a s e g u n d a i n t e r r u p c i ó n e s a t e n d i d a , l a c o m p u t a d o r a
r e q r e s a a s e g u i r h a c i e n d o l a c o s a m á s r e c i e n t e q u e s e h a b í a
s u s p e n d i d o . L a p i l a e s el m e c a n i s m o n a t u r a l p a r a q u e l a c o m p u t a d o r a
r e c u e r d e l o q u e e s t a b a h a c i e n d o .
![Page 23: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/23.jpg)
L a -forma e n q u e t r a b a j a l a P C e s t o m a n d o u n a p o r c i ó n d e m e m o r i a
p a r a u s o d e p i l a , y s e e m p l e a u n r e q i s t r o e s p e c i a l d o s e q m e n t . o p a r a
i n d i c a r el á r e a d o n d e e s t a l o c a l i z a d o e s t a p i l a . F1 t o p e d e l a p i l a
e s l l e v a d o p o r u n r e q i s t r o l l a m a d o a p u n t a d o r d e p i l a í s t a c k p o i n t e r )
o S P . C u a n d o s e q u a r d a u n d a t e e n l a p i l a , el a p u n t a d o r d e p i l a e s
q u i e n s e a c t u a l i z a .
L o s d a t o s s e q u a r d a n e n l a p i l a m e d i a n t e la o p e r a c i ó n P U S H y s o n
r e m o v i d o s m e d i a n t e l a o p e r a c i ó n P O P .
C u a n d o o c u r r e u n a i n t o r r u p c i ó n , l a d i r e c c i ó n a c t u a l d e l p r o q r a m a
g u a r d a d a e n C S e IP s e q u a r d a e n l a p i l a , y e n t o n c e s l a d i r e c c i ó n d e
l a r u t i n a d e i n t e r r u p c i ó n e s c a r q a d a e n C S : I P p a r a s u e j e c u c i ó n .
S o b r e el a p u n t a d o r d e p i l a e s t á n t o d o s l o s t r a b a j e s q u e h a n s i d o
s u s p e n d i d o s e s p e r a n d o s u r e a c t i v a c i ó n . A d e l a n t e de l a p u n t a d o r d e p i l a
s e a b r e u n e s p a c i o p a r a el á r e a d e t r a b a j o d e l a r u t i n a d e s e r v i c i o .
C u a n d o c a d a r u t i n a q u e s e l l a m o s e t e r m i n a , s e v a c í a l a p i l a .
P o r o t r o l a d o c u a l q u i e r o t r a á r e a d e t r a b a i o t a m b i é n e s v a c i a d a d e la
p i l a y l o s v a l o r e s a n t e r i o r e s d e C S : I P s o n r e s t a u r a d o s .
L a p i l a e s u s a d a n o s o l o p a r a m a n e i o d e i n t e r r u p c i o n e s , t a m b i é n
s e u s a c u a n d o u n p r o q r a m a 11 a m a a o t r o . F a r a l l a m a d o s o
i n t e r r u p c i o n e s el p r i n c i p i o e s el m i s m o . E n el p r o c e s o d e 11 a m a r u n a
s u b r u t i n a e s m u y c o m ú n q u e l o s p a r á m e t r o s s e a n p a s a d o s a t r a v é s d e l a
p i l a . L a s p i l a s c r e c e n d e l o c a l i d a d e s a l t a s a b a j a s , e s t o s i q n i f i c a
q u e l a s l o c a l i d a d e s a l t a s d e l a p i l a c o n t i e n e n l a s p r i m e r a s
e n t r a d a s .
L o s p u e r t o s s o n el m e c a n i s m o q u e u s a el m i c r o p r o c e s a d o r 9 0 8 8
p a r a s i m p l i f i c a r y u n i f i c a r l a f o r m a d e c o m u n i c a r s e c o n el e x t e r i o r .
L o s p u e r t o s s o n l a ú n i c a f o r m a e n q u e el S 0 S 8 p u e d e p a s a r o r e c i b i r
d a t o s d e o t r o l a d o q u e n o s e a l a m e m o r i a .
C u a l q u i e r c o s a q u e el m i c r o p r o c e s a d o r q u i e r a d e c i r al m a n e j a d o r
d e d i s c o , al t e c l a d o , a la b o c i n a , e t c . l e h a c e •? t r a v é s d e p u e r t o s .
U n p u e r t o e s u n a c a m i n o h i p o t é t i c o q u e t i e n e i:n n ú m e r o a s i q n a d o .
L o s p u e r t o s p u e d e n s e r u s a d o s i u n t o c o n l a s i n t e r r u p c i o n e s . P o r
e j e m p l o c u a n d o s e p r e s i o n a u n a t e c l a e n el t e c l a d o , s e q e n e r a l a
i n t e r r u p c i ó n n ú m e r o 9 i n d i c a n d o q u e e x i s t e u n d a t o d i s p o n i b l e e n el t e c l a d o . E n r e s p u e s t a a l a i n t e r r u p c i ó n , l a s r u t i n a s del B I O S
( r u t i n a s b á s i c a s d o e n t r a d a .s a l i d a d e l a P C ) h a c e n u n a i n s t r u c c i ó n
I N e n el p u e r t o de l t e c l a d o , s o l a m e n t e h a s t a e n t o n c e s i n d i c a m o s q u e
t e c l a s e p r e s i o n ó .
L a d i r e c c i ó n d e u n p u e r t o e s e s p e c i f i c a d a c o n 1 6 b i t s , d e tal
m a n e r a q u e t e n e m o s p e t e n e i al m e n t e h a s t a ¿ 4 k p u e r t o s , p e r o l a P C s o l o
u t i l i z a u n o s c u a n t o s e n l a a c t u a l i d a d .
U n a v e z d a d a s l a b a s e s n e c e s a r i a s del " h a r d w a r e " e n q u e s e
d e s a r r o l l a r á el t r a b a j o , s e d e s c r i b e a c o n t i n u a c i ó n u n c o n j u n t o d e
p r o c e d i m i e n t o s l l a m a d o s N U C L E O q u e p e r m i t e n m a n i p u l a r p r o c e s o s e n
T u r b o P a s c a l .
19
![Page 24: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/24.jpg)
20
LAS PRIMITIVAS DEL NUCLEO.-
C a d a p r o c e s e c u e n t a c o n s u p r o p i a p i l a í s t a c k ) . T o d a la
i n f o r m a c i ó n n e c e s a r i a p a r a r e a n u d a r u n p r o c e s o s u s p e n d i d o e s
a l m a c e n a d a e n e s t a p i l a . D e a q u í q u e t o d o l o q u e s e n e c e s i t e c o n o c e r
d e u n p r o c e s o e s p r e c i s a m e n t e l a l o c a l i z a c i ó n d e s u p i l a - P r o c e s s e s
i m p l e m e n t a d o c o m o T y p e Process = A inteqer.
L a p r i m i t i v a Neuprocess u s a l a -func i ó n G e t m e m p a r a o b t e n e r u n
á r e a d e m e m o r i a d o n d e c r e a r l a n u e v a p i l a de l p r o c e s o , el s i s t e m a d e
e j e c u c i ó n d e T u r b o P a s c a l o b t i e n e m e m o r i a p a r a c r e a r v a r i a b l e s
d i n á m i c a s p o r m e d i o d e G e t m e m . El a r r e q l o p r e d e f i n i d o M e m W y l a s
f u n c i o n e s S e q y O f s s o n e n t o n c e s u s a d a s p a r a m o d i f i c a r l a n u e v a p i l a .
El p r o c e d i m i e n t o resume h a c e p o s i b l e s u s p e n d e r l a e j e c u c i ó n del
p r o c e s o q u e e s t a e j e c u t á n d o s e y r e a n u d a r u n o s u s p e n d i d o . A d e m á s u n
p r o c e s o p u e d e e s p e r a r p o r u n a i n t e r r u p c i ó n e s p e c í f i c a a t r a v é s d*»l
p r o c e d i m i e n t o ioresume, así c u a n d o l a i n t e r r u p c i ó n o c u r r e el p r o c e s o
e s r e a c t i v a d o .
L o s d o s p r o c e d i m i e n t o s disableinterrupts y enableinterrupts s e
u t i l i z a n p a r a r e a l i z a r o p e r a c i o n e s i n d i v i s i b l e s .
L o s p r o c e d i m i e n t o s del N U C L E O f u e r o n c o m p i l a d o s p o r s e p a r a d o y
s o n d e c l a r a d o s c o m o p r o c e d i m i e n t o s e x t e r n o s ( v e r e n a p é n d i c e A el
m ó d u l o N U C L E O . E X T ) .
A c o n t i n u a c i ó n d e s c r i b i r e m o s l a s i n t á x i s d e l a s p r i m i t i v a s del
N U C L E O y m o s t r a r e m o s s u u s o e n p r o q r a m a s s e n c i l l o s . P o s t e r i o r m e n t e
s e e x p l i c a r á c o m o f u e r o n i m p l e m e n t a d a s .
I N I C T h L I Z A C I O N . -
A n t e s d e p o d e r h a c e r u s o d e l a s p r i m i t i v a s del N U C L E O d e b e r á
i n i c i a l i z a r s e el N U C L E O m e d i a n t e u n l l a m a d o a l a p r i m i t i v a
initnucleus. N o e x i s t e u n p r e - e ^ a m i n a d o r del c ó d i q o as i q u e el o r d e n
y l a s i n t á x i s de l l l a m a d o a l a s p r i m i t i v a s del N U C L E O e s r e s p o n s a b i 1 i d a d de l p r o q r a m a d o r .
p r o c e d u r e initnucleust o f n u c : i n t o q e r ; v a r p : p r o c e s s ) ;
d o n d e :
c f n u c - e s el d e s p l a z a m i e n t o del N U C L E O d e n t r o d e l c ó d i q o d e
P a s c a l .
![Page 25: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/25.jpg)
21
p - e s l a v a r i a b l e t i p o p r o c e s o ( p r o c e s e ) a s o c i a d a al
p r o g r a m a p r i n c i p a l .
E s t e p r o c e d í m i e n t o h a c e q u e el p r o g r a m a p r i n c i p a l a c t u é c o m o u n
p r o c e s o a s o c i a d o a la v a r i a b l e p. E e p a s a c o m o p é r a m e t r o el
d e s p l a z a n i e n t o d e l N U C L E O d e n t r o d e l m ó d u l o d e P a s c a l p o r q u e e n el
N U C L E O s e c o n s t r u y e n l l a m a d o s a d i r e c c i o n e s a b s o l u t a s , l a s c u a l e s
h a y q u e c a l c u l a r s u m a n d o e s t e d e s p l a z a m i e n t o al d e 1 a p r i m i t i v a del
N U C L E D a 11 a m a r . E n el c a s o d e l p r o q r a m a p r i n c i p a l n o s e r e q u i e r e u n
e s t i m a d o d e m e m o r i a p a r a p i l a y a q u e e s t e u t i l i z a r á l a m e m o r i a
r ó s t a n t e p a r a p i l a q u e n o h a l l a s i d o a s i q n a d a a l a h o r a d e c r e a r
n u e v o s p r o c e s o s .
C R E A C I O N D E P R O C E S O S .-
F a r a c r e a r u n p r o c e s o s e h a c e u s o d e 1.a F U N C I O N newprocess, l a
c u a l t i e n e l a s i g u i e n t e s i n t é x i s :
■functipn n e w p r o c e s s (p r o g , m e m r e g : i n t e g e r ) s p r o c e s s r e t ;
d o n d e :
p r o g - e s el d e s p l a z a m i e n t e de l p r o c e d í m i e n t o a s e r c o n v e r t i d o
e n p r o c e s o
m e m r e q - e s el á r e a r e q u e r i d a e n b y t s s p a r a l a p i l a d e l p r o c e s o
a c r e a r y d e b e s e r u n n ú m e r o p a r m a y o r d e 100.
E s t a F U N C I O N c r e a u n p r o c e s o c o n s u s p r o p i a s p i l a s ( h e a p y
s t a c k ) . El c ó d i g o a s e r e j e c u t a d o e s t a a p u n t a d o p o r p r o g . El o r o c e s o
c r e a d o n u n c a d e b e r á a l c a n z a r s u i n s t r u c c i ó n -final. El p r o c e s o asi
c r e a d o p o d r á s e r a c t i v a d o p o r l l a m a d o s a l a s p r i m i t i v a s d e l N U C L E O
t r a n s f e r o i o t r a n s f e r .
P a r a c a l c u l a r el t a m a ñ o d e l a p i l a e n b y t e s d e b e r á c o n c i d e r a r s e
l o s i g u i e n t e :
- A r e a p a r a p a s o d e p a r á m e t r o s y d i r e c c i o n e s d e r e g r e s o , e n el
c a s o d e g u e el p r o c e s o l l a m e n u e v o s p r o c e d i m i e n t o s .
- A r e a p a r a d e c l a r a c i ó n d e v a r i a b l e s l o c a l e s .
- A r e a p a r a c r e a c i ó n d e v a r i a b l e s d i n á m i c a s , si e s g u e el
p r o c e s o c r e a r á n u e v a s v a r i a b l e s .
- F i n a l m e n t e c o n c i d e r a r g u e u n p r o c e s o g u e s e a s o r p r e n d i d o p o r
u n a i n t e r r u p c i ó n d e b e r á s a l v a r t o d o s s u s r e g i s t r o s y
v a r i a b l e s d e c o n t r o l e n s u p i l a g u e o c u p a n a p r o x i m a d a m e n t e 4 0
b y t e s .
S e r e c o m i e n d a n o c r c a r p r o c e s o c o n p i l a s m e n o r e s d e 1 0 0 b y t e s ,
a u n g u e n o m a n e j e n v a r i a b l e s d i n á m i c a s o n o l l a m e n n u e v o s p r o c e d i mi e n t o s .
![Page 26: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/26.jpg)
22
El m i s m o p r o c e d i m i e n t o p u e d e s e r u t i l i z a d o p a r a d i f e r e n t e s
l l a m a d o s d e newprocess c o n d i f e r e n t e s v a r i a b l e s d e p r o c e s o .
U n p r o c e s o d e b e r á c r e a r s o a p a r t i r d e p r o c e d i m i e n t o s s i n
p a r á m e t r o s . Si f u e r á n e c e s a r i o p a s a r l o s , d e b e r á n c r e a r s e u n
p r o c e d i m i e n t o c o n l o s p a r á m e t r o s r e q u e r i d o s y u n p r o c e s o d e s d e d o n d e
s e l l a m a r á el p r o c e d i m i e n t o c o n e s t o s p a r á m e t r o s .
U n p r o c e s s p u e d e s e r d e c l a r a d o e n c u a l q u i e r n i v e l y p o r l o t a n t o
u n p r o c e s o p u e d e s e r c r e a d o e n c u a l q u i e r l u q a r , d e d o n d e p u e d a s e r
l l a m a d o e n f o r m a o r d i n a r i a . P a r a c r e a r " h e a p s " i n d e p e n d i e n t e s s e u s o
l a v a r i a b l e p ú b l i c a de l c o m p i l a d o r "heapp t . r " , q u e i n d i c a l a p o s i c i ó n
a c t u a l de l h e a p , a s i q u e b a s t a d e f i n i r v a l o r e s d e e s t a v a r i a b l e
p a r a c a d a p r o c e s o .
![Page 27: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/27.jpg)
23
loe altas
loe bajas
FIG. II1.3 PILA DE PROCESO CREADO.
R E A C T I V A N D O L A E J E C U C I O N D E U N P R O C E S O . -
L a e j e c u c i ó n d e t r a n s f e r r e e m p l a z a l a p i l a e n u s o p o r l a del
p r o c e s o a t r a n s f e r i r y s a l v a el a p u n t a d o r d e l a p i l a a n t e r i o r e n u n a
v a r i a b l e . Al s a l i r d e T r a n s f e r , el c o n t r o l d e l p r o c e s a d o r l o t e n d r á
el n u e v o p r o c e s o y el p r o c e s o a n t e r i o r p o d r á r e t o m a r el c o n t r o l a
p a r t i r d e d o n d e s e s u s p e n d i ó c o n u n n u e v o l l a m a d o a l a p r i m i t i v a
T r a n s f e r .
N e w p r o c e s s
p i l a
![Page 28: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/28.jpg)
24
p r o c e d u r e t r a n s f e r ( v a r p l s p r o c e s s ) ;
d o n d e :
p i - E s el p r o c e s o q u e s e r e a c t i v a r á .
L a p r i m i t i v a t r a n s t e r (pi) d e b e r á s e r e j e c u t a d a u n i c a m e n t e
c u a n d o y a h a y a s i d o c r e a d o el p r o c e s o p l , d e n o h a c e r s e a s í el
p r o c e s a d o r t r a t a r á d e e j e c u t a r c ó d i q o i ne:; i s t e n t e .
M A N E J O D E I N T E R R U P C I O N E S . -
El p r o c e d i m e n t o iotrans-fer h a c e q u e el p r o c e s o e n e j e c u c i ó n s e
s u s p e n d a e s p e r a n d o u n a i n t e r r u p c i ó n e s p e c í f i c a , d e b e t o m a r s e e n
c u e n t a q u e s o l o u n p r o c e s o a l a v e r p u e d e e s p e r a r p o r u n a m i s m a
i n t e r r u p c i ó n v e s t e d e b e r á q a r a n t i r a r l o el p r o g r a m a d o r .
p r o c e d u r e i o t r a n s - f e r i n umi n t : i n t e g e r ; v a r pl : p r o c e s s ) ;
d o n d e :
n u m i n t - E s el n ú m e r o d e i n t e r r u p c i ó n e s p e r a d a p o r si p r o c e s o .
p l — E s el p r o c e s o q u e s e r á r e a c t i v a d o .
C u a n d o s e l l a m a a l a p r i m i t i v a iotransfer el p r o c e s o e n
e j e c u c i ó n s e s u s p e n d e d e 1 a m i s m a m a n e r a q u e e n l a p r i m i t i v a r e s u m e y
s e r e a l i z a n l o s p r e p a r a t i v o s n e c e s a r i o s p a r a m a n e j a r l a i n t e r r u p c i ó n
d e s e a d a . Al s a l i r d e iotrans-fer s e r e a c t i v a r á l a e j e c u c i ó n d e p l .
El N U C L E O c o n t i e n e d o s p r o c e d i m i e n t o s l o s c u a l e s m o d i f i c a n el
e s t a d o del p r o c e s a d o r c o n r e s p e c t o a l a s i n t e r r u p c i o n e s m a s c a r a b l e s y
s o n :
p r o c e d u r e enableinterrupts;
p r o c e d u r e disableinterrupts;
El p r i m e r p r o c e d i m i e n t o h a b i l i t a i n t e r r u p c i o n e s y el s e q u n d o l a s
d e s h a b i l i t a .
![Page 29: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/29.jpg)
25
Ejemplo t.
El siguiente ejemplo nos muestra como usar las primitivas del NUCLEO para crear procesos y transferir el control entre ellos. Observe el uso del nuevo tipo de datos process v í a -forma síncrona de transferir el control entre proql y proq2.
Esquema de procesos del ejemplo ls
EJEMPLOS.
•C * * * * * * ** * * * * * * * * * i * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * !{* PROGRAMA DE DEMOSTRACION NUMERO 1 *>{* Se demuestra el uso de un núcleo para creación de procesos, *> í#la conmutación se lleva expresamente por la primitiva TRANSFER *> i * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * !
< $ K - > -CNo c h e q u e s e s t r u c t u r a d e l a p i l a >
P r o q r a m M u í ti t e s t ;
•C4I n ú c l e o . e x t > { r u t i n a s p a r a p r o c e s o s c o n c u r r e n t e s )
var pü,pl,p2: process: answer:strinqC21;
{variables de procesos}
Procedure proql; beqi nwhile true do
beqi nwri tein ('hi'); transfer<p2>; wri tein <’he’); transfer<p2); end;
end;
•Cprocedi miento a convertir a proceso)
{conmuta a proceso p2>
{conmuta a proceso p2>
![Page 30: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/30.jpg)
26
P r o c e d u r e p r o q 2 ;
b e q i n
w h i l e t r u e d o
b e q i n
w r i t e l n (’h o ’);
t r a n s f e r ( p l i ; { c o n m u t a a p r o c e s o p i }
e n d ;
e n d ;
P r o c e d u r e m a i n ;
b e q i n
w h i l e a n s w e r O ' s i ’ d o
b e q i n
w r i t e ( * e m p e z a m o s ) ; r e a d l n ( a n s w e r ) ;
e n d ;
c l r s c r ;
ini t n u c l e u s (o-f s ( n u c ) , p u ) ;p 1 : = n e w p r o c e s s ( o + s ( p r o q 1 ) , l O O O ) ; C c r e a p r o c e s o p l T
p2 : = n e w p r o c e s s (o-f s ( p r o q 2 > , 10 0 0 ) ; C c r e a p r o c e s o p 2 >
t r a n s f e r ( p i ) ;
e n d ;
b e q i n
m a i n
e n d .
![Page 31: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/31.jpg)
27
Ejemplo 2.
E n el s e q u n d o e j e m p l o o b s e r v a m o s c o m o e s p o s i b l e a s o c i a r u n
p r o c e s o a u n a i n t e r r u p c i ó n c o n a y u d a d e l a p r i m i t i v a iotransfer. E1
p r o c e s o i n c r e m e n t e r l l e v a u n a c u e n t a d e l o s t i c k s p e ñ e r a d o s p o r el
t e m p o r i s a d o r (el t i c k e s l a u n i d a m í n i m a d e t i e m p o m a n e j a d a p o r el
8 2 5 3 y e s apro:; i m a d a m e n t e i q u a l a 5 0 m s e q > d e l a m i c r o c o m p u t a d o r a ,
n ó t e s e q u e e n e s t e p r o c e s o i n c r e m e n t e r n o s e l l a m ó n i n q u n a r u t i n a d e
T u r b o P a s c a l p a r a e n t r a d a /sa l i da.
E s q u e m a d e p r o c e s o s de l e j e m p l o 2:
í* P R O G R A M A D E D E M O S T R A C I O N N U M E R O 2 *>
it S e d e m u e s t r a el u s o d e u n n ú c l e o p a r a c r e a c i ó n d e p r o c e s o s .
<!*Un p r o c e s o p u e d e e s p e r a r u n a i n t e r r u p c i ó n a t r a v é s d e l a p r i m i t i * >
{ * v a I O T R A N S F E R *>
i t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t . t x t t t t t t t t t t t t t t t t t ' ,
CÍK-1- C N o c h e q u e s e s t r u c t u r a d e l a p i l a >
F ' r o q r a m i n t e r r u p t t e s t ;
•C$1 n ú c l e o . e:;t> [ r u t i n a s d e p r o c e s o s c o n c u r r e n t e s !
v a r c o u n t : i n t e q e r ;
p O ,ti m e h a n d l e r :p r o c e s s ;
i t t t t t t t t t t t t t % * % % % % % % % % % % % % % % * % % % * % * * % % % % % % * % * % % % % % % * % * % % % % % * % % * % % }
p r o c e d u r e i n c r e m e n t e r ;
b e q i n
w h i l e t r u e d o
b e q i n
i o trans-f e r ( $ l c , p O ) ; { e s p e r a n d o i n t e r r u p c i ó n d e l r e l o j >
c o u n t := s u c c ( c o u n t );
e n d ;
e n d ;
![Page 32: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/32.jpg)
28
b e q i n
c l r s c r ;
i n i t n u c l e u s ío-f s ( n ue) , pO ) ; C i n i c i a l i z a n ú cleo!ti m e h a n d l e r : = n e w p r o c e s = (0-f s ( i n c r e m e n t e r ) , 1 0 0 0 ) ; i e r s a p r o c e s o i c o u n t !=0 ;
t r a n s t e r ( t i m e h a n d l e r ) ; ¡ . r eactiva ti m e h a n d l e r h
w h i 1 e t r u e d o
b e q i n
qotoií y (25, 12) ;
w r i t e l n i ' m a i n c o u n t ) ;
e n d ;
e n d .
![Page 33: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/33.jpg)
29
Ejemplo 3.
El c ó d i q o g e n e r a d o p o r T u r b o P a s c a l e s c o m p l e t a m e n t e
i n t e r r u m p i b l e d e tal m a n e r a q u e n o e n m a s c a r a i n t e r r u p c i o n e s , a s i q u e
s e p u e d e n e s c r i b i r p r o c e d i m i e n t o s p a r a m a n e j a r i n t e r r u p c i o n e s e n
T u r b o P a s c a l .
U n a r u t i n a d e i n t e r r u p c i ó n n o d e b e r á e m p l e a r n i n q u n a o p e r a c i ó n
d e e n t r a d a / s a l i d a u s a n d o l o s p r o c e d i m i e n t o s e s t á n d a r e s d e T u r b o
P a s c a l y a q u e B D O S ( i n t e r f a c e e n t r e T u r b o P a c a i y M S - D O S ) n o e s
r e e n t r a n t e .
E n el t e r c e r e j e m p l o s e d e m u e s t r a q u e p u e d e t r a n s f e r i r s e el
c o n t r o l del p r o c e s a d o r d e s d e u n p r o c o s o a s o c i a d o a u n a i n t e r r u p c i ó n a
o t r o p r o c e s o . S i n e m b a r q o c o m o s e m e n c i o n ó e n el p á r r a f o a n t e r i o r n o
e s c o n f i a b l e u s a r r u t i n a s d e e n t r a d a / s a l i d a e n u n m a n e j a d o r d e
i n t e r r u p c i o n e s .
Si s e o b s e r v a d e t e n i d a m e n t e el c ó d i q o d e l p r o c e s o i n c r e m e n t e r ,
e n e s t e n o s e u s a n l a s r u t i n a s d e e n t r a d a / s a l i d a , s i n e m b a r q o el
h e c h o d e r e g r e s a r el c o n t r o l d e l p r o c e s a d o r a u n p r o c e s o d i f e r e n t e al
i n t e r u m p i d o p u e d e c a u s a r p r o b l e m a s . P o r e j e m p l o s u p o n g a m o s q u e el
p r o c e s o p r i n c i p a l a s o c i a d o a l a v a r i a b l e p l s e e n c o n t r a b a e s c r i b i e n d o
c u a n d o l o s o r p r e n d i ó l a i n t e r r u p c i ó n d e l r e l o j , e n e s e m o m e n t o s e
c o n m u t a c o n t e x t o p a r a q u e el p r o c e s o i n c r e m e n t e r a t i e n d a l a
i n t e r r u p c i ó n , c o m o é s t e n o h a c e u s o d e l a s r u t i n a s d e e n t r a d a / s a l i d a
n o e x i s t e n i n q u n p r o b l e m a , p e r o u n a v e z r e a l i z a d a s u f u n c i ó n ( l l e v a r
l a c u e n t a d e t i c k s ) , t r a n s f i e r e el c o n t r o l d e p r o c e s a d o r y a n o al
p r o c e s o p r i n c i p a l q u e e s t a b a e s c r i b i e n d o s i n o al p r o c e s o e s c r i b e q u e
t r a t a d e e s c r i b i r y c o m o el p r i n c i p a l n o t e r m i n ó d e e s c r i b i r s e
p r o d u c e el c o n f l i c t o p o r t r a t a r d e u s a r l a s r u t i n a s d e e n t r a d a . - s a l i d a
q u e n o s o n r e e n t r a n t e s . P e r o ¿ q u ó s i q n i f i c a q u e u n p r o c e d i mi ent.o n o
s e a r e e n t r a n t e ? , q u e el c ó d i q o d e e s t e p r o c e d i m i e n t o n o p u e d e s e r
u s a d o p o r v a r i o s p r o c e s o s a l a v e z , y a q u e u n s e g u n d o l l a m a d o a e s t e
p r o c e d i mi ent.o d e s t r u i r á el e s t a d o q u e g u a r d a b a e n el p r i m e r l l a m a d o
( p r o b a b l e m e n t e d e s t r u i r á el j u e g o d e v a r i a b l e s g u e m a n e j a b a p a r a el
p r i m e r p r o c e s o ) .
![Page 34: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/34.jpg)
30
Esquema de p ro c e s o s del e je m p lo 3 :
{*K-> (.no cheques desbordami neto de pila}Program interrupttest;{41 núcleo, ext} {rutinas de procesos concurrentes}•Cíl misceláneos}
typeprocessret = processrec; processrec = record
sue,pre,remite : processret;proc s process;end;
var count 1: integer;ti mehandler,pO,p1,runni nqs processret; answer:stringC23;
PROGRAMA DE DEMOSTRACION NUMERO 3 En este proqrama se demuestra que el hecho de usar rutinas
de entrada/sal i da de las bibliotecas de Pascal en procesos asociados a interrupciones no es recomendable ya que estas rutinas no son reentrantes, es decir no se asequra que puedan ser usa - das por dos procesos al mismo tiempo.
PROCEDURE STATUS8259Muestra el contenido de los registros del control ador de inte rrupci ones.IMR = máscara del 8259 (O habilita int, 1 enmascara int>I R R = registro de peticiones de interrupción, 1 = pidiendo i nterrupci ónISR = registro de interrupciones siendo atendidas, 1 = sir -
![Page 35: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/35.jpg)
31
p r o c e d u r e e s c r i b e ;
b e q i n
coun t . 3 : = 0;
w h i l e t r u e d o
b e q i n
c o u n t 2 : = s u c c ( c o u n t 2);
g o t o x y ( 1 0 , 1 0 ) ;
w r i t e l n i ’c u e n t a 2 := ’,c o u n t 2 : 6);
s t a t u s 8 2 5 9 ;
d i s a b l e i n t e r r u p t s ;
r u n n i n g : = pO;
tr a n s - f e r ( r u n n i n g . p r o c ) ;
e n a b l e i n t e r r u p t s ;
e n d ;
e n d ;
it s i r v i e n d o i n t e r r u p c i ó n . *>
p r o c e d u r e s t a t u s 8 2 5 9 ; b e g i n
w r i t e (7 I M R = ’,p o r t T * 2 1 1 : 6 ) ;
p o r t it 2 0 3 := * 0 a ;
w r i t e i ’ I R R = ’,p o r t C * 2 0 3 : 6 ) ;p o r t t * 2 0 3 : = * 0 b ;
w r i t e i ’ I 3 R = ’,p o r t C * 2 0 3 s 6 ) ;
e n d ;
p r o c e d u r e i n c r e m e n t e r ;
b e g i n
c o u n t 1 : = 0;
w h i l e t r u e d o
b e g i n
c o u n t 1 : = 5 u c c ( c o u n t 1 ) ;
if r u n n i n g = p O t h e n r u n n i n g := p i { f o r z a n d o a r e g r e s a r el p r o - }
e l s e r u n n i n g := p O ; í c e s a d o r a u n p r o c e s o di fe —I
e n a b l e i n t e r r u p t s ; í r e n t e al i n t e r r u m p i d o >
p o r t C * 2 0 3 : = * 2 0 ;i o t r a n s f e r ($08, r u n n i n g . p r o c ) ; { e s p e r a n d o i n t e r r u p c i ó n tì i-
e n d ; { g e n e r a d a p o r el 8 2 5 3 }
e n d ;
![Page 36: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/36.jpg)
32
b e g i n C m a i n V
c l r s c r ;
n e w (p O > ;
ini t n u c l e u s i o t s i n u c ) ,p u .p r o c ) ; n e w i p l i ;
pl . p r o c : = N e w p r o c e s s ( c t s ( e s c r i b e » , 1 0 2 4 ) ;
n e w <ti m e h a n d l e r );
ti m e h a n d l e r .p r o c := n e w p r o c e s s ( 0 + s (i n c r e m e n t e r > , 2 0 4 8 ) ;
c o u n t 4 ; = 0 ;
w h i l e a n s w e r < > ’s i ? d o
b e g i n
w r i t e l n i ’E m p e z a m o s ? ' ) ; r e a d l n (a n s w e r ) ;
e n d ;
c l r s c r ;
r u n n i n g : = t i m e h a n d l e r ;
t r a n s f e r ( r u n n i n g . p r o c ) ;
w h i l e t r u e d o
b e g i n
c o u n t 3 : = s u c c < c o u n t _ 3 ) ;
g o t o x y ( 1 0 , 1 4 ) ;
w r i t e l n (’c u e n t a 3 : = 9 ,c o u n t 3 s 6 ) ;
s t a t u s B 2 f 5 9 ;
di s a b l e i n t e r r u p t s ;
r u n n i n g ; = pl ; t r a n s f e r ( r u n n i n g . p r o c ) ;
e n a b l e i n t e r r u p t s ;
e n d ;
e n d .
![Page 37: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/37.jpg)
P a r a s o l u c i o n a r el p r o b l e m a d e s a l i d a a p a n t a l l a s e c o n s t r u y ó u n
p e q u e ñ o m ó d u l o l l a m a d o i o . p a s ( v e r m ó d u l o i o . p a s e n a p é n d i c e B) el
c u a l e s p r o b a d o e n el c u a r t o e j e m p l o . C o m o el c ó d i q o q e n e r a d o p a r a
i o . p a s si e s r e e n t r a n t e e s t e p u e d e s e r l l a m a d o d e s d e c u a l q u i e r
p r o c e s o .
E s q u e m a d e p r o c e s o s de l e j e m p l o 4:
í * K - > -Cno c h e q u e s d e s b o r d a m i n e t o d e p i l a >
P r o q r a m i n t e r r u p t t e s t ;
•C$1 n u c í eo. ext.7 [ r u t i n a s d e p r o c e s o s c o n c u r r e n t e s !
CÍI I G . p a s T
33
Ejemplo 4.
P R O G R A M A D E D E M O S T R A C I O N N U M E R O 4
E n e s t e p r o q r a m a s e d e m u e s t r a q u e el h e c h o d e u s a r r u t i n a s
d e e n t r a d a / s a l i d a d e l a s b i b l i o t e c a s d e P a s c a l e n p r o c e s o s a s o
c i a d o s a i n t e r r u p c i o n e s n o e s r e c o m e n d a b l e y a q u e e s t a s r u t i n a s
n o s o n r e e n t r a n t e s , e s d e c i r n o s e a s e q u r a q u e p u e d a n s e r u s a -
d a s p o r d o s p r o c e s o s al m i s m o t i e m p o . P a r a s o l u c i o n a r el p r o b l s
m a a n t e r i o r s e c o n s t r u y e r o n r u t i n a s b á s i c a s d e s a l i d a a p a n t a -
l i a ( m ó d u l o i o . p a s ) q u e si s o n r e e n t r a n t e s .
![Page 38: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/38.jpg)
34
p r o c e d u r e e s c r i b e ;
b e q i n
c o u n t 3 := 0;
w h i l e t r u e d o
b e q i n
c o u n t 3 : = s u c c (count.3) ;
g o t o x y (10, 10) ;
p u t s t r i n q ( ' c uent.a 3 := '); p u t i n t (count.3,¿>) ;
p u t s t r i n g l n ( ’ ');
r u n n i n q : = pO;
t r a n s f e r ( r u n n i n q . p r o c ) ; i t r a n s + i e r e el c o n t r o l a p 0 >
e n d ;
e n d ;
p r o c e d u r e i n c r e m e n t o r ;
b e q i n
c o u n t 1 : = 0;
w h i l e t r u e d o
b e q i n
if r u n n i n q = p u t h e n r u n n i n g : = pi
el s e
if r u n n i n g = pi t h e n r u n n i n q := p 2
el s e
r u n n i n q : = pu;
i o t r a n s f e r ( $ l c , r u n n i n q . p r o c ) ; C r e q r e s a el c o n t r o l a u n p r o c e s o )
c o u n t 1 := s u c c ( c o u n t 1) ; - C d i f e r e n t e al i n t e r r u m p i d o !
g o t o x y ( 1 , 1 ) ;
p u t s t r i n g (9 t i c k s = '); p u t i n t ( c o u n t 1 , 6 ) ;
s t a t u s 3 2 5 9 ;
p o r t C $ 2 0 1 := $ 2 0 ;
e n a b l e i n t e r r u p t s ;
e n d ;
e n d ;
t y p e
p r o c e s s r e f = p r o c e s s r e c ;
p r o c e s s r e c = r e c o r d C s e c r e a u n i d e n t i f i c a d o r 5-
s u e ,p r e , r e m i t e : p r o c e s s r e f : ; d e p r o c e s o )
p r o c : p r o c e s s ;
e n d ;
v a r c o u n t 1 , c o u n t 2 , c o u n t 3 , c o u n t 4: i n t e g e r ;
ti mehandler,pO,p1,p2,runni ng:processref; answer:stri ngC23;
![Page 39: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/39.jpg)
35
b e g i n {main!clrscr;n e w ( p O ) ;ini t n u c l e u s ( o t s ( n u c ),p O .p r o c ); n e w ( p i );pi . p r o c : = N e w p r o c e s s ( o f s ( e s c r i b e ) ,1024); n e w ( p 2 ) ;p2 .p r o c : = N e w p r o c e s s ( o f s í u n o ) ,1024); n e w iti m e h a n d l e r );ti m e h a n d l e r .p r o c := n e w p r o c e s s ( O f s (i n c r e m e n t e r ),2043); c o u n t 4:=0;w h i l e a n swer <> ’si' do
begi np u t s t r in g l n (’E m p e z a m o s 7 ’); r e a d l n ( a n s w e r ); end;
c l r s c r ;r u n n i n g := t.imehandler; .tr a n s f er (running .proc); { t r a n s f i e r e el control a t i m e h a n d l e r >
w h i l e t r u e do begi nc o u n t 4 : = s u c c ( c o u n t 4); g e t o x y (10,14);p u t s t r ing (’ c u e n t a :4 = ” ) ; puti nt (count.4, é>) ; p u t s t r i n g l n (' '); r u n n i n g := pi;t r a n s f e r ( r u n n i n g .proc); { t r a n s f i e r e el control a pi*
end; e n d .
p r o c e d u r e uno; begi ncount.2 := 0; w h i l e tru e do
begi nc o u n t 2 : = s u c c ( c o u n t 2 ) ; g o tox y (10,8 ) ;p u t s t r in g (’c u e n t a 2 : = ? ); p u t i n t ( c o u n t s , 6 ); p u t s t r i n g l n (9 ’); r u n n i n g := pu;t r a n s f e r ( r u n n i n g .proc); { t r a n s f i e r e el control a p0> end;
end;
![Page 40: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/40.jpg)
36
IMPLEMENTACION DE LAS PRIMITIVAS DEL NUCLEO.-
O R G A N I Z A C I O N D E L A M E M O R I A P A R A T U R B O P A S C A L E N E L M O M E N T O D E
E J E C U C I O N
D u r a n t e l a e j e c u c i ó n d e u n p r o g r a m a e n T u r b o P a s c a l s e m a n e j a n
l o s s i g u i e n t e s s e g m e n t o s p o r el p r o g r a m a :
- u n s e q m e n t o d e c ó d i g o
- u n s e g m e n t o d e d a t o s y
- u n s e q m e n t o d e p i l a .
S e m a n e j a n a d e m á s d o s e s t r u c t u r a s t i p o p i l a el h e a p y el s t a c k .
El h e a p s e u s a p a r a a l m a c e n a r v a r i a b l e s d i n á m i c a s y e s c o n t r o l a d o
m e d i a n t e l o s p r o c e d i m i e n t o s e s t á n d a r e s N e w , M a r k y P e l e a s e . Al
i n i c i a r el p r o g r a m a el a p u n t a d o r a h e a p heapptr a p u n t a a l a p a r t e
b a j a del s e q m e n t o d e p i l a y c r e c e h a c i a el á r e a d e s t a c k . L a v a r i a b l e
p r e d e f i n i d a heapptr c o n t i e n e el v a l o r de l a p u n t a d o r al h e a p y p e r m i t e al p r o g r a m a d o r c o n t r o l a r l a p o s i c i ó n d e óst.e.
El s t a c k ( p i l a ) e s u s a d o p a r a a l m a c e n a r v a r i a b l e s l o c a l e s ,
r e s u l t a d o s i n t e r m e d i o s d u r a n t e l a e v a l u a c i ó n d e e x p r e s i o n e s y p a r a
t r a n s f e r i r p a r á m e t r o s a p r o c e d i m i e n t o s y f u n c i o n e s . Al i n i c i a r el
p r o q r a m a , ol a p u n t a d o r d e p i l a e s p u e s t o e n l a l o c a l i d a d m á s a l t a del
s e q m e n t o d e p i l a .
E n c a d a l l a m a d o al p r o c e d i m i e n t o N e w el s i s t e m a c h e c a si e x i s t e
c o l i s i ó n e n t r e el h e a p y l a p i l a a m e n o s q u e l a d i r e c t i v a de l
c o m p i l a d o r K s e e n c u e n t r e d e s a c t i v a d a í f í K - í ) .
O R G A N I Z A C I O N D E L A M E M O R I A F A R A P R O C E S O S D U E U T I L I C E N E L N U C L E O
U n r e q u e r i m e n t o b á s i c o p a r a m a n e j a r p r o c e s o s c o n c u r r e n t e s e s q u e
c a d a u n o d e e l l o s t.enqa s u p r o p i a p i l a p a r a m a n e j o d e v a r i a b l e s
l o c a l e s y d i r e c c i o n e s d e r e g r e s o . E s t o s e p u e d e l o g r a r f á c i l m e n t e
c a m b i a n d o el v a l o r del r e g i s t r o 5F c u a n d o s e t r a n s f i e r a el c o n t r o l
d e l p r o c e s a d o r e n t r e d o s p r o c e s o s .
L a m a n e r a m á s s e n c i l l a d e c o m u n i c a r p r o c e s o s e s m e d i a n t e el u s o
d e v a r i a b l e s g l o b a l e s , e s t o e s v a r i a b l e s a c c e s a d a s p o r l o s
p r o c e d i m i e n t o s b a j o s l a s r e g l a s e s t á n d a r e s d e P a s c a l . N o e x i s t e
p r o b l e m a c o n el u s o d e v a r i a b l e s g l o b a l e s y a q u e t o d a s e l l a s s o n
i n d e x a d a s c o n r e s p e c t o al r e q i s t r o b a s e D R .
![Page 41: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/41.jpg)
L a s v a r i a b l e s m a n e j a d a s e n l a p i l a s o n a c c e s a d a s c o n a y u d a d e l
r e g i s t r o B P ( r e g i s t r o q u e a p u n t a a l a b a s e d e v a r i a b l e s l o c a l e s ) . El
p r o c e d i m i e n t o newporcess d e b e r á c o l o c a r u n n u e v o B P u n a v e z q u e el
p r o c e s o h a s i d o c r e a d o . E s i m p o r t a n t e a c l a r a r q u e e n c a d a r e q r e s o
de l l l a m a d o a u n p r o c e d i m i e n t o i m p l i c a u n c a m b i o e n el v a l o r del
r e g i s t r o BP . E s t a o s l a r a z ó n , p o r l a c u a l u n p r o c e s o n o d e b e r á
a l c a n z a r s u -fin.
C O N M U T A C I O N D E C O N T E X T O U S A N D O E L N U C L E O
U n p r o c e s o s e s u s p e n d e r á p o r u n l l a m a d o a u n a p r i m i t i v a d e l
N U C L E O o p o r u n a i n t e r r u p c i ó n . El e s t a d o del p r o c e s o ( c o n t e x t o ) e s
e n t o n c e s a l m a c e n a d o e n l a p i l a d e l p r o c e s o . El a p u n t a d o r a e s t a p i l a
e s s a l v a d o j u s t a m e n t e e n l a v a r i a b l e t i p o p r o c e s s . El á r e a d e m e m o r i a
d e u n p r o c e s o s u s p e n d i d o s e m u e s t r a e n l a f i g u r a s i g u i e n t e :
F i l a d e l p r o c e s o
-PO ( v a r i a b l e t i p o p r o c e s s )
FIG- II1.4 AREA DE MEMORIA DE UN PROCESO SUSPENDIDO.
L a i n f o r m a c i ó n g u a r d a d a e n l a p i l a d e p e n d e d e l a r a z ó n p o r l a
c u a l s e s u s p e n d i ó el p r o c e s o .
El N U C L E O e s t a o r g a n i z a d o e n u n a f o r m a s i m é t r i c a . P a r a c a d a
p a r t e d e c ó d i g o q u e a l m a c e n a i n f o r m a c i ó n r e f e r e n t e a u n p r o c e s o ,
e x i s t e u n a p a r t e c o r r e s p o n d i e n t e d e c ó d i g o q u e r e c u p e r a l a
i n f o r m a c i ó n d e l p r o c e s o . El a l m a c e n a m i e n t o y l a r e c u p e r a c i ó n d e l a
i n f o r m a c i ó n t o m a l u g a r e n c u a t r o c a s o s d e n t r o de l c ó d i g o ; d o n d e el
p r o c e s o e s c r e a d o , d o n d e s e r e a c t i v a u n p r o c e s o , e s p e r a p o r u n a
i n t e r r u p c i ó n o e s i n t e r r u m p i d o . L a e j e c u c i ó n d e u n p r o c e s o p u e d e a s í
l o g r a s e m e d i a n t e l a e j e c u c i ó n del c ó d i g o m a r c a d o p o r l a s i g u i e n t e s
e t i g u e t a s (ve r a p é n d i c e A) R E S C H I L D , R E S , R E S D R I V E R t R E S I N T .
![Page 42: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/42.jpg)
38
M A N E J O D E I N T E R R U P C I O N E S . -
C c m o s e m e n c i o n o a n t e r i o r m e n t e l a p r i m i t i v a iotransfer s u s p e n d e
el p r o c e s o q u e h a c e el l l a m a d o y r e a c t i v a o t r o , p r o c e s o . C u a n d o l a
i n t e r r u p c i ón e s p e c i f i c a d a o c u r r e , el p r o c e s o s u s p e n d i d o d e b e r á
r e a c t i v a r s e . L o q u e s e d e s e a l o q r a r c o n e s t a p r i m i t i v a e s q u e al
l l e g a r l a i n t e r r u p c i ó n d e a l g u n a m a n e r a s e h a g a u n l l a m a d o al
p r o c e d i mi e n t o .
i n t r e s u m e (i c s u s p e n d e d : p r o c e s s ) ;
El p r o c e d i m i e n t o intresume o s s i m i l a r a resume. L a d i f e r e n c i a e s
g u s d e b e n s a l v a r s e t o d o s l o s r e g i s t r o s y a l g u n a s v a r i a b l e s d e l a
b i b l i o t e c a d e P a s c a l p a r a m o m e n t o d e e j e c u c i ó n c u a n d o l a i n t e r r u p c i ó n
o c u r r a . El a r g u m e n t o i o s u s p e n d e d e s el p r o c e s o q u e h i z o el 1 1 a m a d o a
iotrans-fer c o n l a d i r e c c i ó n del v e c t o r c o r r e s c o n d í e n t e a l a
i n t e r r u p c i ó n .
S i n e m b a r g o , p o r i n t e r r u p c i o n e s d e h a r d w a r e s o l o p o d e m o s l l a m a r
p r o c e d í m i e n t o s s i n p a r á m e t r o s . U n a s o l u c i ó n a e s t e p r o b l e m a e s c r o a r
d i n á m i c a m e n t e u n p e q u e ñ o p r o c e d í m i e n t o p a r a q u e c a d a p r o c e s o e n
e s p e r a d e u n a i n t e r r u p c i ó n c o n t e n q a u n l l a m a d o a intresume c o n el
a r g u m e n t o a p r o p i a d o . E n e f e c t o l o ú n i c o q u e h a y q u e h a c e r e s i n s e r t a r
l a i n s t r u c c i ó n :
c a l i i n t r e s u m e
e n el t o p e d e l a p i l a del p r o c e d i m i e n t o q u e l l a m e iotrans-fer y l a
d i r e c c i ó n d e e s t a i n s t r u c c i ó n e n l a d i r e c c i ó n del v e c t o r
c o r r e s p o n d i e n t e .
C u a n d o l a i n t e r r u p c i ó n o c u r r a y s e e j e c u t e l a i n s t r u c c i ó n C A L L ,
el p r o c e s a d o r q u a r d a r á l a d i r e c c i ó n d e r e g r e s o e n l a p i l a . S i n
e m b a r g o e s t a d i r e c c i ó n d e r e g r e s o c o r r e s p o n d e r á al n u e v o v a l o r del
a p u n t a d o r d e p i l a d e l p r o c e s o q u e e s p e r a b a 1.a i n t e r r u p c i ón. E s t a
s o l u c i ó n p e r m i t e q u e el p r o c e s o s e a r e a s u m i d o c u a n d o l a i n t e r r u p c i ó n
o c u r r e c o n o c i e n d o d e u n a m a n e r a e f i c i e n t e la d i r e c c i ó n d e l a r u t i n a
d e s e r v i c i o .
![Page 43: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/43.jpg)
3?
IMPLEMENTACION MANEJADOR DE PROCESOS EN TIEMPO REAL PARA PASCAL.
![Page 44: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/44.jpg)
40
IMPLEMENTACION MANEJADOR DE PROCESOS EN TIEMPO REAL PARA PASCAL.
E n e s t e c a p i t u l o s e d e s c r i b e u n m ó d u l o d e r u t i n a s el c u a l h e m o s
l l a m a d o K E R N E L d e s a r r o l l a d o e n T u r b o Pascal, q u e u s a c o m o b a s e l a s
p r i m i t i v a s d e s c r i t a s a n t e r i o r m e n t e , p a r a el m a n e j o d e p r o c e s o s
c o n c u r r e n t e s c o n l a - f l e x i b i l i d a d d e l P a s c a l . L a s i n t e r r u p c i o n e s
t a m b i ó n p o d r á n s e r c o n t r o l a d a s d e s d e P a s c a l .
El K E R N E L s o p o r t a p r o q r a m a c i ó n c o n c u r r e n t e e n l a v e r s i ó n d e
T u r b o P a s c a l 3 . 0 d e s a r r o l l a d o p o r B o r l a n d . El K E R N E L i m p l e m e n t a
s e m á f o r o s p a r a e x c l u s i ó n m u t u a y e v e n t o s p a r a o t r a s
si n e r ó n i z a c i o n e s .
U n p r o g r a m a q u e u s e e s t e K E R N E L p o d r á s e r e s t r u c t u r a d o d e u n a
m a n e r a s i m i l a r a p r o q r a m a s e n P a s c a l c o n c u r r e n t e . P o r e j e m p l o u n
m o n i t o r e n P a s c a l c o n c u r r e n t e c o r r e s p o n d e a u n r e q i s t r o y a l g u n o s
p r o c e d i m i e n t o s r e e n t r a n t e s a s o c i a d o s . El c o n c e p t o d e c o l a c o r r e s p o n d e
a u n e v e n t o . El KERNEl. t a m b i é n o f r e c e l a p o s i b i l i d a d d e p r o g r a m a r
m a n e j a d o r e s d e e n t r a d a •sal i d a .
LAS PRIMITIVAS DEL KERNEL
D e c l a r a c i ó n , c r e a c i ó n , e l e c c i ó n y t e r m i n a c i ó n d e p r o c e s o s :
U n p r o c e s o s e d e c l a r a c o m o u n p r o c e d i m i e n t o s i n p a r á m e t r o s , el
c u a l e n a d e l a n t e s e r á r e f e r i d o c o m o p r o c c e s s . S i s e d e s e a n
p a s a r p a r á m e t r o s al p r o c e s o , s e d e b e r á d e c l a r a r u n p r o c e d i m i e n t o
c o n p a r á m e t r o s e n f o r m a s t a n d a r d y s e u s a r á u n p e q u e f i o p r o c e s ; el
c u a l l l a m a r á a s u v e z al p r o c e d i m i e n t o c o n l o s p a r á m e t r o s a d e c u a d o s .
U n p r o c e s o e n p r i m e r a i n s t a n c i a p u e d e s e r c r o a d o d e s d e
c u a l q u i e r l u g a r del p r o q r a m a , d o n d e el p r o c e d i m i e n t o p u e d a s e r
l l a m a d o e n f o r m a o r d i n a r i a m e d i a n t e el l l a m a d o de l p r o c e d i m i e n t o
createprocess.
Function createprocess(proq, memreq: i nteqer):processref;
p r o g - e s l a d i r e c c i ó n d e p r o c e d i m i e n t o e n P a s c a l
( o f s ( p r o g a m a ) )
m e m e r e g - e s 1 a m e m o r i a r e q u e r i d a e n b v t e s p a r a s t a c k .
U n t a m a ñ o e s t i m a d o d e p i l a e s r e q u e r i d o p a r a l a p i l a d e l p r o c e s o
a c r e a r , l o s e r r o r e s d e d e s b o r d a m i e n t o d e l a p i l a n o s o n d e t e c t a d o s
p o r l a s r u t i n a s d e c h e q u e o a l a h o r a d e e j e c u c i ó n . E s r e s p o n s a b i l i d a d
d e l u s u a r i o d e c l a r a r s u f i c i e n t e á r e a d e m e m o r i a d e p i l a p a r a c a d a
p r o c e s o q u e s e c r e e . D e b e r á t o m a r s e e n c u e n t a p a r a e l l o : a r e a
d o n d e :
![Page 45: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/45.jpg)
A 1
n e c e s a r i a p a r a q u a r d a r r e g i s t r o s al m o m e n t o d e c o n m u t a c i ó n , á r e a
u s a d a p o r l l a m a d o s a p r o c e d í m i e n t o , p a s o d e p a r á m e t r o s e n e s t a s
l l a m a d a s , á r e a p o r d e c l a r a c i ó n d e v a r i a b l e s l o c a l e s , á r e a p a r a
d e c l a r c i ó n d e p r o c e s o s h i j o s , e t c . F o r l o a n t e r i o r e s d i + i c i l
c a l c u l a r c o n e x a c t i t u d el t a m a ñ o d e l a p i l a p e r o u n t a m a ñ o m í n i m o
r a z o n a b l e s o n 1 0 0 byt.es, si n o c r e a r e m o s p r o c e s o s h i j o s , ni v a r i a b l e s di nárni c a s .
T a m a ñ o d e p i l a = á r e a p a r a r e g i s t r o s + á r e a p a r a p a s o d e
p a r á m e t r o s + á r e a d e v a r i a b l e s l o c a l e s + á r e a D a r a p r o c e s o s hi jos.
El e s p a c i o u t i l i z a d o p a r a s a l v a r el c o n t e x t o d e u n p r o c e s o e s
a p r o x i m a d a m e n t e d e 5 0 b y t e s . El e s p a c i o q u e o c u p a c a d a v a r i a b l e l o c a l o p a s a d a p o r p á r a m e t r o e n el ll a m a d o a u n p r o c e d í m i e n t o d e p e n d e del
t i p o , p o r e j e m p l o u n a v a r i a b l e t i p o e n t e r o u t i l i z a u n a p a l a b r a , u n
c a r a c t e r u n b y t e , u n a p u n t a d o r d o s p a l a b r a s e t c .
L o s p r o c e s o s s o n l a n z a d o s a e j e c u c i ó n d e a c u e r d o a s u s
p r i o r i d a d e s . U n p r o c e s o e m p i e z a c o n s u p r i o r i d a d i g u a l a u n o i l a m á s
a l t a ) y p u e d e s e r c a m b i a d a d i n á m i c a m e n t e p o r u n l l a m a d o a
s e t p r i o r i t y .
P r q c e d u r e s e t p r i o r i t y vp r i o r i t y s I n t e g e r ) ;
d o n d e :
p r i o r i t v - e s l a n u e v a p r i o r i d a d del p r o c e s o .
L a p r i o r i d a d p u e d e s e r m e n o r q u e ’m a x p r i o r i t y * , l a c u a l e s u n a
c o n s t a n t e p r e d e f i n i d a . U n n ú m e r o d e p r i o r i d a d m a y o r o i g u a l a
m a x p r i o r i t v c a u s a l a t e r m i n a c i ó n d e l p r o c e s o v e s l a f o r m a n o r m a l dF
t e r m i n a r u n p r o c e s o , p e r o l a m e m o r i a q u e e s t e p r o c e s o o c u p a nc
s e r á l i b e r a d a .
D e n t r o del p r o g r a m a p r i n c i p a l d e b e r á l l a m a r s e a l a p r i m i t i v a
initkernel a n t e s d e q u e o t r o s p r o c e s o s s e a n c r e a d o s .
P r o c e d u r e initkernel;
El p r o c e d u r e i n i t k e r n e l c r e a d o s p r o c e s o s d e u s o s e s p e c i a l ur
m a n e j a d o r del r e l o j y u n p r o c e s o o c i o s o p a r a a s e q u r a r s e q u e al m e n o s
s i e m p r e e x i s t a u n p r o c e s o e n e j e c u c i ó n .
COMUNICACION Y SINCRONIZACION ENTRE PROCESOS
L a c o m u n i c a c i ó n e n t r e p r o c e s o s s e l o a r a u s a n d o v a r i a b l e s , l a s
c u a l e s s e a n a c c e s i b l e s p a r a l o s p r o c e s o s , v i a p a r á m e t r o s d e v a r i a b l e s
o v i a a p u n t a d o r e s . L a s v a r i a b l e s g l o b a l e s s o n f r e c u e n t e m e n t e
e m p l e a d a s p a r a c o m u n i c a c i ó n .
E n a l g u n o s s i s t e m a s o p e r a t i v o s l o s p r o c e s o s q u e e s t á n t r a b a j a n d o
a m e n u d o c o m p a r t e n á r e a s d e m e m o r i a c o m u n e s q u e c a d a u n o p u e d e l e e r y
e s c r i b i r . E s t e r e c u r s o c o m p a r t i d o p u e d e e s t a r e n m e m o r i a o p u e d e s e r
u n a r c h i v o c o m p a r t i d o ; l a l o c a l i z a c i ó n d e l a m e m o r i a c o m p a r t i d a n o
c a m b i a l a n a t u r a l e z a d e l a c o m u n i c a c i ó n o l o s p r o b l e m a s q u e
i n v o l u c r a . P a r a v e r p r a c t i c a m e n f e c o m o t r a b a j a l a c o m u n i c a c i ó n e n t r e
![Page 46: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/46.jpg)
42
p r o c e s o A
p r o c e s o B
E n u n m o m e n t o d a d o s e p o d r í a p r e s e n t a r l a s i g u i e n t e s i t u a c i ó n .
El p r o c e s o A l e e l a v a r i a b l e i n y a l m a c e n a el .-al o r ”, e n u n a
v a r i a b l e l o c a l l l a m a d a ne:; t - f r e e - s l e t . E n e s e i u s t o m o m e n t o 1 1 e q a la
i n t e r r u p c i i n de l r e l o j y el K E R N E L d e c i d e a u e el p r o c e s o A n o s i g a
e j e c u t á n d o s e , as i q u e c o n m u t a al p r o c e s o B. El p r o c e s o B t a m b i é n l e e
l a v a r i a b l e i n y t a m b i é n o b t i e n e u n v a l o r d e ", d e tal m a n e r a q u e
a l m a c e n a el n o m b r e del a r c h i v o 5 i m p r i m i r e n l a e n t r a d a “ del
d i r e c t o r i o y a c t u a l i z a l a v a r i a b l e i n a £?. E n t o n c e s c o n t i n u a
h a c i e n d o o t r a s c o s a s .E n a l g ú n m e m e n t o d a d o el p r o c e s o A r e c u p e r a el c o n t r o l del
p r o c e s a d o r y c o n t i n ú a e n el l u q a r q u e s e q u e d o . F a r a e s t e p r o c e s o l a
s i g u i e n t e e n t r a d a l i b r e d e l d i r e c t o r i o s e e n c u e n t r a e n n e s t - t r e e -
s l c t y e s t a e s 7, p o r l o q u e g u a r d a e n e s t a e n t r a d a el n o m b r e del
a r c h i v o a i m p r i m i r b o r r a n d o l a a n t e r i o r del p r o c e s o B. L a s e n t r a d a s
e n el d i r e c t o r i o s o n c o n s i s t e n t e s i n t e r n a m e n t e p o r l o q u e el p r o c e s o
g u e v a c i a l a c o l a d e i m p r e s i ó n n o s e d a c u e n t a d e l o o c u r r i d o y
c o n t i n ú a e n -forma n o r m a l s u l a b o r , p e r o el p r o c e s e B n u n c a l o q r ó s u
i m p r c s i ó n .
p r o c e s o s c o n s i d e r e m o s u n e j e m p l o s i m p l e p e r o c o m ú n , u n a c o l a d e
i m p r e s i ó n . C u a n d o u n p r o c e s o d e s e a i m p r i m i r u n a r c h i v o , g u a r d a el
n o m b r e del a r c h i v o e n u n a c e l a . O t r o p r o c e s o e x a m i n a l a c e l a
p e r i ó d i c a m e n t e p a r a v e r si h a y a l g ú n a r c h i v o a u e i m p r i m i r y si h a y 1 r»
i m p r i m e r e m o v i e n d o el n o m b r e del a r c h i v o d e l a c o l a d e i m p r e s i ó n .
I m a g i n e q u e n u e s t r o d i r e c t o r i o d e i m p r e s i ó n t i e n e u n o r a n n ú m e r o
d e e n t r a d a s , n u m e r a d a s O , 1 , 2 , e t c c a p a c e s d e g u a r d a r u n n o m b r e d e
a r c h i v o . T a m b i í n i m a g i n e g u e e x i s t e n d o s v a r i a b l e s c o m u n e s , o u t , q u e
a p u n t a al s i g u i e n t e a r c h i v o a i m p r i m i r e i n q u e a p u n t a a la s i g u i e n t e
e n t r a d a l i b r e del d i r e c t o r i o . E n u n m e m e n t o d a d o l a s e n t r a d a s del O al 3 s e e n c u e n t r a n l i b r e s p o r q u e ya s e i m p r i m i e r o n e s t o s a r c h i v o s v
l a s e n t r a d a s d e la 4 a l a 6 s e en c u e n t r a n llenas. Más o m e n o s en f o r m a s i m u l t a n e a los p r o c e s o s A y 3 deciden m a n d a r a i m p r i m i r . La
d i r e c t o r i o
(col a >
![Page 47: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/47.jpg)
43
¿ C ó m o p o d e m o s e v i t a r e s t o s p r o b l e m a s -?- L a c l a v e e s e n c o n t r a r
a l g u n a -forma d e p r o h i b i r q u e m á s d e u n p r o c e s a e s c r i b a o l e a al m i s m o
t i e m p o , e n o t r a s p a l a b r a s l o q u e n o s o t r o s n e c e s i t a m o s e s e x c l u s i ó n
m u t u a , a l g u n a m a n e r a d e q u e si u n p r o c e s o e s t a u s a n d o u n a v a r i a b l e
c o m p a r t i d a a s e g u r a r s e q u e n a d i e m a s l a u s e al m i s m o M e m p o .
E E M m FORI )S. -
C o n el p r o p ó s i t o d e a s e g u r a r e x c l u s i ó n m u t u a s e c r e a u n n u e v o
t i p o d e v a r i a b l e l l a m a d o s e m á f o r o . U n s e m á f o r o t e n d r á u n v a l o r d e
c e r o e n el c a s o d e q u e el r e c u r s o c o m p a r t i d o n o e s t e d i s p o n i b l e y
t e n d r á u n v a l o r p o s i t i v o si e s t a d i s p o n i b l e .
E x i s t e n d o s o p e r a c i o n e s s o b r e u n s e m á f o r o . L a o p e r a c i ó n w a i t e n
u n s e m á f o r o c h e c a si el v a l o r e s m a y o r g u e c e r o . Si e s asi
d e c r e m e n t a el v a l o r del s e m á f o r o y c o n t i n u a . Si e s c e r o el p r o c o s o s h
s u s p e n d e . El c h o c a r el v a l o r , a c t u a l i z a r l o y p o s i b l e m e n t e s u s p e n d e r
el p r o c e s o e s r e a l i z a d o c o m o u n a o p e r a c i ó n indi -i si b l e . T o n e s t o
g a r a n t i z a m o s q u e u n a -s z q u e h a e m p e z a d o l a o p e r a c i ó n s o b r e u n
s e m á f o r o , n i n g ú n o t r o p r o c o s o p u e d a a c c e s a r el s e m á f o r o h a s t a q u e la
o p e r a c i ó n s e c o m p l e t e .
L a o p e r a c i ó n = i g n a l i n c r e m e n t a el v a l o r del = e m á - o r o . y e n
c a s o d e h a b e r u n o o m á s p r o c e s o s s u s p e n d i d o s e n e s e s e m á f o r o , s e
e s c o g e r á u n o p a r a q u e t e r m i n e s u o p e r a c i ó n w a i t . A s i d e s p u é s d e u n
s i g n a l s o b r e u n s e m á f o r o c o n p r o c o s o s s u s p e n d i d o s p u d i e r a s e r t o d a v í a
c e r o , p e r o h a b r á u n p r o c e s o m e n o s s u s p e n d i d o e n él. L o s s e m á f o r o s q u e
s o n i n i c i a l i z a d o s c o n u n v a l o r d e u n o y s o n u s a d o s p o r d o s o m á s
p r o c e s o s p a r a a s e q u r a r q u e s o l o u n o d e e l l o s p u e d a e s t a r d e n t r o d e
u n a r e q i ó n c r i t i c a , s o n l l a m a d o s s e m á f o r o s b i n a r i o s . Si c a d a p r o c e s o
h a c e u n l l a m a d o a w a i t a n t e s d e o n t r a r a l a r e g i e n c r i t i c a y u n
l l a m a d o a s i g n a l al s a l i r d e e s t a q a r a n t i z a m o s la r e c l u s i ó n m u t u a .
El p r o g r a m a d o r d e b e r á a s e g u r a r s e e x c l u s i ó n m u t u a m e d i a n t e el u s o
d e s e m á f o r o s o d e s h a b i l i t a n d o i n t e r r u p c i o n e s t e m p o r a l m e n t e . E s t o s
s e m á f o r o s p u e d e n s e r o p e r a d o s m e d i a n t e l o s s i g u i e n t e s t r e s
p r o c e d i mi e n t o s .
Procedure initsemívar sem : semaphore; initval : integer);
Procedure wait(sem : semaphore);
Procedure signal(sem : semaphore);
s e m - v a r i a b l e s e m á f o r o
i n i t v a l - - a l o r i n i c i a l del s e m á f o r o
U n s e m á f o r o d e b e r á s e r i n i c i a ] i z a d o m e d i a n t e u n l l a m a d o al
p r o c e d i m i e n t o i n i t s e m a p h o r e . El e f e c t o d e 'signal' e s i n c r e m e n t a r el
v a l o r d e l s e m á f o r o e n u n e , e s t e i n c r e m e n t o e s r e a l i z a d o c o m o u n a
o p e r a c i ó n i n d i v i s i b l e . El e f e c t o d e ’H a i t ' e s d e c r e m e n t a r el v a l o r
del s e m á f o r o e n u n o e n el c a s o d e q u e el v a l o r de 1 s e m á f o r o f u e r a n o
n e q a t i vo.
![Page 48: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/48.jpg)
44
L a s i n c r o n i z a c i ó n e n t r e p r o c e s o s tal c o m o la e s p e r a d e u n a
c o n d i c i ó n e n u n a v a r i a b l e c o m p a r t i d a , s e l o g r a m e d i a n t e el u s o d«l
c o n c e p t o e v e n t o . E - i s t e n t r e s o p e r a c i o n e s c o n e v e n t o s .
Frocedi.ire initevent ( va r eievsnt.; s e m s s e m a p h o r e ) ;
F r o c e d u r e await.e : e v e n t ) ;
F r o c e d u r e c a u s e e : even.t) ;
d o n d e :
e - e s 1 a v a r i a b l e t i p o e v e n t o
s e m - e s el s e m a - f o r o a s o c i a d o p a r a la e x c l u s i ó n m u t u a .
U n e v e n t o d e b e r á s e r i n i c i a l i z a d o m e d i a n t e u n l l a m a d o a
'initevent', el c u a l e s t a a s o c i a d o c o n u n s e m á f o r o p a r a l a e x c l u s i ó n
m u t u a . U n 11 a m a d o al p r o c e d i m i e n t o ’await’ r e t a r d a o s u s p e n d e el
p r o c e s o e n e s p e r a d e a l g ú n " e v e n t o " y r e a l i z a u n i m p l í c i t o ’siqnal
al s e m á f o r o a s o c i a d o , e s t o u l t i m o c o n l a i d e a d e d e s b l o q u e a r
a q u e l l o s p r o c e s o s q u e e s t u v i e r a n e n l a col 3 del s e m a t o r o a s o c i a d o cor;
el e v e n t o . U n l l a m a d o al p r o c e d í m i e n t o ' c a u s e ' p o r o t r o p r o c e s o ,
m u e v e t o d o s l o s p r o c e s o s s u s p e n d i d o s i'en e s p e r a de q u e s u c e d i e r a el
e v e n t o ) a l a c o l a a s o c i a d a c o n el s e m á f o r o .
M E N S A J E S .-
U n a f o r m a d e c o m u n i c a r p r o c e s o s e s a t r a v é s d s m e n s a j e s , y a s e a
q u e s e e n v i e u n m e n s a j e d e p r o c e s o a p r o c e s o , o s o e n v i é u n m e n s a j e
a a l q u n m a n e i a d o r p a r a r e a l i z a r u n a t a r e a ( p o r e j e m p l o al c o n t r o l a d o r
d e di s e o ) .
d e s t - e s el p r o c e s o al q u e m a n d a m o s el m e n s a ie.
m e s - e s el m e n s a j e e n v i a d o .
C u a n d o u n p r o c e s o r e a l i z a u n s e n d , el K E F N E L c h e c a p a r a v e r si
el d e s t i n a t a r i o e s t a e s p e r a n d o el m e n s a j e del a u e e n v í a *o d e
c u a l q u i e r a ( A N Y ) ). Si e s a s i s e c o p i a el m e n s a j e de l b u z ó n d e l q u e
e n v í a al b u z ó n del q u e r e c i b e y l o s d o s p r o c e s o s s o n f o r m a d o s e n l a
c o l a d e l i s t o s p a r a e j e c u c i ó n . Si n o e x i s t e d e s t i n a t a r i o e s p e r a n d o el
U n l l a m a d o d e w a i t i m p l i c a u n r e t a r d o p o t e n c i a l . L a c o l a d e
p r o c e s o s e n e s p e r a e s o r d e n a d a d e a c u e r d o a l a s p r i o r i d a d e s d e l o s
p r o c e s o s .
EVENTOS.-
p r c c e d u r e s e n d ' d e s t :p r o c e s s r e t ;v a r m e s :m e s s a q e ) ;
d o n d e :
![Page 49: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/49.jpg)
45
m e n s a j e del q u e l e e n v í a , el p r o c e s o q u e e n v í a el m e n s a j e e s m a r c a d o
c o m o s u s p e n d i d o y p u e s t o e n u n a col 3 d e p r o c e s o s q u e e s p e r a n e n v i a r
m e n s a je.
p r o c e d u r e recei ve v s e n d e r : p r o c e s s r e f ; '-'m R m e s : m e s s a q e ) ;
d o n d e :
s e n d e r - e s el p r o c e s o de l cua l e s p e r a m o s m e n s a j e .
m e s - e s l e v a r i a b l e q u e q u a r d a r í el m e n s a j e a r e c i b i r .
C u a n d o u n p r o c e s o r e a l i z a u n receive. el k EPNFl. c h e c a si a l q ú n
p r o c e s o s e e n c u e n t r a e n c o l a d o t r a t a n d o d e e n v i a r l e . Si e s a s i s e
c o p i a el m e n s a j e del b u z e n d e l n r o c e s o s u s p e n d i d o e n l a col a d e e n v í o
al b u z ó n de l d e s t i n a t a r i o y l o s d o s p r o c e s o s s o n m a r c a d o s c o m o l i s t o s
p a r a e j e c u c i ó n e n l a c o l a d e l i s t o s . Si n o e x i s t e n i n q ú n p r o c e s o
t r a t a n d o d e e n v i a r l e , el r e m i t e n t e s e b l o q u e a h a s t a q u e el m e n s a j e
a r r i b e .
MANEJO DEL RELOJ.-
El p r o c e d i m i e n t o waittime p r o v o c a q u e el p r o c e s o q u e l o 11
e s p e r e u n i n t e r v a l o d e t i e m p o e s p e c i f i c a d a .
P r o c e d u r e w a i t t i m e í t i m e : i n t e q e r ) ;
d o n d e :
t i m e - e s el t i e m p o q u e s e b l o q u e a r é el p r o c e s o .
L a u n i d a d d e t i e m p o e s el ti efe » 1 . 1 8 d e s e q ). E x i s t e n
p r e d e f i n i d o s l o s s i q u i e n t . e s t i p o s d e u n i d a d e s d e t i e m p o :
ti c k = 1;
s e c = 18;
m i n = 1 0 9 2 ;
E s t o s i g n i f i c a q u e e s p o s i b l e e s p e c i f i c a r u n i n t e r v a l o d e t i e m p o
d e l a s i g u i e n t e m a n e r a : w a i t t i m e i 2 * m i n + 1 0 * s e c > ; . N o t e q u e el
i n t e r v a l o d e t i e m p o m á x i m o e s t a d a d o p o r el m á x i m o e n t e r o
r e p r e s e n t a b l e ( t i c k s ) .
MANEJO DE INTERRUPCIONES
El p r o c e d í m i e n t o waitío h a c e q u e el p r o c e s o q u e r e a l i z a el
l l a m a d o e s p e r e p o r u n a i n t e r r u p c i ó n e s p e c i f i c a . U n i c a m e n t e u n p r o c e s o
a l a v e z p u e d e e s p e r a r p o r u n a i n t e r r u p c i ó n y e s t o d e b e r á s e r
g a r a n t i z a d o p o r el u s u a r i o .
![Page 50: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/50.jpg)
46
F r p c e d u r e waitioi typeint. : int ; i n t ¿ 2 5 9 : b > t e ) ;
d o n d e :
t y p e i n t - e s el t i p o d e i n t e r r u p c i ó n q u e s e e s p e r a .
i n t 3 2 5 9 - e s l a l i n e a c o r r e s p o n d i e n t e u s a d a p o r el c o n t r o l a d o r
d e i n t e r r u p c i o n e s 5 2 5 9 .
El p r o c e d i m i e n t o h a b i l i t a la l i n e a c o r r e s p o n d i e n t e d e l r e q i s t r o
d e m a s c a r a d e l 3 2 5 ^ , e n t o n c e s a l g ú n o t r o p r o c e s o a s s e l e c c i o n a d o p a r a
s u e j e c u c i ó n .
C u a n d o l a i n t e r r u p c i ó n o c u r r e s e r e s t a u r a el v a l o r o r i g i n a l d e
la l i n e a c o r r e s p o n d i e n t e de l r e q i s t r o d e m á s c a r a a e l ¿ 2 5 9 . Si e s
n e c e s a r i o s e m a n d a el c o m a n d o d s f i n d e i n t e r r u p c i ó n al 3 2 5 9 . El
p r o c e s o q u e e s p e r a b a l a i n t e r r u p c i ó n e s p u e s t o e n J a c o l a d e p r o c e s o s
l i s t o s p a r a e j e c u c i ó n y el p r o c e s o d e m a y o r p r i o r i d a d e s s e l e c c i o n a d o
p a r a s u e j o c u c i í n .
TEMPORIZADORES
E n a l g u n a s a p l i c a c i o n e s e s n e c e s a r i o c o n t a r c o n p r o c e d i m i e n t o s
g u e s e e j e c u t e n d e s p u é s d e u n t i e m p o d e t e r m i n a d o , p o d r í a p e n s a r s e
q u e c o n l a p r i m i t i v a w a i t t i m e t e n e m o s s o l u c i o n a d o el p r o b l e m a , s i n
e m b a r g o n o s i e m p r e s e d e s e a l a c o n m u t a c i ó n d e c o n t e x t o p o r l o a u e
e s t o i m p l i c a : q u e el p r o c e s o a c t u a l p i e r d a el p r o c e s a d o r , el t i e m n n
p e r d i d o e n l a c o n m u t a c i ó n e t c . U n e j e m p l o d e e s t o p o d r í a s e r «=1 c a s o
d e l c o n t r o l a d o r del d i s c o . D e s p u e s d e u n a c c e s o a d i s c o h a y q u e
e s p e r a r u n t i e m p o r a z o n a b l e c o n el m o t o r p r e n d i d o , p r e v i e n d o a u e n o
t e n g a m o s q u e p r e n d e r y a p a g a r e s t e m o t o r e n c a d a a c c e s o , u n a v e z q u e e x p i r e e s t e t i e m p o s e d e b e r á a p a g a r .
f u n c t i o n createprocedi p r o c e d : i n t e q e r ':p r o c e s s r e f ;
d o n d e :
p r o c e d - e s 1 a d i r e c c i ó n d e p r o c e d i m i e n t o a e j e c u t a r .
Createproced c r e a u n i den.t i f i c a d o r p a r a el p r o c e d i m i e n t o q u e s e
m a n d a r á e j e c u t a r d e s p u é s d e q u e t r a n s c u r r a u n c i e r t o p e r i o d o d e
t i e m p o e s p e c i f i c a d o e n w a i t p r c c e d .
p r o c e d u r e waitproced v p 2 : p r o c e s s r e f ;t : ir.teger; ;
![Page 51: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/51.jpg)
d o n d e :
p 2 e s el i d e n t i f i c a d o r d e p r o c e d i m i e n t o a s j e c u t a r .
t e s el t i e m p o a e s p e r a r a n t e s d e e j e c u t a r l o .
Waitproced f o r m a el i d e n t i f i c a d o r d e p r o c e d i m i e n t o c r e a o o p o r
c r e a t e p r o c e d e n l a c o l a d e p r o c e d i mi e n t o s a ser- e j e c u t a d o s d e s p u é s d e
a g o t a r s u t i e m p o d e e s p e r a .
p r o c e d u r e removeproced( p 2 : p r o c e s s r e f ) ;
d o n d e :
p 2 e s el i d e n t i f i c a d o r del p r o c e d i m i e n t o a r e m o v e r .
Removeproced p e r m i t e r e m o v e r u n t e m D o r i z a d o r a n t e s d e q u e s e
a g o t e s u t i e m p o d e e s p e r a , d e e s t a m a n e r a v a n o s e e j e c u t a el
p r o c e d i mi e n t o .
![Page 52: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/52.jpg)
43
ORGANIZACION DE LOS PROGRAMAS
El u s u a r i o d e l K E R N E L d e b e r á d e c o m p i l a r s u p r o g r a m a i u n t o c o n
l a i n t e r f a c e d e l K E R N E L .
Y a q u e el p r o g r a m a d o r d e b e a s e g u r a r p o r el m i s m o l a e x c l u s i ó n
m u t u a , e s i m p o r t a n t e o r g a n i z a r el p r o g r a m a d e ta l m a n e r a g u e a y u d e a
u s a r s e m á f o r o s d e u n a m a n e r a a d e c u a d a . U n a s o l u c i ó n n a t u r a l e s
c o l e c t a r t o d o s l o s d a t o s , y l o s s e m á f o r o s p a r a e x c l u s i ó n m u t u a y l a s
v a r i a b l e s y e v e n t o s o n u n r e g i s t r o .
t y p e d a t a = r e c o r d
m u t ex : s e m a p h o r e ;
c o n d ; e v e n t ;
e n d ;
v a r d a t a i : d a t a ;
L a s o p e r a c i o n e s e n l o s d a t o s s o n e n t o n c e s r e a l i z a d a s m e d i a n t e el
u s o d e l a i n s t r u c c i ó n w i t h .
w i t h d a t a i d o
b e q i n
w a i t « m u t e x );w h i l e .... d o a w a i t v c o n d ) ;
si g n a l ( m u t e x >;
e n d ;
L o s p r o c e d i m i e n t o s o r d i n a r i o s e n P a s c a l s o n r e e n t r a n t e s . E s t o
s i g n i f i c a q u e e s p o s i b l e c o n s t r u i r u n c o n j u n t o d e p r o c e d i m i e n t o s q u e
o p e r e n e n l o s d a t o s c o m p a r t i d o s , y s i e n d o e s t a l a u n i c a -forma. S o b r e
e s t a i d e a t r a b a j a ol c o n c e p t o d e m o n i t o r .
RELACION ENTRE EL KERNEL Y PASCAL CONCURRENTE
C u a n d o u s a m o s el K E R N E L , e s n e c e s a r i o q u e s e d e c l a r e
e x p l í c i t a m e n t e c u a l q u i e r s e m á f o r o y h a c e r l o s l l a m a d o s d e w a i t y
s i g n a l . U n a d i f e r e n c i a p r i m o r d i a l e s q u e el c o m p i l a d o r d e P a s c a l
C o n c u r r e n t e a s e g u r a l a e x c l u s i ó n m u t u a .
U n a v a r i a b l e t i p o e v e n t o c o r r e s p o n d e a u n a v a r i a b l e d e t i p o
s t a n d a r d q u e u e e n P a s c a l C o n c u r r e n t e , c o n l a s s i g u i e n t e s g r a n d e s
d i f e r e n c i a s : ú n i c a m e n t e u n p r o c e s o a l a v e z p u e d e s e r r e t a r d a d o e n
u n a v a r i a b l e g u e u e y u n l l a m a d o a c o n t i n u e i m p l i c a u n r e g r e s o
i m p l í c i t o d e s d e el p r o c e d i m i e n t e d e e n t r a d a . P a r a el c a s o d e l K E R N E L
s e u t i l i z a u n w i t h p a r a a c c s s a r l o s c a m p o s d e l a v a r i a b l e , m i e n t r a s
![Page 53: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/53.jpg)
4?
q u e e n el P a s c a l C o n c u r r e n t e e s h e c h o i m p l í c i t a m e n t e . P o r e j e m p l o u n
p r o c e d i m i e n t o d e c i e r t o m o n i t o r o s l l a m a d o c o n n o t a c i ó n p u n t o .
o u t b u f t e r . s e n d ( c h ) ;
M i e n t r a s q u e u s a n d o T u r b o P a s c a l el m o n i t o r s e a a c o m o u n
a r q u m e n t o o r d i n a r i o , » a n a l i z a r e j e m p l o n u m e r o d o s ;
s e n d l o u t b u f f e r , ch ) ;
PROCESOS
F a r a l o s p r o c o s o s e n F a s c a i C o n c u r r e n t e e s t a p e r m i t i d o t e n e r
p a r á m e t r o s - f o r m a l e s d e t i p o m o n i t o r p a r a l o q r a r ' a c c e s o s c o r r e c t o s " a
l o s p r o c e d i m i e n t o s . E n el c a s o a e T u r b o F a s c a i c o n el K E R N E L e s t o
c o r r e s p o n d e al u s o d e v a r i a b l e s f o r m a l e s d e l t i p o r e g i s t r o
c o r r e s p o n d i e n t e a l o s m o n i t o r e s . 5 i n e m b a r q o r e c o r d e m o s q u e a l o s p r o c e s o s n o s e l e s p e r m i t e el p a s o d e p a r a m è t r e s , l o cua l s i g n i f i c a
q u e u n p r o c e d i m i e n t o i n t e r f a c e t i e n e q u e s e r d e c l a r a d o p a r a c a d a
p r o c e s o c o n d i f e r e n t e s a r g u m e n t o s p a r a c a d a p r o c e s o .
El u s o d e p r o c o s o s e s d e m o s t r a d o p o r u n e j e m p l o . U n p r o c e s o s e
e n c u e n t r a r e c i b i e n d o c a r a c t e r e s d e u n m o n i t o r t i p o buf-íer. L a
d e s c r i c p i ó n d e e s t a s i t u a c i ó n s e m u e s t r a p r i m e r o p a r a el P a s c a l
C o n c u r r e n t e .
t y p e c o n s u m e r = p r p c s s s í b u f f !b u f f e r >;
v a r c h s c h a r ;
b e q i n
e y e l e
b u f f .r e c e i v e < c h );
e n d
e n d
e n d ;v a r c o n s : c o n s u m e r ;
i n i t o u t b u t r e r ,
c o n s (o u t b u f t e r );
L a c o r r e s p o n d i e n t e d e s c r i p c i ó n c u a n d o s e u s a T u r b o P a s c a l c o n el
K E R N E L s e m u e s t r a a c o n t i n u a c i ó n .
v a r o u t b u f f e r :b u f f e r ;
p r o c é d u r e c o n s u m e r (va r b u f f : buffer.«;
v a r c h s c h a r ;
b e q i n
w h i l e t r u e d o
b e q i n
r e c e i v e ( b u f f , c h > ;
e n d ;
e n d ;
![Page 54: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/54.jpg)
50
p r o c e d u r e c o n s ;
b e g i n
c o n s u m e r * o u t b u t t e r ) ;
end;
ini t b u f t e r v o u t b u f f e r ) ;
c r e a t e p r o c e s s i c o n s , . . . ) ;
IMPLEMENTACION
L a i n t r o d u c c i ó n d e p r o c e s o s c o n c u r r e n t e s i m p l i c a q u e t a n t o el
c ó d i g o , c o m o p r o c e s a d o r y m e m o r i a s o n r e c u r s o s c o m p a r t i d o s .
A h o r a s e c o n s i d e r a el p r o b l e m a d e m a n e j a r y p r o t e q e r e s t o s
r e c u r s o s .
R U T I N A S . C O M P A R T I D A S
U n a r u t i n a ( p r o c e d i m i e n t o o -función) c o m p i l a d o p o r T u r b o P a s c a l
e s r e e n t r a n t e , d e b i d o a g u e P a s c a l p e r m i t e r u t i n a s r e c u r s i v a s . E s t o
s i g n i f i c a q u e d i c h a r u t i n a p u e d e s e r u s a d a p o r v a r i o s p r o c e s o s a l a
v e z . S i n e m b a r g o , n o s e a s e g u r a q u e r u t i n a s d e l a b i b l i o t e c a d e
P a s c a l (po r e j e m p l o s i n , e o s , w r i t o , w r i t e l n , o t e ; s e a n r e e n t r a n t e s ,
a d e m a s T u r b o F a s c a l p e r m i t e e n s a m b l a r c o d i g o e n l i n e a o e n f o r m a
s e p a r a d a y e s t o n o s i g n i f i c a q u e u n a r u t i n a , n o p u e d a s e r u s a d a o n r
v a r i o s p r o c e s o s a l a v e z , a s i q u e c o m o u n r e c u r s o c o m ú n t e n d r á a u e
s e r p r o t e g i d o p o r u n s e m á f o r o .
M A N E J O D E L P R O C E S A D O R
El K E R N E L d e b e r á d e c i d i r c u a l d e l o s p r o c c s c s s e r á e j e c u t a d o .
C o n r e s p e c t o a l a a d m i n i s t r a c i ó n de l p r o c e s a d o r , l o s p r o c e s o s
e x i s t e n t e s p u e d e n s e r d i v i d i d o s d e n t r o d e t r e s g r u p o s , e j e c u t á n d o s e ,
l i s t o s p a r a e j e c u t a r y s u s p e n d i d o s . E n el e s t a d o d e l i s t o s c a r a
e j e c u c i ó n l o s p r o c e s o s c o m p i t e n p o r el p r o c e s a d o r d e a c u e r d o a
p r i o r i d a d .
U n p r o c e s o p u e d e e s t a r e n e s p e r a d e u n a serial d e s i n c r o n i z a c i ó n ,
( s e m á f o r o , e v e n t o , t i e m p o d e t e r m i n a d o , o u n a i n t e r r u p c i ó n ) . Si l a
s e ñ a l d e s i n c r o n i z a c i ó n n o h a a r r i b a d o , el p r o c e s o e s t r a n s f e r i d o al
e s t a d o d e s u s p e n d i d o y el p r o c e s o p a s a al e s t a d o d e l i s t o c u a n d o l a
s e ñ a l a r r i b a . U n a s e ñ a l d e s i n c r o n i z a c i ó n e s e n v i a d a c u a n d o u n
p r o c e s o 11 a m a a s i g n a l o a w a i t , l l e g a u n t i c k d e l r e l o j o s u c e d e u n a
i n t e r r u p c i c n . C u a n d o u n p r o c e s o 11 a m a a c a u s e , l o s p r o c e s o s q u e
e s p e r a b a n tal e v e n t o , s o n t o d o s t r a n s f e r i d o s p a r a e s p e r a r l a s e ñ a l d e
s i n c r o n i z a c i ó n d e l s e m á f o r o a s o c i a d o . P a r a q u e el K E R N E L s e a c a p a z d e
r e a l i z a r l a t r a n s i c i ó n , ol K E R N E L d e b e r á c o n o c e r l a p r i o r i d a d y 1 a s
v a r i a b l e s del p r o c e s o ( a p u n t a d o r d e p i l a , a p u n t a d o r d e p r o g r a m a , e t c . j d e c a d a p r o c o s o .
![Page 55: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/55.jpg)
51
E s c o n v e n i e n t e c r e a r u n recsist.ro p a r a c a d a p r o c e s o .
C u a n d o s e p r o d u c e u n a s e ñ a l d e s i n c r o n i z a c i ó n , ei K E R M E L d e o e r a
e n c o n t r a r al p r o c e s o e n e s p e r a . T o d o s l e s p r o c e s o s e n e s p e r a d e u n a
serial s o n p o r e l l o o r g a n i z a d o s e n l i s t a s d o b l e m e n t e e n c a d e n a d a s .
E x i s t e as i u n a l i s t a d e r e g i s t r o s d e p r o c e s e s a s o c i a d o c o n c a d a
s e m á t o r o (’e n e s p e r a ’i y c o n c a d a e v e n t o ( ' s u s p e n d i d o ' > . T o d o s l o s
p r o c e s o s e n e s p e r a d e u n t i e m p o e s p e c i f i c o s o n c o n s e r v a d o s e n u n a
l i s t a s e n c i l l a (’t i m e q u e u e ’i . E s t o s s o n o r d e n a d o s e n f o r m a a s c e n d e n t e
d e a c u e r d o al t i e m p o d e e s p e r a . L o s r e c o r d s d e p r o c e s o c o n t i e n e n u n
c a m p o (’t i m e 7 ) el c u a l c o n t i e n e el t i e m p o d e e s p e r a r e l a t i v o :il
p r o c e s o p r e c e d e n t e e n l a l i s t a t i m e q u e u e ' . El t i e m p o d e e s p e r a
r e l a t i v o d e l p r i m e r p r o c e s o e n la l i s t a e s r e l a t i v o al t i e m p o
c o r r i e n t e . L o s t i e m p o s d e e s p e r a s o n c a l c u l a d o s p o r el p r o c e d i m i e n t o w a i 11 i me.
S o l a m e n t e s e p e r m i t e q u e u n p r o c e s o e s p e r e p o r u n a d e t e r m i n a d a
i n t e r r u p c i ó n , a s i q u e n o e s n e c e s a r i a u n a l i s t a .
L o s p r o c e s o s e n e s t a d o d e l i s t o s p a r a e j e c u c i ó n s o n t a m b i é n
g u a r d a d o s e n u n a l i s t a (?r s a d y q u e u e ’) y u n a v a r i a b l e ( ' r u n n i n q ' ) d e
t i p o p r o c e s s r e f c o n s e r v a el p r o c e s e e j e c u t á n d o s e .
P a r a el m a n e j o d e l o s t e m p e r i z a d o r e s s e h a c r e a d o u n a c o l a d e
p r o c e d i m i e n t o s e n e s p e r a d e e j e c u t a r s e d e a c u e r d o ai t i e m p o q u e
e s p e r a n y e s m a n e j a d a d e n t r o d e l p r o c e s o c l a c fe do] K E R N E L . U n a v e z
q u e el t i e m p o d e espera, d e u n p r o c e d i mi e n t o h a t e r m i n a d o , e s t e s e
e j e c u t a y r e g r e s a al p r o c e s o d o c k a c o n t i n u a r c o n s u t r a b a j o n o r m a l
(n o e x i s t e c o n m u t a c i ó n d e c o n t e x t o e n u n t e m p o r i z a d o r ). N o e s v á l i d o
g u e d e n t r o d e u n t e m p o r i z a d o r s e l l a m e n p r i m i t i v a s q u e p r o v o q u e n
c a m b i o d e c o n t e x t o e n e s e m e m e n t o .
LA ESTRUCTURA DEL KERNEL
L a e s t r u c t u r a d e l o s d a t o s del K E R N E L e s u n r e c u r s o c o m p a r t i d o >
l a e x c l u s i ó n m u t u a o s g a r a n t i z a d a d e s h a b i 1 i t a n d e i n t e r r u p c i o n e s . El
c ó d i g o de l m ó d u l o K E R N E L s e e n c u e n t r a d i s p o n i b l e e n el a p e n d i c e 6.
![Page 56: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/56.jpg)
52
El s i g u i e n t e e j e m p l o c l a s i c o n o s m u e s t r a c o m o - f u n c i o n a n l a s
p r i m i t i v a s d e l k .ERNEL p a r a g a r a n t i z a r l a si n c r o n i z a c i cr. e n t r e
p r o c e s o s .
C i n c o -filóso-fos p a s a n l a v i d a p e n s a n d o y c o m i e n d o , l o s -fi leso-ios
c o m p a r t e n u n a m e s a c i r c u l a r c o n c i n c o s i l l a s , c a d a u n a p e r t e n e c i e n d o
a u n -íilcso-ío. E n el c e n t r o d e 1 a m e s a h a y u n r.a:ün d e a r r o z y e n l a
m e s a h a y c i n c o p a l i l l o s . C u a n d o u n - F i l ó s o f o p i e n s a , n o í n t e r a c t ú a c o n
s u s c o l e g a s . D e v e z e n c u a n d o a u n r i l ó s c t o l e d a h a m b r e y t r a t a d e
t o m a r l o s d o s p a l i l l o s m á s c e r c a n o s a él »'.los p a l i l l o s g u e e s t á n
e n t r e s u v e c i n o d e l a i z q u i e r d a y el y e n t r e s u s v e c i n o s a e l a
d e r e c h a y é l ) . U n f i l c s o - f o p u e d e t o m a r u n s o l o p a l i l l o a l a v e z .
O b v i a m e n t e el n o p u e d e t o m a r u n p a l i l l o q u e y a e s t a e n l a m a n o d e s u
v e c i n o . c u a n d o u n -filcsc-fo h a m b r i e n t o t i e n e a m b o s p a l i l l o s e n s u
p o d e r , c o m e s i n s o l t a r l o s . C u a n d o h a t e r m i n a d o s u e l t a a m b o s p a l i l l o s
y e m p i e z a a p e n s a r d e n u e v o .
U n a s i m p l e s o l u c i ó n s e l o g r a r e p r e s e n t a n d o c a d a p a l i l l o c o m o u n
s e m á t o r o . U n -filcso-fo t r a t a d e t o m a r u n p a l i l l o m e d i a n t e u n a
o p e r a c i o n w a i t e n e s e s e m á f o r o y l o l i b e r a e j e c u t a n d o u n s i g n a ! e n el
s e m á t o r o .
EJEMPLO 1.-
t P R O G R A M É . D E D E M O S T R A C I O N F I L O S O F O S C O M E L H N E S «
¡En e s t e p r o g r a m a s e d e m u e s t r a el u s o d e s e m a - f o r o s p a r a e x c l u s i ó n m n t n a i
C í k - J -p r o g r a m c o m e l e n t i n p u t , o u t p u t ) ;
C$1 n u c í ec . ex ti-
C$ 1 k e r n c l . p a s i
v a r
a n s w e r : s t r i n g C 2 3 ;
c h o p s t i c k : a r r a y CO. .4 3 c-f s e m a p h o r e ; U n s e m a - f o r o p o r f i 1 óso-f o>
m u t o u : s e m a p h o r e ; ; s e m a - f o r o p a r a e x c l u s i ó n m u t u a e n r e g i o n e s
c r i ti casi-
s t a t u s : a r r a y C O . . 4 1 or s t r i n g C 1 2 3 ;
m , k : i n t e g e r ;
![Page 57: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/57.jpg)
53
p r o c e d u r e t a k e c h o p s t i efe vi : in t e q e r ; ; begi nwai t vmute;: > ; Lentrando a reqicn criticais t a t u s C i ]:^ hambriente * : {.-filosofo i esta hambriento*escesta;te s t vi.1; í t r a t a d e tom a r ¿ p a l i l l o s í-signal vm u t e x ); í s a l i e n d o de r e g i ó n c r i t i c a *wai t (chopst.i ckCi 3 ) ;
end;
' E s c r i b e el e s t a d o e n q u e s e e n c u e n t r a n 1 o s }
¿ f i l ó s o f o s , l e s e s t a d o s p o s i b l e s o n : *
h a m b r i e n t o , c o m i e n d o o p e n s a n d o *
p r o c e d u r e t e s t «i :i n t e g e r ); begi ni -f (statusCi 3 = :'ha m b r i e n t o ’ ) and (stafcusC 1 ef t vi > 3< > ? comi e n d o
and v s t a t u s C r i g h t v i / 3 > c o m i e n d o ’> thenbegi ns t a t u s C i 3 := ’c o m i e n d o ’ ; escesta;si qnal vehopst icfcC i 3 ); e n d ;
e n d ;
f uncti on r i ght viri n t e g e r ; : i n t e g e r ; begi nr i g h t : = vi+1) mod 5; end ;
functi on 1 eft v i : i n t e g e r > : i n t e g e r ; begi nlef t : = v i + 4 ) mod 5; end;
p r o c e d u r e escesta; var n f ; i n teger; begi ngotox y v1,8); for n f : = 0 to 4 do
begi nwri te vstatusCnf 3);
e n d ; writeln; e n d ;
![Page 58: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/58.jpg)
C p r o c e o s j p r o c e d u r e p h i I O ;
b e g i n
p h i 1 o s o p h e r uj) ;
e n d ;
p r o c e d u r e ph i 11 ;
b e g i n
p h i 1 o s o p h e r (1>;
e n d ;
p r o c e d u r e p h i 1 2 ;
b e g i n
p h i 1 o s o p h e r (2;;
e n d ;
p r o c e d u r e p h i 1 3 ;
b e g i n
p h i 1 o s o p h e r (3);
e n d ;
p r o c e d u r e p h i 1 4 ;
b e g i n
p h i 1 o s o p h e r k4 > ;
e n d ;
i t i e m p o p a r a p e n s a r >
I t i e m p o p a r a c o m e r ;
p r o c e d u r e p h i 1 o s o p h e r ( i : i n t e g e r );
b e g i n
w h i l e t r u e d o
b e g i n
w a i t t i m e ( i.r a n d o m ( 5 ; + 3 ; * s e c ; ;
t a k e _ c h o p s t i c k ( i > ;
w a i 1 1 i m e ».rand o m ( 5 > + 3 } * s e c > ;
p u t _c h o p s t i c k <i >;
e n d ;
e n d ;
p r o c e d u r e p u t c h o p s t i ci: i i : i n t e q e r >
b e g i n
w a i t ( mute;; > ;
s t a t u s C i 1 : = ’p e n s a n d o ? ;
e s c e s t a ;
t e s t ( 1 s t t ( i > ) ;
t e s t ( r i g h t ( i ) > ;
s i g n a l ( m u t e x );
e n d ;
54
![Page 59: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/59.jpg)
55
b e g i n .maini-
w h i l e a n s w e r < > ’s i ? d o
b e g i n
w r i t e l n i ’ e m p e z a m o s i s i . n o ) ^ ' ) ;
r e a d 1 n <.a n s w e r ; ;
e n d ;
ini t k e r n e l ;
p û ï = c r e a t e p r o c e s s (o-f s vpni 10> , 1 0 4 8 > ;
p i : = c r e a t e p r o c e s s (o-f s - p h i 1 1 ) , 2 0 4 8 ) ;
p2; = c r e a t e p r o c e s s (o-f s '.phi 1 2) , 2 0 4 5 ; ;
p 3 : = c r e a t e p r o c e s s ( o f s ( p h i 1 3 ) , 2 0 4 B ) ;
p 4 ; = c r e a t e p r o c e s s (o-f s ; p h i 1 4) , 1 0 4 3 : ;
k : = u ;
ini t s e m imute;:, 1 ) ;
-for k : = 0 t o 4 d o
b e g i n
ini t s e m >.c h o p s t i ck C k ], 0) ;
s t a t u s C k 3 := rp e n s a n d o ’ ; e n d ;
c l r s c r ;
w h i 1 e t r u e d o
b e g i n
g e t o x y (1 , 5 ) ;
w r i t e l n (’f il ó s o t o l -íilcso-fol -filóso-fo3 -filc:soto4 -f i 1 ôso-f ö S ’) ;
e s c e s t a ;
w a i t t i m e i 4 * s e c > ;
e n d ;
e n d .
v a r p u , p 1 , p i , p 3 , p 4 : p r o c e s s r e f ;
![Page 60: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/60.jpg)
56
Un m o n i t o r e s u n a c o l e c c i ó n d e p r o c e d i m i e n t o s , v a r i a b l e s y
e s t r u c t u r a s d e d a t o s l o s c u a l e s s e e n c u e n t r a n d e n t r o d e u n m i s m o
m ó d u l o o p a q u e t e . L o s p r o c e s o s p u e d e n 11 a m a r l o ? p r o c e s o s d e n t r o del
m o n i t o r c u a n d o l o d e s e e n , p e r o n o p u e d e n a c c e s a r d i r e c t a m e n t e l a s
e s t r u c t u r a s d e d a t o s i n t e r n a s del m o n i t o r d e s d e p r o c e d i mi e n t o s -fuera
d e él. L o s m o n i t o r e s t i e n e n u n a p r o p i e d a d i m p o r t a n t e q u e l o s h a c e
u s u a l e s p a r a l o g r a r 13 e x c l u s i ó n m u t u a : s o l a m e n t e u n p r o c e s o p u e d e
e s t a r a c t i v o e n el m o n i t o r e n u n m o m e n t o d a d o .
E J E M P L O 2
U n e j e m p l o del u s o d e m o n i t o r e s c o n P a s c a l y K E R N E L e s el
s i q u i e n t e : C o n c i d e r e m o s el p r o b l e m a del p r o d u c t o r - c o n s u m i d o r . D o s
p r o c e s o s c o m p a r t e n u n bu-f-fer c i r c u l a r d e t a m a ñ o f i j o . U n o d e e l l o s el
p r o d u c t o r p o n e i n f o r m a c i ó n d e n t r o del bu-f-fer y el o t r o l o s
c o n s u m e d e a h í . L o s p r o b l e m a s s u r q e n c u a n d o el p r o d u c t o r d e s e a p o n e r
u n n u e v o e l e m e n t o d e n t r o del. bu-f-fer, p e r o l o e n c u e n t r a l l e n o . L a
s o l u c i ó n p a r a el p r o c e s o e s b l o q u e a r s e , y q u e s e a l i b e r a d o c u a n d o s e
r e t i r e u n e l e m e n t o o m á s d e l bu-f-fer. D e m a n e r a s i m i l a r si el
c o n s u m i d o r q u i e r e r e m o v e r u n e l e m e n t o del bu-f-fer y e s t e s e e n c u e n t r a
v a c í o , d e b e r á b l o q u e a r s e y e s p e r a r a q u e el p r o d u c t o r p o n q a u n o o m á s
G r é-f i c a m e n t e el p r o b l e m a s e v e r í a así :
C í k - >
p r o g r a m -fox í i n p u t ,o u t p u t );
t y p ep r o c e s s = i n t e q e r :
i o p r o c e s s = i n t e q e r ;
v a rl e t r e r o : s t r i n q C 5 0 1 ;
i : i n t e q e r ;
a n s w e r : s t . r i n q C 2 3 ;
CÍI n u c l e o . e x t )
Ci I k e r n e l .p a s >
/ * -------------------------------------------------------------------------------------------------------------- */
M e m o r i a t e m p o r a l
i r r e a l a d s e n -forma
![Page 61: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/61.jpg)
57
{ m o n i t o r t i p o b u t t e r }
c o n s t b u t - f e r s i z e = 100;
t y p e c u t t e r =
r e c o r d
g u a r d : s e m a p h o r e ;
c h a n g e : e v e n t ;
c ha r b u t - f : a r r a y C 1. . but-ier si z e J o-f c n a r ;
c o u n t : 0 . . b u t t e r s i z e ;
i n p , o u t p : 1 . . b u t t e r s i z e ;
e n d ;
p r o c e d u r e p u t b u - f t e r iva r bu-f-f : b u t t e r ; c h : c n a r ) ;
b e g i n
w i t h bu-ft d o
b e g i nw a i t ( g u a r d ) ; { e n t r a n d o a r e g i ó n c r i t ica!'
w h i l e c o u n t = b u t - f e r s i z e d o a w a i t - c h a n g e ; ;
c h a r b u t - f C i n p J := ch;
i n p : = ( i n p m o d b u t t e r s i z e * + 1;
c o u n t : = c o u n t + 1 ;
c a u s e ( c h a n g e ) ;si g n a l ( g u a r d ; ; ' s a l i e n d o d e r e g i ó n critical'
e n d ;
e n d ;
p r o c e d u r e g e t b u t - f e r ¡ v a r b u t f : b u t t e r ; v a r c h : c h a r );
b e g i n
w i t h b u i t d o
b e g i nw a i t ( g u a r d ; ; ( e n t r a n d o a r e g i ó n c r i t i c a *
w h i l e c o u n t = 0 d o a w a i t ’. c h a n g e ) ;
c h : = c h a r b u r t C o u t p 3;
o u t p : = ( o u t p m o d b u t - f e r s i z e ; + 1;c o u n t : = c o u n t - 1;
c a u s e ( c n a n g e ; ;
s i g n a l ( g u a r d ) ; ( s a l i e n d o d e r e g i ó n c r i t i c a l
e n d ;
e n d ;p r o c e d u r e i n i t b u t t e r ( v a r b u t i :b u t t e r );
b e g i n
w i t h bu-ft d o
b e g i ni ni t s e m ( g u a r d , 1); i n i t e v e n t '.change, g u a r d ) ;
c o u n t : = 0;
i n p :=1;
o u t p : = 1;
e n d ;
e n d ;
![Page 62: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/62.jpg)
{ p r o c e s o s * { p r o c e s o c o n s u m i d o r ;
p r o c e d u r e d r i v e r ( v a r outbu-f-fer : b u t t e r ) ;
v a r c h s c h a r ;
b e q i n
w h i 1 e t r u e d o
b e g i n
getbu-í -fer ( o u t b u t r e r , c h ) ;
w r i t e ( c h ) ;
e n d ;
e n d ;
í m o n i t o r e s }
v a r p r i n t e r l , p r i n t e r 2 : b u t + e r ;
{ p r o c e s o s }p r o c e d u r e d r i v e r l ; { p r o c e s o c o n s u m i d o r 1>
b e g i n
d r i v e r vpri n t e r i );
e n d ;p r o c e d u r e d r i v e r 2 ; ¡ p r o c e s o c o n s u m i d o r 2 )■
b e g i n
d r i v e r ip r i n t e r 2) ;
e n d ;
v a r p ü , p 1 , p 2 , p 3 , p 4 : p r o c e s s r e t ;
{i**#**************************************************************.;- b e g i n { m a i n } { p r o c e s o p r o d u c t o r ! -
w h i 1 e a n s w e r < > ? si 7 d o
b e g i n
w r i t e l n i ’ e m p e z a m o s ? isi.-no; J ) ; r e a d l n ( a n s w e r );
e n d ;
ini t k e r n e l ;
i ni tbu-f t e r ( p r i n t e r l ) ;
ini tbu-f-f e r (pr i n t e r 2) ;
p O s = c r e a t e p r o c e s s ( o t s ( d r i v e r 1), 1 0 2 4 ) ;
p l : = c r e a t e p r o c e s s ( o t s (dri ver'2) , 1 0 2 4 ) ;
w h i l e t r u e d o
b e g i n
c l r s e r ;
goto;; y (5, 5) ;
w r i t s i n ( ' P R O B A N D O M O N I T O R E S T I P O B U F F E R ’.';
l e t r e r o : = ?T H E Q U I C K B R O W N F O X J U M P E D
-for i : = 1 t o o r d <1s t r e r o t 03) d o
p u t b u i t e r v p r i n t e r 1 , 1 e t r e r o t i l ) ;
1 o t r e r o : = ’O V E R T H E L A Z Y i)0G"5 B A C K
•for i := 1 t o o r d vl e t r e r o t 03) d o
putbu-f-fer i p n n t e r Z , l e t r e r o C i 3 ) ;
e n d ;
e n d .
58
![Page 63: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/63.jpg)
5?
L a c o m u n i c a c i ó n d e p r o c e s o s p u e d e l o g r a r s e m e d i a n t e el i n t e r c a m b i o d e
m e n s a j e s d e t a m a ñ o f i j o . E n ol K E R N E L d i s p o n e m o s d e d o s p r i m i t i v a s p a r a
e n v i a r y r e c i b i r m e n s a j e s ; s e n o y r e c e i v e . C u a n d o u n p r o c e s o e n . i a u n
m e n s a j e a o t r o q u e n o l o e s p e r a , el q u e l o e n v í a s e s u s p e n d e h a s t a q u e el
d e s t i n a t a r i o l o r e c i b e . E n o t r a s p a l a b r a s el K E R N E L s e e v i t a p r o b l e m a s d e
a l m a c e n a r m e n s a j e s q u e n o h a n s i d o r e c i b i d o s . A c o n t i n u a c i ó n s e m u e s t r a u n
e j e m p l o m u y s e n c i l l o d e c o m u n i c a c i ó n d e p r o c o s o s a t r a v é s d e m e n s a j e s .
EJEMPLO 3
€ * k - >p r o g r a m m e n s a j e ( i n p u t , o u t p u t ) ;
v a r
a n s w e r : s t r i n g C 2 H ;
I n u c l e o . e : : t >
Li I k e r n e l . p a s >
v a r p 0 , p l , p 2 : p r o c e s s r s t ;
m e s O , m e s l , m e s 2 : m e s s a g e ;
p r o c e d u r e r e c e p u ;
b e g i n
w h i l e t r u e d o
b e g i n
r e c s i v e i m a i n , m e s ü ) ;
G O r o X Y v. 15, 2 > ;
w r i t e l n (’r e c i b í e s t s m e n s a j e ’);
w r i t e 1 n <. m e s O . m m2 . m 2 c a 1 ) ;
e n d ;p r o c e d u r e r e c e p 1;
b e g i n
w h i l e t r u e d o
b e g i n
r e c e i -e (a n y ,m e s 1);
G Ü T Ü X y ( 1 5 , 6 ) ;
w r i t e l n i •' r e c i b í e s t e m e n s a j e ' ) ;
w r i t e l n ( m e s l .m m 2 . m 2 c a l );
e n d ;
e n d ;
[ E s p e r o m e n s a j e d e p r o c e s o m a i n *
¿ E s p e r o m e n s a j e d e c u a l q u i e r p r o c e s o *
D E M 0 P C 3 . P A S
C o m u n i c a c i ó n d e p r o c e s o s a t r a v é s d e m e n s a j e s .
![Page 64: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/64.jpg)
60
b e g i n { m a i n *
w h i l e a n s w e r < > ' s i 7 d o
b e g i n
w r i t e l n e m p e z a m o s ? v s i / n o ) * ) ; r c a d i n va n s w e r ;;
e n d ;
i n i t k e r n e l ;
p O : = c r e a t e p r o c e s s ( o t s v r e c e p O ) , 1 0 2 4 ) ;
p 1 : = c r e a t e p r o c e s s l o t s í r e c e p 1 ) , 1 0 2 4 ) ; c l r s c r ;
w h i l e t r u e d o
b e g i n
m e s 2 . m _ m 2 . m 2 c a l : = rm e n s a j e p a r a p u ’;
s e n d '.pu, m e s 2 ) ; C E n v i a m e n s a je a p r o c e s o pOi-
m e s 2 . m m 2 . m 2 c a l := ’m e n s a j e p a r a p i ’;
s e n d ( p i , m e s 2 ) ; C E n v i a m e n s a j e a p r o c e s o p l >
e n d ;
e n d .
![Page 65: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/65.jpg)
61
U n a h e r r a m i e n t a q u e p u e d e s e r m u y ú t i l e s el t e m p o r i r a d o r , el c u a l
e j e c u t a u n p r o c e d i m i e n t o q u e d e b e r á e j e c u t a r s e al e x p i r a r u n t i e m p o
p r o g r a m a d o . A d i f e r e n c i a d e l a p r i m i t i v a w a i t t . i m e q u e " d e s p i e r t a " u n
p r o c e s o e n e s t e c a s o n o e x i s t e u n a c o n m u t a c i ó n d e c o n t o x t o . E n el e j e m p l o
s i g u i e n t e s e d e m u e s t r a el u s o d e e s t o s t e m p o r i z a d o r e s .
S e c r e a n d o s t e m p o r i z a d o r e s , l o s c u a l e s s e p r o g r a m a n p a r a e j e c u t a r s e
el p r i m e r o d e s p u é s d e u n s e q u n d o y el o t r o d e s p u é s d e u n m i n u t o . C o m o u n
t e m p o r i z a d o r e s r e m o v i d o d e s p u é s d e q u e e j e c u t o s u t a r e a , e n el e j e m p l o s e
p r o g r a m a n p o r si s o l e s p a r a q u e e s p e r e n e n -forma p e r i ó d i c a .
EJEMPLO 4
D E M 0 P C 4 . F A S
P r o q r a m a q u e d e m u e s t r a el u s o d e t e m p o r i z a d o r e s e n P a s c a J
c o n c u r r e n t e
C*k->p r o g r a m p r o c e d i mi e n t e s Ci n p u t ,o u t p u t );
v a r
a n s w e r : s t r i n g C 2 3 ; i , j : i n t e g e r ;
£il n u c l e o . e x t >
íí l k e r n e l .p a s i
v a r p 3 , p 4 : p r o c e s s r e t ;
p r o c e d u r e m i n u t o s ;
b e g i n
i : = ii+ 1 ) mod 60;
g o t o x y (10,5);w r i t e l n í ?mi ñ u t o s = ' , i ¡ 3 ) ;
w a i t p r o c e d ( p 3 , 1 *mi n );
e n d ;
![Page 66: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/66.jpg)
b e g i n { m a i n }
w h i l e a n s w e r < > ?s i ’ d o
b e g i n
w r i t e l n e m p e z a m o s isi/no)?'); r e a d 1n (a n swer > ; end; i := 0; j : = 0 ;
c l r s c r ; ini t k e r n e l ;p 3 : = c r e a t e p r g c e d ( o t s ( m i n u t o s ) )5 p 4 : = c c e a t e p r o c e d ( c t s v s e g u n d o s ) );
gotoxy(10,5);w r i t e l n i ’mi n u t o s = ’, i : 3 ) ;
w a i t p r p e e d ip4, U s e e ; ;
w a i t p r o c e d vp3, l * m i n ; ;
w h i l e t r u e d o
b e g i n
g o t o x y ( 1 0 , 1 ) ;
writeln('PROBANDO TEMPORIZADORES'); waittime(4*sec); end;
end.
D e b i d o a g u e el K E R N E L m o d i f i c a el v e c t o r d e i n t e r r u p c i ó n ‘i
p a r a l l e v a r u n r e l o j y g u e i o s p r o c e s o s s e a s u m e q u e n u n c a a l c a n z a
s u f i n . L o s p r o g r a m a s s e d e b e r á n t e r m i n a r c o n u n r e i n i c i o d e 1
m á g u i n a p a r a r e s t a b l e c e r e s t e v e c t o r d e i n t e r r u p c i e n .
p r o c e d u r e s e g u n d o s ;
b e g i n
j : = (j + 1) m o d 60;
g o t o x y ( 1 0 , 1 0 ) ;
w r i t e l n s e g u n d o s = 9 , j : 3 ) ;
w a i t p r o c e d i p 4 , 1 * s e c );
e n d ;
![Page 67: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/67.jpg)
63
MANIPULACION DEL HARDWARE DESDE UN LENGUAJE DE ALTO
NIVEL.
![Page 68: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/68.jpg)
64
MANIPULACION DEL HARDWARE DESDE UN LENGUAJE DE ALTO
NIVEL.
S e p e n s ó n e c e s a r i o i n c l u i r e s t e c a p í t u l o a n t e s d e p a s a r a
l a i m p l e m e n t a c i ó n d e u n m a n e j a d o r d e d i s c o y d e i a r l a s b a s e s
n e c e s a r i a s d e " h a r d w a r e " e n el d e s a r r o l 1 o d e i n t e r - í a c e s d e
e n t r a d a / s a l i d a .
M u c h o s d e l o s c i r c u i t o s i n t e q r a d o s d e l a s m i c r o c o m p u t a d o r a s
P C s o n p r o q r a m a b l e s , q e n e r a l m e n t e l o s p r o q r a m a s s o n e l a b o r a d o s e n
e n s a m b l a d o r , s i n e m b a r q o s e h a q u e r i d a h a c e r l o d e s d e u n l e n q u a i e
d e a l t o n i v e l a f i n d e q a n a r c l a r i d a d y m o d u l a r i d a d . A
c o n t i n u a c i ó n s e e x p l i c a n b r e v e m e n t e l a s - f u n c i o n e s d e a l q u n o s d e
l o s c o n t r o l a d o r e s q u e e s t á n i n c l u i d o s e n el h a r d w a r e d e l a P C y
q u e t i e n e q u e v e r c o n l a t r a n s í e r e n c i =* d e i n f o r m a c i ó n a d i s c o
■ flexible. S e i n c l u y e u n p r o q r a m a e n P a s c a l p a r a r e a l i z a r
t r a n s f e r e n c i a a d i s c o .
CONTROLADOR DE INTERRUPCIONES 8259A.
E n la P C el c o n t r o l a d o r d e i n t e r r u p c i o n e s p r o v e e o c h o
l í n e a s d e i n t e r r u p c i ó n c o n p r i o r i d a d e s , c o n e c t a d o c o m o s e m u e s t r a
e n l a s i g u i e n t e -figura:
FIB. V.l CONTROLADOR 8259A Y SUS CONEXIONES.
![Page 69: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/69.jpg)
65
N I V E L E S Ü E I N T E R R U P C I O N .
E x i s t e n o c h o l i n e a s d e p e t i c i ó n d e i n t e r r u p c i ó n . S e
i d e n t i f i c a n p o r 1 R 0 y t i e n e n n ú m e r o s de l u al 7. L a l í n e a O t i e n e
l a p r i o r i d a d m a y o r y p r o v e e u n a i n t e r r u p c i ó n p e r i ó d i c a p a r a u n
r e l o j d e p r o p ó s i t o q e n e r a l . E s t a a c t i v a 1 £ i n t e r r u p c i ó n 8 e n u n
p e r i o d o d e 1 8 . 2 v e c e s p o r s e g u n d o . L a s i g u i e n t e e n p r i o r i d a d e s l a
d e n i v e l 1, l a c u a l r e c i b e l a s p e t i c i o n e s d e i n t e r r u p c i ó n d e s d e
t e c l a d o c u a n d o u n c o d i q o e s e n v i a d o y a c t i v a l a i n t e r r u p c i ó n t i p o
9.
L a s o t r a s o l i n e a s d e p e t i c i ó n p r o v i e n e n qe l c a n a l d e
entrada,- s a l i d a y s o n p r o v i s t a s p a r a i n t e r r u p c i o n e s a e d i s p o s i t i v o s
c o n e c t a d o s a t r a v é s d e r a n u r a s d e e x p a n s i ó n . El n i v e l c o r r e s p o n d e a l a i n t e r r u p c i ó n t i p o O E y e s u s a d a p o r el s i s t e m a d e
d i s c o f l e x i b l e , el n i v e l 7 c o r r e s p o n d e a l i n e a d e p e t i c i ó n d e l a
i m p r e s o r a . El c o n t r o l a d o r d e c o m u n i c a c i ó n a s i n c r o n a e n v í a u n a
p e t i c i ó n d e i n t e r r u p c i ó n a t r a v é s d e l a l i n e a d e n i v e l 4. E n l a
f i g u r a I V . 2 s e p r e s e n t a u n a t a b l a c o n l a s 8 l i n e a s d e i n t e r u p c i ó n
y s u s f u n c i o n e s .
IRCJO
I R Ü 1
I R Q 2
I R Q 3
I R Q 4
I R Q 5
I R Q 6
I R Q 7
Z0-.23H
Z 4 - 2 7 H
2 5 - 2 S H
2 C - 2 F H
3 0 - 3 3 H3 4 - 3 7 H3 Ê - 3 B H
3 C - 3 F H
I N T OtíH
INT 0 9 H I N T O A H
I N T O B H
INT O C H
INT O D H
I N T O E H
T e m p o r i z a d o r
T e c l a d o
C o m u n i c a c i e n
C o m ú n i c a c i o n
D i s c o d u r o
L’i s e o f l e x i b l e
I m p r e s o r a
FIG. V.2 NIVELES DE INTERRUPCION DEL 8259A.
I N I C I A L I Z A C I O N .
A n t e s d e e m p e z a r a f u n c i o n a r n o r m a l m e n t e , s e d e b e n e s c r i b i r
t r e s b y t e s al c o n t r o l a d o r . C a d a u n o e s u n c o m a n d o d e
ini ci al i z a c i ó n ÍCW. E n o r d e n s e r á n I C W 1 , I C W 2 , e ICUI4. El b y t e
I C W 3 s e a p l i c a ú n i c a m e n t e c u a n d o e x i s t e m á s d e u n 8 2 5 9 c o n e c t a d o ,
d e e s t a m a n e r a e n l a P C s e i g n o r a .
![Page 70: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/70.jpg)
66
I C W 1 .
c o n t r o l ador si q u i e n t e :
C o n u n a i n s t r u c c i ó n O U T c o n A O e n c e r o y u 4 e n 1 el
l o i n t e r p r e t a corrio I C W 1 . F a r a el B O S B el fcyte e s el
D 3 = O p a r a e n t r a d a s d i s p a r a d a s p o r -flanco
D 3 = 1 p a r a e n t r a d a s d i s p a r a d a s p o r n i v e l
FIG. V.3 ICW1 PARA UN SOLO B259A.
S e l e c c i o n a n d o c e r o s p a r a v a l o r e s s i n i m p o r t a n c i a (Xj s e
p u e d e n s e l e c c i o n a r e n t r a d a s d i s p a r a d a s p o r f l a n c o e s c r i b i e n d o u n
1 3 H e n el p u e r t o 2 0 H . U n a v e n t a j a d e l a s e n t r a d a s d i s p a r a d a s p o r
f l a n c o e s q u e u n a p e t i c i ó n d e i n t e r r u p c i ó n q u e p e r m a n e z c a e n a l t o
n o a c t i v a u n a s e g u n d a i n t e r r u p c i ó n d e s p u é s d e q u e e s t a h a s i d o
p r o c e s a d a . El v a l o r d e D 4 i d e n t i f i c a I C W 1 , el v a l o r d e DI i n d i c a
u n s o l o c o n t r o l a d o r y 0 0 s i e m p r e e s 1 p a r a el p r o c e s a d o r
8 G 3 S / 3 0 8 c .
IC W 2 . C a d a n i v e l d e i n t e r r u p c i ó n p r o v e e u n t i p o d e
i n t e r r u p c i ó n n. S i n e m b a r g o s e r e g u i e r e n v a l o r e s c o n s e c u t i v o s d e n
p a r a l o s n i v e l e s d e O a 7, e s t o s -.alores p u e d e n s e r s e l e c c i o n a d o s
e n el r a n g o d e O a F F H . L a s e l e c c i ó n s e c o m p l e t a c o n u n c o m a n d o
1 C W 2 c o m o s e m u e s t r a e n l a f i g u r a :
L o s t i p o s d e i n t e r r u p c i e n s o n d e t e r m i n a d o s p o r D / - u 3
D 3 = 1 p a r a e n t r a d a s d i s p a r a d a s p o r n i v e l
FIG. V.4 ICW2 PARA 8259A.
L a d i r e c c i ó n 2 1 H y l o s b i t s d e l b u s d e d a t o s n c e s t á n
i n v o l u c r a d o s e n el di r e c c i o n a m i e n t o . F a r a l a F‘C, el n i v e l O
c o r r e s p o n d e a I N I 0 8 . D e a c u e r d o a e s t o I C W 2 e s 0 8 . C o n e s t a
s e l e c c i ó n el c o n t r o l a d o r a u t o m á t i c a m e n t e g e n e r a l o s n ú m e r o s d e l o s
t i p o s d e i n t e r r u p c i ó n d e l a 0 8 H a l a O F H c o r r e s p o n d i e n t e s a l o s n i v e l e s d e i n t e r r u p c i ó n I R Q ü a I R D 7 .
![Page 71: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/71.jpg)
67
I C W 4 . — P a r a l a P C el b y t e d e I C W 4 e n b i n a r i o e s u O O O Í O O I , >•
l a d i r e c c i ó n ae l p u e r t o d o n d e s e e s c r i b e e s 2 1 H . L e s t r e s b i t m a s
s i g n i f i c a t i v o s s i e m p r e s o n O. L o s v a l o r e s s e l e c c i o n a d o s p a r a Lo s
b i t s 0 3 y D 2 c a u s a n q u e u n a s e ñ a l d e s a l i d a s e a g e n e r a d a e n i a
p a t a S P / E N . E s t a s e ñ a l s e p o n e e n b a j o c u a n d o el t i p o d e
i n t e r r u p c i ó n e s c o l o c a d o e n el b u s d e d a t o s . E s u s a d o e n l a P C
p a r a d e s h a b i l i t a r el " t r a n s c e i v e r “ d e d a t o s , d e e s t a m a n e r a s e ai si a a l a C P U d e o t r o s p e r i f é r i e o s q u e n o s e a n el c o n t r o l a d o r
d e i n t e r r u p c i o n e s . U n 0 l ó q i c o p a r a 01 e s p e c i f i c a el m o d o
n o r m a l del f i n d e i n t e r r u p c i ó n ( E O I ) , y el bit. 0 0 e n 1 i n d i c a
q u e s e t r a t a d e u n p r o c e s a d o r 3 0 8 8 .
El c o n t r o l a d o r e s i n i c i a l i z a d o d u r a n t e l o s p r o c e d i m i e n t o s
q u e s i g u e n a u n e n c e n d i d o d e l s i s t e m a . L a s i n s t r u c c i o n e s d ei n i c i a l i z a c i ó n s o n e x p r e s a d a s e n P a s c a l e n l a s i g u i e n t e f i g u r a :
p o r t t $20.1 - si 3 . I C W 1 >
p o r t C $21 3 = $ 0 3 C I C W 2 J-
p o r t C $ ¿ 1 3 = $ 0 9 ' I CW41
D e s p u e s d e e j e c u t a r e s t a s e c u e n c i a , el c o n t r o l a d o r e s t a l i s t o
p a r a a c e p t a r i n t e r r u p c i o n e s e x t e r n a s .
F I N D E I N T E R F U F C I 0 N \ E 0 I >.
C u a n d o s e h a a c e p t a d o u n a i n t e r r u p c i ó n e x t e r n a p a r a
p r o c e s a r l a , el b i t c o r r e s p o n d i e n t e d e l r e q i s t r o I S R
( i n t e r r u p c i o n e s s i e n d o s e r vidas,' e s p r e n d i d o d e s h a b i l i t a n d o t o d a s l a s i n t e r r u p c i o n e s d e m e n o r p r i o r i d a d . L a s i n t e r r u p c i o n e s d e
p r i o r i d a d m a y o r s o n p e r m i t i d a s . h 1 f i n a l i z a r u n a r u t i n a d e
i n t e r r u p c i ó n d e b e r á i n c l u i r s e u n a o p e r a c i o n q u e a p a q u e el b i t d e l
r e g i s t r o ISR, e s t o s e l o q r a e s c r i b i e n d o u n a p a l a b r a d e c o m a n d o
0 C W 2 . L a d i r e c c i ó n e s 2 0 H c o n l o s b i t s 0 4 y- 0 3 e n O. 5i n o s e h a c e
e s t o , n o s e p o d r á n r e c i b i r n u e v a s i n t e r r u p c i o n e s c o n p r i o r i d a d e s
i g u a l o m e n o r a l a l i n e a i n d i c a d a p o r el b i t de l ISR. L a
i n t r u c c i ó n a i n s e r t a r s e r i a :
p o r t C $ 2 0 3 = $20 ;
E s c r i b i e n d o u n a p a l a b r a d e c o n t r o l G C W 1 e n el r e q i s t r o d e
m á s c a r a d e l 3 2 5 9 < I M R > e s p o s i b l e e n m a s c a r a r c u a l q u i e r a d e l a s H
l i n e a s d e i n t e r r u p c i ó n . U n 1 e n el b i t c o r r e s p o n d i e n t e d e s h a b i l i t a
l a i n t e r r u p c i ó n y u n 0 l a h a b i l i t a .
![Page 72: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/72.jpg)
68
ACCESO DIRECTO A MEMORIA Y SISTEMA DE DISCOS FLEXIBLES
E n 1 a P L i a t r a n s f e r e n c i a d e i n t o r m a c i ó n e n t r e u n ai s e o
- f l e x i b l e >• m e m o r i a s e r e a l i z a p o r u n m é t o d o c o n o c i d o c o m o a c c p ^ n
d i r e c t o a m e m o r i a iD W A j . E s t e m c t p d o e s a m p l i a m e n t e u s a d o e n i a
m a y o r í a d e l o s s i s t e m a s d e c o m p u t o .
A C C E S O D I R E C T O ... M E M O R I A .
U n a f o r m a d e m o v e r i n f o r m a c i ó n a m e m o r i a c o n s i s t e e n m o v e r
p r i m e r o u n a p a l a b r a d e n t r o del a c u m u l a d o r de l p r o c e s a d o r y l u e g o
t r a n s f e r i r l a a l a l o c a l i d a d d e m e m o r i a o a al d i s p o s i t i v o d e E/tí.
U n p r o c e d i m i e n t o m a s r á p i d o e s a t r a v é s d e D M A , m e d i a n t e el c u a l
s e " f l o t a n “ l a s l i n e a s d e d a t o s , d i r o c c i o r . e s y d e c o n t r o l
a p r o p i a d a s d e l C P U p a r a p e r m i t i r q u e u n c o n t r o l a d o r e x t e r n o
t r a n s f i e r a l o s d a t e s d i r e c t a m e n t e e n t r e el peritfirirrj y l a m e m o r i a
v í a el P u s d e d a t o s . S e u t i l i z a D M A e n a l g u n a s o c a s i o n e s p a r a
t r a n s f e r e n c i a s a g r a n v e l o c i d a d d e u n b l o q u e d e m e m o r i a a o t r o , la
c u a l e s u n a o p e r a c i ó n n o r m a l e n q r a n a e s s i s t e m a s c o n m u c h o s
u s u a r i o s c o n c u r r e n t e s . L a s t r a n s f e r e n c i a s s e p u e d e n r e a l i z a r d e
p e r i f é r i c o s a m e m o r i a o d e m e m o r i a a p e r i f é r i c o s y n o s e
i n v o l u c r a n l o s r e g i s t r o s d e l p r o c e s a d o r , p e r o el CFIJ d e b e
p r o g r a m a r l a i n i c i a l i z a c i ó n del c o n t r o l a d o r d e O M m c o n i n f o r m a c i ó n
a p r o p i a d a . A u n a s i s e i n c r e m e n t a l a v e l o c i d a d d e o p e r a c i ó n y s e
r e d u c e el “s o f t w a r e " .
C O N T R O L A D O R D E D M A 3 2 3 7 «
El a c c e s o d i r e c t o a m e m o r i a e s c o n t r o l a d a p o r u n i n t e g r a d o ,
el c u a l t i e n e u n b u f f e r p a r a d a t o s y u n a u n i d a d l ó g i c a d e c o n t r o l
m á s u n c a n a l d e t r a n s f e r e n c i a p a r a c a d a p e r i f é r i c o q u e s e a t i e n d a .
C a d a c a n a l t i e n e s u p r o p i o r e g i s t r o d e d i r e c c i ó n d e m e m o r i a y u n
r e g i s t r o c o n t a d o r d e b y t e s q u e a l m a c e n a el n u m e r o d e byt.es a
t r a n s f e r i r . El c o n t r o l a d o r e s i n i c i a l i z a d o p o r el p r o c e s a d o r . El
c o n t r o l a d o r e m p l e a d o p o r l a PC e s el 8237A, e s p r o g r a m a b l e y t i e n e
c u a t r o c a n a l e s i n d e p e n d i e n t e s d e D M h .
C A N A L E S
El c a n a l O, c o n l a m a y o r p r i o r i d a d d e l o s c u a t r o , e s
p r o g r a m a d o p a r a r e f r e s c a r l a m e m o r i a d i n á m i c a d e l a t a r j e t a m a d r e
y d e l a s t a r j e t a s d e e x p a n s i ó n . L o s m a n e j a d o r e s d e d i s c o u s a n el
c a n a l 2. L o s o t r o s d o s c a n a l e s e s t á n d i s p o n i b l e s p a r a f u t u r o s
p e r i f é r i c o s g u e s e c o n e c t e n .
O P E R A C I O N B A S I C A .
C u a n d o u n p e r i f é r i c o r e q u i e r e s e r v i c i o d e D M A u n a d e l a s c u a t r o l i n e a s i D R E Q ) al c o n t r o l a d o r d e D M A e s a c t i v a d a , el
![Page 73: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/73.jpg)
ó?
c c n t r c l a d o r m a n d a u n a p e t i c i ó n iHRÜ) al c o n t r o l a d o r d e l o s t u s e s
de l s i s t e m a , a s u m i e n d o q u e el b i t q u e e n m a s c a r a el c a n a l n o e s t e
p u e s t o . L a serial d t ' ' h a n d s h a k w " e s e n v i a d a ai g e n e r a d o r d e e s t a d o s
d e e s p e r a d e t a l m a n e r a q u e s e c o m p l e t e el c i c i o d e b u s a c t u a l .
D e s p u é s d e r e c i b i r el r e g r e s o d e la s e ñ a l d e "handsna!-:e" H L D A , el
c i r c u i t o n o t i f i c a al p e r i f é r i c o e n p a r t i c u l a r p o r m e d i o d e la
l í n e a D A C K q u e s u p e t i c i ó n d e D M A h a s i d o r e c o n o c i d a y q u e p u e d e
e m p e z a r a t r a n t e r i r . El c i c l o c a m b i a d e o c i o s o a a c t i v o . L a
t r a n s f e r e n c i a d e u n b y t e r e q u i e r e d e 1 - 0 5 m i c r o s e q u n d o s o c i n c o
p e r i o d o s d e r e l o j . C u a n d o la t r a n s f e r e n c i a t e r m i n o el c o n t r o l a d o r
d e D M A i n a c t i v a la l i n e a H R Q y el p r o c e s a d o r t o m a n u e v a m e n t e ei
c o n t r o l d e l o s b u s e s .
![Page 74: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/74.jpg)
70
FIG V.5 DIAGRAMA A BLOQUES
![Page 75: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/75.jpg)
El c o n t r o l a d o r s e m a e s t r a e n l a -figura a n t e r i o r o m i t i e n d o
a l g u n a s l i n e a s . El i n t e g r a d o t i e n e 1 5 r e g i s t r o s d i r e c c ionafc1 e s ,
u n a u n i d a d t e m p o r i z ? d o r a y d e c o n t r o l , u n a u n i d a d d e c o n t r o l a e c o m a n d o s , u n d e c o d i f i c a d o r d e p r i o r i d a d e s >■ b u f + e r s . E s t e p e r m i t e
q u e d i s p o s i t i v o s e x t e r n o s t r a n s f i e r a n i n f o r m a c i ó n h a c i a o d e s d e el
s i s t e m a d e m e m o r i a s i n la i n t e r v e n c i ó n del p r o c e s a d o r ; t a m b i é n e s
p o s i b l e t r a n s f e r i r d a t o s d e u n a r e g i ó n d e m e m o r i a a o t r a . El
d i s e n o de l c i r c u i t o e s tal q u e el p r o c e s a d o r a s o c i a d o n o r m a l m e n t e
p e r m a n e c e o c i o s o p o r c u a t r o p e r i o d o s d e r e l o j d u r a n t e c a d a
t r a n s f e r e n c i a d e b y t e . E s t e d i s e ñ o p u e d e s e r c a m b i a d o
s u m i n i s t r a n d o u n a serial a l a p a t a d e e n t r a d a R O Y d e s d e u n
g e n e r a d o r d e e s t a d o s d e e s p e r a . A u n q u e n o s e m u e s t r a e n l a f i g u r a
a n t e r i o r , el g e n e r a d o r d e e s t a d o s d e e s p e r a d e la P C i n s e r t a u n
e s t a d o a d i c i o n a l d e e s o e r a e n t o d a s l a s t r a n s f e r e n c i a s d e b y t e s .
M O D O S D E O P E R A C I O N .
A n t e s d e r e a l i z a r u n a t r a n s f e r e n c i a de D M A , l o s c a n a l e s a
u s a r s e d e b e r á n i ni ci al i z ar se. E x i s t e n c u a t r o m o d o s d e o D e r a c i s m T r a n s f e r e n c i a s e n c i l l a , t r a n s f e r e n c i a de b l o q u e , t r a n s f e r e n c i a e n
d e m a n d a y m o d o d e t r a n s f e r e n c i a e n c a s c a d a . E n el m o d o d e
t r a n s f e r e n c i a s e n c i l l a s e t r a n s f i e r e u n s o l o b v t e , s e d e c r e m e n t a
el c o n t a d o r d e p a l a b r a , s e c a m b i a l a d i r e c c i ó n e n 1 y s e l i b e r a n
l o s b u s e s . D e e s t a m a n e r a s e p u e d e t r a n s f e r i r u n b l o q u e d e b y t e s
p o r m e d i o d e t r a n s f e r e n c i a s s e n c i l l a s s u c e s i v a s . E s t e e s el m é t o d o
m á s u s a d o .
L a t r a n s f e r e n c i a d e b l o q u e s e s a l t a m e n t e d e s e a d a p a r a
p e r i f é r i c o s d e g r a n v e l o c i d a d , e n e s t e m é t o d o n o s e l i b e r a n l o s
b u s e s h a s t a n o h a b e r t e r m i n a d o ia t r a n s f e r e c n i a del b l o q u e . S i n
e m b a r g o , l a t r a n s f e r e n c i a d e b l o q u e s n o p e r m i t e g u e o t r o s
d i s p o s i t i v o s u s e n ol E'MA h a s t a q u e el b l o q u e e n t e r o h a l l a s i d o
m o v i d o , y e s t o e s i n a c e p t a b l e e n l a m a y o r í a d e l o s c a s o s . Si s e
u s a r a e n l a P C p o d r í a r e t a r d a r d e m a s i a d o el r e f r e s c o d e m e m o r i a .
E n l a t r a n s f e r e c n i a e n d e m a n d a s e p u e d e n m o v e r d a t o s h a s t a q u e el
d i s p o s i t i v o d e e s h a l l a a g o t a d o s u c a p a c i d a d . El m o d o e n c a s c a d a
s e a p l i c a p a r a c o n e c t a r m ú l t i p l e s c o n t r o l a d o r e s q u e d a n c a n a l e s
a d i c i o n a l e s d e D M A .
T r a n s f e r e n c i a S e n c i l l a
D e b i d o q u e e s m u y c o m ú n y e s el m é t o d o u s a d o e n l a PC,
p o n d r e m o s e s p e c i a l a t e n c i ó n a la t r a n s f e r e c n i a s e n c i l l a . E s a
m e n u d o l l a m a d o c i c l o d e " r o b o " , c o n l o s c i c l o s d e t r a n s f e r e n c i a d e
D M A o b t e n i d o s c o m o u n r o b o al p r o c e s a d o r . E n t r e t r a n s f e r e n c i a s
e x i s t e al m e n o s u n c i c l o c o m p l e t o d e m a q u i n a . E n m u c h o s c a s o s el
c i l c l o d e r o b o o c u r r e c u a n d o el p r o c e s a d o r n o e s t a u s a n d o l o s
b u s e s , e n t a l c a s o l a o p e r a c i ó n d e D M A e s t r a n s p a r e n t e p a r a el
p r o c e s a d o r . S i n e m b a r g o n o e s p o s i b l e h a c e r q u e u n d i s p o s i t i v o
o s p e r e e s t a c o n d i c i ó n p a r a a h o r r a r c i c l o s . L a m a y o r í a d e l o s
p e r i f é r i c o s s o n i n c a p a c e s d e e s p e r a r m a s a l i a d e u n t i e m p o m u y
71
![Page 76: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/76.jpg)
c o r t o e n t r e c a d a t r a n s t e r e n c i s d e b y t e s i n q u e c a u s e u n e r r o r e n
el s i s t e m a . U n e j e m p l o e s el d i s c o f l e x i b l e .
S o l a m e n t e s e t r a n s f i e r e u n b y t e d u r a n t e u n a t r a n s f e r e n c i a . Si
D R E Q s e m a n t i e n e a c t i v a d u r a n t e l a t r a n s f e r e n c i a s e n c i l l a , l a
l í n e a H R D p e r m a n e c e a c t i v a h a s t a d e s p u é s d e l a t.ranf e r e n c i a,
l i b e r a n d o l o s b u s e s a i a C P U - S i n e m b a r g o H R Q u n a v e z m a s s e
a c t i v a e n e s p e r a d e u n n u e v o H L D A p a r a q u e o t r a t r a n s f e r e n c i a
s e n c i l l a o c u r r a . L a o p e r a c i ó n e s r e p e t i d a u n a y o t r a v e z h a s t a q u e
s e h a l l a m o v i d o el n ú m e r o d e b y t e s e s p e c i f i c a d o . M u c h o s
p e r i f é r i c o s , i n c l u y e n d o l o s d i s c o s f l e x i b l e s s o n s u f i c i e n t e m e n t e
l e n t o s p a r a r e q u e r i r m ú l t i p l e s c i c l o s d e b u s e n t r e
t r a n s f e r e n c i as.
O t r o d i s p o s i t i v o s p u e d e n s e r s e r v i d o s c o n D M A e n t r e
t r a n s f e r e n c i a s s e n c i l l a s . Si d o s o m á s p e r i f é r i c o s r e q u i e r e n D M A ,
el d e m a y o r p r i o r i d a d s e s e r v i r á p r i m e r o . C l a r a m e n t e el m á x i m o
r e t a r d o q u e u n p e r i f é r i c o q u e t e n q a l a m a y o r p r i o r i d a d p u e d e t e n e r
e s d e u n c i c l o d e m a q u i n a . L a s i n t e r r u p c i o n e s p u e d e n o c u r r i r e n t r e
t r a n s f e r e n c i a s a c t i v a s d e D M A y e s t a s t r a n s f e r e n c i a s p u e a e n s e r
i m p l e m e n t a d a s d u r a n t e r u t i n a s d e i n t e r r u p c i ó n .
C a d a c a n a l t i e n e u n r e g i s t r o c o n t a d o r d e p a l a b r a s el c u a l e s
d c c r e m e n t a d o c a d a v e z g u e s e m u e v e u n b y t e . C u a n d o e s t e l l e g a a
c e r o , s i g n i f i c a g u e t o d o s l o s b y t e s h a n s i d o m o v i d o s y u n p u l s o d e
f i n d e c u e n t a o s g e n e r a d o ( T C ) . E s t e p u l s o t e r m i n a l a
t r a n s f e r e n c i a . J u n t o c o n el r e g i s t r o d e c u e n t a a c t u a l , c a d a c a n a l
t i e n e u n r e g i s t r o n o d i r e c c i o n a b l e l l a m a d o r e g i s t r o b a s e a e
c u e n t a q u e c o n t i e n e l a c u e n t a i n i c i a l .
C o m o s e m u e s t r a e n la f i g u r a a n t e r i o r l a s e ñ a l EfJP *.E n a o f
p r o c e s s ) e s i n v e r t i d a y a l i m e n t a d a ai c o n t r o l a d o r d e d i s k e t t e c o m o
l í n e a d e c o n t r o l TC i t e r m i n a t e d c o u n t ), n o t i f i c á n d o l e al
c o n t r o l a d o r d e d i s c o f l e x i b l e ( F D C ) , q u e l a o p e r a c i ó n h a
t e r m i n a d o . El F D C e n t o n c e s r e a l i z a a l g u n a s t a r e a s c o m o p o n e r c i e r t o s d a t o s d e n t r o d e a l g u n o s r e g i s t r o p e r a g u e s e a n l e í d o s p o r
el p r o c e s a d o r , s e g u i d o p o r u n a p e t i c i ó n d e i n t e r r u p c i on « I N T O E H )
a t r a v é s d e l a l i n e a 6 del c o n t r o l a d o r d e i n t e r r u p c i o n e s . E s t a
s e n c i l l a i n t e r r u p c i ó n n o t i f i c a a l a C P U g u e l a o p e r a c i o n h a
t e r m i n a d o y g u e c i e r t o s r e s u l t a d o s y c i e r t a i n f o r m a c i ó n s e
e n c u e n t r a d i s p o n i b l e p a r a s e r l e i d o s .
D I R E C C I O N A M I E N T O E N M E M O R I A .
P a r a t o d a s l a s t r a n s f e r e n c i a s s e e n v í a u n a d i r e c c i ó n i n i c i a l
e n m e m o r i a d e s d e l a C P U al c o n t r o l a d o r d e D M A -i a l o s b u s e s d e
d a t o s . D e b i d o a g u e l o s r e g i s t r e s d e d i r e c c i o n e s del c o n t r o l a d o r
d e D M A ú n i c a m e n t e s o n d e Ifc b i t s . S e r e q u i e r e u n r e q i s t r o e x t e r n o
d e c u a t r o b i t s . E s t e e s c o n o c i d o c o m o r e q i s t r o d e p á q i n a ( b i t s
A 1 t - A 16) . S u s b u s e s s o n f l o t a d o s m i e n t r a s m E N e s t e i n a c t i v o .
C a d a c a n a l t i e n e s u r e g i s t r o d e d i r e c c i e n a c t u a l y u n r e g i s t r o n o d i r e c c i o n a b l e d e d i r e c c i ó n i n i c i a l . L a p a l a b r a d e
![Page 77: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/77.jpg)
d i r e c c i ó n a c t u a l e s a u t o m a t i c a m e n t e i n c r e m e n t a d a o d e c r e m e n t a d a
d e s p u e s d e c a d a t r a n s t e r n e c i a d e b y t e .
P R O G R A M A N D O E L 3 2 3 7 A
T o d o s l o p u e r t o s v á l i d o s s o n l i s t a d o s e n la s i g u i e n t e
-f i g u r a :
Di reccifin R e g i s t r o b i t s L e c t u r a . E s c r i t u r a
O O H C h 0 d i r e c c i ó n a c t u a l 16 1 ect.ur a/ e s c r i tiara
0 1 H C h C c o n t p a l a b r a a c t u a l 16 1 ect. ira ' e s c r i tiir a
0 2 H C h 1 d i r e c c i ó n a c t u a l 16 1 e c t ira e s c r i tiira
0 3 H C h :t c o n t p a l a b r a a c t u a l 5 6 1 e c t .t r a.- e s c r i tiira
0 4 H C h 2 d i r e c c i ó n a c t u a l lía l e c t ira. e s c r i tiira
0 5 H C h 2 c o n t p a l a b r a a c t u a l 16 1 e c t .ira. e s c r i tiira
0 6 H C h d i r e c c i ó n a c t u a l 16 1 e c t .ira / e s c r i tiira
0 7 H C h 3 c o n t p a l a b r a a c t u a l 16 1 e c t jr a. e s c r i t: -ra
0 8 H R e g i s t r o d e e s t a d o a s o l o 1 e c t u r a
0 3 H R e g i s t r o d e c o m a n d o s 3 s o l o e s c r i. t u r a
0 9 H R e g i s t r o d e p e t i c i o n e s tí sol o e s c r i. t u r a
O m H R e g i s t r o d e m á s c a r a ( b i t ) a s o l o e s c r i t u r a
O B H R e g i s t r o d e m o d o 5 s o l o e s c r i t u r a
O C H Li m p i a - f i r s t - l a s t ir i s o l o e s c r i t u r a
O D H R e g i s t r o t e m p o r a l a s o l c 1 e c t u r a
O D H Li m p ierra m a e s t r a 0 s o l o e s c r i t u r a
O F H R e g i s t r o d e m a s c a r a 5 s o l o e s c r i t u r a
FIG. V.6 PUERTOS UTILIZADOS POR EL CONTROLADOR DE DMA.
P a r a l a s d i r e c c i o n e s d e Iíd b i t s y r e g i s t r o s d e c o n t a d o r e s , el
b y t e m e n o s s i g n i f i c a t i v o e s a c c e s a d o c u a n d o el b i e s t a b l e
" p r i m e r o / u l t i m o " e s O, el b y t e m a s s i g n i f i c a t i v o e s a c c e s a d o
c u a n d o el b i e s t a b l e e s 1. C a d a a c c e s o d e u n o d e e s t o s r e g i s t r o s
a u t o m á t i c a m e n t e c o n m u t a el e s t a d o del b i e s t a b l e . L a i n s t r u c c i ó n
O U T O C H ,A L l i m p i a el b i e s t a b l e , n o i m p o r t a n d o el v a l o r q u e m L
t e n g a . S e p e r m i t e t a n t o e s c r i t u r a c o m o l e c t u r a p a r a r e g i s t r o s d e
d i r e c c i o n e s y c o n t a d o r e s . L o s v a l o r e s i n i c i a l e s d e b e r á n e s c r i b i r s e
a n t e s d e c o m e n z a r l a t r a n s f e r e n c i a d e D M A .
R e g i s t r o d e e s t a d o . - L o s b i t s 7 a 4 d e l r e g i s t r o d e e s t a d o
e s t a r á n p r e n d i d o s si u n a p e t i c i ó n d e D M A s e e n c u e n t r a p r e s e n t e e n
l o s c a n a l e s r e s p e c t i v o s 3 a O, y l o s b i t s 3 a 0 s e r á n p r e n d i d o s
c a d a v e z g u e u n T C s e a a l c a n z a d o e n el c a n a l c o r r e s p o n d i e n t e /
T o d o s l o s b i t s s o n a p a g a d o s p o r u n a o p e r a c i ó n r e a d o r e s e t .
![Page 78: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/78.jpg)
74
R e g i s t r o d e c o m a n d o s . - L.a d e c a d i f i c a c i ó n dei r e g i s t r o d e
c o m a n d o s s e d a e n l a s i g u i e n e t e -figura:
E i t 7 - e s t a d o d e D A C K 0 b a j o 1 a l t o
B i t ó - e s t a d o d e D R E Ü 0 a l t o 1 b a j o
E i t 5 - a n c h o p u l s o d e e s c r i t u r a 0 n o r m a l 1 e x t e n d i d o
B i t 4 - P r i o r i d a d 0 f i j a i r o t a n t e
B i t 3 - T e m p o r i z a d o r 0 n o r m a l 1 c o m p r i m i d o
E i t 2 - F a t a C,S 0 h a b i l i t a d o L d e s h a b i l i t a d o
B i t 1 - C h 0 a d d r e s s hesld 0 d e s h a b i l i t a d o :1 h a b i l i t a d o
B i t 0 - T r a n s f m e m o r i a a m e m o r i a 0 d e s h a b i l i t a d o :l h a b i l i t a d o
FIG. V.7 DECODIFICACION DEL REGISTRO DE COMANDOS.
El b i t 4 d e l r e g i s t r o d e c o m a n d o s p u e d e s e r p r e n d i d o p a r a
e s t a b l e c e r u n a p r i o r i d a d r o t a n t e . El o r d e n e s s i e m p r e u l 2 3 4 , c o n
el c a n a l O t e n i e n d o s i e m p r e la m a y o r p r i o r i d a d . S i n e m b a r g o
d e s p u é s d e u n a o p e r a c i ó n d e D M A , l o s c a n a l e s s o n p u e s t o s e n la
s i g u i e n t e p r i o r i d a d . L a p o l í t i c a d e p r i o r i d a d e s -fijas o s l a u s a d a
g e n e r a l m e n t e .
R e g í s t r o d e m o d o . -- L a d e c o d i f i c a c i e n ael r e g i s t r o d e m o d o sr
d a ert l a s i g u i e n t e f i g u :ra:
B i t s 7 , 6 - T r a n s f e r e n c i a 0 0 d e m a n d a 0 1 s e n e i l l a 1 0 d e b l o g u e 1:
c a s c a d a .
B i t 5 - D i r e c c i ó n 0 i n c r e m e n t a 1 d e e r e m e n t a
B i t 4 - A u t o i n i c i a l i z a c i ó n 0 h a b i l i t a d a 1 d e s h a b i 1 i t a d a
B i t 3, 2 - 0 0 v e r if y ; 0'1 w r i t e ; 10 r e a d ; 11 n o p e r m i t i d a
B i t 1 , 0 - S e l e c c i ó n d e c a n a l 0 0 . 0 ; 0 1 . 1 ; 10. 2 ; 1 1 . 3
FIG. V.B DECODIFICACION DEL REGISTRO DE MODO.
P a r a r e f r e s c a r l a m e m o r i a e s c r i b i m o s u n 5 S H - 0 1 0 1 1 0 0 0 B ) e n
e s t e r e g i s t r o , e s p e c i f i c a n d o t r a n s f e r e n c i a s e n c i l l a , i n c r e m e n t o e n
d i r e c c i ó n , h a b i l i t a c i ó n d e a u t o i n i c i a l i : a c i ó n , l e c t u r a d e m e m o r i a
y c a n a l c e r o . L a c p e r a c i c n e s u n a p s e u d o l e c t u r a s i n t r a n s f e r e n c i a
d e d a t o s . L a a u t o i n i c i a l i z a c i ó n s e r e g u i e r e p a r a q u e l a c u e n t a
c o n t i n u é i n d e f i n i d a m e n t e . F a r a u n a o p e r a c i ó n d e l e c t u r a a d i s k e t t e
s e e s c r i b i r á u n 4 ¿ H . 0 1 0 0 1 1 0 0 6 ) . E s t e c o m a n d o s e l e c c i o n a el
c a n a l 2 p a r a u n a t r a n s f e r e n c i a s e n c i l l a , c o n i n c r e m e n t o d e
d i r e c c i ó n y a u t o i n i c i a l i z a c i 6 n d e s h a b i l i t a d a .
![Page 79: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/79.jpg)
R e g i s t r o d e F o t i c i e n . - L o s b i t s 1 y 0 d e e s t e r e g i s t r o s o n
u s a d o s p a r a s e l e c c i o n a r u n e d e l o s c u a t r o c a n a l e s d e D M A , y el b i t
3 d a u n a p e t i c i ó n a c t i v a d e D M A si e s t a p r e n d i d o , i o d o s l o s de*méi5
b i t s n o t i e n e n s i g n i f i c a d o . El r e g i s t r o d e p e t i c i ó n p u e d e s e r
u s a d o p a r a i n i c i a l i z a r p o r " s o f t w a r e “ u n a o p e r a c i ó n d e D M A . E s t e
e s l i m p i a d o p o r u n r e s e t y p o r u n f i n d e c u e n t a Ti.:.
R e g i s t r o d e m á s c a r a - - E s t a a s o c i a d o c o n d o s n ú m e r o s d e
p u e r t o s . P u e r t o O A H p a r a e n m a s c a r a r o d e s e n m a s c a r a r u n s o l o
c a n a l , s e l e c c i o n á n d o l o c o n l o s b i t s 1 y 0. U n c e r o e n el b i t 3
a p a g a el b i t d e m a s c a r a y u n 1 l o p r e n d e . L o s b i t s r e s t a n t e s n o
t i e n e n s i g n i f i c a d o . F a r a el r e f r e s c o d e m e m o r i a deberá, e s c r i b i r s e
u n O ú H e n el p u e r t o A H d e s p u e s d e l a i n i c i a l i z a c i ó n . E s t a o p e r a c i ó n l i m p i a l a m á s c a r a del c a n a l c e r o . p e r m i t i e n d o q u e
c o m i e n c e el r e f r e s c o d e m e m o r i a . F a r a la o p e r a c i o n del d i s c o
f l e x i b l e d e b e r á e s c r i b i r s e u n j 2 H e n e s t e m i s m o p u e r t o .
U s a n d o el p u e r t o jF H p o d e m o s e s c r i b i r e n t o d o s l o s b i t s d e
m á s c a r a al m i s m o t i e m p o . 8 i t s 3 , 2 , 1 , y O s e a p l i c a n a l o s
r e s p e c t i v o s n ú m e r o s d e c a n a l , l o s r e s t a n t e s b i t s n o t i e n e nsi gn.i f i c a d o .
![Page 80: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/80.jpg)
CONTROLADOR DE DISCO FLEXIBLE
L a i n t e r f a z a n t r e el " s o f t w a r e " d e l o r o c e s a c i o r y el s i s t e m a
m e c á n i c o d e l d i s c o f l e x i b l e e s p r o v i s t a p o r l a t a r j e t a
c o n t r o l a d o r a d e d i s c o . E s t a t a r j e t a este; d i s e ñ a d a p a r a m a n e j a r
h a s t a c u a t r o u n i d a d e s d e d i s c o f l e x i b l e d e n o m i n a d a s A, 3, C y D.
C o n e x i o n e s d e l a T a r j e t a
E n l a s i g u i e n t e f i g u r a s e m u e s t r a n l a s c o n e x i o n e s d e l a
t a r j e t a c o n t r o l a d o r a d e d i s c o f l e x i b l e :
FIG. V.B CONEXIONES DEL CONTROLADOR DE DISCO FLEXIBLE.
![Page 81: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/81.jpg)
77
L a s s e ñ a l e s d e l e c t u r a , e s c r i t u r a y r e s e t s o n c o n t r o l a d a s p o r
l a C P U ; h a b i l i t a c i ó n d e d i r e c c i ó n h E N e s i n v e r t i d a delg e n e r a d o r d e e s t a d o s d e e s p e r a ; y l a s l í n e a s T C >• DACk¿. p r o p o r c i o n a n l a s s e ñ a l e s d e h a n d s h a k e d e l c o n t r o l a d o r d e D M A .
E s t a s s e i s s e ñ a l e s d e c o n t r o l s o n a l i m e n t a d a s d e l c a n a l d e E / S v í a
el c o n e c t o r d e l a r a n u r a d e e x p a n s i ó n . T a m b i é n de l l a d o i z q u i e r d o
e x i s t e n d o s s a l i d a s de l a d a p t a d o r al c a n a l d e E / E . lina L i n e a d e
p e t i c i ó n d e D M A í D R 0 2 ) al c a n a l 2 de l c o n t r o l a d o r d e D M A y u n a
l í n e a d e i n t e r r u p c i ó n < I R Q 6 ) al n i v e l 6 del c o n t r o l a d o r d e
i n t e r r u p c i o n e s .
![Page 82: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/82.jpg)
78
FIG. V.10 DIAGRAMA A BLOQUES
![Page 83: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/83.jpg)
79
D e n t r o d e l c o n t r o l a d o r d e d i s c o - f l e x i b l e e x i s t e n 8 r e g i s t r o s
a c c e s i b l e s a t r a v é s d e l b u s d e d a t o s ; el r e g i s t r o d e d a t o s y el
r e g i s t r o d e e s t a d o . P a r a l e e r o e s c r i b i r e n el r e g i s t r o d e d a t o s
s e u s a l a d i r e c c i ó n 3 F 5 H y l e e m o s el r e g i s t r o d e e s t a d o e n la
3 F 4 H .
R e g i s t r o d i g i t a l d e s a l i d a ( D O R ) . L o s b i t s O y 1 d e e s t e
r e g i s t r o s e l e c c i o n a n l a u n i d a d A, 8, C o D. P a r a p r e n d e r el m o t o r
d e b e r á m a n t e n e r s e s u l í n e a d e s e l e c c i ó n a c t i v a y l a l í n e a d e
h a b i l i t a c i ó n d e m o t o r d e b e r á e s t a r e n e s t a d o b a j o . U n e s t a d o b a j o
e n Q 2 p o n e el c o n t r o l a d o r e n e s t a d o o c i o s o y r e i n i c i a l i z a s u s
s a l i d a s d e c o n t r o l . L a l í n e a d e p e t i c i ó n d e i n t e r r u p c i ó n y l a d e
p e t i c i ó n d e D M A s o n h a b i l i t a d a s p o r el b i t Q 3 y el m e d i o o c t e t o
m á s a l t o p r o v e e l a s s e ñ a l e s d e h a b i l i t a c i ó n d e l m o t o r . T o d a s l a s
s a l i d a s d e l r e g i s t r o D G R s o n l i m p i a d a s p o r u n r e i n i c i o d e l
si s t e m a .
R e g i s t r o s d e l c o n t r o l a d o r ( F D C ) . E n el r e g i s t r e d e e s t a d o s e
g u a r d a u n b y t e p a r a u n c o n t r o l e f e c t i v o de l p r o c e s a d o r a t r a v é s
d e l p u e r t o 3 F 4 H . S u d e c o d i f i c a c i o n s e m u e s t r a a c o n t i n u a c i ó n :
Ei t 7 ( R e g i s t r o d e d a t o s li s t o ' 7 ) O n o 1 si
B i t Ò ( R e g i s t r o d e d a t o s e s c / l e e ) 0 e s c . 1 lect..
B i t 5 (M o d o N O D M A ) 0 n o 1 si
B i t 4 ( L E C / E 3 C e n p r o g r e s o ) 0 n o 1 si
B i t 3 ( U n i d a d 3 e n m o d o p o s i c i o n a m i e n t o O n o 1 si
B i t 2 ( U n i d a d 2 e n m o d o p o s i c i o n a m i e n t o 0 n o 1 si
B i t 1 ( U n i d a d 1 e n m o d o p o s i c i o n a m i e n t o 0 n o 1 si
B i t 0 ( U n i d a d 0 e n m o d o p o s i c i o n a m i e n to' 0 n o 1 si
FIG V.ll DECÜDIFICACIGN DEL REGISTRO DE ESTADO.
E n e s p e c i a l s o n i m p o r t a n t e s l o s b i t s 7 y 6 . El bit. 7 i n d i c a
c u a n d o e s t a l i s t o el r e g i s t r o d e d a t o s p a r a r e c i b i r o e n v i a r , e s t e
b i t d e b e r á e x a m i n a r s e a n t e s d e l e e r o e s c r i b i r e n e s t e r e g i s t r o .
E n t o n c e s el b i t £ i n d i c a si l a s i g u i e n t e o p e r a c i o n e n el r e g i s t r o
d e d a t o s s e r á u n a l e c t u r a o e s c r i t u r a .
Si el F D C e s p r o g r a m a d o p o r el c o m a n d o S F ' E C I F’r p a r a g u e o p e r e
e n m o d o d e N O D M A , el b i t 5 de l r e g i s t r o d e e s t a d o e s p r e n d i d o e n
el r e g i s t r o d e e s t a d o y ol c o n t r o l a d o r d e d i s c o n o p r o p o r c i o n a r a
l a s e ñ a l d e p e t i c i ó n d e D M A . E n l a P C el c o n t r o l a d o r d e d i s c o
y ti 1 1 „. t r a n s f e r e n c i a p o r D M A 3 y el bit. 5 e s a p a g a d o . El b i t 4
i n d i c a si u n a o p e r a c i ó n d e l e c t u r a o e s c r i t u r a s e e s t a r e a l i z a n d o .
El b i t c o r r e s p o n d i e n t e e n el m e d i o o c t e t o m e n o s s i g n i f i c a t i v o e s
p r e n d i d o p a r a i n d i c a r si l a c o r r e s p o n d i e n t e u n i d a d d e d i s c o s e
![Page 84: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/84.jpg)
80
e n c u e n t r a o c u p a d a m o v i e n d o s u c a b e z a a u n a p i s t a e s p e c i f i c a d a e n
r e s p u e s t a a u n c o m a n d o d e S E E K .
El r e q i s t . r o d e d a t o s de l p u e r t o 3 F 5 H e s u n r e q i s t r o c o n u n a
a r r e g l o d e p i l a . A l g u n o s r e g i s t r o s d e l a p i l a p r o p o r c i o n a n
i n f o r m a c i ó n s u p l e m e n t a r i a al r e g i s t r o d e e s t a d o d e l p u e r t o 3 F 4 H v
o t r o s a l m a c e n a n p a r á m e t r o s , c o m a n d o s y r e s u l t a d o s . T a m b i é n el
r e g i s t r o d e d a t o s e s l a f u e n t e o d e s t i n o de l b u s d e d a t o s d u r a n t e
l a s t r a n s f e r e n c i a s d e D M h . El c o n t r o l a d o r p u e d e e j e c u t a r h a s t a 15
d i f e r e n t e s c o m a n d o s . F a r a l a m a y o r í a d e e l l o s , el r e s u l t a d o
d e p e n d e d e c i e r t o s p a r á m e t r o s a l m a c e n a d o s e n l a p i l a , l o s c u a l e s
d e b e r á n s e r e s c r i t o s d e n t r o d e l r e g i s t r o d e d a t o s a n t e s d e la
e j e c u c i ó n d e l c o m a n d o . L o s p a r á m e t r o s p r o p o r c i o n a n l a
i d e n t i f i c a c i ó n d e l s e c t o r y o t r a i n f o r m a c i ó n .
F r e c o m p e n s a c i e n d e e s c r i t u r a . - L a f i g u r a V . 1 0 m u e s t r a u n
b l o q u e d e p r e c o m p e n s a c i e n d e e s c r i t u r a . E s t a t ó c n i c a e s u s a d a p a r a
r e d u c i r el e f e c t o d e l i n t e r f e r en.ci a d e l f l u j o m a g n é t i c o .
S e p a r a d o r d e d a t o s . L o s b i t s l e i d e s d e u n d i s c o f l e x i b l e
i n c l u y e n n o s o l o b y t e s d e d a t o s s i n o q u e t a m b i é n b i t s d e
s i n c r o n i z a c i ó n y r e l o j , el p a t r ó n e s p e c i f i c a d o d e b i t s u s a d o c o m o
e s p a c i o i n t e r s e c t o r e s v g a p ) , y u n i d e n t i f i c a d o r (ID) c o n
i n f o r m a c i ó n e n f o r m a d e b y t e s i n d i c a n d o , el n u m e r e d e c i l i n d r o , el
n ú m e r o d e c a b e z a , el n u m e r o d e s e c t o r y l a l o n q i t u d f í s i c a . E n u n a
l e c t u r a s e l e e u n s e c t o r c o m p l e t o . El c i c u i t o i n t e g r a d o s e p a r a d o r
d o d a t o s p r o v e e u n a v e n t a n a q u e s e p a r a l o s d a t o s d e t o d a l a
i n f o r m a c i ó n l e i d a . S e p a r a d o s l o s d a t o s e n t r a n al c o n t r o l a d o r F D D
p o r l a p a t a D W , m i e n t r a s q u e t o d o s l o s b i t s q u e f u e r o n l e i d o se n t r a n p o r l a p a t a R O D . U n r e q i s t r o d e c o r r i m i e n t o d e tí b i t s
d e n t r o d e l F D C t r a n s f o r m a c a d a b y t e s e r i e a p a r a l e l o .
C O M A N D O S _ D E L F D C .
A l g u n o s c o m a n d o s r a l e s c o m o F.EAD D A T A , R E A D ID, y F.EAO ^
T R A C K t r a n s f i e r e n d a t o s del discc- f l e x i b l e al s i s t e m a p r i n c i p a l ,
t a m b i é n e x i s t e n v a r i o s c o m a n d o s d e e s c r i t u r a . I n c l u i d o s e n el
j u e g o e s t á n l o s c o m a n d o s 3 C A N q u e c o m p a r a n b y t e a b y t e d a t o s
a l m a c e n a d o s e n m e m o r i a c o n d a t o s l e i d o s de l d i s c c f l e x i b l e . El
c o m a n d o S E E K p o s i c i o n a l a c a b e z a s o b r e l a p i s t a s e l e c c i o n a d a de l
d i s c o f l e x i b l e . O t r o c o m a n d o R E C A L I S R A T E p o s i c i o n a l a c a b e z a s o b r e
l a p i s t a c e r o . El c o m a n d o F Q R M A T A T R A C K f o r m a t e a u n a p i s t a
c o m p l e t a e n u n n ú m e r o d e s e c t o r e s y b y t e s e s p e c i f i c a d o s . A n t e s d e
q u e u n d i s c o f l e x i b l e n u e v o p u e d a s e r u s a d o d e b e r á n f o r m a t e a r s e
t o d a s s u s p i s t a s .
L a i n i c i a l i z a c i ó n d e l s i s t e m a d e d i s c o s e i m p l e m e n t a
m e i d a n t e l a e s c r i t u r a d e u n a s e r i e d e d a t o s al s i s t e m a d e d i s c o .
E s t a o p e r a c i ó n c a u s a q u e s e e s c r i b a n d a t o s a p r o p i a d o s al r e g i s t r o
D O R y q u e el c o m a n d o S P E C I F V s e a e j e c u t a d o . SFFT' I F Y m a n d a al
r e g i s t r o d e d a t o s 3 b y t e s 0 3 H , D F H y 0 2 H . El p r i m e r o d e e s t o s e s
el c o m a n d o , el s e g u n d o i n d i c a u n p a s o d e 2 6 m i l i s e g u n d o s y u n t i e m p o d e d e s e n e r g i z a c i ó n d e c a b e z a d e 4 8 0 mi 1 i s e g u n d o s , el t e r c e r
![Page 85: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/85.jpg)
SI
b y t e i n d i c a u n a e n e r q i z a c i ó n d e c a b e z a d e 4 mi 1 i s e g u n d o s e n
o p e r a c i o n e s d e D M A . El c o m a n d o F E C A L B R A T E d e D e r a e j e c u t a r s e p a r a
c a d a u n i d a d d e d i s c o -1 en i b l e a n t e s d e la p r i m e r ? o p e r a c i ó n d e
l e c t u r a o e s c r i t u r a . E s t e i n i c i a l i z a la p o s i c i ó n o e l a s c a b e z a s
m o v i é n d o l a s h a s t a l a p i s t a c e r o .
R e s u l t a d o s . - D e s p u é s j e s u e j e c u c i ó n l a m a y o r í a d e l o s
c o m a n d o s t i e n e n u n a f a s e d e r e s u l t a d o s , p r o v o c a d a -a s e a p o r l a
f i n a l i z a c i ó n d e l c o m a n d o o p o r a l q u n a c a u s a d e e r r o r . E n e s t a
e t a p a l a C P U p u e d e a n a l i z a r l o s r e s u l t a d o s del r e q i s t r o d e d a t o s
del F D C . E s t o s d e b e r á n ser l e í d o s s i n d e m o r a , u n a v e z q u p l a
c a b e z a e s t a e n l a i d e n t i f i c a c i ó n (10) del c a m p o s i g u i e n t e a l a
ú l t i m a l e c t u r a , d e c t r a m a n e r a el s i s t e m a d e d i s c o t e n d r á q u e s e r
r c i n i c i a l i z a d o a n t e s d e q u e u n n u e v o c o m a n d o s e a a c e p t a d o . U n a v e z
q u e s e c o m p l e t e u n a o p e r a c i ó n , el ID d e l s i g u i e n t e s e c t o r e s
a l m a c e n a d o , e n c u a t r o byt_.es d e r e s u l t a d o s e n r e g i s t r o s d e e s t a d o
d e l a p i l a d e d a t o s .
U N I D A D D E DI E C O F L E X I B L E .
C a d a u n i d a d d e d i s c o f l e x i b l e c u e n t a c o n u n m o t o r d e g i r o y
u n m o t o r d e p a s o , a s o c i a d o s c o n s e ñ a l e s a n a l ó g i c a s y d i g i t a l e s .
U n p u l s o e n l a l i n e a d e e n t r a d a E T E P m o v e r á la c a b e z a m a g n é t i c a
u n a p i s t a h a c i a d e n t r o o h a c i a f u e r a d e p e n d i e n d o del e s t a d o d e l a
l i n e a D I R E C T I O N . C u a n d o l a l í n e a WF.ITE E N A 8 L E e s t a e n e s t a d o a l t o , u n a t r a n s i c i ó n d e b a j o a a l t o e n l a l i n e a d e WF.ITE D A T A c a u s a u n
c a m b i o e n el f l u j o q u e e s g r a b a d o p o r la c a b e z a e n el d i s c o . El el
c a s o d e l e c t u r a , el c a m b i o d e p u l s o e n c o n t r a d o p o r la c a b e z a
g e n e r a u n p u l s o q u e e s s u m i n i s t r a d o a l a l i n e a d e s a l i d a R E A D
D A T A .
E j e m p i es
PROGRAMA DE LECTURA EN DISCO
A c o n t i n u a c i ó n s e m u e s t r a u n p r o q r a m a q u e i n v o l u c r a
t r a n s f e r e n c i a e n t r e d i s c o fien, i b l e y m e m o r i a . E u p o n g a q u e s e
d e s e a n l e e r 1 0 2 4 b y t e s d e l o s s e c t o r e s 3 y 4, p i s t a 9, l a d o O del
d i s c o B, p a r a s e r a l m a c e n a d o s e n 1 a d i r e c c i ó n a c s o l u t a 0500'. ¡H.
L a t r a n s f e r e n c i a d e s e a d a s e p u e d e l o q r a r f a c i l m e n t e c o n l a
I N T 2 5 H ( l e c t u r a a b s o l u t a d e d i s c o ; , l a c u a l u s a la I N T 1 3 H ( e / s
d o d i s c o ) d e l B I D E . E i n e m b a r g o d e s e a m o s d e s c r i b i r el p r o t o c o l o
u s a d o p o r l a C P U , el c o n t r o l a d o r d e D M A , el c o n t r o l a d o r d e d i s c o
f l e x i b l e , el c o n t r o l a d o r d e i n t e r r u p c i o n e s y el r e l o j , r a z ó n
p o r l a c u a l n o u s a m o s el B I O S .
![Page 86: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/86.jpg)
82
p r o g r a m d i s k r e a d ;
c o n s t
d o r = $ 3 f 2; . D i g i t a l o u t p u t r e g i s t e r ! -
-fdc s t a t u s = $ 3 f 4; •»Et a t u s r e g i s t e r 1-
f d c d a t a = $ 3 f 5; Z D a t a r e g i s t e r !
i n t f l a g = $8 0 ; » I n t e r r u p t f l a g ( 1 0 0 0 0 0 0 0 b >
m o t o r w a i t = 37;
:y p e p h y s b y t e s = b y t e ;
.ar
s e e k s t a t u s : b y t e a b s o l u t e $ 0 0 4 0 : $ 0 0 3 e ;
m o t o r s t a t u s : b y t e a b s o l u t e $ 0 0 4 0 : $ 0 0 3 f ;m o t o r c o u n t : b y t e a b s o l u t e $ 0 0 4 0 : $ 0 0 4 0 ;
d i s k e t t e s t a t u s : b y t e a b s o l u t e $ 0 0 4 0 : $ 0 0 4 1 ;
n e c s t a t u s : a r r a y C0..61 or fcyto a b s o l u t e $ 0 0 4 0 : $0u4i;a n s w e r : s t r i n g C 2 3 ;
b u t t e r , a p t bu-f -f e r : p h y s b y t e s ;
i , j : i n t e g e r ;
P r o c e d u r e r e a l a d d r e s s . - E s t e p r o c e d i m i e n t o c a l c u l a l a d i r e c c i ó n
a b s o l u t a e n 2 0 b i t s d e l a l o c a l i d a d d e m e m o r i a a p u n t a d a p o r u n a v a
r i a b l e t i p o a p u n t a d o r . El p r o c e d i m i e n t o ir.line d e T u r b o F a s c a l p e r
m i t e e s c r i b i r c e d i g o d e m a q u i n a e n l i n e a .
p r o c e d u r e r e a l a d d r e s s '.p: p h y s b y t e s ; v a r p 2 : p h y s b y t e s ; ; b e g i n
i n l i n e *:$5D. $ C 4 / $46. $ 0 5 / SBC / $C3. $ £ 1 / SE3. S F O G O / $ 3 3 - $ d 2 / $ S a /
$ 0 7 / $ 0 1 / $ E h / * 0 1 / $ E M / * 0 1 / $ E A / $ 0 1 / $EA. $ 3 C / $C1. $ 3 1 / S E I / $ 0 F F F /
$ 0 1 / $ E 1. $ 0 1 / $ E 1• $ 0 1 / S E I / $ 0 1 - $ E 1/ $ F 3 / $ 1 3 / $C1. S d 3 / $ 0 2 / $ 0 0 /
$ C 4 / $ ó E / $ 0 4 / $2ò/' 5 S ? / $ 5 ò / $ 0 2 / $ 2 ò / * 3 9 / S4ò / $00. $EB/' S E C ) ;
e n d :
- f u n c t i o n p h y s a d d r e s s ' - p : p h > s b y t e s ) : p h y s b y t e s ;
v a r a p t au.-c : p h y s b y t e s :
b e g i nr e a l a d d r e s s .p, a p t au;c) ;
p h y s a d d r e s s : = a p t a u x ;
e n d ;
p r o c e d u r e e n a b l e i n t e r r u p t s ;
b e g i n
i n l i n e i$ t b );
e n d :
p r o c e d u r e d i s a b l e i n t e r r u p t s ;
b e g i r.i n l i n e v$-f a) ;
e n d ;
![Page 87: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/87.jpg)
•f. * * * * * * * * * * * * * * * * * * . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * }
p r o c e d u r e -fdc o u t < a l : b y t e ) ;
b e g i n
w h i l e >. p o r t t F D C S T A T U S ! a n d $ 3 0 ) = 0 do ; . m i e n t r a s n o e s t e l i s t o D R ;■
p o r t C F DC. D A T A ] : = a l ; e s c r i D e e n r e q i s t . r o d e d a t o s i
e n d ;
F u n c t i o n w a i t -For i n t . F e r m i t e s a b e r si > a s e c o m p l e t o u n a o p e r a c i c n e n d i s c o .
8 3
f u n c t i o n w a i t f o r i n t : b o o l e a n ;
v a r i n t e n t o s : i n t e g e r ; b e g i n
e n a b 1 ei n t e r r u p t s ;
i n t e n t o s := 0;
w r i t e l n C"e s p e r a n d o i n t e r r u p c x o n ’) :
w h i l e » . i ntentos < = 2 0 ; a n d i s e e k s t a t u s o r $ 3 0 = O) d o b e g i n
del a y v 1 0 0 ) ;
i n t e n t o s : = i n t e n t o s + 1;
e n d ;
i-f i n t e n t o s = 2 1 t h e n w a i t for i n t := tal seel s e
b e g i n
w r i t e l n í ’s i l l e g o i n t e r r u p c i o n ’);
S E E K _S T A T U S : = S E E K S T A T U S a n d $ 7 t ;
w a i t t o r i n t : = t r u e ; e n d ;
e n d :
p r o c e d u r e d m a s e t u p \b u t t e r :p h y s b y t e s ; ;
v a r a p t au.-: s p h y s b y t e s ;
b e g i n
a p t a u « : = p h y s a d d r e s s (but t e r );
p o r t C $ 0 c 3 := $46 ;
p o r t . C $ 0 b 3 : = $ 4 6 ; [ m o d o d c t r a n m i s i o n s e n c i l l a im
p o r t C $ 8 1 3 : = l o i s e g v a p t . au:; ) > ; C4 b i t s m a s a l t o s d e d i r e c c i ó n ! -
p o r t [ $ 0 4 3 := l o ( o t s ( a p t au:: )); •; 3 b i t s m a s b a j o s d e d i r e c c i ó n !
p o r t C $ 0 4 3 := h i i o t s i a p t au,-: )/; -CS b i t s s i g u i e n t e s d e d i r e c c i ó n !
p o r t C $ 0 5 3 : = $-f-f; { c o n t a d o r d e b y t e s a m o v e r ba.io!
p o r t C $ 0 5 3 : = $ 0 3 ; ( c o n t a d o r d e b y t e s a m o v e r a l t o !
p o r t C $ 0 a l := $ 0 2 ; í l i m p i a c a n a l ¿ d e D M Ai
e n d :
p r o c e d u r e s t a r t m o t o r ;
b e g i n
seek: s t a t u s : = s e e k s t a t u s a n d $7t ;
m o t o r . c o u n t : = 5 * 1 3 ;
p o r t C d o r 3 : = $2d ; -Lprende m o t o r d e u n i d a d Eli
d e i a y ( 4 0 0 ) ;
e n d ;
![Page 88: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/88.jpg)
84
f u n c t i o n r e c a l i b r a t e : b o o l e a n ;
v a r i n t e n t o s : b y t e ;
a u x : b o o l e a n ;
b e g i n
a u x := f a l s e ;
i n t e n t o s : = 0;
w h i 1 o (i n t e n t o s < = 10; a n d i au:; = f a l s e ; d o
b e g i n
f d c o u t (07) ; L c o m a n d o R E C h L I B RATEJ-
f d c o u t ( 01); ¿.uni d a d 3i-
au:: : = w a i t f o r i n t ;
i n t e n t o s : = i n t e n t o s + 1;
e n d ;
r e c a l i b r a t e : = au;:;
e n d ;t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * >
f u n c t i o n s e e k : b o o l e a n ;
v a r i : i n t e g e r ;
b e g i n
fdc o u t (iO f ); ; c o m a n d o S E E K >fdc . p u t ( 01); iuni d a d B3-
fdc o u t ( 0 9 ) ; i p i s t a 9 >
seek. : = w a i t f o r i n t ;
d e l a y ( 2 > ; i r e t a r d o d e 2 mi 1 i s e g u n d o s 5
e n d ;
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * » * * * * * * * * * * * * * * * * * * * * * * * * * ; -
f u n c t i o n l e e : b o o l e a n ;
b e g i n
fdc_ o u t i.ioa) ; L c o m a n d o d e l e c t u r a i
f d c o u t ( $ 0 1 ) ; ; un i d a d b )■
f d c o u t ( 0 9 ) ; i p i s t a 9i
f d c p u t (00) ; i c a b e z a 01-
f d c o u t ( 0 3 ) ; { s e c t o r d e i n i c i o 3>
f d c o u t (.02); i c o d i g o p a r a 5 1 2 b y t e s p o r s e c t o r >
f d c o u t ( 09); { u l t i m o s e c t o r d e l a pistaJ-f d c o u t ( $ 2 a ) ; '»gap # 3 l o n g i t u d = 4 2 b y t e s i-
f d c o u t ( $ f f ) ; { s i n s i g n i f i c a d o i
l e e : = w a i t f o r i n t ;
e n d ;■Z * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *******)•
p r o c e d u r e r e s u l t s ;
v a r i : b y t e ;
b e g i n
f o r i : = 0 t o 6 d o
b e g i nw h i l e ( p o r t C F D C STmTUE!] a n d $ 8 0 ) = 0 do;
n e c s t a t u s t i l : = p o r t t f d c d a t a ] ;
e n d ;
e n d ;{ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; •
![Page 89: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/89.jpg)
p r o c e d u r e a c c e s a d i s c o ;
b e g i n
w r i t e l n (7 dma. s e t u p ’) ;
d m a s e t u p (but-fer ; ;
w r i t e l n * 7 s t a r t m o t o r ' ) ;
s t a r t m o t o r ;
wr i t e l n ( ’r e c a l i b r a t e ' );
if r e c a l i b r a t e t h e n
b e g i n
w r i t e l n (1 s e e k ');
if s e e k t h e n
b e g i n
w r i t e l n (’1 e e ' );
if l e e t h e n
b e g i n
r e s u l t s ;
f o r i : = 0 t o c d o
w r i t e l n t JN E C i T A T U S T 7 . i , ’J s= ,N E C E T A T U S C i ]! 2):
e n d
el s e
w r i t e l n (7 e r r o r e n l e c t u r a ’);
e n d
el s e
w r i t e l n ( ’E R R O R E N P 0 E 1 C I 0 N A M I E N T 0 7 );
w r i t e l n is e g (a p t b u f f e r ) , 7 : , of s i a p t b u f f e r ));
a p t b u f f e r : = b u f f e r ;
f o r i : = l t o 1 0 2 4 d o
b e g i n
w r i t e (c h a r <a p t b u f f e r ));
a p t b u f f e r := p t r ( s e g ( a p t b u f f e r > 9 o f s ( a p t b u f f e r ) + l ) ;
e n d ;
e n d
el s e
w r i t s 1 n < 7 E R R O R E N R E C A L I E R A C I O N 7 > ;
e n d ;Í # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
b e g i n Cmaini-
g e t m e m ( b u f f e r , 1 0 2 4 ) ;
w h i l e a n s w e r < > “s i 7 d o
b e g i n
w r i t e l n (' e m p e z a m o s i s i . n o ) " ?’);
r e a d l n i a n s w e r );
e n d ;
c l r s c r ;
s t a r t m o t o r ;
f o r j := 1 t o 5 d o
b e g i n
w r i t e l n (7 m a i n ’);
a c c e s a di s e o ;
e n d ;
e n d .
L o s m i s m o s n o m b r e s d e v a r i a b l e s u s a d o s p o r el B I O S s o n u s a d o s c o n el a t r i b u t o a b s o l u t e . El b i t m á s s i g n i f i c a t i v o d e S E E K S T A T U S
![Page 90: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/90.jpg)
86
e s u s a d o c o m o u n a b a n d e r a d e i n t e r r u p c i ó n , l a c u a l e s t a d e s i g n a d a
c o m o INT_FLAi3. C u a n d o I N T O E H o s a c t i v a d a p o r el c o n t r o l a d o r d e
d i s c o f l e x i b l e v FDC) a t r a v é s d e l a l i n e a ü del c o n t r o l a d o r d e
i n t e r r u p c i o n e s , e s t e b i t c?s p r e n d i d o . E n e f e c t o IN T O E H n o h a c e
n i n g u n a o t r a c o s a . I N T FL.AG p u e d e s e r a p a g a d a p o r l a i n s t r u c c i ó n
S E E K . _ S T A T U S : = S E E K S T A T U S A N D S 7 F ; . L o s o t r o s b i t s d e S E E K
S T A T U S n o t i e n e n i m p o r t a n c i a p a r a e s t e p r o g r a m a . U n a ve z q u e s e
h a l l a t e r m i n a d o u n a o p e r a c i ó n d e e s c r i t u r a o l e c t u r a e n d i s c o ,
d e b e r á n l e e r s e 7 b y t e s d e r e s u l t a d o de l r e g i s t r e d e d a t o s d e l
F D C .
F r o c e d u r e F D C G U T
E s t e p r o c e d i m i e n t o p e r m i t e e s c r i b i r al r e g i s t r o d e d a t o s .
P r u e b a el b i t 7 d e l r e g i s t r o d e d a t o s p a r a v e r si p e d e m o s
e s c r i b i r , si n o o s a s i r e a l i z a u n a p r u e b a m á s .
F u n c t i o n UIAIT F O R I N T
E s t a f u n c i ó n e s v e r d a d e r a si s e p r o d u j o i a i n t e r r u p c i ó n O E H y
e s f a l s o e n c a s o c o n t r a r i o . I n m e d i a t a m e n t e d e s p u e s d e l a e j e c u c i ó n
d e l o s c o m a n d o s F,ECALIBF;ATE, S E E K y F;EAD, el p r o g r a m a d e b e r á
e s p e r a r h a s t a g u s ol F D C e s t e l i s t o . E s t o s u c e d e p r e n d i e n d o l a b a n d e r a I N T F L A G p o r m e d i o d e l a i n t e r r u p c i ó n O E H .
P r o c e d i m i e n t o D M A _ S E T U P .
L a s s e i s i n s t r u c c i o n e s p o r t al D M A l i m p i a n el b i e s t a b l e
f i r s t / l a s t , e s p e c i f i c a n u n m o d o d e t r a n s f e r e n c i a s e n c i l l a ,
e s c r i b e n l a d i r e c c i ó n r e a l e n 2 0 b i t s d e l a d i r e c c i ó n d e l b u f f e r
e n m e m o r i a a r e c i b i r l o s d a t o s , p o n e n l a c u e n t a d e l r e g i s t r o
c o n t a d o r e n 5 F F H ( 1 0 2 3 5 > T E S ) , y l i m p i a n l a m á s c a r a d e l c a n a l 2 d e D M A .
M o d o d e T r a n s f e r e n c i a b e n c i l l a .
D u r a n t e u n a o p e r a c i ó n d e l e c t u r a o e s c r i t u r a , el c i s c o
f l e x i b l e g i r a a u n a .'el o c i d a d d e 5 r e v o l u c i o n e s p o r s e g u n d o . L a s
e s p e c i f i c a c i o n e s i n d i c a n q u e l o s b i t s s o n l e i d o s a u n p r o m e d i o d e
3 2 0 0 0 b y t e s o 2 5 6 0 0 0 b i t s p o r s e q u n d o . D e t a l m a n e r a q u e eJ
t i e m p o r e q u e r í d o p a r a l e e r u n b y t e o s d e a p r e x i m a d a m e n t e 31
m i c r o s e g u n d o s . U n i c a m e n t e 5 p e r i o d o s d e r e l o j o 1 m i c r c s e g u n d o s o n
n e c e s a r i o s p a r a m o v e r u n b y t e a m e m o r i a , d e j a n d o u n i n t e r v a l o d e
c e r c a d e 3 0 m i c r o - s e g u n d o s e n t r e t r a n s f e r e n c i a s d e D M A .
U s a n d o t r a n s f e r e n c i a s e n c i l l a , el p r o c e s a d o r c o n t r o l a l o s
b u s e s d u r a n t e l o s i n t e r v a l o s e n t r e t r a n s f e r e n c i a s d e b y t e s . A d e m á s
p u e d e n i m p l e m e n t a r s e o t r a s o p e r a c i o n e s d e D M A , e n p a r t i c u l a r el r e f r e s c a m i e n t o d e m e m o r i a a t r a v o s d e l c a n a l O, el c u a l t i e n e l a
m a y o r p r i o r i d a d .
D e s p u e s d e q u e u n c o m a n d o F;EA0 h a s i d o e j e c u t a d o p o r el F D C ,
el p r o c e s a d o r e - . a m i n a l a b a n d e r a I N T F L A G h a s t a q u e i n d i c a q u e
t o d o s l o s b y t e s h a n s i d o t r a n s f e r i d o s . D u r a n t e e s t e i n t e r v a l o d e
t i e m p o , l o s b y t e s e s t á n s i e n d o m o v i d o s d e l d i s c o f l e x i b l e a
![Page 91: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/91.jpg)
37
m e m o r i a a t r a v é s d e D M h . 3 o l o e n el p e r i o d o i n d i v i d u a l d e
t r a n s f e r e n c i a d e u n b y t e el p r o c e s a d o r p e r m a n e c e o c i o s o .
C u a n d o el ú l t i m o d e l o s 1 0 2 4 b y t e h a s i d o t r a n s m i t i d o , el
i n t e g r a d o d e D M A e n v í a u n f i n a l d e c u e n t a ÍC. E s t a a c c i ó n g e n e r a
u n a s e ñ a l a l t a e n ] a p a t a I N T , l a c u a l a c t i v a I N T DíbH del
c o n t r o l a d o r d e i n t e r r u p c i o n e s .
I N T F L A G y a r r a n q u e d e m o t o r
E s i m p o r t a n t e l i m p i a r I N T F L A G a n t e s d e e j e c u t a r l o s c o m a n d o s
R E C A L I B R A T E , S E E K y R E A D , y a q u e d e b e r á s e r p u e s t a e n el m o m e n t o
a p r o p i a d o p o r I N T O E H . El m o t o r B e s p r e n d i d o c o n M O T O R C ü U N =
5 # l c . E s t e v a l o r p e r m i t e q u e el m o t o r p e r m a n e z c a e n c e n d i d o p o r F»
s e g u n d o s , l o c u a l e s c o n s i d e r a b l e m e n t e m a y o r al t i e m p o n e c e s a r i o
p a r a r e a l i z a r l a l e c t u r a . F a r a p r e n d e r el m o t o r s e e s c r i b e el b y t e
2 D H al ÜOF. p a r a h a b i l i t a r l a s s a l i d a s d e l c o n t r o l a d o r IRQt> y D R Q 2
y la e n t r a d a D A C K 2 del c o n t r o l a d o r d e DMA .
F u n c t i o n R E C A L 1B R A T E .
El c o m a n d o F E C A L I B F . A T E e s i m p l e m e n t a d o e s c r i b i e n d o d o s b y t e s
e n s e c u e n c i a e n el r e g i s t r o d e d a t o s del F D C , e s t o s b v t e s s o n
0 7 H , y 0 1 H . El p r i m e r o d e e s t o s b y t e s e s el c d d i q c d e R E ü a L I B R a TF.y el s e g u n d o s e l e c c i o n a l a u n i d a d d e d i s c o . D e s p u é s d e a u e l a
c a b e z a h a s i d o d e s p l a z a d a al tracfe O, el F D C m a n d a u n a
i n t e r r u p c i ó n IN T O E H a t r a v é s d e 1 a l i n e a I R Q o . E s t a o p e r a c i ó n
p r e n d e el b i t 7 d e B E E K E T A T U R , el c u a l c o r r e s p o n d e a I N T F L A G . El
l l a m a d o a W h IT F O F INTERR1.JFT p o n e al p r o c e d i m i e n t o e n u n l a z o d e
e s p e r a h a s t a q u e l a r e c a l i b r a c i ó n s e a h e c h a .
F u n c t i o n 3EE1:
El c o m a n d o 5EE1 m u e v e l a c a b e z a a Ja p i s t a d e s e a d a . D e s p u é s
d e q u e s e m a n d a n l o s t r e s b y t e s al r e q i s t r o d e d a t o s , el p r o q r o m a
d e b e r á e s p e r a r h a s t a q u e el c o m a n d o s e a e j e c u t a d o . E s t o e s
i n d i c a d o p o r el n i v e l ¿ d e i n t e r r u p c i ó n .
O p e r a c i ó n d e L e c t u r a
F a r a a c t i v a r el c o m a n d o R E A D d e b e n e s c r i b i r s e f b y t e s e n el
r e g i s t r o d e d a t o s de l F D C , el s i g n i f i c a d o d e c a d a b y t e s e i n d i c a
e n el p r o g r a m a . El b y t e 3 e s al v a l o r d e q a p d i s t a n c i a e n t r e
s e c t o r e s ) .
El u l t i m o b y t e n o t i e n e s i g n i f i c a d o p e r o d e b e s e r e n v i a d o ,
d e s p u é s d e e s t a o p e r a c i ó n , el c o m a n d o e s e j e c u t a d o
a u t o m á t i c a m e n t e y el p r o q r a m a e n t o n c e s e s p e r a p o r l a s e ñ a l d e l FDC.
q u e i n d i q u e q u e l a o p e r a c i ó n d e l e c t u r a h a t e r m i n a d o .
L a t r a n s f e r e n c i a d e d a t o s p r i n c i p i a c u a n d o el u l t i m o b y t e h a
s i d o r e c i b i d o p o r el r e q i s t r o d e d a t o s y s e u t i l i z a la
t r a n s f e r e n c i a s e n c i l l a . El p r o c e d i m i e n t o l/JA I T F O R I W T E R R H F T p u e d e
s e r r e d i s e f . a d o , p a r a e j e c u t a r p r o c e d i mi e n t o s d e n t r o del l a z o d e
e s p e r a . F o r e j e m p l o , e n t r e t r a n s f e r e n c i a s d e b y t e s e s p o s i b l e l e e r
d a t o s r e c i b i d o s p o r el p u e r t o d e c o m u n i c a c i o n e s o e n v i a r d a t o s a
l a i m p r e s o r a . El ú n i c o r e q u e r i m e n t o e s q u e l a r u t i n a
![Page 92: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/92.jpg)
88
d e b e r á e x a m i n a r p e r i ó d i c a m e n t e l a b a n d e r a I N T FLA13 ai m e n o s u n a
v e z c a d a 3 0 m i c r o s e g u n d o s m i e n t r a s l a l e c t u r a s e r e a l i z a .
R e s u l t a d e s
M i e n t r a s el m o t o r s e e n c u e n t r e p r e n d i d o , d e b e r á n l e e r s e 7 b y t e s d e r e s u l t a d o s de l r e g i s t r o d e d a t o s de l F D C . E s t o s d a t o s
d e b e r á n a l m a c e n a r c e e n m e m o r i a . A n t e s d e c a d a l e c t u r a al r e a i s t r n
d e d a t o s , e s n e c e s a r i o e s p e r a r h a s t a q u e e s t e l i s t o , l o c u a l «=»<=
i n d i c a d o p o r u n u n o e n el b i t 7 d e l r e g i s t r o d e e s t a d o d e l F D C .
L o s r e s u l t a d o s d e b e r á n s e r l e i d o s s i n r e t a r d o , m i e n t r a s la
c a b e z a e s t e l e y e n d o t o d a v í a i n f o r m a c i ó n d e l I D d e l d i s c o f l e x i b l e .
D e o t r a m a n e r a s e r á n e c e s a r i a l a r e i n i c i a l i z a c i ó n d e l F D C a n t e s d e
q u e p u e d a r e a l i z a r s e o t r a e s c r i t u r a o l e c t u r a , l o c u a l s e l o g r a
c o n l o s c o m a n d o s o F E C I F Y y R E C A L IBF;ATE.
L o s r e s u l t a d o s l e i d o s e n o r d e n s o n 1, O, O, 9, 0, 5 y 2. L o s
3 p r i m e r o s b y t e s d e e s t a d o i n d i c a n q u e l a u n i d a d 3 n o t u v o
e r r o r e s . El b y t e 9 i n d i c a l a p i s t a a c t u a l e n l a q u e e s t a
p o s i c i o n a d a l a c a b e z a , el O s i g u i e n t e s i n d i c a l a c a b e z a
c o r r e s p o n d i e n t e al l a d o c e r o , el b y t e 5 i n d i c a el s e c t o r a c t u a l
d o n d e e s t a l a c a b e z a y el u t i m o b y t e 2 i n d i c a 5 1 2 b y t e s p o r
s e c t o r . D e s p u é s d e l e e r el u l t i m o b y t e , el b i t c. d e r e g i s t r o d e
e s t a d o c a m b i a d e l a c e r o p a r a i n d i c a r g u e el r e g i s t r o d e d a t o s
e s t a l i s t o p a r a r e c i b i r u n n u e v o c o m a n d o .
E s c r i t u r a a D i s c o
C o n l i g e r a s m o d i f i c a c i o n e s el p r o g r a m a p u e d e s e r u s a d o p a r a
e s c r i b i r a d i s c o , p e r o d e b e r á i n s e r t a r s e u n r e t a r d o d e . 5 s e g u n d o s
i n m e d i a t a m e n t e d e s p u e s d e p r e n d e r el m o t o r .
E x i s t e n d o s c a m b i o s a d i c i o n a l e s g u e d e b e r á n h a c e r s e e n si
p r o g r a m a . El c o m a n d o 4 6 H e n l a r u t i n a d e D M A d e b e r á c a m b i a r s e p o r
4 A H , y el c o m a n d o d e l e c t u r a al FíjC = c H d e b e r á c a m b i a r s e p o r el
c o m a n d o d e e s c r i t u r a 4 5 H . C o n e s t o s c a m b i o s ei p r o g r a m a e s c r i b i r á
1 0 2 4 b y t e s d e m e m o r i a a l o s s e c t o r e s 3 y 4 d e la p i s t a 9 l a d o o d e
l a u n i d a 3.
![Page 93: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/93.jpg)
IMPLEMENTACION DE UN MANEJADOR DE DISCO.
![Page 94: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/94.jpg)
90
IMPLEMENTACION DE UN MANEJADOR DE DISCO.
C u a n d o s e m a n e j a n p r o c e s o s l a s r u t i n a s d e e n t r a d a . s a l i d a d e b e n
q u e d a r d i s p o n i b l e s p a r a t o d o s , p e r o e n el c a s o d e l a s d e P a s c a l y DflS
e s t a s r u t i n a s n o -fueron p e n s a d a s asi , p o r l o q u e e s n e c e s a r i o d i s e ñ a r
y c o n s t r u i r m a n e i a d o r e s d e e n t r a d a . s a l i d a c o n e s t a f i l o s o f í a .
E n e s t e c a p i t u l o e n e s p e c i a l a b o r d a m o s el p r o b l e m a d e l m a n e . j a d o r
d o d i s c o q u e p u e d e s e r v i r d o b a s e p a r a l a i m p i e m e n t a n fin ael
m a n e j a d o r d e a r c h i v o s , p o r a h o r a s o l o s e c o n s t r u y e n r u t i n a s p a r a
a c c e s a r u n b l o q u e s e l e c c i o n a d o e n d i s c o f l e x i b l e .
T o a o s l o s d i s c o s e s t á n o r g a n i z a d o s e n c i l i n d r o s , c a d a u n o c o n
t a n t a s p i s t a s c o m o c a b e z a s v e r t i c a l e s t e n g a . L a s p i s t a s e s t á n
d i v i d i d o s e n s e c t o r e s , t í p i c a m e n t e e n t r e 8 y 3 2 . T o d o s l o s s e c t o r e s
c o n t i e n e n el m i s m o n u m e r o d e b y t e s . n u n g u e l a s p i s t a s m a s c e r c a n o s a
l a o r i l l a del d i s c o s o n f í s i c a m e n t e m á s g r a n d e s e s t e e s p a c i o e x t r a n o
L o s p a r á m e t r o s del d i s c o f l e x i b l e d e 1 a F C s e m u e s t r a n e n l a
f i g u r a V I . 1. E s t o s s o n l o s p a r á m e t r o s d e l o s d i s c o s d e d o b l e 1 a d o ,
d o b l e d e n s i d a d u s a d o s p o r el m a n e j a d o r d e d i s c o c o n s t r u i d o . El
m a n e . i a d o r u t i l i z a b l o q u e s d e 1 0 2 4 b y t e s , as í q u e l o s b l o q u e s u s a d o s
p o r e s t e '’s o f t w a r e " c o n s i s t e n d e d o s s e c t o r e s c o n s e c u t i v o s , l o s
c u a l o s s i e m p r e s o n l e i d o s o e s c r i t o s c o m o u n a u n i d a d ( c l u s t e r ; .
m s e c
FIG VI.1 PARAMETROS DISCO FLEXIBLE IBM PC-
El t i e m p o d e l e c t u r a o e s c r i t u r a d e u n b l o q u e a d i s c o ost.a
d e t e r m i n a d o p o r t r e s f a c t o r e s : el t i e m p c d e p o s i c i o n a m i e n t o d e l a
c a b e z a e n el c i l i n d r o d e s e a d o , el t i e m p o d e r o t a c i ó n ^ t i e m p o
n e c e s a r i o p a r a q u e el s e c t o r d e s e a d o q i r e d e b a j o d e l a c a b e z a ; , y el
t i e m p o r e q u e r i d o p a r a l a t r a n s f e r e n c i a . P a r a l a m a y o r í a d e l o s
s i s t e m a s el m á s s i g n i f i c a t i v o e s el d e p o s i c i o n a m i e n t o d e l a c a b e z a .
N ú m e r o d e c i l i n d r o s : 4 0
P i s t a s p o r c i l i n d r o : 2
S e c t o r e s p o r p i s t a : 9
S e c t o r e s p o r d i s c o : 7 2 0
B y t e s p o r s e c t o r : 5 1 2
B y t e s p o r d i s c o : 3 c ó 6 4
T i e m p o d e p e s i c i o n a m i e n t o ( v e c i n o ) ó
T i e m p o d e p e s i ci o n a m i e n t o . p r o m e d i o ) 7 7
T i e m p e d e r o t a c i fin 2 0 0
T i e m p o d e a r r anque.- p a r a d a d e m o t o r 2 5 0
T i e m p o d e t r a n s t e r e n c i a 1 s e c t o r 2 2
![Page 95: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/95.jpg)
M A N E J O D E . E R R O R E S
L o s d i s c o s f l e x i b l e s e s t á n e x p u e s t o s a u n a g r a n - a r i e d a d d o
e r r o r e s . A l g u n o s d e l o s m a s c o m u n e s s o n :
- E r r o r e s d e p r o q r a m a c i c n ( s o l i c i t a r u n s e c t o r i n e x i s t e n t e )
- E r r o r e s d e v e r i f i c a c i ó n «.por e j e m p l o c a u s a d o p o r c a b e z a
s u e i a )
- E r r o r d e . - o r i f i c a c i ó n p e r m a n e n t e i b l o c k f í s i c a m e n t e d a ñ a d o )
- E r r o r d e p o s i c i o n a m i e n t o ^ p e r e j e m p l o l a c a b e z a f u e e n v i a d a al
c i l i n d r o e p e r o f u é al 7)- E r r o r d e l c o n t r o l a d o r «el c o n t r o l a d o r s e r e h ú s a a a c e p t a r
c o m a n d o s ; .
E s t a r e a d e l m a n e j a d o r d e c i s c o c o n t r o l a r e s t o s e r r o r e s l o m e j o r
p o s i b l e .
L o s e r r o r e s d e p r o g r a m a c i ó n s u c e d e n c u a n d o el m a n e j a d o r J e d i c e
al c o n t r o l a d o r que- b u s q u e u n c i l i n d r o i n e x i s t e n t e , l e a c e u n s e c t o r
i n e x i s t e n t e , u s e u n a c a b e z a i n e x i s t e n t e o t r a n s f i e r a d e o h a c i a u n a
l o c a l i d a d d e m e m o r i a i n e x i s t e n t e . L a m a y o r í a d e l o s c o n t r o l a d o r e s
c h e c a n l o s p a r á m e t r o s .
L o s e r r o r e s d e c h e c k s u m s o n c a u s a d o s p o r c a b e z a s s u c i a s . L a
m a y o r í a d e l a s - e c o s e s t e e r r o r p u e d e s e r c o r r e g i d o i n t e n t a n d o la
o p e r a c i ó n v a r i a s v e c e s . Si el e r r o r p e r s i s t e h a y q u e m a r c a r el b l o q u e
c o m o m a l o y h a b r á q u e e v i t a r l o .
U n a m a n e r a d e e v i t a r l o s b l o q u e s d a ñ a d o s e s e s c r i b i r u n p r o g r a m a
m u y e s p e c i a l q u o -forme u n a l i s t a c o n l o s b l o q u e s m a l o s y c u i d a d o s a m e n t e l o s m a n e j e e n u n a r c h i v o d e b l o q u e s d a ñ a d o s . U n a v e z
q u e e s t e a r c h i v o h a s i d o c r e a d o , el l o c a l i z a d o r d e d i s c o n o l o s p o d r a
u s a r y a q u e s e m a r c a r á n c o m o o c u p a d o s .
L o s e r r o r e s d e p o s i c i o n a m i e n t o s o n p r o v o c a d o s p o r p r o b l e m a s
m e c á n i c o s o n l a c a b e z a y el c o n t r o l a d o r s e b r i n c a p i s t a s a l a h o r a d e
p o s i c i o n a r l a c a b e z a . F a r a r e a l i z a r el p o s i c i o n a m i e n t o d e l a c a b e z a
( s e e k > , s e p r o p o r c i o n a u n a s e r i e d e p u l s o s al m o t o r d e p a s o , u n
p u l s o p o r c a d a c i l i n d r o h a s t a l l e q a r al c i l i n d r o d e s e a d o . C u a n d o l a
c a b e z a a l c a n z a s u d e s t i n o , el c o n t r o l a d o r l e e el n u m e r o d e c i l i n d r o
a c t u a l -.escrito c u a n d o el d i s c o f u é f o r m a t e a d o ) , si l a c a b e z a e s t a e n
u n l u g a r e r r e n e o s u c e d í a u n e r r o r d e p o s i c i o n a m i e n t o .
A l g u n o s c o n t r o l a d o r e s c o r r i g e n l o s e r r o r e s d e p o s i c i o n a m i e n t c
a u t o m á t i c a m e n t e , p e r o o t r o s ( i n c l u y e n d o el d e l a I B M P C ) ú n i c a m e n t e
p r e n d e n u n b i t d e e r r o r y d e j a n el r e s t o al m a n e i a d e r d e d i s c o . El
m a n e j a d o r t r a t a e s t e e r r o r m a n d a n d o u n c o m a n d o d e R E C A L I 3 R A C I O N ,
p a r a m o v e r l a c a b e z a h a s t a el c i l i n d r o m a s e x t e r n o c o r r e s p o n d i e n d o
al 0. N o r m a l m e n t e e s t o r e s u e l v e e l p r o b l e m a p e r o si n o e s a s i
l a u n i d a d d e d i s c o f l e - . i b l e t e n d r á q u e s e r r e p a r a d a .
91
![Page 96: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/96.jpg)
92
Corno h e m o s v i s t o el c o n t r o l a d o r e s r e a l m e n t e u n p e q u e ñ o
p r o c e s a d o r e s p e c i a l i z a d o , c o n " s o f t w a r e " , v a r i a b l e s y b u f f e r s .
A l g u n a s v e c e s u n a s e c u e n c i a i n u s u a l d e e v e n t o s , c a u s a q u e é*1
c o n t r o l a d o r q u e d e e n u n b u r l e o p i e r d a l a p i s t a d e l o q u e e s t a b a
h a c i e n d o , t a l c o m o c u a n d o o c u r r e u n a i n t e r r u p c i ó n e n u n a u n i d a d a p
d i s c o s i m u l t á n e a m e n t e c o n u n a r e c a l i b r a c i i n e n o t r o . L o s d i s e ñ a d o r e s
g e n e r a l m e n t e p r e v e e n l o p e o r y d e j a n u n a p a t a e n el i n t e g r a d o o
t a b l e t a , q u e c u a n d o s e p o n e e n a l t o , f o r z a al c o n t r o l a d o r a o l v i d a r
c u a l q u i e r c o s a y s e r e i n i c i a . Si t o d o -falla, el m a n e j a d o r d e d i s c o
p u e d e p r e n d e r u n b i t p a r a i n v o c a r e s t a serial y r e i n i c i a r el
c o n t r o l a d o r .
MANEJADOR DE DISCO EN TURBO PASCAL.
El m a n e j a d o r d s d i s c o i m p l e m e n t a d o a c e p t a y p r o c e s a d o s t i p o s d e
m e n s a j e s : p a r a e s c r i b i r u n b l o q u e y p a r a l e e r u n b l o q u e . U n b l o q u e
e s d e t a m a ñ o B L ü C H ._S I Z E , el c u a l e s d e f i n í a o c o m o 1 0 2 4 b y t e s . El
t a m a ñ o d e l s e c t o r e n el d i s c o e s d e 5 1 2 b y t e s , d e t a l m a n e r a q u e
s i e m p r e s o n l e i d o s c e s c r i t o s d o s s e c t o r e s c o n s e c u t i v o s . L a v e n t a j a
d e u n b l o q u e d e m a y o r t a m a ñ o e s u n a r e d u c c i ó n e n el n u m e r o d e a c c e s o s
a d i s c o r e q u e r i d o s y p o r l o t a n t o u n m e j o r r e n d i m i e n t o i p e r f o r m a n c e ) .
El p r e c i o q u e s e p a q a a s q u e p a r a t r a e r u n s o l o c a r a c t e r s e m a n e j a r á n
1 0 2 4 b y t e s .
El m e n s a j e a c e p t a d o p o r el m a n e j a d o r d e d i s c o u s a el s i g u i e n t e
f o r m a t o :
D e s t i n o ( m a n e j a d o r d e d i s c o ) S e c t o r (u a 7)
C1 a s e ( e s c r i t u r a , l e c t u r a ; B y t e s ( 1 0 2 4 )
Di s p o s i ti v o ( u n i d a d m o 3) n d d r e s s ( d i r e c c i ó n d e b u f f e r ;
c a b e z a (0 o 1 ; C o u n t «.bytes t r a n s f e r í a o s ;
c i 1 i n d r o (0 a 39) R e p s a t u s ( r e s u l t a d o d e o p e r a c . )
FIG VI.2 FORMATO DE MENSAGE MANEJADO POR EL MANEJADOR DE DISCO.
El m e n s a j e d e r e s p u e s t a al p r o c e s o q u e s o l i c i t ó el a c c e s o a
d i s c o c o n t i e n e el n u m e r o d e b y t e s q u e s e t r a n f i r i e r o n o u n c ó d i g o d e
e r r o r si s u p e t i c i ó n n o s e l l e v ó a c a b o .
El m a n e j a d o r d e d i s c o e s e s t r i c t a m e n t e s e c u e n c i a l , a c e p t a u n a p e t i c i ó n a d i s c o y n o r e c i b e o t r a h a s t a t e r m i n a r l a p r i m e r a . L a r a z ó n
![Page 97: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/97.jpg)
93
p o r l a c u a l s e t o m ó e s t a d e c i s i ó n e s q u e p o r s e r i m p l e m e n t a d o r?1
P a s c a l C o n c u r r e n t e p a r a P C e s d i f í c i l q u e e n u n m o m e n t o d a d o e x i s t a n
m u c h o s p r o c e s o s a c t i v o s y s i e n d o a s i l a p r o b a b i l i d a d d e a c c e s o a
d i s c o e s p e q u e ñ a y n o t i e n e c a s o c o m p l i c a r el a l g o r i t m o d e a c c e s o a
d i s c o . U n m a n e j a d o r d e d i s c o p a r a u n s i s t e m a g r a n d e e n t i e m p o
c o m p a r t i d o d e b e r á o b v i a m e n t e s e r i m p l e m e n t a d a e n f o r m a d i f e r e n t e .
El p r o c e d i m i e n t o p r i n c i p a l del m a n e j a d o r d e d i s c o \ v e r a p c n d i c e
C) , -floppy task, a c e p t a m e n s a j e s p a r a r e a l i z a r el t r a b a j o y e n v í a
r e s p u e s t a s e n u n l a z o s i n f i n (ve r a p é n d i c e (;>. El t r a b a j o p a r a
r o a l i z a r u n a e s c r i t u r a a d i s c o e s cas i i d é n t i c o ai d e l e c t u r a a
d i s c o , a s i q u e s o n m a n e j a d o s p o r el m i s m o p r o c e d i m i e n t o do rdwt.
L a f i g u r a v i . 2 m u e s t r a l a r e l a c i ó n e n t r e l o s p r o c e d i m i e n t o s
p r i n c i p a l e s del m a n e j a d o r d e d i s c o . B a j o c o n d i c i o n e s n o r m a l e s ( c e r o
e r r o r e s ) do rdwt 11 a m a c u a t r o p r o c e d i m i e n t o s m á s , c a d a u n o r e a l i z a n d o
u n a p a r t e del t r a b a j o d e l a t r a n s f e r e n c i a.
FIG. VI.4
El p r i m e r p r o c e d i m i e n t o " l l a m a d o dma setup p r o g r a m a l o s r e g i s t r o s
d e l c o n t r o l a d o r d e D M h p a r a g u e l l e v e a c a b o l a t r a n s f e r e n c i a d e
m e m o r i a a d i s c o o d e d i s c o a m e m o r i a s i n i n t e r v e n c i ó n d e la C P U .
El s i g u i e n t e p r o c e d i m i e n t o , start motor c h e c a si el m o t o r a s t a
p r e n d i d o . Ei e s a s i el p r o c e d i m i e n t o n o h a c e n a d a , si el m o t o r e s t a
a p a g a d o l o p r e n d e .
El p r o c e d i m i e n t o seek c h e c a si l a c a b e z a s e e n c u e n t r a
p o s i c i o n a d a s o b r e el c i l i n d r o a d e c u a d o , si n o , i n s t r u y e al
c o n t r o l a d o r d e d i s c o p a r a q u e l o h a g a , y e n t o n c e s e s p e r a l a
i n t e r r u p c i ó n d e l c o n t r o l a d o r d e d i s c o g u e i n d i g n e q u e l a o p e r a c i ó n s e
c o m p l e t o .
El c o m a n d o d e l e c t u r a o e s c r i t u r a e s e j e c u t a d o p o r el
p r o c e d i m i e n t o transí y t a m b i é n e s p e r a p o r l a i n t e r r u p c i ó n d e
c o n t r o l a d o r d e d i s c o q u e i n d i c a q u e l a t r a n s f e r e c n c i a s e l l e v o a
c a b o . C u a n d o s e h a c o m p l e t a d o el c o m a n d o trans-f i n s p e c c i o n a l o s
r e g i s t r o s d e e s t a d o de l c o n t r o l a d o r p a r a v e r si n o e x i s t i ó a l g ú n
e r r o r . 3i o c u r r i ó a l g ú n e r r o r d e v e r i f i c a c i ó n , ei p r o c e d i m i e n t o
r e g r e s a u n c ó d i g o d e e r r o r a do rdwt, d e t a l m a n e r a q u e trans-f p u e d a i n t e n t a r l o u n a v e z m á s .
![Page 98: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/98.jpg)
94
P o r u l t i m e d e b e a p a g a r s e el m o t o r d e s p u e s d e u n a o p e r a c i ó n . L o s
d i s c o s f l e x i b l e s n c p u e d e n l e e r s e o e s c r i b i r s e si el m o t o r e s t a
a p a g a d o . El e n c e n d i d o y a p a g a d o d e u n d i s c o l l e v a s u t i e m p o , p o d r í a
p e n s a r s e e n d e j a r p r e n d i d o el m o t o r t o d o el t i e m p o , p e r o e s t o
p r o v o c a r í a el p r e m a t u r o d e s g a s t e d e c a b e z a s y d i s c o s , as i q u e el
c o m p r o m i s o e s d e j a r el m o t o r p r e n d i d o a l g u n o s s e g u n d o s ( p o r e j e m p l o
3) d e s p u e s d e c a d a l e c t u r a o e s c r i t u r a , d e t a l m a n e r a q u e si l a
u n i d a d d e d i s c o e s u s a d a u n a v e z m a s d e n t r o d e e s o s t r e s s e g u n d o s , el
t i e m p o s e e x t i e n d e o t r o p e r i o d o d e t i e m p o i g u a l , p e r o si y a n o s e u s a
el d i s c o e n e s t e p e r i o d o , s e a p a g a .
El p r o c e s o clock de l KERNEL c a d a v e z q u e s e c u m p l e u n t i c k
d e c r e m e n t a el t i e m p o q u e e s t a e n c e n d i d o el m o t o r d e l a u n i d a d d o
d i s c o f l e x i b l e , si e s t e s e a g o t e i n s t r u y e ai c o n t r o l a d o r p a r a q u e
a p a g u e el m o t o r d e l a u n i d a d d e d i s c o .
A l g u n o s p r o c e d i m i e n t o s c o m p l e m e n t a r i o s u s a d o s e n el c o n t r o l a d o r
d e d i s c o , s e l i s t a n a b a j o .
1 . - p h y s . a d d r e s s . - D a d o u n a p u n t a d o r a m e m o r i a c a l c u l a s u d i r e c
c i ó n f í s i c a (20 b i t s ) .
2 . - f d c o u t . - M a n d a u n c o m a n d o al c o n t r o l a d o r .
3 . - f d c r e s u l t s . - E x t r a e l o s r e s u l t a d o s d e u n c o m a n d o .
4 . - r e c a l i b r a t e . - R e c a l i b r a u n a u n i d a d d e d i s c o d e s p u e s d e u n
e r r o r d e p o s i c i o n a m i e r t o .
5 . - r e s e t f . - i n i c i a l i z a el c o n t r o l a d o r d e s p u e s d e u n
e r r o r s e r i o .
IMPLEMENTACION
L a e s t r u c t u r a p r i n c i p a l u s a d a p o r el c o n t r o l a d o r d e d i s c o , e s
l l a m a d a -floppy - v e r a p e n d i c e G; , l a c u a l o s u n a a r r e g l o d e
e s t r u c t u r a s ( u n a p o r u n i d a d d e d i s c o f l e x i b l e ) . C a d a u n a c o n t i e n e
i n f o r m a c i ó n a c e r c a d e l e s t a d o a c t u a l d e s u u n i d a d d e d i s c o y el
c o m a n d o a e j e c u t a r , d e t a l m a n e r a q u e g u a r d a r la d i r e c c i ó n e n el
d i s c o , l a d i r e c c i ó n e n m e m o r i a , l a i n f o r m a c i ó n a c a r e a d e l e s t a d o de l
c o n t r o l a d o r y el e s t a d o d e s u c a l i b r a c i ó n .
El p r o c e c i m e n t o q u e l l e v a el v e r d a d e r o t r a b a j o e s do rdwt,
y m a n e j a c o m o p a r a m e t r o el m e n s a j e p r e c i s a m e n t e r e c i b i d o . L o p r i m e r o
q u e h a c e e s c a l c u l a r l a e s t r e u t u r a c o r r e s p o n d í e n t e a l a u n i d a d d e
d i s c o a m a n e j a r , e n t o n c e s c o p i a l o s p a r á m e t r o s d o c i l i n d r o , p i s t a ,
s e c t o r y c a b e z a a l a e s t r u c t u r a . D e a q u í e n a d e l a n t e l a e s t r u c t u r a
a p u n t a d a p o r -fp c o n t i e n e t o d a l a i n f o r m a c i ó n n e c e s a r i a p a r a l a
o p e r a c i o n . D e n t r o d e e s t e p r o c e d i m i e n t o e x i s t e u n l a z o q u e p e r m i t e
r e p e t i r v a r i a s v e c e s u n a o p e r a c i o n e n c a s o d e e r r o r y t a m b i é n c h e c a
si e s n e c e s a r i o r e i n i c i a l i z a r el c o n t r o l a d o r , si e s a s í 1 1 a m a el
p r o c e d i m i e n t o resetf. Si a l q u n o d e l o s p r o c e d i m i e n t o s l l a m a d o s p o r do
rdwt d e s c u b r e q u e el c o n t r o l a d o r y a n o r e s p o n d e , p r e n d e l a b a n d e r a
n e e d r e s e t y e n el s i g u i e n t e c i c l o s e " r e i n i c i a r a " el c o n t r o l a d o r . L a
t r a n s f e r e n c i a s e l l e v a a c a b o p o r u n l l a m a d o a transí y si e s t a s e c o m p l e t a e x i t o s a m e n t e s e a b a n d o n a el l a z o .
![Page 99: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/99.jpg)
95
El p r o c e d i m i e n t o dma setup c a r g a l a d i r e c c i ó n d e m e m o r i a y l a
c u e n t a d e b y t e s a t r a n s t e r i r d e n t r o d e l c o n t r o l a d o r d e D M A . L a
d i r e c c i ó n d a d a m a s la c u e n t a n o d e b e n r e b a s a r f r o n t e r a s d e i< b y t e s ,
e s t o e s u n b u f f e r d e 1 fcbyte d e D M A p u e d e e m p e z a r e n 3 a d i r e c c i ó n
Ó 4 5 1 0 p e r o n o e n l a = 5 4 1 4 p o r q u e e s t e s e e x t e n d e r í a m a s a l i a d e la
f r o n t e r a d e ¿ 5 5 3 = . E s t a r e s t r i c c i ó n s e d e b e a q u e l a P C u t i l i z a u n
v i e j o c o n t r o l a d o r d e O M h , q u e c o n t i e n e c o n t a d o r e s d e 16 b i t s e n l u g a r
de- l o s 2 0 n e c e s i t a d o s y a q u e D M A u t i l i z a d i r e c c i o n e s a b s o l u t a s y nc;
d i r e c c i o n e s r e l a t i v a s a s e q m e n t o s . l.os 16 b i t s m e n o s si qn i f i c a t i v o s
d e l a d i r e c c i ó n d e D M A s o n c a r q a d o s d e n t r o de l 1 2 3 7 A y l o s 4 m a s
si gn i f i c a t i v o s e n “1 a t c h e s " , el p a s a r d e la c u e n t a F F F F a l a O ü ü O n o
g e n e r a a c a r r e o .
El p r o c e d i m i e n t o start motor c o n t r o l a l o s m o t o r e s d e l a s
u n i d a d e s d e d i s c o - f l exible. Al e n t r a r d e s h a b i l i t a i n t e r r u p c i o n e s
t e m p o r a l m e n t e m i e n t r a s c h e c a el e s t a d o del m o t o r >• c a l c u l a s u n u e v o
o s t a do . L o s d o s b i t s d e m e n o r o r d e n d e l a a n a b i e m o t o r g o a l
c o n t i e n e n el n u m e r o d e u n i d a d s e l e c c i o n a d a . L o s d o s s i g u i e n t e s b i t s
p o n e n al c o n t r o l a d o r e n m o d o n o r m a l ( i n t e r r u p c i o n e s h a b i l i t a d o s ; .
L o s c u a t r o b i t s d e m a y o r o r d e n c o n t i e n e n el e s t a d o d e l o s c u a t r o
m o t o r e s q u e p u e d e m a n e i a r el c o n t r o l a d o r , u n í s i g n i f i c a q u e el m o t o r
e s t a p r e n d i d o y u n c e r o q u e el m o t o r e s t a a p a g a d o .
Si el m o t o r e s t a a p a g a d o e s n e c e s a r i o p r o v o c a r u n r e t a r d e
m i e n t r a s s e a r r a n c a i a p r o x . 2 5 0 m s e g ;.
El p r o c e d i m i e n t o seek p r i m e r o c h e c a si l a u n i d a d d e d i s c o e s t a
c a l i b r a d a , si n o l o e s t a l a r e c a l i b r a . 3 i el c i l i n d r o a c t u a l e s el
d e s e a d o ú n i c a m e n t e r e g r e s a m o s del p r o c e d i m i e n t o , d e o t r a m a n e r a m a n d a u n c o m a n d o s e e k y e s p e r a po r l a i n t e r r u p c i ó n d e l F D C . D e s p u é s d e q u e
l a i n t e r r u p c i ó n l l e g ó c h e c a i o s r e s u l t a d o s l l a m a n d o a fdc results.
D e s a f o r t u n a d a m e n t e a u n el r e p o r t e d e e s t a d o p u e d e f a l l a r , y a q u e ól
m i s m o e s u n c o m a n d o q u e el F D C p u e d e a c e p t a r o no . '¿i e»l r e p o r t e d e
e s t a d o r e g r e s a e n -forma n o r m a l e í n d i c a u n e r r o r e n ei c o m a n d o s e e k ,
e n t o n c e s l a u n i d a d d e d i s c o d e b e r á r e c a l i b r a r s e .
El p r o c e d i m i e n t o transf e s q u i e n c o m a n d a p r o p i a m e n t e al F D C p a r a
q u e e m p i e z e l a l e c t u r a o e s c r i t u r a . F a r a e j e c u t a r el c o m a n d o s e
m a n d a n 9 b y t e s d e i n f o r m a c i ó n al c o n t r o l a d o r . D e s p u e s d e q u e s e m a n d e
el c o m a n d o s e e s p e r a l a i n t e r r u p c i ó n d e l F D C , s e o b t i e n e n l o s
r e s u l t a d o s y s e c h e c a p a r a d e t e c t a r e r r o r e s .
El l e e r l o s r e s u l t a d o s n o i m p l i c a s o l a m e n t e i e e r u n a p a l a b r a o
d o s del c o n t r o l a d o r d e d i s c o . S e r e q u i e r e u n c o m p l e j o p r o t o c o l o d e
c o m u n i c a c i ó n c o n el c o n t r o l a d o r e n -fdc results. T o d a s l a s c o s a s q u e
p u d i e r a n i r mal d e b e r á n d e c h e c a r s o y si e s t o n o f u e r a s u f i c i e n t e el
t i e m p o d e n e g o c i a c i ó n d e e s t e p r o t o c o l o t e m b l ó n e s i m p o r t a n t e .
A ú n el s o l o h e c h o d e s a c a r u n b y t e d e i n f o r m a c i ó n al c o n t r o l a d o r
e s c o m p l i c a d o y r e q u i e r e u n p r o c e d i m i e n t o c o m p l e t o -fdc out. El
p r o b l e m a e s q u e el c o n t r o l a d o r p i e n s a e n f o r m a i n d e p e n d i e n t e y n o s e
l e p u e d e o b l i g a r a a c e p t a r u n c o m a n d o . E x i s t e u n a n e g o c i a c i ó n
c o m p l e j a p a r a d e t e r m i n a r c u a n d o e s t a e n c o n d i c i o n e s d e a c e p t a r l o >
![Page 100: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/100.jpg)
9¿
c u a n d o no. L a r e c a l i b r a c i c n d e u n a u n i d a d d e d i s c o y el “r e i n i c i a "
s o n r e a l i z a d o s p o r recalibrate y resetf r e s p e c t i v a m e n t e .
E n g e n e r a l l a t a r e a d e i m a n e j a d o r d e l d i s c o s s c o n c e p t u a l m e n t e
s i m p l e , p e r o l l e n a d e d e t a l l e s , a l g u n o s d e l o s c u a l e s s o n i n h e r e n t e s
al d i s p o s i t i v o d e e n t r a d a ; s a l i d a y o t r o s a q u e el c o n t r o l a d o r P D 7 6 5
e s d e m a s i a d o p r i m i t i v o .
E n l a i m p l e m e n t a d ü n d e l m a n e j a d o r d e d i s c o s e u t i l i z a r o n d o s
o p c i o n e s p a r a r e c i b i r l a i n t e r r u p c i ó n g e n e r a d a p o r el c o n t r o l a d o r d e
d i s c o . L a p r i m e r a s i g u i e n d o l a f i l o s o f í a d e i B I O S v B A S I C I N P U T Ü U T P U T S Y S T E M ) d e I B M y l a s e g u n d a r e c i b i e n d o l a i n t e r r u p c i ó n d i r e c t a m e n t e a
t r a v é s d e u n l l a m a d o a I D T R A N F E R . A c o n t i n u a c i ó n s e e x p l i c a n c a d a u n a
d o e l l a s a d e t a l l e .
P r i m e r a o p c i ó n :
p r o c e d u r e w a i t f o r i n t ;
v a r r e t r i e s s i n t e g e r ;
b e g i n
e n a b l e i n t e r r u p t s ;
r e t r i e s : = 0;
if net. n e e d r e s e t t h e n
b e g i nw h i l e ( r e t r i e s 3 6 ) a n d ».seek s t a t u s a n d $ S u = ¿') g o
b e g i n
r e t r i e s : = s u c c ( r e t r i e s ; ;
w a i 1 1 i m e ( t i c k ) ;
e n d ;if ( r e t r i e s > = 3 6 ) o r ' r e t r i e s <. 0 ) t h e n n e e d . _ r c s e t : = t r u e ;
e n d ;S e e k _s t a t u s := s e e k s t a t u s a n d $ 7 f ;
e n d ;
E n l a r u t i n a a n t e r i o r o b s e r v a m o s q u e l a v a r i a b l e s e e k s t a t u s s e
e x a m i n a p e r i ó d i c a m e n t e c a d a tick. i a p r o x . c a d a 5 5 mi 1 i s e g u n d o s ; , si l a
i n t e r r u p c i ó n s e p r o d u j o , e s t a v a r i a b l e t e n d r á el b i t m á s
s i g n i f i c a t i v o c o n u n v a l o r d e u n o d e o t r a m a n e r a s e r a c e r o . ¿ F e r o
q u i a n p r e n d e e s t a b a n d e r a ? , e n r e a l i d a d e s t a b a n d e r a l a s i g u e
m a n e j a n d o u n a r u t i n a d e l B I O S m u c h o m u y s e n c i l l a q u e l o ú n i c o q u e
h a c e e s p r e c i s a m e n t e p r e n d e r e s t o b a n d e r a c u a n d o s e p r o d u c e l a
i n t e r r u p c i ó n d e l d i s c o O E H . A h o r a l a d i f e r e n c i a d e n u e s t r a r u t i n a
w a i t f o r _ i n t d e la d e l B I O S e s q u e e n t r e c a d a v e z q u e s e e:-.amina l a
b a n d e r a l i b e r a m o s el p r o c e s a d o r c o n l a p r i m i t i v a w a i t t i m e p a r a q u e
c t r o p r o c e s o h a g a u s o d e o l , c o s a q u e e n B I O S n o s u c e d e .
El p r o c e d i m i e n t o w a i t f o r i n t d e b e r á a p a q a r l a b a n d e r a u n a v e z
q u e t e m o c o n o c i m i e n t o d e e l l a . E n c a s o d e q u e l a i n t e r r u p c i ó n n c l l e g a r á p o r a l g u n a r a z ó n ( c o m o p o r e j e m p l o g u e l a u n i d a d d e d i s c o
W m IT f o r .i n t
![Page 101: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/101.jpg)
t e n g a l a c o m p u e r t a a b i e r t a ) , al i n t e n t o 3 5 = e a b a n d o n a r á l a t e n t a t i v a
d o a c c e s o a d i s c o .
S e q u n d a o p c i n :
p r o c e d u r e w a i t t o r i n t ;
b e g i n
if s e e k s t a t u s a n d $ 5 0 = 0 t h e n w a i t i o $0e,<h);
S e e k . s t a t u s : = s e e k s t a t u s a n d $ 7 f ;
e n d ;
E n l a s e g u n d a r u t i n a o b s e r - a m o s q u e l a v a r i a b l e s e e k s t a t u s sta
e x a m i n a ú n i c a m e n t e u n a v e z y =i e s t a n o h a s i d o p r e n d i d a p o r ¿ I D E ,
n u e s t r o p r o c e d i m i e n t o h a c e a u n l a d o l a r u t i n a d o b i e s y o s p e r s
d i r e c t a m e n t e l a i n t e r r u p c i ó n O E H a t r a . s s d e l p r i m i t i v a w a i t t i o .
El p r o c e d i m i e n t o w a i t f o r i n t t o d a v í a d e b e r á a p a g a r l a b a n d e r a
u n a v e z q u e t o m o c o n o c i m i e n t o d e e l l a . E n e s t e c o s o s e r i a c r i t i c o q u e
l a i n t e r r u p c i ó n n o l l e q a r a y a q u e n o s q u e d a r i a m o s e s p e r á n d o l a p a r a
s i e m p r e , p a r a p r e v e n i r e = t o el m a n e j a d o r d e d i s c o a n t e s d e 11 a m a r
e s t e p r o c e d i m i e n t o si e m p r e * s e a s e g u r a q u e el F D C n o s e s t e
e s c u c h a n d o . U n a s o l u c i ó n a e s t o p o d r í a i m p l e m e n t a r s e h a c i e n d o u s o d a
l a s r u t i n a s p a r a m a n e j o d e t e m p o r i z a d o r e s , p o n i e n d o a f u n c i o n a r u n
t e m p o r i z a d o r q u e d e s p u é s d e u n t i e m p o d a d o p r o v o q u e l a i n t e r r u p c i e n
e i n d i q u e l o q u e p a s o .
L a s p r i m i t i v a s q u e s e d e j a n f i n a l m e n t e p a r e m a n e j a r u n b l o q u e d e
d i s c o y q u e s e r i a n u s a d a s p o r el m a n e j a d o r d e a r c h i - o s s o n l a s
s i g u i e n t e s :
f u n c t i o n l e e t r a c k • d r i v e , h e a d , ci 1 y n d e r ,s e c t o r ,b u f f e r 1): i n t e q e r ;
f u n c t i o n e s c r i b e t r a c k ‘d r i v e , h e a d , c y ì i n d e r ,s e c t o r ,b u f f e r ): i n t e g e r
d o n d e :
d r i v e E s l a u n i d a d d e d i s c o ÍO = h , 1 - 6 ).
h e a d - - C a b e z a o l a d o d e l d i s c o (O o 1).
c y l i n d e r . - C i l i n d r o -0—3 9 ) .
s e c t o r . - S e c t o r (0—7) .
A c o n t i n u a c i ó n s e m u e s t r a d o s e j e m p l o s q u e f u e r o n p r o b a d o s c o n
l a s d o s r u t i n a s d e w a i t f o r __i n t y s e m u e s t r a n l o s r e s u l t a d o s
o b t e n i d o s .
W A I T „ F Ü R I N T
![Page 102: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/102.jpg)
EJEMPLO 1 . -
E e c r e a r o n d o s p r o c e s o s q u e a c c e s a n a l e a t o r i a m e n t e l o s d i s c o s m
y £ r e s p e c t i v a m e n t e . L a l e c t u r a d e s e c t o r e s s e h a c e e n t o d o el d i s c o
c o n l a i n t e n c i ó n q e q u e j a c a b e z a s e d e s p l a c e » l i b r e m e n t e p o r t o d o ia
s u p e r f i c i e d e l d i s c o y d a r n o s u n a i d e a d e l o s t i e m p o s d e b ú s q u e d a d e
s e c t o r e s . R e c o r d e m o s q u e el t i e m p o d e p o s i c i o n a m i e n t o e s u n o d e i o s
q u e m á s i n f l u y e e n l a e f i c i e n c i a d e u n c o n t r o l a d o r d e d i s c o . P a r a
c o n t a b i l i z a r el n ú m e r o d e a c c e s o s s e c r e a u n t e r c e r p r o c e s o q u e c a d a
m i n u t o d e s p l i e g a l a c u e n t a d e a c c e s o s r e a l i z a d o s . P o r s u p a r t e el
p r o g r a m a p r i n c i p a l i n c r e m e n t a u n c o n t a d o r y l o d e s p l i e g a m o s t r a n d o
g u e t r a b a j a c o n c u r r e n t e m e n t e c o n l o s p r o c e s o s q u e a c c e s a n d i s c o .
E s q u e m á t i c a m e n t e eJ e j e m p l o 1 p u e d e v s r s p a s i :
p r o g r a m d i s k r e a d ;
:$ k - >l í I n u c í eo.e:;t '} ( P r i m i t i v a s d e l nuci.ec>
Ci I k e r n e l . p a s L F r i m i ti v a s del K E R N E L iCSI disl-dri v . p a s } I M a n e j a d o r d e d i s c o }
Ü I 5 H 4 . P A S
F r o q r a m a q u e n o s d e m u e s t r a c o m o - l e e r d i s c o d i r e c t a m e n t e s i n
h a c e r u s o d e l a IN T 1 3 H del ¿ I O S . B e c r e a n a o s p r o c e s o s
q u e a c c o s a n d i s c o , u n o de l dri v e A y el o t r o d e l d r i v e 6.
El p r o c e s o m a i n m u e s t r a el n u m e r o d e a c c e s o s a ai s e o
![Page 103: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/103.jpg)
99
v a r
c o u n t : i n t e g e r ; a c c e s o s : i n t e g e r ;
p i , p 2 , p 3 s p r o c e s s r e f ;
a n s w e r s s t r i n g C 2 3 ;
b u t f e r 1 , b u f f e r 2 : b y t e ;
p r o c e d u r e r e c e p l ;
b e g i n
w h i l e t r u e d o
b e g i n
i f 1 e e t r a c V (0, r a n d o m (2: , r a n d o m ( 40; , r a n d o m \ 3) + 1, b u t f e r 1 > = b i o c k = i z e
t h e n
b e g i n
a c c e s o s : = s u c c ( a c c e s o s ) ;
e n d
e l s e w r i t e l n (’F A L L O l.ECTURA' ) ; w a i 11 i m e . 1 * t i c k ) ;
e n d ; len d w h i l e t r u e J
e n d ;
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * i t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ¡-
p r o c e d u r e r e c e p 2 ;
b e g i n
w h i l e t r u e d c
b e g i nif 1 e e t r ac k ( t , r a n d o m •„ 2) , r a n d o m • 40) , r a n d o m i 3) +1 , b u f f e r 2) = b } o c ñ si z e
t h e n
b e g i na c c e s o s : = s u c c \ a c c e s o s ) ;
e n d
e l s e w r i t e l n (•F m L L ü L E C T U R A ’);
w a i 1 1 i m e i * t i c k.) ;
e n d ; ien d w h i l e t r u e *
e n d ;C * : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; -
p r o c e d u r e r e l o j ;
v a r m i n u t o s : i n t e g e r ;
b e g i n
m i n u t o s : = 0;
a c c e s o s ; = 0;
w h i l e t r u e d o
b e g i n
g o t o x y ( 2 5 , 1 6 ) ;
w r i t e l n ( a c c e s o s , J a c c e s o s a s i s e o e n ’,mi ñ u t o s : 7 , r m i n u t o s ' ? ;
w r i t e l n (count.: ó) ;
w a i t t i m e 1 * mi n) ;
m i n u t o s : = s u c c \ m i ñ u t o s ) ;
e n d ; Zen d w h i l e true'}
e n d ;C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * >
![Page 104: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/104.jpg)
100
b e g i n (mainig o t m e m (bur-fer 1, 1 0 2 4 ) ; C d i r e c c i o n d e b u t t e r
g e t m e m v b u t t c r 2 , 1 0 2 4 ) ; < d i r e c c i o n d e bur-fer
a n s w e r : = 'n o ’;
count. : = 0 ;w h i l e a n s w e r < > r s i ' d o
b e g i n
w r i t e l n ( ’ e m p e z a m o s ( s i / n o ) 7 ’);
r e a d l n i a n s w e r ) ;
e n d ;
i n i t k e r n e l ;
i n i t d i s k d r i v e r ;
p 3 : = c r e a t e p r o c e s s (or s (rei o..i ) , 2 0 4 8 ) ;
p 1 : = c r e a t e p r o c e s s o r s ( r e c e p 1 ) , 2 0 4 3 ) ;
p 2 : = c r e a t e p r o c e s s ( o f s ( r e c e p ì ) , 2 0 4 3 ) ; c l r s c r ;
gctoxy(25,08);wri teln k* FROBhNDO MmNEJwDOR 0E DISCO I’); while true do
begingot. o x y (32, 14; ;
writeln(rcount = ", count:5;;wai tti me v1*tick); count := succ(count); end;
end.
![Page 105: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/105.jpg)
101
R e s a l t a d o s o b t e n i d o s c o n el e j e m p l o 1 e m p l e a n d o l a s d o s o p c i o n e s
d e l c o n t r o l a d o r d e d i s c o . L a v a r i a b l e C O U N T n o s d a u n a i d e a d e l a
■forma e n q u e s e c o m p a r t i ó el p r o c e s a d o r e n t r e el m a n e i a d o r d e d i s c o y
o t r o s p r o c e s o s :
i OPCION OPCION
1 2
MINUTOS ACCESOS VARIABLE ACCESOS VARIABLE
A DISCO COUNT A DISCO COUNT
1 159 930 215 1065
2 341 1960 437 2158
3 526 3000 673 3197
4 697 4012 913 4235
5 866 4979 1159 5323
6 1038 5966 1411 6420
7 1211 6946 1663 7513
8 1373 7900 1914 3606
9 1550 8903 2157 9672
10 1725 9915 2415 10765
11 1905 10995 2661 11358
12 2066 11897 2912 12951
13 2223 1278“ 3155 14016
14 2385 13744 3389 15032
15 2569 14765 3643 16175
16 2744 15759 3883 17241
17 2927 16799 4123 18307
18 3085 17730 4368 19373
19 3250 18724 4614 20439
20 3410 19636 4861 21532
![Page 106: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/106.jpg)
102
EJEMPLO 2.-
E n e s t a o c a s i o n s e c r e a n d o s p r o c e s o s u n o q u e q u e l e e s e c t o r e s
d e l d r i v e 8 e n t o r m a a l e a t o r i a y o t r o q u e e s c r i b e el b l o q u e l e i d o
e n l a m i s m a p o s i c i o n p e r o e n el d r i v e A. Al i g u a l q u e e n el
e j e m p l o a n t e r i o r u n t e r c e r p r o c e s o si q u e l l e v a n d o l a c u e n t a d e
a c c e s o s a d i s c o y el p r o g r a m a p r i n c i p a l d e s p l i e g a u n c o n t a d o r . L o s
p r o c e s o s q u e l e e n y e s c r i b e n s o l o e s t á n s i n c r o n i z a d o s p o r t i e m p o .
p r o g r a m d i s k r e a d ;
■C*k->Cíl n u c l e o . e : : t !’
C$1 k e r n e l . p a s i
Zxl d i s k d r i v .p a s .»•
v a r
c o u n t : i n t e g e r ;
a c c e s o s : i n t e g e r ;
p l , p 2 , p 3 : p r o c e s s r e t ;
a n s w e r : s t r i n g C 2 3 ;
b u t t e r i : b y t e ;
n h e a d ,n c y 1 i n d e r ,n s e c t o r : i n t e g e r ;
•C** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **.**> p r o c e d u r e r e c e p ì ;
v a r n d r i v e : i n t e g e r ;
b e g i n
n d r i v e := 1;
w h i l e t r u e d o i u n i d a d d e d i s c o BÌ-
b e g i n
n h e a d : = r a n d o m (2);
n c y l i n d e r : = r a n d o m (40);
n s e c t o r : = r a n d o m (3) + 1;
i-f 1 e e t r a c k (nd r i ve, n h e a d , n c y ] i n d e r , n s e c t o r , b u t t e r 1 ) = b l o c k size-t h e n
b e g i n
a c c e s o s : = s u c c ». a c c e s o s ) ;
e n d
cl s e wr i t e l n ( ? F h L L O L E C T U F A ? >; w a i 1 1 i m e '1 * t i c k ) ;
e n d ; ;e n d w h i l e t r u e }
e n d ;i**************** **************************************** **********>
D I sk.5 . FA SF r o g r a m a q u e n o s d e m u e s t r a c o m o l e e r y e s c r i b i r d i s c o d i r e c - ;
t a m e n t e s i n h a c e r u s o d e 1 a IN T 13H. S e c r e a n d o s p r o c e s o s uno;
q u e l e e el d i s c o de l d r i v e B y o t r o q u e e s c r i b e al d r i v e A . El:
p r o c e s o r e l o j m u e s t r a el n u m e r o d e a c c e s o s a d i s c o ■
![Page 107: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/107.jpg)
103
p r o c e d u r e r e c e p 2 ;
v a r n d r i v e : i n t e g e r ;
b e g i n
n d r i v e : = 0 ? ‘u n i d a d d e d i s c o A l
w h i l e t r u e d o
b e g i n
i f e s c r i b e t r a c k ( n d r i ve, n n e a d , n c y ! t n d e r , n s e c t o r , b u t í e r 1. ) =b l o c k ; i : e
t h e n
b e g i n
a c c e s o s : = s u c c l a c c e s o s ) ;
e n d
e l s e w r i t e l n i * F A L L O E = C F I T U R A ’);
w a i t t i m e ( 1 » t i c k );
e n d ; C e n d w h i l e true)' e n d ;■Z * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * y
p r o c e d u r e r e l o j ;
v a r m i n u t o s : i n t e g e r ;
b e g i n
m i n u t o s : = 0;
a c c e s o s : = 0;
w h i l e t r u e d o
b e g i n
gotCìiy <25, li) ;
w r i t e l n ( a c c e s o s , ’ a c c e s o s a d i s c o e n , m i n u t o s : . ; , ' m i n u t o s ’;;
w r i t e l n ( c o u n t s 6) ;
w a i t t i m e ■. 1 »m i n ) ;
m i n u t o s : = s u c c i m i n u t o s ) ;
e n d ; i e n d w h i l e t r u e l
e n d ;i* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ****',■
b e g i n «.main!
g e t m e m ( b u t t e r 1, 1.»¿ 4 ; ; ». d i r e c c i ó n d e b u f f e r 1- a n s w e r : = ? n c 7 ;
c o u n t : = 0;
w h i l e a n s w e r O ’s i ’ d o
b e g i n
w r i telní-' e m p e z a m o s si n o ) ? ’;;
r e a d l n ( a n s w e r « ;
e n d ;
i ni t k e r n e l ;
i n i t d i s k d r i v e r ;
p 3 : = c r e a t e p r o c e s s (of s ( r e i c i > , 2 0 4 3 ) ;
p 1 := c r e a t e p r o c e s s ( o f s ( r e c e p 1 ¡, ¿ 0 4 3 ) ;
p 2 : = c r e a t e p r o c e s s i o f s »r e c e p 2 ) , 2 0 4 3 ) ;
c l r s c r ;
goto;í y (25, 06 ) ;
w r i t e 1 n (’ P R O B A N D O M h N E 3 A D O R D E D I B C D 1 * ; ;
w h i l e t r u e d o
b e g i n
g o t o x y ( 3 2 , 1 4 ; ;
w r i t e l n (?c o u n t = ", c o u n t : 6) ;w a i t t i m e v 1 » t i c k ) ;
![Page 108: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/108.jpg)
104
c o u n t := s u c e íc o u n t >;
e n d ;
e n d .
![Page 109: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/109.jpg)
105
R e s u l t a d o s o b t e n i d o s c o n el e j e m p l o 2 e m p l e a n d o l a s d o s o p c i o n e s del c o n t r o l a d o r d e d i s c o :
OPCION OPCION 1 2
MINUTOS hi.CEoOS VARIABLE hCCESOS OARTh BLE A DISCO COUNT m DISCO COUNT
1 171 941 210 1039
2 351 1917 449 2095
3 520 ¿8 / 5 ü 9 / 315'.*
4 715 3914 94 L 4207
5 384 4880 1192 52 75
6 1067 5365 1432 *341
7 1236 679B 1672 7 4 0 7
8 1397 7729 1933 =500
9 1580 3704 2189 9592
10 1749 9635 2435 10648
11 1921 10565 2670 11741
12 2100 11523 2925 12307
13 2237 12507 3172 13900
14 2464 13464 3421 14993
15 2621 14373 3672 16086
16 2738 15331 3914 17178
17 2965 1631o 4172 13261
18 3105 17121 4416 19317
19 3284 13115 4fc5ü 20363
20 3460 19050 4383 21375
![Page 110: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/110.jpg)
106
O b s e r v a n d o i o s r e s u l t a d o s d e l o s d o s e j e m p l o s n o s d a m o s c u e n t a
q u e l a s e g u n d a o p c i c n e s m a s e-f i c í e n t e , ¿ p e r o p o r q u e ? , p u e s p o r q u e
l a p r i m e r a o p c i o n u t i l i z a u n m é t o d o a e " p o o i i n g " , y a s i , si
n o s e d e t e c t a l a b a n d e r a p r e n d i d a d e i n t e r r u p c i ó n el p r o c e s a d o r
c o n m u t a a o t r o p r o c e s o , p e r o si e n e s e m o m e n t o s e r e c i b e l a
i n t e r r u p c i ó n el c o n t r o l a d o r d e d i s c o n o s e e n t e r a r á i n m e d i a t a m e n t e
s i n o h a s t a q u e h a l l a t r a n s c u r r i d o el t i e m p o i n d i c a d o p a r a v o l v e r
a e x a m i n a r l a b a n d e r a .
C o n l a s e g u n d a o p c i ó n c u a n d o s e r c c i b e la i n t e r r u p c i ó n s e
c o n m u t a i n m e d i a t a m e n t e al c o n t r o l a d o r d e d i s c o p a r a t e r m i n a r l a
o p e r a c i ó n , e s t o s e d e b e a q u e el m a n e j a d o r d e d i s c o t i e n e u n a
p r i o r i d a d m a y o r q u e l a d e l o s d e m a s p r o c e s o s , d e t a l m a n e r a q u e s e
a s e g u r e g u e s e l e a t e n d e r á i n m e d i a t a m e n t e q u e l o r e q u i e r a .
![Page 111: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/111.jpg)
107
CONCLUSIONES.
![Page 112: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/112.jpg)
108
CONCLUSIONES.
C o n e s t e t r a b a j o q u e d a n l a s b a s e s / h e r r a m i e n t a s p a r a m a n e j a r
p r o c e s o s d e s d e u n l e n g u a j e d e a l t o n i v e l c o m o P a s c a l . P u e d e
a p l i c a r s e e n g e n e r a l al m o n i t o r e o y c o n t r o l d e e v e n t o s , s i n e m b a r g o
d e p e n d i e n d o d e l a a p l i c a c i ó n s e r a t o d a v í a n e c e s a r i o d e s a r r o l l a r el
" s o t t w a r e " d e m a n e j a d o r e s d e d i s p o s i t i v o s d e e n t r a d a / s a l i d a , c o m o p u e d e n s e r l a i m p r e s o r a o el d i s c o d u r o . R e c o r d e m o s q u e l a s r u t i n a s
p r o p o r c i o n a d a s p o r el s i s t e m a o p e r a t i v o M S - D O S nc- s o n r e e n t r a n t e s .
E n el s i g u i e n t e e s q u e m a p e d e m o s d a r n o s c u e n t a de l a l c a n c e d e
e s t e t r a b a j o ( l e t r a e n n e g r i l l a s ) y l a p a r t e q u e q u e d a r í a p o r
i m p l e m e n t a r p a r a t e n e r u n p r o d u c t o c o m p l e t o q u e -fuera c o m p e t i t i v o c o n
s i s t e m a s o p e r a t i v o s c o n c u r r e n t e s .
P r o c e s o s d e U s u a r i DS
M a n e j o d e M e m o r i a M a n e i a d o r d e a r c h i v o s
Manejador
de
Di seo
Manejador
de
Reloj
M a n e j a d o r
d e
T e r m i n a l
Manejo de Procesos
E n e s t e m o m e n t o l o s p r o c e s o s n o t i e n e a s i q n a d o s t i e m p o s p a r a
e j e c u t a r s e , asi q u e la c o n m u t a c i ó n de l p r o c e s a d o r s e h a c e
e x p l í c i t a m e n t e c u a n d o al 11 a m a r u n a p r i m i t i v a d e l K E R N E L el p r o c e s o
l l a m a d o r s e s u s p e n d e o p o r q u e " d e s p e r t ó " a l g ú n p r o c e s o d e m a y o r
p r i o r i d a d , s i n e m b a r g o e s f a c t i b l e i m p l e m e n t a r u n a p c l t i c a d e " R o u n d
R o b i n " m o d i f i c a n d o l a r u t i n a de l r e l o j e n el m o d u l o K E R N E L .
![Page 113: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/113.jpg)
109
BIBLIBOGRAFIA
(1) S. K r i s h n a m o o r t h y , M u k k a i ; A q n a r s s o n , S n o r r i . B Y T E niimero 4
v o l . 12. M e G r a w - H i l l p u b l i c a t i o n s . A b r i l 1 9 8 7 .
(2) E r i k M a t s s o n , S v e n ; A R E A L - T I M E K E R N E L F Ü R P A S C A L . D o c u m e n
t o T ö c n i c o . D e p a r t m e n t o-f A u t o m a t i c C o n t r o l , L u n d I n s t i t u t e
of T e c h n o l o g y . B o x 7 2 5 , S - 2 2 0 0 7 L u n d , S w e e d e n
(3) S. T a n e n b a u m , A n d r e w s ? O P E R A T I N G S Y S T E M S : d e s i g n a n d
i m p l e m e n t a t i o n . P r e n t i c e H a l l , Inc . E n q l e w o o d C l i f f s , N e w
J e r s e y 0 7 6 3 2 . 1 9 8 7
(4) N o r t o n , P e t e r ; I N S I D E T H E I B M - P C : A c c e s s t o a d v a n c e d
F e a t u r e s a n d P r o g r a m m i n g . P r e n t i c e H a l l , Inc. R o b e r t 0.
B r a d y Co . , B r o w i e , M a r y l a n d 2 0 7 1 5 .
(5) H o l t , A. C h a r l e s ; M I C R O C O M P U T E R O R G A N I Z A T I O N ; H a r d w a r e . a n d
S o f t w a r e . M a c m i l l a n P u b l i s h i n g Co . N e w Y o r k , N e w Y o r k
1 0 0 2 2 .
(6) T u r b o P a s c a l R e f e r e n c e M a n u a l . B o r l a n d I n t e r n a t i o n a l Inc.
(7) T e c h n i c a l R e f e r e n c e f o r t h e I B M P e r s o n a l C o m p u t e r .
![Page 114: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/114.jpg)
APENDICE A
NUCLEO.EXT
NUCLEO.ASM
i 10
![Page 115: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/115.jpg)
111
i t t t u n t t m t u i u t u u i u t u n u n i t m u u i t m t m n t n u u u u t u u u i t wit NODULO NUCLEO.EXT li{ t t t t m t m m t t t t t i t t i t t t m i t t t t i i m t m t t t t i t t m t i i i s m m i t m m t t t i i } m u u u i u t u u u u u n i i u t u u m u u u u u u u u u i H u m u t u u t t u t u t )(I INTERFACE CON NUCLEO.CON i)
( t t t t t m m m i t t t m m m t m t t m m t t t t m t m t m i t t t t t s t t m i t i t i t i i t t t i
typeprocess =A integer;
procedure nuc; external 'nucleo.coi’:procedure initnucleusiotnuc.inteqersvar oiprocess); external nucttOal; procedure initprocess»proq,segstack,cfsstack,cteheap:inteaer>; external nucI I Of l iprocedure transter war pi'.prccessi; external nuc[Si41;proceaure iotrans er»ou#int:intsqer:var olsprccess); external nuctf193:procedure disablcinterrupts; external nudilo!;procedure onabUinterruots: external nuc[t2il:t/cc reqistrcs= roccra case integer ot
1: •'ax.bx,cx.5x.bp.si.di,ds.es,tl3Q= : inteqer/s 2: Ul,ah,bl,fch,cl.cMl.dh : byte»}end;
{ t t t t m m t < t i t t t t t t t t i t m m i i t t t t i t t t m m t t t t t t i t i t t m t m t t m t t t i t m ; >{! FUNCTION NEKFRDCES3 Í)
• t Prog = oftset dentro del sequento de código del orocsdiiiento a ser t)
{I zonvertido en proceso 1}íl Si:e = taaano del stack que se le creará dado en bytes ¡deberá sor li{| un nuaero par) i)
Function Newprocessiproa:inteqer: sire:inteaer>sprocess;/ar stack: integer; beoingette*ístack,;i:s>;initproccss(prog,seq(sta:k i.oís'.stack i+si:s-t,ctsístack i » ; nenorocess := ptrisetnsiack ),cts-stack ¡+si:e-24i;
![Page 116: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/116.jpg)
» «ODULO NUCLEO.EXT $>
m u i j n m m i m j u m t m u m m i m m m t i n m m m m i i
I NUCLEO PARA TURBO PASCAL CONCURRENTE FOR URIEL TIRADO RIOS Ii Ee define un nuevo tipo (processo = integer) It Se créa con la tuncion Newporcess tI se ccnauta ccn al procsdiaientc transfer It se asocia con una interrupcion con el procediaientc iotranster I
Cseq sequent cgroup’â5='jse cs:csegcurrent dd 0 {proceso ejecutándoseottset_nuc du 0 ¡desplazamiento del núcleoapt heap d* 22hheapptr aw ISan
nuc proc nearpushf ; salvs registre de tanderascli ¡desnabilita interruocionesiip initnucieus ¡brinca a initnucleuspusht' ¡salva reai stro de banderascli ;deshabilita interrupcionesjsp initprocsss ¡brinca a ir.itprocesspusht ¡salva registro de tanderascli ;deshabilita interrupcionesj*p transfer ¡brinca a trans+erpusht ¡salva registro de banderascli ¡deshabilita interrupcionesj»p iotranster ¡brinca a iotransterjip disableinterructsjip cnableintsrri-ptá
¡procedure initnucieus ic*nuc:inteQer: .-ar c: process ; : external nucíOfcl;
push tp ¡salva base pointeríov bp,sp ¡actualiza bass pointerfflov ax,[bpfl01*ov cs:cHsct nuc,ax ¡saves desolaiaiiento nuclooIes bp,IbpfOíl ; es:bp = procsov *crd ptr cs:currentf2,ss ¡current = proc■c-v word ptr es:current,bpsov ax,22hí o v word ptr cs:sptri»eao,ax
■cv a>,ISahaov ucrd otr cs:heapptr,axpop bp ¡recupera base pointerpopí ¡recupera registro de bander;ret o
112
![Page 117: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/117.jpg)
;pracsdurE initprcce5siprüq,ssaproc,ofsprog:integer); esternal nuctlll;
Initprocess:
push tp ;sal va base oointeraov bo,sp ¡actualiza base pointerles fcx,Cbp+061 jes:bx = variable tipo process«ov sí,tbp+101 {desplazamiento del procedisisnto
aov es: Ctx1,ax ;es:bx = desplaza«iento delproced.
■ov ax,Cbp+021 ;ax = registro de banderasíov es:Cbx-021,ax ¡llenando stack de procesosub bx,02 ;sal va ps»■ov es:tbs-021,bs ;salva 6P«ov es:Cbx-041,ds {salva D5■ov cs,tbp*141«ov es:Cbx-063,cx■ov as.tbp+12]•ov es:Cfcx-081,axsov es:ib*-101,ex■cv es:[bx-123,axxor as,ax■ov es:Cbx-143,ax {posición inicial de cursorlea ax,reschild ;sal va desplazasiento dc reschildadd ax,cs:offset nuc•ov es:tbx-161,axpop bp {recupera base pointerpopí {recupera registro de banderasret. 6 ;vacia pila
Roschild:■ov dx,0040h ;■ov es,dx ;«cv bx,0050h jpop es:tbx] {recupera posición de cursor«ov bx.es:apt heaopop [bx] {recupera actpiteappop tbx+21«ov bx,cs:apt heappop tbx3 {recupera heapptrpop lbx+21pop ds {recupera OSpop bp ¡recupera BPpopt ¡recupera banderaspop bx ;despla:aiiento de procesosti ¡habilita interrupcionescali b; :llaia proceso nueve
Lazo: j«p lazo jnunca regresará aquí
113
![Page 118: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/118.jpg)
114
¡procedure transferivar pi¡process»;Transfer:
push bp ¡salva base cointeraov bp,sp ;actualiza base pointerpush ós ;salva D5*ov bx,cs:apt heap ;salva aptheappush [bx+21push [bxlaov bx,cs:heapptr ;salva heapptrpush lbx+2]push [bx]•ov ax,0040haov es,ax•ov bx,0050hpush es:[bx] ;salva posición del cursorlea ax,resadd ax,cs:oftset_nucpush ax ;salva despla:a«ientc de resIds bx,cs:current ;ds:bx = currentsov lbx],sp ;salva sp:ss de proc. a susp.■ov (bx+21,ss
jresuie piIds bx,dwerd ptr[bp+06] ¡proceso a reasu«ir•ov as,Ebx+21 ;ax= sp de proceso a reasumiraov dx,tbx] ¡dx= io de croceso a reasumir•ov word ptr cs:current+2,ds ¡actualiza current ¡actualiza current; «ov word ptr cs¡current,bx
«cv S5,ax ¡nuevo ss:sp (pila)«cv sp,dxpop bxj«p bx
Res:«ov dx,0040h ;■cv es,dx•ov bx,0050hpop es:íbxl ¡recupera posicion ae cursor«ov bx,cs:apt heappop [bx] ¡recupera aptpheappop tbx+21•ov bx,cs:apt heappop tbx] ¡recupera heapptrpop tbii+21pop ds ¡recupera OSpop bp ;recupera base pointerpopf ¡recupera banderasret 4
![Page 119: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/119.jpg)
¡procedure iotransterínu«int:integer; var pl : procese);Iotranster:
push bp«tov bp,sp ¡actuali:a Case oointerpush dsaov bx.cssapt.heap ; sal va apt. heappush tbs+21push íbxl•ov bx,cs:heaoptr ¡salva heapptrpush tbx+2]push [bx]•ov ax,0040h«ov es,as«ov bx,0050hpush es:[bx1 ¡salva posición del cursorlds bx,cs:current ;es:bx = currentpush ds ; sal va segmento de current.oush b? ¡salva desolazaiiento dc current«ov si,[bpM01 ;nu«ero de interrupciónshl 51,1
shl si,i ¡calculando vector oe int.xor as,asaov ss,axpush es:[si+21 ;salva contenido del vectorpush es:[sil :de interrupciónpush es ¡salva dirección de vectorpush =i ¡de interrupciónlea ax.resdriv-eradd as,cs:ctts2t_nucpush sx ¡salva resdrivsr«ov [bxl,sp ¡salva sp de proc. s suspender«ov lbs*21.ss ¡sal 'a s= de ero:, a suspender
¡construyendo fclooue de brinco«ov ex,es ¡bx = segaento de códigoxor as,as«cv al.chpush axlea dx,intresu«eadd ds,cs:oítset nuc ¡ds = desplazaeiento intresu«e«ov ah,elaov al,dhpush axaov ah,di«ov al,9chpush ax
¡«odificandc vector de ir-terrupcisn«ov es:[si],sp ¡nuevo ss:sp de nroccsc a■ov es:ísi+21,55 ¡ejecutar
115
![Page 120: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/120.jpg)
í 16
;resuM pi
ids bx,dword ptríbp+OÜ ;ds:bx dir. de var. de proceso
aov as,[bx+21 ;ax = nuevo =s
#ov dx,tbx] ;dx = nuove sc
•ov nord ptr cs:currert+2,ds ;actualirsndc current can
»ov »ord ptr cs:current,bx ¡proceso a resusir
aov ss, ax
aov sp,dx
pop bx
jip bx
Resariver:pop si ;recupera dir. vec. codificado
pop es ;
pop es:[sil ;recupera vector loditicado
pop es:tsi+21
pop xord ptr cs:current ; recupera current
pop *ord ptr cs:current+2
pep ax ;rocuocra oosiccn ds cursor
iov dx,0040h
íov es,dx
•ov bx,0050h
¡sov es:tbx],ax
aov b^,cs:spt heap
pop [bx] ;rccucera actçheap
pop tbx+21
•cv bx,cs:apt hoap
pop tbxl jrecupera heapptr
pop [bx+21
pop ds ;recupera OS
pop bp ;recupera BP
popf {recupera banderas
ret o
![Page 121: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/121.jpg)
117
¡procedure ìntresuae:Istresuae:
Bush îx ¡salva tedas ios >-ÇQl=tr;=oush esW5h CXpush feçash tp•Cv bo, sop«sh sipush àipush dspush sspesh ssfiov bx.es:aat heap ; sal va apt *eacpush [bx+21push tbs 1•cv bx,cs:hsacctr ;sal va heapctrpush [bx+21pash [bx]•ov ax,öi«40h•ov es, ax•ov bx,öö5W» i sal vs pesicifin ds cursorpush ss;[b:]Ids tx,cs:currentpash ds ;salva seqaentc currentpush bx ¡salva desplazanento currentIsa ax.resint ;salva desda: aliento resintadd as,cs:oHset nucpesh ax
•ov [bx+21,5=aov tb:l,sp ¡salva sp:ic de oret. suspend■ov ax.íbp+121 'cs dejada cor call intresu*e•cv u“,[bp+IO] :ic dsiado +or call ir-trasuKin: dxaav ss,ax jssjso cara prccsso «ansiador*ov sp.dx :de interrupciones.
j«p b*
![Page 122: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/122.jpg)
1 iS
Resint:pop aord ptr csicurrentpop acrj otr cs:currer¡t+Z ¡restaura currentpcp ax {recupera sosicien de cursor•cv dx,úü4ühíov es,dxíov bx,0050híov es:[bxl,axíov bx,cs:apt_heappop [bx] {recupera aptpheappop íbx+21•ov bx,cs:apt heappcp tbx] ¡recupera heapptrpop lbx+21pop es {recupera registrospop sspcp dspop sipcp sipop bppcp dxpop expcp bxpop axadd so,04iret {regresa de interrupción.
Cisableirterrupts:cli {deshabilita interrupcionesret
Enableinterrupts:sti ¡habilita interrupcionesret
Nuc endpCseq ends
end
![Page 123: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/123.jpg)
i 19
APENDICE B
KERNEL.PAS
IO.PAS
![Page 124: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/124.jpg)
120
{ t t m t t t t m t t u i m t t m m m m t n t i m m t t t m t m t t m m i m t i t m m n
{I HQCULQ KERNEL.PAS ii{ t t m t m t m t m m m t i t i m t m m m m i m t u t s M t t m m m m i t i s t m ) }
tmmimmmummmmmmmmmmmmimnum}(I KERNEL PARA TURBO PASCAL CDNCURRENTE FOR URIEL TIRADO RIGS V<
(I 5e craan procescs :cn I a funci in crsateprocess <}(t oe coniuta per bloqueo de proceso en ejecucian l>(t Sc cran terrasinetas de sincrcr.i:aci6n ti
{* se asocia con una interrupcian con el procedUiento naitio 1>i n u n u u t t u t t u u u u x x u t t m t n u t u t u m m u n m m u u u )
{«->
const•axpriority = 1000; tick = 1; sec = 18; Kin -• 1092;
type unsigned = integer; phys_bytes = byte; phys clicks = unsigned; vir bytes = unsigned; vir.dicks = unsigned; apt_sessagE = A aessage; processref =Aprocessrsc; seiaphors = *se*aphorerec; event = *event.rec;
MESE_1 = RECGRD {«ensaje usado per el saneiaddor ds disco)• device : byte;■_head : byte;■.cylinder : byte;i_sector ; byte;i_bytes : integer;■_ccunt : integer;• address : phys.bytes;a rec status : integer;end;
HESS.2 - RECGRD•2rl,«2r2 : processret:■2il,«2i3 : integer;■211,§212 : processret;■2bl : byte;end;
HE5S 3 = REC0R& («ensajc usado para texts)■3il,t3i2 : integer;■3p1 : char;»3cal ; strinafMl:end;
![Page 125: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/125.jpg)
MESSAGE = RECORDasoudes : processret: (oara quién' i quien envia el «ensaje' a.type : integer:n al : iess.1;a_a2 : aess.2;a a3 : aess_3;end;
processrec = record 5uc,pre : processret; prcc : process; priority : integer; tiae : integer; proced : integer;«ess : apt.iessage; end;
seaaphcrerec = record counter : integer; waiting : processref;
end;
aventrec = record reentry : seaaphore; delayed : processref; end;
(I VARIABLE: KANEIADAS FOR BIOS t)
{ t t s m t m m m t t t t t t m t t t t t m m t m m m m t t t m m m t t t m u :varseek.status : byte absolute t0040:!003e; aotcr status : byte absolute 10040:i003t; ictor count : byte absolute Í0040:Í0040; actor goal : bvtc;diskette status : byte absolute 10040:10041;nec.status : array CO..¿1 of byte absolute $004C:f0042;
{ t t l t t U H t t t t U t l t t t l t t t t t t t t t t t U t l t l t t t t U t t M t U U t t U t t t t U t t t t t t )var ti aer,aain,iddle,running,readygueue.ti aeoueuc.
rsceivinqqueue, sendingqueue,any,prccedqueue : processref;{ u t t n m u t u t u M t t u u i t u t u u m t u t u u u t u u t m u u u t m i t u ;procedure ejecutaiprccsd:integer):{ Dada la dirección de un procedi aiento lo ejecuta >begininline'MB/ ISE/ prcced/ (aov bx, Cbp3>
!FF,; $D3 icall bsJ
(oue clase de aensaic '.aensajo tico 1} íaensaji tipo 2> -aensaje tipc 3)
end;{ t t t t m t m t m m t m t t m m t t m t t t u m t t m t t m m t m t m m t m
![Page 126: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/126.jpg)
122
procedure put ip,q : processai!•.inserta un reccn 22 process p antes de un record de orccsss q an na lista de ;?s)
begin
p*.suc := q; pA.pre := q .prs;«*.pre .su: := p; q\prs := p; end;
{ t t t t t t t t t t t t t t t t t t t t t t t l t t t t t t t t t t t t t t t t t t t l t t t l t t t t t t t t t t t t t t U t t U t } procedure rsaevs ip : prccessreii;(slitina un record cs precesso p de su lista)
beginwith 0 do
beginpre\suc := sue; sucA.?rc := prs; sue7:5 nil; pre := nil; end;
esd;{ t t t m m m m t t t m m m t m m m m m m t m m t i m m m m t t : 'procedure outpriorityip.q : processrct):(inserta un recoro de process p et una cola a do acuerdo a su priori dadi var pi : processre* ; pri : integer; ceqirpri := pA.priority; pi := q .su:;>*ils (pi O q'> and fpri >= pl\pricrity) and (o <> pi» do pi pi .sue; it pi O p then petip.pl'; (si no esiste va en la lista inserta nodo;3«d;
i u m m t m t t i m t m t t m m t m m m m t m t m t t m t t t m t t i t t t t t :pro:edure sotpriorit* priority : integerfornara;preesdura ini*se« :nr =e* ; =e#aphore; initvai : integer ; rorasrd;procedure schedule: *cmard;{ S M t t i i i t f t t m i t i i m m t m t t m m m m t m t i t m t t m i t t i m t m i }(procesc) procedure ìdlepro:;
begirsetpr i ori ty¡«aspr i:rity-i); uhi le trae do begir.erableinterrupts;tnd;
and;f i t u m t m s j s t m m m i m i i t t t t m m t m m t i t t m m t m t t t m m )
![Page 127: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/127.jpg)
procedure dock : const clockint = »08; var p : processref;
beginsat pr i or i ty i-aas pr i or i t y»; resole(running;; aotcrjoal := iOc; while true do bag inrunning readygueue .sue; portt$201:=$2C;ioTransferidockint,running .prcci; it lotor.count > 0 then
beginactor count := actor.count - 1; it totor count = 0 then
beginit (actor goal and iF0> O (actor,status and SFO) then
beginport[$3tZl := not or goal; aotor status := aotor god; and;
end;end;(deercuenta tieapo ae espera para priaer proceso esperando} p := tiaequeus .sue;if p (V tiaequeue then p .tias := p .tiac - I;{aueve todos los procesos a lo largo de la fila rpsdy > while (p .tiae = 0» and ip O tiaaqueue) do
begin reaoveipi;putpri ori ty «p,readvqueuei; p := tiaequeueA.=uc; end;
ídecreaenta tieapo de espera para priaer procediaientc escerando) p := procedqueue .sue;if p ercccdquaue then oMiae pA.tiaa - l;{ejecuta todos los procediaeintos listos > while 'c .tiae = Oí and íp prccedqueuo) do
begin reaoveipi; ejecutaipA.prcced! io := prccedquei:eA.suc; end;
end; end;
x t i m m t m m t m t m t m m t m t m t m t t t M i t t m m m t t m n t u t
![Page 128: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/128.jpg)
1 24
procedure schedule : beginif readyqucus .sue O runninq then
fceqinrunning := readyqueue*.suc; transfer «runni ng*.proc); snd;
end;u t t t s t m m t m m m t m m t t m m t t m t m m t m m m t t m m t t i }procedure createqueueivar queue : processreti; beginnei» (queue j; queue*.sue := queue; queue*.pre := queue; end;
( t m t m t t m m t m t t m m t m m t i m t m m m H s t m t t m m t t m i« *}
it PKIHlTlVfiS DEL KEF'NEL PARA PA5CAL CONCUPENTE *}it t)itttttUttlUttUttttttttltttttttttllUUtttttttttttMtMMtnUttttUt}function crcateprccessiproq , neireq : integer'»sprocessref ; var child : processrst; begindisafcleinterrupts; new« child'?;chipriority ;= 3; Corioridad de default:chi 1dA.ti«e := 0;ch iId A. «css:= nil;putpricrityi'child,readyqueuei;child\proc := newprccEssiprog,*e«r2gi;createproc5ss:=child;schedule;if runningA.pricrity ' 0 ther. enablcinterrupts; end;
{ s i t s m t m t t m m m t m t t m m m u m m t m t t m t m t m m i s s s t :
function createpracediproced : integer) sprocessref;
var child : processrsf;
beginnew(child); child .ti*e := 0; child .prccsd := prcced; createproced := child; end;
i m i t t t t t t t m m m t t m m m m t m t t t m t t m t t m m t t t t m m t m
![Page 129: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/129.jpg)
procedure initfccrnel; const clockarea = 1024: idloarea = ¡014; beginaisafcleinte'Tupts; an? := nil; ne*(running:; nemreadyqiieuo:; readyqueueA.sue := running; readyqueue^pre := running; running*.sue := rcadyqueue; running*.pre := readyaueue; createqucucitiiEquauo!;»sin i- running;running .priority := 3:running, »ess := nil;creat.equeusicrocedqueue);cr eatsqucuE vr ecei vi naqusuc;creatsqueueisendingqueue»:ir:itnuc!sue» at=•nuc ?, ranr.inq .proc:;tiier:=crsatepncsssieTsiclQc!e>,clccl<3rsa>;iddles-createprocessiofs'idleproc/.idleareai:3rd;
a t t U t t U t t l t U M I U U t t M U U I t t t t i t U t t t t l t t t t t t t t t t M l i t t t t t t U t i t t ]procedure setprioritv: . 'pri oritvs integer > >
begindisableinterrupts:it priority V running.priority then
beginrunning*.priority := priority; retove ‘running); ireordena la col a ae ready: putpr i or i t y(runn inq, r cadyqueue *; schedule; and
sherurninq\pricrit> := priority;
it running*-.priority : 0 then enableinterrupts; snd;
( t m t t m m t t m t t m i m m u t m m i t m t t m t m t i t m t t m t t t t m }procedure initssii«var set : semaphore; initvsi : integer:- ?
begin newisea):Ki th =e* dc
begincounter := initial :new'nilting:: (inici£li:a cols de seiatora) waiting .suc := waiting; waiting*.pro := waiting;
end; end;
t i m m t m m t t m t m m m t m m t t m t u m m t t t t t t m m t m t m }
![Page 130: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/130.jpg)
procedure M U iss« := e« ap h o re ) : begind is a fc le in te r ru p ts ; w ith ss e do
begini t coun te r ;• 0 then
begincoun te r := co un te r - I ; e ra
else begin
r e to v e 'r u n n in g ; ; p u tp r io r i ty « ru n n in g ,w a it in g ) ; schedu le ; end;
end;i f ru n n in g * .p r io r i ty ' 0 then E n a b le in te r ru p ts ; end;
{ t t t t i i t t t t s m u t t t t t t m m H m t t m m m m i m t m m i t m m m o
procedure s i g n a l i s e i : se«aphorej ; var p : p ro c e s s re f ; begind i s a b le in te r r jp t s ; w ith se« do
begini t n a i t in g <> w a itin g .su e then
begin {pone el p r i« e r proccso sn w s itin a en readvQueue)p w a itin g * .su e ;reioveip);
pa tp r i c r i t y *.p, ready queue ?; schedu le ;
el s:countc-r := :c jn te r+ !
ena;i f r u n n in g * .c r i s r i t . > 0 then e n a b l s n t s r r u p t s : end;
• t t i t l i n i i i t i i m n i i i i i i u i i i i t i t t i i i i i i i t i m i i i i i i i i t i i i i t t i i i m i }
![Page 131: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/131.jpg)
127
procedure signslrisiso« : semaphore; ; var p : prccassrsf; begirdisat'sir.tsrructs: with sc* do
beginit waiting ■> waiting*.sue then
begin {pone el priier proceso en waiting en readyqueueip : = waiting .sue;reiovetp;;cu tpr i or i t.y (p, readyqueue•; end
elsecounter := counter*I
end:if runningA.priority > 0 then enableinterrupts; end:
( t t t t t t t t l t l t t t l t t l t t U U t t t U U t t t t i H M t U t t t t t t t M U t t U t t t t t U t t U t }procedure initevent * var e : event; se» : sesaphore) :
begin newie); with e* do
beginreentry := sei;newidelayedi; (cola de bloqueados vacía) delayed*.sue := delayed; delayed .pre := delayed; end;
end;
procedure awaitie : event': : var p : prccessref; begindisableintsrrupts; re*cvc'running):put ¡running, eA.delayed'; (bloquea prcceso que llaao await:{signal asociada con el seiatoro)with e\reentry do ísi hay proceso en seiáforo libéralo!
beginif waiting <> waiting .sue then
beginp := waiting*.sue; retove-pj;putpriority(c, readyqueuei; end
elsecounter :- counter * I;
end;schedule;
if running*.priority ' 0 then enableinterrupts;
end;{ t t t m m t t m t m u m m m t m m m t m m t t m m t m m t t m m t }
![Page 132: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/132.jpg)
procedure causeie : event? : n r p : prscessret: begindisableinterrupts; with e do
begin■hace que todos los prccsscs bloqueados esperen ai seiafcrc asccia do)while delayed <> delayed*,sue do
beginp := delaysdA.5uc; reaovetp):putpricrityip,reentry .waiting}; end;
end;it rur.ning .cricrity > 0 then enafcleinterrupts;
end;{ i i t t m i t i s t t m m t s m m m t t t m m t i t t m m t m t m t m t u m m }procedure waitioitvpeint : integer; ir»t3259:byte» ; var driver : processret; shadow,status:byte;
begindisableinterrupts; driver := running; status ;s |;fealva apuntador del record de procesc que hi:o el llaaado) reaoveirunning?;running := readygueue .sue; {schedule} it (int825? >s 0) and lint925? 1) thenbeginshadow := pcrtCS213;portt!2ll := shadow and not (status shl intS25?.‘; end;
ictranster(typeint,running .croc);portlS201 := SOb; (leer I5R de 3259>if (port[1201 and (status shl int?2_r• <> 0) then port15201 := $20;portC$211 := shadow;running := driver;putpriorityidriver,readyquecei;schedule;if runr.inqA.pricrity > 0 then enableintcrruots; end;
{ t m t t m m u t t m t m u t m t m t m t m t m t m m m t m t m m m t }
![Page 133: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/133.jpg)
12?
procedure waittibe»t : integer; ;/ar p : processref; begindisafcleintcrrupts; reso -*e irunninq > ;'encusntra U pcsicUn *n U cola ds tieaoo y calcula ?l tieRoo do cs pera relativo al proceso precedente; p := tiaaqueue >suc;while it > pA.tiae) and ip <> tiaegueuci de
begint := t - pA.tiae; p := pA.sue; end;
running\tiae := t; put (running,p);{codifica el tieipc de esperà relative para si siquiente orcccsc/ir p <) tiaequeus then p .tiae := p .tise - t;schedule;if running*.priority • 0 then enablsintcrruots; end;
i t t t m u m m t i m i m t t t t t m t m m m t t t m t m m m m m t m m }
procedure waitproced (p2;prccessref ;t : integer) ;
var p : prccessrst;
beqi ndisafclcifitermpts;{encuentra la posici6n en la ccla dc tictpo y calcula el tieepc dc cs pera relativo al procedisiente precedente; p != prccsdqueue .sue;while it ' pA.tiae) and ip <> prccedqueue) dc
begint := t - pMiae; p := pA.suc; end;
p2A.ti«e := t; putip2,p);Codifica el tiaapo de esperà relativo para el siguisnts oroesse} if p <; procedgueuE then p\tise := pA.tiae - t; if running*, prior it*/ > 0 ther. enablainterrupts; end;
![Page 134: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/134.jpg)
130
procedure reaoveproced ipi:processret};
/ar p *. prccassret;
begin
disafclaintorrupts;(encuentra el proceso on la cola do tieopc y lo reausvo, calcula el tieapc de espera relativo al procedUiento precedente)
p := procedquouo .sue;wfcila (p2 •> pi and (p <> procedqueuo) do p := p .sue; i t p = p2 then (si estaba en Is cola)
beginp := p2A.suc; reaoveipi»;it p ■«> prccodqueue then p*.tiae *.= pV.iao t p‘A.tisE; end;
if running .priority > 0 than enablsintarrupts; end;
{ m m t t m im t m m m i i m t i t t t t t m t m t t t t t m t i m m t m t t m t }
procedure =£ndidest:processref;var »esitessaqe?; var ptprccsssref; begin
disatleintarrupts;running*.aass:=addr(aes); (direeión de aer.saie a enviar)running*.sess .*_soudes;=dest; (a quien envió el lensajc?) p:-recei vi ngqueue*.sue;while ipOrecoivingquauei and ipodest) do p ;= p .sue; (Esperan ai sonsajc*‘ it ip^.iess^.t.scudes = running) or
{pA.»essA.a_5oudes = any) then beginpA.*ess := running*.«ess ; Ccopia aensaie al tu:in dal
destinatario)p\iessA.e_soud35 ;= running; (pone reaitentc!reaoveip:;putpriorifcyip,read/queue); (reactiva croeeso que esperaba aensaend
else beginreacvsfrunningi; (no exists destinatario)putpriority¡running,iendinqquput-); (espera en cola de envíos) end;
schedule;if running*.priority > 0 then enatleinterrupts;
end;
![Page 135: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/135.jpg)
procedure '-eceiv£i=snder:crccessref: VAR ¡»«■.sessa'iei;
var p'.prccESsret;
begin
di sacisinterrupts;
runningA.&3ss:=addriaes*; {direction de buzin a recibir eensaj?}
running*.aess .a.soudes ;= sender; ;dc guien espero El »ensajeV»
p := sendinggueue .sue;
it sender - ar.y than i.alguien le envio aensaje:l
while ip <> sendinggueue) and ip .»ess .».soudes <':■ running) do p:= p .sue else {esta aensaje gue escc-rc";
while ip <> sendinggueue) and ip <:■ sender) do p ;= p .sue? it (p*.scs5A.c.=cudas = running» then
begin
running*,aess !=cA .ae;s ; icopia *ensaie al fcuran del
destinataricO
running".aessA.i scudes := o ; ids guise '■acibi -:1 iensaje*!
reaoveipi; iresctiva procss:- gue envio lenssjE)
putpriorityip,read/queue»;
end
else (no ae nan anviado sensajei
tea in
reaave(running»;
putpri ority irunni ng.recei vinggueue);
end;
schedule;
it running^.criority : 0 then enableinterrupts;
end;
131
procedure ssnd recisrc dst:proccssrcf; var *es:«esssge’:
begin
send isrc_dst,#e5>;
receiveisrc.dst,fces :
![Page 136: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/136.jpg)
{ t t t t m t t m m t t t t t t t t t m t t t i t t t t m t t m m m t t t t t t t t t t t t t t t t t t t t * }
{ t t t * t t t t m t t m m t t i t t t t t t t t t t t t t t t : t m t m t t m t t t t t t t t t t t t t * s t t t i t t t i t( I MODULO 1 C . PAS * ’f t Estas rutinas de salida a display fueren creadas para pedsr usarlas li( t aun en rutinas de interrupción ilas de DOS no sen reentrantes ) t>í t t><t C0NTEN1&1I: l>( t putehar - tuestra un caracter sn display t :( t putstrinq- tuestra una cadena en display t>í t putstringln - tuestra una cadena en display y avanza linea i :(I putint - tuestra un entero en display t>{ t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t m t t t t t t t t t t t t t t t t t t t t i t t t t t t t t t t t t m t t t t t t :
type eensajs = strinq[503; var cclutn : byte absolute $0040:50050;
re» : byte absolute 10040:10051;
< t t t t t t ì t t s t t m t i i t t t i t m t t t t t t t t t t t t t m t t t t t t m t t t m m t t t t t t t t t t t t t t t : >ft PROCEDURE SCROLL i>f t Realiza ol scroll en la pantalla t ;{ t t t t t t t t t t t t t m t t t t m t t t t t t t t t t m m m t t t t t t t m m t i t t t u t t t t t t t m t t t :
procedure scroll; var aus : registres; beginwith sur do
begin as:=10800; bs:-50100;mtri510,aus;; flee atributo) bn := £h; ax:=5060I; cs:=50000; di:-5lE4f; intr(510,ausi; ord;
cclutn:=0; row ',= 2!; end;
i t t m t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t m t t t t t t t t t m t t t t t m t t t t t t ;( t PROCEDURE AVANZACUR=OR t>( t Actualiza posición dc-l cursor |>
{ t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t l l t t t t t t t t t t t t t t t t t t t t T
![Page 137: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/137.jpg)
crccesure av&nrscursor; fceqir,i t :cluan .*= " then
te a i n
if rcte ••= 24 then scroll el 5e
ro*: = ron t 1; col can := 0;
end
e lse
colusn := caluen * I; end;
mmmmmtttmttmttmmumttmmmmtmmmmtmttut:( I PROCEDURE FUTCHftR l>t caractsr = caracter a descleqar *>{ u m m m i m t m m u m u m u n m m j m u m t i t i u u m t m n m m t ?
procedure putchar '.caractsr : char> ;var acs : reqiEtrcs;tsqin
case crd(caractsr» of
SOa: ceqin caluan := 7"; avanzacurscr; end;
$0d: colutn ;= 0
al sewith aux jc
begi nox := lOaOOtcrdicaracter;;
fes ;= 50000:it := 10001;intr iSI0,a*J5f .* ;a.-anzacurscr; end:
and;end;
i t m t m t t M m t m u t m t m m m m t t m m t m u m t t t m m m t m mfi PROCEDURE PUT5TFIWB ti(I Letrora = Istrcrc a dssplcgar i:
{ttltUUtlUttMttttMUtntttMUUntUtUtMtMtttUlUttlMUUttUUtt]
prccadure piitstrinq'.lstrers : aensajs»;
var i sirtteqer;beam
for i ;= I to orddetrercCOl'; do pufceharilstreroti3>;
end;
133
![Page 138: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/138.jpg)
134
procedure put int icr.tero, ancho: integer;;var indi ce:byte;esjeg : boolean;cadena : lensaje;rius_bi ancos : byte;begine5_neg := tc lse;
i t entera < 0 then
begin
05_neg true; entero := -entero; end;
indice := 30; if enters = 0 then
beginindice := indice - I; cadenatindiccl ’O’; end;
«hile entero O 0 do beginindica := indies - I;cadcnatindicd := char((enterc iod 10* + ord ('O’*'»; entero := entero di v 10; end;
if es neg then beginindice := indice - 1; cadenalindicel := end;
nua blancss := anche - 30 ♦ Índice;while nua_blancos > 0 do
beginputchar(char(IZO;>;nua blancos i- nua blancos - Isend;
PROCEDURE FUTSTKIN6LN Letrero = letrero a desplegar
PROCEDURE PtITIHI Entero = entero a desplegarAncho - nuaero de digitos para representar al entero
procedure putstringln(Utrero : acnsaje';; begin
putstringUstrerci; coluan := 79; avanzacurscr; end;
![Page 139: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/139.jpg)
135
«hile Índice < 30 do
beqir;
putrhar‘cadenaCíndicsl-; indicc := indice * 1: end;
end:
FRDCED'JRf ?TATUS325S'IHR = «aseara del 525? <0 habilita int, l enfascara int»IRR = renistro de peticiones de interrupción, 1 = pidiendo interrupción I5R = raaistrc de intcrruccicnes siendo atendidas, I = sir.*iendc
prscadun statusé259; fceqin
cutstrirSQí: IHR=
pctint prrttt¿13.c.: partíí201:=*0a;
putstrira*’ IRR= *•}
CBtinHportt«0]f:»i
petstringi’ IER=
putint ípcrttS203.¿:;end:
![Page 140: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/140.jpg)
136
APENDICE C
DISKDRIVE-PAS
![Page 141: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/141.jpg)
:® = tDI3.IUT - I; ícídiqo cvi disk intyrsct;
US* £E¿£ = *: ícsdiaa tara dist:.■13 SITE = 3; isdiao c y j disk:T63 REFU = 5=:
fciaaií.t.^t
Iteoejadw ds d is :a jje «:s p s r t i t r leer 'is c c á irK ts a c n tc s i f Pscsr fescsr use :s :.¿ IHT -TH. ís :* -« ® cr : : s i : soe -c c ite *en=9i:s c v a re a liz a r oceraciwes de = s :n tc ra : Jeztsra sr. e l disca « 'U n fc ls . El p ra c e a u i» tc fcuT f j f IST 5;3*m a la tandera =Eff ST«Tlf= caaa 5 t i:fc s 2^5 *s e a > ,p e r« it i» d e la s jecsc ito de ntros prccesas p* ese iü te r ia lc de t i e tc :
?! Fssrtos csadcs por e l c rc trr . l:d o r je- s is :s
CCflst3or = *3fI; íbits 25 control :s tatar:♦ ir jU t u s = 13*4: r e a is tr : -e e s ta í: del r w t r o la lc r 25 siseo:f ie data - 5‘ * ! : ir r a is tr e k dat:s da! acairelada*- de a is : : '« é a d e r = $004: > r e r ic para 1 i k its se- d ire tciH » cas ésjos Ü1ÍA'M á_t:c = JOci; A ce rtó cara 4 B its as d ire cc ita «¿s a ltos« a cceat = *005: {caerte cara c a ta d o r dc MÑ ica te ta = fc.tss - i i>día «Z - I00C: ct»9ft-3 ds astade je ?#¿:m s t i = r O t : :p§eria de éstad: de . * * :ñ a _ in f - K ‘íü : tpaerts 35 in c i c -3= ~ftA>
l '§ 3 is t'3 = de estado '=ar s=sd:s *m s resaltada as * a accracie"!
5TC s sC-Oi .reqistra 3e estado ':
: T! = t i : {reai=t»-o de sstaae“ ¿ - s í" : r * a i ; t r : de estad: Z5T3 = iXi ireai;tro se estado 3ireflyesado cor tflVE s€M=€>5T C-L - *03: « ira d a : : r d : : l caairelaáar reparta c i l n a r : '
í€AI- = K 4 : ie rtrada denos el caetrcladar reporta catees=T J E í = £C5: entrada daMe el eantrolador r e c "» a s e :r : r
F13I = i ' ! : ^estrada dw :: í ! coetrrladcr recerta c ilind re £ctueiI
Caicos d s r tr : dt los piierias zz s rtrsaa sa lida
HKCTI5M = *4<-: :esta e l F2C trataaaa de leer : e s c rib ir^CTl í i «Y - I I ' : íasado oara te r caaodc a l FDC es»a x je a d ':CTl ¿£CEPT1I6 = $5i»í í c a t r í f de fc iis m z e l FDC da :uandc esta :c ic s 2‘.HgTíí J lh z l - tfC-s CEstos s ita csc trc lse e l ^ sa is tra 60E asi K t : rEMAíLE IMT = >*C: 'usade para M i l i t a r peer te.- K í '= l:jJ I T 5 = i t i j íd ^ c a 5 ¥&% de seet statasl-
![Page 142: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/142.jpg)
ST3_FAULT = $30; Isi este t i t es 1, el drive ests aanaosl5T3_ttF FF.OTECT= 140; It cuandc el diskatte esta prstsqic:}Sn_RE«DY = $20; 11 cansdo si drive esta lists»'TF:Aii?_:T; = 500; .5 USB de =T0 para READ/HRITE:SEEKJTO = $20; 15 H3B dE =Tu para SEEK';3fcQ_=Ei.TGR = $05; isi este bit es I, antoncas recaiitra;BADCtL = I IF; isi slguno de estos bits es I, recslifcrd)W<ITE_FROTECT = $02; II si aiskatta prctegido contra escritura:CHANGE = SC.0; ivalor retornado par FuC aespuss de reset)
13 zi
FSC_SEEK = SOF; Ccaaanda al drieve para seek)FUCJiEAD * iE i; iccaanda al driver para r?ad;FDC._NF.1TE = $C5; Cccaanda «1 driver para «rite)FDCJEHSE = SOS; Lcsianda al ccntrsler para gue diga su status;FCC_RECfiLIERhTE = $07; iccaar.da al drive para quo pass al cyi. u>FDC_r-FtClF'f = IG3; iccaanaa al dri vs para acc-ptar paracetros;
uMh_F:EAD - $4i; CcSdigo de lectura de FiHft;WWi_WTTE = $4«; ic-cdigo de escritura ds DH»;S
BLOCK.5IIE * 1024;SECTGF.EiZE = 512; {taaaiio tisicc del sector en c/tsslHF_=ElT F5 = $09; 'nuaero jf sectors per tractMR HEADS = *02; 'Jes cabazas i .e ., dcs tracks.cylinder'3i:F = i2A: 'taaaSa de espacie entre ssctcres:OTL 1 IFF; Idetcrair.a la longitud Jsl scctcr*SFEC1 = $lF; -Iprifisr paratstr; para SPEr !F»>?E£2 = 102; ¡segundc parAaetrs para SPECIFY'
ERP.JEEK = -1; (pcsicicnaaientc srrfineo}ERR JR h ris FE R = - 2 ; Ctransterencia f-rrancaiEFR HThTUE = -I; (sucedio algo aalo al ofctar.ar status)ERR_RECALI3RATE = -4; {receiitrate na trabsje corrcctaicnte;EFR>F_FFCTE-:t= -5; idisketta prctagidc csnrra sscritura!ERR_I‘R IVE - -c; lalgc salo en un drive;
![Page 143: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/143.jpg)
NA< EF.F0RS = :¡ [| je intentes de ra. xt annss a? ?bar.donarl:Hh> PENULTS - 8: I »anuo de b.tes regresados cor e! FDDHF ORIVE“ : I; » i4si*c da drivas';Hft>: FDCPETF't = 100s II ds intentos dc sacar intomacion a1 FDONR_ELKK5 = 720; it de bloques en un disco dc ? sectores)0K~ = 1:
int- tl ag = ISO;
ti Estructura para guardar el estado de cada unidad de disco flexible i)
TYPEtlcpp; = t'locp,'dri/e; t i oppv drive- = record
f I 2CCCGS : byte ; -DISK READ 0 DISK «RITE:fl curcyl : byte : ¡cilindro actual-fl. dri/e : b.-f; ; -drive cireecianíco)ti cylinder s bvte : c ilindro direccienads»ti.sector ¡ by te ; <sector diroccionado:t i . head : byte : «cabera dircccionada;fl count : integsr ; ^contador de bytes!-fl address : byte ; «dirección virtual de usuario;t i . results : arra/tfj..Hh'*_RE=ULTS1 of byte; tel controlador cued-';
errores';tl.calibration : boolean ; íCALIBRmTED or UHCALIBRhTES)end;
CONST
UNChLCBFimTEI} = raise ; Mas dr ivas necesitan ser rocalibradcsiCALltfivTEü - true ; {no se reauicrt recalitracicn-
VAR
tloppys ; arra/CO..NR DRIVES! of floppy.dri^s; prev actor : byte; {que eotor se prendió al ultUa'ineed reset ; boolean; 11 cuando hay quo resaterar controlador'initialized : boolean: 11 después de priaera transferencia!steps.por.c/l: byte; it pulses por cilindro al steper actor!disk.driver : prceessref:
procedure real addresstp:phyt.bytes;-.ar pr-sphyc b-.tes)s begininíine¡J5i‘- SC4/ $46/ iO¿/ S?C/ «C3/ SSI/ *E!.; SFGOO.' 133.-' Id2- *5a.‘ SC"'
«61/ «Eh/ «M/ «Eh/ «DI/ «EG. ÍDS* tW IOC,* «C1/ «81/ «El/ I0FFF■
101/ «El/ «01/ IEI/ 11)1/ SE1; «01/ «El/ «FS/ 113/ «Cl/ «S3. 502.100/ «C4/ it>i: «04/ «26/ «39/ «St.* «02/ 12t,; «9?.- I4t/ «00/ «8B/SEC:;
end;iUHum ntiutium m tuuuuttm nutuuuuuuxm uuuutiuun}
HijroUnscâ
![Page 144: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/144.jpg)
140
function phvE ¿scress•'c:chvs_bytps#sphvs_bytes;• ar apt _aux : phys_fcyts5;beginrsal _addrcs= *p,apt 3*.:; physjtidress := apt_aut? end;
{= FDC DUT =>
procedure *dc_out-valsbytsi;(Saca 'in byte hacia el controlador 32 floppy. Esto nc es tan trivial, /a que usted puede escribir ur.icatente er¡ ei, cuando el decide 'escuchcrlo". si f-1 controlador se rehúsa a «cuchar, se «anda un reset por nardaars al controlador)var retries,r : integer;
beginit not need_reset then beginretries := HAiFBC.FtTF.Y;fpusden necesitarse varies intentos cara que el controlador acepte el coianao) «hile retries > 0 dc
beginr := port[FíC STftFUS 1;r := r and -MASTER OF. DIRECTION;; (solo esacina tits 2 y Slit r <) CTlfiCCEPTIHS then retries ;= retries -1 (FyC no est3 escuchando} el se
beginper t CFlíC _ DAT m 1 ;■ val; retries := -i; end;
end;it retries > -I then need_reset := TRUE; end;
end;
procedure wait_for_int; beg ir.it seek status and f£0 = 0 than *<*itioviOe,òi;SEEK STATUS ;= =EEK_S1hTUS and ??i;end;
![Page 145: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/145.jpg)
141
♦unction fdc_resultsifp:flcppy) : integer;litrae resi'ltadcs dal ecntrsladsr despues ds ana oceracian)\ar i,j,status : oyte;
deep estravardo bytes del ccntreladcr hasta que nc axista etrcJbeginis-0;while i i HAX.RESULTS do beginstatus portCFOC,STATUS!; if •status and HhBTER = "• then
begintdc.rssults := ERR_STATU5; i t= MAX.RESULTED1: end
else beginstatus : = port[FDC .STATUS!: -lee d* nueve?it (status and V.lFlfTIilHi = v than
beginfdc results :- ERR.SThTIK; i := HhX_RE:l!LT:+l; end
else beginfp .fl resultstil := per11FI»C_DATh 1; tor j :=0 tc 5 do; (gasta tieipo)status portCFSC STATUS1; if (status and CTL BUSY) i> then
beginfdc results := OK; i := Hut FESULTSM; and;
end: end;
i := succii:; and; (end xnilc;
if i = HAX .RESULTS then beginneed.reset true; fdc.results := ERR.SThTUS; end;
end:
![Page 146: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/146.jpg)
1 A 2
procedure reset?;
¡Randa un coaando de reset il ccntroladcr. Este es hecho aespues de cualquier
catastrcfc coao rchuss s ccnicster;
var i,r,status : byte;
>P ■ ílappvi begin
íSeshabilita interrupciones y prueba el bit de reset baje;
need_resct := FALSE;
disableinterrupts;
•ctor_status := 0;
aotcrjcal := 0; pert[DOR] := 0; ,
pcrtIDOF] := FNABLEJNT;
enableintarrapts;
wait_fcr_int;
fp := addriflcppystOl);
rp .tl_results[01 := 0 ; tdc.outiFtCJEHSEj;
r := fdc_resultsitp:j
if r O OK then writeln i’FALLO RESET'>;
status := fp .il.rrsultstOl;if status i > CHANGE then writelni’ FDC Nú ÓUFDA LISTú DESPUES DEL RESET’> else
begin
fdc out(FDC SPECIFY);
fdc.cut'SFECl»;
fdc.out(SPEC:-;
fcr i 0 tc HR_DRIVES - I do tlcppysCil.fl_calibratior. ;= UNCALIBRATED;
end;
end;
(strobe reset bit low;
{strobe it high aoaiio
tusa tloppy 0 para prueba)
![Page 147: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/147.jpg)
procedure dea setuc'fc : floopy»;Í Là PC pusde realizar ocsraciones DHh usando un chip centro1, ador je OHA. Para usarlo es necesario :ara?r una dirección de «eeoria ae ;(■ tits psra leer o escribir, el •■'«ere de by fes a transferir - l y un codino de h e lara : escritura. Esta rutina habilita cl chip de DHA. Note au» ei 'hic no es capa: de realizar transferencias eas alia de i ¡ kb íoor ejeiclo no puede leerse- un block de *12 bvtes E*pe:ande er la dirección tisica ¿5520)
i 13
var Mda,lsM_addf,hi3MJdr,top_3ddr,lcH c^.high_cti:by*:e;us&r_ph.s : phy5_bytcs;
teg inif tp .fl opcode = &ISK «FITE then icae := OHA BRITE Else
aods := FEhO;L’sw.plivg ;■ phys addressí*? .fl sddrcssis lw_5ddr := leicfs'.usor phys »ï ; high.addr i- hi iüts‘usK_phys u ; tsc.addr := Is*sag(user phys •>; lSM_ct := lî ifp .f l count-1»; highct := hi<fp .fl_count-D;'Ahora inicializa les rEçistrcs de SMhî disafclcinterructs;pcrt[iH*_N21 := sede: ílispia nrstlast fli-flcc’.psrttCRfiJUl := iode? (»odo de trami si an sencilla ‘pcrtCSHA_TQPl : = topaddr; Í4 bits aas altos da dirección)portirHfi_ADDR] := loaaddr: (f¡ bits tos bajos dc dirceeicr>pcrtCSHA iiSàRl ; = righ_:-1dr; '= bits siguiantes dc diraccion-per 11 IiMA_CtiüHT 1 := low ct: -contador dc bytes ? sever b=ic-pcrv'jhi_CQUNTÍ := lugh.ct; ¡contador da c.tes ■: io er alto:enablEintcrrupts:pertica 1?IIT1 j= iOZ: ili*pia canal 2 ds DNA)end;
![Page 148: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/148.jpg)
144
procedure surt.sator i-fp : tlappy;; var actsr.bii,running:byte; begindisablaintsrrupts;•ctcr_ccunt := ’»sec; i5 segundas laxiic de tieepc)■otcr_bit:= 1 shl i-fp ,t1 _drive+4: ;•ctor_gcal := «ctsrbit cr ENhBLE_IHF ar tp .tljrive; if iiotor.status 2nd prcv iotor) <> 0 then aiotor goal := *otor_goal or prov totcr;running := «ctcr.status ana «torjit; iditsrente dc cero si cl ictcr esta encendido)pcrttCORl := totcr.goal; ictcr.status := astor.goal; prev.ictor «otor.bit; ensbleirtErruptc;
(Ei ei tctcr ya astaba prendidc no csperas'. it running = 0 then waittiieiStiict;; sr.d;
![Page 149: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/149.jpg)
145
function rscalibrats'fpsrloppyi:integer;{ El controlador de floppy no tiene «añera de determinar su dirsccion sbesiuts ‘cilindro'. En lugar da eso, el tueve U cabaza »¿n cilindro cor caso, llevando esta cuenta por software. Sin eibsrqo despues de un colando 9EEK si hardware lee la inforaacicn desdo el diskette diciendo en que lugar se encuentra en ese toter-to. =i la cabeza esta en ur: lugar erroneo ,se hace una recalibircion for zande a la cabeza a desplazarse al cilindro 0.;
var r : byte; beginstart iotoríípj; <nc se puede rocalibrar con un totor apagado’,fdc .out ÍFÜC .RECALIBRATE':: (avisa ¿1 contrrlsdor ose se recclibrc >+dc_out(fp .fl.drivej; ¿Escarifica drive)if need reset then recalitrrte :=FFfi SEEK alas beginwait for int;Tcheca si la racalibracion ss llsvc a cabo: fdc.outiF3C_SENSE;;r := ftic.rasultsifpi; iforza a SEEK la siguiente vez:tp .fl.curcyl := -1:if (r í.> 0K> or ilfp .fl.rcsulksIETOl and STO.BITS) <> SEEK STOi or
<tp .fl.results!ST.FCH1 i> 0» then íla racalibracion fallo hay que resetear al FDC: beginneed reset := true; fp .fl calibration := UNCALIBRhTED; recalibrate := ERR.RECAL16RATE; end
alse beginCrecalibracicn exitosa} fp .fl calibration := CALIBRATED: recalibrate := OK; end;
end; end:
![Page 150: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/150.jpg)
146
íFcsicicna U cabera asi drive especificado sn el cylindrc aesaado; tunctior. seekirp : -ficppy: ¿nteger ; var r : i r.tager;Begir:í Proporciona un ccasnoc de íEEK en el drivo indicado a senes que la cafce:a este ya posicionada en el cilindro adecuado){ Estaics posicicnadcs en el cilindra correcto?} nith fp de begirit tljialibraticn r UHCAL15F;ATES then
it recalibrateitpi <'• DK then r := prr_set?í:; it iH_curcyl O tl_cylinder.* and fl_calitratien then
beqinCcilindrc errer.eo. Manda un sceic y espera per la interrupción; fdc_cutiFDC_5EEK); (Eapieza asneando coaandc seefc)tdc_outüfl_head shl I) or fp .fl_drive); fd:_ci¿tifl_cyi:nder i steps_per_cyl>; if (nced.resetJ ther. r ERR_5EEKelss
bagin«it.íor int;:53 rscifcic interrupción, checa estado dsl drive? í de _our • FDC_=EH-:áE .■; r := tdc.rssultá’tpi;i»itl_res,jlUt5Tül and ET0_3IT£> O 5EEK_5T0 then
r:= ERRJEEK;ititl resuUsfSTll fl_cylinder I steps oer cyl; then
r:= ERR.aEEk; it r O OK then it recaíifcrateitpi O uK then
r := EF:R SEEK; crd;
endelsc ícabaca yj posicionada":
r OK; end;
saEk := r; end;
![Page 151: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/151.jpg)
147
\Tnrstioro clcque 33 dates de aisco a aGacria a as aecria a ai =ca‘.■function transfiic : floppy; ; integer;El drive esta ahcrs cn €l ciiindro corrects!
var r,s,cp : integer;
<]a*as trat3ra as trans*itir si el drive esta descalibrado o el aotor apagatic} Bcqinwith tp do
beginit fl.calibraticn = UNCALIBRATED hhen r := ERR TRANSFER Else
beginif ’.(sotcr status shr ill drive t 4n and !i =0 then r ERR.TRANSFER Else
begin(El soaands ss ejecutado enviande » bytes al controlador}if fl opr ode - DISK.WRITE then sc i= FDC WRITEelse
cp := FuC.READ;fdc_out(cp»; faandc coaandc de lsctura c escritura:fdc outi’-tl head shl 2» rr tldrivti:fdc.sutiflcylinden ; '.gue cilindro»tde.outifl head); Caue cabeza}fdc cut(fl sector*; ique sector}tdc.outi2): itaiana de sector:fdc cur(NR SECTORS); (quo tan qrande o= on trak}■fdc out «SAR>: -Iqae tan grand:- es ei tAF>fdc auKSTLi; ilonqitiid de dates)f Blogueate esporandc interrupcion del disca! it Reed_ro=et then r ERF TPAN FEP rise
teginwait ter int;'lee resultados y checa si hay errores} r := fd: results ifp); if r <> OK *hen transf := relse
begin
if itlresuUsISTll and BAD ¿ECTOR;or !tl_resi*lts[=t23 and BAD_CrL) <) 0 then
fl.-alibrafion := UNCALIBRATED; it itl resultsI:Tll and MR ITE PROTECT) <> 0 then
begin
writelni ’EL DISCO EN EL DRIVE :,fl drive,’ ESTA RPOTEGIPO’'*;r := ERF HR FRQTFl'l;end;
if 'ifl resultstSTOl and STO.BITSi <> TRANS STO'» then r := ERF:.TRANSFER
else begin
if iflrasultstSTll or fl rcsultsC=T“3> <> 0 then r := ERRTRANcFER
![Page 152: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/152.jpg)
L’Vi
'coipcra Ki nuierc ds sectores trsnsteridos con si esperitia.
else begin
s ;= <tl rssuUstsT.CYLl - +l_cylinder;iNR HEADalNR.:ECTGR?:s 5 + it l resultsfsT.HEhD] - ‘ i.heed.' i NR ,SECTUR=;s ;= 5 ♦ ifl.rasultstST.-ECl - t lsec tc r ;;it s J:.ECTOR_£IZE ■:> *1.count then r := ERR TkfiNSFERslse
r := UK;
end; end;
srd; end;
er.d; end;
end; transf := r; or.d;
![Page 153: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/153.jpg)
function ccrdwt \«sss : aessage) : integer; i LLeva a cabo uns peti ci on ds lecturs c escri turs ?. oisco':
r,drive,errors : integer; tp ; t¡cppv drivc;
tdeccditica los paroaetrss del sensaje) beginstepsjer cvl *.= I; nith icss.ii ill do beqindrive := t device;(si drive valido add ante * if ¡drive >* 0) and '.drive « HR DRIVES) then
beqin
fp := addr(flocpysCdrivel); ife apunta al record de este drive:with fp do
begin
fldri/e drive; isalva explicitaients el nuserc de drive)fl opcode := «ess.«.type? iClSK PEAD o D!=l EfilTE>fl.cylinder ;= « cylinder;fl.sector * sector;fl.head := » head;fl count := «.count;fl.address := « address; ifl address = ADDRESS: end:
if fp .fl.count = RLOCK 5I2E then beginerrors ;= 0;
'Este loop peraite que una cceracicn ‘allida se ropita} while »errors <= Nh! ERRORS) and >r O OKi do
beginerrors ;= errors ♦ I;
if initialized and i:rrors = NhK EFFOFS'i and ¡fp .tl.cylinder . 0»then
beqin
if steps per c/1 > I then writalni’disketta no leible’» else
begin
steps.cercyl ;= steps per c/l t 1; errors := end;
end;
iPriaero checa si se requiere un reset) if need_rcset then resetf;(Prapara chip de DHA) d«2_setup«fp';;
i'.'s si el «ctcr esta prendidc, si no lo prende y espera; start fcotcnfp);
(5i buscatos un nue o cilindro posisionate en el) r := seek ifp;;
![Page 154: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/154.jpg)
iRealira Is transtercncia> it r = OK than r:=transt(ip>; it r = ERE HR PROTECT then errors := HA?.ERROR: ♦ 1: end iendwhile;
end (it ti count} else
de.rdwt := -22; {EIMVALJ end iit drive)
elsedo_rd«t -5; {EIG>
end; >ith>it ir =• OK) and itp ,tl_cylinder > 0) then initialized :=true;ii ir = On then do.rdwt := ELOCK.SIZEelsedc_rdwt -5; (ElOi
end;
(UtutuuuuuuuuutmuuuumtttttuxiuuutMUMtuuumM}procedure tloppy.task; var r : intagcr;
tssO : aessaqe; beginneed_reset := true; while true do beqir.r3ceiv9(an/,»esO.'; csss aesO.a type ot
OIEK READ : r := do_rdnti«esOi;DIEK WRITE : r := do_rd*tiaesO:;else r := -2? CEINVAL:-;end;
•esO.a_t.ypB := TASK REFLY; fissO.*_»l.«_rep_5t2tus := r; ssn d i« G s0 .3_scude s,ae s0 ); end;
end;umuumuMunumtttnttuuuttnuumtnttnuttxmuuuMm}♦unction lestrackidevicE,head,cylinder,sector : intsqcr; bufter : phys bytes; i integer;var aes : aesssqe; beginwith aes.t_al do begin•_davica := device; a_ccunt := 1024;«.sector := sector; a.addrass := bufter;• cylinder cylinder; a head := head;*es.a type := OlrKREAD; scndrec <disk_dri\er,«e=): laetrack a.rap status; end;
end;
![Page 155: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/155.jpg)
15 I
{ t t t m m i m i m m m t m t u m t m m u h m m t m t j m t m m m m s t i nfunction cscrifcetracMdevice,head,cylinder,sector : intsqer; cutter : Gh/s fc/tes)
: integer;var *55 : *cssage;beginwith «es.« »1 do
begin
«.device := device;■ count := 1024;
a_sector sector;
*_address := bufter;
• cylinder ;■ cylinder; i_head := heaa; aes.s.type := ¡»ISKJWITE; send ree idi Et driver, *ee): osericetrack := « rep,status;
end; end;
procedure initdiskdriver;
begin
disk driver := croateprccassiotsitlcppy.task).1018);
end;
![Page 156: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/156.jpg)
El j u r a d o d e s i q n a d o p o r l a S e c c i ó n d e C o m p u t a c i ó n d e l
D e p a r t a m e n t o d e I n g e n i e r í a E l é c t r i c a d e l C e n t r o d e I n v e s t i g a c i ó n
y d e E s t u d i o s A v a n z a d o s de l I n s t i t u t o P o l i t é c n i c o N a c i o n a l , a p r o b ó
e s t a t e s i s el 6 d e N o v i e m b r e d e 1 9 8 7 .
D r . M a n u e l E. \¡G¡mjmáJn R e n t e r í a Dr . A r m a n d o M a l d o n a d o T a l a m a n t e s
F i s . R e r y é / m d a l q o S a l i n a s .
![Page 157: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/157.jpg)
![Page 158: CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS ... · para el diseño posterior de un manejador de archivos. La primera parte es desarrollada en lenquaje ensamblador para loqrar](https://reader036.vdocuments.co/reader036/viewer/2022081606/5e885dd30f7f6925b77d4c05/html5/thumbnails/158.jpg)