Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Fundamentos de Sistemas Operativos
Fundamentos de Sistemas Operativos
1.2
Las tareas que desempea un sistema operativo dependen en cierta medida del
tipo de las caractersticas de cada ordenador. As las funciones de un sistema
operativo multitarea, en un gran ordenador, son diferentes de las de un
ordenador personal.
Sin embargo, existen ciertos puntos en comn que
permiten identificar de forma muy general las tareas principales de un sistema
operativo en:
Proporcionar una interfaz de usuario, para que este ltimo se pueda
comunicar con la computadora
Administrar y controlar los dispositivos de hardware del computador
Administrar y mantener los sistemas de archivo de disco
Apoyar la ejecucin de otros programas
1.3
LOS
SISTEMAS
COMPUTADORAS
OPERATIVOS
LOS
SISTEMAS
DE
Usuario 1
Usuario 2
Usuario n
Sistema
Operativo
Hardware
Figura 2: Relacin entre los sistemas operativos y el resto del sistema de
computadoras
Fuente: http://www.fing.edu.uy/inco/cursos/sistoper/recursosTeoricos/SO-Teo-Introduccion.pdf
1.4
1.4.1
o
o
polticas
de
o
o
o
1
Teclado
2
Comando
Seales
elctricas
Ad.dispositivos
3
Si lee del
disco
Ad.procesador
Hay que leerlo de disco
o si est ya en memoria
Encuentre espacio
en RAM
Ad.archivos
Cargue el
programa
Ad.memoria
Determine
prioridad
1.4.2
1.5
ARRANQUE DE LA COMPUTADORA
Arranque hardware
Arranque software
El programa cargador tiene por misin traer a memoria principal algunos de los
componentes del sistema operativo. Una vez cargados estos componentes se
pasa a la fase de inicializacin, que incluye las siguientes operaciones:
Comprobacin del sistema
Se establecen las estructuras de informacin propias del sistema operativo
como la tabla de procesos, las tablas de memoria y las de E/S.
Se crea un proceso de inicio o login por cada terminal definido en el
sistema, as como una serie de procesos auxiliares y de demonios (o
servicios).
1.6
Unidad de memoria
Celdas
Direccin
0
2.023
Unidad de memoria
Celdas
Direccin
0
Zona
ROM
1.046.526
Zona
ROM
1.048.575
1.048.575
1.7
Encendido
POST
Carga
SO
Carga BIOS
Sector de arranque
Particin activa
Lectura
CMOS
Carga
MBR
1.8
Figura 9: La BIOS
Fuente: https://belenus.unirioja.es/~alortiz/imagenes/chip_bios.jpg
10
1.9
11
Secuencia de arranque:
12
1.9.2
13
14
Tabla 1.
Titulo: Resumen del arranque del computador
Fase
Iniciador ROM
Cargador del S.O.
Inicializacin S.O.
Operacin
Test del hardware
Carga del cargador del S.O.
Carga en memoria de componentes del S.O.
Test del sistema de archivos
Creacin de estructuras de datos internas
Arranque de procesos del sistema(demonios)
Funcionamiento normal
Fuente: http://www.scribd.com/doc/98644/GUIA-DE-SISTEMA-OPERATIVO
En los 1940s:
Primera generacin de computadoras (tubos al vaco)
Las aplicaciones eran cientficas, matemticas y militares.
No haba sistemas operativos ya que cada programa inclua las
instrucciones para manejar los recursos necesarios.
Se programaba en lenguaje de mquina.
Las mquinas eran operadas por los programadores que reservaban
tiempo de operacin (se perda tiempo).
El proceso de depuracin era manual (el programador detena el programa
y examinaba el estado del CPU y RAM).
Los programas se diseaban pensando en la utilizacin de recursos
primero y la claridad del cdigo despus.
15
16
17
Tabla 2.
Titulo: Evolucin de los sistemas operativos
S.O
Atlas
AO
50 -60
The
RC4000
Solo
CTSS
Multics
Unix
1969
Sprite
Merlin
Windows
NT
Match
Amoeba
Windows
95/98
Coyote
1984
1984
1985
Exokernel
AUTOR
University
Manchester
Universidad
de Lotes
Eindhoven
Brinch Hansen de S.O. Completo
Regenecentralen
Brinch Hansen de Multiprogramado
Regenecentralen
MIT
Multiprogramado
/
tiempo
compartido
MIT
Multiprogramado
/
tiempo
compartido
Ritchie/Thompson
Multiprogramado
/
tiempo
compartido
Lotes
Multiprogramado
Microsoft
Multiprogramado
1986
Darpa
1994
1995/98 Microsoft
1996
GESTION DE
PROCESOS
of Lotes
Trinity
Dublin
Multiprogramado
Distribuido
Multiprogramado
College Distribuido
Micro_kernel
ARQUITECTURA
Monoltico
Modular
Modular
Modular
Monoltico
Modular
Monoltico
Monoltico
Modular
Modular
Monoltico
Microkernel
Monoltico
Modular
Monoltico
Fuente: http://so.fciencias.unam.mx/presentaciones/ch8.pdf
18
1.13.1
Sistemas en lote
Sistemas interactivos
19
1.13.4
XP
20
21
1.17.1
Ventajas
El concepto de mquina virtual
provee proteccin total de los
recursos del sistema ya que cada
mquina virtual est aislada de
las dems mquinas virtuales
Una mquina virtual es una
herramienta perfecta para el
desarrollo e investigacin de
sistemas operativos por ser que
el desarrollo se hace en una
mquina virtual en vez de una
mquina fsica
Desventajas
No permite comparticin directa
de los recursos
Fuente: Autor
22
23
Tabla 4.
Titulo: Estructura de capas del sistema operativo
Nivel
Nivel
Nivel
Nivel
Nivel
Nivel
5
4
3
2
1
0
Programas de usuario
Almacenamientos intermedios de e/s
Manejador de dispositivo de la consola del operador
Manejo de la memoria
Planificacin del CPU
Hardware
Fuente: http://blogs.utpl.edu.ec/sistemasoperativos/files/2009/03/capitulo-ii_so1.pdf
24
UNIDAD II
PROCESOS Y MULTITAREA
2.1
2.2
PROCESOS
25
La unidad despachable.
2.3
2.4
2.5
EJEMPLO DE MULTITAREA
26
2.6
Process recoger;
Begin
While true do
Begin
Esperar_seal_de(guardar, calcular);
Recoger_ad;
Enviar_seal_a(guardar, calcular)
End;
End
Process guardar;
Begin
While true do
Begin
Esperar_seal_de(recoger);}
Guardar_d;
Enviar_seal_a(recoger)
End;
End;
Process calcular;
Begin
While true do
Begin
Esperar_seal_de(recoger, imprimir);
calcular_e;
Enviar_seal_a(recoger, imprimir)
End
End
Process Imprimir;
Begin
While true do
Begin
27
Esperar_seal_de(calcular);
Imprimir_I;
Enviar_seal_a(calcular)
End;
End;
{proceso padre}
Begin
Inicializar_entorno;
Enviar_seal_a(recoger, calcular);{para la primera pasada}
initiate recoger, guardar, calcular, imprimir
end{multitarea}
Process Imprimir;
Begin
While true do
Begin
Esperar_seal_de(calcular);
Imprimir_I;
Enviar_seal_a(calcular)
End
End;
Aqu se presenta el concepto de envo y recepcin de seales. Su objetivo es
proporcionar la sincronizacin necesaria para forzar el cumplimiento de las
relaciones de precedencia indicadas dentro de nuestro conjunto de procesos
cooperativos. Las seales son uno de los mecanismos de sincronizacin entre
procesos que, como grupo, se encuentran entre los servicios ms importantes
proporcionados por los sistemas operativos multitarea.
Supongamos un proceso que espera uno ms seales de suspendido por el
sistema operativo, es decir, no es elegible para ejecucin hasta que le lleguen
todas las seales requeridas. Se supone que una seal llega despus de ser
enviada por otro proceso. El envo de una seal no ocasiona la suspensin del
proceso emisor.
Una observacin importante es que con el problema dividido en cuatro procesos,
cada proceso ejecuta su propio flujo secuencial de instrucciones, ms o menos
independiente. La multiplexacin es llevada a cabo por el sistema operativo de
modo en gran medida transparente a los propios procesos concurrentes. Un
proceso individual no tiene modo de conocer el estado o el progreso de cualquier
otro proceso, a menos que sea especficamente informado de ello por una seal.
El programador de sistemas controla este aspecto de la sincronizacin entre
procesos definiendo la identidad y el significado de las seales intercambiadas
entre los procesos cooperativos.
El proceso padre, al cual el sistema operativo transfiere control cuando se
arranca el sistema, tambin est a cargo de la inicializacin del entorno y de la
activacin de los cuatro procesos hijos. En otras palabras, el proceso padre crea
el entorno en tiempo de ejecucin para la ejecucin de la aplicacin. La
inicializacin de un proceso implica crearlo y hacerlo conocido al sistema
operativo.
28
29
...
y PANTALLA decrementa ECO cada vez que visualiza un carcter:
eco:=eco - 1
Las situaciones en las que dos o ms procesos leen o escriben en ciertos datos
compartidos y el resultado final depende de quin ejecuta qu y en qu
momento, reciben el nombre de condiciones de competencia
2.7
ESTADOS DE UN PROCESO
30
Se puede observar que hay cuatro transiciones posibles entre los distintos
estados. Las transiciones 1 y 4 las lleva a cabo el planificador de procesos, que
forma parte del sistema operativo, sin intervencin alguna de los procesos. La
transicin 1 puede suceder cuando el planificador encuentra al procesador
ocioso, o bien porque considera que el proceso que se encuentra en ejecucin ha
dispuesto del procesador durante un tiempo suficiente, con lo cual realizar
previamente la transicin 4 para posteriormente llevar a cabo la transicin 1. La
transicin 2 ocurre cuando un proceso descubre que no puede continuar debido a
que demanda algn recurso de E/S, o bien que el sistema operativo lo bloquea
momentneamente. Cuando el proceso en estado de espera ha finalizado el
evento externo que estaba esperando, o bien que el sistema lo desbloquea, se
producir la transicin 3, pasando el proceso nuevamente a estado de listo.
2.8
2.8.1
LOS PROCESOS
OPERATIVO
DESDE
LA
PERSPECTIVA
DEL
SISTEMA
31
2.9
PROCESAMIENTO DE INTERRUPCIONES
Obtiene el control.
Salva el estado del proceso interrumpido, generalmente en su
bloque de control de procesos.
Analiza la interrupcin.
Transfiere el control a la rutina apropiada para la manipulacin de la
interrupcin.
Una interrupcin puede ser iniciada por un proceso en estado de ejecucin o por
un evento que puede o no estar relacionado con un proceso en ejecucin.
Generalmente las interrupciones se pueden clasificar por tipos segn el
siguiente detalle:
Tabla 5.
Titulo: Tipos de interrupciones
Interrupcin
SVC
Entrada / Salida
Externa
De Reinicio
De Verificacin de Programa
De Verificacin de Mquina
Descripcin
Llamada al sistema operativo
Cambio de estado de un canal o dispositivo
Evento externo al sistema
Reinicio del procesamiento
Errores de procesos
Errores de hardware
Fuente: http://www.zator.com/Hardware/H2_4.htm
32
33
34
35
36
2.14.3
37
38
39
Tabla 6.
Titulo: Planificacin Apropiativa Versus No Apropiativa
Disciplina
Descripcin
Apropiativa Una vez que se le ha otorgado la CPU a un proceso, le puede ser
retirada
No
Una vez que se le ha otorgado la CPU a un proceso, no le puede
Apropiativa
ser retirada
Fuente:
http://wwwdi.ujaen.es/~lina/TemasSO/PLANIFICACIONDEPROCESOS/2y3Obj.,Crit.yTiposdePlanific
acion.htm
40
Tabla 7.
Titulo: Criterios de un buen algoritmo de planificacin
Criterio
Equidad
Descripcin
Garantizar que cada proceso obtiene su proporcin justa de
la CPU
Eficacia
Mantener ocupada la CPU el ciento por ciento del tiempo
Tiempo
de Minimizar el tiempo de respuesta para los usuarios
respuesta
interactivos
Tiempo
de Minimizar el tiempo que deben esperar los usuarios por
regreso
lotes (batch) para obtener sus resultados
Rendimiento
Maximizar el nmero de tareas procesadas por hora
Fuente: Autor
41
Rfaga CPU
1
100
1
100
Tiempo de
llegada
A
0
B
1
C
2
D
3
Promedio
Tiempo
de
Servicio
Tiempo
de
Comienzo
Tiempo de
Finalizacin
Turnaround
1
100
1
100
0
1
101
102
1
101
102
202
1
100
100
199
100
Tiempo de
Espera
0
0
101-2=99
102-3=99
49.50
Fuente: Autor
42
SOLUCIN: 2
Tabla 9.
Titulo: Algoritmo FCFS con procesos ordenados por tiempo de servicio
Proceso
Tiempo de
llegada
Tiempo
de
Servicio
Tiempo
de
Comienzo
Tiempo de
Finalizacin
Turnaround
B
D
A
0
1
2
100
100
1
0
100
200
100
200
201
201
202
100
199
2012=199
2023=199
174.25
Promedio
Tiempo de
Espera
0
100-1=99
2002=198
2013=198
123.50
Fuente: Autor
Rfaga CPU
8
4
9
5
43
SOLUCIN: 1
Tabla 10.
Titulo: Algoritmo SJF
Proceso
Tiempo de
llegada
A
0
B
1
C
2
D
3
Promedio
Tiempo
de
Servicio
Tiempo
de
Comienzo
Tiempo de
Finalizacin
Turnaround
8
4
9
5
0
8
17
12
8
12
26
17
8
12-1=11
26-2=24
17-3=14
14.25
Tiempo de
Espera
0
8-1=7
17-2=15
12-3=9
7.75
Fuente: Autor
Tabla 11.
Titulo: Algoritmo FCFS ejemplo 2
Proceso
Tiempo de
llegada
A
0
B
1
C
2
D
3
Promedio
Tiempo
de
Servicio
Tiempo
de
Comienzo
Tiempo de
Finalizacin
Turnaround
8
4
9
5
0
8
12
21
8
12
21
26
8
12-1=11
21-2=19
26-3=23
15.25
Tiempo de
Espera
0
8-1=7
12-2=10
21-3=18
8.75
Fuente: Autor
44
Prioridad
Rfaga CPU
8
4
9
5
Prioridad
2
1
4
2
45
SOLUCIN:
Tabla 12.
Titulo: Algoritmo por Prioridades
Proceso
Tiempo
de lleg.
A
0
B
1
C
2
D
3
Promedio
Priori
dad
Tiempo
de
Servicio
Tiempo de
Comienzo
Tiempo de
Finalizaci
n
Turnaroun
d
Tiempo de
Espera
2
1
4
2
8
4
9
5
0
22
8
17
8
26
17
22
8
26-1=25
17-2=15
22-3=19
16.75
0
22-1=21
8-2= 6
17-3=14
10.25
Fuente: Autor
Algoritmo SRTF
Tiempo de
llegada
0
2
4
5
Tiempo de
servicio
7
4
1
4
46
SOLUCIN:
Tabla 13.
Titulo: Algoritmo SRTF
Ejemplo: quantum =2;
Proces
o
P1
Tiempo
de lleg.
Priori
dad
Tiempo de
Servicio
Tiemp
de
Com.
Tiempo
de Fin
0,11,1
3,15
2,5
4
7,9
2,13,15,1
6
4,7
5
9,11
5 3 1 0 4c
P2
2
P3
4
P4
5
Promedio
4
1
4
4
1
4
2 0
0
2 0
2c
2c
2c
Turna.
Tiempo
de Espera
16-0=16
16-7=9
7-2=5
5-4=1
11-5=6
7
5-4=1
1-1=0
6-4=2
3
Fuente: Autor
NOTA: cuando termina una corrida se vuelve a buscar desde arriba los ms
cortos excepto los que ya terminaron
2.18.6
Una manera rpida de reducir la penalizacin que los procesos cortos sufren con
FCFS es usar expropiacin basada en un reloj. Una interrupcin de reloj es
generada a intervalos peridicos. Cuando ocurre la interrupcin, el proceso en
ejecucin es colocado en la cola de procesos listos y el prximo trabajo es
seleccionado basado en el esquema FCFS. A cada proceso se le da un trozo de
tiempo.
La principal decisin de diseo que surge con Round Robin es el tamao del trozo
o quantum. Si el quantum es muy corto, entonces los procesos se movern a
travs del sistema rpidamente. Por otro lado, hay un cierto overhead o
desperdicio de tiempo envuelto con el manejo de la interrupcin de reloj y las
funciones de planificacin y despacho. Por lo tanto quanta muy pequeos
deberan evitarse. Una alternativa es usar un quantum de tiempo que sea un
poco ms grande que el tiempo promedio requerido para una interaccin tpica.
Round Robin es particularmente efectivo para sistemas generales de tiempo
compartido. Se implementa con una cola FIFO de procesos. Nuevos procesos son
agregados al final de la cola, y toma el proceso que se encuentra en la cabeza de
la cola. Actualiza el timer para que interrumpa despus del quantum de tiempo.
Si tenemos n procesos en la cola de listos y el quantum es de q unidades de
tiempo, entonces cada proceso recibe 1/n tiempos de procesador en trozos de q
unidades de tiempo como mximo, y adems ningn proceso debe esperar ms
de (n-1) x q unidades de tiempo antes de recibir su siguiente quantum.
El desempeo de este algoritmo depender del tamao del quantum. Si el
quantum es infinito entonces degenera en FCFS. Si el quantum es muy pequeo
entonces Round Robin es llamado comparticin de CPU y en teora pareciera que
cada proceso tiene su propio procesador corriendo a 1/n la velocidad del
procesador real.
Bajo este esquema es importante considerar el efecto del cambio de contexto.
47
Ejemplo:
En un cierto instante se tiene los siguientes procesos:
Proceso
A
B
C
D
Tiempo de
llegada
0
1
2
3
Tiempo de
servicio
8
4
9
5
Tiempo de
llegada
A
0
B
1
C
2
D
3
Promedio
Tiempo
de
Servicio
Tiempo
de
Comienzo
Tiempo de
Finalizacin
Turnaround
8
4
9
5
0,
3,
6,
9,
3, 15, 23
6, 16
9, 19, 26
12,21
23
16-1=15
26-2=24
21-3=18
20
12, 21
15
16, 23
19
Tiempo de
Espera
15
11
15
13
13
Fuente: Autor
48
49
50
era de esperar, si hay un flujo continuo de procesos listos de alta prioridad. Para
superar este problema, se puede pensar en disear un mtodo que pueda
cambiar la prioridad del proceso en funcin de su edad, esto es, aumentar la
prioridad por envejecimiento.
51
UNIDAD III
GESTIN DE MEMORIA: ASIGNACIN CONTINUA Y
ASIGNACIN NO CONTINUA: PAGINACIN Y MEMORIA
VIRTUAL
3.1
PANORAMA GENERAL
52
disco en los casos en los que la memoria principal no le pueda dar capacidad a
todos los procesos que tienen necesidad de ella.
Los sistemas de administracin de memoria se pueden clasificar en dos tipos: los
que desplazan los procesos de la memoria principal al disco y viceversa durante
la ejecucin y los que no.
El propsito principal de una computadora es el de ejecutar programas, estos
programas, junto con la informacin que accesan deben de estar en la memoria
principal (al menos parcialmente) durante la ejecucin.
Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de
tener varios procesos a la vez en la memoria principal, para lo cual dispone de
varias opciones de administracin tanto del procesador como de la memoria. La
seleccin de uno de ellos depende principalmente del diseo del hardware para el
sistema. A continuacin se observarn los puntos correspondientes a la
administracin de la memoria.
3.2
MEMORIA REAL
3.3
53
3.4
En los 60's, las empresas e instituciones que haban invertido grandes sumas en
la compra de equipo de cmputo se dieron cuenta rpidamente que los sistemas
en lote invertan una gran cantidad de tiempo en operaciones de entrada y
salida, donde la intervencin de la unidad central de procesamiento era
prcticamente nula, y se comenzaron a preguntar cmo hacer que se mantuviera
ms tiempo ocupada. Fue as como naci el concepto de multiprogramacin, el
cual consiste en la idea de poner en la memoria fsica ms de un proceso al
mismo tiempo, de manera que si el que se est ejecutando en este momento
entraba en un periodo de entrada / salida, se poda tomar otro proceso para que
usara la unidad central de procesamiento. De esta forma, la memoria fsica se
divida en secciones de tamao suficiente para contener a varios programas.
De esta manera, si un sistema gastaba en promedio 60% de su tiempo en
entrada / salida por proceso, se poda aprovechar ms el CPU. Anterior a esto, el
CPU se mantena ese mismo porcentaje ocioso; con la nueva tcnica, el tiempo
promedio ocioso disminuye de la siguiente forma. Llmese al tiempo promedio
que el CPU est ocupado `grado de multiprogramacin'. Si el sistema tuviese un
solo proceso siempre, y ste gastara 60% en entrada / salida, el grado de
multiprogramacin sera 1 - 60% = 40% = 0.4. Con dos procesos, para que el
CPU est ocioso se necesita que ambos procesos necesiten estar haciendo
entrada / salida, es decir, suponiendo que son independientes, la probabilidad de
que ambos estn en entrada / salida es el producto de sus probabilidades, es
decir, 0.6x0.6 = 0.36. Ahora, el grado de multiprogramacin es 1 - (probabilidad
de que ambos procesos estn haciendo entrada / salida) = 1 - 0.36 = 0.64.
Como se ve, el sistema mejora su uso de CPU en un 24% al aumentar de uno a
dos procesos. Para tres procesos el grado de multiprogramacin es 1 - (0.6) 3 =
0.784, es decir, el sistema est ocupado el 78.4% del tiempo.
La frmula del grado de multiprogramacin, aunque es muy idealista, pudo servir
de gua para planear un posible crecimiento con la compra de memoria real, es
decir, para obtener el punto en que la adicin de procesos a RAM ya no
incrementa el uso de CPU.
54
3.5
700 K
Particin 3
700 K
400 K
Particin 2
100 K
400 K
Particin 1
100 K
Sistema
Operativo
0
Fuente:
http://www.elprisma.com/apuntes/ingenie
ria_de_sistemas/sistemasoperativosfunda
mentos/default2.asp
Fuente:
http://www.elprisma.com/apuntes/ingenie
ria_de_sistemas/sistemasoperativosfunda
mentos/default2.asp
Esta idea nos lleva a la implementacin de otro mtodo para particiones fijas,
que es el uso de diferentes colas independientes (figura b) exclusivas para cierto
rango en el tamao de los procesos. De esta manera al llegar un proceso, ste
sera asignado a la cola de tamao ms pequeo que la pueda aceptar. La
desventaja en esta organizacin es que si una de las colas tiene una larga lista
de procesos en espera, mientras otra cola est vaca, el sector de memoria
asignado para ese tamao de procesos estara desperdicindose.
3.6
Este esquema fue originalmente usado por el sistema operativo IBM OS/360
(llamado MFT), el cual ya no est en uso.
55
El sistema operativo lleva una tabla indicando cules partes de la memoria estn
disponibles y cules estn ocupadas. Inicialmente, toda la memoria est
disponible para los procesos de usuario y es considerado como un gran bloque o
hueco nico de memoria. Cuando llega un proceso que necesita memoria,
buscamos un hueco lo suficientemente grande para el proceso. Si encontramos
uno, se asigna nicamente el espacio requerido, manteniendo el resto disponible
para futuros procesos que requieran de espacio.
Consideremos el ejemplo de la figura a continuacin, en donde se cuenta un
espacio reservado para el sistema operativo en la memoria baja de 400K y un
espacio disponible para procesos de usuario de 2160K, siendo un total de
memoria del sistema de 2560K. Dada la secuencia de procesos de la figura y
usando un algoritmo de First Come First Served (FCFS) se puede asignar de
inmediato memoria a los procesos P1, P2 y P3, creando el mapa de memoria de la
figura a en el cual queda un hueco de 260K que ya no puede ser utilizado por el
siguiente proceso dado que no es suficiente para abarcarlo.
0
2560K
Sistema
Operativo
Procesos
P1
P2
P3
P4
P5
Lista de trabajos
Memoria
Tiempo
600K
1000K
300K
700K
500K
10
5
20
8
15
2160K
2560K
56
0
Sistema
operativo
400K
0
Sistema
operativ
400K
P1
0
Sistema
operativ
400K
P1
Sistema
operativ
400K
P1
Sistema
operativ
400K
P5
Hueco
900K
1000K
1000K
P2
Termina
P2
1000K
Hueco
Asignar
P4
1000K
P4
1700K
2000K
2000K
P3
2300K
2000K
P3
2300K
Hueco
2560K
(a)
P4
1700K
Hueco
2000K
P3
2300K
Hueco
2560K
Termina
P1
Hueco
P4
Asignar
P5
1700K
2000K
Hueco
P3
2300K
Hueco
2560K
Hueco
1000K
P3
2300K
Hueco
2560K
Hueco
2560K
(b)
(c)
(d)
Figura 26: Multiprogramacin con particiones variables
(e)
Fuente:
http://www.elprisma.com/apuntes/ingenieria_de_sistemas/sistemasoperativosfundamentos/default
2.asp
3.6.1
3.7
COMPACTACIN DE MEMORIA
57
0
Sistema
operativ
Sistema
operativ
400K
400K
P5
P5
900K
1000K
900K
100k
Compactacin
P4
P4
1600K
1700K
2000K
P3
300k
1900K
660k
P3
2300K
260k
2560K
(a)
2560K
(b)
3.7.1
3.8
ASIGNACIN DINMICA
58
16
E
24
1111100
10 1 1 1 1 1 1
1100111
11 1 1 1 1 0 0
0
16
E
24
14
18
20
26
H
x
29
59
3.9
FRAGMENTACIN
60
duro u otro medio de almacenamiento secundario. Aunque esta tcnica era eficaz
(porque resolva el problema) no era eficiente (ya que no lo resolva de la mejor
manera). Esta solucin requera que el programador tuviera un conocimiento
muy profundo del equipo de cmputo y de las llamadas al sistema operativo.
Otra desventaja era la portabilidad de un sistema a otro: las llamadas
cambiaban, los tamaos de particiones tambin. Resumiendo, con esta tcnica
se podan ejecutar programas ms grandes que las particiones de RAM, donde la
divisin del cdigo corra a cuenta del programador y el control a cuenta del
sistema operativo.
3.12 PAGINACIN
Es una tcnica de manejo de memoria, en la cual el espacio de memoria se
divide en secciones fsicas de igual tamao, denominadas marcos de pgina. Los
programas se dividen en unidades lgicas, denominadas pginas, que tienen el
mismo tamao que los marcos de pginas. De esta forma, se puede cargar una
pgina de informacin en cualquier marco de pgina.
Las pginas sirven como unidad de almacenamiento de informacin y de
transferencia entre memoria principal y memoria auxiliar o secundaria.
61
Tablas de pginas
62
Desventaja:
Costosa en recursos si la tabla de pginas es grande (1 registro por
pgina)
Costosa en tiempo
En el cambio de contexto habra que cargar la tabla de pginas
Ventaja:
Reduce el tiempo empleado en la transformacin de direcciones en un orden
de magnitud con respecto al caso en el que se guardaba la tabla de pginas
sobre memoria principal.
63
3.12.3
Transformacin
asociativa
de
direcciones
mediante
una
memoria
Con el fin de que se pueda hacer referencia a todas las pginas activas a travs
de un PAR, hay que disponer de tantos como marcos haya en la memoria. En
este caso, el marco al que har referencia cada PAR, no vendr implcito por la
situacin de ste, sino que deber incluirse como un campo adicional en el
mismo PAR. El hardware de direccionamiento de la memoria lleva a cabo,
entonces, la operacin de transformacin de direcciones. Como antes, slo se
requiere la intervencin del software en el caso de que haya que sustituir una
pgina.
Se cargan cclicamente en la memoria asociativa las direcciones de las pginas a
las que se ha hecho referencia con ms frecuencia recientemente. Este
algoritmo, ms bien primitivo, es, de hecho, bastante eficaz. El porcentaje de
veces que se encuentra un nmero de pgina entre los registros asociativos est
relacionado claramente con el nmero de registros asociativos. Con 8 o 16
registros asociativos, puede obtenerse un porcentaje del 80 al 90%. Un
porcentaje del 80% significa que el 80% de las veces encontramos el nmero de
pgina deseado entre los registros asociativos. Si explorar los registros
asociativos lleva 50 nanosegundos, y 750 nanosegundos acceder a memoria,
entonces un acceso a memoria "mapeada" lleva 800 nanosegundos cuando el
nmero de pgina se encuentra en los registros asociativos. Si no conseguimos
encontrar el nmero de pgina (50 ns), entonces tenemos que acceder a la
memoria en primer lugar para buscar el nmero de marco en la tabla de pginas
(750 ns) y entonces acceder a la palabra deseada en memoria (750 ns), dando
en total 1550 nanosegundos. Para encontrar el tiempo efectivo de acceso a
memoria, tenemos que ponderar cada caso con su probabilidad:
Tiempo efectivo de acceso a memoria = 0,80 x 800 + 0,20 x 1550 = 950 ns
En este ejemplo, sufrimos un 26,6% de retardo en el tiempo de acceso a
memoria (de 750 a 950 nanosegundos).
3.12.4
64
65
3.12.5
Cada referencia a memoria virtual puede causar dos accesos a memoria fsica:
3.12.6
Traduccin de direcciones
66
3.12.7
Modificada Presente/Ausente
Numero de marco de pagina
Solicitada
Proteccin
Figura 36: Estructura de una entrada de tabla de pginas
Fuente: http://so.fciencias.unam.mx/presentaciones/ch8.pdf
3.12.8
Cada vez que la CPU genere una direccin de memoria sta es transformada por
una unidad hardware, de forma que en el bus del sistema se introduce la
direccin fsica correspondiente. Es importante observar que la paginacin es en
s misma una forma de reubicacin dinmica. Cada direccin lgica es
transformada en alguna direccin fsica por el hardware de paginacin. Observe
tambin que si el tamao de pgina es una potencia de dos, el hardware no
precisa realizar ninguna divisin, simplemente sabe que los ltimos n bits, si el
tamao de pgina es de 2n, representan el desplazamiento, y los primeros bits la
pgina.
Cada proceso debe tener su propia tabla de pginas, y su direccin de comienzo
en la memoria principal forma parte de la porcin del PCB utilizada para realizar
un cambio de proceso. Como el nmero de marcos (cantidad de memoria real)
asignados a un proceso ser normalmente menor que el nmero de pginas que
ste utiliza, es muy posible que una direccin del programa haga referencia a
una pgina que no se encuentre en aquel momento en la memoria principal. En
este caso el elemento correspondiente de la tabla de pginas estar vaco,
provocando el hardware una interrupcin de "fallo de pgina" si se intenta
acceder a ella. Esta interrupcin provoca que el control pase al software (al
sistema operativo), para que ste inicie la transferencia de la pgina que falta
desde la memoria secundaria a la memoria principal, y actualice de acuerdo con
ello la tabla de pginas. El proceso en ejecucin se har no listo hasta que se
haya completado esta transferencia. La posicin de las pginas en la memoria
secundaria puede guardarse en una tabla separada o en la misma tabla de
pginas. En este ltimo caso, es necesario un "bit de presencia" en cada
67
68
3.12.9
Pginas compartidas
Caractersticas
El espacio de direcciones lgico de un proceso puede ser no contiguo.
Se divide la memoria fsica en bloques de tamao fijo llamados marcos (frames).
Se divide la memoria en bloques de tamao llamados pginas.
Se mantiene informacin en los marcos libres.
Para correr un programa de n paginas de tamao, se necesitan encontrara n
marcos y cargar el programa.
Se establece una tabla de pginas para trasladar las direcciones lgicas a fsicas.
Se produce fragmentacin interna.
La memoria asociativa permite acelerar la traduccin.
Comparte programas de uso corriente.
Tabla 15.
Titulo: Ventajas y desventajas de las mquinas virtuales
Ventajas
Es posible comenzar a ejecutar un
programa, cargando solo una
parte del mismo en memoria, y el
resto se cargara bajo la solicitud
Desventajas
El costo de hardware y software
se incrementa (si la tabla de
paginas es grande), por la nueva
informacin que debe manejarse
y el mecanismo de traduccin de
direcciones
necesario.
Se
consume mucho ms recursos de
memoria, tiempo en el CPU para
su implantacin
Se deben reservar reas de
memoria para las PMT de los
procesos. Al no ser fija el tamao
de estas, se crea un problema
semejante al de los programas
(como asignar un tamao ptimo
sin desperdicio de memoria, u
"ovearhead" del procesador)
Aparece
el
problema
de
fragmentacin interna
69
tamao
El mecanismo de traduccin de
direcciones
(DAT)
permite
separar los conceptos de espacio
de direcciones y espacios de
memoria. Todo el mecanismo es
transparente al usuario
Se libera al programador de la
restriccin de programar para un
tamao fsico de memoria, con lo
que se aumenta su productividad.
Se puede programar en funcin
de una memoria mucho ms
grande a la existente
Al no necesitarse cargar un
programa completo en memoria
para su ejecucin, se puede
amentar el nmero de programas
multiprogramndose
Se elimina el problema de
fragmentacin externa
Cuando la tabla se implementa
completamente en hardware, se
obtiene una alta velocidad de
acceso a memoria
Permite
la
posibilidad
de
compartir programas de uso
corriente
Cuando la tabla se implementa en
memoria principal, la tabla de
pginas puede crecer segn se
requiera
Al implementar completamente
en
hardware,
resulta
problemtica cuando la tabla de
pginas debe ser grande
Fuente: Autor
70
Pgina a eliminar
Marco elegido para
intercambio de
Pgina a cargar
Memoria Principal
Memoria Secundaria
71
Pgina ms
antigua
72
Pgina ms
reciente
Pgina ms
antigua
73
74
A
E
E
D
C
B
A
D
C
B
3.13 SEGMENTACIN
Otra opcin para el manejo de la memoria es usar una forma de liberar al
programador de la tarea del control de las tablas en expansin y contraccin, de
la misma forma que la memoria virtual elimina la preocupacin por organizar el
programa en una serie de proyectos.
Esto se puede lograr dotando a la mquina de varios espacios independientes de
direcciones llamados segmentos. Cada segmento tiene una serie lineal de
direcciones, desde 0 hasta cierto mximo. La longitud de cada segmento puede
variar de 0 hasta un mximo permitido. Los distintos segmentos pueden tener y
de hecho tienen por lo general, longitudes distintas. Adems, la longitud de un
segmento puede variar durante la ejecucin. La longitud de un segmento de la
pila puede crecer si algo entra a la pila y decrecer si algo sale de ella.
Puesto que cada segmento constituye un espacio independiente de direcciones,
los distintos segmentos pueden crecer o reducirse en forma independiente sin
afectar a los dems. En la figura siguiente podemos ver
una lista de
comparacin entre la paginacin y la segmentacin.
La segmentacin tambin facilita el uso de procedimientos o datos compartidos
entre varios procesos. Un ejemplo comn son las bibliotecas compartidas
(Shared DLLs). Es frecuente que las estaciones de trabajo modernas que
ejecutan sistemas avanzados, con ventanas, tengan bibliotecas grficas de
tamao muy grande que se compilan casi en todos los programas. En un sistema
segmentado, la biblioteca grfica se puede colocar en un segmento y compartirse
entre varios procesos, sin necesidad de tenerla en el espacio de direcciones de
cada proceso.
Aunque tambin es posible tener bibliotecas compartidas sin los sistemas con
paginacin pura, es mucho ms complejo. De hecho, estos sistemas simulan la
segmentacin.
75
Segmentacin pura
La implantacin de la segmentacin difiere del caso de la paginacin en un
sentido esencial: las pginas tienen un tamao fijo y los segmentos no. La figura
Desarrollo de fragmentacin externa y su correccin mediante compactacin,
muestra un ejemplo de memoria fsica que contiene al principio 5 segmentos.
Consideremos que el segmento 1 se elimina y su lugar se ocupa por el segmento
7, que es menor. El rea que queda entre el segmento 7 y el 2 es un hueco.
Luego, el segmento 4 se reemplaza por el segmento 5 y el segmento 3 es
reemplazado por el segmento 6. Despus de que el sistema est en ejecucin
durante cierto tiempo, la memoria quedar dividida en varios bloques, algunos
con segmentos y otros con huecos.
(a)
Segmento
1 (8K)
Segmento
0 (4K)
(b)
Segmento
7 (5K)
Hueco
(3K)
Segmento
2 (5K)
Segmento
3 (8K)
Segmento
4 (7K)
Segmento
2 (5K)
Segmento
3 (8K)
Segmento
0 (4K)
(c)
Segmento
7 (5K)
Hueco
(3K)
Segmento
2 (5K)
Segmento
3 (8K)
Segmento
5 (4K)
Segmento
4 (7K)
Hueco
(3K)
Segmento
0 (4K)
(d)
Segmento
7 (5K)
Hueco
(3K)
Segmento
2 (5K)
Segmento
6 (4K)
Segmento
0 (4K)
(e)
Segmento
7 (5K)
Segmento
2 (5K)
Segmento
6 (4K)
Segmento
5 (4K)
Hueco
(4K)
Segmento
5 (4K)
Hueco
(3K)
Hueco
(10K)
76
77
Ahora, en este esquema pueden haber dos tipos de fallos: por fallo de pgina y
por fallo de segmento. Cuando se hace referencia a una direccin y el segmento
que la contiene no est en RAM (aunque sea parcialmente), se provoca un fallo
por falta de segmento y lo que se hace es traerlo del medio de almacenamiento
secundario y crearle una tabla de pginas. Una vez cargado el segmento se
necesita localizar la pgina correspondiente, pero sta no existe en RAM, por lo
cual se provoca un fallo de pgina y se carga de disco y finalmente se puede ya
traer la direccin deseada por medio del desplazamiento de la direccin virtual.
La eficiencia de la traduccin de direcciones tanto en paginacin pura,
segmentacin pura y esquemas combinados se mejora usando memorias
asociativas para las tablas de pginas y segmentos, as como memorias cache
para guardar los mapeos ms solicitados.
Otro aspecto importante es la estrategia para cargar pginas (o segmentos) a la
memoria RAM. Se usan ms comnmente dos estrategias: cargado de pginas
por demanda y cargado de pginas anticipada. La estrategia de cargado por
demanda consiste en que las pginas solamente son llevadas a RAM si fueron
solicitadas, es decir, si se hizo referencia a una direccin que cae dentro de ellas.
La carga anticipada consiste en tratar de adivinar qu pginas sern solicitadas
en el futuro inmediato y cargarlas de antemano, para que cuando se pidan ya no
ocurran fallos de pgina. Ese `adivinar' puede ser que se aproveche el fenmeno
de localidad y que las pginas que se cargan por anticipado sean aquellas que
contienen direcciones contiguas a la direccin que se acaba de referenciar. De
hecho, el sistema operativo VMS usa un esquema combinado para cargar
pginas: cuando se hace referencia a una direccin cuya pgina no est en RAM,
se provoca un fallo de pgina y se carga esa pgina junto con algunas pginas
adyacentes. En este caso la pgina solicitada se carg por demanda y las
adyacentes se cargaron por anticipacin.
78
3.16.2
Los sistemas basados en Unix comparten multitud de aspectos con los basados
en Linux, aunque ciertos puntos sustanciales son diferentes, y por ello a
continuacin se hace una diferenciacin. Hay que destacar no obstante que el
sistema de gestin de memoria en Linux sigue siendo muy complejo. Respecto a
memoria virtual, Linux hace uso de una estructura de tabla de pginas con tres
niveles. Para utilizarlas, las direcciones virtuales en Linux se ven como un
conjunto de 4 campos.
Para tratar de aumentar la eficiencia al cargar y descargar pginas desde o hacia
la memoria, se ha definido un mecanismo particular. Sin entrar en demasiados
detalles tcnicos, basta indicar que se utiliza el Sistema de colegas, en el cual las
pginas son agrupadas en marcos de tamao fijo. Para reemplazar pginas, se
utiliza el algoritmo del reloj, en el cual las pginas tienen asignada una especie
de variable de edad. Cuando es necesario reemplazar una pgina, aquellas que
no han sido referenciadas en bastante tiempo son las mejores candidatas.
3.16.3
Direccionamiento de memoria
Segmentacin en Linux
79
WINDOWS:
COMO
GESTIONA
LA
Memoria en Win32
Cuando un proceso se ejecuta, el sistema establece un espacio de direcciones
virtuales propio de 32 bits, que permite habilitar un espacio de hasta 4 gigabytes
de memoria. ste est formado por la suma de la memoria RAM instalada, ms
la memoria virtual asignada.
Windows es un sistema multiproceso, ya que permite la ejecucin de varios
procesos a la vez. Por norma general, no todos los procesos caben en memoria a
la vez, ya sea porque existan muchos procesos, como que el tamao de stos
sea demasiado grande. Cuando esto sucede, Windows alterna la permanencia de
stos en memoria sacando unos y poniendo otros para que todos puedan
ejecutarse. Utiliza la memoria virtual asignada a cada proceso para guardar los
datos cada vez que se saca de la memoria. A ste cambio entre memoria fsica y
memoria virtual se le conoce como Swapping.
Para aumentar la velocidad, el cambio no se realiza byte a byte, sino pgina a
pgina. Cuyo tamao en Windows es de 4 KB. De ah que toda la memoria virtual
y fsica est paginada. Memoria virtual en forma de pginas, y memoria fsica en
forma de marcos de pgina.
80
3.17.1
Una direccin virtual no es una direccin fsica que apunte a una posicin de la
memoria principal, sino una direccin utilizada por el sistema para acceder a una
determinada pgina de la tabla de pginas de un proceso. Utilizando
posteriormente diferentes algoritmos para traducir esa direccin virtual, el
sistema puede acceder a la memoria fsica donde est contenida la informacin
del proceso. Esto permite que no podamos acceder a las posiciones de otros
procesos porque no es posible hacer referencia a dichas posiciones.
Cuando un proceso es movido de la memoria fsica a la memoria virtual para
dejar a otro que haga sus operaciones, el sistema se encarga de modificar la
tabla de pginas del proceso afectado ya sea para quitar referencias a memoria
(cuando sacamos un proceso de ella), o para asignar nuevas direcciones
(introduce el proceso en memoria). De ah que sea imposible acceder a la
memoria de otro proceso.
3.17.2
Estructura de la memoria
81
Tabla 16.
Titulo: Rangos de pginas
Fuente: http://www.neo-tech.es/wp/doc/presentacion-erc.pdf
3.17.3
Pgina: N de la pgina
3.17.4
82
UNIDAD IV
GESTIN DE ARCHIVOS Y DIRECTORIOS
SISTEMA DE ARCHIVOS
4.1
4.2
83
4.3
4.4
MANEJO DE ARCHIVOS
Un Archivo es un conjunto de registros relacionados
El Sistema de Archivos es un componente importante de un sistema
operativo y suele contener:
Mtodos de acceso relacionados con la manera de acceder a los
datos almacenados en archivos
Administracin de archivos referida a la provisin de mecanismos
para que los archivos sean almacenados, referenciados,
compartidos y asegurados
Administracin del almacenamiento auxiliar para la asignacin de
espacio a los archivos en los dispositivos de almacenamiento
secundario
84
4.4.1
85
4.5
4.6
4.6.1
Servicio de nombrado
Identifica un archivo dentro de algn tipo de organizacin lgica
(por ejemplo jerrquica)
Tipo del archivo, que permite saber qu tipo de informacin
contiene
Servicios de almacenamiento
Seguridad, proteccin y cifrado. Necesario en sistemas multiusuario
Archivos compartidos por varios usuarios
Tratamiento especial segn el tipo de archivo (FIFOS, enlaces,
dispositivos)
Servicios de directorio
Organizacin lgica (por ejemplo directorios jerrquicos)
Publicidad de la informacin
4.6.2
86
4.6.3
bin
boot
var
etc
usr
lib
home
proc
sbin
mnt
dev
spool
X11R6
oscar
cdrom
log
dict
chan
floppy
nis
include
nacho
stick
...
lib
...
local
progs
man
mp3
sbin
docs
share
src
...
...
4.7
o
o
o
o
87
o
o
o
o
4.8
SISTEMAS DE ARCHIVOS
discos
duros,
FAT
88
Tamao de la Particin
<256 MB
260 MB a 8 GB
8 GB a 16 GB
16 GB a 32 GB
>32 GB
512 bytes
4 KB
8 KB
16 KB
32 KB
Fuente: http://www.webtaller.com/maletin/articulos/sistemas-archivos-seguridad-datos.php
HPFS
NTFS
89
NTFS
tambin
divide
el
disco
duro
en
clusters.
90
91