You are on page 1of 14

UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID

Facultad de Informtica
Escuela Universitaria de Informtica
Departamento de Lenguajes, Sistemas Informticos e Ingeniera de Software
SUBSISTEMA DE CONTROL DE ENTRADA / SALIDA.
EJERCICIO N 1.
Determinar el nmero de cilindros que debe recorrer la cabeza de lectura de una determinada unidad de disco,
para atender las siguientes peticiones de servicio.
Dichas peticiones requieren informacin de los siguientes cilindros:
12, 180, 23, 49, 190, 5, 111, 134, 88, 9.
Las condiciones a tener en cuenta, para la realizacin del ejercicio son las siguientes:
Las cabezas de lectura/escritura, estn situadas en el cilindro !".
La ltima peticin atendida fue sobre el cilindro #".
$l disco dispone de %%& cilindros.
'plicar los algoritmos: (()* + (,'-.
EJERCICIO N 2.
Determinar cual de los algoritmos de planificacin del disco, (()*, (,'- . ,/L001, proporcionan el
ma.or . el menor desplazamiento de las cabezas de lectura, para atender los siguientes requerimientos, ordenados
segn la antig2edad de la peticin:
5, 15, 190, 30, 1!0, 55, 120.
Las condiciones a tener en cuenta, para la realizacin del ejercicio son las siguientes:
Las cabezas de lectura estn situadas en el cilindro #" . sigue una tra.ectoria ascendente.
$l disco tiene %"" cilindros.
EJERCICIO N 3.
Determinar cual de los algoritmos de planificacin del disco, proporcionan el menor . el ma.or
desplazamiento de las cabezas de lectura, para atender los requerimientos siguientes, ordenados segn la antig2edad
de la peticin:
3, 18, 210, 42, 280, , 115, 92, !4.
Las condiciones a tener en cuenta, para la realizacin del ejercicio son las siguientes:
Las cabezas de lectura estn situadas en el cilindro &" . siguen una tra.ectoria descendente.
$l disco tiene 3"" cilindros.
EJERCICIO N 4.
Determinar el orden de atencin a las solicitudes realizadas a un soporte de almacenamiento en disco de 4&"
cilindros, indicando el nmero de cilindros por los que debe pasar la cabeza de lectura si se aplican los algoritmos ,/
L001 . (()* a la siguiente cadena de solicitudes de cilindro:
-56$70 D$ ,8L8-D70 )8$690 D$ LL$:'D' D$ L' 9$)8,8;-
< ",4 msg.
%& ",% msg.
=< ",3 msg.
!# ",= msg,
3% ",& msg.
4& ",# msg.
4%" ",! msg.
#" ",< msg.
3" ",> msg.
$l tiempo empleado en servir una solicitud es de ",% mseg. . antes de comenzar a servir las solicitudes, la
cabeza de lectura esta situada en el cilindro =" . acaba de atender una peticin en el cilindro 3".
SUBSISTEMA DE CONTROL DE ENTRADA/SALIDA 1
EJERCICIO N 5.
,onsid?rese un soporte de almacenamiento en disco de 3"" cilindros, 4" pistas por cilindro . 4& sectores por
pista. $l tiempo medio de posicionamiento es de 4& mseg. . el invertido en transferir un sector del disco a la memoria
es de 4 mseg. $l disco gira a !&"" rpm @revoluciones por minutoA.
Bn programa que esta procesando un fichero distribuido aleatoriamente sobre el disco realiza las solicitudes:
-56$70 D$ ,8L8-D70 8-()'-)$ D$ LL$:'D' D$ L' 9$)8,8;-
43 " msg.
%! & msg.
4<" 43 msg.
=3 33 msg.
4% !< msg.
4 <3 msg.
43 <> msg.
4%! 4"= msg.
%& 44% msg.
%3& 44! msg.
> 44> msg.
43" 4#" msg.
8ndicar el orden de atencin de las peticiones . el nmero de cilindros recorridos si se utiliza un algoritmo de
planificacin de disco:
aA L001
bA (()*
-0)': $n el instante inicial la cabeza de lectura se encuentra sobre el cilindro =" . acaba de atender una peticin en
el cilindro 3".
EJERCICIO N .
(ea un sistema con un disco que tiene las siguientes caracterCsticas:
$l tiempo de bsqueda de un cilindro viene determinado por la eDpresin 3 E ",4 D n msg siendo n el
nmero de cilindros a recorrer.
$l tiempo de una rotacin es de &" msg.
Durante el funcionamiento del sistema se reciben las siguientes solicitudes e ese disco:
-56$70 D$ ',,$(0 8-()'-)$ D$ L' 9$)8,8;- ,8L8-D70
4 " msg. %
% 4" msg. <""
3 4& msg. &""
= %& msg. 3""
& <" msg. !&"
# 4&" msg. <""
! 4#" msg. &""
< 4!" msg. 3
> 4>" msg. =""
$l brazo del disco para t F " esta en el cilindro %".
$l tiempo de latencia inclu.endo el acceso al sector, coincide siempre con el tiempo medio.
,alcular los instantes en los que se completan las peticiones 4 a > de la tabla anterior, si se emplean las
siguientes polCticas de servicio.
aA (egn el algoritmo *,*(.
bA (egn el algoritmo (()*.
cA (egn el algoritmo L001.
SUBSISTEMA DE CONTROL DE ENTRADA/SALIDA 2
EJERCICIO N !.
Bn sistema operativo gestiona la $/( controlada por programa, para varios controladores de dispositivos
mediante una rutina de escrutinio. Disponemos de = controladores: disco, cinta tambor e impresora, que gobiernan los
siguientes dispositivos:
% discos llamados D4 . D%.
3 cintas llamadas ,4, ,% . ,3.
4 )ambor llamado )4.
% 8mpresoras llamadas 84 e 8%.
Las caracterCsticas para cada controlador son:
,0-)70L'D07$( DB7',8;- D$ L' 7B)8-' D$ ($7G8,80 978078D'D
D8(,0 > msg. 4
)'6H07 4& msg. %
,8-)' %& msg. 3
8697$(07' &" msg. =
(e producen las siguientes interrupciones:
D8(90(8)8G0 606$-)0 D$ L' 8-)$77B9,8;-
,4 " msg.
D4 4" msg.
,% 4% msg.
D% 4= msg.
84 4& msg.
,3 #" msg.
8% #& msg.
)4 ## msg.
La ma.or prioridad corresponde al menor nmero.
aA ,alcular el tiempo de latencia por controlador . el tiempo medio de latencia general.
,onsidere en este caso que, el tiempo necesario para el cambio de conteDto, es despreciable.
(e permiten anidaciones de interrupciones, atendiendo al nivel de prioridad.
bA IJue ocurrirCa con el tiempo de latencia por controlador si no se permitieran anidamientos de
interrupcionesK
$s necesario tener en cuenta, para este caso, que el cambio de conteDto es de 4" msg.
EJERCICIO N 8.
(e pretende diseLar un subsistema de $/( dirigido por interrupciones vectorizadas, con las caracterCsticas que
se eDpresan a continuacin:
$l bus de datos del procesador es de < bits . el bus de direcciones de 4# bits.
$l sistema almacena un b.te en cada posicin de memoria.
$l sistema deber poder trabajar, con hasta un mDimo de ocho controladores, cada uno de los cuales,
dispondr de una tabla en memoria donde se almacenarn, las direcciones de comienzo de las subrutinas
de atencin a sus interrupciones.
La direccin base del conjunto de las tablas, que estn almacenadas en memoria de forma contigua, ser
la direccin =.">#.
(e desea indicar:
aA $l formato del vector de interrupciones generado por el sistema, en funcin del vector de
interrupciones enviado por el controlador.
bA Las direcciones fCsicas de las posiciones de memoria, que deben contener, la direccin de comienzo
de la subrutina de atencin a la interrupcin %=, del controlador #.
cA I,ul es el espacio de memoria ocupado, por el total de las tablas de los controladores . por cada una
de las subrutinas de atencin a una interrupcin de cada controladorK
SUBSISTEMA DE CONTROL DE ENTRADA/SALIDA 3
EJERCICIO N 9.
Bn sistema que gestiona la $/( por interrupciones vectorizadas, dispone de un bus de datos de < bits . un bus
de direcciones de %" bits. $l sistema almacena un b.te en cada posicin de memoria.
$l vector de interrupciones enviado por los controladores consta de dos campos:
Los dos primeros bits, es decir, los ms significativos son los que identifican al controlador.
Los seis bits restantes, corresponden al cdigo de una subrutina especifica del controlador, .a se sabe,
que un controlador puede interrumpir a la ,9B, para que ejecute una subrutina en particular, del
conjunto de subrutinas del controlador.
,ada controlador tiene asociada una tabla en memoria que contiene las direcciones de comienzo de sus
subrutinas. $stas tablas estn colocadas en posiciones contiguas en memoria.
$l vector de interrupciones del sistema generado cuando el controlador 4 requiere ejecutar la subrutina 4! es:
"..." """4 ""4" "44" 4""", es decir =.!4% en decimal.
$l vector de interrupciones del sistema generado cuando el controlador 3 requiere ejecutar la subrrutina > es:
"..." """4 "4"" "4"" 4""", es decir &.4>% en decimal.
(e desea resolver los siguientes apartados:
aA 8ndicar, las direcciones de comienzo . finalizacin en la memoria, del conjunto de tablas de los
controladores.
bA ,alcular, el tamaLo que ocupa en memoria, cada una de las tablas, de cada controlador, e indicar a
su vez, el tamaLo de cada rutina de atencin.
cA 8ndicar cual es el formato que deberCa tener el vector de interrupciones del sistema, si la direccin de
memoria de comienzo de las tablas, fuera la direccin &.4%" en decimal.
EJERCICIO N 10.
,onsid?rese un sistema, que utiliza el siguiente mecanismo de direccionamiento:
Las direcciones lgicas son de 3% bits . se encuentran formateadas en dos campos. $l primero, formado
por los 4# bits ms significativos, eDpresa el nmero de segmento . el segundo, eDpresa el
desplazamiento.
La direccin fCsica se obtiene, multiplicando por 4# el nmero de segmento . sumndole al resultado el
desplazamiento.
-o se utiliza por lo tanto, ninguna tabla para la traduccin de direcciones.
$l bus de direcciones es de %" bits . el bus de datos de 4# bits.
$l tamaLo de la palabra de memoria es de 4# bits.
La $/( de este sistema, se gestiona mediante un mecanismo de interrupciones vectorizadas anidadas, en las
cuales, la ma.or prioridad corresponde al menor cdigo de interrupcin.
$n este sistema ser preciso tener en cuenta que:
Los cdigos de interrupcin enviados por el bus de datos son de < bits.
La tabla de vectores de interrupcin esta situada al principio de la memoria fCsica, es decir, en la
direccin """""h.
Las interrupciones provienen de dos fuentes: )eclado . Disco duro.
)eclado:
Las interrupciones de teclado, se generan cada vez que el usuario pulsa una tecla . la libera.
(u rutina de servicio tiene un tiempo de procesamiento de ",3 msg.
$l cdigo de interrupcin es el &.
$l ritmo de trabajo del usuario es de 3"" pulsaciones por minuto . la primera interrupcin del teclado, se
produce en el instante t F ",% msg.
Disco:
,ada vez que termina de atenderse una solicitud de disco, se genera una interrupcin de disco, para
indicar al sistema la finalizacin de la operacin de $/(.
La rutina de servicio de esta interrupcin tiene un tiempo de atencin de ",3 msg.
$l cdigo de interrupcin es el 3.
$l tiempo de servicio de una solicitud de disco es de ",4 msg.
La secuencia de solicitudes es la que sigue:
SUBSISTEMA DE CONTROL DE ENTRADA/SALIDA 4
-56$70 D$ 07D$- -56$70 D$ ,8L8-D70 )8$690 D$ LL$:'D' D$ L' (0L8,8)BD
4 4" "," msg.
% 4> ",& msg.
3 &> 4,4 msg
= % 4,3 msg.
& >3 %," msg.
# 4%" %,3 msg.
! %3 %,! msg.
< %4 3,% msg.
> 3= 3,& msg.
(e aplica el algoritmo (,'- a las solicitudes realizadas a disco.
$l contenido de parte de la memoria del sistema es el siguiente:
-56$70 D$ 07D$- D87$,,8;- *M(8,' ,0-)$-8D0
4 """"= %<,%h
% """"& 4&#Hh
3 """"# "3%=h
= """"! ""%'h
& """"< #4'3h
# """"> 4>"%h
! """"'h "%D4h
< """"Hh "4%3h
> """",h %<4%h
(e desea resolver los siguientes apartados:
aA 8ndicar en que posicin de memoria estn almacenadas, las rutinas de servicio correspondientes al
teclado . al disco.
bA Determinar el orden de atencin de las solicitudes de acceso a disco, indicando claramente, cuantas
interrupciones se generar en el sistema hasta que son atendidas todas ellas.
EJERCICIO N 11.
Bn ordenador debe realizar las tres siguientes funciones:
4. 7ecibir datos procedentes de un canal de $/(.
%. 9rocesarlos utilizando un determinado algoritmo.
3. 9resentar el resultado en una pantalla grfica.
Los datos se reciben a una velocidad de %".""" b.tes/segundo . estn agrupados en bloques, cada uno de =.""" b.tes.
aA 8ndicar si se podrCa simultanear de forma eficaz la recepcin de datos . su procesamiento, en el caso de que la
recepcin se atienda usando un mecanismo de interrupciones, que se activa con la llegada de cada uno de los b.tes
de datos del canal.
(uponga que, para los efectos de este apartado, el tiempo medio de procesamiento de una instruccin en el sistema
informtico es de unos 4& microsegundos . que el tamaLo mCnimo de cualquier rutina de servicio de interrupcin
@7(8A es de & instrucciones. @",& pA.
bA La recepcin se atiende por D6', suponiendo que el subsistema de recepcin tiene las siguientes caracterCsticas:
7ealiza una peticin de interrupcin cada vez que se recibe un bloque.
La velocidad de funcionamiento del controlador D6' es de = 6NO @6egaciclos de reloj por segundoA .
cada ciclo D6' utiliza & ciclos de reloj.
8ndicar el porcentaje de ocupacin temporal de los buses del sistema por parte del controlador D6' en
los siguientes casos:
b.4. $l controlador D6' transfiere un nico b.te cada vez que obtiene los buses, @7obo de ciclo
programado, para una sola operacin de transferencia de datosA. @",!& pA.
b.%. $l controlador D6' transfiere un bloque completo cada vez que obtiene los buses @D6' en modo de
transferencia de datos por bloquesA. @",!& pA.
SUBSISTEMA DE CONTROL DE ENTRADA/SALIDA 5
SOLUCIONES DE LOS EJERCICIOS
SOLUCI"N AL EJERCICIO N 1.
AL#ORITMOS$
(()*: !" << ># 444 43= 4<" 4>" => %3 4% &
4< E < E 4& E %3 E =# E 4" E 4=4 E %# E 44 E ! F 3"&
(,'-: !" << ># 444 43= 4<" 4>" %%& => %3 4% &
4< E < E 4& E %3 E =# E 4" E 3& E 4!# E %# E 44 E ! F 3!&
$n esta situacin es ms favorable el algoritmo (()*.
SOLUCI"N AL EJERCICIO N 2.
AL#ORITMOS$
(()*: #" && 3" 4& & 4%" 4!" 4>"
& E %& E 4& E 4" E 44& E &" E %" F %="
(,'-: #" 4%" 4!" 4>" %"" && 3" 4& &
#" E &" E %" E 4" E 4=& E %& E 4& E 4" F 33&
,/L001: #" 4%" 4!" 4>" &4& 3" &&
#" E &" E %" E 4<& E 4" E 4& E %& F 3#&
MENOR DESPLA%AMIENTO$ SSTF
MA&OR DESPLA%AMIENTO$ C'LOO(
SOLUCI"N AL EJERCICIO N 3.
AL#ORITMOS$
*,*(: &" 3 4< %4" =% %<" ## 44& >% !=
=! E 4& E 4>% E 4#< E %3< E %%# E => E %3 E 4< F >!#
(()*: &" =% 4< 3 ## != >% 44& %4" %<"
< E %= E 4& E #3 E < E 4< E %3 E >& E !" F 3%=
,/(,'- &" " 34< =% ## != >% 44& %4" %<"
&" E 3 E 4& E %= E %= E < E 4< E %3 E >& E !" F 33"
MENOR DESPLA%AMIENTO$ SSTF
MA&OR DESPLA%AMIENTO$ FCFS
SOLUCI"N AL EJERCICIO N 4.
AL#ORITMO C'LOO($
)8$690( -B$G'( 9$)8,80-$( ,0L' D$L D8(90(8)8G0 ($7G8D'
",4 < < <
",3 %&,=< %&,=< %&
",& !#,3% 3%,=<,!# 3%
",! 4&,4%" =<,!#,4%",4& =<
",> #",3" #",!#,4%",4&,3" #"
!#
4%"
4&
3"
SUBSISTEMA DE CONTROL DE ENTRADA/SALIDA
AL#ORITMO SSTF$
)8$690( -B$G'( 9$)8,80-$( ,0L' D$L D8(90(8)8G0 ($7G8D'
",4 < < <
",3 %&,=< %&,=< %&
",& !#,3% 3%,=<,!# 3%
",! 4&,4%" =<,!#,4%",4& =<
",> #",3" #",!#,4%",3",4& #"
!#
4%"
3"
4&
SOLUCI"N AL EJERCICIO N 5.
Los datos del problema son los siguientes:
$l disco tiene 3"" cilindros, 4" pistas por cilindro . 4& sectores por pista.
$l tiempo medio de posicionamiento es de 4& mseg. . el invertido en transferir un sector del disco a la
memoria de 4 mseg.
$l disco gira a !&"" rpm @revoluciones por minutoA.
$l tiempo de acceso al disco ser:
)a F tp E tl E tr F 4& E tl E 4 F 4& E = E 4 F %" mseg.
9ara calcular el tiempo de latencia tendremos:
!&"" rpm PPPPPP #" D 4"
3
mseg.
",& PPPPPP tl tl F ",&Q #"Q4"
3
/ !.&""

F = mseg.
AL#ORITMO LOO(
)8$690( -B$G'( 9$)8,80-$( ,0L' D$L D8(90(8)8G0 ($7G8D'
" 43 43 43
%" %!,4<" %!,4<" %!
=" =3 =3,4<" =3
#" -8-:B-' 4<" 4<"
<" 4% 4% 4%
4"" 4,43 4,43 4
4%" 4%!,%&,%3&,> >,43,%&,4%!,%3& >
4=" -8-:B-' 43,%&,4%!,%3& 43
4#" 43" %&,4%!,43",%3& %&
4<" -8-:B-' 4%!,43",%3& 4%!
%"" -8-:B-' 43",%3& 43"
%%" -8-:B-' %3& %3&
TOTAL ) 0! CILINDROS
AL#ORITMO SSTF
)8$690( -B$G'( 9$)8,80-$( ,0L' D$L D8(90(8)8G0 ($7G8D'
" 43 43 43
%" %!,4<" %!,4<" %!
=" =3 =3,4<" =3
#" -8-:B-' 4<" 4<"
<" 4% 4% 4%
4"" 4,43 43,4 43
4%" 4%!,%&,%3&,> >,4,%&,4%!,%3& >
4=" -8-:B-' 4,%&,4%!,%3& 4
4#" 43" %&,4%!,43",%3& %&
4<" -8-:B-' 4%!,43",%3& 4%!
%"" -8-:B-' 43",%3& 43"
%%" -8-:B-' %3& %3&
TOTAL ) 09 CILINDROS
SOLUCI"N AL EJERCICIO N .
aA -R acceso ,ilindro )iempo 8nst. ,omplet.
SUBSISTEMA DE CONTROL DE ENTRADA/SALIDA !
4 % 3 " 4 4<
4
%
&" %> < + + = @ , Q A Q , ms %>,< ms.
% <"" 3 " 4 !><
4
%
&" 4"! < + + = @ , Q A Q , ms 43!,# ms.
3 &"" 3 " 4 3""
4
%
&" &< + + = @ , Q A Q ms 4>&,# ms.
= 3"" 3 " 4 %""
4
%
&" =< + + = @ , Q A Q ms %=3,# ms.
& !&" 3 " 4 =&"
4
%
&" !3 + + = @ , Q A Q ms 34#,# ms.
# <"" 3 " 4 &"
4
%
&" 33 + + = @ , Q A Q ms 3=>,# ms.
! &"" 3 " 4 3""
4
%
&" &< + + = @ , Q A Q ms ="!,# ms.
< 3 3 " 4 =>!
4
%
&" !! ! + + = @ , Q A Q , ms =<&,3 ms.
> ="" 3 " 4 3>!
4
%
&" #! ! + + = @ , Q A Q , ms &&3 ms.
bA -R 'cceso ,ilindro )iempo 8nst. ,omplet.
4 % 3 " 4 4<
4
%
&" %> < + + = @ , Q A Q , ms %>,< ms
= 3"" 3 "4 %><
4
%
&" &! < + + = @ , Q A Q , ms <!,# ms
3 &"" 3 " 4 %""
4
%
&" =< + + = @ , Q A Q ms 43&,# ms
& !&" 3 " 4 %&"
4
%
&" &3 + + = @ , Q A Q ms 4<<,# ms
% <"" 3 " 4 &"
4
%
&" 33 + + = @ , Q A Q ms %%4,# ms
# <""
4
%
&" %& Q = ms %=#,# ms
! &"" 3 " 4 3""
4
%
&" &< + + = @ , Q A Q ms 3"=,# ms
> ="" 3 " 4 4""
4
%
&" 3< + + = @ , Q A Q ms 3=%,# ms
< 3 3 " 4 3>!
4
%
&" #! ! + + = @ , Q A Q , ms =4",# ms
cA -R 'cceso ,ilindro )iempo 8nst. ,omp. Dir. Hrazo
4 % 3 " 4 4<
4
%
&" %> < + + = @ , Q A Q , ms %>,< ms
= 3"" 3 "4 %><
4
%
&" &! < + + = @ , Q A Q , ms <!,# ms
3 &"" 3 " 4 %""
4
%
&" =< + + = @ , Q A Q ms 43&,# ms
& !&" 3 " 4 %&"
4
%
&" &3 + + = @ , Q A Q ms 4<<,# ms
% <"" 3 " 4 &"
4
%
&" 33 + + = @ , Q A Q ms %%4,# ms
# <""
4
%
&" %& Q = ms %=#,# ms
SUBSISTEMA DE CONTROL DE ENTRADA/SALIDA 8
! &"" 3 " 4 3""
4
%
&" &< + + = @ , Q A Q ms 3"=,# ms
> ="" 3 " 4 4""
4
%
&" 3< + + = @ , Q A Q ms 3=%,# ms
< 3 3 " 4 3>!
4
%
&" #! ! + + = @ , Q A Q , ms =4",# ms
SUBSISTEMA DE CONTROL DE ENTRADA/SALIDA 9
SOLUCI"N AL EJERCICIO N !.
aA )iempo de cambio de conteDto F " . se permite anidamiento por prioridad.
,alcular el tiempo de latencia por controlador . el tiempo de latencia medio.
)iempo 8nstante ,ola de 9ila 7utina de *inalizacin
@msgA Llegada interrup. ejecucin
" ,4" /// /// ,4@%&A ///
4" D4 /// ,4@4&A D4@>A ///
4% ,% ,% ,4@4&A D4@!A ///
4= D% ,%,D% ,4@4&A D4@&A ///
4& 84 84,,%,D% ,4@4&A D4@=A ///
4> // 84,,% ,4@4&A D%@>A D4
%< // 84,,% /// ,4@4&A D%
=3 // 84 /// ,%@%&A ,4
#" ,3 84,,3 /// ,%@<A ///
#& 8% 8%,84,,3 /// ,%@3A ///
## )4 8%,84,,3 ,%@%A )4@4&A ///
<4 // 8%,84,,3 /// ,%@%A )4
<3 // 8%,84 /// ,3@%&A ,%
4"< // 8% /// 84@&"A ,3
4&< // /// /// 8%@&"A 84
%"< // /// /// /// 8%
bA )iempo de cambio de conteDto F 4" msg.
-o eDisten anidamientos de interrupciones.
,alcular el tiempo de latencia por controlador.
)iempo 8nstante ,ola de 7utina en *inalizacin
@msgA Llegada 8nterrup. ejecucin
" ,4 /// ,4@%&A ///
4" D4 D4 ,4@4&A ///
4% ,% ,%,D4 ,4@43A ///
4= D% ,%,D%,D4 ,4@44A ///
4& 84 84,,%,D%,D4 ,4@4"A ///
%& // ''''''''''' ,4
3& // 84,,%,D% D4@>A ///
== // '''''''''''''''''''''''''''''''''' D4
&= // 84,,% D%@>A ///
#" ,3 84,,3,,% D%@3A ///
#3 // '''''''''''''''''''''''''''''''''' D%
#& 8%
## )4 ''''''''''''''''''''''''''''''''''
!3 8%,84,,3,,% )4@4&A
<< ////////////////////////////////// )4
>< 8%,84,,3 ,%@%&A
4%3 ////////////////////////////////// ,%
433 8%,84 ,3@%&A
4&< /////////////////////////////////// ,3
4#< 8% 84@&"A
%4< ////////////////////////////////// 84
%%< 8%@&"A
%!< 8%
SUBSISTEMA DE CONTROL DE ENTRADA/SALIDA 10
aAS )iempo de latencia: Desde interrupcin hasta el comienzo de ejecucin de la rutina en msg.
Disposit. 6omento de ).8nicio Latencia ).6edio ).6edio
8nterrup 7ut.(erv. por ,ontr. general
D4 4" 4" "
D% 4= 4> & D F %,&
)4 ## ## " ) F "
,4 " " "
,% 4% =3 34
,3 #" <3 %3 , F 4<
84 4& 4"< >3
8% #& 4&< >3 8 F >3
TOTAL ) 113,5/4 ) 28,4 *+,.
bAS
Dispositivo 6omento de ).8nicio Latencia ).6edio
8nterrup. 7ut.serv por ,ontr.
D4 4" 3& %&
D% 4= &= =" D F 3%,&
)4 ## !3 ! ) F !
,4 " " "
,% 4% >< <#
,3 #" 433 !3 , F &3
84 4& 4#< 4&3
8% #& %%< 4#3 8 F 4&<
SOLUCI"N AL EJERCICIO N 8.
-omenclatura.
tPdats tamaLo en bits del bus de datos.
tPdirs tamaLo en bits del bus de direcciones.
pal tamaLo de la palabra en b.tes.
maDPctrl nR mDimo de controladores.
nbPctrlnR de bits en el bus de datos, reservados para codificar el nR del controlador.
nbPint nR de bits del bus de datos, reservados para codificar el nR de la interrupcin.
maDPintPctrl // nR mDimo de interrupciones por controlador.
dirPbase ////// Direccin base en decimal, de las tablas de interrupciones de los controladores.
Datos:
tPdats F < bits maDPctrl F <
tPdirs F 4# bits dirPbase F =">#
pal F 4 b.te
aA 0btencin del formato del vector de interrupciones generado por el sistema.
maDPctrl F < nbPctrl F 3 .a que %
3
F <
nbPint F tPdats / nbPctrl F < / 3 F &
maDPintPctrl F %
&
F 3%
,omo el tamaLo del bus de direcciones es de 4# bits, es decir, % b.tes . el tamaLo de la palabra es de un b.te,
almacenar en memoria interna una direccin de memoria requerir % palabras, por tanto, las direcciones de
memoria donde se almacena, el comienzo de las subrutinas de atencin a dos interrupciones de numeracin
consecutiva, tendrn que estar desplazadas dos unidades. $sto implica que ha. que multiplicar por % el vector
de interrupciones enviado por el controlador, o lo que es lo mismo, aLadir un cero por la derecha a su formato
binario.
,omo la direccin base de las tablas es la numero =">#
@4"
F4""""""""""""
@%
, al resultado de multiplicar
por % el vector de interrupciones enviado por el controlador, habr que sumarle =">#, con lo que el formato
del vector de interrupciones generado por el sistema ser el siguiente:
"..."4"""CCCTTTTT"
SUBSISTEMA DE CONTROL DE ENTRADA/SALIDA 11
Donde ,,,))))) es el vector de interrupciones enviado por el controlador, en el que ,,, corresponde al
cdigo del controlador . ))))) corresponde al cdigo de la interrupcin que se pretende ejecutar.
bA Direcciones de memoria del comienzo de la subrutina de atencin a la interrupcin %= del controlador #.
,onociendo el formato del vector de interrupciones del sistema: "..."4"""CCCTTTTT"
. el cdigo del controlador . la interrupcin:
,,, F #
@4"
F 44"
@%
))))) F %=
@4"
44"""
@%
Las direcciones de memoria, donde se almacena la direccin de comienzo de la subrutina que atiende a la
interrupcin, sern:
"..."4"""11011000"
"..."4"""110110004
cA )amaLo total de las tablas de los controladores . tamaLo de cada subrutina.
,omo maDPintPctrl F 3% . cada interrupcin requiere dos posiciones de memoria, para almacenar la direccin
de comienzo de la subrutina que atiende a cada una de ellas el tamaLo ocupado por cada tabla ser:
3% Q % F #= b.tes
,omo ha. ocho controladores, el tamaLo total ocupado por sus tablas ser :
#= Q < F &4% b.tes
$l tamaLo de cada subrutina de atencin es variable, este es el objeto de vectorizar las interrupciones, .a que
en la tabla solo se almacenan su direccin de comienzo.
$l final de una subrutina, lo marcar la ejecucin de la instruccin gen?rica de final de subrutina.
SOLUCI"N AL EJERCICIO N 9.
-omenclatura.
G8(@c,rA: Gector de interrupciones del sistema correspondiente al controlador c, subrutina r.
G8,@c,rA: $s el Gector de interrupciones del controlador, que corresponde al controlador c subrutina r.
-: -umero de posiciones de memoria ocupadas por cada entrada de la tabla de cada controlador.
D: Direccin de comienzo en memoria, del conjunto de tablas de los controladores.
aA ,omo se trata de un sistema de interrupciones vectorizadas, en el que cada controlador tiene asociada una tabla
en memoria, que contiene las direcciones de comienzo de sus subrutinas, estando dichas tablas dispuestas de
forma contigua en memoria, se debe cumplir que:
G8(@c,rA F G8,@c,rA Q - E D
9or lo tanto teniendo en cuenta que:
G8(@4,4!A F "...""""4""4""44"4"""
@%
F =!4%
@4"

G8(@3,>A F "...""""4"4"""4""4"""
@%
F &4>%
@4"

G8,@4,4!A F "4"4"""4
@%
F <4
@4"

G8,@3,>A F 44""4""4
@%
F %"4
@4"

9uede establecerse:
<4 Q - E D F =!4%
%"4 Q - E D F &4>%
SUBSISTEMA DE CONTROL DE ENTRADA/SALIDA 12
7esolviendo esta ecuacin, se obtiene que:
$l nmero de posiciones de memoria ocupadas por cada entrada de cada tabla:
- F =
@4"
F 4""
@%
La direccin de comienzo del conjunto de tablas ser:
D F =3<<
@4"
F "...""""4"""4""4""4""
@%

La direccin de finalizacin del conjunto de tablas, la proporcionar la eDpresin:
G8(@3,#3A E - / 4 F G8,@3,#3A Q - E D E - / 4
G8,@3,#3A F 44444444
@%
F %&#
@4"

DirPfinal F %&# Q = E =3<< E = / 4 F &=4&
@4"
F "...""""4"4"4""4""444
@%
bA
)amaLoPtabla F numPrutinasPcontrolador Q )amaLoPentrada
)amaLoPtabla F %
#
Q = F %&# b.tes
$l tamaLo de las rutinas es variable, siendo este el objeto de utilizar tablas para la vectorizacin, adems de
permitir que cada rutina pueda estar ubicada en cualquier parte de la memoria.
cA
D F &4%"
@4"
F "...""""4"4""""""""""
@%
$l formato del vector de interrupciones del controlador es:
,,777777
Donde los bits ,, identifican al controlador . los bits 777777 identifican la subrutina.
$l vector de interrupciones del controlador ha de multiplicarse por el tamaLo de la entrada de la tabla, es decir,
- F =
@4"
F 4""
@%
. al resultado se le suma la direccin de comienzo del conjunto de tablas:
D F &4%"
@4"
F "...""""4"4""""""""""
@%
"...""""4"4""""""""""
E ,,777777""
"...""""4"4,,777777""
*ormato G8, F "...""""4"4,,777777""
SOLUCI"N AL EJERCICIO N 10.
aA La tabla de vectores contiene direcciones fCsicas, en las que se encuentran almacenadas las rutinas de
servicio, correspondientes a las distintas interrupciones. $stas direcciones estn formadas por parejas de
valores de 4# bits @segmento . desplazamientoA.
9or tanto, la direccin fCsica en la que se almacena el vector asociado a una interrupcin, se calcula como
sigue:
Dir.vector F ,digo 8nterrupcin Q %
7utina de servicio asociada al disco:
Direccin vector F 3Q% F """#h
,ontenido: (egmento F "3%=h Desplazamiento: F ""%'h
Direccin fCsica F "3%=hQ4#E""%'h F "3%#'h
7utina de servicio asociada al teclado:
Direccin vector F &Q% F """"'h
,ontenido: (egmento F "%D4h Desplazamiento: F "4%3h
Direccin fCsica F "%D4hQ4#E"4%3h F "%$33h
SUBSISTEMA DE CONTROL DE ENTRADA/SALIDA 13
bA
($7G. 7(8 4 D8(,0 7(8 )$,. ($7G 7(8 % D8(,0. 7(8 )$,.
" ",4 ",% ",3 ",= ",& ",# ",> 4,"
$/( D8(,0 4 $/( D8(,0 %
,8L8-D70 4" 8-).)$,. ,8L8-D70 4>
7(8 )$, ($7G. 7(8 3 D8(,0 7(8 = D8(,0
($7G.
4," 4,4 4,% 4,3 4,= 4,& 4,< %,"
$/( D8(,0 3 $/( D8(,0 =
,8L8-D70 &> ,8L8-D70 %
($7G. 7(8 & D8(,0 7(8 # D8(,0 ($7G. 7(8 ! D8(,0
($7G.
%," %,4 %,% %,3 %,= %,! %,< 3,"
$/( D8(,0 & $/( D8(,0 # $/( D8(,0 !
,8L8-D70 >3 ,8L8-D70 4%" ,8L8-D70 %3
7(8 ! D8(,0 ($7G. 7(8 < D8(,0 7(8 > D8(,0
($7G.
3," 3,4 3,% 3,3 3,= 3,& 3,# 3,>
$/( D8(,0 < $/( D8(,0 >
,8L8-D70 %4 ,8L8-D70 3=
SOLUCI"N AL EJERCICIO N 11.
aA La ,9B ejecuta su programa de procesado . presentacin, pero es interrumpida peridicamente cada vez que
recibe un nuevo b.te. $ste procedimiento podrCa ser adecuado cuando la recepcin de datos se realiza a baja
velocidad, pero en este caso, supondrCa la generacin de %".""" interrupciones por segundo, esto quiere decir que,
4""""""/%""""F&", con lo cual el intervalo entre interrupciones serCa de &" microsegundos.
)eniendo en cuenta, que por mu. sencilla que sea la 7(8, su activacin implica realizar numerosas operaciones
@cambio de conteDto, determinacin de la fuente de interrupciones, funciones propias de transferencia, etc.A,
adems de el tiempo que se tardarCa en ejecutar la 7(8, que serCa de &Q4& F !& microsegundos, no se podrCa
simultanear de forma eficaz, la recepcin de los datos . su procesamiento.
$n cualquier caso aunque esto fuera posible, la atencin a las interrupciones, llevarCa la ma.or parte del tiempo de
,9B, por lo que no quedarCa tiempo para el procesamiento . presentacin de los datos recibidos.
bA 9uesto que el procesamiento D6' es autnomo, sin intervencin de la ,9B, esta puede seguir trabajando
normalmente sin ms limitacin que el acceso a los buses.
La velocidad de reloj del controlador D6' es de =6NO . cada ciclo D6' utiliza & ciclos de reloj, por lo tanto,
cada ciclo D6' &""""""/=""""""F4,%& es decir, necesitar 4,%& microsegundos.
b.4. $n el caso de usar robo de ciclos programado para una nica operacin de transferencia, en este sistema
se generan %".""" ciclos D6'. (i realizamos la siguiente operacin tendremos: %""""Q4,%&F%&""" .
esto significa que el controlador D6' ocupa los buses del sistema durante %&.""" microsegundos cada
segundo, por lo tanto, %&"""Q4""/4""""""F %,& . el porcentaje de ocupacin ser del %,&T.
'dems en este sistema solo se producirCan & interrupciones por segundo, es decir, & tramas de =."""
b.tes. (ignifica esto, que la ,9B dispone de tiempo ms que suficiente, para el procesamiento .
presentacin de los datos, resultando la atencin a la recepcin de datos, mu. poco costosa en t?rminos
de perdida de tiempo de ,9B.
b.%. $n el modo bloque, el controlador D6' tomarCa el control hasta la finalizacin de cada trama, esto es
tomarCa el control de los buses intilmente, .a que no dejarCa a la ,9B ejecutar nada entre cada b.te
recibido. $n este caso, el porcentaje de ocupacin de los buses es del 4""T.
SUBSISTEMA DE CONTROL DE ENTRADA/SALIDA 14

You might also like