Transcript
Page 1: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 1(Sistemas Operativos)

FUNDAMENTOS DE LOS COMPUTADORES II

(Sistemas Operativos)

Curso 2002-2003

Page 2: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 2(Sistemas Operativos)

Capítulo 1 Conceptos arquitectónicos

Page 3: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 3(Sistemas Operativos)

Contenido

1. Estructura y funcionamiento del ordenador2. Modelos de programación3. Interrupciones4. Reloj5. Jerarquía de memoria6. Memoria virtual7. Entrada/Salida8. Protección9. Multiprocesador y multicomputadora

Page 4: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 4(Sistemas Operativos)

1. Estructura y funcionamiento del ordenador

Page 5: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 5(Sistemas Operativos)

Datos Resultados

Instruccionesde m áquina

Procesador

Estructura general a alto nivel

Estructura y funcionamiento del ordenador (I)

Page 6: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 6(Sistemas Operativos)

Estructura y funcionamiento del ordenador (II)

• Monoprocesador• Multiprocesador Arquitectura von Neumann• Multicomputador

UNIDAD DE CONTROL

UN

IDA

D d

e E

NT

RA

DA

/SA

LID

A

PERIFÉRICOSRegistros

Contador de programa

Registro de instrucción

Puntero de pila

UNIDADARITMÉTICA

MEMORIAPRINCIPAL

ROM

Estado

Datos

Código

Page 7: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 7(Sistemas Operativos)

Estructura y funcionamiento del ordenador (III)

Funciones de la Unidad de control:• lectura instrucciones máquina• interpretación de las instrucciones• lectura datos de memoria• ejecución instrucciones• almacenamiento de resultados

Registros asociados a la Unidad de control:• contador de programa (PC: program counter): dirección de la

siguiente instrucción a ejecutar• puntero de pila (SP: stack pointer)• registro de instrucción (IR: instruction register):instrucción a

ejecutar• registro de estado (SR: status register): información producida en la

ejecución de las instrucciones más recientes (bits de estado aritmético, bits de interrupción, nivel de ejecución, etc.....)

Page 8: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 8(Sistemas Operativos)

Estructura y funcionamiento del ordenador (IV)

RECORDAR:

Procesador: unidad central de proceso, unidad aritmética + unidad de control

Sistemas operativos: relacionados con el funcionamiento interno, y no con los componentes físicos.

Arquitectura: componentes físicos del ordenador y sus relaciones

Ya que el funcionamiento interno depende de los componentes disponibles, ambos enfoques son interdependientes

Page 9: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 9(Sistemas Operativos)

2. Modelos de programación

Page 10: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 10(Sistemas Operativos)

El modelo de programación, a bajo nivel, se basa en:

1. Elementos de almacenamiento disponibles en la ejecución de las instrucciones máquina:

• registros generales• contador de programa• puntero de la pila• registro de estado• memoria principal• mapa de E/S

Modelos de programación (I)

Page 11: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 11(Sistemas Operativos)

Modelos de programación (II)

2. Juego de instrucciones: operaciones que puede realizar el ordenador (diferentes modos de direccionamiento)

3. Secuencia de funcionamiento: modo en que se van ejecutando las instrucciones máquina. Consta de una secuencia sencilla que se repite a altísima velocidad; se compone de las siguientes tareas (repetidas en un bucle infinito):

a) Lectura de la instrucción apuntada por CPb) Incremento del CPc) Ejecución de la instrucción• secuencia lineal: ejecuta instrucciones consecutivas• bucle infinito

Page 12: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 12(Sistemas Operativos)

4. Niveles de ejecución: generalmente los SSOO disponen de varios niveles de ejecución:

• nivel usuario: algunos recursos no están disponibles, para evitar que algún programa de algún usuario pueda interferir en la ejecución de otros programas o hacer uso de recursos que no le pertenecen (archivos, por ejemplo)

• nivel de núcleo: no hay restricciones

Modelos de programación (III)

Page 13: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 13(Sistemas Operativos)

0

2 -13 2

2 -11 6

M a p a d em e m o ria

M a p a d eE /S

Ju e g o d e In s tru c c io n e s

0

R e g is tro s d e d a to s

R e g is tro s d e d ire c c ió n

P u n te ro d e p i la d e u su a r ioP u n te ro d e p i la d e s is te m a

C o n ta d o r d e p ro g ra m a

R e g is tro d e e s ta d o

M o d o Tra za

O c te to d eS is te m a

O c te to d eU s u a r io

