You are on page 1of 52

El soporte del sistema

operativo
Dr. Ivan Delgado H.

Objetivos y funciones del


sistema operativo

Comodidad
Hace

que un computador sea ms fcil de

usar.

Eficiencia
Permite

que los recursos del computador se


aprovechen mejor.

Capas y puntos de vista de un


computador
Usuario final

Programador
Programas de aplicacin
Utilidades
Sistema operativo
Hardware del computador

Diseador del
sistema operativo

Servicios del sistema operativo


Creacin de programas
Ejecucin de programas
Acceso a los dispositivos de E/S
Acceso controlado a los ficheros
Acceso al sistema
Deteccin de errores y respuesta
Contabilidad

El sistema operativo como


gestor de recursos
COMPUTADOR
Controles de
Memoria
E/S

DISPOSITIVOS DE E/S

Software
del sistema
operativo
Programas
y datos

Procesador

Procesador

Almacenamiento
S.O.
Programas
Datos

Tipos de sistemas operativos


Interactivos
Sistemas de colas
Un solo programa (monoprogramados)
Multiprogramados (multirea)

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:

Planificacin
Tiempo

de preparacin

Sistemas de colas simples


Programa monitor residente.
El usuario enva 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 planificacin.

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
...
$END

Datos

Funciones necesarias del hardware

Proteccin de memoria
Para

proteger el monitor.

Temporizacin
Para

evitar que un nico trabajo monopolice el


sistema.

Instrucciones privilegiadas
Slo

pueden ser ejecutadas por el monitor.


Ejemplo: instrucciones de E/S.

Interrupciones
Permite

control.

al procesador ceder y recuperar el

Sistemas de colas
multiprogramados
Los dispositivos de E/S son muy lentos.
Mientras que un programa est
esperando una instruccin de E/S, otro
puede utilizar la CPU.

Monoprogramacin

Ejecucin

Ejecucin

Espera
Tiempo

Espera

Multiprogramacin de dos
programas
Ejecucin

Ejecucin

Programa A

Espera

Espera

Ejecucin
Programa B

Espera

Espera

Ejecucin

Ejecucin
Espera
Ejecucin

Combinado

A
Espera

Tiempo

B
Espera

Multiprogramacin de tres
programas
Programa A

Programa B

Programa C

Ejecucin

Ejecucin

Espera

Espera

Ejecucin
Espera

Espera

Espera

Ejecucin
Espera

Espera

Espera

Ejecucin
Ejecucin

Ejecucin
Ejecucin

Combinado

Tiempo

Sistemas de tiempo compartido

Permiten al usuario interactuar


directamente con el computador.
Ejemplo:

en trabajos interactivos

La multiprogramacin permite a un
determinado nmero de usuarios
interactuar con el computador.

Planificacin
Es la clave de la multiprogramacin
Planificacin a largo plazo
Planificacin a medio plazo
Planificacin a corto plazo
Planificacin de E/S

Planificacin a largo plazo


Determina qu programas se admiten
para ser procesados.
De este modo, controla el grado de
multiprogramacin.
Una vez admitido, un trabajo pasa a ser
un proceso y se aade a una cola
asociada al planificador a corto plazo.
En algunos sistemas, se produce una
funcin de intercambio y el trabajo se
aade a la cola del planificador a medio
plazo.

Planificacin a medio plazo


Es parte de la funcin de intercambio
(descrita en la Seccin 7.3.).
Normalmente se basa en la necesidad de
gestionar la multiprogramacin.
Si el sistema no utiliza memoria virtual,
este planificador tambin se encargar de
la gestin de la memoria.

Planificacin a corto plazo


Tambin llamado distribuidor.
Toma la decisin ms especfica: qu
trabajo se ejecuta a continuacin.
Es decir, qu trabajo utilizar el
procesador durante el prximo tiempo de
espera.

Estados de los procesos


Asignar
procesador
Nuevo

Iniciar Preparado

En ejecucin

Suspender
Se produce
el evento
Esperar evento
En espera

Salida

Salida

Bloque de control de procesos


Identificador
Estado
Prioridad
Contador de programa
Punteros a memoria
Datos de contexto
Informacin del estado de las E/S
Informacin estadstica

Elementos clave de un sistema


operativo
Sistema operativo
Llamadas a
servicios desde
procesos

Interrupciones
desde procesos
Interrupciones
desde E/S

Gestor de
llamadas a
servicios

Gestor de
interrupcin

Cola a
largo
plazo

Cola a
corto
plazo

Colas de
E/S
Planificador
a corto
plazo
Cede el control
a un proceso

Planificacin del procesador


Solicitud
de
proceso

Cola a
largo plazo

Cola a
corto plazo

CPU

E/S

Cola de E/S

E/S

Cola de E/S

E/S

Cola de E/S

FINAL

Gestin de la memoria

Monoprogramacin
La

memoria se divide en dos partes.


Una para el sistema operativo (el monitor
residente).
Otra para el programa que se est ejecutando.

Multiprogramacin
La

parte de usuario se subdivide y se comparte


entre los distintos procesos activos.

Intercambio (swapping)
Problema:
las actividades de E/S son tan lentas en
comparacin 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

solucin es el intercambio.

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 estn
esperando una operacin de E/S):

El procesador intercambia uno de los procesos bloqueados,


situndolo en una cola intermedia.
A continuacin, acepta una nueva peticin de proceso.
Pero... el intercambio es una operacin de E/S.

Definicin de particiones
La memoria se divide en secciones a las
que se asignan los procesos (incluido el
sistema operativo).
Particiones de tamao fijo:

Pueden

tener distinto tamao.


El proceso que se introduce en memoria se
sita en la particin ms pequea que puede
incluirlo.
Se desperdicia algo de memoria.
Consecuencia: particiones de tamao
variable.

Particiones
fijas

Sistema operativo
8M

Sistema operativo
8M
2M

8M

4M

6M
8M
8M
8M
8M
8M

8M

12 M

8M
16 M
8M

(a) Particiones de igual tamao

(b) Particiones de distinto tamao

Particiones de tamao variable (1)

Se asigna al proceso exactamente la memoria


que necesita.
Esto deja un hueco al final de la memoria,
demasiado pequeo para poderse utilizar.
Tan

slo queda un hueco pequeo (se desperdicia


menos memoria).

Cuando todos los procesos estn 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.

Particiones de tamao variable (2)


Al final quedan muchos huecos pequeos
(fragmentacin).
Soluciones:

Fusin:

los huecos contiguos se unen en un


hueco ms grande.
Compactacin: de vez en cuando, el sistema
operativo desplaza los procesos en memoria
para juntar toda la memoria libre en un
bloque (frente a la defragmentacin de disco).

Efecto de la particin dinmica


Sistema
operativo

128K

Sistema
operativo
Proceso 1

Sistema
opeativo

Sistema
opeativo
320K

Proceso 1
Proceso 2

320K

Proceso 1

224K

Proceso 2
Proceso 3

896K
576K

Sistema
operativo

Sistema
operativo

Proceso 1

320K
Proceso
1
Proceso 4 128K

320K
224K

Proceso 3

288K
64K

Sistema
operativo

96K
Proceso 3

352K

288K
64K

320K
224K
288K
64K

Sistema
operativo
320K

Proceso 4 128K
96K
Proceso 3 288K
64K

Proceso 2 224K
96K
Proceso 4 128K
96K
Proceso 3 288K
64K

Reposicionamiento

No es seguro que el proceso se carguen la


misma posicin de la memoria.
Las instrucciones contienen direcciones:
Direcciones

de datos
Direcciones de instrucciones (de salto)

Direccin lgica: indica una posicin relativa al


comienzo del programa.
Direccin fsica: indica la posicin actual en la
memoria principal.
Conversin automtica utilizando la direccin
base.

Paginacin

La memoria se divide en partes iguales y


relativamente pequeas (marcos de pgina).
Los programas (procesos) tambin se dividen en
partes iguales y relativamente pequeas (pginas).
Se asigna el nmero de marcos de pgina que un
proceso necesita.
El sistema operativo mantiene una lista de tres
marcos.
Un proceso no necesita marcos de pgina
contiguos.
El procesador utiliza una tabla de pginas para
cada proceso.

Direccin lgica y fsica: paginacin


Memoria
principal

Pgina 0
de A
Nmero Direccin relativa Nmero Direccin relativa
de pginadentro de la pgina
de pgina dentro del marco
Direccin
lgica

Direccin
fsica

Pgina 1
de A

Pgina 2
de A

Pgina 3
de A

Tabla de pginas
del proceso A

Memoria virtual

Paginacin por demanda


No

es necesario que todas las pginas de un proceso


se encuentren en la memoria.
Cada pgina se introduce en la memoria slo cuando
se necesita.

Fallo de pgina
La

pgina deseada no se encuentra en la memoria.


El sistema operativo debe cargar la pgina deseada.
Es posible que el sistema necesite sacar una pgina
para dejar un hueco libre.
Se selecciona la pgina que se va a sacar en funcin
de su historia reciente.

Hiperpaginacin

Una memoria pequea almacena demasiados


procesos.
El sistema operativo pasa la mayor parte del tiempo
intercambiando pginas.
Apenas se realizan trabajos efectivos.
La luz del disco permanece encendida todo el
tiempo.
Soluciones:
Un

buen algoritmo que determine la pgina que se ha de


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

Ventajas

No es necesario que la memoria almacene todos


los procesos que se van a ejecutar.
Podemos intercambiar las pginas 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).

Estructura de la tabla de pginas


Direccin virtual
Pgina #

Desplazamiento

Tabla de pginas
Pgina #

Elemento

Cadena

(Dispersin)

Marco #

Marco #
Tabla de dispersin

Tabla de pginas invertida

Desplazamiento

Direccin real

Segmentacin
Normalmente la paginacin es invisible
para el programador.
La segmentacin, en cambio, es visible.
Normalmente el programador asignar
segmentos distintos a programas y datos.
Puede haber distintos segmentos de
programas y de datos.

Ventajas de la segmentacin

Simplifica la gestin 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 proteccin.
Algunos sistemas combinan la segmentacin y
la paginacin.

Trabajo

Translation Lookaside Buffer

Cada referencia a memoria virtual causa


accesos fsicos a memoria
Extrae

la entrada de la tabla de pginas


Extrae los datos

Utiliza la cache especial para la tabla de


pginas
TLB

TLB Operation

TLB and Cache Operation

Pentium II

Hardware para segmetacin y paginado


No segmentado, no paginado
Direccion virtual=direccin fsica
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

Pentium II Address Translation


Mechanism

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 global
Half is local and distinct for each process

Pentium II Protection

Protection bits give 4 levels of privilege


0

most protected, 3 least


Use of levels software dependent
Usually 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. database
Some instructions only work in level 0

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

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

16

bit byte selector


=4kbyte pages

bit page id
64k pages per segment

bits indicate one of 16 segment registers

Segment registers under OS control

PowerPC 32-bit Memory Management


Formats

PowerPC 32-bit Address Translation

You might also like