Você está na página 1de 86

Teora de Sistemas Operativos

Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)



1

Este documento contiene informacin para el curso de Sistemas
operativos recopilada de diversas fuentes en Internet

Instituto Tecnolgico de Tuxtla Gutirrez
Ingeniera en Sistemas Computacionales
SISTEMAS OPERATIVOS
Prof. Germn Ros Toledo





Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

2
Unidad I Introduccin a los sistemas operativos.
INTRODUCCION:
Sin el software una computadora es en esencia una masa metlica sin utilidad. Con el
software, una computadora puede almacenar, procesar y recuperar informacin, encontrar
errores de ortografa e intervenir en muchas otras valiosas actividades para ganar el
sustento. El software para computadoras puede clasificarse en general, en 2 clases: los
programas de sistema, que controlan la operacin de la computadora en s y los
programas de aplicacin, los cuales resuelven problemas para sus usuarios. El programa
fundamental de todos los programas de sistema, es el Sistema Operativo, que controla
todos los recursos de la computadora y proporciona la base sobre la cual pueden
escribirse los programas de aplicacin.
Un Sistema Operativo es un programa que acta como intermediario entre el usuario y el
hardware de una computadora y su propsito es proporcionar un entorno en el cual el
usuario pueda ejecutar programas. El objetivo principal de un Sistema Operativo es,
entonces, lograr que el Sistema de computacin se use de manera cmoda, y el objetivo
secundario es que el hardware de la computadora se emplee de manera eficiente.

Los sistemas operativos
1.1 Concepto y definicin de Sistemas Operativos.
Un Sistema Operativo es una parte importante de cualquier sistema de computacin. Un
sistema de computacin puede dividirse en tres componentes: el hardware, el Sistema
Operativo, los programas de aplicacin. El hardware (Unidad Central de Procesamiento
(CPU), memoria y dispositivos de entrada/salida (E/S)) proporciona los recursos de
computacin bsicos. Los programas de aplicacin (compiladores, sistemas de bases de
datos, juegos de video y programas para negocios) definen la forma en que estos
recursos se emplean para resolver los problemas de computacin de los usuarios.
Existen diversas definiciones de lo que es un Sistema Operativo, pero no hay una
definicin exacta, es decir una que sea estndar; a continuacin se presentan
algunas:
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

3
Se pueden imaginar un Sistema Operativo como los programas, instalados
en el software o firmware, que hacen utilizable el hardware. El hardware
proporciona la "capacidad bruta de cmputo"; los sistemas operativos
ponen dicha capacidad de cmputo al alcance de los usuarios y
administran cuidadosamente el hardware para lograr un buen rendimiento.
Los Sistemas Operativos son ante todo administradores de recursos; el
principal recurso que administran es el hardware de la computadora;
adems de los procesadores, los medios de almacenamiento, los
dispositivos de entrada/salida, los dispositivos de comunicacin y los datos.
Un Sistema Operativo es un programa que acta como intermediario entre
el usuario y el hardware de la computadora y su propsito es proporcionar
el entorno en el cual el usuario pueda ejecutar programas. Entonces, el
objetivo principal de un Sistema Operativo es, lograr que el sistema de
computacin se use de manera cmoda, y el objetivo secundario es que el
hardware de la computadora se emplee de manera eficiente.
Un Sistema Operativo es un conjunto de programas que controla la
ejecucin de programas de aplicacin y acta como una interfaz entre el
usuario y el hardware de una computadora, esto es, un Sistema Operativo
explota y administra los recursos de hardware de la computadora con el
objeto de proporcionar un conjunto de servicios a los usuarios del sistema.
En resumen, se podra decir que los Sistemas Operativos son un conjunto de
programas que crean la interfaz del hardware con el usuario, y que tiene dos
funciones primordiales, que son:
Gestionar el hardware.- Se refiere al hecho de administrar de una forma
ms eficiente los recursos de la mquina.
Facilitar el trabajo al usuario.- Permite una comunicacin con los
dispositivos de la mquina.
El Sistema Operativo se encuentra almacenado en la memoria secundaria.
Primero se carga y ejecuta un pedazo de cdigo que se encuentra en el
procesador, el cual carga el BIOS, y este a su vez carga el Sistema Operativo que
carga todos los programas de aplicacin y software variado.

1.2 Caractersticas de los Sistemas Operativos.

En general, se puede decir que un Sistema Operativo tiene las siguientes caractersticas:
Conveniencia. Un Sistema Operativo hace ms conveniente el uso de
una computadora.
Eficiencia. Un Sistema Operativo permite que los recursos de la
computadora se usen de la manera ms eficiente posible.
Habilidad para evolucionar. Un Sistema Operativo deber construirse
de manera que permita el desarrollo, prueba o introduccin efectiva de
nuevas funciones del sistema sin interferir con el servicio.
Encargado de administrar el hardware. El Sistema Operativo se
encarga de manejar de una mejor manera los recursos de la
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

4
computadora en cuanto a hardware se refiere, esto es, asignar a cada
proceso una parte del procesador para poder compartir los recursos.
Relacionar dispositivos (gestionar a travs del kernel). El Sistema
Operativo se debe encargar de comunicar a los dispositivos perifricos,
cuando el usuario as lo requiera.
Organizar datos para acceso rpido y seguro.
Manejar las comunicaciones en red. El Sistema Operativo permite al
usuario manejar con alta facilidad todo lo referente a la instalacin y uso
de las redes de computadoras.
Procesamiento por bytes de flujo a travs del bus de datos.
Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fcil
al usuario el acceso y manejo de los dispositivos de Entrada/Salida de
la computadora.
Tcnicas de recuperacin de errores.
Evita que otros usuarios interfieran. El Sistema Operativo evita que los
usuarios se bloqueen entre ellos, informndoles si esa aplicacin esta
siendo ocupada por otro usuario.
Generacin de estadsticas.
Permite que se puedan compartir el hardware y los datos entre los
usuarios.

El software de aplicacin son programas que se utilizan para disear, tal como el
procesador de palabras, lenguajes de programacin, hojas de clculo, etc.
El software de base sirve para interactuar el usuario con la mquina, son un
conjunto de programas que facilitan el ambiente plataforma, y permite el diseo del
mismo.
El Software de base est compuesto por:
Cargadores.
Compiladores.
Ensambladores.
Macros.
1.3 Clasificacin de los sistemas operativos.
Con el paso del tiempo, los Sistemas Operativos fueron clasificndose de
diferentes maneras, dependiendo del uso o de la aplicacin que se les daba. A
continuacin se mostrarn diversos tipos de Sistemas Operativos que existen en la
actualidad, con algunas de sus caractersticas:
Sistemas Operativos por lotes.
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con
poca o ninguna interaccin entre los usuarios y los programas en ejecucin. Se
renen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la
espera de dos o ms trabajos como sucede en el procesamiento en serie. Estos
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

5
sistemas son de los ms tradicionales y antiguos, y fueron introducidos alrededor
de 1956 para aumentar la capacidad de procesamiento de los programas.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecucin
muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos
pueden ser simples, debido a la secuenciabilidad de la ejecucin de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del
DC6600, el cual est orientado a procesamiento cientfico pesado, y el EXEC II
para el UNIVAC 1107, orientado a procesamiento acadmico.
Algunas otras caractersticas con que cuentan los Sistemas Operativos por lotes
son:
Requiere que el programa, datos y rdenes al sistema sean
remitidos todos juntos en forma de lote.
Permiten poca o ninguna interaccin usuario/programa en
ejecucin.
Mayor potencial de utilizacin de recursos que procesamiento serial
simple en sistemas multiusuarios.
No conveniente para desarrollo de programas por bajo tiempo de
retorno y depuracin fuera de lnea.
Conveniente para programas de largos tiempos de ejecucin (ej,
anlisis estadsticos, nminas de personal, etc.).
Se encuentra en muchas computadoras personales combinados
con procesamiento serial.
Planificacin del procesador sencilla, tpicamente procesados en
orden de llegada.
Planificacin de memoria sencilla, generalmente se divide en dos:
parte residente del S.O. y programas transitorios.
No requieren gestin crtica de dispositivos en el tiempo.
Suelen proporcionar gestin sencilla de manejo de archivos: se
requiere poca proteccin y ningn control de concurrencia para el
acceso.
Sistemas Operativos de tiempo real.
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene
importancia el usuario, sino los procesos. Por lo general, estn subutilizados sus
recursos con la finalidad de prestar atencin a los procesos en el momento que lo
requieran. se utilizan en entornos donde son procesados un gran nmero de
sucesos o eventos.
Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones
muy especficas como control de trfico areo, bolsas de valores, control de
refineras, control de laminadores. Tambin en el ramo automovilstico y de la
electrnica de consumo, las aplicaciones de tiempo real estn creciendo muy
rpidamente.

Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

6

Ejemplo de Tiempo Real
Algunos ejemplos de Sistemas Operativos de tiempo real son: QNX, TR Linux,
VxWorks, Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo real,
cuentan con las siguientes caractersticas:
Se dan en entornos en donde deben ser aceptados y procesados gran
cantidad de sucesos, la mayora externos al sistema computacional, en
breve tiempo o dentro de ciertos plazos.
Se utilizan en control industrial, conmutacin telefnica, control de
vuelo, simulaciones en tiempo real., aplicaciones militares, etc.
Objetivo es proporcionar rpidos tiempos de respuesta.
Procesa rfagas de miles de interrupciones por segundo sin perder un
solo suceso.
Proceso se activa tras ocurrencia de suceso, mediante interrupcin.
Proceso de mayor prioridad expropia recursos.
Por tanto generalmente se utiliza planificacin expropiativa basada en
prioridades.
Gestin de memoria menos exigente que tiempo compartido,
usualmente procesos son residentes permanentes en memoria.
Poblacin de procesos esttica en gran medida.
Poco movimiento de programas entre almacenamiento secundario y
memoria.
Gestin de archivos se orienta ms a velocidad de acceso que a
utilizacin eficiente del recurso.
Sistemas Operativos de multiprogramacin (o Sistemas Operativos de
multitarea).
Se distinguen por sus habilidades para poder soportar la ejecucin de dos o ms
trabajos activos (que se estn ejecutado) al mismo tiempo. Esto trae como
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

7
resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna
tarea que ejecutar, aprovechando al mximo su utilizacin.
Su objetivo es tener a varias tareas en la memoria principal, de manera que cada
uno est usando el procesador, o un procesador distinto, es decir, involucra
mquinas con ms de una UCP.
Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-
OS, OS/2, soportan la multitarea.
Las caractersticas de un Sistema Operativo de multiprogramacin o multitarea
son las siguientes:
Mejora productividad del sistema y utilizacin de recursos.
Multiplexa recursos entre varios programas.
Generalmente soportan mltiples usuarios (multiusuarios).
Proporcionan facilidades para mantener el entorno de usuarios
individuales.
Requieren validacin de usuario para seguridad y proteccin.
Proporcionan contabilidad del uso de los recursos por parte de los
usuarios.
Multitarea sin soporte multiusuario se encuentra en algunas
computadoras personales o en sistemas de tiempo real.
Sistemas multiprocesadores son sistemas multitareas por definicin ya
que soportan la ejecucin simultnea de mltiples tareas sobre
diferentes procesadores.
En general, los sistemas de multiprogramacin se caracterizan por
tener mltiples programas activos compitiendo por los recursos del
sistema: procesador, memoria, dispositivos perifricos.

La Multitarea

Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

8
Sistemas Operativos de tiempo compartido.
Permiten la simulacin de que el sistema y sus recursos son todos para cada
usuario. El usuario hace una peticin a la computadora, esta la procesa tan pronto
como le es posible, y la respuesta aparecer en la terminal del usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos 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.
Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y
DEC-10.
Caractersticas de los Sistemas Operativos de tiempo compartido:
Populares representantes de sistemas multiprogramados multiusuario,
ej: sistemas de diseo asistido por computadora, procesamiento de
texto, etc.
Dan la ilusin de que cada usuario tiene una mquina para s.
Mayora utilizan algoritmo de reparto circular.
Programas se ejecutan con prioridad rotatoria que se incrementa con la
espera y disminuye despus de concedido el servicio.
Evitan monopolizacin del sistema asignando tiempos de procesador
(time slot).
Gestin de memoria proporciona proteccin a programas residentes.
Gestin de archivo debe proporcionar proteccin y control de acceso
debido a que pueden existir mltiples usuarios accesando un mismo
archivos.
Sistemas Operativos distribuidos.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores.
Puede ser que este conjunto de procesadores est en un equipo o en diferentes,
en este caso es trasparente para el usuario. Existen dos esquemas bsicos de
stos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y
un reloj global, cuyos tiempos de acceso son similares para todos los
procesadores. En un sistema dbilmente acoplado los procesadores no comparten
ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente
del sistema se compone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los
siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Caractersticas de los Sistemas Operativos distribuidos:
Teor
Prof. Germ

Coleccin de sistemas autnomos capaces de comunicacin y
cooperacin mediante interconexiones hardware y software .
Gobierna operacin de un S.C. y proporciona abstraccin de mquina
virtual a los usuarios.
Objetivo clave es la transparencia.
Generalmente proporcionan medios para la comparticin global de
recursos.
Servicios aadidos: denominacin global, sistemas de archivos
distribuidos, facilidades para distribucin de clculos (a travs de
comunicacin de procesos internodos, llamadas a procedimientos
remotos, etc.).