N eg a tiv o

S is tem a/U su a rio

d e

D esb o rd am ie n to

M ásc ara

C e ro

E x te n sió n

In te rru p c io n es

A ca rreo

1 51 4

7

3

1 3

5

9

11

1

6

1 0

1 2

2

4

8

0

T

N

S

I1

V

I2

Z

X

I0

C

08 716 1531D 0D 1D 2D 3D 4D 5D 6D 7

A 0A 1A 2A 3A 4A 5A 6A 7A 7 '

Modelos de programación (IV)

Page 14: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 14(Sistemas Operativos)

0

2 -11 6

M a p a d eE /S Ju eg o d e

Ins tru cc io n es

2 -13 2

M a p a d em e m o ria

0

R eg is tro d e e s tad o

R eg is tro d e e s tad o

Oct

eto

deS

iste

ma

Oct

eto

deU

suar

io

1 51 4

7

3

1 3

5

9

11

1

6

1 0

1 2

2

4

8

0

T

N

S

I1

V

I2

Z

X

I0

C

D 0D 1D 2D 3D 4D 5D 6D 7

A 0A 1A 2A 3A 4A 5A 6A 7A 7 '

Ju eg o d e Ins tru cc io n es

2 -13 1

M a p a d em e m o ria

M o d elo d e p ro g ra m a ció n d e u su a r io M o d elo d e p ro g ra m a ció n d e n ú c leo

0

Oct

eto

deU

suar

io

7

3

5

1

6

2

4

0

N

VZ

X

C

D 0D 1D 2D 3D 4D 5D 6D 7

A 0A 1A 2A 3A 4A 5A 6A 7

Modelos de programación (V)

Page 15: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 15(Sistemas Operativos)

Modelos de programación (VI)

Repercusiones:

a) Este modo de funcionamiento se produce siempre que haya un programa cargado en memoria y el PC apunte a su primera instrucción

b) Se necesitan mecanismos para romper la linealidad del modo de funcionamiento visto (bucles, bifurcaciones...). Se basan en modificar el contenido del PC

c) Los mecanismos básicos de ruptura de secuencia son:• instrucciones máquina de salto o bifurcación• interrupciones externas o internas (es la CPU quien modifica el PC)• instrucción TRAP

Importancia de instrucciones y bifurcaciones para el SO: permiten cambiar el modo de ejecución.

Page 16: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 16(Sistemas Operativos)

3. Interrupciones

Page 17: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 17(Sistemas Operativos)

• Una interrupción se solicita activando una señal que llega a la unidad de control. El elemento que necesita ser atendido y genera la señal se denomina agente generador.

• Ante la solicitud (si esta interrupción está habilitada) se realiza un ciclo de aceptación de interrupción por parte de la UC. Este ciclo se produce al terminar la ejecución de la instrucción en curso, y consiste en:

• Salva algunos registros del procesador (CP y registro de estado)• Eleva el nivel de ejecución del procesador (nivel de núcleo)• Salta al SO, cargando un nuevo valor en CP

• El SO dispone de rutinas de tratamiento de las interrupciones

Interrupciones (I)

Page 18: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 18(Sistemas Operativos)

Interrupciones (II)

• Mecanismo usual para determinar la dirección de salto:1. El agente que interrumpe suministra un vector, que identifica la

dirección del programa que desea que le atienda (programa de tratamiento de la interrupción)

2. La UC toma dicha dirección y la carga en CP, con lo que comienza a ejecutarse el programa de tratamiento

Agente queinterrumpe

Unidad decontrol

VectorSolicitud deInterrupción

TablaInterr.

Rutina Trat.Interrupción

S.O.

Memoria

Page 19: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 19(Sistemas Operativos)

Interrupciones (III)

• Causas de generación de interrupciones:1. Excepciones de programas por problemas de ejecución (desbordamiento, operaciones aritméticas no permitidas, etc)2. Interrupciones de reloj3. Interrupciones de E/S4. Excepciones del HW; por ejemplo, error de paridad en la memoria5. Instrucciones de TRAP

• Los ordenadores disponen de una instrucción RETI (instrucción para retorno de interrupción). Esta instrucción restituye los registros de estado y CP, para volver al punto de ejecución donde se generó la interrupción

• Hay diferentes señales que solicitan interrupciones, con diferentes prioridades. Algunas de las señales se pueden inhibir explícitamente (por lo que no serán atendidas)

Page 20: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 20(Sistemas Operativos)

4. Reloj

