Está en la página 1de 49

Tema 2.

Introduccin a los
Sistemas Operativos
Contenidos
2.1 Componentes de un Sistema Operativo (SO)
multiprogramado.
2.1.1 Sistemas multiprogramados y de tiempo
compartido.
2.1.2 Concepto de proceso.
2.1.3 Modelo de cinco estados de los procesos.
2.2 Descripcin y control de procesos.
2.2.1 Bloque de control de proceso (PCB).
2.2.2 Control de procesos.
2.3 Hebras (hilos)
2.4 Gestin bsica de memoria.
2.4.1 Paginacin
2.4.2 Segmentacin

Fundamentos del Software


1er Curso de Grado en Ingeniera Informtica

Objetivos
Conocer los elementos necesarios para
implementar la multiprogramacin en un sistema
operativo (SO).
Conocer el concepto de proceso y el modelo de
cinco estados de los procesos.
Conocer el uso que realiza el SO del apoyo
hardware e integrarlo en el modelo de cinco
estados.
Conocer el concepto de hebra (hilo), su modelo
de cinco estados y su utilidad.
Conocer la gestin bsica de memoria que realiza
el SO.

Bibliografa bsica
[Stal05]

W. Stallings, Sistemas Operativos, Aspectos Internos y Principios de Diseo (5 Edicin).


Pearson Education, 2005

[Carr07]

J. Carretero, F. Garca, P. de Miguel, F. Prez, Sistemas Operativos (2 Edicin), McGraw-Hill,


2007

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

3-Nov-2010

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.1.1 Concepto de multiprogramacin [Stall05] (pp. 5867)

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.1.1 Concepto de multiprogramacin


Trabajo 1

Trabajo 2

Trabajo 3

Tipo de trabajo

Computacin pesada

Gran cantidad de E/S

Gran cantidad de E/S

Duracin

5 minutos

15 minutos

10 minutos

Memoria requerida

50 MB

100 MB

75 MB

Necesita disco?

NO

NO

SI

Necesita terminal?

NO

SI

NO

Necesita impresora?

NO

NO

SI

Trabajo1 utiliza mucho la CPU, Trabajo2 y Trabajo3 utilizan mucho los


perifricos de E/S.

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Ejemplo de multiprogramacin

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Ejemplo de multiprogramacin
Monoprogramacin

Multiprogramacin

Uso del procesador

20%

40%

Uso de memoria

33%

67%

Uso de disco

33%

67%

Uso de impresora

33%

67%

30 minutos

15 minutos

6 trabajos/hora

12 trabajos/hora

18 minutos

10 minutos

Tiempo transcurrido
Productividad
Tiempo de respuesta medio

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.1.2 Concepto de proceso [Stal05] (pp. 68-71]

Un programa en ejecucin.
Una instancia de un programa ejecutndose en un ordenador
La entidad que se puede asignar o ejecutar en un procesador.
Una unidad de actividad caracterizada por un solo flujo de ejecucin, un
estado actual y un conjunto de recursos del sistema asociados.
Un proceso est formado por:
Un programa ejecutable.
Datos que necesita el SO para ejecutar el programa.

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Bloque de Control de Proceso (PCB, Process Control Block)


[Stall05] (pp. 108-120)

Identificador
Estado

Identificador de proceso, (PID, del ingls Process


IDentificator)
Contexto de ejecucin: Registros del procesador

Memoria donde reside el programa


Informacin relacionada con recursos del sistema
Estado. En que situacin se encuentra el proceso
en cada momento (modelo de estados)
Ms informacin

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

Prioridad
Contador de
programa
Punteros de
memoria
Datos de contexto

Informacin de
estado de E/S
Informacin de
auditora

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Implementacin de Procesos Tpica


[Stal05] (Fig. 2.8)

Esta implementacin permite ver al


proceso como una estructura de
datos.
El estado completo del proceso en
un instante dado se almacena en su
contexto.
Esta estructura permite el desarrollo
de tcnicas potentes que aseguren la
coordinacin y la cooperacin
entre los procesos.

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Concepto de traza de ejecucin

Una traza de ejecucin es un listado de la secuencia de intrucciones de


programa que realiza el procesador para un proceso
Desde el punto de vista del procesador se entremezclan las trazas de
ejecucin de los procesos y las trazas del cdigo del sistema operativo
Como consecuencia de qu situaciones se entremezclan las trazas de
los procesos y las trazas del SO? Ejemplo

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Concepto de traza de ejecucin

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