Sistemas Operativos de red.
Son aquellos sistemas que mantienen a dos o ms computadoras unidas a trav
de algn medio de comunicacin (fsico o no), con el objetivo primordial de poder
compartir los diferentes recursos y la informacin del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador
Motorola 68000, pasando pos
Netware.
Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware,
Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Guti
Coleccin de sistemas autnomos capaces de comunicacin y
cooperacin mediante interconexiones hardware y software .
operacin de un S.C. y proporciona abstraccin de mquina
virtual a los usuarios.
Objetivo clave es la transparencia.
Generalmente proporcionan medios para la comparticin global de
Servicios aadidos: denominacin global, sistemas de archivos
distribuidos, facilidades para distribucin de clculos (a travs de
comunicacin de procesos internodos, llamadas a procedimientos

Sistemas Operativos de red.
Son aquellos sistemas que mantienen a dos o ms computadoras unidas a trav
de algn medio de comunicacin (fsico o no), con el objetivo primordial de poder
compartir los diferentes recursos y la informacin del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador
Motorola 68000, pasando posteriormente a procesadores Intel como Novell
Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware,
Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

Sistema operativo de Red
gico de Tuxtla Gutirrez)
9
Coleccin de sistemas autnomos capaces de comunicacin y
operacin de un S.C. y proporciona abstraccin de mquina
Generalmente proporcionan medios para la comparticin global de
Servicios aadidos: denominacin global, sistemas de archivos
distribuidos, facilidades para distribucin de clculos (a travs de
comunicacin de procesos internodos, llamadas a procedimientos
Son aquellos sistemas que mantienen a dos o ms computadoras unidas a travs
de algn medio de comunicacin (fsico o no), con el objetivo primordial de poder
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador
teriormente a procesadores Intel como Novell
Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware,
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

10
Sistemas Operativos Multiproceso.
Las computadoras que tienen mas de un CPU son llamadas multiproceso. Un sistema
operativo multiproceso coordina las operaciones de la computadoras multiprocesadoras.
Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una
instrucci n, el otro procesador queda liberado para procesar otras instrucciones
simultneamente. Al usar una computadora con capacidades de multiproceso
incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que
tienen capacidad de mu ltiproceso ofrecen una gran ventaja. Los primeros Sistemas
Operativos Multiproceso realizaban lo que se conoce como: Multiproceso asimtrico: Una
CPU principal retiene el control global de la computadora, as como el de los otros
procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la direccin ideal
a seguir ya que la CPU principal poda conv ertirse en un cuello de botella. Multiproceso
simtrico: En un sistema multiproceso simtrico, no existe una CPU controladora nica.
La barrera a vencer al implementar el multiproceso simtrico es que los SO tienen que ser
rediseados o diseados desde el principio para trabajar en u n ambiente multiproceso.
Las extensiones de Unix, que soportan multiproceso asimtrico ya estn disponibles y las
extensiones simtricas se estn haciendo disponibles. Windows NT de Microsoft soporta
multiproceso simtrico.

Sistema Multiprocesador

2.1 Metodologa de diseo
Existen autores que son partidarios de un enfoque jerrquico para el diseo de sistemas
operativos. En la base de la jerarqua se encuentra el hardware , en el siguiente nivel de
la jerarqua (o en varios de los siguientes niveles en algunos diseos) estn las diferentes
funciones del ncleo, las cuales se ven como si formaran una mquina ampliada, es decir,
un computadora que ofrece no slo su lenguaje de mquina como apoyo al sistema
operativo y a sus usuarios, sino tambin un grupo de funciones adicionales
proporcionadas por el ncleo. Estas posibilidades adicionales se denominan a menudo
primitivas.

Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

11
Arriba del ncleo, en jerarqua, se encuentran los diferentes procesos del sistema
operativo que trabajan en apoyo de los procesos de usuario; por ejemplo, los procesos de
administracin de los dispositivos, que se encargan en la prctica de supervisar las
operaciones de entrada/salida de los dispositivos del sistema para beneficio de los
diversos usuarios. En la cima de la jerarqua se encuentran los procesos de usuario.

Se ha visto que los diseos jerrquicos son ms fciles de depurar, modificar y verificar.
En los diseos en que el ncleo est distribuido en varios niveles de jerarqua, elegir qu
funcin colocar en cada nivel requiere un anlisis cuidadoso. En tales diseos, con
frecuencia slo se permite hacer llamadas a funciones situadas jerrquicamente por
debajo de quin hace la llamada; es decir, cada nivel slo puede llamar a las funciones
que estn colocadas en el nivel inmediato inferior.


Arquitectura del Sistema Operativo
En los sistemas ms recientes existe la tendencia de colocar gran parte del ncleo en
microcdigo. sta es una tcnica de seguridad efectiva, pues impide la alteracin del
ncleo y con una cuidadosa codificacin se puede lograr que se ejecuten ms
eficientemente las funciones del ncleo.
2.2 Ncleo o Kernel y niveles de un sistema operativo
El Kernel consiste en la parte principal del cdigo del sistema operativo, el cual se
encargan de controlar y administrar los servicios y peticiones de recursos y de hardware
con respecto a uno o varios procesos, este se divide en 5 capas:
Nivel 1. Gestin de Memoria: que proporciona las facilidades de bajo nivel para
la gestin de memoria secundaria necesaria para la ejecucin de procesos.
Nivel 2. Procesador: Se encarga de activar los cuantums de tiempo para cada
uno de los procesos, creando interrupciones de hardware cuando no son
respetadas.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

12
Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los
dispositivos de E/S requeridos por procesos.
Nivel 4. Informacin o Aplicacin o Interprete de Lenguajes: Facilita la
comunicacin con los lenguajes y el sistema operativo para aceptar las ordenes en
cada una de las aplicaciones. Cuando se solicitan ejecutando un programa el
software de este nivel crea el ambiente de trabajo e invoca a los procesos
correspondientes.
Nivel 5. Control de Archivos: Proporciona la facilidad para el almacenamiento a
largo plazo y manipulacin de archivos con nombre, va asignando espacio y
acceso de datos en memoria.


El ncleo y los procesos

El ncleo (Kernel) de un sistema operativo es un conjunto de rutinas cuya misin es la de
gestionar el procesador, la memoria, la entrada/salida y el resto de procesos disponibles
en la instalacin. Toda esta gestin la realiza para atender al funcionamiento y peticiones
de los trabajos que se ejecutan en el sistema.
El esquema general del mismo es el siguiente:
Definicin y concepto de proceso.
El Bloque de Control de Proceso (PCB) como imagen donde el sistema
operativo ve el estado del proceso.
Estados por los que pasa un proceso a lo largo de su existencia en la
computadora.
Operaciones que se pueden realizar sobre un proceso.
Clasificacin de los procesos segn su forma de ejecucin, de carga, etc.

Procesos

Uno de los conceptos ms importantes que gira entorno a un sistema operativo es el de
proceso. Un proceso es un programa en ejecucin junto con el entorno asociado
(registros, variables, etc.).
El corazn de un sistema operativo es el ncleo, un programa de control que reacciona
ante cualquier interrupcin de eventos externos y que da servicio a los procesos,
crendolos, terminndolos y respondiendo a cualquier peticin de servicio por parte de los
mismos.

Un proceso es una actividad que se apoya en datos, recursos, un estado en cada
momento y un programa.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

13

Prioridades
Todo proceso por sus caractersticas e importancia lleva aparejadas unas determinadas
necesidades de ejecucin en cuanto a urgencia y asignacin de recursos.
Las prioridades segn los sistemas operativos se pueden clasificar del siguiente modo:

Asignadas por el sistema operativo. Se trata de prioridades que son asignadas
a un proceso en el momento de comenzar su ejecucin y dependen
fundamentalmente de los privilegios de su propietario y del modo de ejecucin.
Asignadas por el propietario.
Estticas.
Dinmicas.

Prioridades de procesos

El Ncleo del Sistema Operativo
Todas las operaciones en las que participan procesos son controladas por la parte del
sistema operativo denominada ncleo (core o kernel, en ingls). El ncleo normalmente
representa slo una pequea parte de lo que por lo general se piensa que es todo el
sistema operativo, pero es tal vez el cdigo que ms se utiliza. Por esta razn, el ncleo
reside por lo regular en la memoria principal, mientras que otras partes del sistema
operativo son cargadas en la memoria principal slo cuando se necesitan.
Los ncleos se disean para realizar el mnimo posible de procesamiento en cada
interrupcin y dejar que el resto lo realice el proceso apropiado del sistema, que puede
operar mientras el ncleo se habilita para atender otras interrupciones.


Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

14
Resumen de las Funciones del Ncleo
El ncleo de un sistema operativo normalmente contiene el cdigo necesario para realizar
las siguientes funciones:
Manejo de interrupciones.
Creacin y destruccin de procesos.
Cambio de estado de los procesos.
Despacho.
Suspensin y reanudacin de procesos.
Sincronizacin de procesos.
Comunicacin entre procesos.
Manipulacin de los bloques de control de procesos.
Apoyo para las actividades de entrada/salida.
Apoyo para asignacin y liberacin de memoria.
Apoyo para el sistema de archivos.
Apoyo para el mecanismo de llamada y retorno de un procedimiento.
Apoyo para ciertas funciones de contabilidad del sistema.

Estructura Jerrquica del Sistema

Una computadora que ofrece no slo su lenguaje de mquina como apoyo al sistema
operativo y a sus usuarios, sino tambin un grupo de funciones adicionales
proporcionadas por el ncleo.
Arriba del ncleo, en jerarqua, se encuentran los diferentes procesos del sistema
operativo que trabajan en apoyo de los procesos de usuario, que se encargan en la
prctica de supervisar las operaciones de entrada/salida de los dispositivos del sistema
para beneficio de los diversos usuarios.
En los diseos en que el ncleo est distribuido en varios niveles de jerarqua, elegir qu
funcin colocar en cada nivel requiere un anlisis cuidadoso. En tales diseos, con
frecuencia slo se permite hacer llamadas a funciones situadas jerrquicamente por
debajo de quien hace la llamada; es decir, cada nivel slo puede llamar a las funciones
que estn colocadas en el nivel inmediato inferior.

El bloque de control de procesos (PCB)

El bloque de control de proceso (PCB) es una estructura de datos que contiene la
informacin que permite al sistema operativo localizar toda la informacin importante
sobre un proceso, incluyendo su estado actual, identificacin, prioridad, memoria,
recursos, valores de los registros, etctera. El PCB define el proceso al sistema operativo.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

15
Los sistemas operativos contienen mecanismos para realizar diversas operaciones sobre
los procesos, como crear, destruir, reanudar, cambiar la prioridad, bloquear, despertar y
despachar.

La estructura del PCB


Los subsistemas del Kernel
El subsistema de archivos controla los recursos del sistema de archivos y tiene funciones
como reservar espacio para los archivos, administrar el espacio libre, controlar el acceso
a los archivos, permitir el intercambio de datos entre los archivos y el usuario, etc.
El subsistema de control de procesos es el responsable de la planificacin de los
procesos (scheduler), su sincronizacin, comunicacin entre los mismos (IPC inter
process comunication) y del control de la memoria principal.
Al mdulo gestor de memoria (swapping) se le conoce tambin como swapper.
El planificador o scheduler se encarga de gestionar el tiempo de CPU que tiene asignado
cada proceso. El scheduler entra en ejecucin cada cuanto de tiempo y decide si el
proceso actual tiene derecho a seguir ejecutndose (esto depende de la prioridad y de
sus privilegios).
La comunicacin entre procesos puede realizarse de forma asncrona (seales) o
sncrona (colas de mensajes, semforos).
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

16
Por ltimo, el mdulo de control del hardware es la parte del kernel encargada del manejo
de las interrupciones y de la comunicacin con la mquina. Los dispositivos pueden
interrumpir a la CPU mientras est ejecutando un proceso. Si esto ocurre, el kernel debe
reanudar la ejecucin del proceso despus de atender a la interrupcin. Las
interrupciones no son atendidas por procesos, sino por funciones especiales, codificadas
en el kernel, que son invocadas durante la ejecucin de cualquier proceso.


Los subsistemas del Ncleo

2.3 Interrupciones de Entrada y Salida
Son iniciadas por hardware de entrada y salida. Estas interrupciones indican a la CPU el
cambio de estado de un canal o dispositivo. Las interrupciones de E/S se producen
cuando finaliza una operacin de E/S o cuando un dispositivo pasa al estado listo.
2.4 Interrupciones del procesador
Una interrupcin es un evento que altera la secuencia en que el procesador ejecuta las
instrucciones. La interrupcin es generada por el hardware del sistema de cmputo.
Cuando ocurre una interrupcin:

El sistema operativo toma el control (es decir, el hardware pasa el control al
sistema operativo).
El sistema operativo guarda el estado del proceso interrumpido. En muchos
sistemas esta informacin se guarda en el bloque de control de proceso
interrumpido.
El sistema operativo analiza la interrupcin y transfiere el control a la rutina
apropiada para atenderla; en muchos sistemas actuales el hardware se encarga
de esto automticamente.
La rutina del manejador de interrupciones procesa la interrupcin.
Se restablece el estado del proceso interrumpido (o del siguiente proceso).
Se ejecuta el proceso interrumpido (o el siguiente proceso).
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

17

Controlador de interrupciones
Una interrupcin puede ser iniciada especficamente por un proceso en ejecucin (en
cuyo caso se suele denominar trampa (trap), y se dice que est sincronizada con la
operacin del proceso) o puede ser causada por algn evento que puede estar
relacionado o no con el proceso en ejecucin (en cuyo caso se dice que es asncrona con
la operacin del proceso).
Los sistemas orientados hacia las interrupciones pueden sobrecargarse. Si ests llegan
con mucha frecuencia, el sistema no ser capaz de atenderlas. En algunos sistemas
orientados hacia el teclado, cada tecla presionada almacena en la memoria un cdigo de
un byte y genera un interrupcin para informar a la UCP que un carcter est listo para
ser procesado. Si la UCP no puede procesar el dato antes de que se presione la siguiente
tecla, se pierde el primer carcter.

Clases de Interrupciones

Existen seis clases de interrupciones:

Interrupciones SVC (supervisor call, llamadas al supervisor). Son iniciadas
por un proceso en ejecucin que ejecute la instruccin SVC. Una SVC es una
peticin generada por el usuario de un servicio particular del sistema, como
realizar una operacin de entrada/salida, obtener ms memoria o comunicarse
con el operador del sistema. El mecanismo de las SVC ayuda a proteger el
sistema operativo de las acciones de los usuarios. Un usuario no puede entrar
arbitrariamente al sistema operativo, sino que debe solicitar un servicio por
medio de una SVC. El sistema operativo est al tanto de todos los usuarios
que intentan rebasar sus limites y puede rechazar ciertas peticiones si el
usuario no tiene los privilegios necesarios.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

18
Interrupciones de E/S. Son iniciadas por hardware de entrada y salida. Estas
interrupciones indican a la UCP el cambio de estado de un canal o dispositivo.
Las interrupciones de E/S se producen cuando finaliza una operacin de E/S o
cuando un dispositivo pasa al estado listo.
Interrupciones externas. Son causadas por diversos eventos, incluyendo la
expiracin de un cuanto de un reloj que interrumpe, la pulsacin de la tecla de
interrupcin de la consola o la recepcin de una seal procedente de otro
procesador en un sistema de mltiples procesadores.
Interrupciones de Reinicio. Se produce cuando se presiona el botn de
reinicio de la PC o cuando llega de otro procesador una instruccin de reinicio
en un sistema de multiprocesamiento
Interrupciones de verificacin del programa. Son causadas por una amplia
clase de problemas que pueden ocurrir cuando se ejecutan las instrucciones
en lenguaje mquina de un programa. Dichos problemas incluyen la divisin
entre cero, el exceso o defecto de los nmeros que pueden ser manejados por
las operaciones aritmticas, el intento de hacer referencia a una localidad de
memoria que est fuera de los lmites de la memoria real. Muchos sistemas
ofrecen a los usuarios la opcin de especificar las rutinas que deben ejecutarse
cuando ocurra una interrupcin de verificacin del programa.
Interrupciones de verificacin de la mquina. Son ocasionadas por el mal
funcionamiento del hardware.













Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

19
Unidad II Administracin de procesos.

2. INTRODUCCIN A LOS PROCESOS
Todas las computadoras modernas hacen varias cosas al mismo tiempo. A la vez
que ejecuta un programa del usuario, una computadora puede leer de un disco e
imprimir en una terminal o impresora. En un sistema de multiprogramacin, la CPU
tambin alterna de programa en programa, ejecutando cada uno de ellos por
decenas o cientos de milisegundos. Aunque, en sentido estricto, la CPU ejecuta en
cierto instante un solo programa, durante un segundo puede trabajar con varios de
ellos, lo que da una apariencia de paralelismo. A veces, las personas hablan de
pseudoparalelismo para indicar este rpido intercambio de los programas en la
CPU, para distinguirlo del paralelismo real del hardware, donde se hacen clculos
en la CPU a la vez que operan uno o ms dispositivos de entrada/salida. Es difcil
mantener un registro de las distintas actividades paralelas. Por lo tanto, los
diseadores del sistema operativo han desarrollado con el tiempo un modelo que
facilita el uso del paralelismo.

2.1 CONCEPTO DE PROCESO.

El trmino "PROCESO", fue utilizado por primera vez por los diseadores del
sistema Multics en los aos 60s. Desde entonces, el trmino proceso, utilizado a
veces como sinnimo de tarea, ha tenido muchas definiciones. A continuacin se
presentan algunas:
Un programa en ejecucin
Una actividad asncrona
El "espritu animado" de un procedimiento
El "centro de control" de un procedimiento en ejecucin
Lo que se manifiesta por la existencia de un "bloque de control
del proceso" en el sistema operativo
La entidad a la que se asignan los procesadores
La unidad "despachable"
Aunque se han dado muchas otras definiciones, no hay una definicin
universalmente aceptada, pero el concepto de "Programa en ejecucin" parece ser
el que se utiliza con ms frecuencia. Un programa es una entidad inanimada; slo
cuando un procesador le "infunde vida" se convierte en la entidad "activa" que se
denomina proceso.

Un proceso pasa por una serie de datos discretos. Se dice que un proceso se
est ejecutando (estado de ejecucin), si tiene asignada la CPU. Se dice que un
proceso est listo (estado listo) si pudiera utilizar una CPU en caso de haber una
Teor
Prof. Germ

disponible. Un proceso est bloqueado (estado bloqueado) si est esperando que
suceda algn evento antes de poder seguir la ejecucin.





El

Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Guti
disponible. Un proceso est bloqueado (estado bloqueado) si est esperando que
suceda algn evento antes de poder seguir la ejecucin.
Ciclo de vida de un proceso



ciclo de vida detallado de un proceso
gico de Tuxtla Gutirrez)
20
disponible. Un proceso est bloqueado (estado bloqueado) si est esperando que


Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

21
El Bloque de Control de Procesos (PCB)

Un proceso se representa desde el punto de vista del sistema operativo, por un conjunto
de datos donde se incluyen el estado en cada momento, recursos utilizados, registros,
etc., denominado Bloque de Control de Procesos (PCB).

Los objetivos del bloque de control de procesos son los siguientes:

Localizacin de la informacin sobre el proceso por parte del sistema
operativo.
Mantener registrados los datos del proceso en caso de tener que suspender
temporalmente su ejecucin o reanudarla.
La informacin contenida en el bloque de control es la siguiente:

Estado del proceso. Informacin relativa al contenido del controlador del
programa (Program Counter, PC), estado de procesador en cuanto a prioridad
del proceso, modo de ejecucin, etc., y por ultimo el estado de los registros
internos de la computadora.
Estadsticas de tiempo y ocupacin de recursos para la gestin de la
planificacin del procesador.
Ocupacin de memoria interna y externa para el intercambio (swapping).
Recursos en uso (normalmente unidades de entrada/salida).
Archivos en uso.
Privilegios.

Estas informaciones se encuentran en memoria principal en disco y se accede a ellas en
los momentos en que se hace necesaria su actualizacin o consulta. Los datos relativos al
estado del proceso siempre se encuentran en memoria principal.
El cambio de contexto se producir en caso de ejecucin de una instruccin privilegiada,
una llamada al sistema operativo o una interrupcin, es decir, siempre que se requiera la
atencin de algn servicio del sistema operativo.



Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

22
Estado de los procesos

Los bloques de control de los procesos se almacenan en colas, cada una de las cuales
representa un estado particular de los procesos, existiendo en cada bloque, entre otras
informaciones. Los estados de los procesos son internos del sistema operativo y
transparente al usuario.

Los estados de los procesos se pueden dividir en dos tipos: activos e inactivos.

1.- Estados activos: Son aquellos que compiten con el procesador o estn en
condiciones de hacerlo. Se dividen en:
Ejecucin. Estado en el que se encuentra un proceso cuando tiene el
control del procesador. En un sistema monoprocesador este estado slo lo
puede tener un proceso.
Preparado. Aquellos procesos que estn dispuestos para ser ejecutados,
pero no estn en ejecucin por alguna causa (Interrupcin, haber entrado
en cola estando otro proceso en ejecucin, etc.).
Bloqueado. Son los procesos que no pueden ejecutarse de momento por
necesitar algn recurso no disponible (generalmente recursos de
entrada/salida).
2.- Estados inactivos: Son aquellos que no pueden competir por el procesador, pero que
pueden volver a hacerlo por medio de ciertas operaciones. En estos estados se
mantiene el bloque de control de proceso aparcado hasta que vuelva a ser activado.
Se trata de procesos que no han terminado su trabajo que lo han impedido y que
pueden volver a activarse desde el punto en que se quedaron sin que tengan que
volver a ejecutarse desde el principio.
Son de dos tipos:

Suspendido bloqueado. Es el proceso que fue suspendido en espera de un
evento, sin que hayan desaparecido las causas de su bloqueo.
Suspendido programado. Es el proceso que han sido suspendido, pero no
tiene causa parta estar bloqueado.


Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

23
Transiciones de estado
Todo proceso a lo largo de su existencia puede cambiar de estado varias veces. Cada
uno de estos cambios se denomina transaccin de estado. Estas transacciones son las
siguientes:


Comienzo de la ejecucin. Todo proceso comienza al ser dada la orden de
ejecucin del programa insertndose en la cola de preparados. El encolamiento
depender de la poltica de gestin de dicha cola.
Paso de estado de ejecucin. Cuando el procesador se encuentra inactivo y en la
cola de preparados exista algn proceso en espera de ser ejecutado, se pondr en
ejecucin el primero de ellos.
Paso a estado bloqueado. Un proceso que se encuentre en ejecucin y que solicite
una operacin a un dispositivo externo, teniendo que esperar a que dicha operacin
finalice, ser pasado de estado de ejecucin a estado bloqueado insertndose su PCB
en la cola correspondientes de bloqueado. A partir de este momento el procesador
pone en ejecucin el siguiente proceso, que ser el primero de la cola de preparados.
Paso a estado preparado. Este paso puede ser producido por alguna de las
siguientes causas.
Orden de ejecucin de un programa, con la cual, ya se ha mencionado,
el proceso pasa a la cola de preparados.
Si un proceso est en estado bloqueado por causa de una operacin de
entrada/salida y est finaliza, pasar de la cola de bloqueados a la de
preparados.
Si un proceso est en ejecucin y aparece una interrupcin que fuerza
al sistema operativo a ejecutar otro proceso, el primero pasar al
estado de preparado y su PCB a la cola de preparados.
Activacin. Un proceso suspendido previamente sin estar bloqueado
pasar al estado preparado al ser activado nuevamente.
Paso a estado suspendido bloqueado. Si un proceso est bloqueado y el sistema
operativo recibe la orden de suspenderlo, su PCB entrar en la cola de procesos
suspendidos bloqueados.
Paso a estado suspendido preparado. Este paso se puede producir bajo tres
circunstancias:
Suspensin de un proceso preparado pasando ste de la cola de
procesos preparados a la de suspendidos preparados
Suspensin de un proceso en ejecucin, con lo cual el proceso pasa a
la cola de uspendidos preparados.
Desbloqueo de un proceso suspendido bloqueado por desaparecer la
causa que impeda el ser activado de nuevo.

Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

24


Operaciones sobre procesos

Los sistemas operativos actuales poseen una serie de funciones cuyo objetivo es el de la
manipulacin de los procesos. Las operaciones que se pueden hacer sobre un proceso
son las siguientes:

Crear el proceso. Se produce con la orden de ejecucin del programa y suele
necesitar varios argumentos, como el nombre y la prioridad del proceso.
Aparece en este momento el PCB, que ser insertado en la cola de procesos
preparados.
La creacin de un proceso puede ser de dos tipos:

Jerrquica. En ella, cada proceso que se crea es hijo del proceso
creador y hereda el entorno de ejecucin de su padre. El primer
proceso que ejecuta un usuario ser hijo del intrprete de comandos
con el que interacta.
No jerrquica. Cada proceso creado por otro proceso se ejecuta
independientemente de su creador con un entorno diferente. Es un tipo
de creacin que no suele darse en los sistemas operativos actuales.
Destruir un proceso. Se trata de la orden de eliminacin del proceso con la
cual el sistema operativo destruye su PCB.
Suspender un proceso. Es un proceso de alta prioridad que paraliza un
proceso que puede ser reanudado posteriormente. Suele utilizarse en
ocasiones de mal funcionamiento o sobrecarga del sistema.
Reanudar un proceso. Trata de activar un proceso que a sido previamente
suspendido.
Cambiar la prioridad de un proceso.
Temporizar la ejecucin de un proceso. Hace que un determinado proceso
se ejecute cada cierto tiempo (segundos, minutos, horas...) por etapas de una
sola vez, pero transcurrido un periodo de tiempo fijo.
Despertar un proceso. Es una forma de desbloquear un proceso que habr
sido bloqueado previamente por temporizacin o cualquier otra causa.



Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

25
2.2 CONCURRENCIA Y SECUENCIABILIDAD
Los procesos son concurrentes si existen simultneamente. Los procesos
concurrentes pueden funcionar en forma totalmente independiente unos de otros,
o pueden ser asncronos, lo cual significa que en ocasiones requieren cierta
sincronizacin o cooperacin.

Cuando dos o ms procesos llegan al mismo tiempo a ejecutarse, se dice que se
ha presentado una concurrencia de procesos. Es importante mencionar que para
que dos o ms procesos sean concurrentes, es necesario que tengan alguna
relacin entre ellos como puede ser la cooperacin para un determinado trabajo o
el uso de informacin o recursos compartidos, por ejemplo: en un sistema de un
procesador, la multiprogramacin es una condicin necesaria pero no suficiente
para que exista concurrencia, ya que los procesos pueden ejecutarse de forma
totalmente independiente.
Por otro lado en un sistema de varios procesos se puede presentar la concurrencia
siempre y cuando las actividades necesiten actuar entre s ya sea para utilizar
informacin en comn o para cualquier otra cosa.
2.2.1.1 BENEFICIOS DE LA CONCURRENCIA
Trata de evitar los tiempos muertos de la UCP
Comparte y optimiza el uso de recursos
Permite la modularidad en las diferentes etapas del proceso
Acelera los clculos
Da mayor comodidad
2.2.1.2 DESVENTAJAS DE LA CONCURRENCIA
Inanicin
Interrupcin de procesos
Bloqueos
Que dos o ms procesos requieran el mismo recurso.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

26
2.2.2 LA SINCRONIZACION
En muchos casos, los procesos se renen para realizar tareas en conjunto, a este
tipo de relacin se le llama procesos cooperativos. Para lograr la comunicacin,
los procesos deben sincronizarse, de no ser as pueden ocurrir problemas no
deseados. La sincronizacin es la transmisin y recepcin de seales que tiene
por objeto llevar a cabo el trabajo de un grupo de procesos cooperativos. Es la
coordinacin y cooperacin de un conjunto de procesos para asegurar la
comparacin de recursos de cmputo. La sincronizacin entre procesos es
necesaria para prevenir y/o corregir errores de sincronizacin debidos al acceso
concurrente a recursos compartidos, tales como estructuras de datos o
dispositivos de E/S, de procesos contendientes. La sincronizacin entre procesos
tambin permite intercambiar seales de tiempo (ARRANQUE/PARADA) entre
procesos cooperantes para garantizar las relaciones especficas de precedencia
impuestas por el problema que se resuelve. Sin una sincronizacin adecuada
entre procesos, la actualizacin de variables compartidas puede inducir a errores
de tiempo relacionados con la concurrencia que son con frecuencia difciles de
depurar. Una de las causas principales de este problema es que procesos
concurrentes puedan observar valores temporalmente inconsistentes de una
variable compartida mientras se actualizan. una aproximacin para resolver este
problema es realizar actualizaciones de variables compartidas de manera
mutuamente exclusiva. Se pueden mejorar permitiendo que a lo ms un proceso
entre a la vez en la seccin crtica de cdigo en la que se actualiza una variable
compartida o estructura de datos en particular.


Sincronizacin de procesos


2.3 REGIONES CRTICAS.

Cmo evitar las condiciones de competencia? La clave para evitar los problemas
en sta y otras situaciones relacionadas con la memoria compartida, archivos
compartidos y cualquier otra cosa compartida, es determinar una forma de prohibir
que ms de algn proceso lea o escriba en los datos compartidos a la vez. En
otras palabras, lo que necesitamos es la exclusin mutua (una forma de garantizar
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

27
que si un proceso utiliza una variable o archivos compartidos, los dems procesos
no puedan utilizarlos).

El problema de evitar las condiciones de competencia tambin se puede formular
de manera abstracta. Durante cierta parte del tiempo, un proceso est ocupado
realizando clculos internos y otras labores que no conducen a condiciones de
competencia. Sin embargo, en algunas ocasiones un proceso puede tener acceso
a la memoria compartida de archivos o realizando labores crticas que pueden
llevar a conflictos. Esa parte del programa, en la cual se tiene acceso a la memoria
compartida se llama la Seccin o Regin Crtica.

Aunque esta condicin evita los conflictos, no es suficiente para que los procesos
paralelos cooperen en forma correcta y usen de modo eficaz los datos
compartidos.

La exclusin mutua debe ponerse en prctica, slo cuando los procesos obtienen
acceso a datos compartidos modificables; cuando los procesos realizan
operaciones que no entran en conflictos con otras, deben permitirse que procedan
concurrentemente.


Cuando un proceso obtiene acceso a datos compartidos modificables, se dice que
se encuentra en una seccin crtica. Para evitar alguna clase de problemas se
debe asegurar que cuando un proceso se encuentre en una seccin crtica, los
dems procesos no pueden entrar a sus propias secciones crticas.


