dictarsistemas-operativos

52
El soporte del sistema operativo Dr. Ivan Delgado H.

description

administración de memoria de sistemas operativos

Transcript of dictarsistemas-operativos

Page 1: dictarsistemas-operativos

El soporte del sistema operativoDr. Ivan Delgado H.

Page 2: dictarsistemas-operativos

Objetivos y funciones del sistema operativo Comodidad

Hace que un computador sea más fácil de usar.

EficienciaPermite que los recursos del computador se

aprovechen mejor.

Page 3: dictarsistemas-operativos

Capas y puntos de vista de un computador

Usuario finalUsuario final

Programas de aplicaciónProgramas de aplicación

UtilidadesUtilidades

Sistema operativoSistema operativo

Hardware del computadorHardware del computador

ProgramadorProgramador

Diseñador del Diseñador del sistema operativosistema operativo

Page 4: dictarsistemas-operativos

Servicios del sistema operativo

Creación de programas Ejecución de programas Acceso a los dispositivos de E/S Acceso controlado a los ficheros Acceso al sistema Detección de errores y respuesta Contabilidad

Page 5: dictarsistemas-operativos

El sistema operativo como gestor de recursos

Controles de Memoria E/S

COMPUTADOR

DISPOSITIVOS DE E/SSoftware

del sistemaoperativo

Programas y datos

Procesador Procesador AlmacenamientoS.O.

ProgramasDatos

Page 6: dictarsistemas-operativos

Tipos de sistemas operativos

Interactivos Sistemas de colas Un solo programa (monoprogramados) Multiprogramados (multiárea)

Page 7: dictarsistemas-operativos

Los primeros sistemas

De finales de los 40 a mediados de los 50. No eran sistemas operativos. El programador interactuaba directamente

con el hardware. Dos problemas fundamentales:

Planificación Tiempo de preparación

Page 8: dictarsistemas-operativos

Sistemas de colas simples Programa monitor residente. El usuario envía los trabajos a un operador. El operador pone los trabajos en cola. El monitor controla la secuencia de eventos

para procesar la cola. Cuando el trabajo termina, se devuelve el

control al monitor, que inmediatamente lee el siguiente trabajo.

El monitor se encarga de la planificación.

Page 9: dictarsistemas-operativos

Lenguaje de control de trabajos Se utiliza para dar instrucciones al monitor. Las instrucciones de control de trabajo

normalmente empiezan con $. Por ejemplo:

$JOB $FTN ... Instrucciones Fortran $LOAD $RUN ... Datos $END

Page 10: dictarsistemas-operativos

Funciones necesarias del hardware Protección de memoria

Para proteger el monitor. Temporización

Para evitar que un único trabajo monopolice el sistema.

Instrucciones privilegiadas Sólo pueden ser ejecutadas por el monitor. Ejemplo: instrucciones de E/S.

InterrupcionesPermite al procesador ceder y recuperar el

control.

Page 11: dictarsistemas-operativos

Sistemas de colas multiprogramados Los dispositivos de E/S son muy lentos. Mientras que un programa está esperando

una instrucción de E/S, otro puede utilizar la CPU.

Page 12: dictarsistemas-operativos

Ejecución Ejecución

Monoprogramación

Espera Espera

Tiempo

Page 13: dictarsistemas-operativos

Multiprogramación de dos programas

Programa A Espera Espera

Programa B Espera Espera Espera

Ejecución Ejecución

Combinado Espera Espera

Tiempo

Ejecución Ejecución

Ejecución Ejecución

BABA

Page 14: dictarsistemas-operativos

Multiprogramación de tres programasPrograma A Espera Espera

Programa B Espera Espera Espera

Programa C Espera Espera Espera

Ejecución Ejecución

Combinado

Tiempo

Ejecución

Ejecución

Ejecución

Ejecución

Ejecución Ejecución

A C B C B A

Page 15: dictarsistemas-operativos

Sistemas de tiempo compartido

Permiten al usuario interactuar directamente con el computador. Ejemplo: en trabajos interactivos

La multiprogramación permite a un determinado número de usuarios interactuar con el computador.

Page 16: dictarsistemas-operativos

Planificación

Es la clave de la multiprogramación Planificación a largo plazo Planificación a medio plazo Planificación a corto plazo Planificación de E/S

Page 17: dictarsistemas-operativos

Planificación a largo plazo Determina qué programas se admiten para