10

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Concepto de traza de ejecucin

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

11

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Llamadas al Sistema

Es la forma en la que se comunican los programas de usuario con el


SO en tiempo de ejecucin.
Son solicitudes al SO de peticin de servicio.
Ejemplos de llamadas al sistema:
Solicitudes de E/S.
Gestin de procesos.
Gestin de memoria.
Se implementan a travs de una trampa o interrupcin software.

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

12

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Llamadas al Sistema

2
Modo
usuario
Modo
Kernel

Trampa

Biblioteca Programa de usuario


main()
open()
1 ...
...
open(fd,
int 0x80
)
...
7 ...

system_call:
...
sys_open()
...
ret_from_sys_call():
...
iret

Manejador de
llamadas al sistema
DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

Sistema Operativo
4

sys_open() {
...
...
}

Rutina de servicio
de la llamada
13

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.1.3 Modelo de cinco estados de los procesos

El modelo de cinco estados trata de representar las actividades que el SO


lleva a cabo sobre los procesos:
Creacin
Terminacin
Multiprogramacin
Para ello hace uso de cinco estados:
Ejecutndose
Preparado (listo para ejecutarse)
Bloqueado
Nuevo
Finalizado

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

14

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.1.3 Modelo de cinco estados de los procesos

Finalizado

Nuevo
Desasignacin de CPU
Admitido

Preparado

El proceso termin

Ejecutndose
Planificacin

Fin de E/S
o suceso

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

Bloqueado

Espera por
E/S o suceso

15

2.1 Componentes de un SO multiprogramado

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Transiciones entre estados


Nuevo Preparado. El PCB est creado y el programa est disponible en memoria.
Ejecutndose Finalizado. El proceso finaliza normalmente o es abortado por el
SO a causa de un error no recuperable.
Preparado Ejecutndose. El SO (planificador CPU) selecciona un proceso para
que se ejecute en el procesador.

Ejecutndose Bloqueado. El proceso solicita algo al SO por lo que debe esperar.


Ejecutndose Preparado. Un proceso ha alcanzado el mximo tiempo de
ejecucin ininterrumpida.

Bloqueado Preparado. Se produce el evento por el cual el SO bloque al proceso.


Preparado (o Bloqueado) Finalizado. Terminacin de un proceso por parte de
otro.
DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

16

2.2 Descripcin y control de procesos

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.2.1 Descripcin de procesos: PCB

Identificadores: Del proceso, del padre del proceso, del usuario,


Contexto de registros del procesador: PC, PSW, SP,
Informacin para control del proceso:
Estado del proceso. (modelo de estados)
Parmetros de planificacin
Evento que mantiene al proceso bloqueado
Cmo acceder a la memoria que aloja el programa asociado al proceso
Recursos utilizados por el proceso

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

17

2.2 Descripcin y control de procesos

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Creacin de un proceso: Inicializacin de PCB

Asignar identificador nico al proceso


Asignar un nuevo PCB
Asignar memoria para el programa asociado
Inicializar PCB:
PC: Direccin inicial de comienzo del programa
SP: Direccin de la pila de sistema
Memoria donde reside el programa
El resto de campos se inicializan a valores por omisin

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

18

2.2 Descripcin y control de procesos

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.2.2 Control de procesos: modos de ejecucin del procesador

Modo usuario. El programa (de usuario) que se ejecuta en este modo


slo se tiene acceso a:
Un subconjunto de los registros del procesador
Un subconjunto del repertorio de instrucciones mquina
Un rea de la memoria
Modo ncleo (kernel). El programa (SO) que se ejecuta en este modo
tiene acceso a todos los recursos de la mquina

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

19

2.2 Descripcin y control de procesos

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Cmo utiliza el SO el modo de ejecucin?

El modo de ejecucin (incluido en PSW) cambia a modo kernel,


automticamente por hardware, cuando se produce:
Una interrupcin
Una excepcin
Una llamada al sistema
Seguidamente se ejecuta la rutina del SO correspondiente al evento
producido

Finalmente, cuando termina la rutina, el hardware restaura


automticamente el modo de ejecucin a modo usuario

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

20

2.2 Descripcin y control de procesos

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Control de procesos: cambio de contexto (cambio de proceso)

Un proceso en estado Ejecutndose cambia a otro estado y un proceso


