Componentes Principales del Sistema de Entrada/Salida (E/S)

Los elementos principales que conforman el sistema de E/S son los siguientes:

  • Los periféricos,
  • Los módulos de E/S,
  • Los sistemas de interconexión externos y
  • El mapa de memoria e instrucciones de E/S.

1. Los Periféricos

Los periféricos son dispositivos que se conectan al computador mediante los módulos de E/S y que sirven para almacenar información o para llevar a cabo un tipo determinado de comunicación con el exterior con humanos, con máquinas o con otros computadores.

La clasificación más habitual es la siguiente:

  • Para la interacción con humanos:
    • Entrada.
    • Salida.
  • Para la interacción con otros computadores o sistemas físicos (en los que las operaciones que se hacen son generalmente de E/S):
    • Almacenamiento.
    • Comunicación.

2. El Módulo de E/S

Un módulo de E/S es un controlador de uno o varios periféricos que establece una interfaz entre el periférico y el computador (procesador y memoria) para facilitar la comunicación entre el uno y el otro de manera que buena parte de los detalles técnicos del periférico queden ocultos al resto del computador.

Del módulo de E/S distinguimos tres partes básicas:

  1. Una interfaz interna normalizada con el resto del computador mediante el bus de sistema que nos da acceso al banco de registros del módulo de E/S.
  2. Una interfaz externa específica para el periférico que controla. Habitualmente la conexión con el periférico se realiza mediante un sistema de interconexión normalizado de E/S.
  3. La lógica necesaria para gestionar el módulo de E/S. Es responsable del paso de información entre la interfaz interna y externa.

En la siguiente figura podéis ver el esquema general de un módulo de E/S.

%IMAGE%

3. Sistemas de Interconexión

En un computador distinguimos dos tipos básicos de sistemas de interconexión:

Los internos del computador, que nos permiten conectar el procesador, la memoria y el sistema de E/S y que denominamos bus del sistema, y los externos al computador, que nos permiten conectar el sistema de E/S con los diferentes periféricos y que denominamos sistemas de interconexión de E/S o buses de E/S.

Características Principales de los Sistemas de Interconexión Externos

Las siguientes son las características principales de los sistemas de interconexión externos:

  • Ancho de banda
  • Serie/paralelo
  • Punto a punto/multipunto
  • Modo de operación síncrono/asíncrono/semisíncrono
  • Multiplexación de datos y direcciones, Arbitraje centralizado y distribuido
  • Tipos de operaciones de lectura/escritura
  • Esquema de direccionamiento

4. Mapa de Memoria e Instrucciones de E/S

El procesador ve el banco de registros del módulo de E/S como un espacio de memoria direccionable, de manera que cada registro del módulo de E/S tiene asociada (mapeada) una dirección única. Veamos ahora cómo hemos de acceder a estas direcciones, que denominamos puertos de E/S.

Para identificar los registros del módulo de E/S hay dos posibilidades:

  • Mapa común de memoria y E/S
  • Mapa independiente de E/S

Comunicación y Puertos de E/S

La comunicación entre los módulos de E/S y el computador es siempre la misma para todos los módulos; esta comunicación se establece mediante el bus del sistema, de modo que el procesador ve el módulo de E/S como un espacio de memoria, pero estas direcciones, físicamente, corresponden a cada uno de los registros que tiene el módulo de E/S del computador y se denominan habitualmente puertos de E/S. De esta manera conseguimos que la comunicación entre el computador y el módulo de E/S se lleve a cabo mediante instrucciones de transferencia para leer y escribir en sus registros, de una manera muy parecida a como hacemos para acceder a la memoria.