ser procesados. De este modo, controla el grado de

multiprogramación. Una vez admitido, un trabajo pasa a ser un

proceso y se añade a una cola asociada al planificador a corto plazo.

En algunos sistemas, se produce una función de intercambio y el trabajo se añade a la cola del planificador a medio plazo.

Page 18: dictarsistemas-operativos

Planificación a medio plazo

Es parte de la función de intercambio (descrita en la Sección 7.3.).

Normalmente se basa en la necesidad de gestionar la multiprogramación.

Si el sistema no utiliza memoria virtual, este planificador también se encargará de la gestión de la memoria.

Page 19: dictarsistemas-operativos

Planificación a corto plazo

También llamado distribuidor. Toma la decisión más específica: qué

trabajo se ejecuta a continuación. Es decir, qué trabajo utilizará el

procesador durante el próximo tiempo de espera.

Page 20: dictarsistemas-operativos

Estados de los procesos

Asignar procesador Iniciar Salida

Suspender Se produce el evento Esperar evento

NuevoNuevo

En esperaEn espera

SalidaSalidaEn ejecuciónEn ejecución PreparadoPreparado

Page 21: dictarsistemas-operativos

Bloque de control de procesos Identificador Estado Prioridad Contador de programa Punteros a memoria Datos de contexto Información del estado de las E/S Información estadística

Page 22: dictarsistemas-operativos

Elementos clave de un sistema operativo

Llamadas aLlamadas aservicios desdeservicios desdeprocesosprocesos

Interrupciones Interrupciones desde procesosdesde procesos

InterrupcionesInterrupcionesdesde E/Sdesde E/S Cede el controlCede el control a un procesoa un proceso

Sistema operativoSistema operativo

Colas de E/S Gestor deGestor de

interrupcióninterrupción

Gestor de Gestor de llamadas allamadas aserviciosservicios

PlanificadorPlanificadora corto a corto plazoplazo

Cola aCola alargolargoplazoplazo

Cola aCola acortocortoplazoplazo

Page 23: dictarsistemas-operativos

Planificación del procesador

Solicitud de proceso

FINALCPU

Cola de E/S E/S

Cola de E/S E/S

Cola de E/S E/S

Cola a largo plazo

Cola a corto plazo

Page 24: dictarsistemas-operativos

Gestión de la memoria

MonoprogramaciónLa memoria se divide en dos partes. Una para el sistema operativo (el monitor

residente).Otra para el programa que se está ejecutando.

MultiprogramaciónLa parte de “usuario” se subdivide y se comparte

entre los distintos procesos activos.

Page 25: dictarsistemas-operativos

Intercambio (swapping) Problema:

las actividades de E/S son tan lentas en comparación con el procesador que, incluso en los sistemas multiprogramados, puede permanecer inactivo la mayor parte del tiempo.

Soluciones:Se puede ampliar la memoria principal.

Es caro. Origina procesos mayores.

Otra solución es el intercambio.

Page 26: dictarsistemas-operativos

¿Qué es el intercambio? Tenemos una cola a largo plazo de solicitudes de

proceso almacenadas en disco. Los procesos “se intercambian” a medida que queda

espacio disponible. Cuando un proceso ha concluido, se saca de la

memoria principal. Si ninguno de los procesos en la memoria está en el

estado preparado (por ejemplo, si todos están esperando una operación de E/S): El procesador intercambia uno de los procesos bloqueados,

situándolo en una cola intermedia. A continuación, acepta una nueva petición de proceso. Pero... el intercambio es una operación de E/S.

Page 27: dictarsistemas-operativos

Definición de particiones La memoria se divide en secciones a las

que se asignan los procesos (incluido el sistema operativo).

Particiones de tamaño fijo:Pueden tener distinto tamaño.El proceso que se introduce en memoria se

sitúa en la partición más pequeña que puede incluirlo.

Se desperdicia algo de memoria. Consecuencia: particiones de tamaño

variable.

Page 28: dictarsistemas-operativos

Particiones fijas

Sistema Sistema operativooperativo8 M8 M

8 M8 M

8 M8 M

8 M8 M

8 M8 M

8 M8 M

8 M8 M

8 M8 M

Sistema operativoSistema operativo8 M8 M2 M

4 M

6 M6 M

8 M8 M

8 M8 M

12 M12 M

16 M16 M

