Académique Documents
Professionnel Documents
Culture Documents
Sergio Rocabado.
Jorge Ramirez
25 de junio de 2013
Resumen
En la actualizad existen diversos tipos de sistemas operativos y que son modelados acordes
a las necesidades presente en una determinada organizacin y/o usuario. Algunos de ellos son
diseados para computadoras personales y otros para servidores. Cada sistema operativo tiene
diferente caractersticas con respecto a otros, entre ellas podemos mencionar la manera de gestionar
los archivos, la memoria principal el procesador y los procesos. La seguridad tambin es otra cualidad
que tiene que brindar cualquier sistema operativo. Es por ello que, en el presente traba jo pretende
abordar algunos de estos temas, partiendo inicialmente de ideas preliminares y abordando las
ndice
Gestin de Procesos 10
2. Procesos 10
2.1. Estado de un proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2. Bloques de Control de proceso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3. Colas de Planicacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4. Planicadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5. Cambio de Contexto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.6. Operaciones sobre los procesos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.6.1. Creacin de procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.6.2. Terminacin de procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.7. Comunicacin interprocesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.7.1. Sistemas de memoria compartida . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.7.2. Sistemas de paso de mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1
NDICE 2
3. Hebras 16
3.1. Ventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2. Modelos multihebras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Planicacin de la CPU 18
4. Ciclos de rfagas de CPU y de E/S 18
4.1. Planicador de la CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.1.1. Planicacin expropiativa y no expropiativa . . . . . . . . . . . . . . . . . . . . 19
4.1.2. Despachador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5. Criterios de Planicacin 20
5.1. Algoritmos de Planicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.1.1. Planicacin FCFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.1.2. Planicacin de primero el trabajo ms corto o SJF (SP N ) . . . . . . . . . . 21
5.1.3. Planicacin por prioridades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.1.4. Planicacin por turnos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.1.5. Planicacin mediante colas multinivel . . . . . . . . . . . . . . . . . . . . . . . 22
Sincronizacin de Procesos 23
6. Introduccin 23
7. Fundamentos 23
7.1. El problema de la Seccin Crtica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
8. Programacin Concurrente 25
8.1. Comunicacin y sincronizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8.2. Tcnicas de Programacin concurrente . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8.2.1. Variables de Cerraduras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8.2.2. Alternancia estricta con espera activa . . . . . . . . . . . . . . . . . . . . . . . 27
8.2.3. Algoritmo de Dekker: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8.2.4. Algoritmo de Peterson. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
9. Semforos 29
9.1. Utilizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9.2. Implementacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
11.Monitores 33
12.Bloqueos. 36
12.1. Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
12.2. Condiciones para un bloqueo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
12.3. Modelacin de bloqueos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
12.4. El algoritmo del avestruz o de Ostrich . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
12.5. Prevencin, deteccin y recuperacin de bloqueos . . . . . . . . . . . . . . . . . . . . . 38
Gutierrez Gonzalo E.
NDICE 3
Gestin de la Memoria 40
13.Memoria Principal 40
13.1. Fundamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
13.2. Hardware bsico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
13.3. Reasignacin de direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
13.4. Espacio de direcciones lgico y fsico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
13.5. Carga dinmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
13.6. Intercambio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
14.Asignacin contigua 41
14.1. Particionamiento jo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
14.2. Particionamiento dinmico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
14.3. Reubicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
15.Paginacin simple 43
16.Segmentacin 44
16.1. Proteccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Memoria Virtual 47
17.Introduccin y fundamentacin 47
Gestin de Almacenamiento 56
20.Archivos 56
20.1. Atributos de un archivo: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
20.2. Operaciones sobre archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
20.2.1. tipos de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
21.Mtodos de Acceso 57
Gutierrez Gonzalo E.
NDICE 4
22.Estructuras de directorios 57
22.1. Estructura de Almacenamiento: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
22.2. Directorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
22.3. Sistemas de directorios jerrquicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
22.3.1. Directorio de un nico nivel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
22.3.2. Directorio en dos niveles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
22.3.3. Directorios con estructura de rbol . . . . . . . . . . . . . . . . . . . . . . . . . 58
22.3.4. Directorios en un grafo acclico . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
22.3.5. Directorios en forma de grafo general . . . . . . . . . . . . . . . . . . . . . . . . 59
22.4. Montaje de sistemas de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
23.Comparticin de archivos 60
23.1. Proteccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Sistemas Distribuidos 74
26.Introduccin a los Sistemas Operativos Distribuidos 74
26.1. Ventajas e inconvenientes de los Sistemas distribuidos . . . . . . . . . . . . . . . . . . 74
26.2. Conceptos de Hardware: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
26.2.1. Taxonoma de Flynn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Gutierrez Gonzalo E.
NDICE 5
Seguridad 82
30.3. Requisitos de Seguridad: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
30.3.1. Intrusos (hacker o cracker): . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
30.4. Virus y amenazas afines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Seguridad S.O.M 86
31.Introduccin 86
31.1. Dispositivos mviles y seguridad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
31.2. cdigo malicioso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
31.3. Prdida o fuga de informacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
31.4. El mercado de soluciones de seguridad. . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Gutierrez Gonzalo E.
NDICE DE FIGURAS 6
ndice de guras
2.1. Diagrama de estados de un proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2. Cola de procesos preparados y diversas colas de dispositivos de E/S. . . . . . . . . . . 11
2.3. Planicadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4. Cambio de Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5. rbol de procesos de un sistema Solaris . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.6. Comunicacin Sncrona y Asncrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1. Modelo monohebra y multihebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2. Diversos modelos multihebras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1. Histograma de la duracin de la rfaga . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.1. Regin Crtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.2. Estructura General de un proceso Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
8.1. Comunicacin y Sincronizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
9.1. Modicacin de las operaciones wait() y signal() . . . . . . . . . . . . . . . . . . . . . 30
11.1. Vista esquemtica de los monitores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
12.1. Modelacin de bloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
14.1. Particionamiento jo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
15.1. Traduccin de direccin lgica a fsica . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
16.1. Traduccin de direccin lgica a fsica . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
16.2. Soporte de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
16.3. Direcciones lgicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
18.1. Formatos tpicos en paginacin virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
18.2. Traduccin de direcciones de un sistema de paginacin . . . . . . . . . . . . . . . . . . 50
18.3. Formatos tpicos en segmentacin virtual . . . . . . . . . . . . . . . . . . . . . . . . . . 51
18.4. Traduccin de direcciones en un sistema con segmentacin . . . . . . . . . . . . . . . . 51
22.1. Estructuras de directorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
24.1. Almacenamiento como lista enlazada de bloques de disco . . . . . . . . . . . . . . . . . 64
24.2. Asignacin por lista enlazada empleando una tabla en memoria principal . . . . . . . . 65
24.3. Nodo-i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
24.4. Entrada de directorio en CP/M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
24.5. Montaje NFS. (a) Montajes; (b) Montajes en cascada . . . . . . . . . . . . . . . . . . . 69
25.1. Mecanismo del cabezal mvil del disco . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
27.1. Esquema de un mltiprocesador con bus compartido . . . . . . . . . . . . . . . . . . . 75
27.2. Conexin mediante barras cruzadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
30.1. Capas del modelo OSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
30.2. Modelo cliente-servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
30.3. Amenazas a la seguridad y elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
31.1. Cuota de mercado de los sistemas operativos para moviles . . . . . . . . . . . . . . . . 86
32.1. Arquitectura del Sistema Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
32.2. Porcentaje de participacin de OS mviles . . . . . . . . . . . . . . . . . . . . . . . . . 88
32.3. Cantidad de malware en los diversos Sistemas Operativos mviles . . . . . . . . . . . . 88
33.1. Las cuatros capas de iOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Gutierrez Gonzalo E.
1 QUE ES UN SISTEMA OPERATIVO? 7
Mono-procesador: con una sola CPU, capaz de ejecutar instrucciones de propsito general.
Multiprocesador: Dispone de dos o mas procesadores que se comunican entre si, compartiendo el
bus de la computadora y en ocasiones, el reloj, memoria y perifricos.
2. Economa de escala
3. Mayor exibilidad.
Adems, incrementa el uso de la programacin (tcnica que permite que dos o mas procesos
ocupen la misma unidad de memoria principal y que sean ejecutados al mismo tiempo en la
CPU, paralelismo en una sola CPU).
Distribuidos
De tiempo real: se usa cuando se han establecido rgidos requisitos de tiempo en la operacin de
un procesador o ujo de datos.
De procesamiento por lotes: no tiene restricciones de tiempo absoluto, procesa trabajos masivos
con una entrada predeterminada.
Basados en la Web.
1. Interfaz de usuario UI
a) Linea de comando CLI: los Sistemas Operativos que disponen de varios interpretes de co-
mando para elegir se denominan shells. Obtiene y ejecuta comando especcos por el usuario.
Propios de UNIX y Linux.
b) Procesos por lotes: Los comando y directivas se introducen en archivos que luego se ejecutan.
c) Grca de usuario GUI: Sistemas de ventanas + mouse + teclado para introducir textos.
Propios de Windows.
Gutierrez Gonzalo E.
1 QUE ES UN SISTEMA OPERATIVO? 8
2. Ejecucin de programas.
4. Comunicaciones
5. Deteccin de errores.
6. Asignacin de Errores.
Proporciona una interfaz con la que se puede invocar los servicios que el sistema operativo ofrece.
Para el paso de parmetros se puede usar una serie de registros e insertarlos en una pila o bloque en
memoria.
1. Control de procesos
c) cargar, ejecutar
2. Administracin de archivos
3. Administracin de dispositivos
4. Mantenimiento de informacin
5. Comunicaciones
Gutierrez Gonzalo E.
1 QUE ES UN SISTEMA OPERATIVO? 9
En niveles: El S.O se divide en una serie de capas (0: hardware,. . . , n: U.I). Hay modularidad
y ms libertad para cambiar el funcionamiento interno del mismo. Cada nivel se implementa
utilizando solamente las operaciones proporcionadas por los niveles anteriores. Una desventaja
es la carga de trabajo adicional que hace que las llamadas tarden ms en ejecutarse.
Microkernels: Mdulos Kernels. Estructura el S.O eliminando todos los componentes no esenciales
del kernel y lo implementa como programas de aplicaciones, ofreciendo un kernel ms liviano y
pequeo.
Gutierrez Gonzalo E.
2 PROCESOS 10
Gestin de Procesos
2. Procesos
Informalmente un proceso es un programa en ejecucin. Mientras que un programa es una entidad
pasiva, un proceso es una entidad activa a cargo del S.O, un programa en ejecucin que necesita
recursos como tiempo de CPU, memoria, archivos y dispositivos de E/S.
Adems del cdigo, un proceso incluye tambin una actividad actual, representada por el valor del
contador de programa
1 y los contenidos en los registros del CPU. Un proceso incluye tambin la pila
de proceso que contiene datos temporales y una seccin de datos, que contiene las variables globales. El
proceso puede incluir tambin un cmulo de memoria, que es la memoria que se le asigna al momento
de la ejecucin.
3. En espera: el proceso est esperando que se produzca un suceso, como la terminacin de una
operacin de E/S o la recepcin de una seal.
Es importante darse cuenta que slo puede haber un proceso ejecutndose en cualquier procesador en
cada instante concreto, sin embargo puede haber muchos procesos preparados y en espera.
1
El contador de programa especica la siguiente instruccin que hay que ejecutar y conjunto de recursos asociados.
Un programa se convierte en proceso cuando se carga en memoria un archivo ejecutable.
Gutierrez Gonzalo E.
2 PROCESOS 11
1. Estado de proceso: el estado puede ser nuevo, preparado, en ejecucin en espera, detenido, etc.
3. Registro de la CPU.
4. Informacin de planicacin de la CPU: esta informacin incluye la prioridad del proceso, los
punteros a las colas de planicacin y otra informacin til al momento de planicar el proceso.
5. Informacin de la gestin de la memoria: incluye informacin acerca del valor de los registros
base y limite y/o las tablas de pginas o de segmentos, dependiendo del mecanismo de gestin
de memoria.
6. Informacin contable: esta informacin incluye la cantidad de CPU y de tiempo real empleado.
7. Informacin del estado de E/S: incluye la lista de dispositivos de E/S asignados al proceso, una
lista de los archivos abiertos, etc.
En resumen,el PCB sirve simplemente como repositorio de cualquier informacin que pueda variar de
un proceso a otro.
Cada proceso nuevo se coloca inicialmente en la cola de procesos preparados, donde espera hasta
que es seleccionado para ejecucin, es decir, hasta que es despachado. Una vez que se le asigna CPU a
un determinado proceso y este comienza a ejecutarse, se puede producir uno de los siguientes sucesos:
El proceso podra ejecutar una solicitud de E/S y ser colocado, como consecuencia, en una cola
de E/S.
Gutierrez Gonzalo E.
2 PROCESOS 12
El proceso podra ser desalojado de la CPU como resultado de una interrupcin y puesto de
nuevo en la cola de preparados.
2.4. Planicadores.
El mecanismo de seleccin de un determinado proceso para su posterior ejecucin se realiza mediante
un planicador apropiado. A menudo, en un sistema de procesamiento por lotes, se envan ms procesos
de los que pueden ser ejecutados de manera inmediata. Estos procesos se almacenan en cola en un
dispositivo de almacenamiento masivo, donde se mantienen para su posterior ejecucin.
El planificador a largo plazo, o planicador de trabajos selecciona procesos de esta cola y
los carga en memoria para su posterior ejecucin. El planificador a corto plazo o planicador
de CPU selecciona de entre los procesos cargados en memoria preparados para ser ejecutados y le
asigna CPU a uno de ellos. La principal diferencia entre estos dos planicadores se encuetra en la
frecuencia de ejecucin: el planicador a corto plazo debe seleccionar un nuevo proceso para la CPU
frecuentemente y debe de ser rpido. El planicador a largo plazo se ejecuta con menos frecuencia y
permite controlar el grado de programacin, es decir, el nmero de procesos cargados en memoria. Si
el grado de programacin es estable, entonces la tasa promedio de creacin de procesos debe ser igual
a la tasa promedio de salida de procesos del sistema.
El planicador a largo plazo debe hacer una seleccin cuidadosa debido que los procesos pueden estar
limitados por CPU o limitados por E/S.
Un procesos limitado por CPU genera pocas solicitudes de E/S y ocupa su mayor
tiempo en realizar clculos. Por ejemplo, cualquier simulador para realizar clculos matemticos
complejos.
Un proceso limitado por E/S presenta muchas solicitudes de E/S. Son procesos que
invierten mayor parte de su tiempo en operaciones de E/S en lugar de realizar clculos. Por
ejemplo, un proceso que realiza muchas solicitudes de consultas a una base de datos o escritura
de disco a disco.
Lo conveniente es que se haga una eleccin variada entre procesos limitados por CPU y limitados
por E/S. Algunos sistemas operativos, como los sistemas de tiempo compartido, pueden introducir un
nivel intermedio adicional de planicacin: un planicador a medio plazo permite eliminar procesos en
memoria (reduciendo el grado de programacin) y colocarlo mas tarde, continuando su ejecucin desde
el punto de interrupcin. Este esquema se denomina intercambio (swaping).
Gutierrez Gonzalo E.
2 PROCESOS 13
Un proceso puede crear varios procesos nuevos mientras se ejecuta. El proceso creador se denomina
proceso padre y los nuevos procesos son los hijos, adems esta idea puede dar lugar a un rbol de
procesos.
La mayora de los sistemas operativos (incluyendo UNIX y la familia Windows) identican los
Gutierrez Gonzalo E.
2 PROCESOS 14
procesos mediante un identicador de procesos unvoco o pid. Cuando un proceso crea un proceso
puede obtener sus recursos directamente del sistema operativo o puede ser restringido a un subconjunto
de los recursos del proceso padre.
Adems de los diversos recursos fsicos y lgicos que un proceso obtiene en el momento de su
creacin, el proceso padre puede pasar datos de inicializacin o entrada al proceso hijo. Cuando un
proceso crea otro proceso nuevo, existen dos posibilidades en trminos de ejecucin:
2. El padre espera hasta que por lo menos uno o todos los hijos hayan terminado de ejecutarse.
Tambin existen dos posibilidades en funcin del espacio de direcciones del nuevo proceso:
1. El proceso hijo es un duplicado del proceso padre (usa el mismo programa y los mismos datos
del padre).
Un proceso termina cuando ejecuta su ltima instruccin y pide al sistema operativo que lo elimine
usando la llamada al sistema exit(). En este momento, el proceso puede devolver un valor de estado a
su proceso padre. El sistema operativo libera la asignacin de todos los recursos del proceso, incluyendo
las memorias fsicas y virtual, los archivos abiertos y los bferes de E/S.
La terminacin puede producirse tambin en otras circunstancias, por ejemplo un proceso puede
causar la terminacin de otro proceso a travs de una adecuada llamada al sistema. Normalmente,
dicha llamada al sistema slo puede ser invocada por el proceso padre del proceso que se va a terminar.
Un padre puede terminar la ejecucin de uno de sus hijos por diversas razones, como por ejemplo
la siguiente:
El padre abandona el sistema y el sistema operativo no permite que los procesos hijos continen
si su padre ha terminado (terminacin en cascada).
Un proceso es cooperativo cuando puede afectar o verse afectado por los dems procesos
que se ejecutan en el sistema. Existen varias razones para la cooperacin de procesos
Compartir informacin.
Modularidad.
Coveniencia.
La cooperacin entre procesos requiere mecanismos de comunicacin interprocesos que les permita
intercambiar datos e informacin. Existen dos modelos fundamentales de comunicacin interprocesos:
Gutierrez Gonzalo E.
2 PROCESOS 15
En este modelo, los procesos que se estn comunicando establecen una regin de memoria que
se comparte. Dicha regin reside en el espacio de direcciones del proceso que crea el segmento de
memoria compartida. Permite el intercambio de informacin leyendo y escribiendo la regin compartida
directamente. La memoria compartida permite una velocidad mxima y una mejor comunicacin ya
que puede realizarse a velocidades de memoria cuando se hace en una misma computadora.
La comunicacin tiene lugar mediante el intercambio de mensajes entre los procesos cooperativos.
Son bastantes comunes en los distintos sistemas operativos y resulta til para intercambiar pequeas
cantidades de datos, ya que no existe la necesidad de evitar conictos.
El paso de mensajes proporciona un mecanismo que permite a los procesos comunicarse y sincronizar
sus acciones sin compartir el mismo espacio de direcciones, y es especialmente til en un entorno
distribuido. Una facilidad de paso de mensajes proporciona al menos dos operaciones: envo de mensajes
y recepcin de mensajes. Los mensajes enviados por un proceso pueden tener un tamao jo o variable.
Existen varios mtodos para implementar lgicamente un enlace y las operaciones de envo y re-
cepcin.
Comunicacin directa o indirecta: En el caso de la comunicacin directa, cada proceso que desea
establecer una comunicacin debe nombrar de forma explicita al receptor o transmisor de la
comunicacin. Un enlace de comunicacin tiene las siguientes propiedades:
Los enlaces se establecen de forma automtica entre cada par de procesos. Los procesos slo
tienen que conocer la identidad del otro.
Puede establecerse un enlace entre un par de procesos slo si ambos tienen un buzn de
correo compartido.
Entre cada par de procesos en comunicacin, puede haber una serie de enlaces diferentes,
correspondiendo cada enlace a un buzn de correo.
Comunicacin asncrona o asncrona: El paso de mensajes puede ser con bloqueo o sin bloqueo,
mecanismos tambin conocidos como sncrono o asncrono.
Envi con bloqueo: El proceso que enva se bloquea hasta que el proceso receptor reciba el
mensaje enviado.
Recepcin con bloqueo: El receptor se bloquea hasta que hay un mensaje y contina operan-
do.
Gutierrez Gonzalo E.
3 HEBRAS 16
3. Hebras
Una hebra es una unidad bsica de utilizacin de CPU; comprende un ID de hebra, un contador
de programa, un conjunto de registros y una pila. Comparte con otras hebras que pertenecen al mismo
proceso la seccin de cdigo, la seccin de datos y otros recursos del sistema operativo, como los
archivos abiertos y las seales. Un proceso tradicional (o proceso pesado) tiene una sola hebra de
control mientras que un proceso con mltiples hebras puede realizar varias tareas a la vez.
3.1. Ventajas
Las ventajas de la programacin multihebra pueden dividirse en cuatro categoras principales:
1. Capacidad de respuesta: el uso de mltiples hebras en una aplicacin interactiva permite que
un programa contine ejecutndose incluso aunque parte de l est bloqueado o realizando una
operacin muy larga.
2. Comparticin de recursos: por omisin, las hebras comparten la memoria y los recursos del
proceso al que pertenecen.
Gutierrez Gonzalo E.
3 HEBRAS 17
3. Economa: dado que las hebras comparten recursos del proceso al que pertenecen, es ms econmi-
co crear y realizar cambios de contextos entre una y otras hebras.
1. Modelo muchos a uno: asigna mltiples hebras del nivel de usuario a una hebra del kernel. Si
una hebra se bloquea, se bloquea todo el proceso. No permite ejecucin en paralelo.
2. Modelo uno a uno: asigna cada hebra del usuario a una hebra del kernel. Permite ms concurrencia
(windows y linux).
3. Modelo muchos a muchos: asigna mltiples hebras de usuario sobre un nmero menor o igual
de hebras del kernel. El nmero de hebras del kernel puede ser especco de una determinada
aplicacin o determinada mquina.
Gutierrez Gonzalo E.
4 CICLOS DE RFAGAS DE CPU Y DE E/S 18
Planificacin de la CPU
Los mecanismos de planicacin de la CPU son la base de los sistemas operativos multiprogramados.
Mediante la conmutacin de la CPU entre distintos procesos, el sistema operativo puede hacer que la
computadora sea ms productiva.
En un sistema con un nico procesador, slo puede ejecutarse un proceso a la vez, cualquier otro
proceso debe esperar hasta que la CPU quede libre y pueda volver a planicarse. El objetivo de la
programacin es tener continuamente varios procesos en ejecucin, con el n de maximizar el uso de
la CPU.
largas
P rocesos limitados por CP U (Carga de CP U )
CP U (Instrucciones)
Raf agas cortas P rocesos limitados por E/S (Carga de E/S)
E/S
La duracin de las rfagas de CPU, aunque varan enormemente de un proceso a otro y de una
computadora a otra, tienden a presentar una curva de frecuencia similar del tipo exponencial, con un
gran nmero de rfagas de CPU cortas y un nmero menor de rfagas de CPU largas.
Normalmente, en un programa limitado por E/S, las rfagas de E/S son ms largas en
duracin que las rfagas de CPU. Esta distribucin puede ser importante en la seleccin de un algoritmo
apropiado para la planicacin de la CPU.
Gutierrez Gonzalo E.
4 CICLOS DE RFAGAS DE CPU Y DE E/S 19
(o planificador de la CPU) lleva a cabo esa seleccin del proceso. Este planicador elige uno
de los procesos que estn en memoria preparados para ejecutarse y asigna la CPU a dicho proceso .
2
Una cola de procesos preparados puede implementarse como una cola FIFO, una cola prioritaria,
una rbol o simplemente una lista enlazada no ordenada, dependiendo del algoritmo de planicacin
que se haya elegido. Los registros que se almacenan en las colas son, generalmente, bloques de control
de proceso (PCB).
Puede ser necesario tomar decisiones sobre la planicacin de la CPU en las siguientes cuatro
circunstancias:
2. Cuando un proceso cambia del estado de ejecucin al estado preparado (producto de una inter-
rupcin).
3. Cuando un proceso cambia del estado de espera al estado preparado (al completarse una operacin
de E/S)
4. Cuando termina.
En las situaciones 1 y 4 la nica opcin es seleccionarse un nuevo proceso para su ejecucin. Sin
embargo, en las situaciones 2 y 3 existe la opcin de planicar un nuevo proceso o no. Cuando las
decisiones de planicacin slo tienen lugar en las circunstancias 1 y 4 decimos que el esquema de
no expropiativo;
planicacin es en caso contrario, decimos que el esquema de planicacin es
expropiativo.
En la planicacin no expropiativa, una vez que se le ha asignado la CPU a un proceso, el proceso
se mantiene en la CPU hasta que ste lo libera ya sea porque termina o conmuta al estado de espera.
Sin embargo en la planicacin expropiativa, el sistema operativo puede sacar el proceso actualmente
en ejecucin. El concepto de expropiatividad es visto en funcin del Sistema Operativo, desde el punto
de vista del proceso nos referimos al concepto de Apropiatividad.
Expropiativa No apropiativo
P olticas de planif icacion V ista S.O V ista P roceso
No expropiativa Apripiativo
A largo plazo nuevo listo
P lanif icacion
A corto plazo listo ejecucion
4.1.2. Despachador.
El despachador es el mdulo que proporciona el control de la CPU a los procesos seleccionados por
el planicador a corto plazo. Esta funcin implica lo siguiente.
Cambio de contexto.
Gutierrez Gonzalo E.
5 CRITERIOS DE PLANIFICACIN 20
Salto a la posicin correcta dentro del programa de usuario para reiniciar dicho programa.
El despachador debe ser lo ms rpido posible, ya que se invoca en cada conmutacin de proceso. El
tiempo que tarda el despachador en detener un proceso e iniciar la ejecucin de otro se conoce como
latencia de despacho.
5. Criterios de Planicacin
Los diferentes algoritmo de planicacin de la CPU tiene distintas propiedades y la eleccin de
un algoritmo en particular puede favorecer una clase de procesos sobre otro. Se han sugerido muchos
criterios para comparar los distintos algoritmos de planicacin:
El algoritmo ms simple de planicacin de la CPU es, con mucho, el algoritmo FCFS (First come
- rst served). Con este esquema, se asigna primero la CPU al proceso que primero la solicite y se
gestiona fcilmente con una cola FIFO. Sin embargo el tiempo medio de espera con el FCFS es a
menudo bastante largo, no es generalmente el mnimo y puede variar signicativamente si la duracin
de las rfagas de CPU de los procesos es muy variable.
El algoritmo de planicacin FCFS es no expropiativo. Una vez que la CPU ha sido asignada a
un proceso, dicho proceso conserva la CPU hasta que la libera, bien porque termina su ejecucin o
porque realiza una solicitud de E/S; dicho algoritmo resulta problemtico en los sistemas de tiempo
compartido:
Gutierrez Gonzalo E.
5 CRITERIOS DE PLANIFICACIN 21
n+1 = tn + (1 ) n
cuya frmula dene un promedio exponencial. El valor de tn contiene la informacin ms reciente; n
almacena el historial pasado. El parmetro controla el peso relativo del historial reciente y pasado
de nuestra prediccin.
El algoritmo SJF puede ser expropiativo o no expropiativo. Un SJF expropiativo detendr el proceso
actualmente en ejecucin, mientras que un SJF no expropiativo permitir que dicho proceso termine
su rfaga de CPU. La planicacin SJF expropiativa a veces se denomina planicacin con seleccin
del proceso con tiempo restante ms corto.
Muchas veces se emplea SJF expropiativo por el hecho que en un determinado instante de tiempo
pudo haber llegado un proceso de menor trabajo del que se est ejecutando actualmente y al cual se
podra asignar la CPU, esto penaliza a los procesos largos. SPN es una variante del SJF expropiativo
cuando se utiliza el concepto de quantum, en el que se asigna una unidad de tiempo para ocupar la
CPU a un proceso, si la rfaga de CPU de un determinado proceso es mayor que el quantum entonces
se lo expropia de la CPU y se planica nuevamente la cola de listos. Debido a que puede producir
inanicin es necesario aplicar tcnicas de envejecimiento.
A cada proceso se le asocia una prioridad y la CPU se asigna al proceso que tenga la prioridad
ms alta. Los procesos con la misma prioridad se planican en orden FCFS. Un algoritmo SJF es
simplemente un algoritmo por prioridades donde la prioridad es el inverso de la siguiente rfaga
de CPU (predicha). Cuanto ms larga sea la rfaga de CPU, menor ser la prioridad y viceversa. El
criterio es favorecer a determinados procesos sobre otros.
La planicacin por prioridades puede ser expropiativa o no expropiativa. Un algoritmo de plani-
cacin por prioridades expropiativo, expulsar de la CPU al proceso actual si la prioridad del proceso
que acaba de llegar es mayor. Un problema importante de los algoritmos de planicacin por priori-
dades es el bloqueo indenido o muerte por inanicin. Un proceso que est preparado para ejecutarse
pero est esperando acceder a la CPU puede considerarse bloqueado; un algoritmo de planicacin por
prioridades puede dejar algunos procesos de baja prioridad esperando indenidamente.
Gutierrez Gonzalo E.
5 CRITERIOS DE PLANIFICACIN 22
Una solucin al problema del bloqueo indenido de los procesos de baja prioridad consiste en
aplicar mecanismos de envejecimiento. Esta tcnica consiste en aumentar gradualmente la prioridad
de los procesos que estn esperando en el sistema durante mucho tiempo.
El algoritmo de planicacin por turnos (RR, round robin) est diseado especialmente para los
sistemas de tiempo compartido. Es similar a la planicacin FCFS, pero se aade la tcnica de desalojo
para conmutar entre procesos. En este tipo de sistema se dene una pequea unidad de tiempo,
denominada cuanto de tiempo o quantum. Generalmente, el quantum se encuentra en el
rango comprendido entre 10 y 100 milisegundos. La cola de procesos preparados se trata como una
cola circular.
Si la rfaga de CPU del proceso actualmente en ejecucin tiene una duracin mayor que 1 quantum,
se producir un n de cuenta del temporizador y ste enviar una interrupcin al sistema operativo,
produciendo un cambio de contexto y el proceso se colocar al nal de la cola de procesos preparados.
El tiempo medio de espera en los sistemas por turnos es, con frecuencia, largo. En el algoritmo de
planicacin por turnos, a ningn proceso se le asigna la CPU por ms de un quantum en cada turno;
el algoritmo de planicacin por turnos incluye, por tanto, un mecanismo de desalojo.
El rendimiento del algoritmo de planicacin por turnos depende enormemente del tamao del
quantum; si el quantum es extremadamente largo, la planicacin por turnos es igual al FCFS, si es
muy pequeo el mtodo por turnos se denomina comparacin del procesador.
Gutierrez Gonzalo E.
7 FUNDAMENTOS 23
Sincronizacin de procesos
6. Introduccin
Recordemos que un proceso cooperativo es aquel donde puede afectar o verse afectado por otros pro-
cesos que estn ejecutndose en el sistema. Los procesos cooperativos pueden compartir directamente
un espacio de direcciones lgico o compartir los datos slo a travs de los archivos o mensajes.
Cuando dos o mas procesos corren en ambientes multiprogramados o multiprocesador, deben ser
independientes entre si para poder ejecutarse simultneamente. En cambio, cuando son cooperativos,
deben tener cdigo especial que permita que se colaboren mutuamente para su normal funcionamiento.
Entenderemos Concurrencia a que varios procesos existen al mismo tiempo, particularmente la
ejecucin simultanea de procesos (denominado paralelismo). La concurrencia es el punto clave de:
Comprende
varias aplicaciones : tiempo del CPU compartido dinmicamente entre varias tareas o aplicaciones
activas.
Dicultades:
7. Fundamentos
En la seccin 2.7 hemos visto que un sistema puede estar formado por procesos o hebras secuenciales
cooperativas, los cuales se ejecutan de manera asncrona y posiblemente compartiendo datos. Una
situacin donde varios procesos que se ejecutan simultneamente de manera cooperativa, que manipulan
y acceden a los mismo datos concurrentemente y el resultado de la ejecucin depende del orden concreto
en que se produzcan los accesos, se conoce como condicin de carrera. Para protegerse frente a este
tipo de condiciones, necesitamos sincronizar de alguna manera los procesos, de modo que slo un
proceso a la vez manipule y acceda a los mismos datos; tales datos son denominados recursos crticos .
3
3
Recursos Crticos: recursos por los que compiten los procesos concurrentes
Gutierrez Gonzalo E.
7 FUNDAMENTOS 24
Cualquier solucin al problema de la seccin crtica deber satisfacer los tres requisitos siguientes:
1. Exclusin mutua: Si el proceso Pi est ejecutndose en su seccin crtica, los dems procesos no
pueden estar ejecutando su seccin crtica.
2. Progreso: Si ningn proceso est ejecutando su seccin crtica, debe seleccionarse sin demora
algn proceso que no este ejecutando su seccin de salida o pos-protocolo.
3. Espera limitada: un proceso no debe permanecer, ni esperar entrar en su regin crtica por tiempo
indenido o innito.
P roceso Pi {
P rocesamiento
...
P re protocolo
Seccion Crtica
P ost protocolo
...
P rocesamiento
}
Sin embargo, muchas veces se presentan con frecuencia los siguientes problemas:
Deadlock (Abrazo mortal): Donde dos o ms procesos quedan bloqueados esperando un recurso
ocupado por otro.
Por ejemplo, supongase que un proceso P1 ocupa el recurso A y que un proceso P2 ocupa un
recurso B. P1 intenta ocupar el recurso B, como ya est ocupado se suspende esperando que
se libere. Del mismo modo, P2 intenta ocupar el recurso A, como ya est ocupado se suspende
esperando que se libere. En este punto, P1 queda esperando que P2 libere el recurso B y P2
Gutierrez Gonzalo E.
8 PROGRAMACIN CONCURRENTE 25
queda esperando que P1 libere el recurso A; ambos nunca terminarn su ejecucin debido a que
se produjo un deadlock.
Esto tambin se denomina interbloqueo de procesos, cuya denicin formal es la siguiente
"Decimos que un conjunto de procesos est en un estado de interbloqueo cuan-
do todos los procesos del conjunto estn esperando un suceso que slo puede
producirse como consecuencia de las acciones de otro procesos del conjunto.
Los sucesos que ms nos interesan aqu son los de adquisicin y liberacin de
recursos".
Lockout: Uno de los procesos se adelanta en relacin del otro. Siempre existe un proceso que
avanza ms y otro que est innitamente atrasado.
Por Ejemplo, supongamos que el proceso P1 tiene 500 lineas en su zona de procesamiento y que
P2 slo tiene 50 lineas
Proceso P1 Proceso P2
Repeat Repeat
W hile turno <> 0 Begin W hile turno <> 1 Begin
(N ada) (N ada)
End; End;
Zona Critica 1 Zona Critica 2
T urno = 1; T urno = 0;
Zona P rocesamiento 1 Zona P rocesamiento 2
F orever F orever
Entonces P2 tiende a adelantarse en comparacin con P1 . Se usan dos mtodos generales para gestionar
las secciones crticas en los sistemas operativos: (1) los kernels apropiativos y (2) los kernes no
apropiativos . Un kernel apropiativo permite que un proceso sea desalojado mientras se est ejecutando
en modo kernel. Un kernel no apropiativo no permite que un proceso que se est ejecutando en modo
kernel sea desalojado; el proceso en modo kernel se ejecutar hasta que salga de dicho modo, hasta
que se bloquee o hasta que ceda voluntariamente el control de la CPU. Un kernel apropiativo es ms
adecuado para la programacin en tiempo real, ya que permite a un proceso en tiempo real desalojar
a un proceso que se est ejecutando actualmente en el kernel.
8. Programacin Concurrente
Un programa concurrente es aquel con multiples ujos de control, que generalmente cooperan entre
s, donde un ujo de control o thread es una secuencia de instrucciones de programa, en ocasiones
denominadas tareas. Aveces dos o mas ujos de control requieren un orden particular para sus opera-
ciones.
Para ejecutar un programa concurrente se necesita un planicador que gestione cuando se ejecuta
cada ujo de control y que recursos del sistema puede usar. En resumen, las caractersticas que ofrece
la programacin concurrente son:
Sincronizacin.
Gutierrez Gonzalo E.
8 PROGRAMACIN CONCURRENTE 26
Comunicacin.
S.O y libreras.
Proceso P1 Proceso P2
Repeat Repeat
If p=0 then If p=0 then
p=1 p=1
crit1 crit2
p=0 p=0
End if End if
Proc1 Proc2
Forever Forever
Esta solucin es errnea; supongamos la ejecucin de P1 y evala p=0, antes de poner p=1 termina
su quantum, el producto nal es que ambos procesos P1 y P2 ingresan a su regin crtica.
Gutierrez Gonzalo E.
8 PROGRAMACIN CONCURRENTE 27
Proceso P1 Proceso P2
Repeat Repeat
W hile turno <> 0 Begin W hile turno <> 1 Begin
(N ada) (N ada)
End; End;
Zona Critica 1 Zona Critica 2
T urno = 1; T urno = 0;
Zona P rocesamiento 1 Zona P rocesamiento 2
F orever F orever
Sin embargo, hemos visto que este modelo provocaba lockout cuando la zona de procesamiento de
P1 es mucha ms larga que la zona de procesamiento de P2 .
Dijkstra present un algoritmo de exclusin mutua para dos procesos diseado por el matemtico
holands Dekker. Segn Dijkstra, la solucin se desarrolla por etapas. Este mtodo tiene la ventaja
de ilustrar la mayora de los errores habituales que se producen en la construccin de programas
concurrentes.
Primer intento.
El protocolo es el siguiente. Un proceso (P0 P1) que desea ejecutar su seccin crtica entra primero
en el igl y examina la pizarra. Si su nmero est escrito en ella, el proceso puede abandonar el igl y
continuar con su seccin critica. En otro caso, abandona el igl quedando obligado a esperar. De vez en
cuando, el proceso vuelve a entrar en el igl para mirar la pizarra. Esta operacin la repite hasta que
tiene permitido entrar en su seccin crtica. Este procedimiento se denomina espera activa, consume
tiempo del procesador (est activo) mientras espera su oportunidad. Despus de que un proceso haya
obtenido acceso a su seccin crtica y una vez que termine con ella, debe volver al igl y escribir el
nmero del otro proceso en la pizarra.
Esta solucin garantiza el cumplimiento de la exclusin mutua. Hay dos inconvenientes en esta
solucin. Primero, los procesos deben alternarse de forma estricta en el uso de sus secciones crticas;
as pues, el ritmo de ejecucin viene dictado por el ms lento. Un problema mucho ms seno es que si
un proceso falla (por ejemplo, se lo come un oso polar en su camino hacia el igl), el otro proceso se
bloquea permanentemente. Esto es cierto tanto si un proceso falla en su seccin critica como fuera de
ella.
Segundo intento.
Cada proceso tiene ahora su propio igl y puede mirar la pizarra del otro proceso, pero no modi-
carla. Cuando un proceso desea entrar en su seccin critica, comprueba peridicamente la pizarra del
otro hasta que encuentra escrito en ella falso , lo que indica que el otro proceso no est en su seccin
crtica. Entonces, se dirige rpidamente hacia su propio igl, entra y escribe cierto en la pizarra. El
proceso puede ahora continuar con su seccin crtica. Cuando deja su seccin crtica, cambia su pizarra
para que ponga falso .
Gutierrez Gonzalo E.
8 PROGRAMACIN CONCURRENTE 28
Ahora, si uno de los procesos falla fuera de la seccin crtica, incluyendo el cdigo para dar valor
a las seales, el otro proceso no se queda bloqueado. Sin embargo, si un proceso falla en su seccin
crtica, el otro proceso est bloqueado permanentemente.
Tercer intento:
Una vez que P0 ha puesto seal a cierto , P1 no puede entrar a su seccin critica hasta que P0
haya entrado y abandonado la suya. Puede ser que P1 est todava en su seccin crtica cuando P0
activa su seal. En ese caso, P0 se bloquear en la sentencia while hasta que P1 deje su seccin critica.
El mismo razonamiento es aplicable desde el punto de vista de P1. Esta solucin garantiza la exclusin
mutua, pero origina un problema ms. Si ambos procesos ponen sus seales a cierto antes de que
ambos hayan ejecutado la sentencia while, cada uno pensar que el otro ha entrado en su seccin
critica. El resultado es un interbloqueo.
Cuarto intento
Deben activar su seal para indicar que desean entrar en la seccin crtica, pero deben estar listos
para desactivar la seal y ceder la preferencia al otro proceso. Esta solucin se aproxima a la correcta
pero todava es defectuosa. La exclusin mutua an est garantizada con un razonamiento similar al
seguido en el estudio del tercer intento.
Hay que poder observar el estado de ambos procesos, que viene dado por la variable seal. Pero,
como demuestra el cuarto intento, esto no es suciente. De algn modo, se hace necesario imponer
algn orden en la actividad de los dos procesos para evitar el problema de cortesa mutua que se
acaba de observar. La variable turno del primer intento puede usarse en esta labor; en este caso, la
variable indica qu proceso tiene prioridad para exigir la entrada a la seccin critica. Ahora hay un
igl rbitro con una pizarra llamada tumo . Cuando P0 quiere entrar en su seccin critica, pone su
seal a cierto .
La solucin de Peterson se restringe a dos procesos que van alternando la ejecucin de sus secciones
crticas y de sus secciones restantes. La solucin de Peterson requiere que los dos procesos compartan
dos elementos de datos:
int turno;
boolean Interesado[2];
La variable turno indica que proceso va a entrar en su regin crtica mientras que el vector Interesado
se usa para indicar si un proceso est preparado para entrar en su regin crtica. El cdigo de los
procesos con regin crtica tendr el siguiente formato:
P roceso i esimo{
EnterRegion(i);
Zona crtica i esima;
LeaveRegion(i);
P rocesamiento i esimo;
}
Y los procedimientos asociados son:
Gutierrez Gonzalo E.
9 SEMFOROS 29
Procedure LeaveRegion(nro_proc:integer)
begin
interesado[nro_proc]=false
end
Mediante el algoritmo de Peterson se elimina lockout, pero los procesos que esperan por entrar en
su regin crtica siguen ocupando tiempo de CPU.
9. Semforos
Un semforo
4 S es una variable entera a la que, dejando aparte la inicializacin, slo se accede
mediante dos operaciones atmicas estndar: wait() y signal() (originalmente denominadas P y V). La
denicin de wait() es la siguiente
wait(S){
while S<=0
; (*nada*)
S;
}
signal(S){
S++;
}
Todas las modicaciones del valor entero del semforo en las operaciones wait() y signal() deben
ejecutarse de forma indivisible. Es decir, cuando un proceso modica el valor del semforo, ningn otro
proceso puede modicar simultneamente el valor de dicho semforo.
9.1. Utilizacin
Los sistemas operativos diferencian a menudo entre semforos contadores y binarios. Un semforo
contador puede variar en un dominio no restringido y un semforo binario slo toma los valores 0 y 1.
Los n procesos comparten un semforo binario inicializado con el valor 1; cada proceso Pi se organiza
del siguiente modo:
4
Un semforo tambin es un tipo especial de variable soportada por el hardware como tambin por el S.O en donde
solamente es posible acceder a esta variable a travs de las operaciones P y V
Gutierrez Gonzalo E.
9 SEMFOROS 30
do{
wait(semaphore);
// seccin crtica
signal(semaphore);
// seccin restante
}while (true);
9.2. Implementacin
La principal desventaja de la denicin de semforos dada anteriormente es que requiere espera
activa. Mientras un proceso est en su regin crtica, cualquier otro proceso que intente entrar en
su seccin crtica debe ejecutar continuamente un bucle en el cdigo de entrada. La espera activa
desperdicia ciclos de CPU que algunos otros procesos podran usar de forma productiva, para salvar la
necesidad de la espera activa podemos modicar la denicin de las operaciones de semforo. Cuando
un proceso ejecuta la operacin wait() y determina que el valor del semforo no es positivo tiene que
esperar bloquendose a si mismo; la operacin de bloqueo coloca al proceso en una cola de espera
asociada al semforo y el estado del proceso pasa al estado de espera. El control se transere al
planicador del CPU y se elige inmediatamente otro proceso
Un proceso bloqueado esperando en un semforo debe reiniciarse cuando otro proceso ejecuta una
operacin signal() cambiando del estado de espera al estado de preparado .
5
Var S:semaphore
wait(S)
if (S>0) then S=S-1
else block(); (*suspender*)
end;
signal(S)
if (exist proc P suspend in S) then
wakeup(P); (*reanudar*)
else S=S+1;
end;
5
Las operaciones wait y signal son indivisibles, esto es, que solamente un proceso a la vez puede ejecutarlas.
Gutierrez Gonzalo E.
10 PROBLEMAS CLSICOS DE SINCRONIZACIN 31
Program productor_consumidor;
Const N=100;
type
Buffer = Array[0..N] of TipoItem;
var
Candado, BinesVacios, BinesOcupados: semaphore;
Procedure productor;
var item:tipoItem;
begin
repeat
producir_item(item);
wait(BinesVacios);
wait(candado);
poner_item(item);
signal(candado);
signal(BinesOcupados);
forever;
end;
procedure consumidor;
var item:tipoItem;
begin
repeat
wait(BinesOcupados);
Gutierrez Gonzalo E.
10 PROBLEMAS CLSICOS DE SINCRONIZACIN 32
wait(candado);
sacar_item(item);
signal(candado);
signal(BinesVacios);
forever;
end;
(*programa principal*)
begin
candado:=1;
BinesVacios:=N;
BinesOcupados:=0;
cobegin
Productor; Consumidor;
coend;
end.
Program Lectores-Escritores;
var Candado,llave_BD:semaphore;
cont:integer;
procedure lector;
begin
repeat
wait(candado);
lect:=lect+1;
if (lect=1) then wait(llave_bd);
signal(candado);
leer_bd;
wait(candado);
lect:=lect-1;
if (lect=1) then signal(llave_bd);
signal(candado);
(*cdigo para utilizar los datos leidos*)
forever;
end;
procedure escritor;
begin
repeat
(*cdigo para preparar los datos a escribir*)
wait(llave_db);
Gutierrez Gonzalo E.
11 MONITORES 33
escribir_bd;
signal(llave_bd);
forever;
end;
begin
cont:=0;
candado:=1;
llave_bd:=1;
cobegin
lector;lector;escritor;
coend;
end.
11. Monitores
Aunque los semforos proporcionan un mecanismo adecuado y efectivo para el proceso de sin-
cronizacin, un uso incorrecto de los mismo puede dar lugar a errores de temporizacin que son dif-
ciles de detectar, dado que estos errores slo ocurren si tienen lugar algunas secuencias de ejecucin
concretas y estas secuencias no siempre se producen.
Para abordar tales errores, se han desarrollado estructuras de alto nivel, entre ellas, una estruc-
tura fundamental de sincronizacin de alto nivel denominada monitor. Los monitores son tcnicas de
sincronizacin de alto nivel que permite centralizar en un slo objeto todas las regiones crticas que
presenten condiciones de competencia.
El monitor mantiene una cola de llamada a las regiones crticas y garantiza que solamente un proceso
a la vez acceda a su regin crtica (exclusin mutua). Se debe utilizar un lenguaje de programacin de
alto nivel que soporte este tipo de estructura.
Un tipo de dato monitor tiene un conjunto de operaciones denidas por el programador que gozan
de las caractersticas de exclusin mutua dentro del monitor. El tipo monitor tambin contiene la
declaracin de una serie de variables cuyos valores denen el estado de una instancia de dicho punto,
junto con los cuerpos de los mtodos que operan sobre dicha variable y libera al programador de la
responsabilidad de la concurrencia.
Program UsoMonitor;
Monitor Nombre_Monitor
Const Cosntantes_internas;
.....
Var Variables_internas;
Gutierrez Gonzalo E.
11 MONITORES 34
.....
(*procedimientos internos*)
Procedure crit1;
begin
(*code*)
end;
Procedure cirt2;
begin
(*code*)
end;
Procedure Proc1;
begin
(*code*)
Nombre_Monitor.crit1; (*Exclusion mutua*)
end;
Procedure Proc2;
begin
(*code*)
Nombre_Monitor.crit2;
end;
(*inicializacion*)
begin
end;
Program Exclusion;
Monitor Prueba;
Procedure Crit1;
Begin
.......
End;
Procedure Crit2;
Begin
.......
End;
end;
Procedure P1;
Begin
Repeat
Prueba.Crit1;
Procesamiento1;
Forever
Gutierrez Gonzalo E.
11 MONITORES 35
End;
Procedure P2;
Begin
Repeat
Prueba.Crit2;
Procesamiento2;
Forever
End;
Begin
Prueba.init;
Cobegin
P1;P2;
Coend
End.
Los monitores son una forma sencilla de garantizar la exclusin mutua. Sin embargo para poder im-
plementarse en problemas ms reales, es necesario agregar a su denicin variables de condicin que
acepten las operaciones wait() y signal() para bloquear procesos en espera de un cierto recurso.
Monitores de Hoare
Cuando no se cumple cierta condicin booleana, el hilo que est en el monitor llama a wait() de
una variable de condicin.
El proceso se duerme hasta que otro proceso lo despierta con un signal() a la misma variable de
condicin.
Monitores de Lampson-Redell.
El proceso o hebra que envi la instruccin signal() puede continuar dentro de la ejecucin.
puede ocurrir que la condicin por la que un hilo despert haya cambiado.
Como ejemplo, planteamos desarrollar el problema del productor-consumidor con buer limitado me-
diante implementacin de monitores.
program productor_consumidor;
monitor m;
type
buffer= vector[10000] of integer;
var tamao,indice,item:integer;
lleno,vaco:condition;
Gutierrez Gonzalo E.
12 BLOQUEOS. 36
procedure productor;
begin
repeat
producir_item(item)
m.agregar(item);
forever
end;
procedure consumidor;
var it:integer;
begin
repeat
m.sacar(it);
(*manopulo elemento sacado*)
forever
end;
begin
m.init;
cobegin
productor; consumidor;
coend;
end.
12. Bloqueos.
Un proceso dentro de un sistema multiprogramado se encuentra en un estado de interbloqueo (o
interbloqueado) si est esperando por un evento determinado que nunca ocurrir. Cuando los recursos
son compartidos entre usuarios, es posible que se produzcan interbloqueos en el momento que los
procesos de los usuarios nunca podrn llegar a su termino.
Se debe considerar la prevencin, evitacin, detencin y recuperacin de interbloqueos y la poster-
gacin indenida, donde esta ltima hace referencia cuando un proceso no se encuentra en estado de
interbloqueo pero espera por un evento que probablemente nunca ocurrir. En algunos casos:
Los sistemas de computo tienen muchos recursos que pueden ser usados por un proceso a la vez, tales
como impresoras, unidades de cinta, espacio en la tabla de nodo-i, etc. Es por ello que los sistemas
Gutierrez Gonzalo E.
12 BLOQUEOS. 37
12.1. Recursos
El sistema operativo es, sobre todo, un administrador de los recursos del sistema. Los recursos
pueden ser apropiativos tales como la CPU y la memoria o no apropiativos tales como las
unidades de cinta. La apropiatividad es extremadamente importante para el xito de los sistemas com-
putacionales multiprogramados. No es posible sacarle a un determinado proceso los recursos asignados
que son de carcter no apropiativo.
Algunos recursos pueden ser compartidos entre varios procesos o pueden estar dedicados a procesos
individuales. Cuando se consideran que algunos recursos son compartidos se debe establecer si son
utilizables por varios procesos a la vez o si es de a uno por vez, estos ltimos son los recursos que ms
a menudo estn implicados.
1. Los procesos reclaman control sobre determinados recursos solicitados (condicin de exclusin
mutua).
2. Los procesos mantiene los recursos que ya les han sido asignados mientras esperan por recursos
adicionales.
3. Los recursos no pueden ser extrados de los procesos que los tienen hasta su completa utilizacin.
4. Existe una cadena circular de procesos en donde cada uno mantiene uno o ms recursos que son
requeridos por el siguiente proceso de la cadena.
Un arco de un nodo recurso a un nodo proceso indica que el recurso fue solicitado con anterioridad,
otorgado y posedo en dicho momento por el proceso.
Un arco de un proceso a un recurso indica que el proceso est bloqueado, en espera de ese recurso
y un ciclo en la grca indica la existencia de un bloqueo relacionado con los procesos y recursos
en el ciclo.
Gutierrez Gonzalo E.
12 BLOQUEOS. 38
Las estrategias para enfrentar los bloqueos son: ignorar todo el problema, deteccin y recuperacin.
Evitarlos dinmicamente mediante una asignacin cuidadosa de los recursos o la prevencin mediante
la negacin estructural de alguna de las cuatros condiciones necesarias mencionadas anteriormente.
La mayora de los usuarios preferiran un bloqueo ocasional, en vez de una regla
que restringiera a todos los usuarios en el uso de los distintos tipos de recursos
del sistema.
El problema es que se debe pagar un cierto precio para encarar el problema del bloqueo.
Es muy difcil encontrar tericamente soluciones prcticas de orden general aplicables a todos los
sistemas operativos. Un criterio de orden general utilizado por los sistemas operativos que no hacen
tratamiento especcos de bloqueos consiste en:
Reinventar nuevamente.
Gutierrez Gonzalo E.
12 BLOQUEOS. 39
Generalmente se logra extrayendo (cancelando) uno o varios procesos bloqueados, que se reinician luego
en forma normal.
Gutierrez Gonzalo E.
13 MEMORIA PRINCIPAL 40
Gestin de la memoria
13. Memoria Principal
13.1. Fundamentos
Para conseguir un incremento en las prestaciones del procesador, como velocidad de respuesta a
los usuarios de la computadora, debemos poder compartir la memoria. La memoria principal est
compuesta de una matriz de palabras o bytes, cada una con su propia direccin. La CPU extrae
instrucciones de la memoria de acuerdo con el contador de programa, las cuales pueden provocar
operaciones adicionales de carga o almacenamiento en direcciones de memoria especcas.
Gutierrez Gonzalo E.
14 ASIGNACIN CONTIGUA 41
fsica. La direccin lgica es una direccin virtual cuyo conjunto de todas ellas se denomina
espacio de direcciones lgicas. Del mismo modo, el conjunto de todas las direcciones fsicas se
denomina espacio de direcciones fsicas. La correspondencia entre direcciones lgicas y fsicas
durante la ejecucin se establece por la unidad de gestin de memoria MMU. Un esquema
simple de MMU es denominado registro de reubicacin, cuyo contenido suma a todas las direcciones
generadas por un proceso de usuario en el momento de enviarlas a memoria. El programa de usuario
nunca ve direcciones reales, slo maneja direcciones lgicas que despus son convertidas por el MMU
en direcciones fsicas (mapeo).
13.6. Intercambio
Un proceso debe estar en memoria para ser ejecutado. Sin embargo, pueden ser
intercambiados temporalmente, sacndolo de la memoria y colocndolo en un almacn de respal-
do; volvindolo a llevar luego a memoria para continuar su ejecucin. Por ejemplo, en un entorno de
programacin con un algoritmo de planicacin de CPU basado en turnos y al momento en que termina
el quantum de un proceso.
El sistema mantiene una cola de procesos preparados que consiste en todos los procesos
cuyas imgenes de memoria se encuentran en el almacn de respaldo o memoria y estn listos para
ejecutarse. Cada vez que el planicador de la CPU decide ejecutar un proceso llama al despachador
que mira si el siguiente proceso de la cola est en memoria; de no ser as, y si no hay memoria libre,
el despachador intercambia el proceso deseado por otro que est actualmente en memoria, recarga los
registros y transere el control al proceso seleccionado. Al intercambiar el proceso, este debe quedar
inactivo. Generalmente, el espacio de intercambio se asigna como un rea de disco separada del sistema
de archivos, para que su uso sea lo ms rpido posible (propio de UNIX y Linux).
Gutierrez Gonzalo E.
14 ASIGNACIN CONTIGUA 42
1. El nmero de programas est limitado; esto quiere decir que el grado de programacin est jo
y limitado por el nmero de particiones.
2. Produce fragmentacin interna en cada particin. Debido que se toma como unidad
cualquier particin, los programa de tamao ms pequeo que la particin provocarn trozos de
particin desocupada y que no puede ser aprovechada por otros procesos.
Las particiones pueden ser iguales o distintas en cuanto a tamao. En el ltimo caso se aprovecha
mejor la memoria al poder almacenar un proceso en una particin que mejor se ajuste a su tamao.
Para este tipo de mecanismo, existen dos alternativas:
Una cola por cada particin. Un proceso se ubica en la cola que le corresponda acorde a su
tamao, tiene el inconveniente de poder dejar fuera un proceso habiendo memoria libre para
cargarlo.
Cola nica. Cuando un proceso encuentra ocupada la particin que le corresponde a su tamao,
cabe la posibilidad de asignarle una particin libre de tamao mayor, permitiendo incrementar
el grado de programacin a costa de introducir fragmentacin interna.
Gutierrez Gonzalo E.
15 PAGINACIN SIMPLE 43
dinmicamente el proceso y para ello el sistema operativo de vez en cuando desplaza los procesos en
memoria de forma que se encuentren contiguos y de este modo toda la memoria libre se encuentra en
un nico bloque. La desventaja de la compactacin es el hecho de consumo de tiempo y gasto de CPU.
Es por ello que, a la hora de intercambiar un proceso a memoria principal y siempre que haya ms
de un bloque de memoria libre de suciente tamao, el sistema operativo debe decidir que bloque libre
asignar. Existen tres algoritmos o estrategias.
1. Primer ajuste: se asigna el primer bloque que sea sucientemente grande. La exploracin
puede comenzar desde el principio del conjunto de bloques o en el punto en que hubiera terminado
la exploracin anterior (siguiente ajuste). Es muy eciente ya que basta con encontrar una zona
libre de tamao suciente y proporciona un aprovechamiento de la memoria aceptable.
2. Mejor ajuste: se asigna el bloque ms pequeo que tenga el tamao suciente. Se debe
explorar la lista entera, a menos que est ordenada segn los tamaos.
3. Peor ajuste: Se elige el bloque ms grande. Con ello se pretende que no se generen nuevos
huecos pequeos. Sin embargo, sigue siendo necesario recorrer toda la lista de huecos o mantenerla
ordenada por tamao.
14.3. Reubicacin
Cuando se utiliza el esquema de Particionamiento jo, se espera que un proceso siempre se asigne a
la misma particin. Para ello, se hace una distincin entre varios tipos de direcciones. Una direccin
lgica es una referencia a una ubicacin de memoria independiente de la asignacin actual de datos
de la memoria, se debe llevar a cabo una traduccin a una direccin fsica antes de que alcance el
acceso a memoria. Una direccin relativa es un ejemplo particular de direcciones lgicas, en que
la direccin se expresa como una ubicacin relativa a algn punto conocido, normalmente un valor
en un registro del procesador. Una direccin fsica o direccin absoluta es una ubicacin
real de la memoria principal. Los programas que emplean direcciones relativas de memoria se cargan
utilizando carga dinmica en tiempo de ejecucin. Cuando un proceso se asigna al estado ejecutando,
un registro especial del procesador (registro base) carga la direccin inicial del programa en la memoria
principal.
Gutierrez Gonzalo E.
16 SEGMENTACIN 44
Utilizar el nmero de pgina como ndice a tabla de pginas del proceso para encontrar el nmero
de marco k.
La direccin fsica inicial del marco es k 2m y la direccin fsica del byte referenciado es dicho
nmero mas la concatenacin con el desplazamiento.
Cuando usamos un esquema de paginacin no tenemos fragmentacin externa: todos los marcos
libres podrn ser asignados a un proceso que los necesite. Pero podemos tener un cierto grado de
fragmentacin interna, ya que los marcos se asignan como unidad y podran no estar completamente
llenos.
El sistema operativo debe ser consciente de los detalles relativos a la asignacin de la memoria
fsica; que marcos fueron asignados y cuales estn disponibles, cantidad total, etc. Esta informacin se
mantiene en la tabla de marcos, la cual tiene una entrada por cada marco fsico que indica si est libre
o asignado, y en caso de estar asignado a que pgina de qu proceso.
16. Segmentacin
La segmentacin es un caso particular del particionado variable o dinmico, divide el programa en
sus unidades lgicas (cdigo, pila, datos, etc....). El programa y sus datos se dividen en un nmero de
segmentos. No se requiere que todos los programas sean de la misma longitud, aunque hay una longitud
mxima de segmento. Una direccin lgica utilizando segmentacin est compuesta por dos partes, con
el formato (nro segmento, nro desplazamiento). Un programa podra ocupar ms de una particin y
estas particiones no necesitan ser contiguas. La segmentacin elimina la fragmentacin interna pero
sigue con el problema de la fragmentacin externa y una consecuencia de utilizar segmentos de diferentes
tamaos es que no hay una relacin simple entre direcciones lgicas y direcciones fsicas.
El mapeo se lleva a cabo mediante una tabla de segmentos, que generalmente tambin reside en
memoria. Cada entrada tiene una direccin base del segmento y un lmite del segmento. La direccin
base del segmento contiene la direccin fsica inicial del lugar donde el segmento reside dentro de la
memoria, mientras que el lmite especica su longitud y sirve para asegurar que no se utilicen direcciones
no vlidas.
Considere una direccin de n+m bits, donde los n bits de la izquierda corresponden al nmero de
segmento y los m bits de la derecha corresponden al desplazamiento, el tamao mximo del segmento
es 2m y se necesita llevar a cabo los siguientes pasos para la traduccin de direcciones:
Gutierrez Gonzalo E.
16 SEGMENTACIN 45
Utilizar el nmero de segmento como un indice a la tabla de segmentos del proceso para encontrar
la direccin fsica inicial del segmento.
Comparar el desplazamiento, expresado como los m bits de la derecha, a la longitud del segmento.
Si el desplazamiento es mayor o igual que la longitud, la direccin no es vlida.
Gutierrez Gonzalo E.
16 SEGMENTACIN 46
16.1. Proteccin
Para proteccin, en la paginacin se puede asociar un conjunto de bits a cada entrada de la tabla
de pginas:
bit de validez. Este bit indica si la pgina asociada est en el espacio de direcciones lgico del
proceso.
Gutierrez Gonzalo E.
17 INTRODUCCIN Y FUNDAMENTACIN 47
Memoria Virtual
17. Introduccin y fundamentacin
La memoria virtual es un mecanismo ms general para la ejecucin de programas no enteros en
memoria. Se basa en un sistema de paginacin o segmentacin en el que slo un subconjunto de
porciones estn cargadas en memoria principal. El resto reside en un dispositivo de almacenamiento
secundario como ser disco. La memoria virtual permite una programacin muy efectiva que libera al
usuario de las restricciones excesivamente fuertes de la memoria principal y permite abstraer la memoria
principal, transformndola en una matriz uniforme de gran tamao de posiciones de almacenamiento,
separando as la memoria lgica y fsica.
La memoria virtual se ocupa de la transferencia de informacin entre la memoria principal y la
secundaria. El espacio de direcciones virtuales de un proceso hace referencia a la forma
lgica (o virtual) de almacenar un proceso en memoria. Tpicamente, esta forma consiste en que el
proceso comienza en una cierta direccin lgica y est almacenado de forma contigua en la memoria.
La memoria fsica puede estar organizada en marcos de pginas y los marcos de pginas de un
proceso pueden no ser contiguos; es responsabilidad de la MMU de establecer la correspondencia
lgico-fsica.
La memoria virtual presenta, adicionalmente a su capacidad para ejecutar programas mayores que la
memoria fsica disponible, un conjunto interesante de ventajas respecto a la paginacin o segmentacin
con programas enteros:
Reduce la latencia en la ejecucin de los procesos al no tener que cargarse completamente los
mismos para comenzar a ejecutarse.
Permite gestionar ms ecientemente la memoria fsica. Cualquier espacio libre, incluso una
porcin, puede ser cargado para cargar un nuevo proceso y comenzar a ejecutarlo.
Se produce un aumento del grado de programacin al no ser necesario que todo el mapa de
memoria de un proceso est en memoria principal para poder ejecutarlo.
Adems de separar la memoria lgica de la fsica, la memoria virtual tambin permite que dos o ms
procesos compartan los archivos y memoria mediante mecanismos de comparacin de pginas. Esto
proporciona las siguientes ventajas:
Las bibliotecas del sistema pueden ser compartidas por numerosos procesos, mapeando el objeto
compartido sobre un espacio de direcciones virtuales.
Los procesos comparten los archivos y la memoria. Se puede compartir porciones durante la
creacin de procesos mediante la llamada al sistema fork(), lo que permite acelerar dicha creacin.
El buen rendimiento del sistema de memoria virtual est basado en que los procesos presentan la
propiedad de proximidad de referencias. Esta propiedad permite que un proceso genere muy
pocos fallos aunque tenga en memoria principal slo una parte de su imagen de memoria (conjunto
residente). El objetivo del sistema de memoria virtual es intentar que la informacin que est
usando un proceso en un determinado momento (conjunto de trabajo) est residente en memoria
principal. O sea, que el conjunto residente del proceso contenga a su conjunto de trabajo.
Gutierrez Gonzalo E.
18 PAGINACIN BAJO DEMANDA 48
Adems del soporte de hardware para la traduccin de direcciones de los sistemas paginados, la
memoria virtual requiere mecanismos hardware adicionales.
Bit de validez para cada tabla de pginas que indique si la pgina correspondiente est cargada
en memoria o no.
Trap de fallo de pginas. Cuando la pgina referenciada no est cargada en memoria, el mecanismo
de interrupciones produce un salto de rutina de tratamiento de fallo de pgina.
Informacin adicional para la gestin de fallo de pgina (bit de pgina modicada, referenciada,
. . .).
18.1. Paginacin6
En la presentacin de la paginacin sencilla, indicamos que cada proceso dispone de su propia tabla
de pginas y que todas las pginas se encuentran localizadas en la memoria principal. Para la memoria
virtual basada en el esquema de paginacin tambin se necesita una tabla de pginas, normalmente se
asocia una nica tabla de pginas a cada proceso y en este caso las entradas de la tabla de paginas
son ms complejas.
Debido a que slo algunas de las pginas de proceso se encuentran en la memoria principal, se
necesita que cada entrada de la tabla de pginas indique si la correspondiente pgina est presente en
la memoria principal o no. Para ello se emplea un bit de validez P; si el bit indica que la pgina est
en memoria, la entrada tambin debe indicar el nmero de marco de dicha pgina. En otras palabras,
cuando se congura este bit como vlido, la pgina asociada ser legal y adems se encontrar en
memoria. Si el bit se congura como invlido querr decir que o bien la pgina no es vlida (es decir,
6
El trmino memoria virtual se asocia habitualmente con sistemas que emplean paginacin, a pesar que la memoria
virtual es aplicable en sistemas basados con segmentacin.
Gutierrez Gonzalo E.
18 PAGINACIN BAJO DEMANDA 49
no se encuentra en el espacio lgico de direcciones del proceso) o es vlida pero est actualmente en
disco (fallo de pgina).
El hardware de paginacin, al traducir la direccin mediante la tabla de pgina, detectar que el
bit de pgina invlida est activado, provocando una interrupcin dirigida al sistema operativo. Esta
interrupcin se produce como resultado de que el sistema operativo no ha cargado anteriormente en
memoria la pgina deseada. El procedimiento para tratar este fallo de pgina es muy sencillo:
1. Comprobamos una tabla interna, usualmente se mantiene con el bloque de control del proceso
correspondiente a este proceso, para determinar si la referencia era un acceso a memoria vlido
o invlido.
2. Si la referencia era invlida, terminamos el proceso. Si era vlida pero esa pgina todava no ha
sido cargada, la cargamos en memoria.
4. Ordenamos una operacin de disco para leer la pgina deseada en el marco recin asignado.
5. Una vez completada la lectura de disco, modicamos la tabla interna que se mantiene con los
datos del proceso y la tabla de pginas para indicar que dicha pgina se encuentra ahora en
memoria.
6. Reiniciamos la instruccin que fue interrumpida. El proceso podr ahora acceder a la pgina
como si siempre hubiera estado en memoria.
La entrada de la tabla de pginas incluye un bit de modicacin M que indica si los contenidos de
la correspondiente pgina han sido alterados desde que la pgina se carg por ltima vez en memoria
principal. Si no haba ningn cambio, no es necesario escribir la pgina cuando llegue el momento de
remplazarla por otra pgina en el marco de pgina que actualmente ocupa.
La mayora de los esquemas de memoria virtual almacena las tablas de pginas en memoria virtual
en lugar de memoria real. Cuando un proceso est en ejecucin, al menos parte de dicha tabla se en-
cuentra en memoria, incluyendo la entrada de la tabla de pgina de aquella actualmente en ejecucin.
En la gura 18.2 se sugiere una implementacin de hardware de paginacin, el nmero de pgina de la
direccin virtual se utiliza para indexar la tabla y buscar el correspondiente marco de pgina que com-
binado con el desplazamiento de la direccin virtual generar la direccin real deseada. Normalmente
el campo correspondiente al nmero de pgina es mayor que el campo de correspondiente al nmero
de marco de pgina (n > m).
Gutierrez Gonzalo E.
18 PAGINACIN BAJO DEMANDA 50
Espacios lgicos independientes. Cada proceso tiene una tabla de pginas que crea un espacio
lgico independiente para el mismo. La tabla es, por tanto, una funcin de traduccin que hace
corresponder las pginas del mapa de memoria del proceso con los marcos que tiene asignados.
Compartir memoria. Bajo la supervisin del sistema operativo, que es el nico que puede manip-
ular las tablas de pginas, dos o ms procesos pueden tener una pgina asociada al mismo marco
de pgina.
Soporte de las regiones del proceso. La informacin de proteccin presente en cada entrada de
la tabla de pginas permite controlar que los accesos a la regin son del tipo que sta requiere.
Asimismo, la informacin de validez detecta cundo se intenta acceder a huecos dentro del mapa
del proceso y, adems, elimina la necesidad de gastar memoria fsica para estos huecos.
18.2. Segmentacin
Una referencia a la memoria consiste en un formato de direccin del tipo (nro de segmento, de-
splazamiento). Tal organizacin presenta las siguientes ventajas:
Simplicar el tratamiento de estructuras de datos que pueden crecer. Con la memoria virtual
segmentada, a una estructura de datos se le puede asignar su propio segmento y el sistema
operativo expandir o reducir el tamao de la misma.
En la exposicin de la segmentacin sencilla, indicamos que cada proceso tiene su propia tabla de
segmentos, y que cuando todos estos segmentos se han cargado en memoria principal, la tabla de
segmentos del proceso se crea y se carga tambin en memoria principal.
El mismo mecanismo se necesita cuando se est tratando esquema de memoria virtual basados en
segmentacin, lo habitual es que haya una nica tabla de segmentos por cada proceso. Cada entrada
Gutierrez Gonzalo E.
18 PAGINACIN BAJO DEMANDA 51
de esta tabla mantiene, adems de informacin de proteccin, el registro base y lmite correspondientes
a esa regin.
Debido a que slo algunos de los segmentos pueden encontrarse en la memoria principal, se nece-
sita un bit P en cada entrada de la tabla de segmentos para indicar si el correspondiente segmento se
encuentra presente en la memoria principal o no. Si dicho bit indica que el segmento est en memoria,
la entrada tambin debe incluir la direccin de comienzo y la longitud del mismo (similar al compor-
tamiento en paginacin).
Otro bit de control en la entrada de la tabla de segmentos es el bit de modicado, que indica si los
contenidos del segmento correspondiente se han modicado desde la ltima vez que se ha cargado en la
memoria principal. Si no hay ningn cambio, no es necesario escribir el segmento cuando se reemplace
de la memoria principal.
El mecanismo bsico para la lectura de una palabra de memoria implica la traduccin de una
direccin fsica, usando la tabla de segmentos. Debido a que la tabla de segmentos es de tamao
variable dependiendo del tamao del proceso, no se puede suponer que se encuentra almacenada en un
registro.
Cuando un proceso en particular est en ejecucin, un registro mantiene la direccin de comienzo de
la tabla de segmentos para dicho proceso. El nmero de segmento de la direccin virtual se utiliza para
indexar esta tabla y para buscar la direccin de la memoria principal donde comienza dicho segmento.
Esta es aadida a la parte de desplazamiento de la direccin virtual para producir la direccin real
solicitada.
Gutierrez Gonzalo E.
19 POLTICAS DE REMPLAZO DE PGINAS 52
Espacios lgicos independientes. Cada proceso tiene una tabla de segmentos que crea un espacio
lgico independiente para el mismo.
Compartir memoria. Bajo la supervisin del sistema operativo, que es el nico que puede manip-
ular las tablas de segmentos, dos o ms procesos pueden tener un segmento asociado a la misma
zona de memoria.
Maximizar el rendimiento. sta es una de sus deciencias. Por un lado, presenta fragmentacin
externa, por lo que no se obtiene un buen aprovechamiento de la memoria. Por otro lado, y ms
importante todava, esta tcnica no facilita la implementacin de esquemas de memoria virtual
debido al tamao variable de los segmentos.
1. Se selecciona la pgina vctima mediante un algoritmo de remplazo que ejecute una poltica de
remplazo determinada.
2. Si la pgina vctima haba sido modicada durante su estancia en memoria, hay que escribirla
en el dispositivo de paginacin, en caso contrario no es necesario. Para la gestin de pgina
modicada se usa el bit de pgina modicado para cada marco de pgina, que se activa cada vez
que accede a memoria para escritura.
Podemos evaluar un algoritmo ejecutndolo con una cadena concreta de referencia de memoria y
calculando el nmero de fallos de pgina. La cadena de referencias de memoria se denomina cadena de
referencia y es posible generar cadenas articialmente mediante implementacin de nmeros aleatorios.
Tan slo debemos considerar el nmero de pgina ms que la direccin completa. Por otra parte,
si tenemos una referencia a la pgina p, todas las referencias inmediatamente siguientes que se hagan
a la pgina p no producirn fallos de pginas.
Para determinar el nmero de fallos de pgina para una cadena de referencia concreta y un algoritmo
de sustitucin de pginas determinado, tambin necesitamos conocer el nmero de marcos disponibles,
lo ideal sera que a medida que el nmero de marcos aumenta, se reduce el nmero de fallos de pginas.
Gutierrez Gonzalo E.
19 POLTICAS DE REMPLAZO DE PGINAS 53
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
en donde se producen ms fallos de pginas con cuatro marcos que con tres (cosa que no debera ocurrir
en el caso esperado).
1. Mantener una lista encadenada de pginas ordenadas por el tiempo de su ltima referencia.
2. Mantener un contador de referencias y un registro (de al menos 64 bits) asociado a cada marco
de pgina, que se actualiza en una referencia con el valor del contador.
En ambos casos la implementacin es muy costosa, por lo que, como alternativa al algoritmo LRU
puro se utilizan aproximaciones. Un mecanismo de aproximacin consiste en almacenar el tick de reloj
en el que se produce la referencia en vez de la propia referencia, para lo que se requiere un bit de
referencia asociado a cada marco en base al cual la rutina de atencin al reloj puede determinar si la
pgina ha sido referenciada desde el tick anterior y actualizar el registro de ticks de ltima referencia
a la pgina, que puede implementarse por software. Algunos de los siguientes algoritmos tambin son
aproximaciones a LRU.
Gutierrez Gonzalo E.
19 POLTICAS DE REMPLAZO DE PGINAS 54
Se distingue entre pginas que han sido referenciadas y pginas que no lo han sido. Si siguiendo
un orden determinado, una pgina debera ser seleccionada como vctima y ha sido referenciada, se
deja en memoria, pero se marca como no referenciada. Ser candidata a pgina vctima en el prximo
fallo si no vuelve a ser referenciada antes. Se requiere un bit de referencia R por marco de pgina,
que se activa cuando se referencia la pgina. Si el valor es 0, sustituimos dicha pgina, pero si el bit
de referencia tiene el valor 1, damos a dicha pgina una segunda oportunidad, su bit de referencia se
borra y se elige la siguiente pgina de la FIFO. De este modo, si una pgina se utiliza frecuentemente
su bit de referencia permanecer activado y la pgina nunca ser sustituida.
La poltica de la segunda oportunidad se puede implementar mediante una cola circular (algoritmo
del reloj); los marcos se organizan en orden circular con un puntero a uno de ellos para indicar cul es
la siguiente pgina a sustituir. Cuando ocurre un fallo, el puntero avanza hasta encontrar una pgina
con bit de referencia 0, se sustituye la pgina y se coloca en dicha posicin la nueva pgina.
El peor de los casos sera cuando todas las pginas tienen referencia igual a 1, que los ir cambiando
y recorriendo la cola hasta encontrar en una prxima vuelta la pgina a sustituir (degeneracin al
algoritmo FIFO).
19.5. NRU
Se elige como pgina vctima una no usada recientemente. Se mantienen dos bits por pgina:
R referenciada/no referenciada
M modicada/no modicada
Cuando una pgina se carga, sus bits R y M se ponen a cero. El bit R de una pgina se activa cuando
sta se referencia. El bit M se activa si la referencia es para escritura. Peridicamente (por ejemplo,
con cada tick de reloj), todos los bits R se ponen a cero.
Consiste en considerar tanto el bit de referencia como el bit de modicacin como un par ordenado.
Obteniendo los 4 siguientes casos:
(0, 1). No se uso pero se modico, hay que escribirla en disco antes de reemplazarla por lo cual
no es tan buena.
(1, 1). Se uso y se modico, se va a usar probablemente pronto y ser necesario escribirla antes
de reemplazarla.
Entre pginas de una misma categora puede aplicarse cualquier criterio de eleccin. Presenta el prob-
lema de que en los momentos inmediatamente posteriores a la puesta a cero del bit R incluso pginas
que estn siendo actualmente referenciadas son susceptibles de ser elegidas como vctimas.
Algoritmo LFU. Se elige la menos frecuentemente usada (least frecuently used) es decir, el de
cuenta ms baja. No es eciente en el caso de pginas que se usaron mucho al comienzo del
proceso, y luego no se volvieron a usar (tienen cuenta alta).
Gutierrez Gonzalo E.
19 POLTICAS DE REMPLAZO DE PGINAS 55
19.7. NFU
En el algoritmo NFU (pgina no referenciada frecuentemente), se establece si en un intervalo de
tiempo (por ejemplo, un tick de reloj) una pgina ha sido o no referenciada. Se lleva la cuenta del
nmero de intervalos que cada pgina ha sido referenciada, eligiendo como vctima la de cuenta ms
baja.
Para cada pgina se requiere, adems del bit R que se activa en cada referencia, un contador. En
cada tick de reloj, para cada pgina, el bit R se acumula en el contador. Comparado con LRU puro,
en NFU los contadores se incrementan con mucha menor frecuencia, por lo que es implementable en
software. NFU, al recordar todas las referencias, hace que pginas que se han usado mucho en un pasado
lejano permanecen en memoria por delante de pginas que estn comenzando a usarse intensamente
en el momento del fallo.
19.7.1. Envejecimiento
Como una mejora de NFU, se puede introducir un parmetro de olvido (o envejecimiento) sobre
las referencias pasadas. Un mecanismo para implementar el envejecimiento consiste en desplazar los
contadores un bit a la derecha en cada tick de reloj, introduciendo el bit R por la izquierda. De esta
forma, una pgina referenciada durante el ltimo tick permanecer en memoria sobre cualquiera que
no lo haya sido.
Gutierrez Gonzalo E.
20 ARCHIVOS 56
Gestin de Almacenamiento
20. Archivos
Un archivo es bsicamente una coleccin de informacin relacionada, con nombre, y que se graba en
un dispositivo de almacenamiento secundario. En general, un archivo es una secuencia de bits, bytes,
lineas o registros cuyo signicado est denido por el creador y el usuario del archivo, adems un
archivo tendr una determinada estructura dependiendo de su tipo.
ID (etiqueta unvoca, usualmente un nmero que identica el archivo dentro del sistema de
archivos),
Tipo,
Tamao,
Escritura de un archivo: el Sistemas Operativos debe mantener un puntero de escritura que haga
referencia a la ubicacin dentro del archivo en la que debe tener lugar la siguiente escritura. El
puntero de escritura debe actualizarse cada vez que se escriba en el archivo informacin nueva.
Lectura de un archivo: el Sistemas Operativos deber mantener un puntero de lectura que haga
referencia a la ubicacin dentro del archivo en la que tiene lugar la siguiente lectura. Las opera-
ciones de lectura y escritura utilizan el mismo puntero, ahorrando as espacio y reduciendo la
complejidad del sistema.
Borrado de un archivo: liberamos todo el espacio del archivo, de modo que pueda ser reutilizado
por otros y tambin se borra su respectiva entrada en el directorio.
La gran mayora de estas operaciones implican realizar bsquedas sobre directorios para encontrar
la entrada asociada al nombre del archivo especicado. Para ello el sistema operativo mantiene una
tabla de archivos abiertos que contiene informacin acerca de los archivos abiertos junto con
otra informacin como ser propietario, ubicacin, tamao, etc. Al solicitar realizar una operacin sobre
un archivo, se especica mediante un ndice en la tabla y una vez cerrado el archivo se elimina de la
tabla la entrada correspondiente.
Gutierrez Gonzalo E.
22 ESTRUCTURAS DE DIRECTORIOS 57
Una tcnica comn para implementar los tipos de archivos consiste en incluirlo como parte del
nombre. El nombre se divide en dos partes: nombre del archivo y extensin, usualmente separadas por
un punto. Estas extensiones no son obligatorias, si el usuario no la especica, la aplicacin buscar
la extensin necesaria. El sistema UNIX utiliza un simple nmero mgico almacenado al principio de
algunos archivos para indicar aproximadamente su tipo.
Los tipos de archivos tambin pueden ser usados para indicar una estructura interna del archivo. Por
ejemplo los archivos fuentes y objetos tienen estructuras que cumplen las espectativas de los programas
que permiten leer los mismos. Adems ciertos archivos pueden tener cierta estructura impuesta por el
sistema operativo, por ejemplo, el sistema operativo puede requerir que un archivo ejecutable tenga una
estructura especica tal que permita asignarse en memoria y determinar la localizacin de la primera
instruccin.
1. Acceso secuencial: la informacin del archivo se procesa por orden, un registro despus del
otro (propios de editores y compiladores).
2. Acceso directo: un archivo est compuesto de registros lgicos de longitud ja que permiten
a los programas leer y escribir los registros del archivo rpidamente, sin orden concreto. Al
considerar un archivo como una secuencia numerada de registros o bloques, las operaciones de
archivo deben modicarse para incluir el nmero de bloque como parmetro, dicho nmero es
proporcionado por el usuario al sistema operativo (nmero de bloque relativo) y es un
ndice que permite al sistema operativo decidir donde colocar el archivo.
Gutierrez Gonzalo E.
22 ESTRUCTURAS DE DIRECTORIOS 58
22.2. Directorios
Un directorio puede considerarse como una tabla de smbolos que traduce el nombre de archivo
a sus correspondientes estradas de directorio. El directorio contiene informacin sobre los archivos
(nombre, ubicacin, tamao, tipo,...) y es propiamente un archivo, posedo por el sistema operativo y
accesible a travs de diversas rutinas de gestin de archivos. Un directorio normalmente contiene varias
entradas, una por archivo y las operaciones que habr que realizar con un directorio son:
Bsqueda de un archivo,
Creacin de un archivo,
Borrar un archivo,
Listar un directorio,
Renombrar un archivo
El modelo ms simple es aquel en que el sistema mantiene un solo directorio que contiene todos
los archivos de todos los usuarios. Tiene limitaciones signicativas cuando el nmero de archivos se
incrementa o el sistema tiene ms de un usuario; si estos escogen los mismos nombres de archivos, los
conictos aparecen (no hay unicidad en los nombres) y el sistema se vuelve inmanejable.
Para eliminar el conicto de los nombres, cada usuario tiene su propio directorio de archivos de
usuario UFD (User File Directory). Cuando un trabajo de un usuario se inicia o un usuario se
conecta al sistema, se explora el directorio maestro de archivos MFD (Master File Directory)
del sistema, el cual est indexado por el nombre de usuario o nmero de cuenta y cada una de sus
entradas apunta al UFD correspondiente. Cuando un usuario hace referencia a un archivo concreto,
slo se explora su propio UFD.
Esta estructura resuelve la colisin de nombres pero asla a los usuarios, lo cual puede llegar a
ser una desventaja cuando quieran cooperar en una cierta tarea y acceder a los archivos de otros.
Para designar un archivo de manera unvoca el usuario debe especicar su nombre de ruta (nombre
de usuario+nombre de archivo). Se dene un directorio de usuario especial para contener los archivos
del sistema. Cada vez que se proporciona un nombre de archivo para cargarlo, el Sistemas Operativos
analiza el UFD local; si encuentra all el archivo, lo utiliza, sino, explora automticamente aquel
directorio especial.
Con este enfoque, cada usuario puede tener tantos directorios como necesite para agrupar sus
archivos. Los nombres de ruta pueden ser absolutos o relativos. Un nombre de ruta absoluto comienza
Gutierrez Gonzalo E.
22 ESTRUCTURAS DE DIRECTORIOS 59
en la raz y sigue una ruta descendente hasta el archivo especicado, indicando el nombre de los
directorios que componen la ruta. Un nombre de ruta relativo dene una ruta a partir del directorio
actual. Con un sistema de directorios con estructura de rbol, podemos permitir que los usuarios
accedan a los archivos de otros usuarios, utilizando nombres de ruta absolutos, adems de acceder a
los suyos propios mediante rutas relativas.
Un grafo acclico permite que los directorios compartan archivos y subdirectorios de archivos. Es una
generalizacin natural del esquema de directorios con estructura de rbol. Los archivos y subdirectorios
compartidos pueden implementarse de diversas maneras. Una forma bastante comn (usada en UNIX)
consiste en crear una nueva entrada de directorio, link, que es un puntero a otro archivo o subdirectorio.
Para resolver el enlace, se utiliza el nombre de ruta con el n de localizar el archivo real y el borrado
de un enlace no tiene porqu afectar al archivo original, ya que slo se elimina el enlace. Si lo que se
elimina es la propia entrada del archivo, se desasignar el espacio del archivo y los enlaces se colgarn.
Otra tcnica comn consiste en la duplicacin de la informacin compartida.
Tambin se puede preservar el archivo hasta que se borren todas las referencias a l. Cuando se
borra un enlace o una entrada de directorio, eliminamos la correspondiente entrada de la lista. El
archivo se borrar cuando se vace su lista de referencias al archivo.
Si se permiten ciclos en un directorio, hay que evitar que se busque cualquier componente dos
veces, por razones de correccin y rendimiento. Una solucin es limitar arbitrariamente el nmero de
directorios a los que se acceder durante la bsqueda. Un problema similar existe para determinar si un
archivo puede ser borrado. Generalmente, necesitamos utilizar un esquema de recoleccin de memoria
para determinar cuando se borr la ltima referencia para reasignar el espacio en disco. sto implica
recorrer todo el sistema de archivos, marcando todos los elementos a los que se pueda acceder, y en una
segunda pasada recopilar todo lo que no est marcado, incluyndolo en una lista de espacio libre; pero
consume mucho tiempo y raramente se utiliza. Por lo tanto, es ms sencillo trabajar con directorios
acclico.
Gutierrez Gonzalo E.
23 COMPARTICIN DE ARCHIVOS 60
Adems, la estructura de directorios puede estar formada por varios volmenes o particiones, que
pueden montarse para que estn disponibles dentro del espacio de nombres del sistema de archivos. La
particin raiz es la que contiene el kernel del sistema operativo y se monta en el momento de arranque,
otras particiones pueden montarse posteriormente.
Para ello, al Sistema Operativo se le proporciona el nombre del dispositivo y el punto de montaje
que es la ubicacin dentro de la estructura de archivos a la que hay que conectar el sistema de archivos
que se est montando. A continuacin, el Sistema Operativo verica que el dispositivo contiene un
sistema de archivos vlido. Para ello, el controlador del dispositivo verica que el formato del sistema
de archivos sea el esperado. Finalmente, el Sistema Operativo registra en su estructura de directorios o
tabla de montajes que hay un sistema de archivos montado en el punto especicado (letras de unidad
en Windows).
Gutierrez Gonzalo E.
24 ESTRUCTURA DE SISTEMAS DE ARCHIVOS. 61
Semntica de UNIX:
las escrituras en un archivo abierto por parte de un usuario son visibles inmediatamente
para los otros usuarios que hayan abierto ese archivo.
Semntica de seccin
las escrituras en un archivo abierto por parte de un usuario no son visibles inmediatamente
para los restantes que hayan abierto el mismo archivo.
Una vez que se cierra un archivo, los cambios realizados son visibles nicamente en las
sesiones que den inicio posteriormente.
Semntica de archivos compartidos inmutables: una vez que un archivo es declarado como com-
partido por su creador, no puede ser modicado. Slo su nombre puede reutilizarse.
23.1. Proteccin.
El acceso depende de la identidad del usuario. Consiste en asociar con cada archivo y directorio
una lista de control de acceso ACL (Access-Control List) que especique los nombres de
usuario y los tipos de accesos permitidos para cada uno, el problema principal con stas listas es su
longitud. Esto puede resolverse utilizando una versin condensada de la lista de acceso, clasicando
para ello a los usuarios en tres grupos:
Grupo: conjunto de usuarios que estn compartiendo el archivo y necesitan un acceso similar.
Otras tcnicas de proteccin consisten en asociar una contrasea con cada archivo. Al igual que el
acceso al sistema informtico suele controlarse mediante una contrasea, el acceso a cada archivo
puede controlarse de la misma manera. El problema esta en recordar las contraseas y que si hay una
sola, el mecanismo de proteccin deja de ser efectivo al ser descubierta.
puede ser reescrito de manera directa; es posible leer, modicar y volver a escribir en un bloque
del disco.
Se puede acceder directamente a cualquier bloque de informacin que contenga. Por tanto, resulta
simple acceder a cualquier archivo de forma secuencial aleatoria y conmutar de un archivo a otro
slo requiere mover los cabezales y esperar a que el disco termine de rotar.
En lugar de transferir un byte cada vez, las transferencias de E/S entre la memoria y el disco se realizan
en unidades de bloques para mejorar la eciencia, dividiendo a su vez cada bloque en sectores. Para
proporcionar un acceso eciente y cmodo al disco el Sistemas Operativos impone uno o ms sistemas
de archivos. Un sistema de archivos tiene dos problemas de diseo:
Gutierrez Gonzalo E.
24 ESTRUCTURA DE SISTEMAS DE ARCHIVOS. 62
Crear algoritmos y estructuras de datos que permitan mapear el sistema lgico de archivos sobre
los dispositivos fsicos de almacenamiento secundario.
El propio sistema de archivos est compuesto de muchos niveles diferentes. Cada nivel de diseo utiliza
la funciones de los niveles inferiores para crear nuevas funciones que sern a su vez utilizadas por los
niveles superiores a ese. El nivel ms bajo, control de E/S, est compuesto por controladores de
dispositivo y rutinas de tratamiento de interrupcin, que se encargan de transferir la informacin entre
la memoria principal y el sistema de disco. El sistema bsico de archivo slo necesita enviar
comando genricos al controlador de dispositivo apropiado, con el n de leer y escribir los bloques
fsicos (identicados mediante su direccin de disco numrica). El mdulo de organizacin de
archivos tiene conocimiento acerca de los archivos y sus bloques lgicos, as como fsicos. Puesto que
los bloques fsicos contienen los datos no suelen corresponderse con los nmeros de bloques lgicos, es
necesario una tarea de localizacin. Este mdulo tambin incluye el gestor de espacio libre, que
controla los bloques no asignados y los proporciona al modulo de organizacin de archivos cuando se
solicitan. Finalmente, el sistema lgico de archivos gestiona la informacin de metadatos. Mantiene la
estructura de los archivos mediante bloques de control de archivo FCB (File-Control Block), tambin
es responsable de las tareas de proteccin y seguridad.
UNIX utiliza su propio sistema de archivos que est basado en FFS (Fast File System) de Berkeley,
Windows soporta formatos de sistemas de archivos de disco FAT, FAT32 y NTFS, adems de formatos
de sistemas de archivos para CD-ROM, DVD y disquete. El sistema de archivos estndar en Linux se
denomina sistema de archivos extendido: ext2, ext3 y ext4.
Bloque de Control de Arraque: (por cada volumen) puede contener la informacin que un sistema
necesita para iniciar el Sistemas Operativos a partir de dicho volumen. Si el disco no contiene un
Sistemas Operativos, puede estar vaco, normalmente ser el primer bloque del volumen. En UFS
(Unix File System), se denomina bloque de inicio. En NTFS, sector de arranque de la particin.
Bloque de Control de Volumen: (por cada volumen) contiene detalles a cerca del volumen o
particin, tales como cantidad y tamao de los bloques, punteros a los que estn libres, un
contador de bloques de informacin FCB libres y punteros FCB. En UFS esto se denomina
superbloque, en NTFS tabla maestra de archivos.
Un bloque FTB por cada archivo contiene detalles como los permisos, propietario, tamao y
la ubicacin de los bloques de datos. En UFS esta estructura se llama inodo, en NTFS esta
informacin se almacena en la tabla maestra de archivos.
Gutierrez Gonzalo E.
24 ESTRUCTURA DE SISTEMAS DE ARCHIVOS. 63
Separa las operaciones genricas del sistema de archivos con respecto a su implementacin,
deniendo una interfaz VFS clara, que permite un acceso transparente a diferentes tipos de
sistemas de archivos montados localmente.
Proporciona un mecanismo para representar de forma coherente los archivos a travs de una red.
El VFS est basado en una estructura de representacin de archivos llamada vnodo, que contiene
un designador numrico para los archivos unvocamente identicables dentro de la red.
1. Lista lineal: es el mtodo ms simple para implementar un directorio, consiste en utilizar una
lista lineal de nombres de archivos y con punteros a los bloques de datos. Durante la creacin es
necesario vericar que en el directorio no exista el archivo que se desea crear y para el borrado
simplemente exploramos el directorio en busca del archivo y liberamos el espacio asignado. La
principal desventaja de una lista lineal de entradas para un directorio es realizar una bsqueda
lineal para buscar un archivo, provocando como consecuencia un acceso lento a la informacin.
2. Tabla Hash: Con este mtodo se almacenan las entradas de directorios en una lista lineal, pero
tambin se utiliza una estructura de datos hash. La tabla hash toma un valor calculado a partir
del nombre del archivo y devuelve un puntero de ubicacin de dicho nombre de archivo dentro
de la lista lineal, reduciendo el tiempo de bsqueda de los mismos. Sin embargo, la principal
dicultad con las tablas hash son que su tamao, por regla general, es jo y la funcin de la tabla
hash depende del tamao.
Como se ha mencionado, el principal problema es como asignar los bloques del disco a los archivos
de tal modo que el espacio de disco se utilice ecazmente y permita un acceso rpido. A continuacin
se presenta algunas polticas de asignacin y lo deseable es que un sistema operativo utilice una sola
poltica de asignacin.
Este mtodo almacena cada archivo como un conjunto de bloques contiguos de datos en el disco.
Est denida por la asignacin de disco del primer bloque y por la longitud del archivo (en unidades
de bloques). As, en un disco con bloques de 1K , a un archivo de 50K se le asignaran 50 bloques
consecutivos.
Para el acceso secuencial , el sistema de archivos recuerda la direccin de disco del ltimo bloque al
que se haya hecho referencia y leer el siguiente cuando sea necesario. Para el acceso directo al bloque i
de un archivo que comienza en el bloque b, podemos acceder directamente al bloque b+ i. Este esquema
presenta dos ventajas:
1. La implementacin es sencilla porque para saber donde estn los bloques de un archivo basta
con recordar un nmero, la direccin en disco del primer bloque.
2. El rendimiento es excelente porque es posible leer todo el archivo del disco en una sola operacin.
Gutierrez Gonzalo E.
24 ESTRUCTURA DE SISTEMAS DE ARCHIVOS. 64
2. La fragmentacin en el disco. Se desperdicia espacio que de otra forma podra haberse aprovecha-
do. La compactacin del disco suele tener un costo prohibido, aunque tal vez pueda efectuarse
en horarios donde el sistema est ocioso.
Para minimizar aquellos problemas, algunos Sistemas Operativos utilizan un esquema modicado,
mediante el que se asigna inicialmente un bloque contiguo de espacio y, posteriormente, si no resulta
ser lo sucientemente grande, se aade otra rea contigua denominada extensin. La ubicacin de los
bloques de un archivo se registra mediante una direccin y un nmero de bloques, junto con el enlace
al primer bloque de la siguiente extensin.
Este mtodo guarda cada archivo como una lista enlazada de bloques de disco, pudiendo estar los
bloques dispersos por todo el disco. La primera palabra de cada bloque se emplea como apuntador al
siguiente. El resto del bloque se destina a datos. Con este mtodo es posible utilizar todos los bloques
y no se pierden espacio por fragmentacin del disco (excepto por fragmentacin interna en el ltimo
bloque), adems, basta con que en la entrada de directorio se almacene la direccin en disco del primer
bloque. El resto del archivo puede encontrarse siguiendo los enlaces. Para encontrar el bloque i-simo
de un archivo, podemos comenzar al principio de dicho archivo y seguir los punteros hasta llegar al
bloque deseado.
El principal problema es que slo se puede utilizar ecazmente para los archivos de acceso secuencial.
Otra desventaja es el espacio requerido para los punteros. La solucin usual para este problema consiste
en consolidar los bloques en grupos, denominados clusters, y asignar clusters en lugar de bloques.
Adems, una desventaja ms es que el acceso aleatorio es extremadamente lenta. Una variante
importante del mecanismo de asignacin enlazada es la que se basa en el uso de una tabla de asignacin
de archivos FAT (File-Allocation Table). Una seccin del disco al principio de cada volumen se reserva
para almacenar esa tabla, que tiene una entrada por cada bloque del disco y est indexada segn el
nmero de bloque. La FAT se utiliza de forma bastante similar a una lista enlazada. Cada entrada de
directorio contiene el nmero de bloque del primer bloque del archivo. La entrada de la tabla indexada
segn ese nmero que contiene el nmero del siguiente bloque del archivo.
Gutierrez Gonzalo E.
24 ESTRUCTURA DE SISTEMAS DE ARCHIVOS. 65
Las dos desventajas de la asignacin por lista enlazada puede eliminarse si se toma la palabra de
apuntador de cada bloque y se le coloca en una tabla o ndice en la memoria. En la siguiente gura, el
archivo A usa los bloques de disco 4,7,2,10,12 en ese orden y el archivo B usa los bloques 6,3,11,14 en
ese orden
Figura 24.2: Asignacin por lista enlazada empleando una tabla en memoria principal
Si se emplea esta organizacin, todo el bloque est disponible para datos. Adems, el acceso directo
es mucho ms fcil. Aunque todava hay que seguir la cadena para encontrar una distancia dada dentro
de un archivo, la cadena est por completo en la memoria y puede seguirse sin tener que consultar el
disco. Basta con guardar el nmero de bloque inicial en la entrada de directorio para poder localizar
todos los bloques, por ms grande que sea el archivo. MS-DOS emplea este mtodo para la asignacin
en disco. La desventaja primordial de este mtodo es que toda la tabla debe estar en la memoria todo
el tiempo para que funcione.
Si no se utiliza una FAT, la asignacin enlazada no puede soportar un acceso directo eciente, ya
que los punteros de los bloques estn dispersos junto con los propios bloques por todo el disco y deben
extraerse secuencialmente. El mecanismo de asignacin indexada resuelve este problema agrupando
todos los punteros en una nica ubicacin: el bloque de ndice. Cada archivo tiene su propio bloque
de ndice, que es una matriz de direcciones de bloques de disco. La entrada i-sima apunta al bloque
i-simo.
El directorio contiene la direccin del bloque de ndice. Para localizar y leer el bloque i-simo,
utilizamos el puntero contenido en la entrada i-sima del bloque de ndice. Este esquema es similar
a la Paginacin. Soporta el acceso directo, sin sufrir fragmentacin externa, ya que puede utilizarse
cualquier bloque del disco para satisfacer una solicitud de ms espacio. Entre los mecanismos para
determinar el tamao del bloque de ndice estn:
ndice multinivel: consiste en utilizar un bloque de ndice de primer nivel para apuntar a un
conjunto de bloques de ndice de segundo nivel, que a su vez, apuntaran a los bloques de archivo.
Esquema Combinado: utilizado en UFS, los primeros 15 punteros del bloque indican el ndice en
el nodo del archivo. Los primeros 12 hacen referencia a los bloques directos (contienen direcciones
de una serie de bloques que almacenan datos del archivo) y los 3 restantes hacen referencia a
Gutierrez Gonzalo E.
24 ESTRUCTURA DE SISTEMAS DE ARCHIVOS. 66
bloques indirectos (contiene direcciones de bloques que almacenan direcciones a punteros propios
de los bloques de datos).
24.2.5. Nodos-i
Considere en asociar a cada archivo una pequea tabla llamada nodo-i (nodo ndice), que lista los
atributos y las direcciones en disco de los bloques del archivo. Las primeras pocas direcciones de disco
se almacenan en el nodo-i mismo, as que en el caso de archivos pequeos toda la informacin esta
contenida en el nodo-i, que se trae del disco a la memoria principal cuando se abre el archivo. En el
caso de archivos mas grandes, una de las direcciones del nodo-i es la direccin de un bloque de disco
llamado bloque de indireccin sencilla. Este bloque contiene direcciones de disco adicionales. Si esto
todava no es suciente, otra direccin del nodo-i, llamada bloque de indireccin doble, contiene la
direccin de un bloque que contiene una lista de bloques de indireccin sencilla. Cada uno de estos
bloques de indireccin sencilla apunta a unos cuantos cientos de bloques de datos. Si ni siquiera con
esto basta, se puede usar tambin un bloque de direccin triple. UNIX emplea este esquema.
Antes de poder leer un archivo, hay que abrirlo. Cuando se abre un archivo, el sistema operativo usa
el nombre de ruta proporcionado por el usuario para localizar la entrada de directorio. Esta entrada
proporciona la informacin necesaria para encontrar los bloques de disco. La funcin principal del
sistema de directorios es transformar el nombre ASCII del archivo en la informacin necesaria para
localizar los datos. Un problema muy relacionado con el anterior es dnde deben almacenarse los
atributos. Una posibilidad obvia es almacenarlos directamente en la entrada de directorio. En el caso
de sistemas que usan nodos-i, otra posibilidad es almacenar los atributos en el nodo-i, en lugar de en
la entrada de directorio.
Gutierrez Gonzalo E.
24 ESTRUCTURA DE SISTEMAS DE ARCHIVOS. 67
En este sistema, slo hay un directorio, as que todo lo que el sistema de archivos tiene que hacer
para consultar un nombre de archivo es buscarlo en el nico directorio. Una vez que encuentra la
entrada, tambin tiene los nmeros de bloques de disco, ya que estn almacenados en la entrada, lo
mismo que todos los atributos. Si el archivo ocupa ms bloques de disco de los que caben en una
entrada, se asignan al archivo entradas de directorio adicionales.
El campo alcance (extent) es necesario porque un archivo con ms de 16 bloques ocupa mltiples
entradas de directorios. Este campo sirve para saber cul entrada es primero, cul segunda, etc. El
campo de cuenta de bloque indica cuantas de las 16 posibles entradas de bloques se estn usando. Los
ltimos 16 campos contienen los nmeros de bloque de disco mismo.
2. Lista Enlazada: consiste en enlazar todos los bloques de disco libres manteniendo un puntero
al primer bloque libre en ubicacin espacial del disco y almacenndolo en la memoria cach. El
primer bloque contendr un puntero al siguiente bloque libre.
4. Recuento: podemos mantener la direccin del primer bloque libre y el nmero n de bloques
libres contiguos que siguen a l. Cada entrada de la lista de espacio libre estar compuesta por
una direccin de disco y un contador. Aunque cada entrada requiere ms espacio de lo que hara
falta con una simple direccin de disco, la lista global ser ms corta, siempre y cuando el valor
de ese contador sea generalmente superior a 1.
24.4. Recuperacin
Comprobacin de Coherencia:
Parte de la informacin de directorios se almacena en la memoria principal o cach para acelerar el
acceso. La informacin de directorios en la memoria principal est ms actualizada que la correspon-
diente en el disco. El comprobador de coherencia compara los datos de la estructura de directorios con
los bloques de datos en disco y trata de corregir todas las incoherencias detectadas. Los algoritmos de
asignacin y gestin del espacio libre dictan los tipos de problemas que el comprobador puede tratar de
Gutierrez Gonzalo E.
24 ESTRUCTURA DE SISTEMAS DE ARCHIVOS. 68
detectar y el grado de xito que puede tener. La prdida de una entrada de directorio en un sistema de
asignacin indexada puede ser desastrosa, porque los bloques de datos no tienen ningn conocimiento
acerca de los dems bloques de archivos.
Copia de Seguridad y Restauracin:
La recuperacin de la prdida de un archivo individual o de un disco completo puede ser cuestin de
restaurar los datos a partir de una copia de seguridad. Para minimizar la cantidad de datos que haya
que copiar, podemos utilizar la informacin contenida en la entrada de directorio de cada archivo. Por
ejemplo, el programa de copia de seguridad sabe cuando se realiz la ltima copia de seguridad de un
archivo y la fecha de la ltima modicacin del archivo contenida en el directorio indica que el archivo
no ha cambiado desde esa fecha, no ser necesario volver a copiar el archivo. As un plan tpico de
seguridad podra ser:
Da 1: copia de seguridad completa (copiar en el soporte de copia de seguridad todos los archivos
del disco).
Da 2: copia de seguridad incremental (copiar en otro soporte fsico todos los archivos que se
hayan modicado desde el da 1).
Da n: copiar en otro soporte fsico todos los archivos modicados desde el da n-1.
Gutierrez Gonzalo E.
25 ESTRUCTURAS DE ALMACENAMIENTO MASIVO 69
la correspondiente llamada RPC y se reenva al servidor de montaje que se est ejecutando sobre
la mquina servidora especicada. El servidor mantiene una lista de exportacin que especica los
sistemas de archivos locales que est exportando para montaje remoto con los nombres de las mquinas
autorizadas a montarlos. El servidor tambin mantiene una lista de mquinas cliente y de los directorios
actualmente montados correspondientes a cada una.
El protocolo NFS proporciona un conjunto de llamadas RPC que soportan:
bsqueda de un archivo en un directorio,
lectura de un conjunto de entradas de directorio,
manipulacin de enlaces y directorios,
acceso a los atributos de un archivo,
lectura y escritura de archivos.
Una caracterstica importante de los servidores NFS es que no tienen memoria de estado, no mantienen
informacin de sus clientes entre un acceso y otro. Cada solicitud debe proporcionar un conjunto
completo de argumentos, incluyendo un identicador unvoco de archivo y un desplazamiento absoluto
dentro de l para realizar las operaciones apropiadas. Toda solicitud de NFS tiene un nmero de
secuencia, que permite al servidor determinar si una solicitud est duplicada o si le falta alguna
solicitud. No proporciona mecanismos de control de concurrencia y se encuadra en el Sistema Operativo
mediante un VFS que identica el archivo como remoto e invoca el procedimiento NFS apropiado.
Gutierrez Gonzalo E.
25 ESTRUCTURAS DE ALMACENAMIENTO MASIVO 70
tiempo requerido para que el sector deseado rote hasta pasar por debajo del cabezal del disco,
denominado latencia rotacional.
Un disco puede ser extrable como por ejemplo un disquete. Para conectar una unidad de disco con
la computadora se usa un conjunto de cable denominado bus de E/S. Las transferencias de datos en
un bus son realizadas por procesadores electrnicos denominados controladores. La controladora host
est situada en el extremo del bus correspondiente a la computadora y en cada unidad de disco se
integra una controladora de disco. Para realizar una operacin E/S de disco, la computadora coloca
un comando en la controladora host utilizando puertos de E/S mapeados en memoria, el comando se
enva mediante una serie de mensajes a la controladora de disco y sta hace operar el hard de la unidad
de disco para ejecutar el comando.
Gutierrez Gonzalo E.
25 ESTRUCTURAS DE ALMACENAMIENTO MASIVO 71
Planicacin SSTF (Shortest Seek Time First): consiste en satisfacer todas las solicitudes prx-
imas a la situacin actual del cabezal antes de desplazarlo hacia una posicin alejada para dar
servicio a otras solicitudes. Se selecciona la solicitud con tiempo mnimo de bsqueda con respec-
to a la posicin actual del cabezal. Al igual que la planicacin SJF (Shortest Job First) puede
provocar muerte por inanicin de algunas solicitudes.
Planicacin SCAN (o algoritmo de exploracin): el grafo del disco comienza en uno de los
extremos del disco comienza en uno de los extremos del disco y se mueve hacia el otro, dando
servicio a las solicitudes a medida que pasa por el cilindro. En ese otro extremo del disco se
invierte la direccin de movimiento del cabezal y se contina dando servicio a las solicitudes.
Algoritmo C-SCAN (planicacin SCAN cirular): cuando el cabezal alcanza el otro extremo,
vuelve inmediatamente al principio del disco sin dar servicio a ninguna solicitud en el viaje de
vuelta.
Planicacin LOOK: se observa si hay alguna solicitud antes de continuar movindose en una
direccin determinada.
Gutierrez Gonzalo E.
25 ESTRUCTURAS DE ALMACENAMIENTO MASIVO 72
Bloques Defectuosos: la mayora de los discos vienen, incluso de fbrica, con una serie
de bloques defectuosos, que la controladora mantiene en una lista. Esta lista se inicializa durante el
formateo de bajo nivel y se actualiza a lo largo de toda la vida del disco. El formateo de bajo nivel
tambin reserva una serie de sectores no visibles para el Sistemas Operativos, con los que puede sustituir
los defectuosos. Este se denomina reserva de sectores o sustitucin de sectores. Como alternativa a este
mecanismo, algunas controladoras ofrecen la posibilidad de sustituir un bloque defectuoso mediante
un deslizamiento de sectores a partir del prximo bloque reservado en adelante.
La utilizacin del Espacio de Intercambio se utiliza de distintas formas dependiendo de los al-
goritmos de gestin de memoria que aplica el Sistemas Operativos. Por ejemplo, los sistemas que
implementan el mecanismo de intercambio lo usan para guardar la imagen completa de un proceso,
los sistemas paginados almacenan simplemente las pginas que hayan sido expulsadas de memoria
principal. Por lo tanto, la cantidad de espacio de intercambio es variable. La ubicacin del Espacio
de Intercambio puede residir en una particin separada del disco o construirse a partir del sistema de
archivos normal. Si el espacio de intercambio se crea en una particin sin formato separada, se utiliza
un gestor de almacenamiento independiente para el espacio de intercambio, con el n de asignar y de-
sasignar los bloques de dicha particin. Este gestor utiliza algoritmos optimizados, para obtener mayor
velocidad debido a que el espacio de intercambio tiene acceso frecuente. Este espacio se reinicializa en
el momento del arranque de la mquina, por lo que cualquier fragmentacin que exista es a corto plazo.
Gutierrez Gonzalo E.
25 ESTRUCTURAS DE ALMACENAMIENTO MASIVO 73
Nivel 0 : hace transferencias a matrices de discos con distribucin de bandas en el nivel de bloques,
pero sin ninguna redundancia.
Nivel 2 : conocido como organizacin con cdigo de correccin de errores EEC de tipo memoria.
Puede utilizarse directamente en las matrices de discos distribuyendo los bytes entre los distintos
discos. Los bits de correccin de errores se almacenan en discos adicionales. Si uno de los discos
falla, los restantes bits del byte y los bits de correccin de errores pueden leerse en otros discos
y utilizarse en la reconstruccin.
Nivel 3 : u organizacin de paridad con entrelazado de bits, tiene el cuenta que las controladoras
de disco pueden detectar si un sector ha sido ledo correctamente, utilizando un nico bit para la
deteccin y correccin de errores. Si uno de los sectores est daado, sabemos cul es y podemos
determinar si algn bit del sector es 1 o 0 calculando la paridad. Si la paridad de los bits restantes
iguala la paridad almacenada, el bit que falta es 0, sino 1. El problema es el gasto adicional
necesario para calcular y escribir los valores de paridad. Por ello, muchas RAID incluyen una
controladora hard con circuitera dedicada al clculo de paridad.
Nivel 5 : o paridad distribuda son entrelazado de bloques, diere de RAID 4 en que se distribuyen
los datos y la informacin de paridad entre los n+1 discos.
Nivel 6 : o esquema de redundancia P+Q, similar a RAID5, pero almacena informacin redun-
dante adicional para proteger los datos frente a mltiples fallos de disco. En lugar de emplearse
informacin de paridad, se utilizan cdigos de correccin de errores, como Reed- Solomon.
Nivel 0+1 : hace referencia a una combinacin de los niveles 0 y 1. El 0 proporciona mejora en
las prestaciones, mientras que el 1 proporciona abilidad. Ofrece mayor rendimiento que RAID5.
Se distribuye en bandas un conjunto de discos y luego ese conjunto se duplica en espejo en otro
conjunto equivalente.
Gutierrez Gonzalo E.
26 INTRODUCCIN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS 74
Sistemas Distribuidos
26. Introduccin a los Sistemas Operativos Distribuidos
Antes las computadoras resultaban caras e independientes debido a su sistema centralizado. En
1980, surgen dos avances tecnolgicos: el desarrollo de microprocesadores y la la invencin de las
REDES (LAN y WAN) lo que llev a la implementacin de los Sistemas Operativos Distribuidos (en
resumidas palabras SOD).
La denicin de SOD contempla los aspectos de hardware y software. Un SOD es una coleccin de
computadoras independientes que aparecen ante los usuarios del sistema como una nica computadora.
Gutierrez Gonzalo E.
27 HARDWARE DE LOS MULTIPROCESADORES. 75
MIMD SOD.
Otra dimensin de la taxonoma es que, en ciertos sistemas, las mquinas estn fuertemente acopladas y
en otras estn dbilmente acopladas. En un sistema fuertemente acoplado, el retraso que se experimenta
al enviar un mensaje de una computadora a otra es corto y la tasa de transmisin de los datos, es
decir, el nmero de bits por segundo que se puede transferir, es alta. En un sistema dbilmente acoplado
ocurre lo contrario: el retraso de los mensajes entre las mquinas es grande y la tasa de transmisin de
los datos es baja. Los sistemas fuertemente acoplados tienden a utilizarse como sistemas distribuidos
aunque esto no siempre es cierto.
4. Conexiones hipercubo.
La importancia de la forma de conexin radica en la inuencia dominante que tiene sobre el ancho
de banda y la saturacin de la comunicacin en el sistema. A continuacin se resumir brevemente
las formas de conexin indicadas y la capacidad de cada una de las arquitecturas de expandirse para
soportar un mayor nmero de procesadores (escalabilidad).
Los multiprocesadores con base en buses constan de cierta cantidad de CPU, conectados a un bus
comn, junto con un mdulo de memoria. Una conguracin sencilla consta de un plano de base de
alta velocidad o tarjeta madre, en el cual se pueden insertar las tarjetas de memoria y el CPU. Un bus
tpico tiene 32 o 64 lneas de direcciones, 32 o 64 lneas de datos y 32 o ms lneas de control, todo lo
cual opera en paralelo.
Para que un procesador lea una palabra de la memoria debe colocar la direccin de la palabra
deseada en las lineas de direccin del bus y activar la seal de lectura en la linea de control adecuada.
La memoria responde situando el contenido de la palabra en las lineas de datos. Similar con la escritura.
Gutierrez Gonzalo E.
27 HARDWARE DE LOS MULTIPROCESADORES. 76
Si un procesador escribe una palabra sobre la memoria y otro lee esa palabra, el ltimo procesador
obtendr el valor escrito previamente por el primer procesador. Sin embargo, el problema es que el bus
se puede saturar. Una posible solucin es disponer de alguna forma de memoria cach:
Ya sea asocindola con la memoria compartida, en este caso los procesadores acceden a ella por
el bus
O asignar a cada procesador una cach, tal como se muestra en la Figura 27.1. La cache almacena
todas las palabras a las que se han ingresado y todas las solicitudes pasan por la cache. Si una
palabra solicitada ya est en ella, esta responde al procesador y no se hace uso del bus.
Por otro lado, la construccin de una multicomputadora es fcil. Cada CPU tiene conexin directa
con su propia memoria local. El nico problema restante es la forma en que los CPU se comunicarn
entre s. Es claro que aqu tambin se necesita cierto esquema de interconexin, pero como slo es para
la comunicacin entre un CPU y otro, el volumen del trco ser de varios rdenes menor en relacin
con el uso de una red de interconexin para el trco CPU-memoria.
La conmutacin en los cruces es la nica fuente de retardo entre los procesadores y la memoria.
La contencin en el acceso a la memoria slo ocurre cuando un procesador intenta acceder a la misma
memoria y al mismo tiempo que otro.
El esquema de barras cruzadas permite un elevado grado de paralelismo entre tareas no relacionadas,
pero se presentan problemas de contencin cuando hay procesos con memoria compartida. Para n
procesadores P y n memorias M se necesitan n2 conmutadores, por lo que los sistemas basados en
barras cruzadas tienen un coste elevado y por lo tanto se limita la escalabilidad del sistema.
Gutierrez Gonzalo E.
28 TIPOS DE SISTEMAS OPERATIVOS PARA SISTEMAS DISTRIBUIDOS. 77
Se han propuesto y construido varias redes de interconexin, pero todas tienen la propiedad de
que cada CPU tiene acceso directo y exclusivo a su propia memoria particular. Hay dos topologas
populares, una retcula y un hipercubo.
Gutierrez Gonzalo E.
29 ASPECTOS DEL DISEO DE UN SOD. 78
de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusin
de que tiene el sistema dedicado para s mismo. Esto trae como consecuencia una gran carga de
trabajo al Sistema Operativo, principalmente en la administracin de memoria principal y secundaria.
Los multiprocesadores con memoria compartida tambin ofrecen la imagen de nico sistema, pero
lo hacen mediante la va de centralizar todo, por lo que en realidad, este caso es un sistema. Los
multiprocesadores con memoria compartida no son sistemas distribuidos.
Transparencia No Si Si
Transparencia de migracin:los recursos se pueden mover a voluntad sin cambiar sus nombres.
Flexibilidad: El diseo de un sistema distribuido debe hacerse con la idea de facilitar los cambios
futuros.
Confiabilidad: Uno de los objetivos originales de la construccin de sistemas distribuidos fue el
hacerlos ms conables que los sistemas con un procesador. La idea es que si una mquina falla, alguna
otra mquina se encargue del trabajo. En otras palabras, en teora, la conabilidad global del sistema
podra ser el Or Booleano de la conabilidad de los componentes.
Seguridad: Los archivos y otros recursos deben ser protegidos contra el uso no autorizado.
Tolerancia de fallas: los SOD se deben disear de forma que escondan las fallas.
Desempeo: Cuando se ejecuta una aplicacin en un sistema distribuido, no debe parecer peor que su
ejecucin en un procesador. Se pueden utilizar diversas mtricas de desempeo. El tiempo de respuesta
es una, pero tambin lo son el rendimiento, uso del sistema y cantidad consumida de la capacidad de
la red.
Escalabilidad: Disear un SOD que pueda escalar hacia sistemas ms grandes en un futuro.
Gutierrez Gonzalo E.
30 COMUNICACIN EN LOS SOD 79
Sin conexin (no necesita conguracin previa, el emisor transmite el mensaje cuando est listo).
Se divide en 7 capas, c/u proporciona una interfaz con la que est encima de ella. El soft de la capa de
aplicacin aade un encabezado al frente del mje. La coleccin de protocolos utilizados en un sistema
particular se llama serie o pila de protocolos.
2. Capa de enlace de datos: detecta y corrige los errores de la red. Agrupa bits en unidades llamadas
marcos, y revisa que c/u se reciba de forma correcta, mediante una suma de vericacin.
3. Capa de red: se encarga del ruteo, de acuerdo con el trco de red. Se utilizan los protocolos
X.25 (orientado a la conexin) e IP (sin conexin).
4. Capa de transporte: Capa encargada de efectuar el transporte de los datos (que se encuentran
dentro del paquete) de la mquina origen a la de destino, independizndolo del tipo de red
fsica que se est utilizando. Sus protocolos son TCP (Transmission Control Protocol) y UDP
(Universal Datagrama Protocol), el primero orientado a conexin y el otro sin conexin.
5. Capa de sesin: proporciona control del dialogo y facilidades en la sincronizacin para vericar
fallos.
6. Capa de presentacin: Traductor. En ella se tratan aspectos tales como la semntica y la sintaxis
de los datos transmitidos, ya que distintas computadoras pueden tener diferentes formas de
manejarlas. Esta capa tambin permite cifrar los datos y comprimirlos.
7. Capa de aplicacin: conjunto de protocolos para actividades comunes. El usuario interacta con
esta capa.
Gutierrez Gonzalo E.
30 COMUNICACIN EN LOS SOD 80
La red cliente-servidor es aquella red de comunicaciones en la que todos los clientes estn conectados
a un servidor, en el que se centralizan los diversos recursos y aplicaciones con que se cuenta; y que
los pone a disposicin de los clientes cada vez que estos son solicitados. Esto signica que todas las
gestiones que se realizan se concentran en el servidor, de manera que en l se disponen los requerimientos
provenientes de los clientes que tienen prioridad, los archivos que son de uso pblico y los que son de
uso restringido, los archivos que son de slo lectura y los que, por el contrario, pueden ser modicados,
etc.
Las Ventajas son:
Centralizacin del control: los accesos, recursos y la integridad de los datos son controlados por el
servidor de forma que un programa cliente defectuoso o no autorizado no pueda daar el sistema.
La ventaja fundamental de una arquitectura n-capas comparado con una arquitectura de dos
niveles (o una tres-capas con una de dos niveles) es que separa hacia fuera el proceso, eso ocurre
para mejorar el balance la carga en los diversos servidores; es ms escalable. >> facilidad de
implementacin.
Escalabilidad.
Fcil mantenimiento: al estar distribuidas las funciones y responsabilidades entre varios orde-
nadores independientes, es posible reemplazar, reparar, actualizar, o incluso trasladar un servidor,
mientras que sus clientes no se vern afectados por ese cambio.
Gutierrez Gonzalo E.
30 COMUNICACIN EN LOS SOD 81
Paso de argumentos por valor (argumentos de entrada): El programa cliente copia los argumentos
al stub, el stub lo enva por la red, el stub servidor copia los argumentos al procedimiento remoto.
MIDDLEWARE: software de conectividad que ofrece un conjunto de servicios que hacen posible el
funcionamiento de aplicaciones distribuidas sobre plataformas heterogneas. Funciona como una capa
de abstraccin de software distribuida, que se sita entre las capas de aplicaciones y las capas inferiores
(Sistemas Operativos y red). El middleware abstrae de la complejidad y heterogeneidad de las redes de
comunicaciones subyacentes, as como de los sistemas operativos y lenguajes de programacin, propor-
cionando una API para la fcil programacin y manejo de aplicaciones distribuidas. Dependiendo del
problema a resolver y de las funciones necesarias, sern tiles diferentes tipo de servicios de middleware.
Por lo general el middleware del lado cliente est implementado por el Sistema Operativo subyacente,
el cual posee las bibliotecas que implementan todas las funcionalidades para la comunicacin a travs
de la red.
Gutierrez Gonzalo E.
30 COMUNICACIN EN LOS SOD 82
Seguridad
El nombre genrico del conjunto de herramientas diseadas para proteger los datos y frustrar a los
piratas informticos (hackers) es el de SEGURIDAD DE COMPUTADORES.
Integridad: exige que los elementos de un sistema de computadoras puedan ser modicados slo
por grupos autorizados. La modicacin incluye escritura, cambio, cambio de estado, borrado y
creacin.
Disponibilidad: exige que los elementos de un sistema de computadoras estn disponibles a grupos
autorizados. Tipos de Amenazas:
Interrupcin: se destruye un elemento del sistema, se hace inasequible o intil >> amenaza a la
disponibilidad.
Alteracin: una parte no autorizada no slo consigue acceder, sino que falsica un elemento
>>integridad.
Invencin: una parte no autorizada inserta objetos falsos en el sistema >> integridad.
Las amenazas pasivas son del gnero de las escuchas a escondidas o supervisin de las transmisiones
de una organizacin. El objetivo del agresor es obtener la informacin que se est transmitiendo. Estas
Gutierrez Gonzalo E.
30 COMUNICACIN EN LOS SOD 83
amenazas son de 2 tipos: divulgacin del contenido de los mensajes y anlisis del trco. Las amenazas
activas suponen alteracin del ujo de datos o la creacin de ujo falso.
Se dividen en 3 categoras: alteracin del ujo de mensajes (se modica una porcin del mensaje
legtimo), privacin del servicio (prohbe o inhibe el uso normal del servicio) y suplantacin (una
entidad nge ser otra diferente).
Un Sistemas Operativos puede ofrecer proteccin (surge como necesidad ante la comparacin de
recursos en un entorno multiprogramado) de tipo:
ninguna proteccin,
aislamiento: cada proceso opera separadamente de los dems, sin comparacin ni comunicacin,
compartir por limitacin del acceso: se comprueba la licencia de acceso de los usuarios,
uso limitado de un objeto (por ejemplo se puede permitir a un usuario ver un documento pero
no imprimirlo).
inspeccin pro activa (el usuario elige su contrasea y el Sistemas Operativos comprueba si es
permisible).
a) Deteccin del nivel crtico: supone la denicin de umbrales, independientes del usuario,
para la frecuencia de aparicin de diversos sucesos.
Gutierrez Gonzalo E.
30 COMUNICACIN EN LOS SOD 84
a) Deteccin de anomalas: reglas para detectar desviaciones con respecto a pautas de uso.
Los mtodos estadsticos intentan denir un comportamiento normal o esperado, mientras que los
basados en reglas, intentan denir un comportamiento correcto.
2. Fase de propagacin: sita una copia de l en otro programa o zona del sistema en disco.
3. Fase de activacin.
4. Fase de ejecucin.
Tipos de virus:
Del sector de arranque: infecta el sector de arranque y se propaga cuando el sistema se arranca
desde el disco que contiene el virus.
Gutierrez Gonzalo E.
30 COMUNICACIN EN LOS SOD 85
Segunda generacin: rastreadores heursticos busca infecciones probables por virus, descifra el
virus para identicarlo, elimina la infeccin y pone el programa en servicio nuevamente.
Tercera generacin: trampas de actividad identican al virus por sus acciones ms que por la
estructura del programa infectado.
Cuarta generacin: proteccin completa paquetes con una variedad de tcnicas antivirus uti-
lizadas en conjunto, como componentes de rastreo, trampas de actividad y control de acceso.
Sistemas de confianza
Proporcionan un medio regular de acceso a los datos en funcin de quin est autorizado a qu. El
punto clave es que se diseo e implement de forma que los usuarios puedan tener completa conanza
de que el sistema aplicar una poltica de seguridad determinada.
Seguridad en redes
Introduce nuevas cuestiones como el cifrado, la herramienta automtica ms importante para se-
guridad en redes y comunicaciones. Es un proceso que oculta los signicados cambiando mensajes
inteligibles por ininteligibles. La mayora de los equipos de cifrados disponibles comercialmente em-
plean cifrado convencional, donde las dos partes comparten una nica clave de cifrado y descifrado. La
alternativa es un esquema de cifrado de clave pblica, en el que entran en juego dos claves, una para
cifrar y otra para descifrar.
Gutierrez Gonzalo E.
31 INTRODUCCIN 86
Unida a la llegada de los nuevos sistemas operativos, tambin han aparecido nuevos dispositivos,
como siendo los telfonos inteligentes con pantalla y las tabletas tctiles. De este hecho, los actuales
sistemas operativos moviles pueden ser instalados en distintos dispositivos, por ejemplo el iOS puede
ser instalado tanto en iPhone como en iPad. Con este n, se pretende unicar plataformas software,
para que funcionen en distintos dispositivos y es muy posible que en un futuro cercano tenga lugar una
fusin entre los sistemas operativos para dispositivos mviles y los sistemas operativos de escritorio.
Pero todo ello tiene un importante implicancia desde el punto de vista de la seguridad.
Gutierrez Gonzalo E.
32 SISTEMA OPERATIVO ANDROID 87
Gutierrez Gonzalo E.
32 SISTEMA OPERATIVO ANDROID 88
en el mercado, es libre y los operadores y vendedores de telefona mvil tienen mayores margenes de
ventas en dispositivos mviles basados con esta tecnologa. Adems, el sistema operativo es de cdigo
abierto, por lo que puede ser personalizado fcilmente para nuevos dispositivos. En la siguiente gura,
se puede observar la participacin de diversos sistemas operativos mviles en el mercado a nales del
2010.
Android no slo es el lder en cuota de mercado para el nmero de dispositivos mviles, lamentable-
mente, tambin super a Symbian por la cantidad de nuevos malware en el trimestre ms reciente.
Se cree que la razn de de esta explosin de malware es debido a un cambio en los mtodos de
distribucin. En el pasado, los gusanos en su mayora saltaban de un dispositivo a otro (por ejemplo,
Cabir se propagaba a travs de Bluetooth) pero este mtodo necesitaba una gran cantidad de usuarios
en estrecha proximidad y su Aceptar una transmisin. Hoy en da casi todas las infecciones provienen
de las tiendas de software globales y de Android, donde hay muchos ejemplos de Android
malware.
El modelo de seguridad de Android es muy simple: El usuario tiene la opcin de aprobar o rechazar la
solicitud del software descargado desde la tienda. Si aprueba dicha solicitud, se procede a la instalacin;
si se rechaza, bloquear la instalacin. Pero este modelo sufre por tres razones:
Se basa en que el usuario debe tomar la decisin correcta; dicha decisin muchas veces parece
critica incluso para los usuarios con conocimientos tcnicos.
Los programas cada vez exigen ms derechos de los necesarios, por lo que los usuarios estn cada
vez ms expuestos a anmalos y codiciosas solicitudes.
Los usuarios estn dispuestos a aceptar los permisos si realmente desea ejecutar el programa y
su afn puede ser explotada por mtodos de ingeniera social.
Gutierrez Gonzalo E.
33 IOS, WINDOWS PHONE 7, Y OTROS 89
32.2. Debilidades.
Una presentacin de DefCon del ao 2011 report mltiples deciencias en el diseo de Android y
su documentacin:
La falta de descripciones de las API puede afectar la seguridad de las aplicaciones debido a los
desarrolladores pueden tomar decisiones incorrectas. En la versin Android 2.2 slo 78 APIs de
1207 fueron documentados, y seis de ellos no son correctas.
La mensajera en Android es explcita (en el que el nombre del destinatario se especica) o implci-
ta (un mensaje personalizado con ningn objetivo especco, tales como my.special.action).
Esta distincin permite algunos mensajes para ser interceptados o suplantar los malware, gen-
eralmente permitiendo la fuga de datos o ataques de denegacin de servicio.
Aplicaciones Overprivileged (que solicitan ms permisos de los necesarios) son comunes (31 por
ciento, segn los autores). Donde violan el principio de mnimo privilegio. Existen varias causas
de aplicaciones overprivileged:
Gutierrez Gonzalo E.
33 IOS, WINDOWS PHONE 7, Y OTROS 90
El sistema operativo utiliza menos de 500 megabytes de la memoria del dispositivo y las capas Core
OS y Core Services contienen las interfaces fundamentales para el iPhone OS, incluidos los utilizados
para acceder a los archivos de bajo nivel de tipos de datos, servicios Bonjour, tomas de corriente de la
red, y as sucesivamente. Estas interfaces son en su mayora Tecnologas basadas en C e incluyen Core
Foundation, CFNetwork, SQLite, y el acceso a los hilos POSIX y los zcalos UNIX, entre otros. La
capa de medios contiene las tecnologas fundamentales utilizadas para los Dibujo en 2D y 3D, audio y
video. Esta capa incluye C-Based, OpenGL ES, Cuarzo, y Core Audio.
IOS de Apple es actualmente el mayor rival de Android. Hasta el momento Apple ha hecho un
trabajo excelente de asegurar sus dispositivos, no se noticaron casos de malware para el iPhone que
no han sido jailbroken. (Jailbreaking abre el iPhone a aplicaciones no autorizadas, lo que representa
un riesgo de seguridad, ya que permite cualquier software sin rmar pueda correr.)
Aparte de Android y iOS, otros sistemas operativos tambin puede jugar un papel importante en
el futuro. A medida que estos OS se encuentran bajo desarrollo activo, se retendr el anlisis de sus
caractersticas de seguridad para ms adelante. Los ms destacados son:
Windows Phone 7: Nokia ha decidido utilizar este sistema operativo en sus futuros dispositivos.
Un estudio de IDC predice que Windows Phone llegar a alrededor del 20 por ciento del mercado
y a la sombra tanto de Apple y el sistema operativo de RIM.
Samsung Bada: tiene una cuota de mercado muy pequea, pero Samsung se asoci con Intel para
crear Tizen, que es probable que subsumir al MeeGo.
Gutierrez Gonzalo E.
33 IOS, WINDOWS PHONE 7, Y OTROS 91
Un proceso es un programa en ejecucin, es una entidad activa a cargo del sistema operativo que
necesita recursos como tiempo en la CPU, memoria, archivos y dispositivos de E/S.
Un proceso incluye, adems del cdigo, un contador de programa, registros de la CPU, una pila de
procesos que contiene datos temporales y una seccin de datos que contiene las variables globales.
Sin entrar en ms detalles, un proceso tiene un estado y cada proceso se representa en el sistema
operativo mediante un PCB. El PCB es una descripcin del proceso donde incluye el estado del
proceso, contador de programa, registros de la CPU asignados, informacin de la planicacin del
CPU, informacin de la gestin de memoria e informacin de los dispositivos de E/S asignados.
Una hebra es, en cambio, una unidad bsica de utilizacin de CPU. Comprende de un ID de
hebra, un contador de programa, un conjunto de registros y una pila. Comparte con otras hebras que
pertenecen al mismo proceso la seccin de datos, cdigo, archivos y dispositivos.
Con esta perspectiva un proceso puede ser monohebra (tradicional) o multihebra, cuando un proceso
es multihebra tiene varias ventajas entre las que se incluye la realizacin de varias tareas simultaneas.
Desde el punto de vista prctico el soporte de las hebras puede proporcionarse desde el nivel usuario o
desde el nivel kernel. El soporte para las hebras de usuario se realiza por encima del kernel y no recibe
ningn soporte por parte de este. Cada hebra de usuario genera un nuevo proceso y cuando una hebra
se bloquea puede ocasionar el bloqueo total del proceso. En el nivel kernel, las hebras se crean mediante
llamadas al sistema y el soporte para las mismas es brindado por el sistema operativo. Sin embargo,
existe una relacin entre las hebras de usuario y las hebras del kernel, los tres modelos multihebras que
muestra dicha relacin son el modelo muchos-uno, el modelo uno-uno y el modelo muchos-muchos.
Los mecanismos de planicacin de la CPU son la base de los sistemas operativos multiprogramados,
cuya idea principal trata de tener un sistema operativo ms productivo mediante la conmutacin de la
CPU entre distintos procesos y con el n de maximizar el uso de la CPU. En sntesis, la planicacin de
la CPU consiste bsicamente como asignar la CPU mediante un algoritmo de planicacin apropiado
a un determinado proceso, y el mecanismo de seleccin de un determinado proceso se realiza mediante
un planicador apropiado.
Gutierrez Gonzalo E.
33 IOS, WINDOWS PHONE 7, Y OTROS 92
A menudo en un sistema de procesamiento por lotes, se envan ms procesos de los que pueden
ser ejecutados de manera inmediata. Es por ello que los procesos se guardan en un dispositivo de
almacenamiento masivo formando una cola donde son posteriormente seleccionados por el planicador
de trabajos y cargndolo en memoria para su posterior ejecucin. Una vez cargados en memoria, el
planicador a corto plazo selecciona un proceso cargados en memoria (es decir, listos para ejecutarse)
y le asigna la CPU, la eleccin de dicho proceso se realiza mediante un algoritmo de planicacin
determinado.
Una diferencia sustancial entre estos planicadores es la frecuencia de ejecucin. El planicador a
corto plazo se ejecuta con mucha ms frecuencia que el planicador a largo plazo y debe ser rpido en
cuanto a la eleccin de un proceso para su asignacin de la CPU.
Los diferentes algoritmos de planicacin de la CPU tienen diversas caractersticas y propiedades
y la eleccin de un determinado algoritmo en particular puede favorecer una clase de procesos sobre
otro. Para poder comparar tales algoritmos se utiliza diversos criterios tales como:
Taza de procesamiento.
Tiempo de ejecucin.
1. FCFS: Se asigna la CPU al proceso que primero la solicite y se gestiona fcilmente mediante
una cola FIFO. La poltica de planicacin del FCFS es no expropiativa, una vez asignado el
CPU a un determinado proceso, dicho proceso conserva la CPU hasta que naliza su ejecucin
o ejecuta una solicitud de E/S. En general, este algoritmo no presenta valores mnimos para el
tiempo medio de espera y los procesos tienden a monopolizar la CPU.
2. SJF y SPN: El SJF asigna la CPU al proceso que tiene la siguiente rfaga de CPU ms corta, por
tal motivo es necesario asociar con cada proceso la duracin de la siguiente rfaga de CPU. Si bien
presenta valores ptimos para el tiempo medio de espera, el problema es conocer la duracin de
la siguiente rfaga de CPU. Lo nico que se puede hacer es estimar dicha duracin conando que
la siguiente rfaga de CPU ser similar en duracin a las anteriores empleando como estimador
la media exponencial
n+1 = tn + (1 )n
3. Planicacin por Prioridades: Se asocia a cada proceso una prioridad y se asigna la CPU al de
prioridad ms alta. Un ejemplo particular sera SJF y el objetivo de estos algoritmos es favorecer
a determinados procesos sobre otros. La planicacin por prioridades puede ser expropiativa
o no expropiativa y un problema importante de los algoritmos de planicacin por prioridades
expropiativo es la muerte por inanicin o bloqueo indenido, en donde procesos con prioridad baja
pueden quedar esperando indenidamente. Como solucin a la inanicin se emplean mecanismos
de envejecimiento.
Gutierrez Gonzalo E.
33 IOS, WINDOWS PHONE 7, Y OTROS 93
4. Planicacin por turnos Round Robin: Est especialmente diseado para sistemas de tiempo
compartido. Es similar al FCFS, pero se aade tcnica de desalojo para la conmutacin de la
CPU, es por ello necesario emplear el concepto de quantum. Si la rfaga de CPU de un proceso
actualmente es mayor que un quantum, se producir un n de temporizador, interrupcin en el
sistema operativo, cambio de contexto, ubicacin del proceso al nal de la cola de preparados y
se planica el siguiente proceso. Es por ello que la cola de preparados se trata como una cola
circular. El tiempo medio de espera es frecuentemente largo y a ningn proceso se le asigna ms
de un quantum por turno.
b) Planicacin de nivel medio: Determina que procesos competirn por la CPU y deben ayudar
alcanzar ciertas metas en el rendimiento del sistema.
c) Planicacin de bajo nivel: Determina que proceso listo se le asigna la CPU cuando esta
queda disponible.
Explique en que consisten las rfagas de CPU y rfagas de E/S. Qu signica que un
proceso tenga carga de CPU y carga de E/S y exponga la relacin entre estos dos procesos.
Explique brevemente las dos polticas de planicacin de procesos y en particular respecto
a la poltica SPN.
Una rfaga de CPU es el instante de tiempo transcurrido en que un proceso ocup la CPU antes
de realizar una solicitud de E/S o haber terminado. Del mismo modo, una rfaga de E/S es el instante
transcurrido de tiempo que un proceso espera debido a una solicitud de E/S.
Cualquier proceso alterna entre una rfaga de CPU y una de E/S, comenzando y terminando
siempre con una rfaga de CPU y gracias a este esquema es posible disear sistemas multiprogramados
que permite maximizar la eciencia en el uso de los recursos del sistema.
Un proceso tiene carga de CPU cuando la duracin de las rfagas de CPU son ms largas que la
duracin de las rfagas de E/S, los procesos limitados por CPU presentan esta cualidad. Un proceso
tiene carga de E/S cuando la duracin de las rfagas de E/S son ms largas que las de CPU, esto es
debido que el proceso tiene muchas solicitudes de E/S, por lo que se trata de un proceso limitado por
E/S.
Una poltica de planicacin hace referencia a la forma de asignar la CPU a un determinado
proceso, dicha poltica puede ser expropiativa o no expropiativa. Si la poltica es no expropiativa, una
ve asignada la CPU a un determinado proceso este la conserva hasta que bien termina o realiza una
solicitud de E/S, en cambio cuando la poltica es expropiativa podemos quitarle la CPU al proceso que
est actualmente en ejecucin y asignrsela a otro proceso planicando nuevamente la cola de procesos
preparados (expropiacin de la CPU).
Por ejemplo en el algoritmo SJF que consiste en asignar la CPU al proceso que tiene la siguiente
rfaga de CPU mas corta, la poltica puede ser expropiativa como no expropiativa. Tiene sentido elegir
un SJF expropiativo al considerar que en un determinado instante de tiempo pudo haber llegado un
proceso el cual presenta un trabajo mas pequeo que el proceso actualmente en ejecucin y al cual se
podra asignarle la CPU. El algoritmo SPN es un ejemplo del SJF expropiativo implementando en el
mismo el concepto de quantum de tiempo, donde se asigna un quantum a un proceso y despus que
termina el quantum se planica nuevamente la cola de proceso asignndole la CPU al que presenta el
trabajo ms corto.
Gutierrez Gonzalo E.
33 IOS, WINDOWS PHONE 7, Y OTROS 94
Dena condiciones de competencias, secciones crticas, exclusin mutua con espera ocu-
pada. Semforos y monitores.
Las condiciones de carreras son situaciones donde varios procesos que se ejecutan simultneamente
de manera cooperativa (no independientes) acceden y modican de manera concurrente los mismos
datos concurrentemente y el resultado de los mismos dependen del orden concreto de ejecucin. Tales
datos son denominados recursos crticos
Las secciones crticas hace referencia a las secciones o porciones de cdigo de los procesos donde se
produce el acceso a los recursos crticos.
El problema de la seccin crtica consiste en el diseo de un protocolo, donde los procesos puedan
usar para acceder a su regin critica solicitando permiso a la misma y cualquier solucin al problema
de la seccin crtica debe satisfacer las siguientes propiedades
Exclusin mutua.
Espera limitada.
Progreso.
Se entiende por exclusin mutua el hecho que solo un proceso a la vez puede ejecutar su seccin crtica.
Sin embargo, muchas veces se presentan con frecuencia los siguientes problemas
Espera activa.
Deadlock.
Lockout.
Exclusin mutua con espera activa o alternancia estricta es una solucin al problema de la seccin
crtica con exclusin mutua y consiste en el diseo de un bucle de control que permite un accesos
alternado a las secciones crticas.
Un semforo es un tipo especial de variable soportada por el hardware y el sistema operativo, que
dejando detalles de implementacin slo se puede acceder a travs de dos operaciones atmicas wait()
y signal(). La denicin de las operaciones atmicas son
wait(S:semaphore){
if S>0 then S=S-1
else block();
}
signal(S:semaphore){
if exist suspend process in S then wakeup(P)
else S=S+1;
}
Las operaciones wait() y signal() son indivisibles, esto es, solo un proceso a la vez podr ejecutarlas.
El uso de semforos es un mecanismo de bajo nivel que deja la responsabilidad de la concurrencia al
programador.
Los monitores en cambio son tcnicas de alto nivel que permite centralizar en un solo objeto todas las
secciones crticas que presentan condiciones de carreras. El monitor mantiene una cola de llamadas a
las regiones crticas y garantiza que slo un proceso a la vez ingrese a su regin crtica, se ejecuta de
manera ininterrumpida y libera al programador de la responsabilidad de la exclusin mutua.
Gutierrez Gonzalo E.
33 IOS, WINDOWS PHONE 7, Y OTROS 95
1. Se comprueba una tabla interna que se mantiene con el PCB asociada con el proceso para
determinar si fue una referencia vlida o invalida.
2. Si la referencia fue invalida se termina el proceso. Si fue vlida, dicha pgina no fue cargada.
3. Se elige un marco libre en memoria principal. En caso que no haya uno se elige una pgina victima
para expulsin mediante una poltica de remplazo de pginas.
4. Ordenamos una operacin de lectura en el disco para leer la pgina deseada en el marco asignado.
5. Modicamos la tabla interna indicando que dicha pgina est disponible en memoria.
Poltica optimo: La pgina victima a seleccionar ser aquella que ms tiempo tardar en ser refer-
enciada. Desafortunadamente determinar las referencias futuras es irresoluble en la practica por lo que
la mayora de las polticas aplicables se basan en el comportamiento pasado.
Poltica LRU: Se selecciona como pgina victima la menos recientemente referenciada. Esto implica
modicar en cada referencia la informacin acerca de las paginas cargadas. La implementacin de
hardware es costosa ya que para llevarlo a la prctica es necesario tener ordenada una lista con las
pginas por su ltima referencia o tener un contador y un registro de al menos 64 bits que contendr
el valor de la ltima referencia de dicha pgina. Otra desventaja es el hecho que se basa en el principio
de localidad, lo cual no es apropiado cuando se disean aplicaciones mediante POO.
Poltica LFU: Manteniendo un contador del nmero de referencias que se han hecho a cada pgina se
elige la menos frecuentemente referenciada. Se basa en el principio de localidad y requiere de estructuras
de datos complejas para llevar la cuenta de las referencias. Adems es ineciente en el caso de pginas
que se usaron mucho al comienzo y despus no se utilizaron ms.
Algoritmo del Reloj ejemplicado.
Gutierrez Gonzalo E.
33 IOS, WINDOWS PHONE 7, Y OTROS 96
Un archivo bsicamente es una coleccin de informacin relacionada con nombre y que se graba en
un dispositivo de almacenamiento masivo como ser disco. Es una secuencia de bytes y registros cuyo
signicado esta denido por el creador del archivo y tendr una determinada estructura dependiendo
de su tipo.
Un atributo es una cualidad que permite describir y diferenciar los archivos unos con otros. Algunos
atributos de un archivo son nombre, id, tamao, tipo, ubicacin, proteccin, fecha y hora de creacin.
Una tcnica bastante comn para implementar el tipo de archivo es incluyndolo como parte del
nombre. Generalmente el nombre se divide en dos partes: nombre y extensin. Adems el tipo de
archivo tambin puede indicar una estructura del archivo y algunos Sistemas operativos imponen una
estructura a un archivo determinado.
Un sistema de archivos es la parte del sistema de administracin de almacenamiento responsable de
archivos, es la parte del sistema operativo responsable de permitir compartir la informacin disponible
en un archivo, proporciona mecanismos de almacenamiento en linea y el acceso a los contenidos in-
cluyendo datos y programas.
Los discos constituyen el principal tipo de almacenamiento secundario para albergar un sistema
de archivos. Lo deseable sera dividir el disco en varias partes denominadas particiones o volmenes y
cargar en cada una de ellas un determinado sistema de archivos. La transferencia de E/S entre memoria
y disco generalmente se realiza en unidades de bloques para obtener una mayor eciencia y para ello
el sistema operativo impone uno o ms sistemas de archivos para gestionar los archivos.
Un sistema de archivos tiene dos dicultades de diseo: Denir el aspecto que debe tener para los
usuarios y crear algoritmos y estructuras de datos que permitan mapear el sistema lgico de archivos
sobre los dispositivos fsicos.
Para ello el propio sistema de archivos est compuesto de varios niveles donde se denen ciertas
funciones que despus son implementadas por niveles superiores (control de E/S, sistema bsico de
archivos, modelo de organizacin de archivos y tarea de localizacin).
Los sistemas operativos implementan llamadas al sistema open() y close() para que los procesos
puedan acceder a los datos y contenidos de los archivos. El sistema de archivos puede contener informa-
Gutierrez Gonzalo E.
33 IOS, WINDOWS PHONE 7, Y OTROS 97
cin que el sistema operativo albergante necesita para poder iniciar y la implementacin de un sistema
de archivos utiliza varias estructuras en disco y memoria tales como bloque de control de arranque,
bloque de control de volumen, una estructura de directorios por cada archivo y un bloque FTB para
cada archivo donde se almacenarn los detalles de los mismos.
El aspecto ms importante de la implementacin del almacenamiento en archivos es como relacionar
bloques de disco con archivos. La seleccin de un algoritmo de asignacin y gestin de directorios puede
afectar signicativamente la eciencia, abilidad y prestaciones de un sistema de archivos. Dos tcnicas
que se usan para la implementacin de directorios son Lista lineal y Tabla hash. Por ultimo, una poltica
de asignacin de bloques de disco puede o no permitir un acceso rpido a la informacin presente en
un archivo, las ms usuales son asignacin contigua, asignacin por lista enlazada (FAT) y asignacin
por lista indexada (Nodo-i).
Gutierrez Gonzalo E.
REFERENCIAS 98
Referencias
[AS06] Greg GAGNE. Abraham SILBERSCHATZ, Peter Baer GALVIN, Fundamentos de sistemas
operativos., 7ed., 2006.
[Cer12] INTECO Cert., Seguridad en dispositivos mvile, Monogrco de seguridad del catlogo stic
Nmero 5, abril 2012.
[GJ] Mayank Jain Gaurav Jindal, A comparative study of mobile phone's operating systems, In-
ternational Journal of Computer Applications & Information Technology Vol. I, Issue III,
November 2012, 6.
[Ket00] Arto Kettula, Security comparison of mobile oses, Helsinki University of Technology. Telecom-
munications Software and Multimedia Laboratory (2000), 14.
[Mut11] Dr. Igor Muttik, Securing mobile devices: Present and future, McAfee, 2011.
Gutierrez Gonzalo E.