Si un proceso se encuentra en su seccin crtica, otros procesos pueden seguir
ejecutndose fuera de sus secciones crticas. Cuando un proceso abandona su
regin, otro proceso que esperaba entrar en su propia seccin podr hacerlo. El
problema de la programacin concurrente est en que se cumpla la exclusin
mutua.

Cuando se encuentra en una regin crtica se est hablando de un estado especial
que se concede a un proceso. El proceso tiene acceso exclusivo a los datos
compartidos y los dems procesos que requieren acceso a esos datos y en ese
momento deben esperar; por esto las secciones crticas deben ejecutarse tan
rpido como sea posible. Un proceso no se debe bloquear dentro de su propia
seccin crtica y estas deben codificarse con mucho cuidado.

Si un proceso de una seccin crtica termina, el S.O. al realizar su mantenimiento
de terminaciones, debe liberar la exclusin mutua para que otros procesos puedan
entrar en sus regiones crticas.

Necesitamos 4 condiciones para poder obtener una buena solucin:
1. Dos procesos no deben encontrarse al mismo tiempo dentro de sus
secciones crticas.
2. No se deben hacer hiptesis sobre la velocidad o el nmero de UCP.
3. Ninguno de los procesos que estn en ejecucin fuera de su seccin
crtica puede bloquear a otros procesos.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

28
4. Ningn proceso debe esperar eternamente para entrar a su seccin
crtica.

2.4 EXCLUSIN MUTUA

Considrese un sistema con muchas terminales en tiempo compartido. Supngase
que los usuarios terminan con un retorno del carro cada lnea que introducen en el
sistema, que es necesario vigilar continuamente el nmero total de lneas
introducidas por los usuarios desde que comenz el da y que cada terminal de
usuario est vigilada por un proceso diferente. Cada vez que uno de estos
procesos recibe una lnea desde una terminal de usuario, suma a una variable
global compartida por todo el sistema, LNEAS_INTRO. Considrese que
sucedera si dos procesos tratan de incrementar LNEAS_INTRO
simultneamente. Supngase que cada proceso tiene su propia copia de cdigo


CARGAR LNEAS_INTRO
SUMAR 1
ALMACENAR LNEAS_INTRO

Supngase que LNEAS_INTRO tiene en este momento el valor 21687. Ahora
supngase que el primer proceso ejecuta las instrucciones CARGAR y SUMAR,
dejando por tanto el valor 21688 en un acumulador. Despus el proceso pierde el
procesador (por haber expirado un cuanto) y el segundo proceso se apropia de l.
El segundo proceso ejecuta las tres instrucciones y deja el valor de 21688 en
LNEAS_INTRO. Debido al acceso no controlado a la variable compartida
LNEAS_INTRO, el sistema ha perdido de hecho el rastro de una de las lneas; el
total correcto debera ser 21689. Cmo evitar las condiciones de competencia?



Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

29


2.5 SINCRONIZACIN POR SEMFOROS

En 1965, E.W. Dijkstra sugiri el uso de una variable entera para contar el nmero
de despertares almacenados para su uso posterior.

En su propuesta se present un nuevo tipo de variable, llamada Semforo. Un
semforo puede tener el valor 0, lo que indica que no existen despertares
almacenados; o bien algn valor positivo si estn pendientes uno o ms
despertares.

Dijkstra, propuso dos operaciones, DOWN y UP (generalizaciones de SLEEP y
WAKEUP, respectivamente). La operacin Down verifica si el valor de un
semforo es mayor que 0. En este caso, decrementa el valor (es decir, utiliza un
despertar almacenado) y contina. Si el valor es cero, el proceso se va a dormir.
La verificacin y modificacin del valor, as como la posibilidad de irse a dormir se
realiza en conjunto, como una sola e indivisible accin atmica. Se garantiza que
al iniciar una operacin con un semforo, ningn otro proceso puede tener acceso
a semforo hasta que la operacin termine o se bloquee. Esta atomicidad es
absolutamente esencial para resolver los problemas de sincronizacin y evitar
condiciones de competencia.

La operacin UP incrementa el valor del semforo correspondiente. Si uno o ms
procesos dorman en ese semforo y no podan completar una operacin Down
anterior, el sistema elige alguno de ellos (por ejemplo, en forma aleatoria) y se le
permite terminar Down. As, despus de un UP en un semforo con procesos
durmiendo, el semforo seguir con valor cero, pero habr un menor nmero de
procesos durmiendo. La operacin de incremento del semforo y despertar de un
proceso tambin es indivisible. Ningn proceso llega a bloquear mediante un UP.

Un semforo es una variable protegida, cuyo valor slo puede ser ledo y alterado
mediante las operaciones P y V, y una operacin de asignacin de valores
iniciales y (Inicia semforo).





Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

30
TIPOS DE SEMFOROS

SEMFOROS BINARIOS (VALORES DE 1,0)
SEMAFOROS CONTADORES (Valores enteros no negativos)

Operacin P (Sobre el semforo S)
si S>0
entonces S:=S-1;
sino (esperar S)

Operacin V (Sobre el semforo S)
si (Uno o ms procesos esperan S)
entonces (dejar que prosiga uno de esos procesos)
sino S:=S+1

La exclusin mutua sobre el semforo S se implanta dentro de P(S) y V(S). Si
varios procesos desean ejecutar una operacin P(S) de manera simultnea, slo
se podr ejecutar uno de ellos, pero esto no quiere decir que se aplazarn en
forma indefinida.

















Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

31
UNIDAD III ADMINISTRACION DE LA MEMORIA.

3. INTRODUCCIN.
La parte del sistema operativo que administra la memoria se llama administrador de la
memoria. Su labor consiste en llevar el registro de las partes de memoria que se
estn utilizando y aquellas que no, con el fin de asignar espacio en memoria a los
procesos; cuando estos la necesiten y liberarlo cuando terminen. As como administrar el
intercambio entre la memoria principal y el disco, en los casos en que la memoria principal
no pueda albergar a todos los procesos.
3.1 Almacenamiento Virtual
La necesidad cada vez ms imperiosa de ejecutar programas grandes y el crecimiento en
poder de las unidades centrales de procesamiento empujaron a los diseadores de los
sistemas operativos a implantar un mecanismo para ejecutar automticamente programas
ms grandes que la memoria real disponible, esto es, de ofrecer `memoria virtual'.
La memoria virtual se llama as porque el programador ve una cantidad de memoria
mucho mayor que la real, y en realidad se trata de la suma de la memoria de
almacenamiento primario y una cantidad determinada de almacenamiento secundario. El
sistema operativo, en su mdulo de manejo de memoria, se encarga de intercambiar
programas enteros, segmentos o pginas entre la memoria real y el medio de
almacenamiento secundario. Si lo que se intercambia son procesos enteros, se habla
entonces de multiprogramacin en memoria real, pero si lo que se intercambian son
segmentos o pginas, se puede hablar de multiprogramacin con memoria virtual.
La memoria virtual se apoya en varias tcnicas interesantes para lograr su objetivo. Una
de las teoras ms fuertes es la del `conjunto de trabajo', la cual se refiere a que un
programa o proceso no est usando todo su espacio de direcciones en todo momento,
sino que existen un conjunto de localidades activas que conforman el `conjunto de
trabajo'. Si se logra que las pginas o segmentos que contienen al conjunto de trabajo
estn siempre en RAM, entonces el programase desempear muy bien.
Otro factor importante es si los programas exhiben un fenmeno llamado `localidad', lo
cual quiere decir que algunos programas tienden a usar mucho las instrucciones que
estn cercanas a la localidad de la instruccin que se est ejecutando actualmente
La memoria es parte central de cualquier sistema de cmputo actual. Es un arreglo de
palabras o bytes, cada uno con su propia direccin. La interaccin se logra por medio de
una secuencia de lectura escritura a direcciones especficas de la memoria. La UCP
busca informacin de la memoria o la almacena en ella.
Por ejemplo, para la ejecucin de una instruccin primero buscar la instruccin de la
memoria. Luego la instruccin se decodifica y esto puede provocar que se busquen
operados de la memoria. Despus de aplicar la instruccin a los operndos, los resultados
pueden guardarse en memoria. Obsrvese que la unidad de memoria slo ve el flujo de
direcciones de memoria, no sabe como se generan o para que son las instrucciones.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

32
El trmino almacenamiento virtual suele asociarse con la capacidad de tener acceso a
direcciones en un espacio de almacenamiento mucho mayor que el disponible en el
almacenamiento primario. Los dos mtodos ms comunes para poner en prctica el
almacenamiento virtual son la paginacin y segmentacin, los cuales se vern ms
adelante.
Es por eso que la clave de este concepto es la asociacin de direcciones a las que hace
referencia un proceso en ejecucin en el almacenamiento secundario. A estas direcciones
se les conoce como direcciones virtuales. A las direcciones que estn disponibles en el
almacenamiento primario se les conoce como direcciones reales. El intervalo entre cada
una de las direcciones virtuales o reales se les conoce como espacio entre direcciones
virtuales o reales segn sea el caso.
Se han desarrollado varios mtodos para asociar las direcciones virtuales con las reales.
Uno de ellos es el mecanismo de traduccin dinmica de direcciones, que convierte las
direcciones virtuales en reales mientras se ejecuta un proceso. Todos estos sistemas
tienen la propiedad de que las direcciones del almacenamiento virtual son contiguas, pero
no necesariamente en el almacenamiento virtual. De esta forma se libera al usuario de la
preocupacin de ejecutar uno o varios procesos sin ver la posicin de los procesos.
3.2 Mecanismos de Asignacin.
Enlace de Direcciones.
Para ejecutar un proceso este debe cargarse en memoria. Generalmente el proceso
reside en disco como archivo binario o ejecutable. El conjunto de procesos en disco que
esperan entrar en la memoria para ejecutarse forman la cola de entrada.
El procedimiento normal consiste en seleccionar uno de los procesos de la cola de
entrada y cargarlos en memoria. Esto ocasiona la relocalizacin de direccin o enlaces a
referencias externas, segn sea el caso. Mientras se ejecuta un programa, se accede a
las instrucciones o datos en la memoria. Finalmente, el programa termina de ejecutarse y
su espacio en memoria se declara disponible.
Un proceso de usuario puede residir en cualquier parte de la memoria fsica. Por esto,
aunque el espacio de direcciones de la computadora comience con 00000, no
necesariamente debe de ser ocupado por el proceso del usuario En la mayora de los
casos, un programa de usuario pasar por varias etapas (algunas pueden ser optativas)
antes de ejecutarse. En estas etapas las direcciones pueden representarse de maneras
distintas. En un programa fuente las direcciones son generalmente simblicas. Un
compilador enlazar estas direcciones simblicas con direcciones relocalizables.
A su vez, el director de enlaces o cargador enlazar las direcciones relocalizables con
direcciones absolutas. Cada enlace es una correspondencia entre un espacio de
direcciones y otro (hueco de direcciones virtuales). El enlace de las instrucciones y datos
con las direcciones de memoria casi siempre puede efectuarse en cualquier etapa del
camino:

Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

33
Compilacin. Si en la compilacin se sabe donde residir el programa en memoria, se
puede generar cdigo absoluto. Es decir, si se sabe la posicin donde
inicia el cdigo, entonces el compilador comenzara en esa posicin y se
extendera a partir de ah. Si se cambia la posicin de inicio, ser
necesario volver a compilar el cdigo. Los programas con formato. COM
se enlazan de manera absoluta durante la compilacin.
Carga. Si en la compilacin no se conoce donde residir el programa en
memoria, entonces el compilador deber cargar el cdigo relocalizable.
Ejecucin. Si durante la ejecucin el proceso puede moverse de un segmento de
memoria a otro, entonces el enlace final se debe postergar hasta el
momento de la ejecucin. Esto depende de hardware especial

3.3 Implementacin de los Mecanismos de Asignacin de Memoria Virtual.
Existen tres estrategias de administracin de la memoria virtual:
OBTENCIN
Determina cuando es que se debe transferir una pgina o segmento del
almacenamiento secundario al primario. Se espera a que un proceso en
ejecucin haga referencia a una pgina o segmento antes de traer la
pgina o segmento antes de traer la pgina o segmento al
almacenamiento primario, y adems intenta determinar por anticipado a
que lugar se har referencia.
COLOCACIN
Determina en que lugar del almacenamiento primario se debe colocar
una pgina o segmento entrante. Esto hace que se vuelva una decisin
trivial de colocacin, porque la pgina entrante se puede ubicar en
cualquier marco de pgina disponible.
REMPLAZO
Sirve para decidir cual pgina o segmento se debe desplazar para dejar
espacio a una pgina o segmento entrante cuando est ocupado el
almacenamiento primario. En este caso, las rutinas de almacenamiento
primario se van a desplazar para dejar espacio a una pgina
entrante. Estrategia de colocacin del almacenamiento.
Las estrategias de colocacin del almacenamiento sirven para determinar en que lugar del
almacenamiento primario se deben colocar los programas y datos entrantes.


Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

34
Las primeras estrategias
ESTRATEGIA DE MEJOR
AJUSTE
Un trabajo que entre en le sistema
se colocar en el hueco del
almacenamiento primario principal
en el que quepa mejor e que deje
la menor cantidad de espacios
posibles sin utilizar. Para muchos,
el mejor ajuste parece ser
intuitivamente la estrategia ms
efectiva.

ESTRATEGIA DE PRIMER
AJUSTE
Un trabajo que entre en el sistema
se colocar en el almacenamiento
primario principal en el primer
hueco disponible, lo
suficientemente grande para
contenerlo.

Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

35
ESTRATEGIA DE PEOR AJUSTE
consiste en colocar un programa
en el almacenamiento primario en
el hueco donde peor se ajusta, es
decir, el hueco ms grande.



3.4. Fragmentacin
La fragmentacin es la memoria que queda desperdiciada al usar los mtodos de gestin
de memoria que se vieron en los mtodos anteriores. Tanto el primer ajuste, como el
mejor y el peor producen fragmentacin externa.
La fragmentacin es generada cuando durante el reemplazo de procesos quedan huecos
entre dos o ms procesos de manera no contigua y cada hueco no es capaz de soportar
ningn proceso de la lista de espera.
La fragmentacin puede ser:
Fragmentacin Externa: existe el espacio total de memoria para satisfacer un
requerimiento, pero no es contigua.
Fragmentacin Interna: la memoria asignada puede ser ligeramente mayor que la
requerida; esta referencia es interna a la particin, pero no se utiliza.


Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

36

Fragmentacin Interna y Externa

La fragmentacin externa se puede reducir mediante la compactacin para colocar toda la
memoria libre en un solo gran bloque, pero esta solo es posible si la relocalizacin es
dinmica y se hace en tiempo de ejecucin.

3.5 Paginacin.

