Sei sulla pagina 1di 9

Unidad 1 - Introducción a los computadores Resumen Primer Parcial

Unidad 1: Introducción a los computadores


¿Qué hace un sistema operativo?
Un SO es el encargado de administrar los recursos de hardware de un sistema de computación
(por ejemplo, una computadora) para poder ofrecer servicios a los usuarios de estos sistemas. A
los usuarios se los puede considerar como personas o como otros programas.

Elementos básicos
Al más alto nivel, un computador consta de:

 Procesador: Controla el funcionamiento del computador y realiza sus funcionamientos de


procesamientos de datos. Cuando solo hay un procesador, se denomina unidad centrad de
proceso (CPU).
 Memoria principal: Almacena datos y programas. Esta generalmente es volátil (cuando se apaga
el computador, se pierde el contenido), a diferencia de la memoria de disco, que se mantiene
aunque se apague.
 Módulos de E/S: Transfieren datos entre el computador y su entorno externo (dispositivos de
memoria secundaria (disco duro), equipos de comunicaciones, y terminales)
 Bus del sistema: Proporciona comunicación entre los procesadores, la memoria principal, y el
módulo de E/S.

1
Unidad 1 - Introducción a los computadores Resumen Primer Parcial

Registros del procesador


Los registros son FLIP-FLOP que almacenan memoria. Son volátiles. Estos se encuentran en la
CPU. La dirección que está escrita en el program counter (PC) la carga el IR (Registro de
instrucción) y luego este es el que registra esa dirección y la convierte en una acción, es decir, lo
ejecuta con la unidad de ejecución.
Un procesador incluye un conjunto de registros, donde estos proporcionan un tipo de memoria
más rápida y de menor capacidad que la memoria principal. Los registros del procesador sirven
para dos funciones:

 Registros visibles para el usuario: Permiten al programador en lenguaje maquina o en


ensamblador, minimizar las referencias a memoria principal, optimizando el uso de
registros.
En un lenguaje de alto nivel, el compilador intentara tomar decisiones sobre que variables
se asignan a registros y cuales a memoria principal.
Con estos registros, se reduce el acceso a la memoria principal. Como este acceso hace que
todo sea más lento, se reducen los tiempos de ejecución de los programas.
 Registros de control y estado: Son usados por el procesador para controlar su operación,
y por rutinas privilegiadas de SO para controlar la ejecución de programas.

Registros visibles por el usuario:


Puede ser referenciado por medio del lenguaje de máquina. Está disponible para todos los
programas del sistema y de aplicación.
Clases de registros:

 De datos: generalmente son de propósito general y se usan para almacenar datos que
después van a ser procesados (términos o resultados de una suma)

 De dirección:
– Registro índice: Se utiliza para formar direcciones físicas a partir de direcciones
lógicas (base + indice). Es decir, implica sumar un índice a un valor base para
obtener la dirección efectiva.
– Puntero de segmento: se utiliza para formar direcciones de acceso a memoria
de la forma “segmento + desplazamiento”. Cuando la memoria se divide en
segmentos, una referencia a la memoria consta de una referencia a un
segmento particular y un desplazamiento dentro del segmento.
– Puntero de pila: Señala la parte superior de la pila. Contiene la dirección del
extremo superior.

2
Unidad 1 - Introducción a los computadores Resumen Primer Parcial

Registros de control de estado:


• Contador de programa (PC, Program Counter): Contiene la dirección de la instrucción a
ser leída. Es decir, la dirección de memoria donde se almacena a próxima instrucción a
ser ejecutada
• Registro de instrucción (IR, Instruction Register): Contiene la última instrucción leída.

• Palabra de estado del programa (PSW, Program Status Word):


– Códigos de condición.
– Interrupciones habilitadas/deshabilitadas.
– Estado usuario/supervisor.
• Códigos de condición o flags: Conjunto de bits activados por el hardware del procesador
como resultado de determinadas operaciones. Se puede acceder a través de un
programa, pero no pueden ser alterados. Ejemplos: Resultado positivo. Resultado
negativo. Cero. Desbordamiento.

Búsqueda y Ejecución de una instrucción – Ciclo de instrucción


Al principio de cada ciclo de instrucción, el procesador lee una instrucción de la memoria, de la
dirección que indica el contador del programa (PC). Este almacena la dirección de la siguiente
instrucción que se va a leer. A menos que se le indique otra cosa, el procesador siempre
incrementa el contador del programa después de cada instrucción ejecutada, de modo que se
leerá la siguiente instrucción en orden secuencial. La instrucción leída se carga dentro de un
registro del procesador llamado registro de instrucción (IR). La instrucción contiene bits que
especifican la acción que debe realizar el procesador. En general, estas acciones se dividen en
cuatro categorías:

 Procesador-memoria: Se transfieren datos del procesador a memoria o viceversa.


 Procesador-E/S: Se envían datos a un dispositivo periférico o se reciben desde el mismo,