Page 21: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 21(Sistemas Operativos)

Tres visiones del reloj

– Oscilador que gobierna las fases de las instrucciones de máquina: 1000 MHZ (frecuencia)

– Interrupción periódica. La señal de oscilador se divide para generar interrupciones cada cierto periodo de tiempo. Objetivo: conseguir que el SO pase a ejecutar de forma sistemática cada cierto intervalo de tiempo, evitando así que algún programa acapare los recursos del sistema

– Contador fecha y hora• Contabiliza unidades de tiempo (p.e. segundos) desde un

instante (p.e. 0 h del 1 de enero de 1990)• Esta cuenta la puede hacer:

– HW especial con batería– SO

Reloj (I)

Page 22: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 22(Sistemas Operativos)

O scilador

D iv isor defrecuencia

ProcesadorIN T

C ontador

Reloj (II)

Esquema general con las tres visiones del reloj

Page 23: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 23(Sistemas Operativos)

5. Jerarquía de memoria

5.1. Introducción5.2. Migración de la información5.3. Direccionamiento5.4. Proximidad

Page 24: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 24(Sistemas Operativos)

Jerarquía de memoria (I)

Objetivo: conseguir tiempos de acceso aceptables a costes razonables

• Elementos de información replicados en varios niveles de la jerarquía. Cuando los datos van a ser usados se promueven a niveles más rápidos (hacia arriba). Cuando se modifica o crea información en niveles rápidos y quiere hacerse permanente, se promueve a niveles inferiores

• Problema de coherencia: necesidad de actualizar las diferentes copias de los mismos datos, de forma que se asegure que siempre que se use se tomarán los valores correctos

• Traducción de direcciones: las copias de la misma información, en niveles distintos, tendrán direcciones diferentes. Necesidad de traducir

5.1. Introducción

Page 25: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 25(Sistemas Operativos)

Reg.

M. Cache

Mem. Principal

Mem. Expandida

Discos

Gestión HW

Gestión S.O.

Gestión S.O.

Gestión S.O.

+ Rapidez

-Coste+ Capacidad

Jerarquía de memoria (II)

Page 26: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 26(Sistemas Operativos)

Jerarquía de memoria (III)

5.2. Migración

Objetivo: que la información esté en el nivel adecuado cuando se necesite

• Migración de la información realizada de forma:

– Automática: se realiza de forma transparente al programa. Se produce en las memorias caché y en la memoria virtual

– Por demanda explícita: el programa solicita explícitamente el movimiento de la información. Por ejemplo, un editor de textos cuando solicita partes del documento a medida que se va visualizando

Page 27: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 27(Sistemas Operativos)

El mecanismo de migración se basa en los siguientes aspectos:

•tamaño de bloques transferidos: cantidad de información movida entre niveles. Disminuye a medida que nos acercamos a la cúspide

•política de extracción: qué información sube al nivel k desde el nivel k+1 y cuándo. Solución más común: por demanda. Se promueva aquella información solicitada por el programa y cuando se referencia. Se aprovecha la proximidad espacial, por lo que no sólo se promueve el dato solicitado, sino también las direcciones cercanas (bloque, línea, página, ....)

•política de reemplazo: el nivel k tiene menor tamaño que el nivel k+1, por lo que estará lleno cuando se quiera llevar información a él, y habrá que extraer datos ya presentes

Jerarquía de memoria (IV)

Page 28: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 28(Sistemas Operativos)

Jerarquía de memoria (V)

• política de ubicación: dónde se coloca la nueva información. Hay situaciones en que se puede optar por ubicarla en diferentes niveles

Page 29: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 29(Sistemas Operativos)

Jerarquía de memoria (VI)

5.3. Direccionamiento

El programa en ejecución genera la dirección X relativa al dato A. Esta dirección X se refiere al nivel k+1. Sin embargo, hay una copia del dato en el nivel K, por lo que se deseará acceder a la copia en este nivel. Este dato tiene dirección Y en el nivel K.

D ire c c ió n e n e l n iv e l k + 1

D ire c c ió n e n e l n iv e l k

T ra d u c to r

n b its

m b its

Se trata de un problema no trivial, ya que puede haber notables diferencias de tamaño entre niveles:

k+1 (2GB, n=31)k (8M, m=23)

Page 30: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 30(Sistemas Operativos)

Jerarquía de memoria (VII)

Para simplificar la traducción y aprovechar la proximidad espacial, se dividen los mapas de direcciones en porciones de tamaño fijo (2p). Estos bloques constituyen la unidad mínima de información transferida entre niveles. Al tener la unidad de información este tamaño, la dirección puede descomponerse en dos partes:

m-p bits: identifican el bloquep bits: identifican el byte dentro del bloque

Dirección porción Dirección Xde nivel k+1

Dirección Ydel nivel k

Traductor

Direcc. porción

n-1 0

0

p p-1

p p-1m-1

Dirección porción

División de la dirección Traducción de la dirección

Porción

n-1 0p p-1

palabra palabra

palabra

Page 31: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 31(Sistemas Operativos)

Jerarquía de memoria (VIII)

5.4. Proximidad

Proximidad referencial: un programa en ejecución sólo usa en cada momento una pequeña parte de toda la información que maneja. Las referencias usadas muestran además ciertas relaciones.

Se denomina traza a la lista ordenada, en el tiempo, de las direcciones de memoria direccionadas. La traza R está compuesta tanto por direcciones de instrucciones como por instrucciones de datos

Re = re (1), re (2), re (3), ....., re (j)re (i): i-ésima dirección ejecución del programa e

Sean u y v dos direcciones: d(u,v)=|u-v|, por lo que

d(re(j),re(k))=|re(j)-re(k)|

Page 32: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 32(Sistemas Operativos)

Jerarquía de memoria (IX)

- Proximidad espacial: dadas dos referencia re(j) y re(i) próximas en el tiempo (i-j es pequeño), existe alta probabilidad de que su distancia d(re(i),re(j)) sea muy pequeña

- Proximidad secuencial: ya que muchos trozos de programas y estructuras de datos se recorren de forma secuencial, existe alta probabilidad de que la referencia siguiente a re(j) coincida con la siguiente dirección de memoria

- Proximidad temporal: los programas suelen referenciar direcciones empleadas en un pasado próximo. Es decir, existe alta probabilidad de que la próxima referencia a re(j+1) esté entre las n referencias previas:

re(j-n+1),re(j-n+2),...,re(j-1),re(j)

Page 33: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 33(Sistemas Operativos)

Tiempo

Jerarquía de memoria (X)

Dir

ecc

i ón

Page 34: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

6. Memoria virtual

6.1. Introducción6.2. La tabla de páginas

Page 35: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 35(Sistemas Operativos)

Los SSOO antiguos dividen la memoria en trozos y asignan uno a cada programa en ejecución. El espacio asignado a cada programa consiste en una zona contigua de MP. Problema: asignación dinámica de espacio y crecimiento de los trozos asignados. Solución: reserva en exceso.

Memoria virtual: hacer que el usuario vea una gran memoria principal, aunque parte de ella resida físicamente en disco (memoria de respaldo). Involucra diferentes niveles de la jerarquía de memoria: MP y memoria de respaldo.

En la memoria de respaldo se establece un mapa uniforme de memoria virtual. En este sistema las direcciones se refieren a este mapa virtual, aunque los accesos reales se hagan sobre MP.

Memoria virtual (I)

6.1. Introducción

Page 36: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 36(Sistemas Operativos)

Memoria virtual (II)

Exige gestión automática de los niveles de la jerarquía de memoria involucrados: la gestión corre de parte del SO apoyado en el HW, pero no de los programas

Aspectos principales:

a) Todas las direcciones están referidas al espacio virtual (direcciones virtuales)

b) El mapa virtual asociado a un programa en ejecución está soportado por espacio en disco (zona de intercambio o swap) y espacio en MP

c) Aunque se utilicen direcciones virtuales, para que puedan usarse los datos han de residir en MP. Si no están en MP se requiere trasvase de información

d) Los espacios virtual y físico se dividen en páginas: páginas virtuales (espacio virtual) y páginas de intercambio (residente en disco)

Page 37: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 37(Sistemas Operativos)

Memoria virtual (III)

e) Marco de página: espacios en que se divide la MP, para albergar a cualquier página virtual. (Marco === hueco para alojar una página, cualquier página)

f) MMU(Memory Management Unit): traduce las direcciones virtuales a direcciones físicas. Es decir, traduce el número de página virtual a número de marco de página. Esta traducción ha de ser muy rápida, por lo que se hace vía hardware

g) En cada instante sólo residen en MP un pequeño número de páginas. La traducción directa no siempre es posible (los datos buscados no están en ninguna de las páginas residentes en MP). En este caso la MMU genera una excepción de fallo de página (que será atendida por el SO)

h) Se denomina paginación al proceso de migración necesario para atender los fallos de página