La paginacin pura en el manejo de memoria consiste en que el sistema operativo divide
dinmicamente los programas en unidades de tamao fijo ( generalmente mltiplos de 1
kilobyte) los cuales va a manipular de RAM a disco y viceversa. Al proceso de
intercambiar pginas, segmentos o programas completos entre RAM y disco se le conoce
como `intercambio' o `swapping'. En la paginacin, se debe cuidar el tamao de las
pginas, ya que si stas son muy pequeas el control por parte del sistema operativo para
saber cules estn en RAM y cuales en disco, sus direcciones reales, etc; crece y
provoca mucha `sobrecarga' (overhead). Por otro lado, si las pginas son muy grandes, el
overhead disminuye pero entonces puede ocurrir que se desperdicie memoria en
procesos pequeos. Debe haber un equilibrio.
Uno de los aspectos ms importantes de la paginacin, as como de cualquier esquema
de memoria virtual, es la forma de traducir una direccin virtual a direccin real. Para
explicarlo, obsrvese la figura siguiente
Teor
Prof. Germ


Como se observa, una direccin virtual `v'= ( b
virtual `b' y un desplazamiento `d'. Por ejemplo, si el sistema ofrece un espacio de
direcciones virtuales de 64 kilobytes, con pginas de 4 kilobytes y la RAM slo es de 32
kilobytes, entonces tenemos 16 pginas v
virtuales contiene 16 entradas, una por cada pgina virtual. En cada entrada, o registro de
la tabla de direcciones virtuales se almacenan varios datos: si la pgina est en disco o en
memoria, quin es el dueo de la pgina, si la pgina ha sido modificada o es de lectura
nada ms, etc. Pero el dato que nos interesa ahora es el nmero de pgina real que le
corresponde a la pgina virtual. Obviamente, de las 16virtuales, slo ocho tendrn un
valor de control que dice que la pgina est cargada en RAM, as como la direccin real
de la pgina, denotada en la figura como b'
virtual nmero 14 la tabla dice que, efectivamente est cargada y es la pgina real 2(
direccin de memoria 8192 ).Una vez encontrada la pgina real, se le suma el
desplazamiento, que es la direccin que deseamos dentro de la pgina buscada ( b' + d ).
La tabla de direcciones virtuales a veces est ubicada en la misma memoria RAM, por lo
cual se necesita saber en qu direccin comienza, en este caso, existe un registro con la
direccin base denotada por la letra `a' en la figura anterior.

Cuando se est buscando una pgina cualquiera y sta no est cargada, surge lo que se
llama un fallo de pgina (page fault ). Esto es caro para el manejador de memoria, ya que
tiene que realizar una serie de pasos extra para poder resolverla direccin deseada y
darle su contenido a quien lo pide. Primero, se detecta que la pgina no est presente y
entonces se busca en la tabla la direccin de esta pgina en disco. Una vez localizada en
disco se intenta cargar en alguna pgina libre de RAM. Si no hay pginas libres se tiene
que escoger alguna para enviarla hacia el disco. Una vez escogida y enviada a disco, se
marca su valor de control en la tabla de direcciones virtuales para indicar que ya no est
en RAM, mientras que la pgina deseada se carga en RAM y se marca su valor para
indicar que ahora ya est en RAM. Todo este procedimiento es caro, ya que se sabe que
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Guti
El mecanismo de paginacin
Como se observa, una direccin virtual `v'= ( b, d) est formada por un nmero de pgina
virtual `b' y un desplazamiento `d'. Por ejemplo, si el sistema ofrece un espacio de
direcciones virtuales de 64 kilobytes, con pginas de 4 kilobytes y la RAM slo es de 32
kilobytes, entonces tenemos 16 pginas virtuales y 8 reales. La tabla de direcciones
virtuales contiene 16 entradas, una por cada pgina virtual. En cada entrada, o registro de
la tabla de direcciones virtuales se almacenan varios datos: si la pgina est en disco o en
de la pgina, si la pgina ha sido modificada o es de lectura
nada ms, etc. Pero el dato que nos interesa ahora es el nmero de pgina real que le
corresponde a la pgina virtual. Obviamente, de las 16virtuales, slo ocho tendrn un
dice que la pgina est cargada en RAM, as como la direccin real
de la pgina, denotada en la figura como b' Por ejemplo, supngase que para la pgina
virtual nmero 14 la tabla dice que, efectivamente est cargada y es la pgina real 2(
memoria 8192 ).Una vez encontrada la pgina real, se le suma el
desplazamiento, que es la direccin que deseamos dentro de la pgina buscada ( b' + d ).
La tabla de direcciones virtuales a veces est ubicada en la misma memoria RAM, por lo
a saber en qu direccin comienza, en este caso, existe un registro con la
direccin base denotada por la letra `a' en la figura anterior.
Cuando se est buscando una pgina cualquiera y sta no est cargada, surge lo que se
e fault ). Esto es caro para el manejador de memoria, ya que
tiene que realizar una serie de pasos extra para poder resolverla direccin deseada y
darle su contenido a quien lo pide. Primero, se detecta que la pgina no est presente y
la tabla la direccin de esta pgina en disco. Una vez localizada en
disco se intenta cargar en alguna pgina libre de RAM. Si no hay pginas libres se tiene
que escoger alguna para enviarla hacia el disco. Una vez escogida y enviada a disco, se
valor de control en la tabla de direcciones virtuales para indicar que ya no est
en RAM, mientras que la pgina deseada se carga en RAM y se marca su valor para
indicar que ahora ya est en RAM. Todo este procedimiento es caro, ya que se sabe que
gico de Tuxtla Gutirrez)
37

, d) est formada por un nmero de pgina
virtual `b' y un desplazamiento `d'. Por ejemplo, si el sistema ofrece un espacio de
direcciones virtuales de 64 kilobytes, con pginas de 4 kilobytes y la RAM slo es de 32
irtuales y 8 reales. La tabla de direcciones
virtuales contiene 16 entradas, una por cada pgina virtual. En cada entrada, o registro de
la tabla de direcciones virtuales se almacenan varios datos: si la pgina est en disco o en
de la pgina, si la pgina ha sido modificada o es de lectura
nada ms, etc. Pero el dato que nos interesa ahora es el nmero de pgina real que le
corresponde a la pgina virtual. Obviamente, de las 16virtuales, slo ocho tendrn un
dice que la pgina est cargada en RAM, as como la direccin real
Por ejemplo, supngase que para la pgina
virtual nmero 14 la tabla dice que, efectivamente est cargada y es la pgina real 2(
memoria 8192 ).Una vez encontrada la pgina real, se le suma el
desplazamiento, que es la direccin que deseamos dentro de la pgina buscada ( b' + d ).
La tabla de direcciones virtuales a veces est ubicada en la misma memoria RAM, por lo
a saber en qu direccin comienza, en este caso, existe un registro con la
Cuando se est buscando una pgina cualquiera y sta no est cargada, surge lo que se
e fault ). Esto es caro para el manejador de memoria, ya que
tiene que realizar una serie de pasos extra para poder resolverla direccin deseada y
darle su contenido a quien lo pide. Primero, se detecta que la pgina no est presente y
la tabla la direccin de esta pgina en disco. Una vez localizada en
disco se intenta cargar en alguna pgina libre de RAM. Si no hay pginas libres se tiene
que escoger alguna para enviarla hacia el disco. Una vez escogida y enviada a disco, se
valor de control en la tabla de direcciones virtuales para indicar que ya no est
en RAM, mientras que la pgina deseada se carga en RAM y se marca su valor para
indicar que ahora ya est en RAM. Todo este procedimiento es caro, ya que se sabe que
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

38
los accesos a disco duro son del orden de decenas de veces ms lentos que en RAM. En
el ejemplo anterior se mencion que cuando se necesita descargar una pgina de RAM
hacia disco se debe de hacer una eleccin. Para realizar esta eleccin existen varios
algoritmos, los cuales se describen enseguida.

La primera en entrar, primera en
salir
Se escoge la pgina que haya entrado primero y est cargada en RAM.
Se necesita que en los valores de control se guarde un dato de tiempo.
No es eficiente porque no aprovecha ninguna caracterstica de ningn
sistema. Es justa e imparcial.
La no usada recientemente
Se escoge la pgina que no haya sido usada (referenciada) en el ciclo
anterior. Pretende aprovechar el hecho de la localidad en el conjunto de
trabajo. R La usada menos recientemente: Es parecida a la anterior,
pero escoge la pgina que se us hace ms tiempo, pretendiendo que
como ya tiene mucho sin usarse es muy probable que siga sin usarse
en los prximos ciclos. Necesita de una bsqueda exhaustiva.
La no usada frecuentemente
Este algoritmo toma en cuenta no tanto el tiempo, sino el nmero de
referencias. En este caso cualquier pgina que se use muy poco,
menos veces que alguna otra.
La menos frecuentemente usada
Es parecida a la anterior, pero aqu se busca en forma exhaustiva
aquella pgina que se ha usado menos que todas las dems. R En
forma aleatoria: Elige cualquier pgina sin aprovechar nada. Es justa e
imparcial, pero ineficiente.

Otro dato interesante de la paginacin es que ya no se requiere que los programas estn
ubicados en zonas de memoria adyacente, ya que las pginas pueden estar ubicadas en
cualquier lugar de la memoria RAM. Tomando en consideracin que la paginacin
trabaja con memoria virtual, entonces recordaremos que en la memoria virtual se
encuentran las direcciones virtuales, las cuales se generan por ndices, registros,
palabras o bytes. Estas direcciones virtuales no pasan de forma directa al bus de
memoria, sino que van a la unidad de administracin de memoria (MMU), y por medio de
un chip se asocian las virtuales con las reales.

La paginacin surge de la necesidad de crear espacios de memoria contiguos, pues
debido a que la fragmentacin genera espacios dispersos de almacenamiento, no se
pueden ejecutar los procesos. Claro esta que esto se soluciona mediante la paginacin y
la compactacin. La paginacin permite que la memoria de un proceso o sea
contigua(almacenamiento secundario), pero al ser asignado al almacenamiento primario
necesariamente seria contigua. El usuario ya no se preocupa al tener espacio disponible
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

39
en el almacenamiento secundario, pues as se lograran ejecutar los procesos. La
paginacin es un mtodo comn en los sistemas operativos.


El reemplazo de pginas

La memoria fsica se divide en bloques de tamao fijo llamados MARCOS. La memoria
lgica se divide en bloques del mismo tamao PGINAS. Cuando un proceso se va ha
ejecutar, sus paginas se cargan desde el almacenamiento auxiliar (secundario) en
cualquiera de los marcos disponibles. Por lo tanto al crear al crear la paginacin (pginas)
se crean tambin los marcos de las pginas resultantes del nmero de pginas que
ocurran. Viendo entonces que la paginacin se da en el almacenamiento secundario
(disco, dispositivos), estamos haciendo uso del hardware por lo que el hardware
representa el apoyo para la paginacin.
3.6 ALGORITMOS DE REEMPLAZO DE PGINAS
Existen muchos y diferentes algoritmos para el reemplazo de pgina, pero en general se
prefieren los que presenten el menor nmero de fallos de pgina, Evaluamos
un algoritmo ejecutndolo para una serie determinada de referencias a memoria y
calculando el nmero de fallos pgina.
A la serie de referencia a memoria se le llama serie de referencias. Las series de
referencias pueden obtener de un resto a un sistema anotando la direccin de cada
referencia a memoria lo cual producira un gran numero de datos considerando dos
aspectos. Para un tamao de pgina dado, el cual est determinado por el hardware o el
sistema, necesitamos considerar slo el nmero de pginas, no toda la direccin.
Si tenemos una referencia a una pgina p, entonces ninguna referencia a la pagina p que
se represente inmediatamente despus provocar un fallo de pagina, ya que la pgina p
se encuentra en memoria. Por lo anterior resumiendo los fallos de pgina, solo ocurren en
dos ocasiones:
Cundo la memoria est vaca y entran solo las pginas disponibles
de acuerdo al tamao del marco de pginas.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

40
Cuando entran las dems pginas en localidades diferentes a la
pgina que entra en ese momento. Para realizar esta eleccin
existen varios algoritmos, los cuales se describen enseguida:

o La primera en entrar, primera en salir: Se escoge la pgina que haya entrado
primero y est cargada en RAM. Se necesita que en los valores de control segura
de un dato de tiempo. No es eficiente porque no aprovecha ninguna caracterstica
de ningn sistema. Es justa e imparcial.
o La no usada recientemente: Se escoge la pgina que no haya sido usada
(referenciada) en el ciclo anterior. Pretende aprovechar el hecho de la localidad en
el conjunto de trabajo.
o La usada menos recientemente: Es parecida a la anterior, pero escoge la pgina
que se us hace ms tiempo, pretendiendo que como ya tiene mucho sin usarse
es muy probable que siga sin usarse en los prximos ciclos. Necesita de una
bsqueda exhaustiva.
o La no usada frecuentemente: Este algoritmo toma en cuenta no tanto el tiempo,
sino el nmero de referencias. En este caso cualquier pgina que se use muy
poco, menos veces que alguna otra.
o La menos frecuentemente usada: Es parecida a la anterior, pero aqu se busca
en forma exhaustiva aquella pgina que se ha usado menos que todas las dems.
o En forma aleatoria: Elige cualquier pgina sin aprovechar nada. Es justa e
imparcial, pero ineficiente. Otro dato interesante de la paginacin es que ya no se
requiere que los programas estn ubicados en zonas de memoria adyacente, ya
que las pginas pueden estar ubicadas en cualquier lugar de la memoria RAM.

ALGORITMO FIFO

El algoritmo de remplazo de pginas ms sencillo es el primero en entrar, primero en salir
(First Input, first output). Un algoritmo FIFO asocia a cada pgina el instante en el que se
trajo a memoria. Cuando hay que reemplazar una pgina se elige la ms antigua.


Si construimos una cola FIFO que contenga las en memoria reemplazamos la pgina de
inicio de la cola y cuando se introduce en memoria una pgina, la insertamos al final de la
cola. Por ejemplo Teniendo la serie de referencias con un marco de pgina de tamao
3, observamos: 7 0 1 2 3 0 4 2 3 0 1 2 7 0 1
7 7 7 2 2 2 4 4 4 0 0 0 7 7 7
0 0 0 3 3 3 2 2 2 1 1 1 0 0
1 1 1 0 0 0 3 3 3 2 2 2 1

Nota: Los cuadros en color gris indican las pginas que entran.

Despus de descargar una pagina activa para incorporar una pgina nueva, se provocar
casi de inmediato una falla por la pgina activa. Tendremos que reemplazar otra pgina
para devolver memoria la pgina activa. De esta manera, una mala eleccin en el
reemplazo aumenta la cantidad de fallos de pginas y frena la ejecucin de procesos,
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

41
pero no provoca ejecucin incorrecta. Al elegir una pgina equivocada el sistema
operativo tiene varias opciones conocidas como

ANOMALIA DE BELADY.

1. Abortar el proceso del usuario lo cual no es la mejor opcin ya que el sistema
operativo realiza la paginacin para mejorar la utilizacin y productividad el
sistema de computadora.
2. Descargar un proceso de pginas por cualquier algoritmo de reemplazo.
3. Reemplazo de pginas por cualquier algoritmo de reemplazo.

Despus de descargar una pagina activa para incorporar una pgina nueva, se provocar
casi de inmediato una falla por la pgina activa. Tendremos que reemplazar otra pgina
para devolver memoria la pgina activa. De esta manera, una mala eleccin en el
reemplazo aumenta la cantidad de fallos de pginas y frena la ejecucin de procesos,
pero no provoca ejecucin incorrecta.En este ejemplo se muestra como se implementan
los algoritmos de reemplazo de pginas. Tomamos como referencia la siguiente serie:

9 0 1 8 3 1 0 4 6 3 8 7 0 8 2 5 1 3 4 5 0 7 1 2 8 4 6 7 1 2 0 9.

1 1 1 1 0 0 0 3 3 3 0 0 0 0 1 1 1 5 5 5 1 1 1 4 4 4 1 1 1 9
0 0 3 3 3 3 6 6 6 7 7 7 7 5 5 5 4 4 4 7 7 7 8 8 8 7 7 7 0 0
9 8 8 8 8 4 4 4 8 8 8 8 2 2 2 3 3 3 0 0 0 2 2 2 6 6 6 2 2 2
Total de fallos = 30
Nota: Los cuadros en color gris indican las pginas que entran.

ALGORITMO PTIMO

Una consecuencia del estudio de la anomala de Belady, fue la bsqueda de un algoritmo
de reemplazo de pginas ptimo. Este algoritmo tiene la menor tasa de fallos de pgina
de todos los algoritmos: un algoritmo ptimo nunca presentar la anomala de Belady.
Consiste en reemplazar la pgina que no se usar durante el mayor periodo de tiempo.
Por ejemplo considerando la siguiente serie de referencias, tendremos que:
7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1

7 7 7 2 2 2 2 2 7
0 0 0 0 4 0 0 0
1 1 3 3 3 1 1

Nota: Los cuadros en negrillas indican las pginas que entran.

Las primeras tres referencias causan fallas que llenan los tres marcos vacos. La
referencia a la pgina 2 reemplaza a la pgina 7 hasta la referencia nmero 1 , la pgina 0
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

42
se usar en la pgina 5 y la pgina 1 en la referencia No. 14. La referencia a la pgina 3
reemplaza a la pgina 1, ya que esta ser la ltima de las 3 pginas en memoria a la que
se volver a hacer referencia. Con slo 9 fallos de pgina el reemplazo ptimo es mucho
mejor que el FIFO que con la misma serie presenta 15 fallos de pgina. De hecho, ningn
algoritmo de reemplazo puede procesar esta serie de referencias con menos de 9 fallos
usando un marco de tamao 3. Por desgracia, es difcil de implantar el algoritmo de
reemplazo de pginas ptimo, ya que se requiere el conocimiento a futuro de la serie de
referencias.


ALGORITMO LRU

Si el algoritmo no es tan factible quiz sea posible una aproximacin. La principal
diferencia entre el FIFO y el PTIMO, es que el FIFO utiliza el instante en que entr la
pgina a memoria; el PTIMO utiliza el tiempo en que usar la pgina. Si Utilizamos el
pasado reciente como aproximacin de que suceder en un futuro cercano,
reemplazaremos la pgina que no se ha utilizado durante el mayor periodo de tiempo
posible. Este es el algoritmo MENOS RECIENTE USADO (LRU, Least Recently Used). El
reemplazo LRU asocia a cada pgina al instante en que se us por ltima vez. Cuando
hay que reemplazar una pgina, LRU asocia la pgina que no ha sido utilizada durante el
mayor perodo de tiempo posible, es decir, ve hacia atrs en el tiempo (su utilizacin en el
pasado). Por ejemplo, si tenemos la misma serie de referencias que en el ptimo 7, 0, 1,
2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1,2,0,1,7,0,1.
7 7 7 2 2 4 4 4 0 1 1 1
0 0 0 0 0 0 3 3 3 0 0
1 1 3 3 2 2 2 2 2 7

Nota: Los cuadros en negrillas indican las pginas que entran.


El algoritmo LRU produce 12 fallos. Las cinco primeras son las mismas que en el ptimo,
sin embargo, cuando se presenta la referencia a la pgina 4, el reemplazo observa que de
las 3 pginas en memoria, la 2 fue la menos reciente usada. La pagina que se us ms
recientemente es la pgina 0 y justo antes se us la pgina 3. Por lo tanto, el LRU
reemplaza a la pgina 2, sin saber que est a punto de usarse. Luego, cuando s de la
falla por la pgina 2, el algoritmo LRU puede reemplazar la pgina 3. A pesar de estos
problemas, el reemplazo por LRU con 12 fallos sigue siendo mejor que el FiFo con 15
fallos.

La poltica de implantar el algoritmo LRU es generalmente buena, sin embargo existe el
problema de cmo implantar el reemplazo de pginas. El problema consiste en
determinar un orden para los marcos definidos por el instante del ltimo uso. El
algoritmo LRU se puede implementar de dos maneras:

Contadores. A cada entrada de la tabla de pginas asociamos un registros de
instante de uso y aadimos al CPU un reloj lgico o contador. El reloj se
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

43
incremento con cada referencia a memoria. De esta manera siempre tendremos el
tiempo de la ultima referencia a la pgina y reemplazaremos la pgina con menor
valor.
Pilas. Cuando se hace referencia a una pgina, se saca la pila y se coloca en la
parte superior. De esta manera, en la parte superior de la pila siempre se
encuentra la pila ms recientemente usada, y en la parte inferior de la pila la
pgina menos reciente usada. Puesto que las entradas deben sacarse de la mitad
de la pila, puede implantarse mejor con una lista doblemente ligada.
La siguiente serie muestra el algoritmo : 9 0 1 8 3 1 0 4 6 3 8 7 0 8 2 5 1 3 4 5 0 7
1 2 8 4 6 7 1 2 0 9.
1 1 1 1 1 1 6 6 6 7 7 7 2 2 2 3 3 3 0 0 0 2 2 2 6 6 6 2 2 2
0 0 3 3 3 4 4 4 8 8 8 8 8 8 1 1 1 5 5 5 1 1 1 4 4 4 1 1 1 9
9 8 8 8 0 0 0 3 3 3 0 0 0 5 5 5 4 4 4 7 7 7 8 8 8 8 8 8 0 0
Total de fallos = 29

Nota: Los cuadros en color gris indican las pginas que entran.


ALGORITMOS APROXIMADOS (BIT DE REFERENCIA)

Pocos sistemas proporcionan suficiente ayuda del hardware para un verdadero reemplazo
de pginas LRU. Algunos sistemas no ofrecen ningn apoyo del hardaware, por lo que
hay que emplear otros algoritmos de reemplazo de pginas, sin embargo, muchos
sistemas ofrecen cierta ayuda en la forma de un bit de referencia. El hardware coloca un 1
en el bit de referencia para una pgina cada vez que se hace referencia a ella. Los bits de
referencia estn asociados a cada entrada de la tabla de pginas.


ALGORITMO DE BITS ADICIONALES DE REFERENCIA.

Podemos obtener informacin del uso de las pginas en un algoritmo de reemplazo. Esta
informacin se puede implementar utilizando una tabla adicional de 8 bits para cada
pgina. Estos registros contienen la historia de utilizacin de la pgina durante los 8
periodos. Si el registro del desplazamiento contiene 00000000, entonces la pgina no se
ha utilizado por lo menos en 8 periodos. Una pgina que se utiliza cuando menos una vez
cada periodo tendra un, valor de 1 1 1 1 1 1 1 en su registro adicional de referencia al
desplazamiento de la pgina. Una pgina con valor de 1 1 0 0 0 1 0 0, si interpretamos
esto en bytes de 8 bits como enteros sin signo, la pgina con el menor nmero de 1's a la
izquierda es la pgina menos reciente usada y puede entonces reemplazarse. Por lo
mismo, puede haber ms de una pgina que, casi no se est usando, entonces habra
que aplicar una seleccin FIFO entre ellas. Por Ejemplo:

Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

44
El proceso ms usado = 2
El proceso menos usado = 9
El proceso con mayor
demanda = 2
El proceso con menor
demanda = 8
El proceso nunca usado = 3, 5

PROCESO
0 1100 0000
1 0111 0001
2 1110 0011
3 0000 0000
4 0000 1110
5 0000 0000
6 0001 1100
7 0011 1000
8 0000 0111
9 1000 0000



ALGORITMO DE SEGUNDA OPORTUNIDAD.

El algoritmo bsico para el reemplazo de segunda oportunidad es el FIFO, sin embargo,
cuando se selecciona una pgina examinamos su bit de referencia; si el bit de referencia
es igual a 0, reemplazarnos la Sin embargo, si el bit de referencia es 1, damos a la pgina
la segunda oportunidad y pasando s a seleccionar la siguiente pgina en el orden
FIFO. Cuando a una pgina se le da segunda oportunidad, se borra su bit de referencia y
se establece como llegada actual, de esa pgina. De esta manera, una de las pginas a
las que se les brinde una segunda unidad no sern reemplazadas hasta que todas las
dems pginas se reemplacen (o que se les otorgue una segunda oportunidad). Adems
si una pgina se usa con frecuencia suficiente para mantener su bit de referencia en 1,
nunca ser reemplazada.


Algoritmo de segunda oportunidad


Caractersticas de la paginacin:
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

45
El espacio de direcciones lgico de un proceso puede ser no contiguo.
Se divide la memoria fsica en bloques de tamao fijo llamados marcos (frames).
Se divide la memoria en bloques de tamao llamados paginas.
Se mantiene informacin en los marcos libres.
Para correr un programa de n paginas de tamao, se necesitan encontrara n marcos y
cargar el programa.
Se establece una tabla de paginas para trasladar las direcciones lgicas a fsicas.
Se produce fragmentacin interna.
Ventajas de la paginacin
1. Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo
en memoria, y el resto se cargara bajo la solicitud.
2. No es necesario que las paginas estn contiguas en memoria, por lo que no se
necesitan procesos de compactacin cuando existen marcos de paginas libres
dispersos en la memoria.
3. Es fcil controlar todas las pginas, ya que tienen el mismo tamao.
4. El mecanismo de traduccin de direcciones (DAT) permite separar los conceptos
de espacio de direcciones y espacios de memoria. Todo el mecanismo es
transparente al usuario.
5. Se libera al programador de la restriccin de programar para un tamao fsico de
memoria, con lo que s e aumenta su productividad. Se puede programar en
funcin de una memoria mucho ms grande a la existente.
6. Al no necesitarse cargar un programa completo en memoria para su ejecucin, se
puede aumentar el numero de programas multiprogramndose.
7. Se elimina el problema de fragmentacin externa.
Desventajas de la paginacin
1. El costo de hardware y software se incrementa, por la nueva informacin que debe
manejarse y el mecanismo de traduccin de direcciones necesario. Se consume
mucho mas recursos de memoria, tiempo en el CPU para su implantacin.
2. Se deben reservar reas de memoria para las PMT de los procesos. Al no ser fija
el tamao de estas, se crea un problema semejante al de los programas (como
asignar un tamao ptimo sin desperdicio de memoria, u "ovearhead" del
procesador).
3. Aparece el problema de fragmentacin interna. As, si se requieren 5K para un
programa, pero las paginas son de 4K, debern asignrseles 2 paginas (8k), con
lo que quedan 3K sin utilizar. La suma de los espacios libres dejados de esta
forma puede ser mayor que el de varias paginas, pero no podr ser utilizados.
Debe asignarse un tamao promedio a las pginas, evitando que si son muy
pequeas, se necesiten TABLAS BMT y PMT muy grandes, y si son muy grandes,
se incremente el grado de fragmentacin interna.


3.7 Segmentacin.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

46
Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja
su divisin lgica; llevndose a cabo una agrupacin lgica de la informacin en bloques
de tamao variable denominados segmentos. Cada uno de ellos tienen informacin lgica
del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa
consiste de una coleccin de segmentos, que generalmente reflejan la divisin lgica del
programa.

La segmentacin permite alcanzar los siguientes objetivos:
1. Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a
cambios y recopilaciones, sin afectar por ello al resto del programa.
2. Estructuras de datos de largo variable: donde cada estructura tiene su propio
tamao y este puede variar.
3. Proteccin: se puede proteger los mdulos del segmento contra accesos no
autorizados.
4. Comparticin: dos o ms procesos pueden ser un mismo segmento, bajo reglas de
proteccin; aunque no sean propietarios de los mismos.
5. Enlace dinmico entre segmentos: puede evitarse realizar todo el proceso de
enlace antes de comenzar a ejecutar un programa. Los enlaces se establecern
solo cuando sea necesario.
La segmentacin se aprovecha del hecho de que los programas se dividen en partes
lgicas, como son las partes de datos, de cdigo y de pila (stack). La segmentacin
asigna particiones de memoria a cada segmento de un programa y busca como objetivos
el hacer fcil el compartir segmentos ( por ejemplo libreras compartidas ) y el intercambio
entre memoria y los medios de almacenamiento secundario.
La segmentacin permite que un programa y sus datos puedan ocupar muchos bloques
separados de almacenamiento real. Los bloques a diferencia de la paginacin no tienen
que ser del mismo tamao pero si deben estar formados por localidades contiguas.
Uno de los esquemas para lograr la proteccin del almacenamiento en los sistemas de
segmentaciones el empleo de claves de proteccin en el almacenamiento. Estos
sistemas de almacenamiento virtual son segmentacin se forman por un par ordenado
V=(s,d), donde s es el nmero de segmento en el almacenamiento y d es el lugar de
desplazamiento dentro del segmento. Un proceso slo se puede ejecutar si su segmento
activo se encuentra en el almacenamiento primario, y sus localidades se colocan en
localidades contiguas.
La traduccin dinmica de la segmentacin se realiza de la siguiente forma:
1. Un proceso de ejecucin hace referencia a una direccin de almacenamiento
virtual V=(s,d).
2. Un mecanismo de correspondencia de segmentos busca el segmento en la tabla
de correspondencia de segmentos.
3. Se determinar el segmento se encuentra en el almacenamiento real.
4. Se ejecuta el proceso.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

47

La Segmentacin
Una de las cualidades de la segmentacin es el cuidadoso control de acceso que puede
realizarse, se logra asignando a cada proceso ciertos derechos de acceso a cada
segmento, y de hecho, denegando por completo el acceso a muchos segmentos no
localizables.
La siguiente tabla muestra los tipos de control de acceso ms comunes empleados por los
sistemas actuales. Si un proceso tiene acceso para la lectura a un segmento, podr tener
cualquier informacin contenida en el segmento. Si el proceso tiene acceso de escritura a
un. segmento, entonces puede modificar cualquier parte del segmento y colocar
informacin adicional.
Un proceso con derecho de ejecucin, puede ejecutar ese segmento como programa.
Tipo de acceso Abreviatura Aplicacin
Lectura R Se puede leer un segmento
Escritura W Puede modificar un segmento

Cada entrada en la tabla de segmentos tiene un formato similar al mostrado en la figura.
Se tienen campos que indican la longitud, los permisos, la presencia o ausencia y
direccin de inicio en memoria real del segmento
Teor
Prof. Germ

Segn amplios experimentos [Deitel93] sugieren que un tamao de pginas de 1024
bytes generalmente ofrece un
tener pginas del mayor tamao posible hara que el desempeo fuera ptimo pero no es
as, a menos que la pgina fuera del tamao del proceso total. No es as con tamaos
grandes de pgina menores qu
una pgina por motivo de un solo byte o palabra, se estn trayendo muchsimos ms
bytes de los deseados. La dependencia entre el nmero de fallas respecto al tamao de
las pginas se muestra en la fig
Un hecho notable en los sistemas que manejan paginacin es que cuando el proceso
comienza a ejecutarse ocurren un gran nmero de fallos de pgina, porque es cuando
est referenciando muchas direcciones nuevas por vez primera, despus el sistema se
estabiliza, conforme el nmero de marcos asignados se acerca al tamao del conjunto de
trabajo.
Ventajas de la segmentacin
El esquema de segmentacin ofrece las siguientes ventajas:
El programador puede conocer las unidades lgicas de su programa, dndol
tratamiento particular.
Es posible compilar mdulos separados como segmentos el enlace entre los
segmentos puede suponer hasta tanto se haga una referencia entre segmentos.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Guti

Segn amplios experimentos [Deitel93] sugieren que un tamao de pginas de 1024
bytes generalmente ofrece un desempeo muy aceptable. Intuitivamente parecera que el
tener pginas del mayor tamao posible hara que el desempeo fuera ptimo pero no es
as, a menos que la pgina fuera del tamao del proceso total. No es as con tamaos
grandes de pgina menores que el proceso, ya que cuando se trae a memoria principal
una pgina por motivo de un solo byte o palabra, se estn trayendo muchsimos ms
de los deseados. La dependencia entre el nmero de fallas respecto al tamao de
las pginas se muestra en la figura.

Un hecho notable en los sistemas que manejan paginacin es que cuando el proceso
comienza a ejecutarse ocurren un gran nmero de fallos de pgina, porque es cuando
est referenciando muchas direcciones nuevas por vez primera, despus el sistema se
estabiliza, conforme el nmero de marcos asignados se acerca al tamao del conjunto de
Ventajas de la segmentacin
El esquema de segmentacin ofrece las siguientes ventajas:
El programador puede conocer las unidades lgicas de su programa, dndol
Es posible compilar mdulos separados como segmentos el enlace entre los
segmentos puede suponer hasta tanto se haga una referencia entre segmentos.
gico de Tuxtla Gutirrez)
48
Segn amplios experimentos [Deitel93] sugieren que un tamao de pginas de 1024
desempeo muy aceptable. Intuitivamente parecera que el
tener pginas del mayor tamao posible hara que el desempeo fuera ptimo pero no es
as, a menos que la pgina fuera del tamao del proceso total. No es as con tamaos
e el proceso, ya que cuando se trae a memoria principal
una pgina por motivo de un solo byte o palabra, se estn trayendo muchsimos ms
de los deseados. La dependencia entre el nmero de fallas respecto al tamao de
Un hecho notable en los sistemas que manejan paginacin es que cuando el proceso
comienza a ejecutarse ocurren un gran nmero de fallos de pgina, porque es cuando
est referenciando muchas direcciones nuevas por vez primera, despus el sistema se
estabiliza, conforme el nmero de marcos asignados se acerca al tamao del conjunto de
El programador puede conocer las unidades lgicas de su programa, dndoles un
Es posible compilar mdulos separados como segmentos el enlace entre los
segmentos puede suponer hasta tanto se haga una referencia entre segmentos.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

49
Debido a que es posible separar los mdulos se hace ms fcil la modificacin de los
mismos. Cambios dentro de un modulo no afecta al resto de los mdulos.
Es fcil el compartir segmentos.
Es posible que los segmentos crezcan dinmicamente segn las necesidades del
programa en ejecucin.
Existe la posibilidad de definir segmentos que aun no existan. As, no se asignara
memoria, sino a partir del momento que sea necesario hacer usos del segmento. Un
ejemplo de esto, serian los arreglos cuya dimensin no se conoce hasta tanto no se
comienza a ejecutar el programa. En algunos casos, incluso podra retardar la
asignacin de memoria hasta el momento en el cual se referencia el arreglo u otra
estructura de dato por primera vez.
Desventajas de la segmentacin
Hay un incremento en los costos de hardware y de software para llevar a cabo la
implantacin, as como un mayor consumo de recursos: memoria, tiempo de CPU, etc.
Debido a que los segmentos tienen un tamao variable se pueden presentar
problemas de fragmentacin externas, lo que puede ameritar un plan de reubicacin
de segmentos en memoria principal.
Se complica el manejo de memoria virtual, ya que los discos almacenan la informacin
en bloques de tamaos fijos, mientras los segmentos son de tamao variable. Esto
hace necesaria la existencia de mecanismos ms costosos que los existentes para
paginacin.
Al permitir que los segmentos varen de tamao, puede ser necesarios planes de
reubicacin a nivel de los discos, si los segmentos son devueltos a dicho dispositivo;
lo que conlleva a nuevos costos.
No se puede garantizar, que al salir un segmento de la memoria, este pueda ser trado
fcilmente de nuevo, ya que ser necesario encontrar nuevamente un rea de
memoria libre ajustada a su tamao.
La comparticion de segmentos permite ahorrar memoria, pero requiere de
mecanismos adicionales da hardware y software.
Estas desventajas tratan de ser minimizadas, bajo la tcnica conocida como
Segmentacin paginada.
3.8 Segmentacin Paginada
Paginacin y segmentacin son tcnicas diferentes, cada una de las cuales busca brindar
las ventajas enunciadas anteriormente. Para la segmentacin se necesita que estn
cargadas en memoria, reas de tamaos variables. Si se requiere cargar un segmento en
memoria; que antes estuvo en ella y fue removido a memoria secundaria; se necesita
encontrar una regin de la memoria lo suficientemente grande para contenerlo, lo cual no
es siempre factible; en cambio "recargar" una pagina implica solo encontrar un merco de
pagina disponible.

A nivel de paginacin, si quiere referenciar en forma cclicas n paginas, estas debern ser
cargadas una a una generndose varias interrupciones por fallas de paginas; bajo
segmentacin, esta pagina podra conformar un solo segmento, ocurriendo una sola
interrupcin, por falla de segmento. No obstante, si bajo segmentacin, se desea acceder
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

50
un rea muy pequea dentro de un segmento muy grande, este deber cargarse
completamente en memoria, desperdicindose memoria; bajo paginacin solo se cargara
la pgina que contiene los tems referenciados.

Puede hacerse una combinacin de segmentacin y paginacin para obtener las ventajas
de ambas. En lugar de tratar un segmento como una unidad contigua, este puede
dividirse en pginas. Cada segmento puede ser descrito por su propia tabla de pginas.
Los segmentos son usualmente mltiplos de pginas en tamao, y no es necesario que
todas las pginas se encuentren en memoria principal a la vez; adems las pginas de un
mismo segmento, aunque se encuentren contiguas en memoria virtual; no necesitan
estarlo en memoria real.

Las direcciones tienen tres componentes: (s, p,d), donde la primera indica el numero del
segmento, la segunda el numero de la pagina dentro del segmento y la tercera el
desplazamiento dentro de la pagina. Se debern usar varias tablas:
SMT (tabla de mapas de segmentos): una para cada proceso. En cada entrada de la
SMT se almacena la informacin descrita bajo segmentacin pura, pero en el campo
de direccin se indicara la direccin de la PMT (tabla de mapas de pginas) que
describe a las diferentes pginas de cada segmento.
PMT (tabla de mapas de pginas): una por segmento; cada entrada de la PMT
describe una pgina de un segmento; en la forma que se presento la pagina pura.
TBM (tabla de bloques de memoria): para controlar asignacin de pginas por parte
del sistema operativo.
JT (tabla de Jobs): que contiene las direcciones de comienzo de cada una de las SMT
de los procesos que se ejecutan en memoria.


La Segmentacin Paginada
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

51

En el caso, de que un segmento sea de tamao inferior o igual al de una pagina, no se
necesita tener la correspondiente PMT, actundose en igual forma que bajo segmentacin
pura; puede arreglarse un bit adicional (S) a cada entrada de la SMT, que indicara si el
segmento esta paginado o no.
Ventajas de la segmentacin paginada
El esquema de segmentacin paginada tiene todas las ventajas de la segmentacin y la
paginacin:
Debido a que los espacios de memorias son segmentados, se garantiza la facilidad de
implantar la comparticion y enlace.
Como los espacios de memoria son paginados, se simplifican las estrategias de
almacenamiento.
Se elimina el problema de la fragmentacin externa y la necesidad de compactacin.
Desventajas de la segmentacin paginada

Las tres componentes de la direccin y el proceso de formacin de direcciones hace
que se incremente el costo de su implantacin. El costo es mayor que en el caso de
de segmentacin pura o paginacin pura.
Se hace necesario mantener un nmero mayor de tablas en memoria, lo que implica
un mayor costo de almacenamiento.
Sigue existiendo el problema de fragmentacin interna de todas- o casi- todas las pginas
finales de cada uno de los segmentos. Bajo paginacin pura se desperdician solo la ltima
pgina asignada, mientras que bajo segmentacin paginada el desperdicio puede
ocurrir en todos los segmentos asignados.

Conclusiones
Para concluir se entiende que:
En la memoria principal son ejecutados los programas y procesos de una
computadora y es el espacio real que existe en memoria para que se ejecuten los
procesos.
La memoria virtual es aquella que le ofrece a las aplicaciones la ilusin de que estn
solas en el sistema y que pueden usar el espacio de direcciones completo.
Las direcciones de memoria son de tres tipo: fsicas, lgicas y lineales.
El objetivo del intercambio es dar cabida a la ejecucin de mas aplicaciones de las
que pueden residir simultneamente en la memoria del sistema.
Las asignacin consiste en determinar cual espacio vaco en la memoria principal es
el mas indicado para ser asignado a un proceso.
Las estrategias mas comunes para asignar espacios vacos (huecos) son: primer
ajuste, mejor ajuste, peor ajuste.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

52
La fragmentacin es la memoria que queda desperdiciada al usar los mtodos de
gestin de memoria tal como la asignacin.
La fragmentacin puede ser interna o externa.
La paginacin es una tcnica de gestin de memoria en la cual el espacio de memoria
se divide en secciones fsicas de igual tamao llamadas marcos de pagina, las cuales
sirven como unidad de almacenamiento de informacin.
La segmentacin es un esquema de manejo de memoria mediante el cual la
estructura del programa refleja su divisin lgica; llevndose a cabo una agrupacin
lgica de la informacin en bloques de tamao variable denominados segmentos.

















Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

53
UNIDAD IV EL SISTEMA DE ARCHIVOS
Un sistema de archivos (File System o FS ) es una estructura de directorios con algn
tipo de organizacin el cual nos permite almacenar, crear y borrar archivos en diferentes
formatos. En esta seccin se revisarn conceptos importantes relacionados a los sistemas
de archivos.

Un Sistema de Archivos
4.1. Almacenamiento Fsico de Datos
En un sistema de cmputo es evidente que existe la necesidad por parte de los usuarios y
aplicaciones de almacenar datos en algn medio, a veces por periodos largos y a veces
por instantes. Cada aplicacin y cada usuario debe tener ciertos derechos con sus datos,
como son el poder crearlos y borrarlos, o cambiarlos de lugar; as como tener privacidad
contra otros usuarios o aplicaciones. El subsistema de archivos del sistema operativo se
debe encargar de estos detalles, adems de establecer el formato fsico en el cual
almacenar los datos en discos duros, cintas o discos flexibles.
Debe ser conocido por todos que tradicionalmente la informacin en los sistemas
modernos se almacena en discos duros, flexibles y unidades de disco ptico, y en todos
ellos se comparten algunos esquemas bsicos para darles formato fsico: las superficies
de almacenamiento son divididas en crculos concntricos llamados "pistas" y cada pista
se divide en "sectores". A la unin lgica de varias pistas a travs de varias superficies
"paralelas" de almacenamiento se les llama "cilindros", los cuales son inspeccionados al
momento de lectura o escritura de datos por las respectivas unidades fsicas llamadas
"cabezas". Las superficies de almacenamiento reciben el nombre de "platos" y
generalmente estn en movimiento rotatorio para que las cabezas accesen a las pistas
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

54
que los componen. Los datos se escriben a travs de los sectores en las pistas y cilindros
modificando las superficies por medio de las cabezas.
El tiempo que una cabeza se tarda en ir de una pista a otra se le llama "tiempo de
bsqueda" y depender de la distancia entre la posicin actual y la distancia a la pista
buscada. El tiempo que tarda una cabeza en ir del sector actual al sector deseado se le
llama tiempo de latencia y depende de la distancia entre sectores y la velocidad de
rotacin del disco. El impacto que tiene las lecturas y escrituras sobre el sistema est
determinado por la tecnologa usada en los platos y cabezas y por la forma de resolver las
peticiones de lectura y escritura, es decir, los algoritmos de planificacin.

El esquema de un disco

4.1.1. Algoritmos de planificacin de peticiones
Los algoritmos de planificacin de peticiones de lectura y escritura a discos se encargan
de registrar dichas peticiones y de responderlas en un tiempo razonable. Los algoritmos
ms comunes para esta tarea son:
Primero en llegar, primero en ser servido ( FIFO ): Las peticiones son encoladas
de acuerdo al orden en que llegaron y de esa misma forma se van leyendo o
escribiendo las mismas. La ventaja de este algoritmo es su simplicidad y no causa
sobrecarga, su desventaja principal es que no aprovecha para nada ninguna
caracterstica de las peticiones, de manera que es muy factible que el brazo del
disco se mueva muy ineficientemente, ya que las peticiones pueden tener
direcciones en el disco unas muy alejadas de otras. Por ejemplo, si se estn
haciendo peticiones a los sectores 6, 10, 8, 21 y 4, las mismas sern resueltas en
el mismo orden. _ Primero el ms cercano a la posicin actual: En este algoritmo
las peticiones se ordenan de acuerdo a la posicin actual de la cabeza lectora,
sirviendo primero a aquellas peticiones ms cercanas y reduciendo, as, el
movimiento del brazo, lo cual constituye la ventaja principal de este algoritmo. Su
desventaja consiste en que puede haber solicitudes que se queden esperando
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

55
para siempre, en el infortunado caso de que existan peticiones muy alejadas y en
todo momento estn entrando peticiones que estn ms cercanas. Para las
peticiones 6, 10, 8, 21 y 4, las mismas sern resueltas en el orden 4,6,8,10 y 21.
Por exploracin (algoritmo del elevador): En este algoritmo el brazo se estar
moviendo en todo momento desde el permetro del disco hacia su centro y
viceversa, resolviendo las peticiones que existan en la direccin que tenga en
turno. En este caso las peticiones 6,10,8,21 y 4 sern resueltas en el orden
6,10,21,8 y 4; es decir, la posicin actual es 6 y como va hacia los sectores de
mayor numeracin (hacia el centro, por ejemplo), en el camino sigue el sector 10,
luego el 21 y ese fue el ms central, as que ahora el brazo resolver las
peticiones en su camino hacia afuera y la primera que se encuentra es la del
sector 8 y luego la 4. La ventaja de este algoritmo es que el brazo se mover
mucho menos que en FIFO y evita la espera indefinida; su desventaja es que no
es justo, ya que no sirve las peticiones en el orden en que llegaron, adems de
que las peticiones en los extremos interior y exterior tendrn un tiempo de
respuesta un poco mayor.
Por exploracin circular: Es una variacin del algoritmo anterior, con la nica
diferencia que al llegar a la parte central, el brazo regresa al exterior sin resolver
ninguna peticin, lo cual proveer un tiempo de respuesta ms cercana al
promedio para todas las peticiones, sin importar si estn cercas del centro o del
exterior.

4.1.2. Asignacin del espacio de almacenamiento
Asignacin contigua.
Cada directorio contiene la los nombres de archivos y la direccin del bloque inicial de
cada archivo, as como el tamao total de los mismos. Por ejemplo, si un archivo
comienza en el sector 17 y mide 10 bloques, cuando el archivo sea accesado, el brazo
se mover inicialmente al bloque 17 y de ah hasta el 27. Si el archivo es borrado y
luego creado otro ms pequeo, quedarn huecos intiles entre archivos tiles, lo cual
se llama fragmentacin externa.
El mtodo de asignacin contigua requiere que cada archivo ocupe un conjunto de
bloques contiguos en el disco. Las direcciones de disco definen un ordenamiento lineal en
l. Con este ordenamiento, suponiendo que slo un trabajo est accediendo al disco, el
acceso al bloque b + 1 despus del bloque b normalmente no requiere movimiento de la
cabeza. Si es preciso mover la cabeza (del ltimo sector de un cilindro al primero del
siguiente), slo es una pista. As, el nmero de bsquedas de disco necesarias para
acceder a archivos asignados contiguamente es mnimo, lo mismo que el tiempo de
bsqueda cuando finalmente se necesita una bsqueda. El sistema operativo VM/CMS de
IBM utiliza asignacin contigua por el buen desempeo que provee.

Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

56


La Asignacin Contigua


La asignacin contigua de un archivo est definida por la direccin en disco y la longitud
(en unidades de bloque) del primer bloque. Si el archivo tiene n bloques, y comienza en la
posicin b, ocupar los bloques b, b + 1, b + 2, ... , b + n 1. La entrada de directorio para
cada archivo indica la direccin del bloque inicial y la longitud del rea asignada a este
archivo.

El acceso a un archivo que se asign de forma contigua es fcil. Si el acceso es
secuencial, el sistema de archivos recuerda la direccin en disco del ltimo bloque al que
se hizo referencia y, cuando llega el momento, lee el siguiente bloque. Si el acceso es
directo al bloque i de un archivo que comienza en el bloque b, podemos acceder de
inmediato al bloque b + i. As, la asignacin contigua permite manejar acceso tanto
secuencial como directo.

Una dificultad de la asignacin contigua es encontrar espacio para un archivo nuevo. La
implementacin del sistema de administracin de espacio libre, que veremos en la fig.,
determina la forma de efectuar esto. Se puede usar cualquier sistema de administracin,
pero algunos son ms lentos que otros.

Es evidente que el problema de asignacin de espacio contiguo en disco es una
aplicacin especfica del problema general de asignacin dinmica de almacenamiento, a
saber, cmo satisfacer una solicitud de tamao n a partir de una lista de huecos libres.
Las estrategias de primer ajuste y mejor ajuste son las que ms comnmente se usan
para seleccionar un hueco libre del conjunto de huecos disponibles. Se ha demostrado
mediante simulaciones que tanto el primer ajuste como el mejor ajuste son ms eficientes
que el peor ajuste en trminos tanto de tiempo como de utilizacin de espacio. No se ha
determinado claramente si el primer ajuste es mejor que el mejor ajuste en trminos de
aprovechamiento del espacio, pero generalmente es ms rpido.

Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

57
Estos algoritmos padecen el problema de fragmentacin externa. Conforme los archivos
se asignan y borran, el espacio libre en disco se divide en trozos pequeos. Hay
fragmentacin externa siempre que el espacio libre se divide en trozos, y se convierte en
un problema cuando el trozo contiguo ms grande es insuficiente para una solicitud; el
almacenamiento se fragmenta en varios huecos, ninguno de los cuales es lo bastante
grande como para contener los datos. Dependiendo de la cantidad total de espacio en
disco y del tamao promedio de los archivos, la fragmentacin externa podra ser un
problema menor o mayor.


La asignacin contigua tiene otros problemas. Uno de los ms importantes es determinar
cunto espacio se necesita para un archivo. Cuando se crea un archivo, es preciso
encontrar la cantidad total de espacio que necesitar, y asignarla. Cmo sabe el creador
(programa o persona) qu tamao tendr el archivo creado? En algunos casos tal
determinacin podra ser sencilla (cuando se copia un archivo existente, por ejemplo),
pero en general puede ser difcil estimar el tamao de un archivo de salida.

Si asignamos un espacio demasiado pequeo a un archivo, podramos encontrarnos con
que ya no podemos extender ese archivo. Sobre todo si se usa una estrategia de mejor
ajuste, el espacio a ambos lados del archivo podra estar ya en uso, y no podramos hacer
crecer el archivo en su lugar. En tal caso hay dos posibilidades. Primera, podramos
terminar el programa de usuario, con un mensaje de error apropiado. El usuario tendr
entonces que asignar ms espacio y ejecutar de nuevo el programa. Tales ejecuciones
repetidas podran ser costosas. Para evitarlas, el usuario normalmente sobreestimar la
cantidad de espacio requerida, y el resultado ser un desperdicio considerable de
espacio.

La otra posibilidad es encontrar un hueco ms grande, copiar el contenido del archivo en
el nuevo espacio, y liberar el espacio anterior. Esta serie de acciones podra repetirse
mientras haya espacio disponible, aunque tambin podra consumir mucho tiempo. La
ventaja en este caso es que no es necesario informar al usuario explcitamente de lo que
est sucediendo; el sistema contina a pesar del problema, aunque cada vez con mayor
lentitud.

Incluso si se conoce con anticipacin la cantidad total del espacio requerido para un
archivo, la preasignacin podra ser ineficiente. Un archivo que crece lentamente durante
un periodo largo (meses o aos) tendra que recibir inicialmente suficiente espacio para su
tamao final, aunque gran parte de ese espacio no se ocupe durante largo tiempo. En
este caso el archivo tiene una gran cantidad de fragmentacin interna.

Para evitar varias de estas desventajas, algunos sistemas operativos utilizan un esquema
de asignacin contigua modificado, en el que inicialmente se asigna un trozo contiguo de
espacio y luego, cuando ese espacio deja de ser suficiente, se aade otro trozo de
espacio contiguo, una extensin, a la asignacin inicial. La ubicacin de los bloques de un
archivo se registra entonces como una posicin y una cuenta de bloques, ms un enlace
al primer bloque de la siguiente extensin. En algunos sistemas, el propietario del archivo
puede establecer el tamao de las extensiones, pero esto puede dar lugar a ineficiencias
si el propietario no acta correctamente. La fragmentacin interna puede seguir siendo un
problema si las extensiones son demasiado grandes, y la fragmentacin externa puede
ser tambin problemtica cuando se asignan y liberan extensiones de diferentes tamaos.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

58

Asignacin encadenada.
Con este criterio los directorios contienen los nombres de archivos y por cada uno de ellos
la direccin del bloque inicial que compone al archivo. Cuando un archivo es ledo, el
brazo va a esa direccin inicial y encuentra los datos iniciales junto con la direccin del
siguiente bloque y as sucesivamente. Con este criterio no es necesario que los bloques
estn contiguos y no existe la fragmentacin externa, pero en cada "eslabn" de la
cadena se desperdicia espacio con las direcciones mismas. En otras palabras, lo que se
crea en el disco es una lista ligada.
La asignacin enlazada resuelve todos los problemas de la asignacin contigua. Con este
esquema, cada archivo es una lista enlazada de bloques de disco, los cuales pueden
estar dispersos en cualquier parte del disco. El directorio contiene un puntero al primer y
al ltimo bloques del archivo. Por ejemplo, un archivo de cinco bloques podra comenzar
en el bloque 9, continuar en el bloque 16, luego el 1, el 10 y por ltimo el bloque 25 (Fig. ).
Cada bloque contiene un puntero al siguiente bloque. Estos punteros no se proporcionan
al usuario. As, si cada bloque tiene 512 bytes, y una direccin de disco (el puntero)
requiere cuatro bytes, el usuario ver bloques de 508 bytes.

Para crear un archivo nuevo, simplemente creamos una nueva entrada en el directorio.
Con la asignacin enlazada, cada entrada de directorio tiene un puntero al primer bloque
de disco del archivo. Inicialmente el puntero recibe el valor nil (el valor del puntero de fin
de lista) para indicar un archivo vaco, y tambin se asigna cero al campo de tamao. Una
escritura en el archivo hace que se encuentre un bloque libre a travs del sistema de
administracin del espacio libre, y luego se escribe en ese bloque, enlazndolo al final del
archivo. Para leer un archivo, basta con leer los bloques siguiendo los punteros de un
bloque al siguiente.

Cuando se usa asignacin enlazada no hay fragmentacin externa, pues cualquier bloque
libre de la lista de espacio libre se puede usar para satisfacer una solicitud. Adems, no
hay necesidad de declarar el tamao de un archivo en el momento de crearlo. Un archivo
puede continuar creciendo en tanto haya bloques libres. Por ello, nunca es necesario
compactar el disco.

La asignacin enlazada no carece de problemas. El principal de ellos es que slo puede
usarse efectivamente para archivos de acceso secuencial. Para encontrar el i-simo
bloque de un archivo, es necesario partir del principio del archivo y seguir los punteros
hasta llegar al i-simo bloque. Cada acceso a un puntero requiere una lectura del disco/ y
a veces una bsqueda de disco. Por consiguiente, no resulta eficiente proveer una
capacidad de acceso directo para archivos de asignacin enlazada.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

59


La Asignacin Encadenada

Otra desventaja de la asignacin enlazada es el espacio que ocupan los punteros. Si un
puntero requiere cuatro bytes de un bloque de 512 bytes, el 0.78% del disco se usar
para punteros, no para informacin. Cada archivo requiere un poco ms de espacio del
que requerira en otro caso.

La solucin usual a este problema es juntar bloques en mltiplos, llamados cmulos
(clusters), y asignar los cmulos en lugar de los bloques. Por ejemplo, el sistema de
archivos podra definir un cmulo como cuatro bloques, y operar con el disco slo en
unidades de cmulos. Entonces, los punteros ocuparn un porcentaje mucho ms
pequeo del espacio en disco del archivo. Este mtodo permite que la correspondencia
entre bloques lgicos y fsicos siga siendo sencilla, mejora el rendimiento del disco
(menos bsquedas de disco) y reduce el espacio necesario para la asignacin de bloques
y la administracin de la lista de espacio libre. El costo de la estrategia es un aumento en
la fragmentacin interna, ya que se desperdicia ms espacio cuando un cmulo est
parcialmente lleno que cuando un bloque est parcialmente lleno. Los cmulos pueden
servir para mejorar el tiempo de acceso a disco con muchos otros algoritmos, y es por ello
que se usan en casi todos los sistemas operativos.

Un problema adicional es la confiabilidad. Dado que los archivos se enlazan mediante
punteros que estn dispersos por todo el disco, consideremos lo que sucedera si un
puntero se perdiera o daara. Un error en el software del sistema operativo o un fallo en el
hardware del disco podra hacer que se obtuviera un puntero equivocado.

Esto podra hacer que un archivo se enlazara con la lista de espacio libre o con i archivo.
Dos soluciones parciales seran usar listas doblemente enlazadas o almacenar el nombre
del archivo y el nmero de bloque relativo en cada bloque; sin embargo, tales esquemas
requieren un gasto extra an mayor para cada archivo.

Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

60
Una variacin importante del mtodo de asignacin enlazada es usar una tabla de
asignacin de archivos (FAT, file-allocation table). Este sencillo pero eficiente mtodo
asignacin de espacio en disco se emplea en los sistemas operativos MS-DOS y OS/2.
Se aparta una seccin del disco al principio de cada particin para guardar en ella la tabla,
la cual tiene una entrada para cada bloque del disco y est indizada por nmero de
bloque. La FAT se usa de manera similar a una lista enlazada. La entrada de directorio
contiene el nmero de bloque del primer bloque del archivo. entrada de la tabla indizada
por ese nmero de bloque contiene el nmero del siguiente bloque del archivo. Esta
cadena contina hasta el ltimo bloque, que tiene un valor especial de fn-de-archivo (end
of file) como entrada de tabla. Los bloques desocupados se indican con un valor de cero
en la tabla. Para asignar un bloc nuevo a un archivo, basta con encontrar la primera
entrada de la tabla que valga cero y sustituir el valor de fin-de-archivo anterior por la
direccin del nuevo bloque. A continuacin, el cero se sustituye por el valor de fin-de-
archivo. Un ejemplo ilustrativo es la estructura de FAT de la figura para un archivo que
consiste en bloques de disco 217, 618 y 339.



El Sistema de Archivos FAT

Cabe sealar que el esquema de asignacin por FAT puede dar pie a un nmero
significativo de movimientos de la cabeza del disco, a menos que la FAT se mantenga
cach. La cabeza del disco debe moverse al principio de la particin para leer la FA1
encontrar la ubicacin del bloque en cuestin, luego moverse a la posicin del bloque en
s. En el peor caso, ocurrirn ambos movimientos para cada uno de los bloques. Un
beneficio es que se mejora el tiempo de acceso aleatorio, porque la cabeza del disco
puede encontrar la posicin de cualquier bloque leyendo la informacin en la FAT.

Asignacin con ndices ( indexada ).
En este esquema se guarda en el directorio un bloque de ndices para cada archivo, con
apuntadores hacia todos sus bloques constituyentes, de manera que el acceso directo se
agiliza notablemente, a cambio de sacrificar varios bloques para almacenar dichos
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

61
apuntadores. Cuando se quiere leer un archivo o cualquiera de sus partes, se hacen dos
accesos: uno al bloque de ndices y otro a la direccin deseada. Este es un esquema
excelente para archivos grandes pero no para pequeos, porque la relacin entre bloques
destinados para ndices respecto a los asignados para datos es incosteable.
La asignacin enlazada resuelve los problemas de fragmentacin externa y declaracin
de tamao de la asignacin contigua, pero, si no se usa una FAT, no puede apoyar un
acceso directo eficiente, ya que los punteros a los bloques estn dispersos junto con los
bloques mismos por todo el disco y necesitan recuperarse en orden. La asignacin
indizada resuelve este problema al reunir todos los punteros en un mismo lugar: el bloque
ndice.

Cada archivo tiene su propio bloque ndice, que es una matriz de direcciones de bloques
de disco. La i-sima entrada del bloque ndice apunta al i-simo bloque del archivo. El
directorio contiene la direccin del bloque ndice. Para leer el i-simo bloque, usamos el
puntero de la i-sima entrada del bloque ndice para encontrar y leer el bloque deseado.



La Asignacin Indexada

Cuando se crea el archivo, se asigna nil a todos los apuntadores del bloque ndice. La
primera vez que se escribe el -simo bloque, se obtiene un bloque del administrador de
espacio libre y su direccin se coloca en la I-sima entrada del bloque ndice.

La asignacin indizada apoya el acceso directo sin sufrir fragmentacin externa, porque
cualquier bloque libre del disco puede satisfacer una solicitud de espacio adicional. La
asignacin indizada s desperdicia espacio. El gasto extra de los punteros del bloque
ndice generalmente es mayor que el de los punteros de la asignacin enlazada.
Consideremos un caso comn en el que tenemos un archivo que slo ocupa uno o dos
bloques. Con la asignacin enlazada, slo perdemos el espacio de un puntero por bloque
(uno o dos punteros). Con la asignacin indizada, es preciso asignar un bloque ndice
entero, aun si slo uno o dos punteros son diferentes de nil.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

62

Esto hace surgir la pregunta de qu tan grande debe ser el bloque ndice. Cada archivo
debe tener un bloque ndice, as que nos conviene que el bloque sea lo ms pequeo
posible. Sin embargo, si el bloque ndice es demasiado pequeo no podr contener
suficientes punteros para un archivo grande, y se necesitar un mecanismo para resolver
este problema:

Esquema enlazado. Un bloque ndice normalmente ocupa un bloque de
disco; por tanto, se puede leer y escribir directamente por s solo. Para
manejar archivos grandes, podramos enlazar varios bloques ndice. Por
ejemplo, un bloque ndice podra contener una cabecera pequea con el
nombre del archivo y las primeras 100 direcciones de bloques de disco. La
siguiente direccin (la ltima palabra del bloque ndice) es nil (si el archivo
es pequeo) o un puntero a otro bloque ndice (si el archivo es grande).
ndice multinivel. Una variante de la representacin enlazada es usar un
bloque ndice de primer nivel que apunte a un conjunto de bloques ndice
de segundo nivel, que a su vez apuntan a los bloques de disco. Para
acceder a un bloque, el sistema operativo usa el ndice de primer nivel para
encontrar un bloque ndice de segundo nivel, y ese bloque para hallar el
bloque de datos deseado. Este enfoque podra extenderse a un tercer o
cuarto nivel, dependiendo del tamao mximo de archivo deseado. Con
bloques de 4096 bytes, podramos guardar 1024 punteros de cuatro bytes
en un bloque ndice. Dos niveles de ndices permitiran apuntar a 1,048/576
bloques de datos, con lo que un archivo podra tener hasta cuatro
gigabytes.
Esquema combinado. Otra alternativa, que se usa en el sistema BSD
UNIX, es guardar los primeros, digamos, 15 punteros del bloque ndice en
el bloque ndice (o i-nodo) del archivo. (La entrada de directorio apunta al i-
nodo). Los primeros 12 de estos punteros apuntan a bloques directos; es
decir, contienen direcciones de bloques que contienen datos del archivo.
As, los datos de archivos pequeos (de no ms de 12 bloques) no
necesitan un bloque ndice aparte. Si el tamao de bloque es de 4K, es
posible acceder directamente a hasta 48K de datos. Los siguientes tres
punteros apuntan a bloques indirectos. El primer puntero de bloque
indirecto es la direccin de un bloque indirecto simple: un bloque ndice que
no contiene datos, sino las direcciones de bloques que s contienen datos.
Luego viene un puntero a un bloque indirecto doble, que contiene la
direccin de un bloque que contiene las direcciones de bloques que
contienen punteros a los bloques de datos reales. El ltimo puntero
contendra la direccin de un bloque indirecto triple. Con este mtodo, el
nmero de bloques que es posible asignar a un archivo excede la cantidad
de espacio que puede direccionarse con los punteros de archivo de cuatro
bytes que usan muchos sistemas operativos.
Un puntero de archivo de 32 bits slo alcanza para 2 Exp.32 bytes, o 4 gigabytes.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

63


La estructura i-nodo

Los esquemas de asignacin indizada exhiben algunos de los mismos problemas de
desempeo que la asignacin enlazada. En trminos especficos, los bloques ndice se
pueden colocar en un cach en la memoria, pero los bloques de datos podran estar
dispersos por toda una particin.
3.1.3. Mtodos de acceso en los sistemas de archivos
Los mtodos de acceso se refiere a las capacidades que el subsistema de archivos
provee para accesar datos dentro de los directorios y medios de almacenamiento en
general. Se ubican tres formas generales: acceso secuencial, acceso directo y acceso
directo indexado.
Acceso secuencial: Es el mtodo ms lento y consiste en recorrer los
componentes de un archivo uno en uno hasta llegar al registro deseado. Se
necesita que el orden lgico de los registros sea igual al orden fsico en el medio
de almacenamiento. Este tipo de acceso se usa comunmente en cintas y
cartuchos.
Acceso directo: Permite accesar cualquier sector o registro inmediatamente, por
medio de llamadas al sistema como la de seek. Este tipo de acceso es rpido y se
usa comnmente en discos duros y discos o archivos manejados en memoria de
acceso aleatorio. _ Acceso directo indexado: Este tipo de acceso es til para
grandes volmenes de informacin o datos. Consiste en que cada arcivo tiene una
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

64
tabla de apuntadores, donde cada apuntador va a la direccin de un bloque de
ndices, lo cual permite que el archivo se expanda a travs de un espacio enorme.
Consume una cantidad importante de recursos en las tablas de ndices pero es
muy rpido.
4.1.4. Operaciones soportadas por el subsistema de archivos
Independientemente de los algoritmos de asignacin de espacio, de los mtodos de
acceso y de la forma de resolver las peticiones de lectura y escritura, el subsistema de
archivos debe proveer un conjunto de llamadas al sistema para operar con los datos y de
proveer mecanismos de proteccin y seguridad. Las operaciones bsicas que la mayora
de los sistemas de archivos soportan son:
Crear ( create ) : Permite crear un archivo sin datos, con el propsito de indicar
que ese nombre ya est usado y se deben crear las estructuras bsicas para
soportarlo.
Borrar ( delete ): Eliminar el archivo y liberar los bloques para su uso posterior.
Abrir ( open ): Antes de usar un archivo se debe abrir para que el sistema conozca
sus atributos, tales como el dueo, la fecha de modificacin, etc. _ Cerrar ( close ):
Despus de realizar todas las operaciones deseadas, el archivo debe cerrarse
para asegurar su integridad y para liberar recursos de su control en la memoria.
Leer o Escribir ( read, write ): Aadir informacin al archivo o leer el caracter o una
cadena de caracteres a partir de la posicin actual. _ Concatenar ( append ): Es
una forma restringida de la llamada `write', en la cual slo se permite aadir
informacin al final del archivo. _ Localizar ( seek ): Para los archivos de acceso
directo se permite posicionar el apuntador de lectura o escritura en un registro
aleatorio, a veces a partir del inicio o final del archivo.
Leer atributos: Permite obtener una estructura con todos los atributos del archivo
especificado, tales como permisos de escritura, de borrado, ejecucin, etc.
Poner atributos: Permite cambiar los atributos de un archivo, por ejemplo en UNIX,
donde todos los dispositivos se manejan como si fueran archivos, es posible
cambiar el comportamiento de una terminal con una de estas llamadas.
Renombrar ( rename ): Permite cambiarle el nombre e incluso a veces la posicin
en la organizacin de directorios del archivo especificado. Los subsistemas de
archivos tambin proveen un conjunto de llamadas para operar sobre directorios,
las ms comunies son crear, borrar, abrir, cerrar, renombrar y leer. Sus
funcionalidades son obvias, pero existen tambin otras dos operaciones no tan
comunes que son la de `crear una liga' y la de `destruir la liga'. La operacin de
crear una liga sirve para que desde diferentes puntos de la organizacin de
directorios se pueda accesar un mismo directorio sin necesidad de copiarlo o
duplicarlo. La llamada a `destruir nla liga' lo que hace es eliminar esas referencias,
siendo su efecto la de eliminar las ligas y no el directorio real. El directorio real es
eliminado hasta que la llamada a `destruir liga' se realiza sobre l.
Tendencias actuales
Con el gran auge de las redes de comunicaciones y su incremento en el ancho de banda,
la proliferacin de paquetes que ofrecen la comparticin de archivos es comn. Los
esquemas ms solicitados en la industria es el poder accesar los grandes volmenes de
informacin que residen en grandes servidores desde las computadoras personales y
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

65
desde otros servidores tambin. A veces se requieren soluciones ms complejas con
ambientes heterogneos: diferentes sistemas operativos y diferentes arquitecturas.
ESTUDIO DEL SISTEMA DE ARCHIVOS NTFS
Factores de rendimiento de NTFS
Es posible definir muchos de los factores que afectan el rendimiento de los volmenes
NTFS. Se puede escoger elementos tan importantes como el tipo de disco (por ejemplo,
SCSI o IDE), su velocidad (por ejemplo, la velocidad en rpm de los discos), y el nmero
de discos que formarn un volumen. Adems de estos componentes importantes, los
factores siguientes tambin influyen de manera significativa en el rendimiento de volumen
de un NTFS:
El tamao de la unidad de cluster y de asignacin.
La localizacin y el nivel de fragmentacin de los archivos accedidos ms
frecuentemente, como la tabla MFT (Master File Table), los directorios, los
archivos especiales que contienen informacin del propio NTFS, el archivo de
paginacin y los archivos de datos de usuario que se utilizan habitualmente.
Si se crea el volumen NTFS desde cero o si se convierte a partir de un volumen
FAT existente.
Si el volumen utiliza compresin NTFS
Si se desactivan opciones de NTFS innecesarias.

Estructura General de FAT y NTFS

La utilizacin de discos ms rpidos y ms unidades en volmenes multidisco es una
manera obvia de mejorar el rendimiento. Los otros mtodos de mejora de rendimiento son
ms complejos y tienen que ver con detalles de la configuracin de volumen de un NTFS.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

66
Tamao de cluster
Todos los sistemas de archivos de disco NT, incluido NTFS, utilizan el cluster como
unidad bsica de almacenamiento. Independientemente de lo pequeo que sea un
archivo, debe ocupar como mnimo un cluster de espacio de disco. As, los archivos muy
pequeos que son menores que un cluster desperdician espacio de disco. (Los archivos
menores de 1 KB son una excepcin. El sistema almacena estos archivos en lo que se
conoce como FRS (File Record Segment) de la MFT que hace referencia a estos, en lugar
de almacenarlos externamente. Adems cuando un archivo ocupa un poco ms que un
cluster, el excedente del archivo se reservar otro cluster entero, con el consiguiente
desperdicio de espacio. Cuanto mayor sea el cluster sobre el que el archivo se desbord,
mayor espacio se desperdicia.
El tamao mnimo de cluster de NTFS desperdicia mucho menos espacio de disco que los
volmenes FAT. El rango por defecto de los tamaos de cluster que los volmenes FAT
utilizan va desde los 512 bytes hasta un enorme tamao de 256 KB. Los tamaos de
cluster predeterminados de NTFS varan desde 512 bytes hasta 4 KB. La FAT soporta un
mximo de 65.536 clusters por volumen, lo que obliga a utilizar tamaos de cluster
mayores para direccionar volmenes de disco grandes. Sin embargo, NTFS no tiene esta
limitacin de cluster por volumen; as, NTFS puede utilizar tamaos de cluster tan
pequeos como 512 bytes o 1 KB y direccionar grandes volmenes de disco.
Eleccin del tamao de un cluster. Deber elegir el tamao del cluster segn el tipo y
tamao medio de archivo que almacenar en dicho volumen. Supuestamente, el tamao
de cluster del volumen es divisible exactamente por el tamao medio del archivo
(redondeado al kilobyte ms cercano). Este tamao de cluster ideal minimiza la
sobrecarga de transacciones de entrada/salida del disco y el espacio de disco
desperdiciado. Por ejemplo, supongamos que se crea un nuevo volumen NTFS que
almacenar varios archivos de unos 6 KB de tamao. Se formatea el volumen con un
tamao de cluster de 2 KB, porque el archivo medio encajar de manera exacta en tres
clusters. Qu pasa si el tamao medio del archivo es de unos 16 KB? En ese caso, un
tamao de cluster de 4 KB proporcionar el mejor rendimiento, porque dividir
exactamente 16 KB y slo requerir la mitad de asignaciones de cluster que necesitara el
mismo archivo si se utilizasen clusters de 2 KB. Por qu no llevar este proceso un poco
ms all y utilizar un tamao de cluster de 8 KB o de 16 KB? Estos valores son
alternativas vlidas y podran mejorar el rendimiento. Sin embargo, la utilizacin de
tamaos de cluster mayores de 4 KB tiene varios efectos colaterales potencialmente
negativos. Por ejemplo, cuando se utilizan tamaos de cluster mayores de 4 KB, las
utilidades de defragmentacin de disco no pueden defragmentar el volumen, no se puede
utilizar la compresin de archivos de NTFS en el volumen y la cantidad de espacio de
disco desperdiciado crece porque los archivos de datos de usuario almacenados en el
volumen no terminan justamente en los lmites del cluster.
El espacio adicional de la MFT
Como ncleo de NTFS, la MFT juega un papel importante en la composicin de un
volumen NTFS y en su rendimiento. La MFT continuamente hace referencia a archivos
mientras el sistema localiza informacin, lee de la informacin y escribe la informacin a
disco. As, el rendimiento de la MFT es esencial para el rendimiento del volumen en
general.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

67
Los desarrolladores de NTFS entendieron la importancia del rendimiento de la MFT y
tomaron cartas en el asunto para asegurar que la MFT mantenga un alto rendimiento
durante todo el tiempo. Primero, NT coloca automticamente la MFT al principio del disco
cuando se formatea por vez primera un volumen NTFS. Las pistas ms externas de un
disco tienen los ratios ms altos de rotacin y de transferencia de datos, y la mayora de
volmenes NTFS corresponden a un disco fsico entero; as, la colocacin de la MTF en el
principio del disco minimiza el tiempo que requieren las operaciones de entrada/salida de
disco relacionadas con la MFT. Segundo, los desarrolladores de NTFS evitaron la
potencial fragmentacin de la MFT mediante la creacin de una zona de bfer especial
alrededor de la MFT, que el volumen de NTFS reserva para ser utilizado por la MFT. Por
defecto, esta zona de bfer utiliza aproximadamente el 12,5 por ciento del disco. Aunque
esta asignacin normalmente minimiza la fragmentacin de la MFT, a veces la zona de
bfer no es la adecuada.
Fragmentacin de la MFT. Se dan diversas situaciones que pueden causar que se
fragmente la MFT. Por ejemplo, cuando el espacio asignado para los datos se llena, el NT
empieza a asignar el espacio de la zona MFT para proporcionar espacio de disco
adicional para el almacenamiento de archivos de datos de usuario. Como resultado, la
MFT puede fragmentarse porque el nico espacio en el que la MFT podr crecer son
reas no contiguas de disco.
Otra situacin en la que puede haber fragmentacin es cuando la MFT crece hasta un
tamao mayor que la ocupacin predeterminada del 12,5 por ciento del disco. Aunque
este crecimiento de la MFT es raro, varias circunstancias pueden contribuir a que esto
suceda. Primero, la MFT no se reduce ni cuando se borran archivos y directorios del
volumen. En vez de eso, la MFT marca los FRSs para reflejar el borrado. Segundo, NTFS
almacena archivos muy pequeos con los FRSs de la MFT que se refieren a los archivos.
Aunque esta configuracin proporciona un beneficio de rendimiento para estos archivos,
puede causar que la MFT crezca excesivamente cuando el volumen contiene muchos de
esos archivos.
No hay que olvidar la fragmentacin

La MFT no es el nico componente de un volumen NTFS sujeto a fragmentacin. El
sistema requiere movimientos de cabezales y discos adicionales para acceder a un
archivo almacenado en lugares mltiples no contiguos de un disco. La fragmentacin
puede resultar y afectar el rendimiento de forma adversa. Sin embargo, cuando un archivo
es contiguo, el sistema puede leerlo secuencialmente sin ningn reposicionamiento de
unidad adicional. Mantener de forma diligente un bajo nivel de fragmentacin de archivo
en un volumen NTFS es la manera ms importante de mejorar el rendimiento de volumen.
Se puede hacer este mantenimiento mediante la ejecucin regular de una utilidad de
defragmentacin de disco, que hace que cada archivo del volumen sea contiguo. Adems,
estas utilidades pueden defragmentar, el espacio de disco libre en un volumen, lo que
tambin es beneficioso para el rendimiento del volumen.


Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

68
Directorios y nombres de archivo

Crear rboles de directorio con docenas de niveles y utilizar nombres de archivos
enormes disminuye el rendimiento global de los volmenes NTFS. Aunque el rendimiento
de NTFS es ms tolerante con la longitud del directorio y con los excesos del nombre de
archivo que otros sistemas de archivos, como por ejemplo FAT, recomendamos mantener
los directorios con pocos niveles y los nombres de archivo cortos para mantener una
mayor rapidez. El sistema puede navegar ms rpido y fcilmente por estructuras de
directorio con pocos niveles, y los nombres de archivo largos requieren espacio de
almacenamiento adicional y sobrecarga de proceso. Es recomendable mantener los
rboles de directorios NTFS con menos de 10 niveles de profundidad, y los nombres de
archivo y los nombres de directorio con menos de 30 caracteres. Estos lmites crean una
estructura de directorio eficiente que permite al volumen mantener un mayor nivel de
rendimiento.
Compresin NTFS

La compresin NTFS, que Microsoft introdujo con NT 3.51, es la capacidad de comprimir
selectivamente los contenidos de archivos de forma individual, directorios enteros, o
rboles de directorio enteros en un volumen NTFS. Por mi experiencia, los volmenes que
utilizan compresin NTFS consiguen mejores rendimientos de hasta un 50 por ciento
sobre sus homlogos no comprimidos, dependiendo del tipo de informacin almacenada
en dichos volmenes. Este rendimiento pareca demasiado bueno para ser cierto hasta lo
comprob monitorizandola utilizacin de CPU durante una ejecucin de las mismas
pruebas en un volumen NTFS comprimido. La utilizacin de la CPU en la prueba salt de
una media del 10 al 18 por ciento en el volumen NTFS no comprimido hasta un increble
30 a 80 por ciento en el volumen NTFS comprimido. Adems, el rendimiento cay
significativamente cuando utilic la compresin NTFS en tamaos de volumen mayores (4
GB o ms) y en volmenes basados en software con RAID tolerante a fallos.
Se puede utilizar la compresin NTFS para incrementar significativamente el rendimiento
de disco en volmenes menores con ficheros que contienen informacin altamente
comprimible. Sin embargo, hacer eso causar un incremento significativo en la utilizacin
de la CPU. Este efecto podra ser tolerable en sistemas con procesadores extremamente
rpidos o con mltiples procesadores instalados. Se puede comprimir un volumen NTFS
mediante la ventana de dilogo Propiedades en la ventana del Explorador sobre la unidad
o mediante la utilizacin de la utilidad COMPACT en la lnea de comandos. Es
recomendable probar esta caracterstica en una mquina que no sea de produccin antes
de implementarla en sus equipos en el entorno.



Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

69
Anlisis de sistemas de archivos: NTFS vs. FAT32

Sistemas de Archivos
Sistema de archivos FAT32:
El sistema de archivos FAT32 fue introducido por Microsoft en la versin OSR 2.0 de
Windows 95 y fue desde ese momento el sucesor de FAT, que ahora sera el FAT16.
FAT32 mejora en muchos aspectos a su antecesor. En cuanto al uso del espacio en
el disco duro, FAT32 soporta tamaos de clster ms pequeos que los que
soportaba la anterior versin. Hay dos detalles que limitaban a FAT16 en cuanto al
desperdicio de espacio en disco. Estos son:
- Los clsteres se determinan al formatear el disco.
- Todos los archivos de un volumen, independientemente de su tamao real deben
acabar cerrados por un clster par.
Esto limitaba a FAT16 a que sus archivos aunque solo ocupasen 1Kb, ocupasen un
clster entero como mnimo, lo que haca perder espacio en disco.
Los clsteres del FAT32 son de mayor tamao por lo que pueden almacenar ms
informacin y se pierde menos espacio en disco. Pero a ambos, los supera el NTFS.
Pongo ahora unas tablas que representan con datos numricos lo que os acabo de
decir:




Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

70
Utilizacin de clusters en FAT16:
Utilizacin de clusters en FAT16
Rango para el tamao
del volumen
Tamao del cluster (unidad de
asignacin) por omisin
De 0 a 15 MB* 4 KB
De 16 MB a 31 MB 0,5 KB
De 32 MB a 63 MB 1 KB
De 64 MB a 127 MB 2 KB
De 128 MB a 255 MB 4 KB
De 256 MB a 511 MB 8 KB
De 512 MB a 1.023 MB 16 KB
De 1.024 MB a 2.047 MB 32 KB
De 2.048 MB a 4.095 MB 64 KB
De 4.096 MB a 8.191 MB 128 KB**
8.192 MB o mayors 256 KB**
* Por debajo de los 16 MB, los volmenes FAT emplean un sistema de
archivos FAT de 12 bits (FAT12).
** El soporte para particiones de 4 GB o particiones FAT an mayores que
utilizan clusters de 128 KB o 256 KB precisa unidades cuyos sectores sean
mayores de 512 bytes.
Utilizacin de clusters FAT32:
Utilizacin de clusters FAT32
Rango para el tamao
del volumen
Tamao del cluster (unidad de
asignacin) por omisin
De 512 MB a 8.191 MB* 4 KB
De 8.192 MB a 16.383 MB 8 KB
De 16.384 MB a 32.767 MB 16 KB
32.768 MB o mayors 32 KB
* FAT32 no soporta tamaos de volumen inferiores a los 512 MB.
Utilizacin de clusters NTFS:
Utilizacin de clusters NTFS
Rango para el tamao
del volumen
Tamao del cluster (unidad de asignacin)
por omisin
De 0 MB a 512 MB 0,5 KB
De 513 MB a 1.024 MB 1 KB
De 1.025 MB a 2.048 MB 2 KB
2.049 MB o mayores 4 KB
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

71
Otras ventajas de la nueva versin FAT32 son por ejemplo que puede reasignar el
directorio raz a otra ubicacin de disco si la porcin del mismo donde estaba la raz
original resulta daada. As mismo tambin puede utilizar una copia de seguridad
previamente hecha de su segunda tabla de asignacin en el caso de que la primera
copia estuviese tambin daada o que no se pudiese leer.
Otro tema importante del FAT32, y ya para terminar, es que esta versin dispone de
un registro de inicio que mantiene copias de seguridad de las estructuras de datos
ms importantes del volumen.
NTFS se instalar en los siguientes casos:
- Cuando tengas pensado crear particiones mayores de 8 GB por que NTFS
administrar mejor el espacio en disco. Por ejemplo, con Windows Xp con FAT32
podrs hacer particiones de hasta 32Gb mientras que con NTFS podrs llegar a los
16 Tb. o si ajustamos mucho el tamao de los clsteres, hasta los 256 Tb.

FAT32 se instalar en los siguientes casos:
- Cuando se quiera que la velocidad de acceso al disco sea mayor. Se dice, comenta,
segn tengo ledo que es hasta un 30% ms rpida que NTFS.

- Cuando se necesite un sistema seguro. Windows Xp proporciona ms seguridad en
NTFS que en FAT32, por el cifrado de archivos que coment antes.

- Cuando queramos evitar que el sistema trabaje sobre clsteres errneos,
marcndolos para su no-utilizacin. Adems NTFS garantiza una mejor recuperacin
de errores que en FAT32.

Moraleja: NTFS es mejor en cuanto a calidad de servicios y seguridad, pero FAT32 es
ms rpido

ESTUDIO DEL SISTEMA DE ARCHIVOS EXT3
Principales caractersticas del sistema de ficheros ext3.

El sistema de ficheros ext3 es una extensin con journaling del sistema de ficheros ext2.
Como ya hemos visto con el journaling se obtiene una enorme reduccin en el tiempo
necesario para recuperar un sistema de ficheros despus de una cada, y es por tanto
muy recomendable en entornos donde la alta disponibilidad es muy importante, no slo
para reducir el tiempo de recuperacin de mquinas independientes sino tambin para
permitir que un sistema de ficheros deuna mquina cada sea recuperado en otra
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

72
mquina cuando tenemos un cluster con algn discocompartido. Adems se posibilita que
el sistema de ficheros cado de una mquina (por ejemplo unservidor) est disponible
cuanto antes para el resto de mquinas a travs de la red (nfs, samba, ftp, http, etc.).

Estructura del Sistema de Archivos EXT

El principal objetivo del ext3 es por tanto la disponibilidad, es decir, cuando se apague
incorrectamente la mquina tener el sistema totalmente disponible al momento despus
de volver a arrancar sin necesidad de que se tenga que esperar a pasar un "fsck", el cual
tarda mucho tiempo. Adems con ext3 se ha aadido el journaling de manera que sea
totalmente compatible con los sistemas de ficheros ext2 (es posible migrar sistemas de
ficheros ext2 existentes a ext3 y viceversa muy fcilmente).
La distribucin Red Hat Linux 7.2 ya incluye ext3 como opcin, y es actualmente el
sistema de ficheros oficialmente soportado por dicha empresa (en las nuevas
distribuciones es opcional formatear las particiones del disco con el antiguo ext2). El resto
de distribuciones tambin lo estn incluyendo (incluso se puede usar ext3 en Debian
GNU/Linux 3.0 Woody), por lo que en pocotiempo se espera que el ext3 sustituya al ext2
como sistema de ficheros estndar en Linux.
Ext3 en realidad es ext2 con un fichero adicional de registro, es decir, es una capa
adicional sobre ext2 que mantiene un fichero de registro log de transacciones. Debido a
que est integrado enel ext2 puede que no explote todas las posibilidades de los sistemas
de journaling puros, pero se est trabajando es este rea para mejorarlo.


Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

73
Ventajas de utilizar ext3.
Podemos decir que hay cuatro razones principales para migrar de un sistema de ficheros
ext2 a ext3: disponibilidad, integridad de los datos, velocidad y fcil migracin.

Disponibilidad:
Despus de un apagado incorrecto de la mquina los sistemas de ficheros ext2 no
pueden ser montados de nuevo hasta que su consistencia haya sido chequeada por el
programa "fsck". El tiempo que tarda el programa "fsck" est determinado por el tamao
del sistema de ficheros, hoy en da muy grandes (decenas de gigabytes), por lo que se
tarda mucho tiempo en recuperar el sistema de ficheros. Adems cuantos ms ficheros
tengamos en el sistema de ficheros ms se tardar en chequear su consistencia.
Chequear sistemas de ficheros de decenas de gigabytes puede llevar varios minutos, esto
limita seriamente la disponibilidad.

En contraste el ext3 no requiere un chequeo del disco, incluso despus de un apagado
incorrecto del sistema. Esto es debido a que los datos son escritos al disco de tal manera
que el sistema de ficheros siempre esta consistente. Slo se realizar un "fsck" en el caso
de fallos hardware raramente dados (por ejemplo fallos fsicos del disco duro), y en el
caso de que el sistema de ficheros est configurado para que se chequee completamente
de forma automtica cada cierto periodo de tiempo o cada cierto nmero de montajes
para prevenir posibles fallos. Adems con ext3 se utiliza (si fuese necesario) exactamente
el mismo "fsck" que se utiliza con ext2.

El tiempo necesario para recuperar un sistema de ficheros ext3 despus de un apagado
incorrecto no depende del tamao del sistema de ficheros ni del nmero de archivos que
tenga, slo depende del tamao del "journal" (espacio usado para almacenar la
informacin transaccional)utilizado para mantener la consistencia. Con el tamao que se
utiliza por defecto para el "journal" (tamao fijado automticamente por la utilizad de
creacin del sistema de ficheros "mkfs") se tarda alrededor de un segundo en restaurar un
sistema de ficheros inconsistente (dependiendo de la velocidad del hardware).




Integridad de los datos:
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

74

Usando ext3 el sistema de ficheros puede proporcionar garantas ms fuertes respecto a
laintegridad de los datos en el caso de un apagado incorrecto del sistema. Pudiendo
escoger el tipo ynivel de proteccin que se le da a los datos. Se puede escoger mantener
la consistencia de los datospero permitir daos en los datos dentro del sistema de ficheros
en el caso de un apagado incorrecto, esto puede dar un pequeo aumento de la velocidad
bajo algunas pero no todas las circunstancias. Alternativamente, se puede escoger
asegurar que los datos son consistentes con el estado del sistema de ficheros, esto
significa que nunca habr "datos basura" de un fichero recientemente escrito despus de
una cada del sistema. Esta ultima opcin es la utilizada por defecto.

Velocidad:

A pesar de escribir a veces algn dato ms de una vez, ext3 es en algunos casos incluso
ms rpido que el ext2 por que el journaling del ext3 optimiza el movimiento de cabeza
del disco duro. Con ext3 se puede escoger entre tres modos de journaling diferentes para
optimizar la velocidad, equilibrando esta con una mayor o menor integridad de los datos
dependiendo de las necesidades.

Los diferentes modos son:
_ data=writeback: limita la garanta de integridad de los datos, permitiendo a los antiguos
datos aparecer en ficheros despus de una cada, para un posible pequeo incremento de
la velocidad en algunas circunstancias. Este es el modo jouraling por defecto en muchos
otros sistemas de ficheros journaling, esencialmente proporciona las garantas ms
limitadas de integridad en los datos y simplemente evita el chequeo en el reinicio del
sistema.
_ data=ordered (modo por defecto): garantiza que los datos son consistentes con el
sistema de ficheros. Los ficheros escritos recientemente nunca aparecern con
contenidos basura despus de una cada.
_ data=journal: requiere un "journal" grande para una velocidad razonable en la mayora
de los casos y por lo tanto tarda ms tiempo recuperar el sistema en el caso de un
apagado incorrecto, pero es algunas veces es ms rpido para algunas operaciones ya
que funciona muy bien si se escriben muchos datos al mismo tiempo (por ejemplo en los
spools de correo o servidores NFS sincronizados). No obstante, utilizar el modo "journal"
para un uso normal resulta con frecuencia un poco ms lento.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

75
El modo por defecto (ordered) es el recomendable, pudiendo cambiar el modo en el
montaje del sistema de ficheros.
Fcil migracin:
Las particiones ext3 no tienen una estructura de ficheros diferentes a los de ext2, por lo
queno slo se puede pasar de ext2 a ext3, sino que lo opuesto tambin funciona, esto es
til sobre todo si en algn caso el registro se corrompe accidentalmente, por ejemplo
debido a sectores malos del disco. Es decir, existe total compatibilidad entre ext2 y ext3,
se puede convertir un sistema de ficheros ext2 a ext3 y viceversa fcilmente, adems de
poder montar un sistema de ficheros ext3 como ext25 (ya que la estructura de formateo
del disco es la misma).
Es posible por tanto cambiar fcilmente de ext2 a ext3 y beneficiarse de las ventajas de
un sistema de ficheros journaling robusto sin necesidad de reformatear el disco. Podemos
pasar de un sistema a otro sin necesidad de tener que realizar un tedioso proceso de
backup, formateo y restauracin de los datos, con la posibilidad de que se produzca algn
error (con los otros sistemas de ficheros con journaling es necesario formatear la particin
con su propia utilidad de formateo). El programa "tune2fs" puede aadir el journal a un
sistema de ficheros ext2 ya existente. Si el sistema de ficheros estaba ya montado cuando
se migraba, el journal ser visible como un fichero "journal" en el directorio raz del
sistema de ficheros. Si no estaba montado el journal estar oculto y no aparecer en el
sistema de ficheros (as ocurre si se crea durante la instalacin del sistema).
El sistema de ficheros ext3 se ha beneficiado de la prolongada historia de mejoras y
correccin de errores que tiene el ext2 (del cual a parte su cdigo fuente) y continuar
siendo as. Esto significa que ext3 comparte la robustez del ext2, pero tambin las nuevas
caractersticas que se han aadido al ext2. Resumiendo, ext3 es totalmente compatible en
ambos sentidos con ext2. Se puede migrar un sistema ex2 a ext3 muy fcilmente, se
puede montar un sistema ext3 como ext2 sin modificar nada del sistema de ficheros
journal y tambin eliminar el journal para volver al sistema ext2 anterior.
Otras ventajas importantes de utilizar ext3 son:

1. El ext3 como el ext2 tiene mltiples desarrolladores y organizaciones involucradas
en su desarrollo, por lo que su evolucin no depende de una sola persona o
empresa.
2. Ext3 proporciona y hace uso de una capa genrica de journaling (Journaling Block
Device, JBD) la cual puede ser usada en otros contextos. El ext3 no slo puede
hacer "journal" un sistema de ficheros estndar, tambin otros dispositivos
soportados por Linux (NVRAM, disk-on-chip, USB flash memory drives, etc.)
pueden ser utilizados con ext3.
3. Ext3 tiene una amplia compatibilidad con todas las plataformas, trabaja tanto en
arquitecturas de 32 como de 64 bits, y tanto en sistemas little-endian como big-
endian. Algunos sistemas operativos (por ejemplo algunos clones y variantes de
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

76
UNIX y BeOS) pueden acceder a ficheros en un sistema de ficheros ext2, estos
sistemas tambin lo pueden hacer en un sistema de ficheros ext3.
4. Ext3 no requiere profundos cambios en el corazn del ncleo y no requiere
tampoco nuevas llamadas al sistema. Ext3 est integrado actualmente en los
kernels Linux Mobile System (LMS) - http://linuxmobile.sf.net responsabilidad de
Alan Cox y Linus Torvalds lo incluir muy pronto en su kernel oficial. Seguramente
el ext3 ser el sistema de ficheros estndar de Linux en un futuro prximo.
5. Ext3 reserva uno de los i-nodos especiales de ext2 para el registro de journal, pero
los datos del mismo pueden estar en cualquier conjunto de bloques, y en cualquier
sistema de ficheros. Inclusive se puede compartir el registro de journal entre
sistemas distintos.

Conclusiones.

Por todas las razones que hemos visto no slo se puede confiar en el sistema de ficheros
ext3, sino que adems es recomendable utilizarlo ya que Red Hat lo ha incluido como
sistema de ficheros estndar de su distribucin habiendo realizado todas las pruebas
necesarias en mltiples configuraciones diferentes para ver su robustez, con un resultado
positivo en todas ellas. Incluso desde hace ms de dos aos el ext3 esta funcionando en
grandes servidores (por ejemplo los servidores de rpmfind.net).
Actualmente Linux es conocido como un sistema operativo muy estable, la problemtica
se genera cuando el hardware no es tan fiables como se deseara o la persona que lo
utiliza no lo hace correctamente, ya que en la mayora de los casos, cuando un sistema
falla normalmente es debido a un fallo hardware o a un fallo humano. A veces se
producen apagados incorrectos de las mquinas, y por tanto es necesario esperar a que
se realice un chequeo y recuperacin del disco durante varios (a veces muchos) minutos
para poder volver a utilizarla, y adems se corre el peligro de una prdida
importante de informacin. Ya se han realizado las primeras pruebas de una instalacin
de Linux Mobile System en un USB Flash Memory Drive con sistema de ficheros ext3 con
un resultado totalmente satisfactorio










Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

77
Unidad IV Mecanismos de Proteccin

4.1 Introduccin
4.2 Dominio de Proteccin
4.3 Matriz de Acceso
4.4 Tabla Global
4.5 Lista de Acceso
4.6 Listas de Capacidades
4.7 Estructuras de Proteccin Dinmica
4.8 Mecanismos de Llave y Cerradura
4.9 Comparacin
4.10 Estrategia Total de Seguridad
4.11 Proteccin por Contrasea

4.1 Introduccin.
Conforme los sistemas de computacin se han vuelto ms complejos y sus aplicaciones
se han difundido ms, tambin ha crecido la necesidad de proteger su integridad. En un
principio, la proteccin se concibi como una aadidura a los sistemas operativos de
multiprogramacin para que varios usuarios, en los que no se poda confiar, pudieran
compartir con seguridad un mismo espacio lgico, como un directorio de archivos o un
mismo espacio fsico, como la memoria.
La proteccin se refiere a un mecanismo para controlar el acceso de programas, procesos
o usuarios a los recursos definidos por un sistema de computacin. Hay varias razones
para proporcionar la proteccin, la ms obvia es la necesidad de evitar una violacin mal
intencionada de una restriccin de acceso.
La proteccin puede mejorar la seguridad detectando errores latentes en las interfaces
entre los subsistemas componentes. Un recurso desprotegido no puede defenderse del
uso no autorizado o de un usuario incompetente. Un sistema orientado a la proteccin
ofrece un medio para distinguir entre el uso autorizado y el no autorizado.
En algunos sistemas, la proteccin se impone mediante un programa llamado monitor de
referencias. Cada vez que se intenta un acceso a un recurso que pudiera estar protegido,
el sistema pide primero al monitor de referencias que verifique que tal acceso est
permitido. El monitor examina entonces sus tablas de poltica y toma una decisin. A
continuacin describiremos el entorno en el que opera el monitor de referencias.
4.2 Dominios de proteccin.
Un sistema de computadora contiene muchos objetos que deben protegerse. Estos
objetos pueden ser hardware (por ejemplo, CPU, segmentos de memoria, unidades de
disco o impresoras) o software (por ejemplo, procesos, archivos o bases de datos).
Cada objeto tiene un nombre nico con el cual se hace referencia a l, y un conjunto finito
de operaciones que los procesos pueden efectuar con l. READ y WRITE son
operaciones apropiadas para un archivo.
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

78
Es evidente que se requiere un mecanismo para prohibir a los procesos que accedan a
objetos que no estn autorizados para usar. Adems, este mecanismo debe permitir
restringir los procesos a un subconjunto de las operaciones permitidas cuando sea
necesario. Por ejemplo, el proceso A podra tener derecho a leer, pero no escribir, el
archivo F.
A fin de analizar los diferentes mecanismos de proteccin, resulta til introducir el
concepto de dominio. Un dominio es un conjunto de pares (objeto, derecho). Cada par
especifica un objeto y algn subconjunto de las operaciones que se pueden efectuar con
l. Un derecho en este contexto se refiere al permiso para efectuar una de las
operaciones.
En cada instante, cada proceso se ejecuta en algn dominio de proteccin. En otras
palabras, existe una coleccin de objetos a los que puede acceder, y para cada objeto
tiene ciertos derechos. Los procesos pueden cambiar de un dominio a otro durante su
ejecucin. Las reglas para la conmutacin de dominio dependen mucho del sistema del
que se trate.
Considrese el modelo normal de modo dual (modos usuario y monitor) para la ejecucin
de un sistema operativo. Cuando un proceso funcione en modo monitor puede ejecutar
instrucciones privilegiadas y as obtener un control total del sistema de computacin. Por
otra parte, si se ejecuta en modo usuario, slo puede invocar instrucciones no
privilegiadas y, por consiguiente, nicamente puede ejecutarse dentro de su espacio de
memoria preestablecido. Estos dos modos protegen al sistema operativo (que se ejecuta
en el dominio monitor) de los procesos de usuario (que se ejecutan en el dominio de
usuario). En un sistema operativo multiprogramado no bastan dos dominios de proteccin,
ya que los usuarios tambin quieren protegerse de los dems; por tanto, se requiere un
esquema ms elaborado.

Dominios de Proteccin


Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

79
4.3 Matriz de acceso.
Una pregunta importante es, cmo hace el sistema para saber cul objeto pertenece a
cul dominio? Nuestro modelo de proteccin puede contemplarse abstractamente como
una matriz, llamada matriz de acceso.

Conceptualmente, al menos, podemos imaginar una matriz grande cuyas filas son los
dominios y cuyas columnas son los objetos. Cada cuadro indica los derechos, en su caso,
que el dominio contiene para el objeto. En la siguiente figura se muestra la matriz de la
figura anterior. Dada esta matriz y el nmero de dominio actual, el sistema puede saber si
se permite cierto tipo de acceso a un objeto dado desde el dominio especificado.


Matriz de Acceso
Cuando un proceso se ejecuta en el dominio 1 puede leer el archivo 1 y leer y escribir el
archivo 2. Un proceso que se ejecuta en el dominio 2 puede leer los archivos 3, 4 y 5 ,
escribir en los archivos 4 y 5, puede ejecutar el archivo 4 y por ltimo puede imprimir
en la impresora. El proceso que se ejecuta en el dominio 3 puede leer, escribir y ejecutar
el archivo 6, adems puede imprimir en las dos impresoras.

4.4 Tabla Global
La forma ms sencilla de implantar la Matriz de Acceso es una Tabla Global que consiste
en un conjunto de tripletas <dominio, objeto, conjunto-derechos>. Cuando se ejecuta una
operacin M para un objeto o dentro del dominio D, se busca en la tabla global la tripleta,
si se encuentra, se permite que contine la operacin, de lo contrario se presenta una
condicin de excepcin (error). Esta implantacin presenta varias desventajas.
Habitualmente la tabla es grande y, por lo tanto, no puede conservarse en memoria
principal, por lo que se requiere E/S adicional; con frecuencia se emplean tcnicas de
memoria virtual para manipular esta tabla. Adems, es difcil aprovechar ciertas
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

80
agrupaciones de objetos o dominios; por ejemplo, si todos los usuarios pueden leer un
objeto, debe contar con una entrada en cada dominio.
TABLA
GLOBAL

DOMINIOS OBJETOS DERECHOS
D1 A1, A3 R
D2 A1,A3 r,w,x
D3 A2,A3 r,w
4.5 Lista de Acceso
En la prctica, el almacenamiento real de la matriz de Acceso rara vez se hace porque es
grande y dispersa. La mayora de los dominios no tiene acceso en absoluto a la mayora
de los objetos, de manera que el almacenamiento de una Matriz grande vaca se traduce
en una prdida de espacio en disco. Sin embargo, dos mtodos que son prcticos sin el
almacenamiento de la matriz por renglones o por columnas y despus el almacenamiento
slo de los elementos no vacios. Los mtodos son sorprendentemente distintos.
La primera tcnica consiste en asociar con cada objeto una lista (ordenada) que contenga
todos los dominios que pueden accesar el objeto y que indique cmo hacerlo. A sta lista
se le llama lista de acceso. Si sta se implementara en UNIX, la manera ms sencilla de
hacerlo seria la de colocar la LA de cada archivo en bloque aparte del disco e incluir el
nmero del bloque en el nodo i del archivo. Como solamente se almacenan las entradas
no vacas de la matriz, el almacenamiento total que se requiere para todas las LA
combinadas es mucho menor de lo que se necesitara para toda la matriz.
Para poner un ejemplo de la forma en que funcionan las LA, imaginemos ahora que se
utilizaran en UNIX, donde un dominio est especificado por una pareja (uid,gid). En
realidad, las LA se utilizaban en el antecesor de UNIX, MULTICS, ms o menos en la
misma forma que se describir, de manera que el ejemplo no es hipottico.
Ahora supongamos que se tienen cuatro usuarios (o sea, uids) Jan, Els, Jelle y Maaike,
quienes pertenecen a los grupos sistema, personal, estudiante y estudiante,
respectivamente. Supngase que algunos archivos tienen las siguientes listas de acceso:
ArchivoO: (Jan, *, RWX)
Archivo 1: (Jan, sistema, RWX)
Archivo2: (Jan, *, RW-), (Els, personal, R-), (Maaike, *, R--)
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

81
Archivo3: (*, estudiante, R--)
Archivo4: (Jelle, *, ---), (*, estudiante, R--)
Cada entrada de LA, entre parntesis, especifica un uid, un gid y los accesos permitidos
(Read, Write, eXecute). Un asterisco significa todos los uid o gid. El Archivo 0 puede ser
ledo, escrito o ejecutado por cualquier proceso con uid = Jan y cualquier gid. E! Archivo 1
puede ser accesado slo por procesos con uid = Jan y gid = sistema. Un proceso con uid
= Jan y gid = personal puede accesar el Archivo 0 pero no el Archivo 1. El Archivo2 puede
ser ledo o escrito por procesos con uid = Jan y cualquier gid, por procesos con uid = Els y
gid = personal o bien por procesos con uid = Maaike y cualquier gid. El Archivo3 puede
ser ledo por cualquier estudiante. El Archivo4 es de especial inters. Este indica que
nadie con uid = Jelle de cualquier grupo tiene acceso en absoluto, pero todos los otros
estudiantes lo pueden leer. Mediante las LA es posible prohibir el acceso de uid o gid
especficos a un objeto, mientras que alguien ms de la misma clase puede tener el
acceso permitido.
Eso en cuanto a lo que UNIX no hace. Ahora analicemos qu es lo que s hace.
Proporciona tres bits, rwx, por archivo para el propietario, el grupo del propietario y Otros.
Este esquema vuelve a ser simplemente la LA, pero comprimida a 9 bits. Es una lista
asociada con el objeto que indica quin lo puede accesar y cmo. A pesar de que el
esquema de UNIX de 9 bits es con claridad menos general que un sistema LA completo,
en la prctica es adecuado y su implementacin es mucho ms simple y barata.

LISTA DE
ACCESO

OBJETO DOMINIO DERECHOS
A1 D1 Lectura
D2 Lectura,
Escritura
A2 D3 Lectura
A3 D1 Lectura
D2 Ejecucin
D3 Lectura,
Escritura

Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

82
Cada columna de la matriz de acceso se puede implantar como una lista de acceso para
un objeto. Evidentemente pueden descartarse las entradas vacas. La lista para cada
objeto consiste en pares ordenados <dominio, conjunto de derechos> que define todos los
dominios con un conjunto no vaco de derechos de acceso para ese objeto.
Esta lista puede extenderse fcilmente para definir una lista, ms un conjunto por omisin
de derechos de acceso. Cuando se intenta una operacin de M sobre un objeto Oj en el
dominio Di, consultamos el conjunto por omisin. Si se localiza la entrada, permitimos la
operacin, si no est, consultamos la lista de acceso del objeto Oj, en busca de una
entrada <Dj,Ck> donde M pertenece a Ck.

4.6 Lista de Capacidades
En vez de asociar las columnas de la matriz de acceso a los objetos mediante lista de
acceso, podemos relacionar cada fila con su dominio. Una lista de capacidades para un
dominio es una lista de objetos y las operaciones que se permiten para ellos. Un objeto
muchas veces est representado por su direccin o nombre fsico, denominado
capacidad. Para ejecutar la operacin M en el objeto O, el proceso ejecuta la operacin
M, especificando como parmetro la capacidad (apuntador para el objeto O). Basta la
posesin de la capacidad para que se permita el acceso.
La lista de capacidades est asociada a un dominio, pero un proceso que se ejecuta que
se ejecuta en ese dominio no puede acceder a ella directamente. En cambio, la lista de
capacidades es un objeto protegido, mantenido por el sistema operativo y al cual el
usuario solo puede tener acceso indirecto. La proteccin basada en capacidades se
apoya en que nunca se permite que las capacidades se muevan a un espacio de
direcciones accesible directamente por un proceso de usuario (donde podran
modificarse). Si todas las capacidades estn seguras, el objeto que protegen est tambin
seguro frente al acceso no autorizado.
LISTA DE
CAPACIDADES

DOMINIO OBJETOS DERECHOS
D1 A1
A3
Lectura
Lectura
D2 A1
A3
Lectura,Escritura
Ejecucin
D3 A2
A3
Lectura
Lectura,
Escritura
Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

83
Originalmente las capacidades se propusieron como un tipo de apuntador seguro para
satisfacer la necesidad de la proteccin de recursos que se previ al madurar los sistemas
de computacin multiprogramados. La idea de un apuntador inherentemente protegido
(desde el punto de vista del usuario de un sistema) proporciona una base para la
proteccin que puede ampliarse hasta el nivel de las aplicaciones.
Para ofrecer esa proteccin inherente debemos diferenciar las capacidades de otros tipos
de objetos e interpretarlas en una mquina abstracta donde se ejecutan los programas de
mayor nivel. Generalmente las capacidades se distinguen de otros datos de una de estas
dos maneras:
Cada objeto tiene una etiqueta que especifica su tipo como capacidad o dato
accesible. Los programas de aplicacin no deben tener acceso directo a las
etiquetas; debe usarse Hardware o Firmware para aplicar esta restriccin. Aunque
solo se requiere un bit para distinguir entre las capacidades y otros objetos, con
frecuencia se emplean ms bits. Esta extensin permite que el hardware etiquete
todos los objetos con su tipo.
Otra manera consiste en dividir en dos partes el espacio de direcciones asociado a
un programa. Una parte es accesible al programa y contiene sus datos e
instrucciones normales; la otra parte, que contiene la lista de capacidades, solo es
accesible por el Sitema Operativo. Para apoyar esta estrategia es til un espacio
segmentado de memoria.
4.8 Mecanismo de Llave y cerradura
El esquema de llave cerradura es un punto medio entre listas de acceso y las
capacidades. Cada objeto tiene la lista de patrones nicos de bits, llamados cerraduras;
as mismo, cada dominio tiene una lista de patrones nicos de bits, llamados llaves. Un
proceso que se ejecuta en un dominio solo puede acceder a un objeto si el dominio tiene
una llave que entra en una de las cerraduras del objeto.
Al igual que las listas de capacidades, la lista de llaves para un dominio debe ser
administrada por el sistema Operativo. No se permite que los usuarios examinen o
modifiquen directamente la lista de llaves o cerraduras.
A1 A2 A4 Imp1 Imp2 Plotter Cinta Lectora
D1 R Imp r
D2 R r,w,x R
D3 R r-w Grafic


Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

84
4.9 Comparacin
Las lista de acceso corresponden directamente con las necesidades de los usuarios.
Cuando el usuario crea un objeto, especifica los dominios que pueden acceder al objeto
as como las operaciones permitidas. Sin embargo, como la informacin para un dominio
no est localizada, es difcil determinar el conjunto de derechos de acceso para cada uno.
Adems, hay que comprobar cada acceso al objeto, lo que requiere una bsqueda en la
lista de acceso y puede consumir mucho tiempo en un sistema de gran envergadura con
largas listas de acceso.
Las listas de capacidades no corresponden directamente con las necesidades de los
usuarios: no obstante, son tiles para localizar informacin sobre un proceso en particular.
El proceso que intenta el acceso debe presentar una capacidad para ese acceso; luego,
el sistema de proteccin slo necesita verificar que la capacidad sea vlida. Sin embargo,
la cancelacin de capacidades quiz no sea eficiente.
El mecanismo de llaves y cerradura es un punto intermedio entre estos dos esquemas. El
mecanismo puede ser efectivo y flexible dependiendo de la longitud de las llaves. Las
llaves pueden pasarse libremente de un dominio a otro, y adems, es posible cancelar
eficazmente los privilegios de acceso con slo cambiar alguna de las llaves asociadas al
objeto.
La mayora de los sistemas utilizan una combinacin de listas de acceso y capacidades.
Cuando un proceso trata por primera vez de accesar a un objeto, se consulta la lista de
acceso. Si se niega el acceso, se produce una condicin de excepcin; de lo contrario, se
crea una capacidad y se une al proceso. Las referencias posteriores utilizan la capadidad
para demostrar rpidamente que est permitido el acceso; despus del ltimo acceso, se
destruye la capacidad. Esta estrategia se emplea en los Sistemas MULTICS y CAL, que
usan tanto listas de acceso como de capacidades.
Como ejemplo, considere un sistema de archivos donde cada archivo tiene una lista de
acceso. Cuando un proceso abre un archivo, se efectua una bsqueda en la estructura
del directorio para encontrar el archivo, se comprueba el permiso de acceso y se le asigna
memoria intermedia. Toda esta informacin se anota en una nueva entrada de la tabla de
archivos asociada al proceso. La operacin devuelve un ndice de la tabla para el nuevo
archivo abierto y todas las operaciones sobre el archivo se efectan especificando este
ndice. La entrada de la Tabla de Archivos apunta al archivo y su almacenamiento
temporal. Cuando se cierra el archivo, se elimina la entrada de la tabla. Como el S.O.
mantiene la tabla de archivos, sta no puede ser corrompida por el usuario; por tanto, el
usuario solo puede acceder a los archivos que estn abiertos y, puesto que el acceso se
verifica al abrir el archivo, se asegura la proteccin. Esta estratega se utiliza en el
Sistema UNIX.
Observe que an debe verificarse el derecho con cada acceso y que la entrada de la tabla
de archivos tiene una capacidad solo para las operaciones permitidas. Si se abre un
archivo para lectura, entonces se coloca una capacidad en la entrada de la tabla de
archivos se determina la violacin de la proteccin.

Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

85
4.10 Estrategia Total de seguridad
La proteccin, como la hemos descrito, consiste estrictamente en un problema interno:
Cmo proporcionamos acceso controlado a los programas y datos almacenados een un
sistema de computacin? La seguridad por otra parte, no slo requiere un adecuado
sistema de proteccin, sino tambin considerar el entorno externo donde opera el
sistema. La proteccin interna no es util si la consola del operador esta expuesta a
personal no autorizado o si los archivos (almacenados, por ejemplo, en cintas o discos)
pueden extraerse del sistema de cmputo y transportarse a otro donde no hay proteccin.
Estos problemas de seguridad son esencialmente problemas administrativos, no del
sistema operativo.
En vista de la seguridad de contar con un mecanismo de seguridad que nos garanticen la
integridad y seguridad de los datos, programas y equipo de cmputo se debe de tener en
cuenta tanto la seguridad externa y seguridad interna.
Seguridad externa: se ocupa de proteger el equipo de cmputo contra intrusos y
desastre como incendio e inundaciones. Comprende seguridad fsica y seguridad de
operacin.
Para la seguridad fsica se utilizan mecanismos de deteccin como pueden ser detectores
de humo y sensores de calor los cuales pueden proporcionar un aviso oportuno en caso
de incendio: los detectores de movimiento pueden determinar si ha entrado un intruso en
la instalacin de cmputo.

La seguridad de operacin se compone de las diversas polticas y procesamiento puestos
en prctica por los administradores de las instalaciones de cmputo. Aqu se manejan una
serie de conceptos importantes los cuales se nmero a continuacin:
Autorizacin: la cual determina que acceso se otorga a que entidades,
entendindose por entidades caus usuarios y/o programas.
Clasificacin: la cual consiste en separar los datos del sistema y los usuarios en
clases, a los cuales se les concede diversos derechos de acceso.
Seleccin y asignacin de personal: aqu se maneja el concepto de divisin de
responsabilidades a las personas se les asigna diferentes conjuntos de deberes,
mismos que pueden realizar sin necesidad de conocer la totalidad del sistema, y
as los individuos no pueden percibir el panorama completo. Para poner en peligro
sistema podra ser necesaria la participacin de varios empleados y ello, reduce
considerablemente la probabilidad de violaciones de la seguridad.
Es preciso incluir verificaciones y balances en el sistema como ayuda en la
deteccin de violaciones de la seguridad: el personal de operacin no debe tener
conocimiento de la naturaleza de estos controles, lo cual reduce la posibilidad de
esquivarlos.

Teora de Sistemas Operativos
Prof. Germn Ros Toledo (Instituto Tecnolgico de Tuxtla Gutirrez)

86
Vigilancia: se ocupa de supervisar el sistema y realizar auditora de el y de
verificar la identidad del usuarios. Algunos de los sistemas de verificacin de
autenticidad usados hoy en das son muy complejos. Un problema interesante
inherente en estos sistemas es la posibilidad de rechazar usuarios legtimos que
se encuentra resfriado: un usuario de huellas digitales podra rechazar a un
usuario legtimo con una cortadura o quemadura.
Supervisin de amenazas: consiste en no permitir el acceso directo al usuario a
los datos y/o programas, eso se consigue mediante una serie de rutinas
programas integrados en el ncleo del sistema operativo. La rutinas reciben el
nombre de programas de supervisin, los cuales sirven de intermediarios entre las
solicitudes del usuario y el sistema operativo para la asignacin y acceso de los
recursos, es decir, estos programas monitorean constantemente el manejo de la
informacin e impiden en un momento dado que algn usuario tenga acceso a los
datos y programas. Estos programas pueden permitir o negar el acceso del
recurso al usuario.
Amplificacin: a veces es preciso conceder a un programa de vigilancia mayores
derechos de acceso. As para calcular los ingresos promedios de todos los
contribuyentes en una ciudad, el programa de vigilancia requerira tener acceso a
los registros individuales de cada contribuyente.

Você também pode gostar