(a) Particiones de igual tamaño (b) Particiones de distinto tamaño

Page 29: dictarsistemas-operativos

Particiones de tamaño variable (1) Se asigna al proceso exactamente la memoria

que necesita. Esto deja un hueco al final de la memoria,

demasiado pequeño para poderse utilizar. Tan sólo queda un hueco pequeño (se desperdicia

menos memoria). Cuando todos los procesos están bloqueados,

se saca uno de la memoria y se carga otro nuevo.

Puede que el proceso nuevo ocupe menos espacio que el que se ha retirado.

Entonces queda otro hueco.

Page 30: dictarsistemas-operativos

Particiones de tamaño variable (2) Al final quedan muchos huecos pequeños

(fragmentación). Soluciones:

Fusión: los huecos contiguos se unen en un hueco más grande.

Compactación: de vez en cuando, el sistema operativo desplaza los procesos en memoria para juntar toda la memoria libre en un bloque (frente a la defragmentación de disco).

Page 31: dictarsistemas-operativos

Efecto de la partición dinámica

SistemaSistemaoperativooperativo

SistemaSistemaoperativooperativo

SistemaSistemaoperativooperativo

SistemaSistemaoperativooperativo

Proceso 1Proceso 1

Proceso 2Proceso 2

SistemaSistemaopeativoopeativoProceso 1Proceso 1

Proceso 2Proceso 2

Proceso 3Proceso 3Proceso 3Proceso 3Proceso 3Proceso 3

Proceso 3Proceso 3

Proceso 4Proceso 4Proceso 4Proceso 4

SistemaSistemaopeativoopeativoProceso 1Proceso 1Proceso 2Proceso 2

896K

128K

352K 64K576K

320K224K

288K

224K

320K320K

SistemaSistemaoperativooperativo

Proceso 1Proceso 1 320K

288K

320K320K

128K

64K

224K

SistemaSistemaoperativooperativo

Proceso 4

Proceso 1

Proceso 3

96K288K64K

128K96K288K64K

224K

96K

96K128K

288K64K

Page 32: dictarsistemas-operativos

Reposicionamiento No es seguro que el proceso se carguen la misma

posición de la memoria. Las instrucciones contienen direcciones:

Direcciones de datos Direcciones de instrucciones (de salto)

Dirección lógica: indica una posición relativa al comienzo del programa.

Dirección física: indica la posición actual en la memoria principal.

Conversión automática utilizando la dirección base.

Page 33: dictarsistemas-operativos

Paginación La memoria se divide en partes iguales y

relativamente pequeñas (marcos de página). Los programas (procesos) también se dividen en

partes iguales y relativamente pequeñas (páginas). Se asigna el número de marcos de página que un

proceso necesita. El sistema operativo mantiene una lista de tres

marcos. Un proceso no necesita marcos de página

contiguos. El procesador utiliza una tabla de páginas para

cada proceso.

Page 34: dictarsistemas-operativos

Dirección lógica y física: paginación Memoria Memoria principalprincipal

Página 0Página 0de Ade A

Página 2Página 2de Ade A

Página 1Página 1de Ade A

Página 3Página 3de Ade A

Número Número de página de página

Dirección relativa Dirección relativa dentro de la páginadentro de la página

Número Número de página de página

Dirección relativa Dirección relativa dentro del marcodentro del marco

DirecciónDirecciónlógicalógica

DirecciónDirecciónfísicafísica

Tabla de páginas Tabla de páginas del proceso A del proceso A

Page 35: dictarsistemas-operativos

Memoria virtual Paginación por demanda

No es necesario que todas las páginas de un proceso se encuentren en la memoria.

Cada página se introduce en la memoria sólo cuando se necesita.

Fallo de página La página deseada no se encuentra en la memoria. El sistema operativo debe cargar la página deseada. Es posible que el sistema necesite sacar una página

para dejar un hueco libre. Se selecciona la página que se va a sacar en función

de su historia reciente.

Page 36: dictarsistemas-operativos

Hiperpaginación Una memoria pequeña almacena demasiados

procesos. El sistema operativo pasa la mayor parte del tiempo

intercambiando páginas. Apenas se realizan trabajos efectivos. La luz del disco permanece encendida todo el

tiempo. Soluciones:

Un buen algoritmo que determine la página que se ha de remplazar.

Reducir la cantidad de procesos en curso. Aumentar la memoria.