i) El SO asigna el espacio virtual a cada programa en ejecución. Este espacio puede estar en una única zona o en varias (segmentos)

Page 38: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 38(Sistemas Operativos)

Memoria virtual (IV)

j) Los programas no conocen a priori sus necesidades de memoria, por lo que el SO debe ser capaz de aumentar o reducir el espacio asignado, según evolucionen sus necesidades

M a p a d e m e m o r ia v ir tu a l(d ire c c io n e s g e n e ra d a s p o r e l p ro c e sa d o r)

M M U

M e m o r ia p r in c ip a l(R A M + R O M )

P ro c e sa d o r(In te rc a m b io )

M e m o r iaS e c u n d a r iaD irec c ió n f ís ic aD irec c ió n

v ir tu a l F a llo p á g in a

Page 39: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 39(Sistemas Operativos)

Memoriavirtual

Programa A

Segmento 0

Segmento 1

Segmento 2

Sistema

operativo

Memoriavirtual

Programa A

Sistema

operativo

Memoria virtual (V)

Page 40: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 40(Sistemas Operativos)

M EM OR IA PR IN C IPAL

M APA V IRTU AL(R ESIDEN TE EN D ISC O )

2 2 -1· p

2 2 -1·p

2· 2p

2· 2p

3·2 -1p

3·2 -1p

3·2p

3·2p

2 -1p

2 -1p

2 -1m

2 -1n

2p

2p

0

0A

A'

n > m

Pro

yecc

ión

de p

ágin

avi

rtua

l a m

emor

ia fí

sica

Sólo algunas páginas en MP. Si no está la página deseada: excepción (fallo de página, generado por MMU)

Memoria virtual (VI)

Page 41: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 41(Sistemas Operativos)

Dirección en el nivel k+1

Dirección en el nivel k

Traductor

n bits

m bits

Dirección páginaDirección X

virtual

Dirección Y

real

Traductor

Direcc. página

n-1 0

0

p p-1

p p-1m-1

Dirección página

División de la dirección Traducción de la dirección

Página

n-1 0p p-1

Traducción realizada por la MMU

Memoria virtual (VII)

Page 42: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 42(Sistemas Operativos)

2364

Nº Marco

34

0

0

0

11

1

1

1

2

3

4

5

m

567

6738

SI/NO

Memoriavirtual

Programa A

Tabla de páginas de un nivel

6.2. Tabla de páginas

Estructura que contiene información sobre dónde residen las páginas de un programa en ejecución. Esta tabla permite saber si una página está o no en MP, y de estarlo, el marco en que se ubica

Memoria virtual (VIII)

Page 43: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 43(Sistemas Operativos)

Memoria virtual (IX)

La tabla de páginas de cada programa ha de tener el tamaño suficiente como para que pueda ejecutar

Solución más sencilla: tabla de páginas de un nivel (como la mostrada en la transparencia anterior). En este esquema se supone que toda la memoria virtual asignada a un programa es contigua. El número de página virtual se utiliza como índice para entrar en la tabla, y de ahí se obtiene el marco de página en que reside en MP.

Un ejemplo de traducción con este esquema se muestra en la transparencia siguiente.

Page 44: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 44(Sistemas Operativos)

N º P ág in aD irecc ión V ir tu a l

D irecc ión F ísica

B yte

B y te

0 1111 0 0111 0

0 1111 0 0111 0

9 7 4

9 7 4

0 00 .......0 00 0 00 0 00 0 00 0 00 0 01 0 15

2 36 4N º M arco

N º M arco

3 40

0

0

111

1

1

2345

m

5 67

6 73 86 7 3 8

0 00 ...011 01 0 01 0 10 0 10

S I/N O

Memoria virtual (X)

Page 45: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 45(Sistemas Operativos)

Memoria virtual (XI)

El problema del esquema anterior es su falta de flexibilidad. La memoria virtual asignada a cada proceso ha de ser contigua. De esta forma, la ampliación del espacio asignado a un proceso sólo puede realizarse si el espacio contiguo al que ya ocupa está libre.

De esta forma, la única alternativa posible es reservar más espacio virtual del inicialmente necesario, de forma que se asegure la disponibilidad de espacio libre. Usando esta solución habrá grandes huecos de memoria virtual sin usar, pero que sin embargo habrá que gestionar mediante las tablas correspondientes.

Por esta razón se emplean esquemas con tablas de páginas de dos niveles. En este caso, la memoria asignada está compuesta de varios segmentos. El espacio correspondiente a cada segmento es contiguo, pero los diferentes segmentos no tienen por qué estar agrupados.