transfiriéndose entre el procesador y un módulo E/S.
 Procesamiento de datos: Se realizan operaciones aritméticas o lógicas sobre los datos
almacenados en los registros del procesador.
 Control: Una instrucción puede especificar que se va a alterar la secuencia de ejecución.

3
Unidad 1 - Introducción a los computadores Resumen Primer Parcial

Ejemplo de un programa
El PC empieza diciendo que hay
que ir a la dirección 300, luego se
carga en el IR la instrucción 1940
(indicado por la flecha). Esta
instrucción indica que hay que
copiar lo que hay en la dirección
940 al registro AC.

Después de esto, el PC se
incrementa y se copia lo que hay en
301 (5941) a IR. Esta instrucción
dice que hay que sumar lo que está
en el AC (0003) con lo que hay en el
registro 941 (0002), y guardar el
resultado (0005) en AC.

Por último, lo que hay en 302 va al


IR (2941). Esto indica que se debe
guardar lo del AC en la dirección 941.

Interrupciones
Los computadores proporcionan un mecanismo por el cual otros módulos (memoria y E/S)
pueden interrumpir el secuenciamiento normal del procesador.
Sirven para parar el procesador y llevarlo a hacer o ejecutar otro programa. Cuando el flujo
normal de ejecución del procesador se ve interrumpido por un evento, el mismo guarda el estado
de sus registros generalmente en la pila y comienza la ejecución de un código ISR – Rutina de
Servicio de Interrupción, (código designado a ejecutarse cuando se da una interrupción).
Una vez que se termina de servir a la interrupción, el procesador reanuda la ejecución del
programa previo.
Las interrupciones son una manera de mejorar la utilización del procesador. Lo que se hace es
liberar al procesador de los tiempos del proceso relativamente lentos para darle prioridad a cosas
que pueden o no estar relacionadas con lo que se venía ejecutando. Esto resulta una mejora en
la eficiencia del procesamiento. El procesador multiplexa su tiempo entre diferentes tareas.
Permiten también que exista el sistema operativo. En un sistema de control, cuando se ejecuta
el programa, no se ejecuta el sistema operativo en simultaneo. Pero, es necesario saber si está
todo bien, si sigue funcionando correctamente todo. Para eso está la interrupción. Lo que hace

4
Unidad 1 - Introducción a los computadores Resumen Primer Parcial

es darle la opción al sistema operativo para que se ejecute, tome el control del hardware, vea si
esta todo funcionando correctamente y luego seguir con la ejecución del programa. El sistema
operativo se controla en súper usuario.
Las clases de interrupciones son:

 De programa: Generada por alguna condición que se produce como resultado de la


ejecución de una instrucción. (desbordamiento aritmético, división por 0, etc.). Son
generadas por el mismo procesador mientras ejecuta un programa.
 De timer - Por temporizador: Generada por un temporizador del procesador. Contador
por hardware cada vez que hace un overflow.
 De Entrada/Salida: Generada por un controlador de entrada o salida, es decir, un
dispositivo externo al procesador (mouse, teclado, placa, etc) para indicar la conclusión
de una operación o para indicar una condición de error.
 Por fallo del hardware: Generada por un fallo (fallo en el suministro de energía, error
de paridad en la memoria, etc.)
Ciclo de Ejecución con Interrupciones

Antes de buscar una nueva interrupción, el procesador verifica si ha sucedido alguna


interrupción.

En función de esto busca la próxima instrucción del programa actual o busca la primera
instrucción de la rutina de interrupción.

Interrupciones Múltiples
Se tiene dos alternativas cuando tenemos múltiples interrupciones. Estas pueden servirse de
manera secuencial o por orden de prioridad.
En el caso secuencial, al comenzar la primera interrupción, se inhabilita el servicio de
interrupciones para poder terminar de servir esta primera. Una interrupción inhabilitada significa
que el procesador va a ignorar cualquier nueva petición de interrupción, y estas estarán

5
Unidad 1 - Introducción a los computadores Resumen Primer Parcial

pendientes de ser procesadas. Luego de terminar, se habilitan las interrupciones nuevamente


para servir la siguiente interrupción. El procesador las controlara. La desventaja de esto es que
no tiene en cuenta la prioridad o grado de urgencia de las interrupciones.
La segunda estrategia es definir un orden de prioridades para las interrupciones y permitir que
una interrupción de más prioridad cause que se interrumpa la ejecución de un manejador de una
interrupción de menor prioridad.

Multiprogramación
Incluso utilizando interrupciones, puede que el procesador siga sin utilizarse eficientemente. Ya
que, si el tiempo requerido para completar una operación de Entrada/Salida es mayor que el
código de usuario entre llamadas de E/S, el procesador está parado la mayor parte del tiempo.
Para solucionar esto se utiliza la multiprogramación: Múltiples programas de usuario pueden
estar activos al mismo tiempo. La secuencia con la que se ejecutan los programas dependerá de
su prioridad relativa, así como de si está esperando la finalización de una operación de E/S.