Page 37: dictarsistemas-operativos

Ventajas No es necesario que la memoria almacene todos

los procesos que se van a ejecutar. Podemos intercambiar las páginas que

necesitemos. Por lo tanto, podemos ejecutar procesos

mayores que toda la memoria. La memoria principal recibe el nombre de

memoria real. El programador o usuario percibe una memoria

mucho mayor (memoria virtual).

Page 38: dictarsistemas-operativos

Estructura de la tabla de páginasDirección virtualDirección virtual

Página #Página # DesplazamientoDesplazamiento

(Dispersión)(Dispersión)

Tabla de dispersiónTabla de dispersión Tabla de páginas invertidaTabla de páginas invertida Dirección realDirección real

Marco #Marco # DesplazamientoDesplazamiento

Marco #Marco #

Tabla de páginasTabla de páginasPágina #Página # ElementoElemento CadenaCadena

Page 39: dictarsistemas-operativos

Segmentación

Normalmente la paginación es invisible para el programador.

La segmentación, en cambio, es visible. Normalmente el programador asignará

segmentos distintos a programas y datos. Puede haber distintos segmentos de

programas y de datos.

Page 40: dictarsistemas-operativos

Ventajas de la segmentación Simplifica la gestión de estructuras crecientes de

datos. Permite modificar los programas y recopilarlos

independientemente, sin que sea necesario volver a enlazar y cargarlos todos.

Permite que varios procesos compartan segmentos.

Se facilita la protección. Algunos sistemas combinan la segmentación y la

paginación.

Page 41: dictarsistemas-operativos

Trabajo

Page 42: dictarsistemas-operativos

Translation Lookaside Buffer

Cada referencia a memoria virtual causa accesos físicos a memoriaExtrae la entrada de la tabla de páginasExtrae los datos

Utiliza la cache especial para la tabla de páginas TLB

Page 43: dictarsistemas-operativos

TLB Operation

Page 44: dictarsistemas-operativos

TLB and Cache Operation

Page 45: dictarsistemas-operativos

Pentium II Hardware para segmetación y paginado No segmentado, no paginado

Direccion virtual=dirección física Baja complejidad Alta performance

No segmentado, paginado Memory viewed as paged linear address space Protection and management via paging Berkeley UNIX

Segmentado no paginado Collection of local address spaces Protection to single byte level Translation table needed is on chip when segment is in memory

Segmentado y paginado Segmentation used to define logical memory partitions subject to access

control Paging manages allocation of memory within partitions Unix System V

Page 46: dictarsistemas-operativos

Pentium II Address Translation Mechanism

Page 47: dictarsistemas-operativos

Pentium II Segmentation Each virtual address is 16-bit segment and

32-bit offset 2 bits of segment are protection mechanism 14 bits specify segment Unsegmented virtual memory 232 = 4Gbytes Segmented 246=64 terabytes

Can be larger – depends on which process is active

Half (8K segments of 4Gbytes) is globalHalf is local and distinct for each process

Page 48: dictarsistemas-operativos

Pentium II Protection

Protection bits give 4 levels of privilege0 most protected, 3 leastUse of levels software dependentUsually level 3 for applications, level 1 for O/S

and level 0 for kernel (level 2 not used)Level 2 may be used for apps that have internal

security e.g. databaseSome instructions only work in level 0

Page 49: dictarsistemas-operativos

Pentium II Paging Segmentation may be disabled

In which case linear address space is used Two level page table lookup

First, page directory 1024 entries max Splits 4G linear memory into 1024 page groups of 4Mbyte Each page table has 1024 entries corresponding to

4Kbyte pages Can use one page directory for all processes, one per

process or mixture Page directory for current process always in memory

Use TLB holding 32 page table entries Two page sizes available 4k or 4M

Page 50: dictarsistemas-operativos

PowerPC Memory Management Hardware 32 bit – paging with simple segmentation

64 bit paging with more powerful segmentation Or, both do block address translation

Map 4 large blocks of instructions & 4 of memory to bypass paging

e.g. OS tables or graphics frame buffers 32 bit effective address

12 bit byte selector =4kbyte pages

16 bit page id 64k pages per segment

4 bits indicate one of 16 segment registers Segment registers under OS control

Page 51: dictarsistemas-operativos

PowerPC 32-bit Memory Management Formats

Page 52: dictarsistemas-operativos

PowerPC 32-bit Address Translation