Page 46: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 46(Sistemas Operativos)

Memoria virtual (XII)

En este caso, la dirección virtual se divide en tres partes:

- segmento de memoria donde está la información a acceder- con esta información se entra en la tabla de segmentos, para

acceder a la tabla de páginas del segmento- el resto de la dirección permite identificar la palabra buscada

Cada tabla contiene información sobre su tamaño, por lo que puede ser redimensionada, así como controlar los posibles accesos incorrectos.

Ventaja: se pueden asignar bloques disjuntos, que pueden crecer de forma independiente (no todos los segmentos han de ser del mismo tamaño). La tabla de páginas no tiene espacios referidos a páginas que no están en uso. En algunos sistemas se puede llegar a más niveles de indirección (4).

Page 47: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 47(Sistemas Operativos)

Memoria virtual (XIII)

Subtabla de índ ices(segm entos)

Tam año

Tam año

Tam año

de

Ín

dic

e(S

eg

me

nto

)

Subtabla de páginas

Tabla de páginas de dos niveles

Subtabla de páginas

M arco dePágina

P á g in a v irtu a l

B y te1 n iv e ler 2 º n iv e l D irec c ió n v ir tu a l

M em o riav ir tu a l

Pro

gram

a A

Segm ento 0

Segm ento S

Esquema de tabla de páginas con dos niveles

Page 48: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 48(Sistemas Operativos)

Memoria virtual (XIV)

D irecc ió n F ís ica

B yte

B y te

0 1111 0 0111 0

0 1111 0 0111 0

0 0 .......0 0 00 1 01 0 0 .......0 0 00 0 00 0 00 0 00 0 00 0 00 0 00 11

N º M arco0 0 ...1 00 1 01 0 00 1 00 1 00

Tabla de índ ices(segm entos)

Tam año=7

Tam año=9

Tam año=5

Tabla de páginas

Tabla de páginas

P á g in a v irtu a l

D irecc ió n v ir tu a l

Ejemplo de traducción con tablas de dos niveles

Page 49: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 49(Sistemas Operativos)

Byte

Página virtual

Dirección virtual

0111100111000.......010101 00.......000000000000000000000011 21-3-974

0111100111000.......010101 00.......000000000000000000000011

Tabla de índices

(segmentos)

Tamaño=7

Tamaño=9

Tamaño=5

Tabla de páginas

Tabla de páginas

TRAP

rw 476AC2

r–- 4A24

Memoria virtual (XV)

Intento de acceso incorrecto

Page 50: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 50(Sistemas Operativos)

Memoria virtual (XVI)

SO: encargado de asignar la memoria y construir la tabla de páginasMMU: encargada de realizar las traducciones

Al dividir las tareas, se gana en rapidez, esencial para que tenga sentido este sistema de gestión de memoria

La tabla de páginas es mantenida por el SO y reside en MP (a veces parte de ella puede estar en MMU). Esto supone un problema: por cada acceso a memoria se precisan tantos accesos a la tabla (a memoria, en definitiva) como niveles de indirección haya.

Solución: la MMU suele contar con una memoria de acceso muy rápido, que permite completar la traducción en el menor tiempo posible. Se trata de una memoria asociativa (TLB: translation lookaside buffer), donde se almacenan los pares dirección virtual – dirección física más recientemente usados. La MMU se encarga de controlar las páginas modificadas, para asegurar la coherencia de la información

Page 51: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 51(Sistemas Operativos)

Memoria virtual (XVII)

Si hay varios programas activos, cada uno de ellos poseerá su propia tabla de páginas. La MMU usará la tabla de páginas del programa en ejecución. Para ello el procesador tiene un registro identificador de espacio de direcciones (RIED). Este registro contiene la dirección en que está almacenada la tabla de segmentos del programa.

Page 52: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

7. Entrada/Salida

7.1. Introducción7.2. E/S y concurrencia7.3. E/S y memoria virtual

Page 53: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 53(Sistemas Operativos)

7.1. Introducción

El objetivo de los mecanismos de E/S es permitir el intercambio de información entre los periféricos y la memoria o los registros del procesador. Respecto al punto de vista de los SSOO los aspectos más relevantes del la E/S aluden a:

• concurrencia de E/S y operación del procesador• impacto en el uso de la memoria virtual