Explicación de Características de Interconexión

  • Modo de operación síncrono/asíncrono/semisíncrono: cuando el control de los accesos al bus es controlado o no por un reloj.
  • Multiplexación de datos y direcciones: si las líneas del bus están dedicadas a datos y direcciones o si se comparten las mismas líneas para datos y para direcciones.
  • Arbitraje centralizado y distribuido: centralizado cuando un único controlador determina quién debe acceder al bus en cada momento y es distribuido cuando los dispositivos conectados al bus disponen de capacidad de controlar el acceso al bus.
  • Tipos de operaciones de lectura/escritura: diferentes maneras de hacer las operaciones de lectura y escritura, como la transferencia de bloques o la combinación de operaciones de lectura y escritura.
  • Esquema de direccionamiento: esta característica tiene dos formas de realizar los procesos de transmisión de datos: un direccionamiento lógico, que establece el espacio de direccionamiento de memoria común a todos los dispositivos y cada uno dispone de un rango de direcciones único y los dispositivos para decodificar la dirección para saber si esta dirección está dentro de su rango; y el direccionamiento geográfico en el que cada dispositivo tiene una dirección propia y se separa la identificación del módulo de la selección de la dirección dentro del módulo.

5. Mapa Común de Memoria y E/S

No hay distinción entre direcciones de memoria y registros de E/S. Para acceder a los registros se utilizan decodificadores que se activan a partir de las líneas del bus de direcciones y se utilizan las mismas señales de control (READ/WRITE) que se emplean para seleccionar la memoria.

Ejemplo: Tiene una conexión de una memoria de $2^{32}$ direcciones y $2^{10}$ puertos de E/S.

6. Bus del Sistema y Buses de E/S

No se debe olvidar que en un computador se distinguen dos tipos básicos de sistemas de interconexión: los internos en el computador que permiten conectar el procesador, la memoria y el sistema de E/S y que se denominan bus del sistema; y los externos al computador, que permiten conectar el sistema de E/S con los diferentes periféricos y que se denominan sistemas de interconexión de E/S o buses de E/S.

Entonces a partir del sistema de E/S, el bus del sistema permite la comunicación entre los módulos de E/S y el resto del computador. Este bus está estructurado en forma jerárquica y se compone por diferentes tipos de buses para aislar los elementos más rápidos de los más lentos, mejorando de esta forma las prestaciones del sistema.

Esta comunicación de los módulos de E/S con los periféricos o dispositivos se realiza cuando estos últimos poseen la suficiente autonomía para gestionar una operación de E/S y los módulos de E/S.

Físicamente, un sistema de interconexión está formado por un conjunto de hilos conductores o líneas que interconectan diferentes dispositivos. Por estos hilos o líneas circulan señales eléctricas las cuales deben ser interpretadas por los dispositivos conectados, como señales binarias de las cuales existen tres tipos básicos: señales de datos, de direcciones y de control.

Características de los Buses de E/S

Ahora bien, los sistemas de interconexión externos poseen ciertas características como las siguientes:

  • Ancho de banda: que permite establecer la cantidad máxima de información que se puede transmitir por unidad de tiempo. Se expresa en bits o bytes por segundo.
  • Serie/Paralelo: esta característica difiere según sea utilizada la interconexión en serie o paralelo. En una interconexión paralela hay varias líneas que conectan el módulo de E/S y el periférico lo que permite transmitir varios bits simultáneamente, en cambio en la interconexión en serie solo hay una línea para transmitir los datos y los bits son transferidos uno a uno. Las interconexiones de tipo serie fueron aplicadas para uso de dispositivos lentos y las de tipo paralelo, para dispositivos más rápidos; sin embargo, el desarrollo de nuevas generaciones de sistemas de interconexión serie de alta velocidad, las paralelas cada vez son menos utilizadas.
  • Punto a punto/Multipunto: una interconexión punto a punto tiene un enlace dedicado entre el módulo de E/S y el periférico. En una interconexión multipunto y que habitualmente se denomina bus de E/S, dispone de un enlace compartido entre diferentes periféricos y el módulo de E/S. El hecho de tener múltiples dispositivos conectados a un mismo conjunto de líneas requirió establecer mecanismos para controlar el acceso.

Otras características de los buses de E/S se clasifican por la forma de su funcionamiento, entre estas se encuentran:

7. Etapas de una Operación de E/S

Un aspecto que se debe considerar con importancia es el de garantizar que una transferencia de datos se realiza con éxito. Consecuentemente es necesario establecer las etapas que se deben seguir y definir los mecanismos que permitan controlar en todo momento la operación de E/S.

Para el cumplimiento de lo especificado anteriormente, se debe cumplir con la etapa de:

  1. Programación de la operación de E/S

9k=

