Title: Organizacin Estructurada de Computadoras 4
1Organización Estructurada de Computadoras (4)
- Arquitectura de Microcomputadoras
- 9º Sem IEK
- Cap. 2 Parte 5 SO
- Lecturas recomendadas
- Tanembaum, A. Organización de computadoras. Cap.
6 - Stallings, W. Organización y arquitectura de
computadores. Cap. 7 - Carter, N. Arquitectura de Computadores.
Colección Schaum. Cap. 10
2Sistema Operativo
- Objetivos y funciones
- Controla la ejecución de los programas de
aplicación. - Actúa como interfaz entre el usuario y el
hardware del computador. - Otorga comodidad y facilita el uso del
computador. - Otorga eficiencia al uso de los recursos del
computador.
3Visión de un computador
Usuario final
Programas de aplicación
Programador
Utilidades
Sistema operativo
Diseñador del SO
Hardware del computador
4Servicios que presta el SO
- Creación de programas
- Proporciona utilidades (variedad de servicios y
medios para ayudar al programador en la
elaboración de programas) - Ejecución de programas
- Realiza tareas diversas en la ejecución de un
programa - Ejemplos carga de datos e instrucciones en la
memoria principal, inicialización de dispositivos
E/S y ficheros.
5Servicios que presta el SO (2)
- Acceso a dispositivos E/S
- Proporciona a cada dispositivo E/S el
conjunto particular de instrucciones y señales de
control que necesita para operar, liberando al
programador de tales tareas - Acceso controlado a ficheros
- Hace transparente para el programador la
naturaleza del dispositivo (disco, cinta), el
formato del fichero y del medio de almacenamiento - Proporciona mecanismos de protección en el caso
de sistema con múltiples usuarios (controles de
acceso a recursos compartidos) - Acceso al sistema
- En el caso de un sistema compartido, controla el
acceso al sistema como un todo y a los recursos
específicos del sistema
6Administración de recursos
- SO es responsable de administrar los recursos de
que dispone un computador para transferir,
almacenar y procesar datos, y controlar estas
funciones - Características del SO como mecanismo de control
- Funciona como un programa más ejecutado por la
CPU - Frecuentemente cede el control y depende de la
CPU para recuperarlo - Recursos que administra
- Memoria principal aquí reside el núcleo del SO,
formado por las funciones más frecuentemente
utilizadas - E/S el SO decide cuándo un programa en ejecución
puede usar un dispositivo E/S - Ficheros controla el acceso y el uso de los
ficheros
7Tipos de SO
- Sistema de colas (batch)
- El programa de usuario se ubica en una cola,
junto con programas de otros usuarios - Al término del programa, se devuelven al usuario
los resultados - Actualmente, no se utiliza en forma pura
- Interactivo
- El usuario/programador interactúa directamente
con el computador, usualmente a través de un
terminal de pantalla y teclado
8- Uniprogramación
- El procesador trabaja con un solo programa en
cada momento - Multiprogramación
- Se cargan varios programas en la memoria
- El procesador conmuta rápidamente entre ellos
- La filosofía es mantener ocupado al procesador
tanto como sea posible
9Los primeros SO
- Planificación
- Se utilizaba una lista de tiempo de reserva de la
máquina - Periodos de tiempo fijos
- Frecuentemente, se utilizaba mal el tiempo
- Tiempo de preparación (setup)
- Un único programa (job) se encargaba las tareas a
ejecutar cargar en memoria el compilador y el
lenguaje de alto nivel (programa fuente), el
programa compilado (programa objeto) - Podía consumir mucho tiempo en preparar la
ejecución del programa
10Soluciones implementadas
- Sistemas de colas simples (monitor)
- El monitor controla la secuencia de eventos
necesaria en la ejecución de los programas - El usuario ya no tiene acceso directo al
computador - El monitor reside siempre en la memoria
principal, listo para ejecutarse - Ejemplo de secuencia
- El usuario envía el trabajo (en tarjetas o
cinta), el cual es puesto en una cola - Se lee el trabajo en cuestión y se le cede el
control - Cuando el trabajo termina, se produce una
interrupción (interna a la CPU) y se devuelve el
control al monitor - El monitor pasa al siguiente trabajo
11- Sistemas de colas multiprogramados
- Resuelve el problema que se presenta en las colas
simples procesador parado a menudo - Se denomina también multiprogramación o
multitarea (multitasking) - Requiere memoria suficiente para albergar al
monitor y a más de un programa de usuario - Requerimientos de hardware gestión de
interrupciones y DMA - Sistemas de tiempo compartido
- Requerido por sistemas interactivos
- El tiempo del procesador se comparte entre varios
usuarios - Usuarios acceden al sistema a través de
terminales, el SO alterna entre ráfagas de
cómputo de cada usuario
12Diferencias entre multiprogramación y tiempo
compartido
- Objetivo principal
- Multiprogramación con colas
- Maximizar la utilización del procesador
- Tiempo compartido
- Minimizar el tiempo de respuesta
- Fuente de instrucciones para el SO
- Multiprogramación con colas
- Instrucciones de un lenguaje de control de
trabajos que proporciona el propio trabajo - Tiempo compartido
- Ordenes introducidas a través del terminal
13Distribución de la memoria para un monitor
residente
Procesamiento de interrupciones
Controladores de dispositivos
Monitor
Secuenciador de trabajo
Intérprete de lenguaje de control
Area de programas de usuario
14Características necesarias en el hardware
- Protección de memoria
- No se debe alterar el área de memoria que
corresponde al monitor - Si se intentara, el hardware de la CPU debe
detectar un error y transferir el control al
monitor - El monitor aborta el trabajo, emite un mensaje de
error y carga el siguiente trabajo - Temporización
- Se debe evitar que un único programa monopolice
el uso del sistema - El temporizador se actualiza al inicio de cada
trabajo - Cuando el tiempo termina, se activa una
interrupción y el control vuelve al monitor - Instrucciones privilegiadas
- Sólo pueden ser ejecutadas por el monitor
- Ejemplos instrucciones E/S
- Si la CPU encuentra una instrucción privilegiada
al ejecutar un programa de usuario, debe
detectarlo como error y transferir el control al
monitor
15Planificación
- Tarea principal de un SO moderno la
multiprogramación - Definición de proceso programa en ejecución
- Tipos de planificación
- Planificación a largo plazo
- Planificación a medio plazo
- Planificación a corto plazo
16Ejemplo de multiprogramación
Tiempo
Tiempo
17Ejemplo de multiprogramación
Programa A
Programa B
Programa C
Combinado
Tiempo
18Planificación a largo plazo
- Función
- Determinar qué programas se admiten para ser
procesados en el sistema - Controlar el grado de multiprogramación (nº de
procesos en memoria) - Cómo se realiza
- Una vez admitido, un trabajo o programa pasa a
ser un proceso - El Proceso se añade a la cola asociada al
planificador a corto plazo - El planificador a largo plazo puede limitar el
grado de multiprogramación - En el sistema de colas, los trabajos nuevos se
envían al disco y se mantienen en línea de espera - El planificador a largo plazo toma trabajos de la
cola cuando puede - Para ello debe decidir si acepta uno o más
procesos adicionales, y qué trabajo o trabajos
acepta y transforma en procesos
19Planificación a medio plazo
- Forma parte del intercambio (swapping)
- La decisión de intercambio de procesos está
ligada con el grado de multiprogramación - Debe tenerse en cuenta las necesidades de memoria
de los procesos intercambiados
20Planificación a corto plazo
- Función
- Decide en forma específica qué trabajo se
ejecutará, para ello mantiene la información del
estado de los procesos - Estado de los procesos
- Nuevo (new)
- Preparado (ready)
- En ejecución (running)
- En espera (waiting)
- Parado (halted)
- Representación de los estados de los procesos
Mediante un bloque de control de proceso - Identificador
- Estado
- Prioridad
- Contador de programa
- Punteros a memoria
- Datos de contexto
- Información de estado de E/S
- Información para contabilidad
21Técnicas de planificación
Sistema operativo Gestor del servicio Gestor de
interrupción Planificador
Sistema operativo Gestor del servicio Gestor de
interrupción Planificador
Sistema operativo Gestor del servicio Gestor de
interrupción Planificador
Control
A En ejecución
A En ejecución
A En espera
A En espera
Control
B Preparado
B Preparado
B En ejecución
Control
Control
Otras particiones
Otras particiones
Otras particiones
(a)
(b)
(c)
22Modelo de proceso de 5 estados
23Diagrama de colas para la planificación del
procesador
Cola a largo plazo
Cola a corto plazo
Final
CPU
Solicitud de proceso
E/S 1
E/S 2
Cola de E/S 2
E/S n
24Gestión de la memoria
- Se refiere a la subdivisión de la memoria para
dar cabida al monitor residente y al/los
proceso/s - Aspecto vital en sistema multiprogramado
- Técnicas aplicadas
- Intercambio (swapping)
- Se aplica a solicitudes de proceso situadas en
una cola a largo plazo - Las solicitudes de proceso, almacenadas en disco,
se traen una a una a la memoria, según espacio
disponible, y son retirados de ella a medida que
terminan - Si en determinado momento, ningún proceso se
encuentra en el estado preparado, el procesador
intercambia uno de esos procesos, situándolo en
el disco en una cola intermedia - La cola intermedia alberga los procesos que se
han sacado temporalmente de memoria - El SO trae otro proceso de la cola intermedia o
acepta una nueva petición de proceso - El intercambio es una operación de E/S (involucra
al disco) - Riesgo empeorar
25Intercambio
26Definición de particiones
- Particiones de tamaño fijo
- No necesariamente del mismo tamaño
- Un proceso introducido a memoria se sitúa en la
partición disponible más pequeña que puede
albergarlo - Particiones de tamaño variable
- Un proceso introducido a memoria recibe
exactamente el tamaño que necesita - La fragmentación de la memoria se soluciona con
la compactación - Cada tanto, el SO desplaza los procesos en
memoria para reunir toda la memoria libre en un
bloque (compactación)
27MEMORIA VIRTUAL
- PAGINACIÓN
- Técnica del S.O. que aparenta que la máquina
tiene más memoria - Se define el espacio de direcciones virtual y el
espacio de direcciones físico - Espacio de direcciones virtual direcciones a las
que el programa puede hacer referencia - Espacio de direcciones físico direcciones de
memoria reales (en hardware)
28MEMORIA VIRTUAL - PAGINACIÓN
29Paginación
- Los procesos se dividen en partes más pequeñas de
tamaño fijo, cada una de ellas conocida como
página, que se lee del disco - Equivale a dividir el espacio de direcciones que
corresponde a un proceso en páginas cuyo tamaño
podría estar entre 512 y 64k Bytes - A cada página se asigna una porción de memoria
disponible, conocida como marco (frame) o marcos
de página - Una página es un fragmento de programa
- Las direcciones virtuales se relacionan con las
direcciones físicas a través de una Tabla de
Páginas - Es invisible para el programador y le proporciona
un mayor espacio de direcciones
30Implementación de la Paginación
- El espacio de direcciones físico se divide de
igual manera que el virtual, en fragmentos del
tamaño de una página - Un fragmento de la memoria principal que contiene
una página se denomina Marco de Página - La paginación es controlada por la unidad de
gestión de memoria, que cuenta con un registro de
entrada y un registro de salida puede ubicarse
en la CPU
31(No Transcript)
32(No Transcript)
33Estructura de la tabla de páginas
- La tabla de páginas contiene la traducción de la
dirección virtual o lógica de una palabra de
memoria (nº de página y desplazamiento) a una
dirección física (nº de marco y un
desplazamiento) - La tabla de páginas tiene longitud variable y es
alojada en la memoria real o en la memoria
virtual - Si la tabla de páginas se aloja en la memoria
virtual, está sujeta a paginación igual que
cualquier otra página - En tal caso, se requiere que una parte de su
tabla de páginas, la que incluye al elemento en
ejecución, resida en la memoria principal
34Paginación por Demanda
- Cada proceso se introduce en memoria cuando se
necesita (cuando se solicita) - Se cargan en la memoria unas pocas páginas
- Si el programa hace referencia a un dato de una
página que no está en memoria, se produce una
falta de página o fallo de página - En tal caso, el SO debe traer la página
solicitada - La mayor parte de los programas tiende a
concentrar la referencia a un número reducido de
páginas (conjunto de trabajo, conjunto de las
páginas utilizadas por las referencias a memoria
más recientes) - Riesgo hiperpaginación (thrasing). El procesador
pasa la mayor parte del tiempo intercambiando
páginas - Solución predicción de páginas que serán menos
utilizadas en el futuro próximo
35Paginación por demanda
- Política de reemplazo de páginas
- La menos recientemente utilizada (LRU, least
recently used) - Es eficiente si la memoria principal es de tamaño
mayor que el conjunto de trabajo - FIFO (Primero en entrar, primero en salir)
- Expulsa la página que se cargó menos
recientemente, sin importar cuándo se hizo
referencia a ella. - Se implementa añadiendo a cada página un
contador que se incrementa con cada fallo de
página
36(No Transcript)
37Paginación
- Determinación del tamaño de una página
- Relación de compromiso
- Fragmentación interna espacio desperdiciado
dentro de una página - Para minimizar el desperdicio se requieren
páginas de pequeño tamaño - Ventaja de la página pequeña
- Podría reducir la hiperpaginación
- Desventajas de la página pequeña
- Alto requerimiento en hardware (grandes tablas de
páginas requieren gran cantidad de registros) - Uso ineficiente del tiempo
- Utilización ineficiente del ancho de banda del
disco
38Estructura de tabla de páginas invertida
- La porción de la dirección virtual
correspondiente al número de página se mapea en
una tabla de dispersión, mediante una función de
dispersión sencilla - La tabla de dispersión incluye un puntero a una
tabla de páginas invertida, que contiene los
elementos de la tabla de páginas - Para cada página de memoria real hay un elemento
en la tabla de dispersión y en la tabla de
páginas
39Buffer de traducción anticipada (Translation
lookaside buffer, TLB)
- Toda referencia a memoria virtual podría duplicar
el tiempo de acceso a memoria - Solución
- Utilizar una memoria caché (TLB) para los
elementos de la tabla de páginas - El TLB contiene los elementos de la tabla de
páginas a los que se ha accedido más
recientemente
40Segmentación
- La memoria se divide en segmentos de tamaño
variable (dinámico) - Los segmentos se asignan a varios tipos de
programas y datos - Los segmentos pueden ser utilizados por el
programador, a quien se asignará derechos de
acceso y uso - Las referencias a memoria se realizan mediante
direcciones constituidas por un nº de segmento y
un desplazamiento
41(No Transcript)
42Segmentación
- La longitud de un segmento puede ir desde 0 hasta
un máximo - La longitud de un segmento puede cambiar durante
la ejecución, sin afectar a otros - Diferentes segmentos pueden tener diferentes
longitudes
43(No Transcript)
44Implementación de la segmentación
- Intercambio
- Idéntico a la paginación
- Se produce fragmentación externa desperdicio de
espacio entre segmentos - Se reduce la fragmentación externa con la
compactación, utilizando los algoritmos de - Mejor ajuste escoge el hueco más pequeño en el
que cabe el segmento requerido - Primer ajuste escoge el primer agujero lo
bastante grande como para albergar el segmento
45(No Transcript)
46Implementación de la segmentación(2)
- Paginación
- Se divide un segmento en páginas de tamaño fijo
- Algunas de las páginas de un segmento podrían
estar en la memoria y otras en el disco - Se requiere una tabla de páginas individual para
cada segmento - La paginación se produce por demanda
47Ventajas de la segmentación
- Simplificación de la gestión de estructuras
crecientes de datos (el segmento se reduce o
expande, según necesidad) - Posibilidad de modificar y recompilar los
programas en forma independiente, sin necesidad
de enlazar y cargar el conjunto entero de
programas - Varios procesos pueden compartir segmentos
- Otorga facilidades para implementar
protecciones puesto que está definido el
conjunto de un segmento, el administrador del
sistema puede asignar privilegios de acceso
48Instrucciones de E/S virtuales
- Organización en archivos
- Secuencia de bytes escritos en un dispositivo de
almacenamiento de E/S (disco) - Operaciones de E/S con archivos se efectúan con
llamadas al sistema - Llamada de lectura de un archivo
- Indicación del archivo a leer
- Apuntador a un buffer de la memoria conde se
almacenarán los datos - Nº de bytes a leerse
- Se asocia un apuntador que indica la secuencia de
bytes que se leerá a continuación e información
para indicar que se ha terminado de leer un
archivo y puede ser cerrado
49Implementación de las E/S virtuales
- Factor clave asignación de almacenamiento, que
puede darse en un sector de disco, sectores
consecutivos o no. - Asignación consecutiva
- Es sencilla, sin embargo no es posible cuando no
se conoce el tamaño máximo del archivo por
adelantado - Asignación no consecutiva
- Aplicada en casos en que nos e conoce el tamaño
final de los archivos (éstos podrían estar
creciendo continuamente) - Necesidad de mantener información acerca de los
espacios disponibles en disco (huecos) - Lista libre facilita la localización de un
hueco se trata de una lista de tamaño variable - Mapa de bits se cuenta con un bit por unidad de
asignación - Necesidad de actualizar las listas o tablas de
asignación luego de asignar o borrar archivos del
disco
50- Tamaño de la unidad de asignación
- Factores que inciden tiempo de búsqueda y
retraso rotacional de los discos - Unidades de asignación pequeñas poco desperdicio
de espacio, índices de archivos grandes o tablas
grandes - Unidades de asignación grandes eficiencia de
transferencia
51Método de localización de datos en la asignación
no consecutiva
- Proporciona las unidades de asignación y sus
direcciones de disco reales - Lista de direcciones de bloques de disco
- Lista de registros lógicos, especificando la
dirección en disco y la distancia para cada uno - Lista enlazada cada unidad de asignación
contiene la dirección de su sucesora
52Gestión de directorios
- Directorios organización de los archivos en
línea (información manejada automática por la
computadora) - Ejemplos de llamadas al sistema
- Crear un archivo e introducirlo en un directorio
- Borrar un archivo de un directorio
- Cambiar el nombre de un archivo
- Modificar la situación de protección de un
archivo - Los directorios facilitan el compartir archivos
entre usuarios
53Esquemas de protección
- El dueño de cada archivo especifica una
contraseña secreta - El dueño de cada archivo especifica la lista
explícita de usuarios que pueden acceder al
archivo