El esquema general de un periférico puede verse en la transparencia siguiente. Cabe distinguir entre dispositivo y controlador. Este último dispone de una serie de registros incluidos en el mapa de E/S del equipo, por lo que pueden ser accedidos por parte de las operaciones de E/S.

Entrada/Salida (I)

Page 54: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 54(Sistemas Operativos)

DISPO SITIVO

CO NTROLADO R

Procesador

Memoria

Bus

Registrodatos

Registroestado

Registrocontrol

Registro de datos: en él carga el controlador los datos leídos, y de él se extraen los datos para su escritura en el periférico.

Registro de estado. Uno de sus bits sirve para indicar que el controlador puede transferir una palabra (en lectura esto significa que la palabra está en el registro de datos, en escritura que se necesita un nuevo dato). Otros bits sirven para que el controlador muestre los problemas encontrados en la ejecución de la última operación de E/S.

Registro de control: indica al controlador las operaciones a realizar.

Entrada/Salida (II)

Page 55: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 55(Sistemas Operativos)

Entrada/Salida (III)

7.2. E/S y concurrencia

Los periféricos son sensiblemente más lentos que el procesador. Por ejemplo, durante el tiempo de acceso a disco de un equipo moderno podrían realizarse varios millones de operaciones máquina. De ahí la necesidad de aprovechar el tiempo de finalización de las operaciones de E/S, de forma que el procesador continúe ejecutando operaciones útiles y no únicamente un bucle de espera.

Modos básicos de realizar operaciones de E/S:

• E/S programada• E/S por interrupciones• E/S por DMA (direct memory access)

Page 56: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 56(Sistemas Operativos)

Entrada/Salida (IV)

E/S programada: la operación se realiza mediante la ejecución de un programa. No hay concurrencia. Los otros dos modos si presentan diferente nivel de concurrencia

Fases de una operación de E/S:

a) envío de orden al periférico: en esta fase se escribe la orden en el registro de control del controlador del periférico. El controlador es un dispositivo electrónico, por lo que esta fase se realiza a la velocidad del procesador.

b) lectura o escritura de datos (fase de transferencia), dependiente de la velocidad del periférico. En el caso en que la E/S se haga por programa, durante esta fase se estaría repitiendo el bucle mostrado en la figura siguiente (para una operación de lectura). De esta forma, hasta estar disponible el primer dato el bucle podría repetirse cerca del millón de veces, y entre dato y dato, varias decenas de veces.

Page 57: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 57(Sistemas Operativos)

Entrada/Salida (V)

• Espera activa

n = 0

while n < m (número de caracteres a leer o escribir)read registro_control /* para ver si hay dato

listo*/if (registro_control = dato_disponible)

/* Hay datos disponibles y se opera con ellos*/

read registro_datos store en memoria principaln = n + 1

endifendwhile

DISPO SITIVO

CO NTROLADO R

Procesador

Memoria

Bus

Registrodatos

Registroestado

Registrocontrol

Page 58: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 58(Sistemas Operativos)

Entrada/Salida (VI)

Cont b) Durante la fase de transferencia, el procesador puede estar en:

• espera activa: bucle de espera de eventos, como el mostrado en la transparencia anterior. Se consume tiempo de procesador

• espera pasiva: el procesador envía la orden de operación de E/S y se desentiende de la misma (continua ejecutando otras operaciones). Cuando el controlador ha finalizado la operación genera una interrupción. La rutina de tratamiento de la interrupción realiza la lectura del dato y se almacena en MP (suponiendo que se trata de una operación de lectura). Por tanto, el programa que espera el evento de finalización de la operación de E/S no está ejecutándose. Es la interrupción quien despierta al programa que solicitó la operación de E/S.

• E/S por DMA: el controlador se encarga directamente de transferir los datos entre el periférico y la memoria, sin requerir la intervención del procesador. Finalizada la operación de E/S se genera una interrupción, de forma que el programa que solicitó la operación de E/S sepa que ésta ya concluyó.

Page 59: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 59(Sistemas Operativos)

Entrada/Salida (VII)

c) Finalización: el programa puede continuar con su ejecución normal.

Envío de orden Espera datoTransferencia dato

Fin operación

E/S programada

Procesador Procesador Procesador Procesador

E/S por interrupciones

Procesador Controlador Procesador Procesador

E/S por DMA Procesador Controlador Controlador Procesador

Page 60: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 60(Sistemas Operativos)

Entrada/Salida (VIII)

7.3. E/S y memoria virtual