Esto se logra gracias a las interrupciones.

Ejecución de Operaciones de Entrada/Salida


 Entrada/Salida programada: El procesador le pide al dispositivo de entrada y salida que
escriba o lea un grupo de datos y los ponga disponibles para que el procesador los copie
a la memoria principal o los utilice. El procesador queda esperando hasta que el
dispositivo termina con la operación
 E/S por interrupciones: El procesador le pide al dispositivo de entrada y salida que
escriba o lea un grupo de datos y los ponga disponibles para que el procesador los copie
a la memoria principal o los utilice. El procesador comienza a ejecutar otro programa
hasta que el dispositivo interrumpe avisando que terminó.

6
Unidad 1 - Introducción a los computadores Resumen Primer Parcial

 E/S por DMA: Igual que antes pero el dispositivo interrumpe cuando termina de copiar
los datos a la memoria principal. De esta forma se libera al procesador de la tarea de
mover los datos.

Jerarquía de memoria
Las tres características fundamentas de la memoria son: coste, capacidad, y tiempo de acceso.
Donde se cumplen las siguientes relaciones:

 A menor tiempo de acceso, mayor coste por bit


 A mayor capacidad, menor coste por bit
 A mayor capacidad, mayor tiempo de acceso
A un diseñador le gustaría utilizar tecnologías que proporcionan una memoria de gran capacidad,
ya que se necesita esa capacidad y el coste por bit es menor, pero los tiempos de acceso son
relativamente altos. Si se necesita rendimiento, la capacidad debe ser baja con tiempos de acceso
altos. Para solucionar esto, no hay que basarse en un único componente de memoria, sino en
una jerarquía de memoria. Según se desciende en la jerarquía de memoria ocurre lo siguiente:

 Disminución de coste por bit


 Aumenta la capacidad
 Aumenta el tiempo de acceso
 Disminuye la frecuencia a la memoria por parte del procesador
Una representación de la jerarquía de memorias es:

Memoria cache
La velocidad a la cual el procesador puede ejecutar instrucciones está limitada por el tiempo de
ciclo de memoria (tiempo que se tarda en leer o escribir una palabra). Idealmente, se debería
construir la memoria principal con la misma tecnología que los registros del procesador,
consiguiendo tiempos de ciclo de memoria comparables a los tiempos de ciclo del procesador.
Esta estrategia es muy costosa. La solución a esto es aprovechar el principio de proximidad
utilizando una memoria pequeña y rápida entre el procesador y la memoria principal, llamada
cache.

7
Unidad 1 - Introducción a los computadores Resumen Primer Parcial

El propósito de la memoria cache es proporcionar un tiempo de acceso a memoria próximo al de


las memorias más rápidas disponibles, y al mismo tiempo, ofrecer un tamaño de memoria grande
que tenga el precio de los tipos de memorias de semiconductores menos costosas.
Como se observa en la imagen, tenemos una memoria principal relativamente grande y lenta, y
una memoria cache más pequeña y rápida. La cache contiene una copia de una parte de la
memoria principal. Cuando el CPU intenta leer un byte de la memoria, primero se fija si el byte
está en la cache. Si es así, se le entrega el byte al procesador, de lo contrario se lee e introduce
dentro de la cache un bloque de memoria principal.
Es invisible para el sistema operativo

Técnicas de comunicación de E/S


Hay tres técnicas para llevar a cabo las operaciones de E/S:
 E/S programada: El módulo E/S lleva a cabo la acción requerida en lugar del procesador. Activa
los bits apropiados en el registro de estado de E/S. No se producen interrupciones. El procesador
comprueba el estado hasta que se ha completado la operación.
 E/S dirigida por interrupciones: El procesador queda interrumpido cuando el módulo E/S está
listo para intercambiar más datos. El procesador puede realizar otras operaciones. Elimina las
esperas innecesarias. Consume una gran cantidad de tiempo del procesador debido a que cada
palabra de datos pasa a través del procesador.
 Acceso directo a memoria: Transfiere el bloque entero directamente hacia o desde la memoria.
Cuando se completa la transferencia se envía una señal de interrupción. El procesador se ve
involucrado sólo al inicio y al final de la transferencia.

Proximidad espacial y proximidad temporal


 Proximidad espacial: Es la tendencia de una ejecución a involucrar posiciones de memoria que
están agrupadas. Por lo tanto el procesador tiende a acceder a las instrucciones secuencialmente.
Esta se utiliza generalmente en bloques de cache grandes e incorporando mecanismos de lectura
anticipada.
 Proximidad temporal: Es la tendencia de un procesador a acceder a posiciones de memoria que
se han utilizado recientemente. Este se utiliza manteniendo en la memoria cache los valores de
las instrucciones y datos usados recientemente aprovechando una jerarquía de cache.

8
Unidad 1 - Introducción a los computadores Resumen Primer Parcial

Potrebbero piacerti anche