Esta etapa de la operación de E/S es el proceso que permite indicar al módulo de E/S cómo se debe llevar a cabo la transferencia.

Consiste en ejecutar un pequeño conjunto de instrucciones que verifican si el periférico está disponible para iniciar una transferencia de datos, actualizando los registros del módulo de E/S, fundamentalmente los registros de control para dar instrucciones al periférico. Consecuentemente debe servir también para inicializar las variables o registros que necesite el procesador para llevar a cabo la transferencia de datos.

2. Transferencia de Datos

Esta etapa en la operación de E/S es la fase donde se realiza realmente la transferencia de información entre el procesador y el módulo de E/S y en la que se ejecutan diferentes formas de transferencia.

De manera general, en la transferencia de cada dato dentro de un bloque, se desarrollan dos procesos necesarios: la sincronización y el intercambio. Estas dos operaciones se repiten para cada dato dentro de un bloque.

3. Sincronización

Ahora bien, la sincronización es el momento en el que se establece un mecanismo para lograr que el dispositivo más rápido espere que el dispositivo más lento esté preparado para llevar a cabo el intercambio del dato.

Este mecanismo nos garantiza que no se dejen datos sin procesar, pero la consecuencia es que la transferencia de datos se realiza a la velocidad del dispositivo más lento.

Durante la fase de sincronización, el procesador (o el elemento que controle la transferencia) debe ser capaz de detectar cuándo está disponible el periférico para hacer el intercambio de un dato. El módulo debe informar de que el periférico está preparado.

Ejemplo del Proceso de Sincronización

Supongamos que el procesador envía diez datos ($D_0, D_1, D_2, D_3, D_4, D_5, D_6, D_7, D_8, D_9$) a un periférico. Suponiendo que el procesador puede enviar un dato cada 2ms y el periférico tarda en procesar ese mismo dato 5ms observamos que:

9k=

Entonces cuando no hay sincronización se puede observar que se pierden datos ($D_1, D_3, D_4, D_6, D_8, D_9$). Para corregir este problema, el procesador debe esperar 3ms y cuando el periférico está preparado para recibir el siguiente dato, el procesador envía el nuevo dato. De esta forma no se pierde ningún dato, pero la transferencia se hace al ritmo que marca el periférico, que es el más lento en procesar las entradas y salidas.

Sin embargo, este problema se reduce utilizando una pequeña memoria intermedia y que se denomina buffer, cuya utilidad es la de almacenar temporalmente la entrada o salida de datos, cuando la cantidad y el tamaño de los datos son relativamente pequeños. Pero si la diferencia de velocidad es demasiado grande o los bloques de datos son muy grandes, la única forma de garantizar que no se pierdan datos es aplicar el mecanismo de sincronización.

4. Intercambio del Dato

Es el proceso en el que efectivamente se envía el dato, considerando que, tanto el emisor como el receptor están preparados pues ya se realizó la sincronización. Se verifica que el dato haya sido recibido correctamente; una vez completado el mismo se puede iniciar una nueva transferencia.

En la operación de entrada (lectura), el periférico envía el dato al módulo de E/S, que se encarga de realizar la verificación del dato para detectar posibles errores, generalmente esta verificación es una validación muy simple del bit de paridad y deja el dato disponible en el registro de datos del módulo de E/S para que el procesador lo pueda leer.

En cambio, en una operación de salida (escritura), el procesador escribe el dato en el registro de datos del módulo de E/S y después el módulo de E/S lo envía al periférico, ejecutando correlativamente las etapas del proceso:

  1. El procesador comprueba el estado del periférico, lee el registro de estado del módulo de E/S y mira los bits que indican si el periférico está disponible. Puede ser necesario dar una orden accediendo al registro de control para que el módulo de E/S consulte el estado del periférico y actualice el registro de estado.
  2. Si el periférico está disponible, el procesador solicita el dato enviando una orden al módulo de E/S. El procesador debe acceder al puerto que corresponde al registro de control del módulo de E/S para escribir en él y así indicar la operación que queremos que haga. Hemos programado la transferencia.