en estado Preparado pasa a estado Ejecutndose
Cundo puede realizarse? Cuando el SO pueda ejecutarse y decida
llevarlo a cabo. Luego solamente como resultado de:
Una interrupcin
Una excepcin
Una llamada al sistema

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

21

2.2 Descripcin y control de procesos

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Pasos en un cambio de contexto

1) Salvar los registros del procesador en el PCB del proceso que


actualmente est en estado Ejecutndose
2) Actualizar el campo estado del proceso al nuevo estado al que pasa e
insertar el PCB en la cola correspondiente

3) Seleccionar un nuevo proceso del conjunto de los que se encuentran


en estado Preparado (Scheduler o Planificador de CPU)
4) Actualizar el estado del proceso seleccionado a Ejecutndose y
sacarlo de la cola de listos

5) Cargar los registros del procesador con la informacin de los registros


almacenada en el PCB del proceso seleccionado

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

22

2.2 Descripcin y control de procesos

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Control de procesos: cambio de modo

Se ejecuta una rutina del SO en el contexto del proceso que se


encuentra en estado Ejecutndose
Cundo puede realizarse? Siempre que el SO pueda ejecutarse, luego
solamente como resultado de:
Una interrupcin
Una excepcin
Una llamada al sistema

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

23

2.2 Descripcin y control de procesos

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Pasos en un cambio de modo

1) El hardware automticamente salva como mnimo el PC y PSW y


cambia a modo kernel.
2) Determinar automticamente la rutina del SO que debe ejecutarse y
cargar el PC con su direccin de comienzo.

3) Ejecutar la rutina. Posiblemente la rutina comience salvando el resto


de registros del procesador y termine restaurando en el procesador la
informacin de registros previamente salvada.
4) Volver de la rutina del SO. El hardware automticamente restaura en
el procesador la informacin del PC y PSW previamente salvada.

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

24

2.3 Hebras (hilos)

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.3 Concepto de Hebra

El concepto de proceso (tarea) tiene dos caractersticas diferenciadas


que permiten al SO:
Controlar la asignacin de los recursos necesarios para la
ejecucin de programas.
La ejecucin del programa asociado al proceso de forma
intercalada con otros programas.
El concepto de proceso (tarea) y hebras asociadas se basa en separar
estas dos caractersticas:
La tarea se encarga de soportar todos los recursos necesarios
(incluida la memoria).
Cada una de las hebras permite la ejecucin del programa de
forma independiente del resto de hebras.

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

25

2.3 Hebras (hilos)

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Concepto de Hebra

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

26

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.3 Hebras (hilos)

Modelo de cinco estados para hebras

Las hebras debido a su caracterstica de ejecucin de programas


presentan cinco estados anlogos al modelo de estados para procesos:
Ejecutndose
Preparado (listo para ejecutarse)
Bloqueado
Nuevo
Finalizado
Nuevo
Finalizado
Desasignacin de CPU

El proceso termin

Admitido

Preparado

Ejecutndose
Planificacin

Fin de E/S
o suceso

Espera por
E/S o suceso

Bloqueado

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

27

2.3 Hebras (hilos)

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Ventajas de las hebras

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

28

2.3 Hebras (hilos)

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Ventajas de las hebras

Menor tiempo de creacin de una hebra en un proceso ya creado que la


creacin de un nuevo proceso.
Menor tiempo de finalizacin de una hebra que de un proceso.
Menor tiempo de cambio de contexto (hebra) entre hebras pertenecientes
al mismo proceso.

Facilitan la comunicacin entre hebras pertenecientes al mismo proceso.


Permiten aprovechar las tcnicas de programacin concurrente y el
multiprocesamiento simtrico.

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

29

2.4 Gestin bsica de memoria

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.4 Carga absoluta y reubicacin [Stall05] (pp. 308-327)

Carga absoluta. Asignar direcciones fsicas (direcciones de memoria


principal) al programa en tiempo de compilacin. El programa no es
reubicable.
Reubicacin. Capacidad de cargar y ejecutar un programa en un lugar
arbitrario de la memoria.

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

30

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.4 Gestin bsica de memoria

Carga absoluta

Reubicacin

Programa Fuente

Programa Fuente

Compilador
(y Encuadernador)

Compilador
(y Encuadernador)

Programa
Ejecutable
N

direcciones absolutas

Cargador

Programa
Ejecutable