El programa que solicita la operación de E/S especifica una variable que determina un búfer de memoria sobre el que se hace la operación (de lectura, en este caso). Para que el controlador (DMA) pueda completar la operación dicho búfer debe residir en MP.

El SO debe garantizar que el búfer donde se hace E/S esté en MP. Es decir, los marcos afectados no pueden ser objeto de paginación.

En otro caso, la operación de E/S supondría un coste adicional, una vez dispuestos los datos (además, el coste de esta operación no puede realizarse sin la aportación del procesador).

Page 61: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

8. Protección

8.1. Mecanismos de protección del procesador8.2. Mecanismos de protección de memoria

Page 62: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 62(Sistemas Operativos)

Protección (I)

8.1. Mecanismos de protección del procesador

Protección basada en los niveles de ejecución. Objetivo básico: los periféricos. Por ello, todas las operaciones de E/S se hacen en modo núcleo.

Núcleo Usuario

Interrupción

Cambiar a modo usuario

Page 63: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 63(Sistemas Operativos)

Protección (II)

8.2. Mecanismos de protección memoria

Objetivo: evitar que unos programas usen direcciones de memoria que no le han sido asignadas..

En sistemas con memoria virtual hay dos mecanismos básicos:

a) Limitar el mapa de memoria accesible en nivel de usuario. La MMU genera una excepción de violación de memoria en el caso en que en nivel de usuario se intente usar una dirección no permitida. Suele ser usual dotar al procesador de un registro RIED (registro de identificación de espacio de direccionamiento), que permite que cada programa en ejecución disponga de su propio espacio virtual y no pueda acceder a los espacios de memoria de otros procesos. (Ver transparencia siguiente)

Page 64: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 64(Sistemas Operativos)

Mapa Virtualde Usuario

A

RIED

Mapa Virtualdel S.O.

Protección (III)

Page 65: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 65(Sistemas Operativos)

Memoriavirtual

Disco

Memoriaprincipal

Tabla depáginas

Una tabla depáginas

por proceso

Código

Datos

Pila

RIED

Tamaño

Tamaño

Tamaño

Tamaño

Protección (IV)

Mecanismo basado en la tabla de páginas. La tabla de páginas asociada a cada programa se selecciona mediante el RIED. La MMU comprueba además que no se sobrepase el límite de ninguna de las tablas usadas. Si se sobrepasa, excepción de violación de MP.

Page 66: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 66(Sistemas Operativos)

Protección (V)

En sistemas sin memoria virtual consiste en incluir un par de registros “valla” (superior e inferior), que marcan los extremos de la memoria contigua asignada al proceso. Todos los direccionamientos se realizan sumando al contenido del registro base. En cada acceso se comprueba si se ha excedido el valor del registro que marca el límite superior. En caso de producirse esta situación se genera una excepción de violación de memoria.

Memoria principal

Registros vallaRegión asignada

al proceso AR

egis

tro b

ase

Reg

istr

o lím

ite

Page 67: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 67(Sistemas Operativos)

9. Multiprocesador y multicomputador

9.1. Multiprocesador9.2. Multicomputador

Page 68: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 68(Sistemas Operativos)

Multiprocesador y multicomputador (I)

9.1. Multiprocesador

Multiprocesador: máquina formada por un conjunto de procesadores que comparten el acceso a una MP común.

Ventaja: sencillez en el acceso a datos comunes, por parte de diversos programas

Inconveniente: limitado número de procesadores que se pueden añadir, para no incurrir en la saturación del ancho de banda de la memoria común

Page 69: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 69(Sistemas Operativos)

Procesador

1

Red de conexión

E/S

Procesador

2

Procesador

n

Memoria principal

Multiprocesador y multicomputador (II)

Page 70: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 70(Sistemas Operativos)

Multiprocesador y multicomputador (III)

9.2. Multicomputador

Multicomputador: máquina compuesta de varios nodos, cada uno de ellos formado por procesador, MP y en algún caso dispositivos de E/S. Los programas en ejecución ya no pueden compartir los datos en MP. Sin embargo, no hay limitación en cuanto al número de nodos que podrían interconectarse.

Page 71: Fundamentos de los Computadores II 0 (Sistemas Operativos) FUNDAMENTOS DE LOS COMPUTADORES II (Sistemas Operativos) Curso 2002-2003

Fundamentos de los Computadores II 71(Sistemas Operativos)

Procesador

Memoria

principal

Red de conexión de

paso de mensajes

Procesador Procesador

Memoria

principal

Memoria

principal

Multiprocesador y multicomputador (IV)


Top Related