En este estado se puede realizar el Acceso a los puertos de E/S. Para acceder a un puerto de E/S, se debe utilizar instrucciones de transferencia si el procesador tiene un mapa común de memoria y E/S, e instrucciones específicas de E/S o si el computador tiene un mapa independiente de memoria y E/S.

En estas instrucciones se tiene que especificar la dirección de uno de los registros del módulo de E/S donde se encuentre conectado el periférico con el que se pretende realizar la operación de E/S.

El módulo, por su parte, tiene que ser capaz de reconocer la dirección que el procesador ha puesto en las líneas de direcciones del bus, que permite leer el dato de dichas líneas para actualizar el registro correspondiente si se trata de una operación de escritura, o poner la información de este registro en las líneas de datos del bus si estamos haciendo una operación de lectura.

  1. La etapa lógica del módulo se encarga de identificar la operación que tiene que hacer e inicia la transferencia con el periférico, de manera que el periférico deja de estar disponible y cambia su estado a ocupado hasta que la transferencia finalice.
  2. El módulo obtiene el dato del periférico, lo guarda en el registro de datos para que el procesador lo pueda leer y actualiza el registro de estado o avisa al procesador para indicar que el dato está disponible, y consigue de esta manera la sincronización con el procesador. Si ha habido errores al obtener el dato del periférico, también lo indica en el registro de estado. Mientras el módulo de E/S obtiene el dato del periférico y valida la información, el procesador se encuentra en estado de espera. Se acaba la sincronización y empieza el intercambio del dato.
  3. Una vez el dato está preparado en el módulo de E/S y el procesador está en conocimiento, obtiene el dato y se hace el intercambio del dato. El procesador debe acceder al puerto correspondiente al registro de estado si quiere validar que el dato recibido es correcto y al puerto correspondiente al registro de datos para leer el dato. Se acaba el intercambio del dato.
  4. Como solo se tiene que transferir un dato, se indica que el estado del periférico es de disponible para hacer una nueva operación de E/S. Se acaba la operación de E/S.

5. Finalización de la Operación de E/S

La finalización de la operación de E/S es un proceso parecido a la programación de la operación de E/S. También consiste en ejecutar un pequeño conjunto de instrucciones que actualizan los registros del módulo de E/S, pero ahora para indicar que se ha finalizado la transferencia y que el módulo de E/S queda disponible para atender a otra operación de E/S. También se puede consultar el estado del módulo de E/S para verificar que la transferencia se ha hecho correctamente.

8. Representación Gráfica de la Interconexión

GKFRUGgAAAABJRU5ErkJggg==

Técnicas de E/S

1. Indicación y Explicación de las Técnicas de E/S

Existen tres técnicas para realizar las operaciones de E/S:

  • E/S programada
  • E/S por interrupciones
  • Acceso directo a memoria

a. E/S Programada

  • También llamada por sondeo o polling.
  • La CPU tiene el control absoluto de la operación de E/S: inicia y lleva a cabo la transferencia.
  • El procesador ejecuta un programa que controla directamente la operación de E/S:
    • Comprobación del estado
    • Envío de una orden de lectura o escritura
    • Transferencia de datos

b. E/S por Interrupciones

  • Para evitar la degradación en las prestaciones del sistema que supone la espera activa, en este caso es el dispositivo el que solicita la operación de E/S cuando se encuentra preparado para realizarla (interrupción).
    • La transferencia es llevada a cabo por la CPU de forma semejante a como se hacía en la E/S programada.
    • El esquema básico de funcionamiento de la E/S por interrupciones es:
  1. El procesador ejecuta instrucciones de un programa.
  2. Al finalizar cada instrucción comprueba si se ha producido una interrupción.
  3. En caso afirmativo el procesador envía una señal de reconocimiento al dispositivo, guarda el estado actual del proceso (contador del programa y registros) y comienza a ejecutar la rutina que sirve la interrupción (manejador de interrupción o rutina de servicio de interrupción).
  4. Al finalizar la ejecución de la rutina de servicio, se recupera el estado de la máquina y se continúa ejecutando el proceso que se abortó.

Esquemáticamente se puede graficar su funcionamiento de la siguiente forma:

3ApYnALuDwAAAABJRU5ErkJggg==