direcciones lgicas o relativas

Memoria Principal

Memoria Principal

S.O.

S.O.

Y+M

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

Cargador
O
Hardware

31

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.4 Gestin bsica de memoria

Reubicacin esttica

El compilador genera direcciones lgicas (relativas) de 0 a M.


La decisin de dnde ubicar el programa en memoria
principal se realiza en tiempo de carga.
El cargador aade la direccin base de carga a todas las
referencias relativas a memoria del programa.
1000
Programa ejecutable
con direcciones lgicas

MOVE A, 1100

MOVE A, 100

M
DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

1000 + M

Memoria Principal
32

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.4 Gestin bsica de memoria

Reubicacin dinmica

El compilador genera direcciones lgicas (relativas) de 0 a M.


La traduccin de direcciones lgicas a fsicas se realiza en
tiempo de ejecucin luego el programa est cargado con
referencias relativas.
Requiere apoyo hardware.
b

CPU
MOVE A, 100

Direccin
Lgica

R.Base
b

b+M
Direccin
Fsica

Hardware
DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

Memoria Principal
33

2.4 Gestin bsica de memoria

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Espacios para las direcciones de memoria

Espacio de direcciones lgico. Conjunto de direcciones lgicas (o


relativas) que utiliza un programa ejecutable.
Espacio de direcciones fsico. Conjunto de direcciones fsicas (memoria
principal) correspondientes a las direcciones lgicas del programa en un
instante dado.
Mapa de memoria de un ordenador. Todo el espacio de memoria
direccionable por el ordenador. Normalmente depende del tamao del bus de
direcciones.
Mapa de memoria de un proceso. Estructura de datos (que reside en
memoria) que indica el tamao total del espacio de direcciones lgico y la
correspondencia entre las direcciones lgicas y las fsicas.

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

34

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.4 Gestin bsica de memoria

Ejemplo de mapa de memoria de un proceso


0

Cabecera

Fichero Ejecutable
Nmeromgico
Contador deprogramainicial
....................
Tabladesecciones

1000

Cdigo

Cdigo
4000

5000

Secciones

Mapadememoria

Datos convalor inicial

Datos convalor inicial

................
8000

5000

Datos sinvalor inicial

Tabladesmbolos

Argumentos del programa

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

Pila

35

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.4 Gestin bsica de memoria

Problema de la fragmentacin de memoria


SO

148 k

SO
Proceso 1

148 k
320 k

SO
Proceso 1
Proceso 2

896 k

148 k
320 k
224 k

576 k
352 k

SO
Proceso 1

128 k
320 k

Proceso 2

224 k

Proceso 3

268 k
84 k

SO
Proceso 1

148 k
320 k
224 k

SO
Proceso 1
Proceso 4

148 k

SO

320 k
128 k

268 k
64 k

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

Proceso 3

268 k
64 k

SO

148 k

Proceso 5

230 k

320 k
Proceso 4

96 k
Proceso 3

148 k

128 k

90 k
Proceso 4

96 k
Proceso 3

268 k
64 k

128 k
96 k

Proceso 3

268 k
64 k

36

2.4 Gestin bsica de memoria

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Solucin a la fragmentacin de memoria [Stall05] (pp. 340-358)

Trocear el espacio lgico en unidades ms pequeas: pginas (elementos


de longitud fija), o segmentos (elementos de longitud variable).
Los trozos no tienen por qu ubicarse consecutivamente en el espacio fsico.

Los esquemas de organizacin del espacio lgico de direcciones y de


traduccin de una direccin del espacio lgico al espacio fsico que
comentaremos son:

Paginacin

Segmentacin

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

37

2.4 Gestin bsica de memoria

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.4.1 Paginacin

El espacio de direcciones fsicas de un proceso puede ser no contiguo


La memoria fsica se divide en bloques de tamao fijo, denominados
marcos de pgina. El tamao es potencia de dos, de 0.5 a 8 Kb
El espacio lgico de un proceso se divide conceptualmente en bloques del
mismo tamao, denominados pginas
Los marcos de pgina contendrn pginas de los procesos

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

38

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.4 Gestin bsica de memoria


2.4.1 Paginacin

Las direcciones lgicas, que son las que genera la CPU se dividen en
nmero de pgina (p) y desplazamiento dentro de la pgina (d)

Las direcciones fsicas se dividen en nmero de marco (m, direccin base


del marco donde est almacenada la pgina) y desplazamiento (d)

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