En la implementación de la E/S mediante interrupciones se deben considerar dos aspectos:

  • ¿Cómo determina el procesador qué dispositivo ha provocado la interrupción?
  • Si se han producido varias interrupciones, ¿cómo decide el procesador la que debe atender?

Hay cuatro técnicas utilizadas comúnmente para implementar la E/S por interrupciones:

  • Múltiples líneas de interrupción
  • Consulta software (software polling)
  • Conexión en cadena (daisy chain)
  • Arbitraje de bus / Técnicas que usan interrupciones vectorizadas
Múltiples Líneas de Interrupción
  • Consiste en proporcionar varias líneas de interrupción entre el procesador y los módulos de E/S.
  • Es poco práctico porque malgasta terminales del procesador y además de existir más periféricos que líneas no se resolvería el problema.
  • La prioridad viene fijada por el procesador.

2Q==

Consulta Software
  • Todos los módulos de E/S comparten una línea común para solicitar interrupciones.
  • Cuando el procesador detecta una interrupción, se produce un salto a una subrutina de servicio de interrupción que se encarga de consultar a cada módulo de E/S para determinar cuál ha producido la interrupción.
  • La desventaja de la consulta software está en el tiempo que consume.
  • La prioridad viene determinada por el orden en que se hace la encuesta.
Z
Conexión en Cadena (Daisy Chain)
  • Se trata de una consulta o polling hardware.
  • Todos los módulos de E/S comparten una línea común para solicitar interrupciones.
  • La línea de reconocimiento de interrupción se conecta encadenando los módulos uno tras otro.
  • Cuando el procesador recibe una interrupción, activa la señal de reconocimiento, la cual se propaga a través de la secuencia de módulos de E/S hasta que alcanza al que solicitó la interrupción.
  • El módulo correspondiente responde colocando una palabra que lo identifica en las líneas de datos (vector).
  • El procesador utiliza el vector de interrupción como puntero a la rutina de servicio (así se evita ejecutar una rutina de servicio general).
  • La prioridad viene determinada por el orden en que se conectan los módulos en la cadena.

9k=

Arbitraje de Bus
  • Con esta técnica, un módulo de E/S antes de poder activar la línea de petición de interrupción debe disponer del control del bus.
  • Mediante el arbitrador de bus se garantiza que sólo un módulo puede activar la señal de petición en un determinado instante.
  • Es una técnica que usa interrupciones vectorizadas como el daisy chain.
  • La prioridad viene determinada por el arbitrador.

c. Acceso Directo a Memoria (DMA)

  • Tanto la E/S por interrupciones como la E/S programada requieren la intervención activa del procesador para transferir datos entre la memoria y los módulos de E/S.
  • Ambos métodos tienen un impacto negativo sobre la actividad del procesador y la velocidad de E/S.
  • Utilizando la E/S programada, el procesador puede transferir datos a alta velocidad al precio de no hacer nada más.
  • La E/S con interrupciones libera en parte al procesador a expensas de reducir la velocidad de E/S (debido a la sobrecarga que supone el cambio de contexto).
  • Cuando hay que transferir grandes volúmenes de datos, se requiere una técnica más eficiente: el Acceso Directo a Memoria (DMA).
  • En el DMA tanto el inicio de la transferencia como la transferencia en sí están gobernadas por el dispositivo (se libera a la CPU).

2. Comparativa de Técnicas de E/S

Técnica de E/S Programada

  • Tiene la ventaja de utilizar un hardware mínimo, aunque malgasta tiempo de proceso ya que ha de interrogar continuamente al periférico (espera activa, en sistemas multiproceso).
  • Los datos se intercambian entre el CPU y el módulo de E/S. El CPU ejecuta un programa que controla directamente la operación de E/S, incluyendo la comprobación del estado del dispositivo, el envío de la orden de lectura o escritura y la transferencia del dato. Cuando el CPU envía la orden debe esperar hasta que la operación de E/S concluya. Si el CPU es más rápido, éste estará ocioso. El CPU es el responsable de comprobar periódicamente el estado del módulo de E/S hasta que encuentre que la operación ha finalizado.

Técnica de E/S por Interrupciones

  • Mediante esta técnica el CPU tras enviar una orden de E/S se busca continúe realizando algún trabajo útil. El módulo de E/S interrumpirá al CPU para solicitar su servicio cuando esté preparado para intercambiar datos. El CPU ejecuta la transferencia de datos y después continúa con el procesamiento previo.
  • En el caso del tipo E/S síncrona, se logra que cuando la operación de E/S finaliza, el control es retornado al proceso que la generó. La espera por E/S se lleva a cabo por medio de una instrucción wait que coloca al CPU en un estado ocioso hasta que ocurre otra interrupción. Aquellas máquinas que no tienen esta instrucción utilizan un loop. Este loop continúa hasta que ocurre una interrupción transfiriendo el control a otra parte del sistema de operación. Sólo se atiende una solicitud de E/S por vez. El sistema de operación conoce exactamente qué dispositivo está interrumpiendo. Esta alternativa excluye procesamiento simultáneo de E/S.
  • En cambio en el tipo de E/S Asíncrona, retorna al programa usuario sin esperar que la operación de E/S finalice. Se necesita una llamada al sistema que le permita al usuario esperar por la finalización de E/S (si es requerido). También es necesario llevar un control de las distintas solicitudes de E/S. Para ello el sistema de operación utiliza una tabla que contiene una entrada por cada dispositivo de E/S (Tabla de Estado de Dispositivos).
  • La ventaja de este tipo de E/S es el incremento de la eficiencia del sistema. Mientras se lleva a cabo E/S, el CPU puede ser usado para procesar o para planificar otras E/S. Como la E/S puede ser bastante lenta comparada con la velocidad del CPU, el sistema hace un mejor uso de las facilidades.

Técnica de E/S por Acceso Directo a Memoria (DMA)

Puede presentar algunos problemas como:

  • Puede degradar el rendimiento de la CPU si el DMAC hace uso intensivo del bus. Si este está ocupado en una transferencia DMA, la CPU no puede acceder a la memoria para leer instrucciones.
  • Sin embargo, el problema puede reducirse con el uso de memoria caché. La mayor parte del tiempo, la CPU lee instrucciones de la caché, por lo que necesita usar el bus de memoria. El DMAC puede aprovechar estos intervalos en los que la CPU está leyendo instrucciones de la caché y por tanto no usa el bus de memoria para realizar las transferencias.
  • En el caso de que la computadora no tenga caché, el procesador no utiliza el bus en todas las fases de la ejecución de una instrucción, consecuentemente el DMAC puede aprovechar las fases de ejecución de una instrucción en las que la CPU no utiliza el bus para realizar sus transferencias.

3. Definición de Sistema Operativo

Es el conjunto de órdenes y programas que controlan los procesos básicos de una computadora y permiten el funcionamiento de otros programas. Dicho de otra forma, es un programa o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes, aunque puede que parte de él se ejecute en espacio de usuario.

4. Servicios y Finalidades del Sistema Operativo (SO)

En forma resumida y breve se puede mencionar que un SO presta servicios a los programas y a sus usuarios como:

  • Ejecución de programas.
  • Operaciones de E/S.
  • Manipulación del sistema de archivos.
  • Comunicaciones: entre procesos y de red.
  • Detección de errores.

La finalidad de estos servicios mantiene el principio de asegurar el funcionamiento eficiente del sistema operativo mediante:

  • Asignación de recursos: varios usuarios – varios trabajos.
  • Contabilización: qué usuarios usan qué recursos.
  • Protección: controlar accesos a los recursos.
  • Seguridad: cada usuario debe identificarse.

5. Planificación de Procesos en el Sistema Operativo

La planificación de procesos se refiere a cómo determina el sistema operativo el orden en que irá cediendo el uso del procesador a los procesos que lo vayan solicitando, y a las políticas que empleará para que el uso que den a dicho tiempo no sea excesivo respecto al uso esperado del sistema.

Podemos hablar de tres tipos principales de planificación:

Planificación a Largo Plazo

Decide qué procesos serán los siguientes en ser iniciados. Este tipo de planificación era el más frecuente en los sistemas de lotes (principalmente aquellos con spool) y multiprogramados en lotes; las decisiones eran tomadas principalmente considerando los requisitos pre-declarados de los procesos y los que el sistema tenía libres al terminar algún otro proceso. La planificación a largo plazo puede llevarse a cabo con periodicidad de una vez cada varios segundos, minutos e inclusive horas.