39

2.4 Gestin bsica de memoria

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.4.1 Paginacin

Cuando la CPU genere una direccin lgica ser necesario traducirla a la


direccin fsica correspondiente, la tabla de pginas mantiene
informacin necesaria para realizar dicha traduccin. Existe una tabla de
pginas por proceso
Tabla de marcos de pgina, usada por el S.O. y contiene informacin
sobre cada marco de pgina

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

40

2.4 Gestin bsica de memoria

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Contenido de la tabla de pginas

Una entrada por cada pgina del proceso:


Nmero de marco (direccin base del marco) en el que est
almacenada la pgina si est en MP
Modo de acceso autorizado a la pgina (bits de proteccin)

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

41

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.4 Gestin bsica de memoria


Esquema de traduccin

Direccin virtual
N. pagina

DESPLAZAMIENTO

N. de marco

proteccin

RBTP

Acceso autorizado?

no
m

rw

TABLA DE PAGINAS

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

si

excepcin
violacin de privilegios

m
DESPLAZAMIENTO
Direccin real

42

2.4 Gestin bsica de memoria

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Implementacin de la Tabla de Pginas

La tabla de pginas se mantiene en memoria principal


El registro base de la tabla de pginas (RBTP) apunta a la tabla de
pginas (suele almacenarse en el PCB del proceso)
En este este esquema cada acceso a una instruccin o dato
requiere dos accesos a memoria, uno a la tabla de pginas y otro a
memoria.

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

43

2.4 Gestin bsica de memoria

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Bfer de Traduccin Adelantada (TLB)

El problema de los dos accesos a memoria se resuelve con una cach


hardware de consulta rpida denominada bfer de traduccin adelantada
o TLB (Translation Look-aside Buffer)
El TLB se implementa como un conjunto de registros asociativos que
permiten una bsqueda en paralelo

De esta forma, para traducir una direccin:


1 Si existe ya en el registro asociativo, obtenemos el marco
2 Si no, la buscamos en la tabla de pginas y se actualiza el TLB con
esta nueva entrada

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

44

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.4 Gestin bsica de memoria


Esquema de traduccin con TLB

CPU

m
Acierto
TLB

d
Memoria
Fsica

TLB
m
Fallo
TLB
N pgina
N marco

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

Tabla de pginas

45

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.4 Gestin bsica de memoria


2.4.2 Segmentacin

Esquema de organizacin de memoria que soporta mejor la visin de memoria


del usuario: un programa es una coleccin de unidades lgicas -segmentos-,
p. ej. procedimientos, funciones, pila, tabla de smbolos, matrices, etc.

S1

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

S2

S1
S4

S3

S3

S4

S1

Espacio de
usuario

Memoria
fsica
46

2.4 Gestin bsica de memoria

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Tabla de Segmentos

Una direccin lgica es una tupla:


<nmero_de_segmento, desplazamiento>
La Tabla de Segmentos aplica direcciones bidimensionales definidas
por el usuario en direcciones fsicas de una dimensin. Cada entrada
de la tabla tiene los siguientes elementos (aparte de presencia,
modificacin y proteccin):
base - direccin fsica donde reside el inicio del segmento en
memoria.
tamao - longitud del segmento.

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

47

2.4 Gestin bsica de memoria

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

Implementacin de la Tabla de Segmentos

La tabla de segmentos se mantiene en memoria principal.

El Registro Base de la Tabla de Segmentos (RBTS) apunta a la tabla


de segmentos (suele almacenarse en el PCB del proceso)
El Registro Longitud de la Tabla de Segmentos (STLR) indica el
nmero de segmentos del proceso; el n de segmento s, generado en
una direccin lgica, es legal si s < STLR (suele almacenarse en el
PCB del proceso)

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

48

Fundamentos del Software


Tema 2. Introduccin a los Sistemas Operativos

2.4 Gestin bsica de memoria


Esquema de traduccin

Direccin virtual
N. Segmento

d>t

si
RBTS

D. base

tamao

no

Excepcin
acceso indebido

proteccin.

Acceso autorizado?

no
S

rw

si

Excepcin
violacin de privilegios

TABLA DE SEGMENTOS

S + d
Direccin real

DEPARTAMENTO DE _______________________________________

LENGUAJES Y SISTEMAS INFORMTICOS

49

También podría gustarte