En los sistemas de uso interactivo, casi la totalidad de los que se usan hoy en día, este tipo de planificación no se efectúa, dado que es típicamente el usuario quien indica expresamente qué procesos iniciar.

Planificación a Mediano Plazo

Decide cuáles procesos es conveniente bloquear en determinado momento, sea por escasez/saturación de algún recurso (como la memoria primaria) o porque están realizando alguna solicitud que no puede satisfacerse momentáneamente; se encarga de tomar decisiones respecto a los procesos conforme entran y salen del estado de bloqueado (esto es, típicamente, están a la espera de algún evento externo o de la finalización de transferencia de datos con algún dispositivo).

En algunos textos, al planificador a mediano plazo se le llama agendador (scheduler).

Planificación a Corto Plazo

Decide cómo compartir momento a momento el equipo entre todos los procesos que requieren de sus recursos, especialmente el procesador. La planificación a corto plazo se lleva a cabo decenas de veces por segundo (razón por la cual debe ser código muy simple, eficiente y rápido); es el encargado de planificar los procesos que están listos para ejecución.

En algunos textos, al planificador a corto plazo se le llama despachador (dispatcher).

6. Diferencia entre Proceso y Programa

Un proceso es una serie de sentencias asignadas a una tarea; una vez que concluye la tarea, continúa con la ejecución del programa.

Un programa es también un conjunto de sentencias, pero que puede incluir varios procesos.

Sin embargo, se debe tener en cuenta que un programa en ejecución es un proceso. El nombre programa no se utiliza para referirse a un programa en ejecución, porque ambos conceptos son distintos. La diferencia es la misma que la que puede haber entre una galleta y la receta para hacer galletas. Un programa es un montón de datos, no es nada que esté vivo. Al contrario, un proceso es algo vivo, dinámico, que está haciendo cosas (ejecutando). Un proceso tiene un conjunto de registros que está usando, tiene un contador de programa que indica la siguiente instrucción que debe ejecutar, y tiene una pila. Esto significa que tiene un flujo de control que ejecuta una instrucción tras otra.

7. Algoritmos de Reemplazo de Páginas (FIFO)

Algoritmo de reemplazo tipo primero en entrar primero en salir para 3 marcos de página

A

B

C

D

A

B

E

A

B

C

D

E

A

A

A

D

D

D

E

E

E

E

E

E

B

B

B

A

A

A

A

A

C

C

C

C

C

B

B

B

B

B

B

D

D

F

F

F

F

F

F

Algoritmo de reemplazo tipo primero en entrar primero en salir para 4 marcos de página

A

B

C

D

A

B

E

A

B

C

D

E

A

A

A

A

A

A

E

E

E

E

D

D

B

B

B

B

B

B

A

A

A

A

E

C

C

C

C

C

C

B

B

B

B

D

D

D

D

D

D

C

C

C

F

F

F

F

F

F

8. Cálculo de Direcciones Lógicas y Físicas (Segmentación y Paginación)

a) Dado que un segmento puede tener sólo 8 páginas de 2 Kb cada una, el tamaño máximo de un segmento es $8 imes 2 ext{ Kb} = 16 ext{ Kb}$.

b) Dado que una tarea puede tener a lo más 4 segmentos, el máximo espacio de direcciones lógicas es $4 imes 16 ext{ Kb} = 64 ext{ Kb}$.

c) El formato de la dirección lógica estará definido por el número de segmentos por proceso, el número de páginas por segmentos y el espacio máximo de direcciones lógicas.

Como éste es de 64 KiB, las direcciones lógicas tendrán 16 bits.

2 bits

3 bits

11 bits

Segmento

Página

Desplazamiento

De la información dada, no se puede obtener los números de segmento o página, pero el desplazamiento puede obtenerse de la dirección física de 32 bits 00021ABC, dividiéndola de la forma indicada abajo.

De la figura, el desplazamiento es 2BC.

21 bits

11 bits

0000 0000 0000 0010 0001 1

010 1011 1100

Marco de página

Desplazamiento