Vous êtes sur la page 1sur 114

INSTITUTO TECNOLGICO DE VERACRUZ

SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS


Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Unidad 1. Introduccin a los Sistemas Operativos

1.1 Definicin y Concepto

Un Sistema Operativo (S.O.) es una coleccin organizada de rutinas o
extensiones de software del hardware. Consiste en rutinas de control que
hacen funcionar una computadora y proporcionan un entorno para la ejecucin
de los programas. Existen otros programas que se apoyan en el S.O. para
poder acceder a los recursos que necesitan. Esto se lleva a cabo a travs de
llamadas sistema operativo. Tambin el S.O. debe brindar una forma de que el
usuario se pueda comunicar con l a travs de una interfaz que le brinde una
va de comunicacin con el hardware del sistema informtico.

El objetivo principal del S.O. es lograr que el hardware de la computadora se
emplee de modo eficiente, y su objetivo secundario es que se use de manera
cmoda.

El S.O. debe asegurar el correcto funcionamiento del sistema informtico. Para
lograr esto el hardware debe brindar algn mecanismo apropiado que impida
que los usuarios intervengan en el funcionamiento del sistema y as mismo el
S.O. debe poder utilizar este recurso de hardware de modo que esto se
cumpla.

El S.O. debe ofrecer servicios a los programas y sus usuarios para facilitar la
tarea de programacin.

Las clases de sistemas operativos en la que nos basaremos sern los
denominados multiusuarios y de multiprogramacin; es decir que varios
usuarios podrn correr concurrentemente mltiples programas.

Un S.O. es una parte importante de casi cualquier sistema informtico. Para
entender mejor esto veremos que un sistema informtico puede separar en
cuatro partes:

El hardware
El S.O.
Los programas de aplicacin
Los usuarios
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin


Estas partes hacen de capas, cada una de las cuales acerca ms al usuario a
utilizar los recursos del hardware. El hardware (CPU, memoria y dispositivos)
proporciona los recursos de computacin bsicos sobre los que se agregaran
estas capas sucesivas. Los programas de aplicacin como los compiladores,
juegos, aplicaciones de negocios, etc. definen la forma en que estos recursos
se emplearn para solucionar los problemas del usuario.

Puede haber varias clases de usuarios usando el sistema, como ser personas,
programas y otras computadoras, tratando de resolver diversos problemas. El
S.O. controla y coordina el uso del hardware entre los diversos programas de
aplicacin y los distintos usuarios, administrando todos los recursos como
disco, memoria, impresoras, monitor, etc. El S.O. determina los tiempos en que
un determinado programa utilizar un recurso. dado.

Al comienzo de la era informtica, los sistemas no utilizaban S.O.'s. Estas
computadoras de hace 40 aos ejecutaban un programa a la vez que era
cargado por un programador. Este cargaba el programa y lo ejecutaba. Si
exista algn error que hiciera que el programa se detuviera antes de lo
esperado, se tena que comenzar de nuevo con todo el proceso. Recordemos
que en esa poca no haba muchas computadoras en funcionamiento, as que
el programador tena que esperar de varios das hasta tener nuevamente su
turno enfrente de la computadora. Los S.O.'s existen porque son una solucin
razonable al problema de crear un sistema informtico til. El objetivo
fundamental de los sistemas informticos es ejecutar los programas de los
usuarios y facilitar la resolucin de sus problemas. Todo esto se haca a travs
de tarjetas perforadas que una persona encargada cargaba en la computadora
y luego de algunas horas devolva la salida impresa al programador.

Al avanzar la tecnologa informtica, muchos de estos programas se cargaban
en una sola cinta, otro programa residente en la memoria de la computadora,
cargaba y manipulaba los programas de esa cinta. Este es el ancestro de los
S.O.'s de hoy en da. En la dcada del 60 la tecnologa de S.O.'s avanzo
mucho y se podan tener mltiples programas al mismo tiempo en la memoria.
As surgi el concepto de multiprogramacin. Si un programa necesitaba
esperas a que ocurriera algn evento externo, como que una cinta se
rebobinara, otro podra tener acceso. a la CPU para as poder utilizar el 100%
del poder de procesamiento con que contaba la computadora. Esto ahorraba
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
mucho dinero ya que en aquel entonces todo en lo referente a cmputo
(memoria, espacio en disco, etc.) costaba cientos de miles de dlares. A finales
de los 60's, en 1969, naci UNIX, que es la base de muchos de los S.O.'s de
hoy en da.

Definir que forma parte de un S.O. y que no sera difcil, dada la gran variedad
existente, pero una definicin para los S.O. que nos compete en estos
momentos seria que el S.O. es el programa que ejecuta todo el tiempo en la
computadora (conocido usualmente como kernel o ncleo), siendo los
programas de aplicacin todo lo dems. En general un S.O. intenta incrementar
la productividad de un recurso de proceso tal como el hardware de la
computadora, o de los usuarios de los sistemas informticos.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
1.2 Funciones y Caractersticas
Funciones Bsicas de un Sistema Operativo
Se tendr como punto de partida la mquina tal cual, es decir, el hardware
bsico del computador, con una CPU, memoria central y perifricos. Sin ayuda
del Software las operaciones de cargar y ejecutar un programa se debe realizar
de forma manual, es decir totalmente bajo control humano. El operador debe
llevar a cabo una secuencia de tareas:

Colocar el programa fuente almacenado en el dispositivo de entrada
adecuado (cintas, tarjetas, discos...).
Desencadenar la ejecucin de un programa de lectura para el dispositivo
elegido.
Desencadenar la ejecucin de un compilador que traduzca el programa
fuente.
Colocar los datos de entrada en el dispositivo adecuado.
Ejecutar el programa objeto.
Sacar los resultados por impresora.

Un sistema operativo crea un entorno para la ejecucin de programas. Ofrece
ciertos servicios a los programas y a los usuarios de estos programas.
Dependen del tipo de Sistema Operativo, pero las funciones bsicas son:

De cara al usuario:
Ejecucin de programas. El sistema debe ser capaz de cargar un
programa en memoria y ejecutarlo.
Operacin de I/O. Un programa de usuario no puede ejecutar
directamente operaciones de I/O. El sistema operativo debe facilitar
medios para realizarla.
Manipulacin de ficheros: Lectura, escritura y borrado a partir del
identificador de los mismos.
Deteccin de errores: Para cada tipo de error el sistema operativo debe
adoptar la iniciativa apropiada que garantice una computacin correcta y
consistente. No confundir esta deteccin de errores con la producida
durante la compilacin de un programa. Esta deteccin se hace de cara
a un funcionamiento eficiente.

De funcionamiento eficiente:
Asignacin de recursos.
Contabilidad: control del uso. de la computadora por cada usuario.
Proteccin: de datos, recursos, programacin, etc.


Caractersticas de un Sistema Operativo
1.- Concurrencia.
Consiste en la existencia de varias actividades simultneas o paralelas.
Ejemplo de ello lo son la superposicin de las operaciones de I/O con el
proceso de computacin, as como la coexistencia en memoria de varios
programas. La concurrencia lleva asociado el problema de conmutar de una
tarea a otra, as como proteger una determinada actividad de los efectos de las
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
otras, as como la sincronizacin de tareas que sean mutuamente
dependientes.

2.- Utilizacin conjunta de recursos. Comparticin.
Las razones para la comparticin son las siguientes:

a) El coste: es absurdo disponer de suficientes recursos para cada usuario por
separado.

b) Aprovechamiento de los trabajos de otros. La utilidad es poder utilizar rutinas
y programas desarrollados por otras personas.

c) Posibilidad de compartir datos: Utilizacin de una misma base de datos para
varios programas distintos, asociados posiblemente a distintos usuarios.
d) Eliminacin de redundancias: poder disponer de una sola copia de un
programa (por ejemplo un compilador) y compartirlo con otros.

3.- Permite que el usuario guarde sus datos o programas en el propio
ordenador, y no tener que usar medios externos (portables). Los problemas
que se plantean son de proteccin de la informacin frente a terceros y
protegerlos frente a fallos del sistema.

4.- Un Sistema Operativo debe ser determinista en el sentido de que el mismo
programa ejecutado con los mismos datos, en momentos diferentes, debe
producir los mismos resultados. En cambio ser indeterminista porque en caso
de variabilidad de las situaciones puede responder de un modo impredecible.
Deben tomarse las medidas oportunas. Estas situaciones pueden ser debidas a
peticin de recursos, errores de ejecucin en programas o bien interrupcin de
perifricos.


Caractersticas Deseables en un Sistema Operativo

Eficiencia
Se juzgar la eficiencia de un Sistema Operativo mediante los siguientes
criterios:

1. Tiempo transcurrido entre tareas.
2. Tiempo no empleado del procesador central.
3. Tiempo de ejecucin empleado en las tareas batch.
4. Tiempo de respuesta (en los sistemas de acceso mltiple).
5. Utilizacin de recursos.
6. Rendimiento (tareas ejecutadas por hora).

Fiabilidad
Estar libre de errores y ser capaz de resolver satisfactoriamente todas las
contingencias que se pudieran presentar.

Mantenibilidad
Ser posible corregir un Sistema Operativo (mejorndolo, o bien subsanando
errores) sin tener graves problemas. Estar bien documentado.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Tamao reducido
El espacio ocupado por el Sistema Operativo no est disponible para su
utilizacin productiva, por lo que debe ocupar lo menos posible. Para ello es
preciso que el sistema operativo sea modular en su construccin. Disponer de
interfaces claramente definidas en mdulos y estar bien documentado.


Prestacin de Servicios
Llamada al sistema:
Los servicios de ms bajo nivel se obtienen mediante el uso de llamadas al
sistema, Constituyen un interfaz entre el programa que se est ejecutando y el
sistema operativo. Estas llamadas estn implementadas generalmente por
instrucciones en lenguaje ensamblador. Se dividen en cuatro clases:

Control de procesos: Sirven para poder detener un programa normal o
anormalmente. Tambin se utilizan para cargar y ejecutar otros
procesos. Un ejemplo son los Lenguajes de Control de Trabajos.

Manipulacin de ficheros: Crean, abren, borran, cierran, leen, escriben y
reposicionan ficheros. Obtienen y establecen atributos de ficheros.

Manipulacin de dispositivos: Solicitud y liberacin de dispositivos. Leen,
escriben y reposicionan ficheros. Obtienen y establecen atributos de
dispositivos.

Mantenimiento de la informacin: Obtener y establecer hora y fecha.
Obtener y modificar datos del sistema. Obtener y establecer atributos de
proceso, fichero o dispositivo.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
1.3 Evolucin Histrica
Primera generacin (1945-1955)
No existen Sistemas Operativos.
Un grupo reducido de gente diseaba, construa, programaba, mantena
cada mquina.
Las instrucciones se codificaban a mano.
El programador insertaba su trabajo y esperaba su turno.
Exista un desaprovechamiento inadecuado del computador ("tiempos
muertos de la CPU").
Disparidad de tiempos de ejecucin entre la CPU y los dispositivos de
E/S.
En 1950 aparecen las tarjetas perforadas.

Segunda generacin (1955-1965)
Aparicin de los transistores.
Se especializa el personal (diseadores, analistas, ...).
Se desarrollan los primeros sistemas operativos.
Se procesan los trabajos por lotes ("batch").
El S.O. se entiende como un programa de control que planifica los
trabajos.

Tercera generacin (1965-1980)
Aparecen los circuitos integrados y la multiprogramacin.
Existen muchas computadoras diferentes con S.O. muy diferentes.
Se suministran una gran cantidad de programas de utilidad.
Los S.O. son complejos.
Se utilizan dispositivos virtuales como las tcnicas de SPOOL.
Multiprocesamiento (sistemas compuestos de varios procesadores).
Surgimiento de la Ingeniera del software.
Separacin entre la venta de hardware y software.

Cuarta generacin (1980-2000)
Circuitos LSI (alta escala de integracin) y, posteriormente, VLSI.
Relanzamiento de los ordenadores personales.
Crecimiento del software para las computadoras personales.
Crecimiento de las redes de computadoras que ejecutan S.O. en red y
distribuidos.

Quinta generacin (2000-...)
Aparicin de las computadoras de bolsillo (PDA, Personal Digital
Assistant) como ampliacin de las agendas electrnicas.
Los S.O. se adaptan a estas nuevas computadoras y telfonos mviles
(mucho ms pequeos que una computadora).
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
1.4 Clasificacin de los Sistemas Operativos

Segn su entorno de funcionamiento:
A. Nmero de usuarios que puede soportar:
S. O. monousuarios
S. O. multiusuarios

B. Propsito para el que fueron diseados:
S. O. de propsito general
S. O. de propsito especfico
S. O. de tiempo real: proveen una respuesta dentro de unos intervalos
de tiempo bien definidos a priori.
S. O. de tolerancia a fallos: capaces de detectar errores (hardware y
software) y darles solucin.
S. O. virtuales: ejecutan a otros S. O. concurrentemente en la misma
mquina.

C. Modo en el que se trabaja con ellos:
S. O. off-line (batch)
S. O. on-line (interactivo)

D. Hardware del ordenador:
1. Nmero de procesadores
S. O. monoprocesador
S. O. multiprocesador

2. Situacin de la memoria principal:
S. O. centralizado
S. O. distribuido

Tipos de Sistemas Operativos
1. Monoprogramacin
Hasta que no finaliza la ejecucin de un programa de usuario no empieza a
ejecutarse otro.

Consecuencias:
Tiempos muertos de CPU, perifricos, ...
Desaprovechamiento de la Memoria Central (la no ocupada por el
proceso).
Entre la finalizacin de un programa y el comienzo del siguiente
transcurre un tiempo en el que el ncleo del sistema operativo tiene el
control del procesador (CPU).

2. Sistemas por lotes o colas ("sistemas batch")
Un sistema por lotes realiza una secuenciacin automtica de trabajos. En l
van pasando a ejecucin de uno en uno los programas en espera.
La planificacin es muy simple. Los trabajos se procesan, en general, en el
orden de admisin (FIFO).
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Un S.O. por lotes puede servir muy bien para programas que no requieran
interaccin con el usuario y aquellos con tiempos de ejecucin largos, como los
programas de nminas, de anlisis estadsticos, etc.
Debido a los retardos en el tiempo total de ejecucin, el procesamiento por
lotes no es muy conveniente para el desarrollo de programas.

3. S.O. de multiprogramacin
Se cargan en memoria principal varios programas que se van ejecutando
concurrentemente con lo cual, en un determinado tiempo se estarn ejecutando
varios programas.

Ventajas: Aprovechamiento de la memoria y mejora de los tiempos muertos del
procesador. Un programa en ejecucin se conoce como proceso. El programa
es, por tanto, un ente "pasivo" y el proceso un ente "activo". Un S.O.
multiproceso o multitarea soporta dos o ms procesos activos
simultneamente.

Un S.O. de multiprogramacin soporta mltiples procesos concurrentes y,
adems, permite que residan simultneamente en la memoria principal las
instrucciones y datos procedentes de dos o ms procesos disjuntos. La
multiprogramacin implica multiproceso pero el multiproceso no implica
multiprogramacin.

Tipos de multiprogramacin:
Clsica
Tratamiento paralelo
Tiempo compartido

Multiprogramacin clsica
El planificador del procesador da el turno a un programa determinado.
Cuando ste tiene que realizar una operacin de E/S, le da el control del
procesador a otro programa y as sucesivamente. Cuando un programa finaliza
una operacin de E/S, el perifrico se lo comunica a la CPU (mediante una
interrupcin) para cederle el control la prxima ocasin que le toque su turno.

Problema: Monopolizacin de la CPU por parte de programas con mucho
clculo y poca E/S.

Tratamiento paralelo
A cada uno de los programas en memoria se le asigna un intervalo de tiempo
fijo o periodo T llamado "cuantum" (dcimas de segundo). Al finalizar el
cuantum asignado a un programa, el control de la CPU pasa al siguiente
programa y as sucesivamente.

La cuenta del tiempo se realiza mediante un circuito contador activado por el
reloj de la CPU (temporizador digital). Al transcurrir el periodo T se genera una
interrupcin de la CPU.

Tiempo compartido
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Se asigna el control de la CPU a un nuevo programa interrumpiendo al anterior
siempre que este ltimo agote su cuantum de tiempo o que entre en la
ejecucin de una instruccin de E/S.
La CPU trabaja el 100% en determinados intervalos segn el tipo de carga.

4. S.O. de secuencias mltiples o colas paralelas (multisecuencias)
Permiten coexistir en memoria en ejecucin concurrente distintos tipos de
trabajos (organizados en colas diferentes).
Los trabajos se introducen en las distintas colas las cuales contienen distintas
caractersticas (tiempo de CPU, prioridades, etc.) que deben reunir los trabajos.
En ejecucin concurrente habr un trabajo por cada cola que exista. Pueden
existir trabajos de tipo interactivo.

5. Sistemas de bases de datos
Estos S.O. mantienen una gran cantidad de datos que pueden ser consultados
en busca de una determinada informacin que debe suministrarse en un
periodo razonable de tiempo.
La B.D. puede ser frecuentemente modificada para mantener la informacin
actualizada y se evitan las operaciones simultneas sobre los mismos datos.

6. Sistemas en tiempo real
Un S.O. en tiempo real se caracteriza por el procesamiento de una actividad
interrumpida, en la mayora de los casos, por sucesos externos aleatorios.
El procesamiento de un suceso. particular viene acompaado por secuencias
de tareas que se deben de realizar dentro de rgidas restricciones de tiempo.

Un suceso puede ser:
La recepcin de un dato (procedente, por ejemplo, de un sensor).
La demanda de servicio de un dispositivo en lnea.

Un sistema en tiempo real monitoriza y controla el sistema con mnima
intervencin humana. Slo interviene en fallos del sistema o cuando se violan
algunos lmites.
El sistema est completamente dedicado a la aplicacin de control y debe estar
configurado para garantizar respuestas rpidas en el tiempo incluso. con
cargas pesadas. Los procesos suelen residir permanentemente en memoria
principal para proporcionar tiempos de respuesta rpidos. El entorno es tal que
la utilizacin del equipo es menos importante que la respuesta al entorno.
Ejemplos: Lneas de produccin, semforos de trfico, equipamiento telefnico,
control de vuelo, aplicaciones militares, etc.

Es importante que el procesador pueda responder muy rpidamente a
interrupciones externas y determinar intervalos de tiempo con una precisin
muy alta.

7. Sistemas multiprocesador. Redes y sistemas distribuidos
Una red interconecta varias computadoras ("hosts"), cada una de las cuales
puede proporcionar servicios de computacin a los usuarios de la red. Las
redes estn conectadas por subsistemas de comunicaciones y uno o varios
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
tipos de enlaces de comunicaciones como pueden ser las lneas telefnicas,
canales de satlite, cables coaxiales y enlaces de microondas.

Tipos de aplicaciones de procesamiento distribuido:
Redes de recursos compartidos: Los recursos de las diferentes
computadoras se ponen a disposicin de las otras computadoras. La red
proporciona los mecanismos para crear la ilusin de que los dispositivos
remotos estn disponibles en el sistema local.
Redes de computacin distribuida: Realiza actividades de multitarea
como pueden ser el control de procesos o de bases de datos, etc. Ej.:
Planta de fabricacin de una compaa en todo un pas.
Redes de comunicacin remota: Proporcionan los medios para que los
usuarios puedan acceder a instalaciones remotas de la forma ms
econmica posible.

Un sistema operativo para red es una coleccin de software y protocolos
asociados que permiten a varias computadoras autnomas que se encuentran
interconectadas por una red de computadoras, ser utilizadas conjuntamente de
una manera conveniente y econmica.

Los S.O. para redes se clasifican en:
S.O. en red (NOS, Network Operating System)
S.O. distribuidos (DOS, Distributed Operating System)

S.O. en red
Cada uno de los hosts de la red utiliza su propio S.O. que no es de red. La red
est controlada por los programas de usuario ejecutados en los diferentes
hosts. Los usuarios conocen la existencia de mltiples computadoras y pueden
conectarse a mquinas remotas y copiar archivos de una mquina a otra. Cada
mquina tiene sus propios usuarios y ejecuta su S.O.

S.O. distribuidos
Los S.O. individuales de los hosts quedan descartados y se implementa un
nico sistema operativo para toda la red. Aparece a los usuarios como un
sistema uniprocesador aunque conste de muchos procesadores. Los usuarios
no saben dnde se ejecutan sus programas ni dnde se localizan sus archivos.
Por ello, la caracterstica principal de un DOS es la transparencia.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
1.5 Estructuras (Niveles o Estratos de Diseo)

Sistemas monolticos.
Descripcin: sin estructura definida. Se componen de un conjunto de
procedimientos, donde cada uno de ellos puede llamar a todos los dems.

Proceso para requerir un servicio del S.O.: el programa de usuario coloca los
parmetros necesarios en los lugares previamente definidos, y seguidamente
ejecuta una llamada al supervisor (se cambia de modo usuario a modo
supervisor), transfiriendo el control al S.O. que examina dichos parmetros y
determina el procedimiento que debe invocar. Cuando se complete la llamada
devuelve el control al programa de usuario.

S.O. con una pequea estructura de niveles:




Sistemas en estratos.
Descripcin: se organiza en una jerarqua de estratos, estando construido cada
uno de ellos sobre el otro que tiene menor jerarqua que l.

Ejemplos:
A. THE (Dijkstra, 1968): sistema de procesamiento por lotes.



INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
B. MULTICS: anillos concntricos alrededor del hardware, donde los internos
son ms privilegiados que los externos.




Mquinas virtuales.
Descripcin: crea ilusiones (mquinas virtuales) de la mquina real,
permitiendo que en cada mquina virtual se ejecute un S.O. distinto.
El programa de control es el que se ejecuta directamente sobre el propio
hardware y ofrece al nivel inmediatamente superior varias mquinas virtuales.



Modelo Cliente-Servidor.
Descripcin: su objetivo es minimizar el kernel desplazando el cdigo de todos
sus servicios a estratos lo ms superiores posibles. Para ello, la mayora de
sus funciones se implementan como procesos de usuario, denominados
procesos servidores, de forma que cuando un proceso de usuario llamado
proceso cliente, necesita un servicio del S.O. lo que hace es enviar un mensaje
al proceso servidor correspondiente, que realiza el trabajo y devuelve la
respuesta.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
El kernel lo nico que hace es implementar la comunicacin entre clientes y
servidores y entre servidores y el hardware



Estructura orientada al objeto.
Descripcin: se basan en una coleccin de objetos, donde las funciones del
sistema son un tipo de objeto (ficheros, dispositivos, etc.). La interaccin entre
dichos objetos viene determinada por las capacidades que cada uno tenga
para actuar con el otro.

El kernel es el responsable del mantenimiento de las definiciones de los tipos
de objetos soportados y del control de los privilegios de acceso a los mismos.
Cuando un programa desee realizar una operacin sobre un objeto
determinado, deber ejecutar una llamada al sistema, indicando qu derechos
tiene para poder utilizarlo y qu operacin intenta llevar a cabo. Como
resultado de dicha llamada, el sistema validar la peticin y, si puede ser
aceptada, permitir la realizacin de dicha operacin.



INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
1.6 Ncleo del Sistema Operativo

Caractersticas del ncleo
El kernel se ejecuta con las interrupciones desactivadas y es la parte del S. O.
ms cercana al hardware, por ello suele estar codificado en ensamblador o
lenguaje mquina, adems de estar residente en memoria principal. El resto del
S. O. se suele programar en lenguajes de alto nivel.

Funciones bsicas del kernel:
a) Manipulacin de interrupciones;
b) Inhabilitacin y habilitacin de interrupciones;
c) Creacin y destruccin de procesos;
d) Cambio de estado de un proceso;
e) Despachar un proceso;
f) Comunicacin entre procesos;
g) Manipulacin de los Process Control Block (PCB);
h) Soporte para servicios de ms alto nivel.

Componentes del ncleo.
Administrador de procesos;
Controlador de interrupciones;
Manejador de la comunicacin entre procesos.


1.6.1 Administrador de Procesos (Dispatcher)
Se encarga de asignar los procesadores a los diferentes procesos, por lo tanto
debe actuar cuando se debe comprobar si es necesario cambiar el proceso que
est activo, es decir en las siguientes situaciones:

Cuando el proceso. que esta activo se bloquea;
Cuando un proceso se desbloquea pasando a estado listo y debido al
algoritmo de planificacin este puede desplazar al que esta activo;
Cuando un proceso debe pasar de activo a listo y por lo tanto otro
pasara de listo a activo.



INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
1.6.2 Controlador de Interrupciones
Tipos de interrupciones:
Interrupciones internas: producidas por los propios procesos;
Interrupciones externas: producidas por elementos ajenos a los
procesos.

Objetivos del controlador de interrupciones:
1. Determinar el origen de la interrupcin.

Mtodos:

Ejecutando un trozo de cdigo formado por estructuras de decisin
anidadas (cadena de saltos);
Que el hardware sea capaz de distinguir las diferentes fuentes de
interrupcin y transferir el control a su correspondiente rutina de
tratamiento;
Primero el hardware reconoce a que grupo pertenece la interrupcin y
luego mediante una pequea cadena de salto asociada a ese grupo se
identifica la interrupcin.

2. Dar servicio a la interrupcin.
El controlador inicia el servicio de la interrupcin invocando a la rutina de
tratamiento adecuada. Estas rutinas de tratamiento deben ser lo ms cortas
posibles, por lo tanto, en general, llevan a cabo acciones mnimas.
Es posible que una interrupcin vare el estado de un proceso, en cuyo caso
ser la propia rutina de tratamiento la que cambie dicho estado accediendo al
PCB del proceso.

Mientras que acta el controlador de interrupciones estas estn inhabilitadas.
Sin embargo, esto no se puede realizar en sistemas donde determinadas
interrupciones requieren una respuesta rpida. Por ello, surge la nocin de
prioridad entre las interrupciones, de forma que una interrupcin puede ser
interrumpida si llega otra con una prioridad ms alta. En definitiva, solo se
inhabilitan las interrupciones de igual o menor prioridad.

1.6.3 Primitivas de Comunicacin

Esquemas de comunicacin:
1) Memoria compartida:
- Los procesos se comunican a travs de variables compartidas.
- El sistema operativo provee la memoria compartida.
- El programador tiene la responsabilidad de proveer comunicacin.

2) Sistema de mensajes:
- El sistema operativo tiene la responsabilidad de proveer comunicacin.
- Operaciones:
* SEND (enviar)
* RECEIVE (recibir)

Los mensajes pueden ser de tamao fijo o variable
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Enlace de Comunicacin (Link)
Debe existir entre dos procesos que deseen comunicarse.

Estos pueden ser:

A) Fsicos:
- Memoria Compartida.
- Bus de Hardware.
- Red de Interconexin.

B) Lgico: Deben definirse e implementarse.

Tipos de Comunicacin.
A- Directa: Proceso fuente y proceso destino.

- Operaciones:
SEND (P,Mensaje)
RECEIVE (Q,Mensaje)

- Simtrica: Comunicacin uno a uno.

Propiedades Del Link En La Comunicacin Directa
Se establece automticamente entre cada par de procesos
comunicantes.
Entre cada par de procesos que se comunican existe slo un "LINK".
Un Link est asociado exactamente con dos procesos.
El link es bidireccional.

B. Indirecta: Los mensajes son enviados y recibidos a travs de buzones

- Cada buzn tiene su propia identificacin.

- Operaciones:
SEND(A,mensaje)
RECEIVE(A,mensaje) donde A es el buzn.

- Asimtrica: Es de uno a varios.

Propiedades del Link en la Comunicacin Indirecta.
Se establece entre dos procesos si tiene un buzn compartido.
Un Link puede estar asociado con ms de dos procesos.
Entre cada par de procesos que se comunican puede existir ms de un
Link.
Puede ser unidireccional o bidireccional.

Propietarios de un Buzn (Mailbox).

- Un proceso
P = Propietario -> P slo lee de A.
Q = Usuario -> Q slo escribe en A
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
- El sistema Operativo ofrece mecanismos para:
Crear un nuevo buzn.
Enviar y recibir mensajes.
Destruir un buzn.




Pipes:
Generalmente se usa entre un proceso productor y un proceso consumidor.
Los mensajes son de tamao fijo.

Buffering:
Se refiere a la cantidad de mensajes que pueden residir temporalmente en un
link. Esta propiedad puede verse como una "cola de mensajes que est
relacionada (unida) al link.

Formas (Colas)
Capacidad cero: - El link no puede tener ningn mensaje esperando en
el.
Capacidad Limitada: A lo sumo n mensajes pueden residir en la cola
del link.
Capacidad Ilimitada: La cola tiene potencialmente longitud infinita.









ENTREGA DE EVIDENCIAS UNIDAD I
1. INVESTIGACION DOCUMENTAL PARA ELABORACION DE ENSAYO
2. VISITA A EMPRESA PARA CONOCER SUS SISTEMAS OPERATIVOS
3. REPORTE DE VISITA A EMPRESA
4. PRESENTACION DEL ENSAYO Y VISITA INDUSTRIAL
5. PRACTICAS UNIDAD I




Buzn
P
Q
A
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin



Unidad 2. Administracin de Procesos y del Procesador

2.1 Concepto de Proceso
Un programa es una secuencia de instrucciones o acciones definidas a priori,
que pueden ser ejecutadas por parte de un procesador.

Un proceso es una secuencia de acciones derivadas de la ejecucin de una
serie de instrucciones. Esto implica que:

Un proceso puede requerir la ejecucin de uno o varios programas; y
Que un programa puede formar parte de ms de un proceso.

Un proceso se lleva a cabo por la accin de un agente (procesador) que
ejecuta el programa asociado. Es decir, un procesador ejecuta un proceso, o
un proceso se ejecuta sobre un procesador.

El programa o programas asociados a un proceso no tienen porqu estar
implementados en software.


En la literatura, sobre todo en el mbito de sistemas operativos, existen
tambin los conceptos de hilos (threads'') y de tareas (tasks'' o jobs'') que son
parecidos al concepto de proceso, an que se distinguen en varios aspectos
(por ejemplo, en el acceso a los recursos, en la vista de memoria, en la
priorizacin etc.). En nuestro contexto no vamos a diferenciar mucho ms.
Solo destacamos el concepto de hilo que se usa casi siempre en la
programacin moderna. Un programa multi-hilo intercala varias secuencias de
instrucciones que usan los mismos recursos (sobre todo aprovechan de una
memoria comn) bajo el techo de un slo proceso en el sentido de unidad de
control del sistema operativo, (que no se debe confundir con nuestro concepto
abstracto de proceso). El cambio de contexto de un hilo al siguiente dentro del
procesador se realiza rpidamente.

Cmo se representan los Procesos?
Se representan utilizando los conocidos como Bloques de control de proceso
(PCB) (Bloque de contexto o descriptor de proceso), los cuales contienen la
siguiente informacin sobre ese proceso:
Estado actual;
Identificacin;
Punteros para localizar la memoria que usa;
rea para preservar registros;
Punteros para asignar recursos.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
2.2 Estados y Transiciones de los Procesos
Durante su vida, un proceso puede pasar por una serie de estados discretos,
algunos de ellos son:

En ejecucin: El proceso ocupa la CPU actualmente, es decir, se est
ejecutando.
Listo o preparado: El proceso dispone de todos los recursos para su
ejecucin, slo le falta la CPU.
Bloqueado: Al proceso le falta algn recurso para poder seguir
ejecutndose, adems de la CPU. Por recurso se pueden entender un
dispositivo, un dato, etc. El proceso necesita que ocurra
algn evento que le permita poder proseguir su ejecucin.

Hay otros estados de los procesos, pero en el presente documento se tratarn
estos tres. Por sencillez, se considera un sistema con una sola CPU, aunque
no es difcil la extensin a mltiples procesadores. Solamente puede haber un
proceso en ejecucin a la vez, pero pueden existir varios listos y varios pueden
estar bloqueados. As pues, se forman una lista de procesos listos y otra de
procesos bloqueados. La lista de procesos listos se ordena por prioridad, de
manera que el siguiente proceso que reciba la CPU ser el primero de la lista.
La lista de procesos bloqueados normalmente no est ordenada; los procesos
no se desbloquean (es decir, no pasan a ser procesos listos) en orden de
prioridad, sino que lo hacen en el orden de ocurrencia de los eventos que estn
esperando. Como se ver ms adelante, hay situaciones en las cuales varios
procesos pueden bloquearse esperando la ocurrencia del mismo evento; en
tales casos es comn asignar prioridades a los procesos que esperan.





INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Operaciones Bsicas sobre Procesos
1. Crear un proceso: dar nombre al proceso, insertarlo en la lista de
procesos en estado listo, determinar su prioridad inicial, crear el PCB del
proceso, y asignarle los recursos iniciales del proceso.
2. Destruir un proceso: devolver al sistema los recursos que tiene
asignado, eliminarlo de todas las listas del sistema y borrar su PCB.
3. Cambiar la prioridad de un proceso.
4. Bloquear un proceso.
5. Despertar un proceso.
6. Despachar un proceso.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
2.3 Procesos Ligeros (Hilos o Hebras)
Uno de los problemas ms importantes en los ordenadores con un procesador
es el de la ejecucin simultnea de varios programas (procesos). Este
paralelismo no se puede realizar de forma completa dada la exclusividad del
procesador y de las zonas de memoria que necesita cada programa.
Un mtodo para lograr el paralelismo consiste en hacer que varios procesos
cooperen y se sincronicen mediante memoria compartida. Otra alternativa es el
empleo de mltiples hilos de ejecucin en un solo espacio de direcciones. Este
es el objetivo principal de la utilizacin de los procesos ligeros.

Un proceso ligero (thread o hebra) es un programa en ejecucin que comparte
la imagen de la memoria y otras informaciones con otros procesos ligeros.
Es un flujo de control perteneciente a un proceso (a veces se habla de tareas
con threads).




La sobrecarga debida a su creacin y comunicacin es menor que en los
procesos pesados. Cada hilo pertenece a un proceso pesado.

Los procesos ligeros pueden, o no, compartir cierta informacin. Estas
informaciones se enlistan a continuacin:

Informacin compartida
Espacio de memoria
Variables globales
Archivos abiertos
Procesos hijos
Temporizadores
Seales y semforos
Contabilidad


Informacin No compartida
Contador de programa
Pila
Registro
Estado del proceso ligero

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Un proceso ligero puede estar ejecutando, listo o bloqueado.




La ventaja de usar un grupo de hilos en vez de usar un programa secuencial
normal es que muchas de las operaciones pueden ser llevadas a cabo en
paralelo, y as estos eventos pueden ser manejados inmediatamente cuando
llegan.

La ventaja de usar un grupo de hilos en vez de usar un grupo de procesos es
que el intercambio de contexto entre los hilos es mucho mas rpido que el
intercambio de contexto entre procesos (el intercambio de contexto significa
que el sistema intercambia de la ejecucin un hilo o proceso, a otro hilo o
proceso). Tambin, la comunicacin entre dos hilos es a menudo ms rpida y
ms fcil de implementar que la comunicacin entre dos procesos.

Por otra parte, debido a que los todos los hilos en un grupo usan el mismo
espacio de memoria, si uno de ellos corrompe el contenido de la memoria, los
otros hilos podra sufrir lo mismo. Con los procesos, el sistema operativo
normalmente protege los procesos de otros, y as, si uno corrompe su propio
espacio de memoria, el resto de procesos no se perjudicarn.
Otra ventaja del uso de procesos es que ellos corren en diferentes maquinas,
mientras que los hilos tienen que correr en la misma maquina.

Entre algunas de sus aplicaciones estn:

Utilizacin de los hilos en servidores. Los servidores pueden utilizar las
ventajas del multihilo, creando un hilo gestor diferente para cada peticin
entrante de un cliente.
Utilizacin de los hilos en interfaces de usuario. Se pueden obtener
aumentos de rendimiento empleando un hilo para interactuar con un
usuario, mientras se pasan las peticiones a otros hilos para su ejecucin.
Utilizacin de los hilos en el diseo de un kernel multihilo: para un
sistema operativo distribuido, esto quiere decir que distribuya diferentes
tareas entre los hilos.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
2.4 Concurrencia y Secuenciabilidad
Puede verse la concurrencia de procesos como la ejecucin simultnea de
varios procesos. Si tenemos un multiprocesador o un sistema distribuido la
concurrencia parece clara, en un momento dado cada procesador ejecuta un
proceso. Se puede ampliar el concepto de concurrencia si entendemos
por procesado concurrente (o procesado paralelo) la circunstancia en la que de
tomar una instantnea del sistema en conjunto, varios procesos se vean en un
estado intermedio entre su estado inicial y final. Esta ltima definicin incluye
los sistemas multiprogramados de un nico procesador.

Tipos de concurrencia:



Los distintos procesos dentro de un ordenador no actan de forma aislada. Por
un lado, algunos procesos cooperan para lograr un objetivo comn. Por otro
lado, los procesos compiten por el uso de unos recursos limitados, como el
procesador, la memoria o los ficheros. Estas dos actividades de cooperacin y
competicin llevan asociada la necesidad de algn tipo de comunicacin entre
los procesos.

La velocidad de un proceso con respecto a otro es impredecible ya que
depende de la frecuencia de la interrupcin asociada a cada uno de ellos y
cun a menudo y de por cunto tiempo tiene asignado cada proceso un
procesador. Diremos, pues, que un proceso se ejecuta asncronamente con
respecto a otro, es decir, sus ejecuciones son independientes. Sin embargo,
hay ciertos instantes en lo que los procesos deben sincronizar sus actividades.
Son estos puntos a partir de los cuales un proceso no puede progresar hasta
que otro haya completado algn tipo de actividad.

Competencia entre los procesos
Los recursos de un sistema pueden clasificarse como compartibles, lo que
significa que pueden ser utilizados por varios procesos de forma concurrente,
o no compartibles, lo que equivale a que su uso se restrinja a un slo proceso a
la vez. El hecho de que un recurso no sea compartible deriva de una de las dos
razones siguientes:

La naturaleza fsica del recurso hace que sea imposible compartirlo. Un
ejemplo lo constituye una impresora, si una impresora fuera utilizada por
varios procesos simultneamente sus salidas se entremezclaran en el
papel.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin

El recurso es tal que si es usado por varios procesos de forma
concurrente la accin de uno de ellos puede interferir con la de otro. Un
ejemplo comn lo constituye un fichero que contiene unos datos
accesibles desde ms de un proceso, y modificables al menos por uno
de ellos.

Dentro de la categora de recursos no compartibles se incluirn la mayora de
los perifricos (los discos no), los ficheros de escritura y las zonas de memoria
sujetas a modificacin. Los recursos compartibles incluirn la CPU, los ficheros
de lectura, y las zonas de memoria que contengan rutinas puras o bien datos
que no estn sujetos a modificacin.

Los procesos concurrentes entran en conflicto cuando compiten por el uso del
mismo recurso; dos o ms procesos necesitan acceder a un recurso durante su
ejecucin. Cada proceso debe dejar tal y como est el estado del recurso que
utilice.

La ejecucin de un proceso puede influir en el comportamiento de los procesos
que compiten. Por Ej. Si dos procesos desean acceder a un recurso, el sistema
operativo le asignar el recurso a uno y el otro tendr que esperar.
Cuando hay procesos en competencia, se deben solucionar tres problemas de
control, siendo el primero de ellos la necesidad de exclusin mutua.
Suponiendo que dos procesos quieren acceder a un recurso no compartible. A
estos recursos se les llama "recursos crticos" y la parte del programa que los
utiliza es la "seccin crtica del programa. Es importante que slo un programa
pueda acceder a su seccin crtica en un momento dado.

Hacer que se cumpla la exclusin mutua provoca un interbloqueo.

Otro problema es la inanicin si tres procesos necesitan acceder a un recurso,
P1 posee al recurso, luego lo abandona y le concede el acceso al siguiente
proceso P2, P1 solicita acceso de nuevo y el sistema operativo concede el
acceso a P1 YP2 alternativamente, se puede negar indefinidamente a P3 el
acceso al recurso.

El control de competencia involucra al sistema operativo, porque es el que
asigna los recursos.

2.4.1 Exclusin Mutua de Secciones Crticas
Exclusin Mutua es la comunicacin requerida entre dos o ms procesos que
se estn ejecutando en paralelo y que necesitan a la vez el uso de un recurso
no compartible. Consiste en asignar el recurso no compartible a slo uno de los
procesos, mientras que los otros deben permanecer a la espera hasta que
finalice la utilizacin de dicho recurso por el proceso al que se le asigno.
Cuando este proceso termine, el recurso ser asignado a uno de los procesos
en espera. Se asegura el correcto uso del recurso.

Seccin crtica o regin crtica es el trozo de cdigo donde un proceso hace
uso de un recurso no compartible, por lo tanto debe ejecutarse en exclusin
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
mutua. Las secciones crticas deben ser ejecutadas lo ms rpido posible y
adems deben ser cuidadosamente codificadas.

Idear soluciones que garanticen la exclusin mutua es uno de los problemas
fundamentales de la programacin concurrente. Muchas son las alternativas y
tipos de mecanismos que se pueden adoptar. La seleccin de las operaciones
primitivas adecuadas para garantizar la exclusin mutua de las secciones
crticas es una decisin primordial en el diseo de un sistema operativo. Al
menos, una solucin apropiada debera cumplir las cuatro condiciones
siguientes:

1. Que no haya en ningn momento dos procesos dentro de sus
respectivas secciones crticas.
2. Que no hagan suposiciones a priori sobre las velocidades relativas de
los procesos o el nmero de procesadores disponibles.
3. Que ningn proceso que est fuera de su seccin crtica
pueda bloquear a otros.
4. Que ningn proceso tenga que esperar un intervalo de tiempo
arbitrariamente grande para entrar en su seccin crtica.


2.4.2 Sincronizacin de Procesos en Secciones Crticas
Sincronizacin es la comunicacin requerida entre dos o ms procesos con el
fin de sincronizar sus actividades.

Grficamente:




Un proceso es cooperativo si puede afectar o ser afectado por los otros
procesos que se estn ejecutando en el sistema.

La cooperacin entre procesos requiere: la ejecucin concurrente de los
mismos, mecanismos de comunicacin y mecanismos de sincronizacin
Al haber procesos concurrentes se deben emplear mecanismos para asegurar
la consistencia de los datos.

Como ejemplo, supongamos que tenemos 3 procesos concurrentes que
quieren modificar un mismo archivo. Si los 3 acceden a este al mismo tiempo el
archivo quedar con valores incorrectos. Para resolver problemas como este se
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
ide la seccin crtica (descrita anteriormente). Slo puede haber una seccin
crtica en ejecucin por vez, as nos aseguramos que los datos quedan
consistentes.

El problema de la seccin crtica consiste en disear un protocolo que los
procesos puedan usar para cooperar de esta forma.
Cualquier solucin al problema de la seccin crtica deber satisfacer los tres
requisitos siguiente:

Exclusin mutua.- Si el proceso Pi est ejecutndose en su seccin
crtica, los dems procesos no pueden estar ejecutando sus secciones
crticas.

Progreso.- Si ningn proceso est ejecutando su seccin crtica, y
algunos procesos desean entrar en sus correspondientes secciones
crticas, slo aquellos procesos que no estn ejecutando sus secciones
restantes pueden participar en la decisin de cul ser el siguiente que
entre en su seccin crtica, y esta seleccin no se puede posponer
indefinidamente.

Espera limitada.- Existe un lmite en el nmero de veces que se permite
que otros procesos entren en sus secciones crticas despus de que un
proceso haya hecho una solicitud para entrar en su seccin crtica y
antes de que la misma haya sido concedida.

Se usan dos mtodos generales para gestionar las secciones crticas en los
sistemas operativos:

1. Kernels apropiativos.- Permite que un proceso sea desalojado mientras se
est ejecutando en modo kernel.

2. Kernels no apropiativos.- No apropiativo no permite que un proceso que se
est ejecutando en modo kernel sea desalojado.

Hardware de Sincronizacin
En sistemas de un procesador, el problema de las secciones crticas podra ser
resuelto simplemente si pudiramos deshabilitar las interrupciones mientras
una variable compartida est siendo actualizada.

Esta solucin no es factible para un sistema con varios procesadores debido a
la demora que implica el pasaje de mensajes.

En muchos sistemas existen instrucciones de hardware que pueden ser usadas
para resolver el problema de las secciones crticas.

Estas instrucciones permiten ejecutar atmicamente las operaciones de:

chequear y modificar el contenido de una palabra, o
intercambiar el contenido de dos palabras

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
2.4.2.1 Mecanismos de Semforos
Las soluciones por hardware presentadas no son fciles de generalizar a
problemas ms complejos.

Para solucionar problemas de procesos concurrentes, se diseo un S.O. como
un conjunto de procesos secuenciales, eficientes y fiables para dar soporte a la
cooperacin. Los procesos de usuario podran utilizar estos mecanismos si el
procesador y el S.O. los hacan disponible.
El principio fundamental es el siguiente, 20 procesos pueden cooperar por
medio de simples seales, de manera que se pueda obligar a un proceso a
detener en una posicin determinada hasta que reciba una seal especfica.
Para la sealizacin se usan variables especiales llamadas semforos "S", los
procesos ejecutan las primitivas wait(s) si la seal aun no se transmiti, el
proceso se suspende hasta que tiene lugar la transmisin.

A los semforos se los contemplan como variables que tienen un N entero
sobre el que se definen las siguientes operaciones: un semforo puede
iniciarse con un valor negativo la operacin wait disminuye el valor del
semforo. Si el valor no es positivo el proceso que ejecuta wait se bloquea. Las
operaciones signal incrementan el N del semforo. Si el valor es positivo se
desbloquea el proceso bloqueado por una operacin wait.

No hay forma de examinar o manipular los semforos aparte de estas tres
operaciones.

Las primitivas wait y signal se suponen atmicas, es decir no pueden ser
interrumpidas y cada rutina puede considerarse como un peso indivisible.

Un semforo solo puede tomar los valores 0 y 1. Son ms sencillos de
implantar y pueden demostrarse que tienen la misma potencia de expresin
que los semforos generales.



INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
En ambos semforos se emplean una cola para mantener los procesos en
espera, la cuestin reside en el orden en que se retiran los procesos de la cola.
La poltica utilizada el la de FIFO; el proceso que estuvo bloqueado durante
mas tiempo se libera de la cola, se denomina semforo robusto (incluye esta
estrategia). Un semforo dbil no especifica el orden en que se retiran los
procesos de la cola.

Los semforos robustos garantizan la inexistencia de inanicin en el algoritmo
de exclusin mutua, pero no as en los semforos dbiles, se supone que los
semforos son siempre robustos ya que son los ms adecuados y porque son
los tipos de semforos que ms incluyen los S.O.
Implementacin de los semforos. Como se menciono anteriormente es
impredecible que las operaciones wait y signal sean implementadas como
primitivas atmicas.

La esencia del problema del productor/consumidor, es la exclusin mutua: solo
1 proceso puede manipular un semforo a la vez, en una operacin wait o
signal. Se pueden utilizar cualquier esquema de software con los algoritmos de
Dekker o Peterson los que suponen una sobrecarga de procesos sustancial.
Otra alternativa es usar uno de los esquemas de soporte del hardware p/la
exclusin mutua.

2.4.2.2 Mecanismos de Monitoreo
Son mecanismos de sincronizacin de nivel ms alto que semforos. La
construccin se realiza a nivel de lenguaje de programacin que controla el
acceso a datos compartidos.
Un tipo monitor tiene un conjunto de operaciones definidas por el programador
que gozan de la caracterstica de exclusin mutua dentro del monitor.

Los monitores son estructuras de un lenguaje de programacin que ofrecen
una funcionalidad equivalente a las de los semforos pero son ms fciles de
controlar. La estructura de monitor se ha implementado en varios lenguajes de
programacin como: Pascal concurrente, Modulo-2, Java, etc.
En concreto, para una lista enlazada se puede necesitar un cierre que bloquee
todas las listas enlazadas o bien un cierre por cada elemento de una lista.

Monitores con Seales: (definicin de Hoare)
Un monitor es un modulo de software que consta de uno o ms
procedimientos, una secuencia de inicio y uno datos locales. Sus
caractersticas son las siguientes:

Solo los procedimientos del monitor acceden a variables de datos
locales.
Un proceso entra en el monitor invocando a uno de sus procedimientos.
En el monitor solo un proceso puede ser ejecutado en un momento
dado; cualquier otro proceso quedara suspendido esperando la
disponibilidad del monitor.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Al ser un proceso por vez, el monitor puede ofrecer un servicio de exclusin
mutua fcilmente. As una estructura de datos puede protegerse situndola
dentro de un monitor.

Los monitores deben ofrecer herramientas de sincronizacin. Por ejemplo: si un
proceso llama a un monitor y una vez dentro de l el proceso queda
suspendido esperando alguna condicin, har falta un servicio que libere al
monitor y lo deje disponible para el siguiente proceso. Mas tarde cuando la
condicin se cumpla el proceso suspendido podr regresar al monitor y
ejecutarse desde el momento de la suspensin.

El monitor proporciona variables de condicin que son accesibles solo desde
dentro del monitor.

Hay dos funciones para operar variables de condicin:
cwait (c): suspende la ejecucin del proceso que llama bajo la condicin
"c". El monitor est ahora disponible para otro proceso.
csignal (c): retorna la ejecucin de un proceso suspendido despus de
un cwait, bajo la misma condicin. Si hay varios procesos elige uno de
ellos.
Si un proceso de monitor ejecuta un csignal y no hay tareas esperando
entonces el csignal de pierde.

Aunque un proceso puede entrar al monitor llamando a cualquiera de sus
procedimientos, se puede decir que el monitor tiene un solo punto de acceso,
custodiado para que solo un proceso este en el monitor en un instante dado. Si
existen otros procesos tratando de entrar al monitor, estos se colocan en una
cola de procesos suspendidos esperando la disponibilidad del monitor.

Un proceso dentro de un monitor puede suspenderse a s mismo,
temporalmente, bajo la condicin X ejecutando cwait(x), entonces se coloca en
una cola de procesos que esperan que cambie la condicin X entonces ejecuta
un csignal(x) que avisa a la cola de condicin correspondiente de que la
condicin a cambiado.

En el cdigo se puede apreciar la solucin al problema de productor /
consumidor usando monitores:

El modulo monitor, buffers_acotado, controla el buffer para almacenar y retirar
caracteres. El monitor incluye dos variables de condicin:

No-lleno es verdadero su hay lugar para agregar al menos un carcter.

No-vaci es verdadero si hay al menos un carcter en el buffer.

Un productor solo puede agregar caracteres al buffer mediante el
procedimiento aadir del monitor; el productor no tiene acceso directo al buffer.

El procedimiento comprueba si hay espacio en el buffer, mediante la condicin
no-lleno, si no lo hay el proceso queda suspendido y cualquier otro proceso
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
(consumidor o productor) puede entrar al monitor. Luego, cuando el buffer ya
no esta lleno, el proceso se retira de la cola y es reactivado. Luego de aadir
un carcter el proceso activa la condicin no-vaci.

La estructura misma del monitor garantiza la exclusin mutua (solo un proceso
por vez puede acceder al buffer). Sin embargo, el programador debe situar
correctamente las primitivas cwait( ) y csignal( ) en el monitor para evitar que
los procesos depositen elementos en un buffer lleno o los extraigan de uno
vaci.

Un proceso sale del monitor inmediatamente despus de ejecutar csignal( ).

Si csignal( ) se ejecuta antes del final entonces ese proceso libera el monitor y
esta colocado en una lista de procesos suspendidos. Un nuevo proceso puede
entrar el monitor.

Si no hay procesos esperando en la condicin X, la ejecucin de csignal (x) no
tiene efecto.

Es posible cometer errores en la sincronizacin de los monitores, por ejemplo,
si se omite cualquiera de las funciones csignal() en el monitor buffer _ acotado
los procesos que entran en la cola de condicin permanecen colgados
permanentemente. Sin embargo la ventaja de los monitores es que todas las
funciones de sincronizacin estn incluidas dentro del monitor, lo que permite
una fcil deteccin y correccin de fallas de sincronizacin.

Monitores con Notificacin y Difusin (definicin de Lampson y Redell)
Son varios los inconvenientes que presenta la solucin de Hoare:

-Si el proceso que ejecuta el csignal( ) no ha terminado en el monitor, se
necesitaran dos cambios de procesos adicionales: uno para suspender el
proceso y otro para reanudarlo.
-La planificacin de procesos asociados con las seales debe ser muy fiable. Si
un proceso ejecuta un csignal ( ), el proceso de la cola de condicin
correspondiente debe activarse de inmediato, antes de que ingrese otro
proceso del exterior o cambie la condicin bajo la que se activ el proceso.
Otro caso seria que un proceso productor escribe un carcter en el buffer y falla
antes de dar la seal, entonces la cola de condicin no-vaca se colgara para
siempre.

Lampson y Redell desarrollaron una definicin de monitores para el lenguaje
MESA. La estructura de mesa reemplaza la primitiva csignal( ) por cnotify( ).
Cuando un proceso ejecuta cnotify(x) enva una notificacin a la cola de
condicin X, lo cual no significa que el proceso que esta ocupando el monitor
vaya a detenerse, simplemente el cnotify(x) avisa al proceso de la cola de
condicin correspondiente de que ser reanudado en un futuro cercano.

Puesto que esta no garantiza que un proceso exterior entre al monitor, el
proceso debe comprobar la condicin nuevamente.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
En el cdigo, la sentencia IF se reemplaza por un bucle While, lo cual genera
una evaluacin extra de la variable, pero sin embargo no hay cambios de
procesos extra.

Una modificacin til seria asociar un temporizador de guardia a cnotify( ) que
permitira que un proceso que ha esperado durante el intervalo mximo sea
situado en estado de listo, independientemente de s se ha notificado la
condicin.

Con la norma de notificar a los procesos en lugar de reactivarlos, es posible
aadir una primitiva de difusin cbroadcast. La difusin provoca que todos los
procesos que estn esperando por una condicin se coloquen en el estado de
listo. Esto es til cuando un proceso no sabe cuantos procesos deben
reactivarse.

El mtodo Lampson/Redell es menos propenso a errores debido a que cada
procedimiento comprueba la condicin luego de ser despertado, por medio de
la instruccin while, un proceso puede realizar una seal o una difusin
incorrectamente sin provocar un error en el programa que la recibe.

Adems este modelo presta un mtodo mas modular de construccin de
programas.
Hay dos niveles de condicin que deben satisfacerse para los procesos
secuenciales cooperantes.

1. Estructura de datos consistentes: significa que el monitor hace cumplir la
exclusin mutua y concluye la operacin de entrada o salida antes de
permitir cualquier otra operacin sobre el buffer.
2. La misma condicin del nivel 1 y, adems disponer de suficiente
memoria para que este proceso pueda completar su solicitud de
asignacin.

2.4.3 Interbloqueo (Deadlock)
Un proceso esta interbloqueado si est esperando por un evento determinado
que nunca va a ocurrir.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Postergacin indefinida (inanicin o Lockout): cuando un proceso espera por un
evento que puede ocurrir pero no se sabe cuando.

Condiciones necesarias para que se produzca interbloqueo
Coffman, Elphick y Shoshani establecieron las cuatro condiciones necesarias
para que se produzca interbloqueo:

1. Condicin de exclusin mutua: los procesos reclaman control exclusivo de
los recursos que piden.
2. Condicin de esperar por: los procesos mantienen los recursos que ya les
han sido asignados mientras esperan por recursos adicionales.
3. Condicin de no apropiatividad: los recursos no pueden ser extrados de los
procesos que los tienen hasta su completa utilizacin.
4. Condicin de espera circular: existe una cadena circular de procesos en la
cual cada uno de ellos mantiene a uno o ms recursos que son requeridos por
el siguiente proceso de la cadena.



Puntos de estudio del interbloqueo
A. Prevencin del interbloqueo: condiciona al sistema para que elimine toda
posibilidad de que se produzca interbloqueo. Estrategias:

Negar la condicin de esperar por: cada proceso debe pedir todos los
recursos que va a necesitar de golpe. Si el conjunto de todos ellos est
disponible, se le asigna todos. Si no esta disponible todo el conjunto
completo, no se le asigna ninguno al proceso y tendr que esperar hasta
que estn todos disponibles.
Negar la condicin de no apropiatividad: cuando un proceso que tiene
recursos le es negada una peticin de recursos adicionales, deber
liberar sus recursos y, si es necesario, pedirlos de nuevo junto con los
recursos adicionales.
Negar la condicin de espera circular: cuando se instala un recurso se le
asigna un nmero exclusivo, de forma que los procesos deben de
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
solicitar los recursos en orden ascendente de acuerdo a los nmeros
asignados a dichos recursos.

B. Evitacin del interbloqueo: condiciona al sistema para que esquive
determinadas situaciones con posibilidad de interbloqueo.

C. Deteccin del interbloqueo: determinan si existe o no un interbloqueo, e
identifica cules son los procesos y recursos implicados en l.

D. Recuperacin del interbloqueo: pretenden romper el interbloqueo retirando
una o ms de las condiciones necesarias.

Estrategias para Resolver Interbloqueos
Los resultados de la investigacin sobre el bloqueo mutuo han sido
satisfactorios en cuanto a que se han encontrado mtodos limpios y rpidos
para manejar la mayora de los problemas ms comunes. Existen cuatro reas
de inters relacionadas con los interbloqueos que pueden resumirse como
prevencin, tcnicas para evitarlos, deteccin y recuperacin de los mismos.

En la prevencin del interbloqueo interesa ajustar el sistema para eliminar toda
posibilidad de que ocurra un bloqueo mutuo. La prevencin suele funcionar
pero sus mtodos ocasionan, en general, un aprovechamiento pobre de los
recursos. No obstante, estos mtodos se utilizan con frecuencia.

Las tcnicas que tienen como objetivo evitar el interbloqueo imponen
condiciones menos atractivas que en la prevencin, para tratar de obtener un
aprovechamiento de los recursos. No elimina como las tcnicas de prevencin
todas las posibilidades de que se produzca un bloqueo mutuo, pero se esquiva
cuanto est a punto de suceder (algoritmo del banquero de Dijkstra).

Los mtodos de deteccin del interbloqueo es utilizan en sistemas que
permiten la ocurrencia de los mismos, ya sea de manera voluntaria o
involuntaria. Su objetivo es determinar si ha ocurrido un bloqueo mutuo y saber
exactamente cules son los procesos y recursos implicados en l.

Los mtodos de recuperacin estn ntimamente ligados a los de deteccin.
Sirven para eliminar los interbloqueos detectados en un sistema para poder
seguir trabajando y para que los procesos implicados puedan terminar su
ejecucin y liberen sus recursos. La recuperacin es un problema complejo, en
el mejor de los casos, los sistemas se recuperan de un bloqueo mutuo
eliminando completamente uno o varios de los procesos implicados. Despus,
se inician de nuevo los procesos eliminados, perdindose la mayor parte o todo
el trabajo previo realizado por el proceso.

1.- Desentenderse. El Algoritmo de la Avestruz
La estrategia ms sencilla es el algoritmo del avestruz: esconder la cabeza bajo
tierra y pretender que el problema no existe. La gente reacciona a esta
estrategia de distintos modos segn su formacin. Los matemticos consideran
que es inaceptable y argumentan que los interbloqueos se deben evitar a toda
costa. Los ingenieros se interrogan sobre la frecuencia del problema, la
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
frecuencia con el que el sistema se para por otras causas y la importancia de
los interbloqueos. Si stos se presentan de una vez cada cinco aos, y los
sistemas se paran una vez al mes por errores en el hardware, en
el compilador o en el sistema operativo, a casi ningn ingeniero le gustara
tener que sufrir una degradacin seria de las prestaciones del sistema para
garantizar la eliminacin de los interbloqueos.

Por ejemplo, Unix pude sufrir interbloqueos que ni siquiera se detectan, y que,
por supuesto, no se eliminan automticamente. El nmero total de procesos en
el sistema viene determinado por el nmero de posiciones de la tabla de
procesos, que, en definitiva, constituye un recurso limitado. Supongamos ahora
que un sistema Unix con 100 posiciones en la tabla de procesos tiene
ejecutndose diez programas, cada uno de los cuales ha de crear 12
subprocesos. Despus de que cada proceso haya creado otros 9, los 10
procesos originales y los 90 nuevos llenarn por completo la tabla. Los 10
procesos originales se encontrarn ahora en un bucle infinito intentando crear
un nuevo proceso sin poder: se ha producido un interbloqueo. Otros ejemplos
de recursos que suelen ser limitados son: el nmero mximo de ficheros que
pueden estar abiertos est limitado, el rea en el disco para intercambio con
memoria principal. En realidad, casi todas las tablas del sistema operativo
representan recursos limitados, deberamos, por tanto, limitar estos recursos
para no producir un interbloqueo?

La estrategia UNIX es simplemente desentenderse del problema, suponiendo
que la mayora de los usuarios preferirn un interbloqueo ocasional antes que
la imposicin de que cada usuario pueda crear un solo proceso, abrir un solo
fichero y usar slo una unidad de lo que sea. Veremos a continuacin que se
puede adoptar alguna estrategia adecuada que nos permitir prevenir, evitar o
detectar y recuperar situaciones de interbloqueo.

2.- Prevencin de Interbloqueos
La estrategia empleada con ms frecuencia por los diseadores para tratar el
bloqueo mutuo es la prevencin. En esta seccin se examinan los mtodos de
prevencin, junto con los efectos que tienen sobre los usuarios y los sistemas,
sobre todo desde la perspectiva del rendimiento.

Havender (68) lleg a la conclusin de que si falta alguna de las cuatro
condiciones necesarias no puede haber un interbloqueo. Este autor sugiere las
siguientes estrategias para negar varias de esas condiciones:

Cada proceso deber pedir todos sus recursos al mismo tiempo y no
podr seguir la ejecucin hasta haberlos recibido todos.
Si a un proceso que tiene recursos se le niegan los dems, ese proceso
deber liberar sus recursos y, en caso necesario, pedirlos de nuevo
junto con los recursos adicionales.
Se impondr un ordenamiento lineal de los tipos de recursos en todos
los procesos; es decir, si a un proceso le han sido asignados recursos
de un tipo especfico, en lo sucesivo slo podr pedir aquellos recursos
que siguen en el ordenamiento.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Como vemos Havender presenta tres estrategias y no cuatro. Cada una de
ellas, est diseada para negar una de las condiciones necesarias. La primera
de estas condiciones, esto es, que los procesos exijan el uso exclusivo de los
recursos que requieren, es una condicin que no es deseable impedir, porque
especficamente queremos permitir la existencia de recursos no compartibles o
dedicados.

Negacin de la condicin de espera
La primera de las estrategias requiere que los recursos que necesita un
proceso sean pedidos de una sola vez. El sistema debe proporcionarlos segn
el principio de todo o nada. Si est disponible el conjunto de los recursos que
necesita un proceso, entonces el sistema puede asignarle todos los recursos y
ste seguir su ejecucin. Si no est disponible alguno de ellos, el proceso debe
esperar. Mientras espera no puede tener ningn recurso. Con esto se elimina la
condicin de espera y no puede ocurrir un interbloqueo.

Todo esto suena bien, pero puede llevar a un grave desperdicio de recursos.
Supongamos que un proceso necesita diez unidades de un determinado
recurso para su ejecucin. Como debe solicitarlas todas antes de comenzar,
los mantendr en su poder durante toda su ejecucin. Pudiera suceder, que el
programa nicamente utilice estos recursos al principio de su ejecucin, por
tanto, los recursos estn ociosos el resto del tiempo.

Dividir el programa en varios pasos que se ejecuten de manera relativamente
independiente es una tcnica empleada con frecuencia para conseguir una
mejor utilizacin de los recursos en estas circunstancias. La asignacin de
recursos se controla por etapas. Esta solucin reduce el desperdicio pero
implica mucho trabajo extra tanto en el diseo de las aplicaciones como en al
ejecucin.

Por otro lado, esta estrategia puede provocar un aplazamiento indefinido, pues
los recursos requeridos pueden no estar disponibles todos al tiempo. El sistema
podra, entonces, permitir que se fueran acumulando recursos hasta conseguir
todos los que necesita un proceso. Pero mientras se acumulan no se pueden
asignar a otros procesos y volvemos a infrautilizarlos.

Negacin de la condicin de no apropiacin
La segunda estrategia de Havender consiste en liberar los recursos que un
proceso tiene asignados cuando se le niegan peticiones de recursos
adicionales. De esta forma, se anula la condicin de no apropiacin. Los
recursos se pueden quitar al proceso que los tiene antes de que termine su
ejecucin.

En este caso tambin existe un costo excesivo. Cuando un proceso libera
recursos puede perder todo el trabajo realizado hasta ese momento. El costo
puede parecer muy alto, pero la pregunta es: con qu frecuencia ha de
pagarse ese precio? Si ocurre de tarde en tarde, entonces ste parece ser un
buen mtodo para prevenir el interbloqueo. Si, por el contrario, es muy
frecuente, entonces el costo es sustancial y sus efectos demasiado
perjudiciales (por ejemplo, para procesos de alta prioridad o plazo fijo).
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Esta estrategia tambin adolece de aplazamiento indefinido. Un proceso puede
aplazarse continuamente mientras pide y libera muchas veces los mismos
recursos. Si esto ocurre, el sistema puede verse obligado a eliminar el proceso
para que otros puedan ejecutarse.

Negacin de la condicin de espera circular
La tercera estrategia de Havender anula la posibilidad de un espera circular.
Como todos los recursos tienen una numeracin nica y como los procesos
deben pedir los recursos en un orden lineal ascendente, es imposible que se
presente una espera circular (la figura a continuacin). Esta estrategia presenta
las siguientes dificultades:

Los recursos deben pedirse en un orden ascendente por nmero
de recursos. El nmero de recurso es asignado por la instalacin y debe
tener un tiempo de vida largo (meses o aos). Si se agregan nuevos
tipos de recursos, puede ser necesario reescribir los programas y los
sistemas.
Lgicamente, cuando se asignan los nmeros de recursos, stos deben
reflejar el orden normal en que los usan la mayora de las tareas. Pero
los procesos que necesiten los recursos en un orden diferente que el
previsto por el sistema, los debern adquirir y conservar, quiz durante
tiempo antes de utilizarlos realmente, lo que significa un desperdicio
considerable.
Una de las metas ms importantes de los sistemas operativos actuales
es crear ambientes amables con el usuario. Los usuarios deben ser
capaces de desarrollar sus aplicaciones sin tener en cuenta molestas
restricciones de hardware y software. El ordenamiento lineal impide al
usuario escribir sus cdigos libremente.


INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
2.5 Niveles, Objetivos y criterios de Planificacin.
Definicin: La planificacin consiste en un conjunto de polticas y mecanismos
incorporados al S. O. y por los que se rige el orden en que se completa el
trabajo que hay que realizar. Su objetivo primordial es optimizar el rendimiento
del sistema.

Definicin: La planificacin del procesador es la asignacin de los
procesadores fsicos a los procesos. La parte del S. O. encargada de tomar
esta decisin se denomina planificador y el algoritmo que utiliza se llama
algoritmo de planificacin o disciplina.

La planificacin de la CPU, en el sentido de conmutarla entre los distintos
procesos, es una de las funciones del sistema operativo. Este despacho es
llevado a cabo por un pequeo programa llamado planificador a corto
plazo o dispatcher (despachador). La misin del dispatcher consiste en asignar
la CPU a uno de los procesos ejecutables del sistema, para ello sigue un
determinado algoritmo. En secciones posteriores estudiaremos algunos
algoritmos posibles. Para que el dispatcher conmute el procesador entre dos
procesos es necesario realizar un cambio de proceso.

Los acontecimientos que pueden provocar la llamada al dispatcher dependen
del sistema (son un subconjunto de las interrupciones), pero son alguno de
estos:

El proceso en ejecucin acaba su ejecucin o no puede seguir
ejecutndose (por una E/S, operacin WAIT, etc.).
Un elemento del sistema operativo ordena el bloqueo del proceso en
ejecucin (ver estados de un proceso).
El proceso en ejecucin agota su quantum o cuanto de estancia en la
CPU.
Un proceso pasa a estado listo.

Se puede definir el scheduling -algunas veces traducido como -planificacin-
como el conjunto de polticas y mecanismos construidos dentro del sistema
operativo que gobiernan la forma de conseguir que los procesos a ejecutar
lleguen a ejecutarse.

El scheduling est asociado a las cuestiones de:

Cundo introducir un nuevo proceso en el Sistema.
Determinar el orden de ejecucin de los procesos del sistema.

El scheduling est muy relacionado con la gestin de los recursos. Existen tres
niveles de scheduling, como se ilustra en la figura siguiente, estos niveles son:

Planificador de la CPU o a corto plazo.
Planificador a medio plazo.
Planificador a largo plazo.


INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin



Objetivos de la Planificacin
a. Ser justo;
b. Maximizar la capacidad de ejecucin;
c. Maximizar el nmero de usuarios interactivos recibiendo unos tiempos de
respuesta aceptables;
d. Equilibrar el uso de recursos;
e. Lograr un equilibrio entre respuesta y utilizacin;
f. Evitar la postergacin indefinida;
g. Asegurar las prioridades;
h. Dar preferencia a los procesos que mantienen recursos no compartidos.

Criterios para la Planificacin
El principal objetivo de la planificacin a corto plazo es repartir el tiempo del
procesador de forma que se optimicen algunos puntos del comportamiento del
sistema. Generalmente se fija un conjunto de criterios con los que evaluar las
diversas estrategias de planificacin. El criterio ms empleado establece dos
clasificaciones. En primer lugar, se puede hacer una distincin entre los
criterios orientados a los usuarios y los orientados al sistema. Los criterios
orientados al usuario se refieren al comportamiento del sistema tal y como lo
perciben los usuarios o los procesos. Uno de los parmetros es el tiempo de
respuesta. El tiempo de respuesta es el periodo de tiempo transcurrido desde
que se emite una solicitud hasta que la respuesta aparece en la salida. Sera
conveniente disponer de una poltica de planificacin que ofrezca un buen
servicio a diversos usuarios.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin

Otros criterios estn orientados al sistema, esto es, se centran en el uso
efectivo y eficiente del procesador. Un ejemplo puede ser la productividad, es
decir, el ritmo con el que los procesos terminan. La productividad es una
medida muy vlida del rendimiento de un sistema y que sera deseable
maximizar.

Otra forma de clasificacin es considerar los criterios relativos al rendimiento
del sistema y los que no lo son. Los criterios relativos al rendimiento son
cuantitativos y, en general, pueden evaluarse o ser analizados fcilmente.
Algunos ejemplos son el tiempo de respuesta y la productividad. Los criterios
no relativos al rendimiento son, en cambio cualitativos y no pueden ser
evaluados fcilmente. Un ejemplo de estos criterios es la previsibilidad. Sera
conveniente que el servicio ofrecido a los usuarios tenga las mismas
caractersticas en todo momento, independientemente de la existencia de otros
trabajos ejecutados por el sistema.

En particular, una disciplina de planificacin debe:

Ser equitativa: debe intentar hacer una planificacin justa, esto es, se
debe tratar a todos los procesos de la misma forma y no aplazar
indefinidamente ningn proceso. La mejor forma de evitarlo es emplear
alguna tcnica de envejecimiento; es decir, mientras un proceso espera
un recurso, su prioridad debe crecer.

Ser eficiente: debe maximizar el uso de los recursos tales como intentar
que la ocupacin de la CPU sea mxima. Al mismo tiempo se debe
intentar reducir el gasto extra por considerar que es trabajo no
productivo. Normalmente el idear algoritmos eficientes supone invertir
recursos en gestin del propio sistema.

Lograr un tiempo bueno de respuesta, es decir, que los usuarios
interactivos reciban respuesta en tiempos aceptables.

Lograr un tiempo de proceso global predecible. Esto quiere decir que un
proceso debe ejecutarse aproximadamente en el mismo tiempo y casi al
mismo costo con independencia de la carga del sistema.

Elevar al mximo la productividad o el rendimiento, esto es, maximizar el
nmero de trabajos procesados por unidad de tiempo. Eso supone, por
un lado, dar preferencia a los procesos que ocupan recursos decisivos y,
por otro, favorecer a los procesos que muestran un comportamiento
deseable. En el primer caso conseguimos liberar el recurso cuanto antes
para que est disponible para un proceso de mayor prioridad. Con el
segundo criterio escogemos a los procesos que no consumen muchos
recursos dejndole al sistema mayor capacidad de actuacin.

Estos criterios son dependientes entre s y es imposible optimizar todos de
forma simultnea. Por ejemplo, obtener un buen tiempo de respuesta puede
exigir un algoritmo de planificacin que alterne entre los procesos con
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
frecuencia, lo que incrementa la sobrecarga del sistema y reduce la
productividad. Por tanto, en el diseo de una poltica de planificacin entran en
juego compromisos entre requisitos opuestos; el peso relativo que reciben los
distintos requisitos depender de la naturaleza y empleo del sistema.

Planificacin apropiativa frente a no apropiativa.
Planificacin no apropiativa: si una vez que se le ha asignado la CPU a un
proceso, ya no se le puede retirar.

Ventajas:
Es ms fcil predecir los tiempos de respuesta.

Inconvenientes:
Los trabajos largos hacen esperar a los cortos.

Planificacin apropiativa: si se le puede retirar la CPU a un proceso mientras
est en ejecucin.

Ventajas:
tiles en sistemas cuyos procesos de alta prioridad requieren atencin
rpida;
Permiten obtener tiempos de respuesta aceptable.

Inconvenientes:
Conllevan un coste debido al intercambio de contexto;
Requieren sobrecarga debido a la necesidad de mantener en memoria
principal programas que no se estn ejecutando.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
2.6 Tcnicas de Administracin de Planificacin
Algoritmos de planificacin

Mecanismos:
A. Utilizacin de prioridades.
Prioridad: calificador asignado a un proceso que determina la atencin que va a
recibir del sistema.

Segn el agente que asigna la prioridad:
Prioridades internas: asignadas automticamente por el S. O.;
Prioridades externas: asignadas desde el exterior.

Segn los cambios que sufre la prioridad:
Prioridades estticas: no cambian durante la ejecucin del proceso;
Prioridades dinmicas: varan durante la ejecucin del proceso.

B. Utilizacin de un quantum de tiempo.
Quantum: tiempo mximo que un proceso puede hacer uso del procesador.
Puede ser fijo o variable y puede tener el mismo valor para todos los procesos
o distinto.

A. Que no usan quantum:
1. Planificacin por orden de llegada (FIFO, primero en entrar-primero en
salir).
La lista de procesos en estado listo esta ordenada segn el orden de llegada al
sistema (creacin del proceso), siendo el ms antiguo el que esta en la
cabecera de dicha lista.
Es una disciplina no apropiativa, por lo tanto al proceso que esta activo no se le
puede retirar la CPU hasta que l la abandone voluntariamente.

Inconvenientes:
Bajos rendimientos, procesos largos hacen esperar a procesos cortos;
No es til en sistemas interactivos puesto que no garantiza buenos
tiempos de respuesta.

Ventajas:
Permite predecir el orden de ejecucin de los procesos;
Es fcil de implementar.



INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
2. Planificacin del trabajo ms corto primero (SJF).
Es una disciplina no apropiativa. La lista de procesos en estado listo esta
ordenada por la cantidad de tiempo de ejecucin estimada, de forma que el
proceso ms corto es el primero en la cola. Para establecer este orden se
necesita saber el periodo de tiempo de ejecucin de un proceso, y como esto
raramente esta disponible, se confa en las estimaciones de los usuarios.

Inconvenientes:
Con respecto al algoritmo FIFO, es menos predecible los tiempos de
respuesta, sobre todo de los procesos largos;
Es poco til en sistemas interactivos puesto que no garantiza tiempos de
respuesta razonables.

Ventajas:
Con respecto al algoritmo FIFO, reduce al mnimo el tiempo promedio de
espera de los trabajos, ya que al favorecer los trabajos cortos sobre los
largos reduce el nmero de trabajos en espera.


3. Planificacin del tiempo restante ms corto (SRT).
Esta disciplina elige siempre al proceso que le queda menos tiempo de
ejecucin estimado para completar su ejecucin; de esta forma aunque un
proceso requiera mucho tiempo de ejecucin, a medida que se va ejecutando
ira avanzando en la lista de procesos en estado listo hasta llegar a ser el
primero.
Para realizar esta eleccin, es necesario actualizar el PCB de los procesos a
medida que se le asigna tiempo de servicio, lo que supone una mayor
sobrecarga adicional.
Es una disciplina apropiativa ya que a un proceso activo se le puede retirar la
CPU si llega a la lista de procesos en estado listo otro con un tiempo restante
de ejecucin estimado menor.

B. Que usan quantum:
1. Planificacin de asignacin en rueda, por turnos (Round Robin (RR)
Scheduling).
La lista de procesos en estado listo es una cola circular, de forma que el
proceso al que se le asigna la CPU pasar posteriormente a ser el ltimo de
dicha cola circular.

Si un proceso no agota su quantum debido a que pasa a estado bloqueado,
entonces el siguiente proceso de la cola circular pasa a activo sin esperar que
se termine el quantum del anterior.

Esta disciplina apropiativa es efectiva en sistemas de tiempo compartido,
puesto que garantiza tiempos de respuesta razonables.

2. Planificacin con colas de niveles mltiples.
A cada proceso se le asigna una prioridad.
La lista de procesos en estado listo esta formada por una serie de colas
circulares, donde cada una de ellas contiene a todos aquellos procesos que
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
tienen una misma prioridad. La CPU se asigna siempre al proceso de la cola de
mayor prioridad que no este vaca.



Problema: procesos de baja prioridad quedan postergados indefinidamente.

Solucin: prioridad por envejecimiento. La prioridad aumenta gradualmente a
medida que el proceso pasa cierto tiempo en el sistema, garantizando su
terminacin en un tiempo finito.

3. Planificacin con colas de retroalimentacin de niveles mltiples.
Su objetivo es tratar a los procesos de acuerdo a su comportamiento:

Si el proceso se suspende frecuentemente se le debe asignar bastantes
veces el procesador con un quantum pequeo;
Si el proceso se suspende poco se le debe asignar el procesador menos
veces pero con un quantum grande.

La lista de procesos en estado listo esta formada por varios niveles y cada uno
de ellos con una cola circular.

Cuando se inserta un nuevo proceso este se aade al final de la cola de mayor
nivel gestionada de forma FIFO.



INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
La CPU se asigna al proceso que se encuentra en la cabecera de la cola de
mayor nivel que no este vaca.

Cuando un proceso recibe la CPU puede ocurrir:
Que agote su quantum: entonces al pasar a estado listo se coloca al
final de la cola del siguiente nivel inferior al que perteneca. Mientras que
el proceso consuma totalmente su quantum en cada nivel, ir
movindose haca el final de las colas de los niveles inferiores. La cola
del nivel ms profundo se gestiona mediante asignacin de rueda.

Que no agote su quantum: entonces cuando pase de estado bloqueado
a listo volver al final de la cola del nivel al que perteneca. Se supone
que el comportamiento inmediato anterior de un proceso puede ser un
buen indicador del comportamiento futuro cercano.

Normalmente, el quantum otorgado al proceso aumenta a medida que el
proceso se mueve haca las colas de los niveles inferiores.

En definitiva, este algoritmo trata a los procesos segn su comportamiento, y
los separa por categoras segn sus necesidades de CPU.

Variantes:
Permitir al proceso moverse haca un nivel superior al anterior cada vez
que abandona voluntariamente la CPU antes de agotar su quantum. De
esta forma, se responde a los cambios en el comportamiento de un
proceso.

Mantener al proceso circulando en asignacin de rueda varias veces a
travs de cada cola antes de pasarlo a la siguiente inferior. El nmero de
ciclos en cada uno de los niveles se incrementa a medida que el proceso
pasa a la cola del nivel siguiente inferior.



















INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Unidad 3. Administracin de Memoria

3.1 Poltica y Filosofa
Una de las principales caractersticas de una computadora es la capacidad que
tienen para almacenar datos e informacin.

El primero en tener la idea de almacenar un programa en una computadora fue
Jonh Von Neumman (participante en la ENIAC). El utiliz la memoria para
almacenar datos y programas.

La memoria principal puede ser considerada como un arreglo lineal de
localidades de almacenamiento de un byte de tamao. Cada localidad de
almacenamiento tiene asignada una direccin que la identifica.

La memoria principal es el lugar donde el CPU lee las instrucciones a ejecutar,
as como algunos datos a emplear.

Por qu es importante la memoria?
Apoyndonos en los conceptos de Niklaus Wirth, sabemos que:

Programas =Algoritmos +Estructuras de Datos

Dnde recordemos, las Estructuras de Datos (pilas, listas, colas, etc.) son
memoria.

Existen dos tipos de memoria primaria: voltil (RAM) y no voltil (ROM). La
memoria voltil es parecida a un pizarrn. Puede perder los datos. El
administrador de memoria se va a encargar de gestionar la memoria RAM. La
memoria ROM slo la utiliza para funciones especficas.

La memoria se puede ver como un casillero en el cual se almacena
informacin.

La memoria puede ser esttica o dinmica dependiendo de cmo se gestione.

La memoria est divida en secciones de cdigo, datos estticos, Pila y el Heap
(montn).

Conceptos de memoria

Todo sistema operativo tiene un mapa de memoria que indica como estn
administrada la memoria y que partes se pueden ocupar.

La filosofa del administrador de memoria consiste en optimizar el uso de este
recurso, ya que la memoria es uno de los componentes crticos de todo sistema
de cmputo.

La principal problemtica de la memoria principal es que no es persistente. Por
este motivo se tienen que implementar estrategias de almacenamiento y
recuperacin de informacin.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin

Las operaciones bsicas que se realizan sobre una memoria son dos: lectura
(r) y escritura (w).

Las operaciones anteriores son a nivel usuario. A nivel sistema se tienen
llamadas al sistema como malloc, free, allocate, etc. Tambin debe
proporcionar opciones de bloqueo y desbloqueo (proteccin).

La ley de Parkinson dice: los programas se expanden hasta llenar la memoria
disponible para contenerlos.

Administrador de memoria

Sirve para tener un control sobre los lugares donde estn almacenados los
procesos y datos que actualmente se estn utilizando.

Las polticas de administracin de memoria generalmente son duras, es decir
no modificables, pero se pueden configurar algunos parmetros para su mejor
uso.

Tanto el administrador de memoria y el de archivos son ejemplos claros de un
administrador de disponibilidad sobre recursos.

La memoria basa sus polticas y mecanismos en base a jerarqua. Por ejemplo
se tienen los registros en el microprocesador, la memoria cach y la RAM

Polticas de asignacin
La memoria cach es una memoria de acceso rpido. Es finita, se utiliza en
muchos niveles como por ejemplo en microprocesadores, servicios como la
Web, etc.

Otro ejemplo de memoria son los buffer o memorias temporales de E/S

Pueden ser locales o globales. Es ms difcil obtener una buena administracin
local.

Las polticas en general son globales mientras los mecanismos son locales
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
3.2 Memoria Real
La organizacin y administracin de la memoria principal, memoria primaria
o memoria real de un sistema ha sido y es uno de los factores ms
importantes en el diseo de los S. O.

Los trminos memoria y almacenamiento se consideran equivalentes.
Los programas y datos deben estar en el almacenamiento principal para:

Poderlos ejecutar.
Referenciarlos directamente.

Se considera almacenamiento secundario o almacenamiento auxiliar al
generalmente soportado en discos.

Los hechos demuestran que generalmente los programas crecen en
requerimientos de memoria tan rpido como las memorias:

Ley de Parkinson parafraseada: Los programas se desarrollan para ocupar
toda la memoria disponible para ellos.

La parte del S. O. que administra la memoria se llama administrador de la
memoria:

Lleva un registro de las partes de memoria que se estn utilizando y de
aquellas que no.
Asigna espacio en memoria a los procesos cuando estos la necesitan.
Libera espacio de memoria asignada a procesos que han terminado.

3.2.1 Administracin de almacenamiento
Si hay una cosa que toma la mayor parte del da de un administrador de
sistemas, esto es la administracin del almacenamiento. Pareciera que los
discos nunca tienen espacio suficiente, que se sobrecargan con actividad de
E/S o que fallan repentinamente. Por eso es vital tener un conocimiento
prctico slido del almacenamiento en disco para poder ser un administrador
de sistemas exitoso.

Una vista general del hardware de almacenamiento.
Antes de administrar el almacenamiento, primero es necesario entender el
hardware en el que estn almacenados los datos. A menos que posea un algn
conocimiento sobre la operacin de los dispositivos de almacenamiento
masivo, quizs se encuentre en una situacin donde tenga un problema
relacionado al almacenamiento pero le falte el conocimiento de fondo para si
quiera entender lo que ve. Al tener un entendimiento sobre la forma en que
opera el hardware subyacente, podr ms fcilmente determinar si el
subsistema de almacenamiento de su computador est funcionando
correctamente.

La gran mayora de los dispositivos de almacenamiento masivo utilizan alguna
forma de media de rotacin y soportan el acceso aleatorio de los datos en esa
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
media. Esto significa que los componentes siguientes estn presentes en
alguna forma dentro de casi todos los dispositivos de almacenamiento masivo:

Plato del disco

Dispositivo de lectura/escritura de datos

Brazos de acceso

Las secciones siguientes exploran con ms detalles cada uno de estos
componentes.

Platos de discos
La media rotativa utilizada por casi todos los dispositivos de almacenamiento
masivo est en la forma de uno o ms platos planos y de forma circular. El
plato puede estar compuesto de cualquier nmero de materiales diferentes,
tales como aluminio, vidrio y policarbonatos.

La superficie de cada plato se trata de forma que permita el almacenamiento de
datos. La naturaleza exacta del tratamiento va a depender de la tecnologa de
almacenamiento de datos utilizada. La tecnologa de almacenamiento de datos
ms comn est basada en la propiedad de magnetismo; en estos casos los
platos se cubren con un compuesto que presenta buenas caractersticas
magnticas.
Otra tecnologa de almacenamiento de datos comn est basada en principios
pticos; en estos casos, los platos se cubren con materiales cuyas propiedades
pticas pueden ser modificadas, y en consecuencia, permitiendo almacenar
datos pticamente.

Sin importar la tecnologa de almacenamiento utilizada, los platos del disco se
giran, causando que su superficie completa barra ms all de otro componente
- el dispositivo de lectura/escritura.

Dispositivo de lectura/escritura de datos.
El dispositivo de lectura/escritura es el componente que toma los bits y bytes
en los que opera un sistema computacional y los convierte en las variaciones
magnticas u pticas necesarias para interactuar con los materiales que cubren
la superficie de los platos de discos.
Algunas veces las condiciones bajo las cuales estos dispositivos deben operar
son difciles. Por ejemplo, en un almacenamiento masivo basado en
magnetismo, los dispositivos de lectura/escritura (conocidos como cabezales),
deben estar muy cerca de la superficie del plato. Sin embargo, si el cabezal y la
superficie del plato del disco se tocan, la friccin resultante provocara un dao
severo tanto al cabezal como al plato. Por lo tanto, las superficies tanto del
cabezal como del plato son pulidas cuidadosamente y el cabezal utiliza aire a
presin desarrollado por los platos que giran para flotar sobre la superficie del
plato, flotando a una altitud no menor que el grueso de un cabello humano.
Por eso es que las unidades de discos magnticos son muy sensibles a
choques, cambios drsticos de temperaturas y a la contaminacin del aire.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Los retos que enfrentan los cabezales pticos son de alguna manera diferentes
de aquellos para los cabezales magnticos - aqu, el ensamblado de la cabeza
debe permanecer a una distancia relativamente constante de la superficie del
plato. De lo contrario, los lentes utilizados para enfocarse sobre el plato no
producen una imagen lo suficientemente definida.

En cualquier caso, las cabezas utilizan una cantidad muy pequea del rea de
superficie del plato para el almacenamiento de datos. A medida que el plato
gira por debajo de las cabezas, esta rea de superficie toma la forma de una
lnea circular muy delgada.

Si es as como los dispositivos de almacenamiento masivo funcionan, significa
que ms del 99% de la superficie del plato se desperdiciara. Se pueden
montar cabezas adicionales sobre el plato, pero para utilizar completamente el
rea de superficie del plato se necesitan ms de mil cabezales. Lo que se
requiere es algn mtodo de mover los cabezales sobre la superficie del plato.

Brazos de acceso.
Utilizando una cabeza conectada a un brazo que sea capaz de barrer sobre la
superficie completa del plato, es posible utilizar completamente el plato para el
almacenamiento de datos. Sin embargo, el brazo de acceso debe ser capaz de
dos cosas:

Moverse rpidamente
Moverse con gran precisin

El brazo de acceso se debe mover lo ms rpido posible, pues el tiempo que
se pierde moviendo el cabezal desde una posicin a la otra es tiempo perdido.
Esto se debe a que no se pueden leer o escribir datos hasta que el brazo se
detenga.

El brazo de acceso debe ser capaz de moverse con gran precisin porque,
como se mencion anteriormente, el rea de superficie utilizada por los
cabezales es muy pequea. Por lo tanto, para usar eficientemente la capacidad
de almacenamiento del plato, es necesario mover las cabezas solamente lo
suficiente para asegurar que cualquier dato escrito en la nueva posicin no
sobrescribe los datos escritos en la posicin previa. Esto tiene el efecto de
dividir conceptualmente la superficie del plato en miles o ms aros concntricos
o pistas. El movimiento del brazo de acceso desde una pista a la siguiente a
menudo se conoce como bsqueda y el tiempo que toma el brazo de acceso
para moverse de una pista a otra se le conoce como tiempo de bsqueda.

Cuando existen mltiples platos (o un plato que con ambas superficies
utilizadas para almacenamiento de datos), se apilan los brazos para cada
superficie, permitiendo que se pueda acceder a la misma pista en cada
superficie simultneamente. Si se pueden visualizar las pistas para cada
superficie con el acceso estacionario sobre una pista dada, aparecern como
que estn apiladas una sobre la otra, haciendo una forma cilndrica; por tanto,
el conjunto de pistas accesibles en una posicin dada de los brazos de acceso
se conocen como cilindro.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
3.2.2 Jerarqua de la Memoria
Se conoce como jerarqua de memoria a la organizacin piramidal de la
memoria en niveles, que tienen los ordenadores. Su objetivo es conseguir el
rendimiento de una memoria de gran velocidad al coste de una memoria de
baja velocidad, basndose en el principio de cercana de referencias.

Los puntos bsicos relacionados con la memoria pueden resumirse en:

Cantidad.

Velocidad.

Coste.

La cuestin de la cantidad es simple, cuanto ms memoria haya disponible,
ms podr utilizarse. La velocidad ptima para la memoria es la velocidad a la
que el procesador puede trabajar, de modo que no haya tiempos de espera
entre clculo y clculo, utilizados para traer operandos o guardar resultados. En
suma, el costo de la memoria no debe ser excesivo, para que sea factible
construir un equipo accesible.

Como puede esperarse los tres factores compiten entre s, por lo que hay que
encontrar un equilibrio. Las siguientes afirmaciones son vlidas:

A menor tiempo de acceso mayor coste.

A mayor capacidad mayor coste.

A mayor capacidad menor velocidad.

Se busca entonces contar con capacidad suficiente de memoria, con una
velocidad que sirva para satisfacer la demanda de rendimiento y con un coste
que no sea excesivo. Gracias a un principio llamado cercana de referencias,
es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento
cercano al de la memoria ms rpida.

Los niveles que componen la jerarqua de memoria habitualmente son:

Nivel 0: Registros.

Nivel 1: Memoria cach.

Nivel 2: Memoria principal.

Nivel 3: Disco duro (con el mecanismo de memoria virtual).

Nivel 4: Redes (Actualmente se considera un nivel mas de la jerarqua
de memorias).
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin


En el diseo del sistema informtico, en lo que a la decisin de la memoria a
utilizar, se ha de encontrar un compromiso entre su capacidad y su velocidad.
Ocurre que en algunas situaciones se necesita una gran capacidad de
almacenamiento (es el caso de la memoria secundaria) y en otros es
conveniente una mayor velocidad (memoria principal, cach, etc.).

La memoria secundaria trata de proveer una gran capacidad de
almacenamiento (sacrificando la velocidad), mientras que la memoria que
almacena la informacin que se est procesando en un determinado momento
ha de ser rpida aunque no cuente con una gran capacidad.

Desde el punto de vista de la ejecucin de un programa, no todos los datos son
accedidos con la misma frecuencia estadstica. Datos prximos (e instrucciones
prximas) tienen una mayor probabilidad de ser accedidos. Por esta razn las
cachs, aunque no cuentan con una capacidad suficiente como para almacenar
un proceso en ejecucin, aumentan notablemente la velocidad del sistema
informtico.

Actualmente se suelen utilizar dos niveles de cach en los ordenadores
domsticos. La cach de primer nivel est integrada en el interior del P, la
cach de segundo nivel normalmente est integrada en la placa base o bien en
el circuito impreso que contiene a la CPU.

3.2.3 Estrategias de administracin de la memoria
1. Estrategias de bsqueda: deciden cundo obtener el siguiente fragmento de
programa, o de datos, para insertarlo en la memoria principal.

Estrategias de bsqueda por demanda: el momento viene dado cuando
algn programa en ejecucin hace referencia al citado fragmento;

Estrategias de bsqueda anticipada: predicen por donde ir el control del
programa en el paso siguiente para decidir el momento.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
2. Estrategias de colocacin: deciden donde va a ser colocado un nuevo
programa, o un trozo de programa o de datos.

3. Estrategias de reposicin: deciden que fragmento de programa, o de datos,
se va a desplazar, para dejar sitio a los programas nuevos o a otros
fragmentos.


3.2.4 Asignacin contigua VS No Contigua

Asignacin contigua
La asignacin contigua consiste en asignarle a un fichero un rea contigua del
almacenamiento secundario. Se requiere que el usuario especifique por
adelantado el tamao del rea necesaria para almacenar el fichero que va a
crear.

Ventajas:
1. minimiza el tiempo de acceso: el tiempo requerido para el intercambio de
informacin entre el disco y la memoria principal, o viceversa, necesita el
mnimo nmero de desplazamientos de la cabeza del disco y el rotacional;
2. facilita la implementacin de los directorios: basta almacenar por cada
fichero su direccin de comienzo y su longitud.

Desventaja:
1. presenta fragmentacin externa: requiriendo la combinacin de huecos
adyacentes y la compactacin de memoria peridicamente.

Este esquema es til cuando no son frecuentes las creaciones, destrucciones y
cambios de tamao de los ficheros.



Asignacin no contigua
La asignacin no contigua consiste en alojar los ficheros partidos en una serie
de trozos del mismo tamao (bloques), no ocupando necesariamente reas
contiguas del almacenamiento secundario.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Tamao del bloque: compromiso entre el aprovechamiento de la memoria y la
obtencin de una buena velocidad de transferencia.

A) Tamao del bloque grande: se desperdicia memoria ya que los ficheros,
sobre todo los pequeos, no conseguirn ocupar todo el bloque;

B) Tamao del bloque pequeo: cuanto mayor sea el tamao del fichero mayor
ser el nmero de bloques que se le deben asignar y como estos no se graban
contiguos, entonces el tiempo de acceso a ellos ser mayor puesto que existe
un retardo en el desplazamiento de la cabeza del disco.

Formas de asignar espacio:
1. Asignacin encadenada: en cada bloque se reserva un espacio en donde
se guarda la direccin del siguiente bloque del fichero.
El ltimo bloque del fichero se indica siguiendo algn criterio preestablecido.
La direccin del primer bloque se encuentra en el directorio donde cuelga el
fichero.

Inconvenientes:
1. desperdicio de memoria;
2. sirve solo para realizar acceso secuencial y no directo;
3. la estructura empleada es bastante vulnerable.



Variante de la asignacin encadenada
Toda la informacin que contiene los bloques son datos del fichero,
almacenndose los apuntadores en una tabla de asignacin de ficheros (FAT).
Esta tabla tiene tantas casillas como nmero de bloques en los que se ha
dividido el disco, y cada una de ellas contendr el puntero al siguiente bloque
lgico dentro del disco.

Si el disco es pequeo entonces se puede mantener la tabla FAT en memoria
principal.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Si el tamao del disco es muy grande, entonces la FAT no se podr mantener
en memoria principal siendo necesario tener que ir descargndola y cargndola
por partes.


2. Asignacin indexada: cada fichero tiene asociada una pequea tabla
(ndice) con la que se mantiene la estructura de sus bloques.

Lectura secuencial: se lee la direccin del primer elemento de la tabla de
ndices y se accede al primer bloque de datos, luego se lee la direccin del
segundo elemento de dicha tabla para leer el segundo bloque de datos, y as
sucesivamente.

Lectura directa: se realiza buscando en la tabla la direccin del bloque de datos
que se desea leer para acceder a l a continuacin.


Problema: la tabla de ndices se almacena en otro bloque del disco, limitando el
tamao del bloque el tamao de la tabla y como consecuencia el nmero de
bloques de datos que compone el fichero.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Solucin: cuando el bloque de ndices se completa y el fichero necesita crecer
se coloca un segundo nivel de ndices contenido en otro bloque, de forma que
la primera entrada de ese bloque direcciona el bloque que contiene la tabla
anterior; y la segunda entrada direccionar a la segunda tabla de ndices y as
sucesivamente.



Gestin del espacio libre. (I)
Tipo de asignacin:

1. Asignacin contigua. Mantener informacin sobre los huecos y tramos
ocupados.

2. Asignacin no contigua. Procedimientos:

A. Mapa del disco: estructura de datos almacenada en una zona concreta del
disco, cuyo tamao es de tantos bits como bloques tiene el disco.
Los bloques libres se representan con el valor 1 y los bloques ocupados con el
valor 0 (o viceversa).

B. Usar la FAT: los bloques libres estn marcados con algn distintivo.


INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
C. Lista de bloques libres.

Comparacin:
Si existen muchos bloques libres, la lista de bloques ocupa ms espacio
del disco que el mapa, ya que una direccin ocupa ms que los bits del
mapa.
Si el disco esta dividido en un gran nmero de bloques, el mapa del
disco, por su tamao, no se puede mantener en memoria principal para
realizar su gestin, mientras que si se usa una lista de bloques basta
con mantener la cabecera de esta en memoria principal, gestionndola
como una cola (se elige el primer bloque de la lista).

3.2.5 Multiprogramacin de Particin Fija, Particin Variable, con
Intercambio de Almacenamiento

Grado de multiprogramacin.
La memoria principal se divide en una serie de particiones, conteniendo cada
particin un trabajo completo. Estas particiones se protegen mediante los
registros de lmites.



Estos registros tambin se usan para la relocalizacin: a = b + d donde a:
direccin absoluta; b: base; d: direccin relativa.

Gestin de memoria con particiones fijas.
Las particiones son de tamao fijo, conteniendo cada particin un slo trabajo
completo.








INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Modos de carga:

Carga fija o absoluta.


Carga relocalizable.

Problema: desperdicio de memoria debido a que el tamao de las particiones
esta establecido a priori (fragmentacin interna).











INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Gestin de memoria con particiones variables.
Cada trabajo ocupa slo el espacio que necesita.




Tcnicas:

Combinacin de huecos:

Compactacin de memoria:



INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Estrategias de colocacin:



Una estrategia de colocacin de memoria determina el lugar donde ser
cargado un nuevo proceso en base a un criterio.

Las estrategias de colocacin son:

1. Primer Ajuste. El Sistema Operativo asigna el primer bloque de memoria
libre con espacio suficiente para satisfacer la informacin. La bsqueda de este
bloque es de manera secuencial.

2. Mejor Ajuste. El sistema operativo busca el bloque de memoria que
represente el menor desperdicio segn el requerimiento.

3. Peor Ajuste. El sistema operativo asigna el bloque ms grande que
encuentre.


Multiprogramacin con intercambio a disco (Swapping).
Se trabaja con los dos niveles de almacenamiento para no limitar el nmero de
procesos, manteniendo los programas de los procesos que no estn activos en
memoria secundaria.
Para conseguir esto, se catalogan los procesos entre los que deben ser
residentes en memoria principal y los que pueden pasar a disco. Entre estos
ltimos se puede usar prioridades; de forma que un proceso no pasar a disco
si existe otro cuya prioridad le obliga a que pase antes.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
3.3 Organizacin de Memoria Virtual
Almacenamiento virtual significa la capacidad de direccionar un espacio de
almacenamiento mucho mayor que el disponible en el almacenamiento primario
de determinado sistema de computacin.

Esta tecnologa apareci en 1960 en la Universidad de Manchester (Inglaterra),
en el sistema Atlas.

La ilusin de la memoria virtual est soportada por el mecanismo de traduccin
de memoria, junto con una gran cantidad de almacenamiento rpido en disco
duro. As en cualquier momento el espacio de direcciones virtual hace un
seguimiento de tal forma que una pequea parte de l, est en memoria real y
el resto almacenado en el disco, y puede ser referenciado fcilmente.
Debido a que slo la parte de memoria virtual que est almacenada en la
memoria principal, es accesible a la CPU, segn un programa va ejecutndose,
la proximidad de referencias a memoria cambia, necesitando que algunas
partes de la memoria virtual se traigan a la memoria principal desde el disco,
mientras que otras ya ejecutadas, se pueden volver a depositar en el disco
(archivos de paginacin).

Los mtodos ms comunes de implementacin son mediante:

Tcnicas de paginacin.

Tcnicas de segmentacin.

Una combinacin de ambas tcnicas.

3.3.1 Evaluacin de las Organizaciones de Almacenamiento
Histricamente el almacenamiento principal se ha considerado como un
recurso costoso, por lo cual su utilizacin deba optimizarse.

Por organizacin del almacenamiento se entiende la manera de considerar este
almacenamiento:

Se coloca un solo programa de usuario o varios?

Si se encuentran varios programas de usuario:
Se concede a cada uno la misma cantidad de espacio o se divide el
almacenamiento en porciones o particiones de diferente tamao?
Se utilizar un esquema rgido de nmero y tamao de particiones o un
esquema dinmico y adaptable?
Se requerir que los trabajos de los usuarios sean diseados para
funcionar en una particin especfica o se permitir que se ejecuten en
cualquiera donde quepan?
Se requerir o no que cada trabajo sea colocado en un bloque contiguo
de memoria?



INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Organizacin del Almacenamiento de Niveles Mltiples
Se deben proporcionar los medios para retener programas y datos en un gran
almacenamiento auxiliar para:

Permitir que el espacio de direcciones virtuales de un usuario sea mayor
que el espacio de direcciones reales.
Soportar multiprogramacin de forma efectiva en un sistema con
muchos usuarios que compartan el almacenamiento real.

Se utiliza un esquema de almacenamiento de dos niveles:

Primer nivel: almacenamiento real:
o En l se ejecutan los procesos y en l deben estar los datos para
que un proceso pueda referirse a ellos.

Segundo nivel: almacenamiento auxiliar, secundario o adicional:
o Generalmente consta de discos de gran capacidad que pueden
mantener los programas y datos que no caben al mismo tiempo
en el ms limitado almacenamiento real.


Conceptos bsicos sobre memoria virtual
Definicin: memoria virtual (Fotheringham, 1961) es un mtodo que permite
direccional un espacio de almacenamiento mucho mayor que el disponible en
la memoria principal. Para ello, el S. O. usa memoria a dos niveles y particiona
los trabajos en bloques, manteniendo en memoria principal aquellos bloques
que se estn usando.



Tamao de los bloques:
Con el mismo tamao: pginas. Paginacin.
Con diferentes tamaos: segmentos. Segmentacin
Segmentos de tamao variable de pginas de tamao fijo.
Paginacin/Segmentacin.



INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Definiciones:
1. Direcciones virtuales: las direcciones a las que se refiere un proceso durante
su ejecucin. Espacio de direcciones virtuales.
2. Direcciones reales: las direcciones que tiene la memoria principal. Espacio
de direcciones reales.

Los mecanismos de traduccin dinmica de direcciones (DAT) se encargan de
transformar las direcciones virtuales a direcciones reales, basndose en que
direcciones contiguas dentro del espacio de direcciones virtuales, no tienen por
qu ser contiguas dentro del almacenamiento real.
Para realizar esta transformacin, los DAT mantienen por cada proceso un
mapa que indica qu direcciones virtuales se encuentran en memoria principal
y dnde. Para que este mapa no sea muy grande las transformaciones se
realizan a nivel de bloque.

Traduccin de una direccin virtual a una direccin real:



3.3.2 Paginacin

Divide:
El espacio virtual de direcciones de un trabajo en trozos del mismo
tamao (pginas) y,

La memoria principal en bloques del mismo tamao que el de las
pginas (marcos de pgina o pginas fsicas).


INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin


Cada trabajo tiene asociado una tabla de mapas de pginas, con tantos
elementos como el nmero de pginas en las que se ha dividido el trabajo.


Formato de un elemento de la tabla de pginas:

t bit de residencia de pgina en memoria principal;
m direccin de almacenamiento secundario;
p direccin real del comienzo del marco de pgina.

A veces contiene el nmero del marco de pgina, con el cual se calcula la
direccin real donde comienza dicho marco de pgina.









INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Tcnicas para realizar la traduccin de direcciones virtuales:

1. Por transformacin directa.


2. Por transformacin asociativa.









INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
3. Por combinacin de la transformacin asociativa y la directa.


Comparticin:


3.3.3 Segmentacin
El espacio virtual de direcciones de un trabajo se divide en trozos de distinto
tamao (segmentos), permitiendo que el contenido de cada uno de ellos tenga
identidad propia.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin


Cada trabajo tiene asociado una tabla de mapas de segmentos, con tantos
elementos como el nmero de segmentos en los que se ha dividido el trabajo.


Formato de un elemento de la tabla de segmentos:

t bit de residencia del segmento en memoria principal;
m direccin de almacenamiento secundario;
s direccin real (base) del comienzo del segmento.
l longitud del segmento o direccin real del final del segmento;
R, W, E, A bits de proteccin (1 si lo posee, 0 no lo posee)

R acceso de lectura, W acceso de escritura,
E acceso de ejecucin, A acceso de adicin






INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Tcnicas para realizar la traduccin de direcciones virtuales:

1. Por transformacin directa.


2. Por transformacin asociativa.








INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
3. Por combinacin de la transformacin asociativa y la directa.


Fallos durante la traduccin de una direccin virtual:

1) Fallo de prdida de segmento.
El segmento al que se hace referencia no esta en la memoria principal. Este
fallo se detecta comprobando el bit de residencia, t, y se soluciona trayendo
dicho segmento del almacenamiento secundario, cuya direccin viene indicada
por m.

2) Fallo de desbordamiento de segmento.
Se hace referencia a una posicin que no pertenece al segmento. Este fallo se
detecta realizando la siguiente verificacin:

a) si l indica la longitud del segmento, se comprueba que d < l.;
b) si l indica la direccin real donde termina el segmento, se comprueba que
s+d l

Si no se cumple la comprobacin correspondiente se aborta la ejecucin del
proceso.

3) Fallo de proteccin de segmento.
Si se solicita una operacin que no esta permitida. Este fallo se detecta
comprobando los bits de proteccin, y si ocurre se cancela la ejecucin del
proceso.

3.3.4 Sistema de Paginacin/Segmentacin
El espacio virtual de direcciones de un trabajo se divide en segmentos que se
gestionan a nivel de pginas. Por otra parte, la memoria principal se divide en
marcos de pgina.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin


Cada trabajo tiene asociado una tabla de mapas de segmentos, con tantos
elementos como el nmero de segmentos en los que se ha dividido el trabajo.
Adems, por cada segmento tambin existe una tabla de mapas de pginas
que tiene tantos elementos como el nmero de pginas en las que se ha
dividido el segmento.




Formato de un elemento de la tabla de segmentos:
t bit de residencia del segmento en memoria principal;
m1 direccin de almacenamiento secundario;
s direccin real del comienzo de su tabla de pginas;
l longitud del segmento (nmero de pginas);
R, W, E, A bits de proteccin (1 si lo posee, 0 no lo posee)

R acceso de lectura, W acceso de escritura, E acceso de ejecucin, A acceso
de adicin.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Formato de un elemento de la tabla de pginas:
t bit de residencia de pgina en memoria principal;
m2 direccin de almacenamiento secundario;
p direccin real del comienzo del marco de pgina.



Tcnicas para realizar la traduccin de direcciones virtuales:

1. Por transformacin directa.















INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
2. Por transformacin asociativa.


3. Por combinacin de la transformacin asociativa y la directa.






INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Fallos durante la traduccin de una direccin virtual:

A) Fallo de prdida de segmento.
Ninguna de las pginas del segmento esta en memoria principal. Este fallo se
detecta comprobando el bit de residencia, t, de la tabla de segmentos y se
soluciona creando la tabla de pginas para dicho segmento y cargando la
pgina referenciada en memoria principal.

B) Fallo de prdida de pgina.
Alguna de las pginas del segmento al que pertenece la pgina referenciada
esta en memoria principal, pero la pgina en cuestin no. Esto se detecta
comprobando el bit de residencia, t, de la tabla de pginas para el citado
segmento y se soluciona cargando dicha pgina desde el almacenamiento
secundario.

C) Fallo de desbordamiento de segmento.
Se hace referencia a una pgina que no posee el segmento (se verifica si p l),
y por lo tanto se aborta la ejecucin del proceso.

D) Fallo de proteccin de segmento.
Cuando los bits de proteccin indican que la operacin solicitada no esta
permitida, en cuyo caso se cancela la ejecucin del proceso.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
3.4 Administracin de Memoria Virtual

3.4.1 Estrategias de Administracin
Es un mtodo mediante el cual, un sistema operativo simula tener ms
memoria principal que la que existe fsicamente. Para implementar la memoria
virtual se utiliza un medio de almacenamiento secundario de alta velocidad de
acceso, generalmente en disco duro de la maquina. Un sistema de memoria
virtual se implementa utilizando paginacin como mtodo de administracin de
memoria bsica y algn mecanismo de intercambio (para descargar paginas de
la memoria principal hacia el disco duro y para cargar esas pginas de nuevo a
la memoria).

La memoria virtual es una tcnica para proporcionar la simulacin de un
espacio de memoria mucho mayor que la memoria fsica de una maquina. Esta
ilusin permite que los programas se hagan sin tener en cuenta el tamao
exacto de la memoria fsica. La ilusin de la memoria virtual esta soportada por
el mecanismo de traduccin de memoria, junto con una gran cantidad de
almacenamiento rpido en disco duro. As en cualquier momento el espacio de
direcciones virtual hace un seguimiento de tal forma que una pequea parte
del, esta en memoria real y el resto almacenado en el disco, y puede ser
referenciado fcilmente.

Estrategias de administracin de la memoria virtual.
Estrategias del mejor ajuste: Un trabajo que entre en el sistema se colocar en
el espacio vaci del almacenamiento principal en el que quepa mejor y que
deje la menor cantidad posible de espacio sin utilizar.

Estrategias del primer ajuste: Un trabajo que entre en el sistema se colocara
en el almacenamiento principal en el primer vaci disponibles lo bastante
grande para contenerlo.

Estrategias del peor ajuste: Consiste en colocar un programa en el
almacenamiento primario en el espacio vaci donde peor se ajusta es decir en
el espacio ms grande posible.

Estrategias de obtencin: Determina cuando se debe transferir una pgina o
un segmento de almacenamiento secundario al primario. Las estrategias de
obtencin por demanda esperan a que un proceso en ejecucin haga
referencia a una pgina o a un segmento antes de traer la pgina o el
segmento de almacenamiento primario. Los esquemas de obtencin anticipada
intentan determinar por adelantado a cuales paginas o segmentos har
referencia un proceso.

Estrategias de colocacin: Determinan en que lugar del almacenamiento
primario se debe colocar una pagina o un segmento entrante. Una pgina
entrante se puede colocar en cualquier marco de pgina disponible.

Estrategias de reemplazo: Sirven para decidir cual pgina o segmento se
debe desplazar para dar espacio a una pgina o segmento entrante cuando
esta completamente ocupado el almacenamiento primario.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Estrategias de Colocacin: Determinan en que lugar del almacenamiento
primario se debe colocar una pgina o un segmento entrante. Una pgina
entrante se puede colocar en cualquier marco de pgina disponible.

Estrategias de Reemplazo: Sirven para decidir cual pgina o segmento se
debe desplazar para dar espacio a una pgina o segmento entrante cuando
est completamente ocupado el almacenamiento primario.

La memoria virtual ha llegado a ser un componente esencial de la mayora de
los sistemas operativos actuales. Y como en un instante dado, en la memoria
slo se tienen unos pocos fragmentos de un proceso dado, se pueden
mantener ms procesos en la memoria. Es ms, se ahorra tiempo, porque los
fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin
embargo, el sistema operativo debe saber cmo gestionar este esquema.

La memoria virtual tambin simplifica la carga del programa para su ejecucin
llamada reubicacin, este procedimiento permite que el mismo programa se
ejecute en cualquier posicin de la memoria fsica

3.4.2.- Tcnicas de Reemplazo de Pginas.
Principio de optimizacin: para obtener un rendimiento ptimo se debe
desplazar aquella pgina que no se va a usar en el futuro durante el perodo de
tiempo ms largo.

Estrategias:

A. Reposicin de pgina al azar.
Se elige al azar la pgina a desplazar, por lo tanto supone poca sobrecarga y
no es discriminatoria.

B. Reposicin por el sistema de primero en entrar primero en salir (FIFO).
Se desplaza la pgina que lleva ms tiempo almacenada en memoria principal.
Se basa en que la pgina que lleva menos tiempo es porque se ha
referenciado hace poco, y por tanto la que lleva ms tiempo es porque ya no se
usa.

C. Reposicin de pgina menos recientemente usada (LRU).
Se desplaza la pgina que no ha sido usada durante el mayor perodo de
tiempo. Para ello, es necesario ponerle un sello de tiempo a la pgina cada vez
que sea referenciada, suponiendo una sobrecarga adicional importante.

D. Reposicin de pgina menos frecuentemente usada (LFU).
Se desplaza la pgina que se ha usado con menos frecuencia, por lo tanto
cada pgina posee un contador de utilizacin.

E. Reposicin de pgina no usada recientemente (NUR).

Se basa en que:

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
La pgina que no ha tenido un uso reciente tiene poca probabilidad de
ser usada en el futuro y puede por tanto ser reemplazada;
La sobrecarga es menor si se reemplaza una pgina que no ha
cambiado desde que se cargo en memoria principal, ya que no es
necesario llevarla al almacenamiento secundario.

Para llevar a cabo esta estrategia cada pgina va a tener dos bits hardware: bit
referenciado y bit modificado o bit sucio. La estrategia NUR elige la pgina a
desplazar siguiendo el orden de los siguientes grupos:

1 No referenciado no modificado
2 Referenciado no modificado
3 Referenciado modificado

Cada cierto tiempo se ajusta todos los bits de referencia a 0, apareciendo un
nuevo grupo no referenciado modificado.

3.4.4 Paginacin anticipada.
El S. O. intenta predecir las pginas que un proceso va a necesitar y precargar
estas pginas cuando hay espacio disponible, de forma que mientras que el
proceso ejecuta sus pgina actuales, el sistema carga nuevas pginas que
estarn disponibles cuando el proceso las pida. Se intenta reducir el tipo de
espera de los procesos.

3.4.5 Liberacin de Pgina
Cuando se hace evidente que una pgina ya no se necesita se debe liberar el
marco de pgina donde esta contenida.
Formas:
1. de forma voluntaria: la liberacin es realizada por el usuario mediante
mandatos;
2. de forma automtica: la responsabilidad recae en los compiladores y
sistemas operativos.

3.4.6 Tamao de la Pgina
Consideraciones:

Cuanto ms pequeo sea el tamao de la pgina, mayor ser el espacio
de memoria principal ocupada por las tablas de pginas (fragmentacin
de tablas).
Cuanto ms grande sea el tamao de la pgina, mayor ser la cantidad
de informacin, ocupando memoria principal, que nunca va a ser
referenciada.
Cuanto menor sea el tamao de la pgina, menor ser la fragmentacin
interna.
Cuanto mayor sea el tamao de la pgina, menor ser el nmero de
transferencias.




INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin

Unidad 4. Administracin de Entrada/Salida

4.1 Dispositivos y Manejadores de Dispositivos
Utilizaremos el trmino dispositivo para referirnos a cualquier elemento del
computador que no sea el procesador o la memoria. Habitualmente los
dispositivos se encargan de la entrada/salida, aunque la gestin de dispositivos
hay que entenderla en sentido amplio, incluyendo los dispositivos de
almacenamiento secundario y los de comunicaciones, e incluso la gestin del
tiempo y de la energa. Esta heterogeneidad hace que el tratamiento de los
dispositivos por el sistema operativo sea difcilmente generalizable para un
estudio sistemtico. En este captulo vamos a intentar exponer un enfoque
general de la entrada/salida.

Caractersticas de los dispositivos
Los dispositivos se caracterizan por su heterogeneidad, lo que introduce
complejidad en el sistema operativo. Algunas de las caractersticas en las que
los dispositivos pueden diferir son las siguientes:

Unidad de transferencia. Unos dispositivos utilizan el byte como unidad
de transferencia (dispositivos de caracteres, como el teclado o el ratn).
Otros transfieren y/o almacenan la informacin en bloques (dispositivos
de bloques, como discos y cintas magnticas).

Velocidad. Los rangos en los que se mueven los dispositivos son muy
amplios. Los discos y los dispositivos de comunicacin transfieren
millones de caracteres por segundo y pueden hacerlo a velocidad
constante, mientras que con el teclado se transfiere a lo sumo unos
cuantos caracteres por segundo, con un periodo concreto impredecible.

Representacin de los datos. Incluso un mismo dispositivo puede utilizar
diferentes codificaciones configurables en la instalacin, como es el caso
del teclado y el monitor.

Protocolos de comunicacin. La comunicacin entre el dispositivo y la
CPU se realiza de acuerdo a un determinado protocolo que depende del
dispositivo y del bus de comunicacin.

Operaciones. Hay dispositivos de entrada, de salida y de entrada/salida.
Adems, algunos dispositivos requieren operaciones especficas (por
ejemplo, posicionar el cabezal de lectura/escritura en los discos).

Errores. Las condiciones de error varan con la naturaleza del
dispositivo. Por ejemplo, en la impresora hay que tratar la falta de papel
como una situacin de error especfica, mientras que en un disco puede
haber errores en el posicionamiento del cabezal.

Para proporcionar una forma homognea de direccionar los dispositivos, a nivel
hardware stos se conectan al sistema mediante controladores. El sistema
operativo ya no trata con el dispositivo en s mismo, sino con una interfaz que
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
lo representa mediante un conjunto de direcciones o registros del controlador,
que se pueden direccionar en el espacio de direcciones de memoria o constituir
un espacio de direcciones independientes. El sistema se comunica con el
controlador mediante operaciones de lectura/escritura sobre los registros de
datos, estado y control, permitiendo tanto la transferencia de informacin como
el diagnstico y configuracin del dispositivo. Estas operaciones las realizan las
funciones de ms Bajo nivel del ncleo del sistema operativo, y son
dependientes del hardware.

Qu es un manejador de dispositivo?
Todos los perifricos conectados a la computadora que estamos usando para
correr nuestro S.O. son tratados como archivos especiales (device files) por el
sistema operativo. Un perifrico o dispositivo es una terminal, un disco duro,
una impresora, un manejador de CD-ROM, o un modem. Todo lo que recibe o
enva datos hacia el sistema operativo es un dispositivo.

El concepto de tratar todo en el sistema como un dispositivo es uno de los
beneficios de la arquitectura Unix. Cada dispositivo tiene un archivo especial
llamado manejador de dispositivo (device file), el cual incluye todas las
instrucciones necesarias para que el S.O. se comunique con el dispositivo.

Cuando un nuevo dispositivo es desarrollado, puede ser usado por el S.O.
escribiendo su manejador de dispositivo, el cual es usualmente un conjunto de
instrucciones que explican como mandar y recibir datos.

Los manejadores de dispositivos permiten al kernel incluir solo el sistema
operativo y el soporte de software. Teniendo las instrucciones para
comunicarse hacia los dispositivos dentro de un conjunto de archivos. Estos
pueden ser buscados cuando son necesitados (en el caso de que raramente
sean usados) o almacenados en memoria todo el tiempo cuando el sistema
operativo es reiniciado. Los refinamientos hechos hacia un perifrico, pequeos
cambios hacia el archivo manejador del dispositivo pueden tener informado al
sistema operativo de nuevas caractersticas y capacidades.

Cuando una aplicacin enva datos a un dispositivo, el kernel no tiene que
preocuparse por el mecanismo. El kernel solo pasa la peticin al manejador del
dispositivo y deja que ste maneje las comunicaciones. Similarmente, cuando
estamos tecleando, el manejador de dispositivo de la terminal acepta la accin
y la pasa al shell, filtrando cualquier cdigo especial que el kernel no conozca,
traducindolo a un formato que el kernel pueda operar.

Diferencia entre dispositivos modo bloque y modo caracter.
Los dispositivos de entrada salida se dividen, en general, en dos tipos:
dispositivos orientados a bloques y dispositivos orientados a caracteres.

Cada tipo de dispositivo en el sistema Linux se comunica con la aplicacin en
una de las formas siguientes: caracter por caracter o como un conjunto de
datos en un bloque de tamao predefinido. Las terminales, impresoras y
mdems asncronos son dispositivos modo caracter. Cuando se usa el modo
caracter se enva uno a la vez y hace eco en la otra terminal. Los manejadores
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
(device drivers) de disco duro y la mayora de manejadores, usan el modo
bloque, porque este es el camino ms rpido para enviar o recibir grandes
cantidades de informacin.
Los archivos de dispositivo (device files) son llamados dispositivos modo
carcter o dispositivos modo bloque, basados en la forma de comunicacin.

Cabe mencionar que los dispositivos que operan a modo carcter son distintos
de los de modo bloque, en el aspecto de como el dispositivo maneja su bfer.
Los dispositivos modo carcter hacen su propio bfer. Los dispositivos modo
bloque, usualmente se comunican en bloques de 512 o 1024 bytes y el kernel
se ocupa del bfer.

Algunos perifricos necesitan usar archivos de dispositivo a modo bloque y
carcter al mismo tiempo. Los manejadores de dispositivo manejan el modo
carcter y el modo bloque a travs de dos diferentes archivos de dispositivo. El
archivo de dispositivo que se usa depende de como la aplicacin quiera escribir
o leer datos hacia el perifrico.

El archivo de dispositivo tiene todos los detalles de si el perifrico opera a
modo carcter o modo bloque. Por ejemplo, en Linux, una manera fcil de
saber que tipo de modo utiliza un perifrico es obtener un listado largo del
archivo de dispositivo. El listado se obtiene con el comando ls -l que muestra
los permisos, dueo, grupo, etc. del archivo. Si el primer carcter es una b,
indica que el perifrico opera en modo bloque y una c indica que el perifrico
opera en modo carcter.


INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
4.2 Funciones de los Manejadores de Dispositivos
Cada driver maneja un tipo de dispositivo o un conjunto de dispositivos
relacionados o ms o menos similares.

El trabajo del driver del dispositivo es aceptar solicitudes abstractas desde el
software independiente del dispositivo y verificar si tal solicitud ha sido
ejecutada.



El driver es quien conoce la estructura del dispositivo y los mecanismos que
hacen que trabaje.

Funcin:
Enviar rdenes a los dispositivos.
Comprobar que se ha realizado correctamente.
La peticin de los programas independientes del dispositivo se llevan a
una cola.

El manejador de dispositivos es la nica parte del S.O. que conoce los registros
del controlador.

Funciones de los mdulos de E/S:

1.- Control y temporizacin para coordinar el trfico entre los recursos internos
(memoria, bus) y los dispositivos internos.

2.- Comunicacin con el procesador
- Decodificacin de rdenes
- Datos
- Informacin de estado
- Reconocimiento de direccin

3.- Comunicacin con el perifrico. Intercambio de ordenes, informacin del
estado datos.

4.- Almacenamiento temporal de datos.

5.- Deteccin de errores.

Funcin de los controladores de dispositivos
Cada controlador tiene uno o ms registros de dispositivos, los cuales se
utilizan para darle los comandos. Los manejadores de dispositivos proveen
estos comandos y verifican su ejecucin adecuada. El manejador del disco es
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
la nica parte del sistema operativo que conoce el nmero de registros de un
controlador de disco y el uso que tienen stos.
La labor de un manejador de dispositivo es la de aceptar las solicitudes
abstractas que le hace el software independiente del dispositivo y verificar la
ejecucin de dicha solicitud. El manejador de disco debe decidir cules son las
operaciones necesarias del controlador y su orden. Si todo est en orden, el
manejador dispondr de datos para transferirlos al software independiente del
dispositivo.

Software de E/S independiente del dispositivo

Funciones:

Presentar una interfaz uniforme a los programas de usuario.
Asignar nombres y establecer la correspondencia entre nombre y
manejadores.
En UNIX los dispositivos se tratan como ficheros.
N de dispositivo principal: Para localizar el manejador.
N de dispositivo secundario: Para especificar la unidad referenciada.
Proteger a los dispositivos de accesos no permitidos.
Ocultar las diferencias en las unidades de informacin tanto en los
dispositivos de bloques como de caracteres.
Almacenar temporalmente los datos de los dispositivos (buffering).
o Completar bloques, sincronizar, entrada de teclado...
Asignar espacio libre en los dispositivos de bloques.
Gestionar el uso de los dispositivos dedicados.
o Aceptar o rechazar las peticiones (Ej.: OPEN).
Tratar los errores.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
4.3 Estructuras de datos para manejo de dispositivos
Hay estructuras que se crean en memoria durante la ejecucin de los procesos
relacionadas con el uso que estos hacen de los archivos.

El sistema cuenta con una tabla de archivos abiertos (open file table) general
donde figura informacin sobre los archivos activos (que estn siendo usados
por los procesos) e ndices de referencia al archivo. Algunos sistemas
requieren hacer un open previo al primer read.

La llamada a sistema open toma el nombre de archivo, busca en el directorio,
copia la entrada del directorio en la tabla de archivos abiertos. Todo esto si
estas acciones son permitidas de acuerdo a los modos de proteccin del
archivo.

Un puntero para accederlo rpidamente es tambin puesto en la tabla de
archivos abiertos.

En un sistema multiusuario, un archivo puede ser abierto por ms de dos
usuarios simultneamente, cada uno con su puntero.

Hay dos tipos de tablas. La tabla por proceso contiene informacin sobre los
archivos abiertos por el proceso y contiene un apuntador a la segunda tabla, la
de los archivos abiertos en todo el sistema. Esta segunda tabla tiene
informacin independiente del proceso que lo ejecute como ubicacin del
archivo en el disco, medida del archivo, etc.

La tabla del sistema tiene tambin la cantidad de procesos que tienen abierto el
archivo, y con cada close este valor se va decrementando. Cuando queda en
cero, se remueve esa entrada.

La informacin asociada a un archivo abierto es:

Puntero (File pointer)

Contador de aperturas del file (File open count) cuando lo tiene abierto
mas de un proceso simultneamente

Ubicacin del archivo en el disco

Hay sistemas que permiten compartir entre varios procesos, secciones de un
archivo: un archivo ejecutable que reside en disco y es llevado a memoria y
forma parte del espacio de direcciones de varios procesos; o archivos de datos
cuyos bloques en memoria son accedidos por varios procesos.


En el manejo de los dispositivos de E/S es necesario, introducir dos nuevos
trminos:



INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Buffering (uso de memoria intermedia).

El buffering trata de mantener ocupados tanto la CPU como los dispositivos de
E/S. La idea es sencilla, los datos se leen y se almacenan en un buffer, una vez
que los datos se han ledo y la CPU va a iniciar inmediatamente la operacin
con ellos, el dispositivo de entrada es instruido para iniciar inmediatamente la
siguiente lectura. La CPU y el dispositivo de entrada permanecen ocupados.
Cuando la CPU est libre para el siguiente grupo de datos, el dispositivo de
entrada habr terminado de leerlos. La CPU podr empezar el proceso de los
ltimos datos ledos, mientras el dispositivo de entrada iniciar la lectura de los
datos siguientes.

Para la salida, el proceso es anlogo. En este caso los datos de salida se
descargan en otro buffer hasta que el dispositivo de salida pueda procesarlos.

Este sistema soluciona en forma parcial el problema de mantener ocupados
todo el tiempo la CPU y los dispositivos de E/S. Ya que todo depende del
tamao del buffer y de la velocidad de procesamiento tanto de la CPU como de
los dispositivos de E/S.



El manejo de buffer es complicado. Uno de los principales problemas reside en
determinar tan pronto como sea posible que un dispositivo de E/S haya
finalizado una operacin. Este problema se resuelve mediante las
interrupciones. Tan pronto como un dispositivo de E/S acaba con una
operacin interrumpe a la CPU, en ese momento la CPU detiene lo que est
haciendo e inmediatamente transfiere el control a una posicin determinada.
Normalmente las instrucciones que existen en esta posicin corresponden a
una rutina de servicio de interrupciones. La rutina de servicio de interrupcin
comprueba si el buffer no est lleno o no est vaco y entonces inicia la
siguiente peticin de E/S. La CPU puede continuar entonces el proceso
interrumpido.

Cada diseo de computadora tiene su propio mecanismo de interrupcin, pero
hay varias funciones comunes que todos contemplan. El buffering puede ser de
gran ayuda pero pocas veces es suficiente.


INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Spooling.

El problema con los sistemas de cintas es que una lectora de tarjetas no poda
escribir sobre un extremo mientras la CPU lea el otro. Los sistemas de disco
eliminaron esa dificultad, moviendo la cabeza de un rea del disco a otra.

En un sistema de discos, las tarjetas se leen directamente desde la lectora
sobre el disco. La posicin de las imgenes de las tarjetas se registra en una
tabla mantenida por el sistema operativo. En la tabla se anota cada trabajo una
vez ledo. Cuando se ejecuta un trabajo sus peticiones de entrada desde la
tarjeta se satisfacen leyendo el disco. Cuando el trabajo solicita la salida, sta
se copia en el buffer del sistema y se escribe en el disco. Cuando la tarea se ha
completado se escribe en la salida realmente.

Esta forma de procesamiento se denomina spooling, utiliza el disco como un
buffer muy grande para leer tan por delante como sea posible de los
dispositivos de entrada y para almacenar los ficheros hasta que los dispositivos
de salida sean capaces de aceptarlos.

La ventaja sobre el buffering es que el spooling solapa la E/S de un trabajo con
la computacin de otro. Es una caracterstica utilizada en la mayora de los
sistemas operativos.



Afecta directamente a las prestaciones. Por el costo de algo de espacio en
disco y algunas tablas, la CPU puede simultanear la computacin de un trabajo
con la E/S de otros. De esta manera, puede mantener tanto a la CPU como a
los dispositivos de E/S trabajando con un rendimiento mucho mayor.

Adems mantiene una estructura de datos llama job spooling, que hace que los
trabajos ya ledos permanezcan en el disco y el sistema operativo puede
seleccionar cual ejecutar, por lo tanto se hace posible la planificacin de
trabajos.
Otro objetivo es minimizar las prdidas adicionales por cableado y las
variaciones de la atenuacin con la temperatura, sin embargo, se observan
resultados que demuestran la existencia de importantes diferencias sobre lo
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
previsto. Tales diferencias se deben a diseos calculados a veces para mejorar
otras propiedades, como la resistencia mecnica, la calidad de empalme, el
coeficiente de relleno (nmero de fibras por mm2) o el costo de produccin.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
4.4 Operaciones de Entrada /Salida

Tcnicas de Comunicacin de E/S

Entrada/salida por consulta o programada.
La CPU accede a los registros desde programa.
Para saber si el dispositivo est listo, se hace una consulta peridica.

Entrada/salida por interrupciones.
El dispositivo avisa a la CPU cuando est listo.
La entrada/salida se hace mediante una rutina de servicio de interrupcin.

Entrada/salida por acceso directo a memoria.
El dispositivo accede directamente a la memoria.
Avisa a la CPU del inicio o final de la operacin.

Entrada/salida por consulta
La operacin de I/O se controla por la CPU.
Antes de realizar la operacin se comprueba el (los) registro(s) de estado, para
ver si el dispositivo est listo.

Ventajas: sencillez.

Desventajas:
Ritmo de transferencia limitado por la velocidad de la CPU.
Tiempo de respuesta elevado, mayor que el periodo de consulta.
Sobrecarga de la CPU para operaciones de consulta que podran evitarse.

Entrada/salida por interrupciones
Permite al dispositivo marcar el instante en que se hace la transferencia de
datos.
El mecanismo de interrupcin est presente en casi todos los computadores.




INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Las interrupciones se pueden enmascarar.

Se utiliza para evitar la interrupcin cuando se accede a datos
compartidos con ella.

Para cada interrupcin se puede instalar una rutina de servicio de interrupcin.

Al llegar la interrupcin, el procesador interrumpe el programa en
ejecucin y enmascara esa interrupcin.
Despus ejecuta la rutina de servicio de interrupcin.
Al acabar, el procesador restaura el estado anterior y el programa
interrumpido contina.

Estructura habitual.
Acceder al dispositivo causante de la interrupcin y hacer que cese la
peticin de interrupcin.
Si es necesario, acceder al controlador de interrupciones para hacer lo
mismo.
Realizar la transferencia de datos.

El modelo es el de una tarea concurrente ms.
Ejecuta a la mxima prioridad del sistema.


Entrada/salida por acceso directo a memoria
El ritmo de transferencia es superior al de los otros mtodos.
El instante de I/O lo marca el dispositivo con interrupciones.
Hay lneas para desconectar a la CPU de la memoria.



Registros del dispositivo:
IODIR: Direccin de memoria para la operacin de I/O.
CONT: Contador de nmero de bytes a transferir.

Funcionamiento habitual:
La CPU carga los valores en los registros del dispositivo.
El dispositivo solicita el uso de la memoria: DMA-request.
La CPU se lo concede: DMA-acknowledge.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
El dispositivo transfiere los datos. Para cada uno, incrementa IODIR y
decrementa CONT.
Cuando CONT llega a 0 se devuelve el control de la memoria a la CPU
(DMA-request) y se enva una interrupcin de aviso.


I) OPERACIN DE E/S SIN DMA:
Primero el controlador lee el bloque desde el drive, bit a bit en forma serial,
hasta que el bloque entero este dentro del buffer interno del controlador.

Chequea si no existe ningn error.
El controlador genera una interrupcin.
El Sistema Operativo comienza su ejecucin, lee el bloque del buffer del
controlador por byte o word de manera iterativa y lo almacena en
memoria.

II) OPERACIN DE E/S COM DMA:
El Sistema Operativo enva al controlador tres items de informacin:
La direccin del bloque,
La direccin de memoria donde ir el bloque,
El nmero de bytes a transferir.

Luego, el controlador lee el bloque entero desde el dispositivo lo coloca en su
buffer interno y chequea si ocurri algn error.
Copia el primer byte o word en memoria principal, incrementa la direccin de
memoria y decrementa la cantidad de bytes o word a transferir.
El controlador genera una interrupcin.
El sistema operativo ya tiene disponible el bloque de informacin en memoria.






















INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Unidad 5. Sistemas de Archivos

5.1 Conceptos
Utilizando la memoria principal los procesos pueden almacenar y tambin
compartir informacin. Sin embargo, la cantidad de informacin que se puede
almacenar es limitada, an con memoria virtual. Adems, deja de existir
cuando el proceso termina, y --peor an-- se pierde si se corta la luz.

En sntesis, se requiere otra clase de almacenamiento, que cumpla los
siguientes requisitos:

Que permita guardar grandes volmenes de informacin.
Que la informacin sobreviva a los procesos que la usan.
Que mltiples procesos puedan acceder a la informacin de manera
concurrente.

La solucin usual es guardar la informacin en disco, organizndola
lgicamente en unidades llamadas archivos. Los archivos son administrados
por una parte del sistema operativo que se conoce como sistema de archivos.

Definiciones:
Un fichero es un conjunto de informacin con cierta entidad y con vista a
su conservacin y a su utilizacin en un entorno informtico. A la
informacin contenida en un fichero se puede referenciar como un todo
mediante un nombre que se le asocia a cada fichero y que lo identifica.

El sistema de ficheros es la parte del S. O. encargada de gestionar los
datos almacenados en el almacenamiento secundario.

Ms formalmente, un sistema de archivos es un conjunto de tipo de datos
abstractos que son implementados para el almacenamiento, la organizacin
jerrquica, la manipulacin, el acceso, el direccionamiento y la recuperacin de
datos. Los sistemas de archivos comparten mucho en comn con la tecnologa
de las bases de datos.

En general, los sistemas operativos tienen su propio sistema de archivos. En
ellos, los sistemas de archivos pueden ser representados de forma textual (ej.:
el shell de DOS) o grficamente (ej.: Explorador de archivos en Windows)
utilizando un gestor de archivos.

El software del sistema de archivos se encarga de organizar los archivos (que
suelen estar segmentados fsicamente en pequeos bloques de pocos bytes) y
directorios, manteniendo un registro de qu bloques pertenecen a qu archivos,
qu bloques no se han utilizado y las direcciones fsicas de cada bloque.

Los sistemas de archivos pueden ser clasificados en tres categoras: sistemas
de archivo de disco, sistemas de archivos de red y sistemas de archivos de
propsito especial.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Ejemplos de sistemas de archivos son: FAT, UMSDOS, NTFS, UDF, ext2, ext3,
ext4, ReiserFS, XFS, etc.


Desde el punto de vista del usuario, un archivo suele tener los siguientes
atributos:

A) Nombre.
Ms que nada, para ayudar a los humanos. Las reglas para nombrar archivos
varan de un sistema a otro (cuntos caracteres, qu caracteres, maysculas y
minsculas diferentes, extensin, etc.).

B) Tipo.
Muchos sistemas clasifican los archivos en distintos tipos (por ejemplo, texto,
ejecutable, etc.).

C) Contenido.

D) Tamao.
Actual y mximo.

E) Fecha y hora.
De creacin, de la ltima modificacin, del ltimo acceso.

F) Usuarios.
Identificador del creador y del dueo actual.

G) Atributos de proteccin.
Quin tiene derecho a hacer qu con el archivo.

H) Otros atributos.
Oculto, sistema, respaldado, etc.


Funciones que debe ofrecer el sistema de ficheros:

1. Permitir que los usuarios puedan crear, borrar y modificar sus ficheros;
2. Permitir que los usuarios puedan compartir sus ficheros de una forma
controlada;
3. Proporcionar varios tipos de acceso controlado a la hora de la comparticin;
4. Permitir que los usuarios puedan estructurar sus ficheros;
5. Permitir que los usuarios puedan ordenar la transferencia de informacin
entre ficheros;
6. Proporcionar recursos para realizar respaldos y recuperaciones de
informacin;
7. Permitir que los usuarios puedan referenciar sus ficheros mediante nombres
simblicos;
8. Proporcionar posibilidades de cifrado y descifrado para conseguir seguridad
y privacidad;
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
9. Ofrecer al usuario una interfaz amable, ofreciendo una vista lgica de los
datos y de las funciones que se pueden realizar con ellos;
10. Efectuar las operaciones sobre los datos de forma independiente al
dispositivo;
11. Gestionar la memoria secundaria.

Operaciones sobre archivos
El sistema operativo debe permitir operaciones sobre los archivos, mediante
llamadas al sistema.

Crear y eliminar.
Abrir y cerrar.
Leer y escribir (tpicamente, a partir de la posicin actual).
Reposicionarse.
Obtener y cambiar atributos.
Renombrar.

La informacin acerca de un archivo, exceptuando su contenido, se guarda en
una entrada del directorio. Dicha entrada contiene un puntero a la ubicacin en
disco del archivo.
Una interfaz muy general para la llamada al sistema que escribe en un archivo,
podra ser una que especifique

Nombre del archivo.
Posicin desde donde se va a escribir.
Informacin a escribir (Ej., puntero y tamao)

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
5.2 Nocin de Archivo Real y Virtual
Los sistemas de archivos o ficheros (en ingls: filesystem), estructuran la
informacin guardada en una unidad de almacenamiento (normalmente
un disco duro de una computadora), que luego ser representada ya sea
textual o grficamente utilizando un gestor de archivos. La mayora de
los sistemas operativos manejan su propio sistema de archivos.

Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el
acceso a los datos como una cadena de bloques de un mismo tamao, a veces
llamados sectores, usualmente de 512 bytes de longitud. El software del
sistema de archivos es responsable de la organizacin de estos sectores en
archivos y directorios y mantiene un registro de qu sectores pertenecen a qu
archivos y cules no han sido utilizados. En la prctica, un sistema de archivos
tambin puede ser utilizado para acceder a datos generados dinmicamente,
como los recibidos a travs de una conexin de red (sin la intervencin de un
dispositivo de almacenamiento).

Los sistemas de archivos tradicionales proveen mtodos para crear, mover,
renombrar y eliminar tanto archivos como directorios, pero carecen de mtodos
para crear, por ejemplo, enlaces adicionales a un directorio o archivo (enlace
duro en Unix) o renombrar enlaces padres (".." en Unix).

Un sistema de archivos virtual (abreviado como VFS, del ingls Virtual File
System), tambin denominado conmutador de sistema de archivos virtual, es
una capa de abstraccin encima de un sistema de archivos ms concreto. El
propsito de un VFS es permitir que las aplicaciones cliente tengan acceso a
diversos tipos de sistemas de archivos concretos de una manera uniforme.
Puede ser utilizada para tender un puente sobre las diferencias en los sistemas
de archivos de Windows, de Mac OS y Unix, de modo que las aplicaciones
pudieran tener acceso a archivos en los sistemas de archivos locales de esos
tipos sin tener que saber a qu tipo de sistema de archivos estn teniendo
acceso.

Un VFS especifica un interfaz (o un contrato) entre el kernel y un sistema de
archivos en concreto.

La mayora de usuarios de computadoras comprendern con mucha facilidad el
trmino archivo relacionndolo directamente con ejemplos tales como los
archivos de texto que se pueden generar con cualquier procesador de texto.
Una caracterstica de este tipo de archivos es que a mayor texto que almacena
el archivo, mayor es el espacio en disco que consume dicho archivo. Por
ejemplo, una lnea corta de texto ocupa menos espacio en disco que esa
misma lnea copiada cien veces.

Sin embargo al hablar de archivos virtuales las cosas son diferentes, pues
este tipo de archivos no consumen espacio en el disco duro, sino que se
almacenan en la memoria voltil, es decir la aquel tipo de memoria cuya
informacin se pierde al interrumpirse el flujo de corriente elctrica, esto es, la
memoria RAM
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
5.3 Componentes de un Sistema de Archivos
Tanenbaum (1997) expone los siguientes componentes de Archivos en su
investigacin:

Mtodos de Acceso. Se ocupan de la manera en que se tendr acceso a
la informacin almacenada en el archivo. Ejemplo: Secuencial, Directo,
indexado, etc.

Administracin de Archivos. Se ocupa de ofrecer los mecanismos para
almacenar, compartir y asegurar archivos, as como para hacer
referencia a ellos.

Administracin de Almacenamiento Secundario. Se ocupa de asignar
espacio para los archivos en los dispositivos de almacenamiento
secundario.

Mecanismos de Integridad. Se ocupan de garantizar que no se corrompa
la informacin de un archivo, de tal manera que solo la informacin que
deba estar en el, se encuentre ah.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
5.4 Organizacin Lgica y Fsica
Se refiere a las diferentes maneras en las que puede ser organizada la
informacin de los archivos, as como las diferentes maneras en que sta
puede ser accedida. Dado que hay 2 niveles de visin de los archivos (fsico y
lgico), se puede hablar tambin de 2 aspectos de organizacin de
archivos: Organizacin de archivos lgicos y de archivos fsicos.

De Archivos Lgicos. Contempla la organizacin desde el punto de vista lgico.
Por ejemplo, secuencial, directo, etc.

De Archivos Fsicos. Contempla la administracin de archivos desde la
perspectiva fsica, particularmente la organizacin del almacenamiento en disco
a nivel de pistas y sectores.

Organizacin lgica de los ficheros.
Definicin: la organizacin lgica de un fichero se refiere a la manera en que se
disponen sus registros dentro del almacenamiento secundario, en base a
realizar un acceso a nivel lgico.

Organizaciones comunes:
A. Acceso secuencial: la informacin del fichero se procesa en orden
consecutivo, por ello una operacin de lectura leer el siguiente registro y una
operacin de escritura aadir el registro al final del fichero.

B. Acceso directo: se accede a los registros de un fichero sin seguir un orden
particular, sino usando una clave. Si la clave es nica existen dos mtodos de
bsqueda:

1. Direccionamiento disperso: se usa una funcin que tomando como entrada la
clave devuelve la direccin fsica de ese registro;

2. Fichero indexado: se usa una tabla ndice en donde es significativo el orden
de las claves

Organizacin fsica de los ficheros.
Este tipo de organizacin muestra a su vez, 2 aspectos importantes: Mtodos
de Asignacin de Espacio Libre y Asignacin de Espacio de Almacenamiento
del Archivo.

Tambin J. L. Peterson; A. Silberschatz menciona los siguientes mtodos de
asignacin:

Mtodos de Asignacin de Espacio Libre
Un mtodo de asignacin de espacio libre determina la manera en que un
Sistema Operativo controla los lugares del disco que no estn siendo
ocupados. Para el control del espacio libre se puede utilizar como base alguno
de los mtodos tericos: Vector de Bits, Lista Ligada, Por Agrupacin y por
Contador.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Vector de Bits
Se tiene un arreglo de bits, el nmero de bits que tiene, representa cada sector
del disco, o sea que si los sectores 10 y 11 estn ocupados su representacin
ser:

Lista Ligada
Existe una cabecera en la que se tiene la direccin del primer sector vaci, ese
sector a su vez, tiene un apuntador al siguiente bloque, y as sucesivamente
hasta que se encuentre una marca indicando que ya no hay espacio libre.

Por Agrupacin
Es similar a la lista ligada, solo que en este se tiene por cada sector, un grupo
de apuntadores a varios espacios vacos, al final de cada bloque se tiene un
apuntador a otro grupo de apuntadores.

Por Contador
Aqu, por cada conjunto de bloques contiguos que estn vacos, se tiene por
cada apuntador, un nmero de inicio y el tamao del grupo de sectores vacos.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
5.5 Mecanismos de acceso a los Archivos
El trmino organizacin de ficheros se aplica a la forma en que se colocan los
datos contenidos en los registros sobre el soporte informtico (disco, cinta,..)
durante su grabacin.

Existen dos formas bsicas de organizacin de ficheros: secuencial y relativa.
En la organizacin secuencial los registros se van grabando unos a
continuacin de los otros, en el orden que se van dando de alta, mientras que
en la organizacin relativa los registros se graban en las posiciones que les
corresponda segn el valor que guarden en el campo clave.

El modo de acceso se refiere al procedimiento que se tiene que seguir para
poder situarse en un registro determinado para poder hacer una operacin de
lectura o grabacin del mismo. El modo de acceso puede ser secuencial o
directo. En el modo de acceso secuencial para llegar a un registro es
necesario pasar por todos los anteriores, mientras que en el modo de acceso
directo se puede llegar directamente a un registro conociendo nicamente el
valor del campo clave.

Al modo de acceso directo se puede llegar de varias formas:

La posicin que ocupa el registro dentro del fichero coincide con el contenido
de la clave.

Calculando la posicin que ocupa el registro en el fichero mediante una
transformacin del contenido del campo clave (acceso aleatorio - Hashing).

Mediante el uso de tablas de ndices. La localizacin de un registro se hace
buscando en la tabla de ndices el valor del campo clave y obtenemos la
posicin en que est grabado el registro dentro del fichero. (Acceso indexado -
Keyed).

La eleccin de una forma de organizacin determinada est en funcin del tipo
de aplicacin que le vamos a dar al fichero. Dos factores influyen directamente
en la seleccin: la memoria necesaria para almacenar los datos y la velocidad
de acceso a los mismos.

Ejemplo: Un fichero en el que los registros se actualicen todos juntos una vez al
mes, y el tiempo necesario para la actualizacin no sea importante, no puede
tener la misma organizacin que un fichero que se actualice todos los das
varias veces poniendo al da los datos que contienen sus registros y el tiempo
empleado para la actualizacin sea el menor posible.

Ficheros Con Organizacin Secuencial

1.- Caractersticas de la Organizacin Secuencial

Un fichero con organizacin secuencial es aquel en el que los registros se van
grabando uno a continuacin de otro, sobre el soporte informtico, sin dejar
huecos en medio.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin

En este tipo de ficheros existe, por tanto, una correspondencia total entre el
orden lgico y el orden fsico, si entendemos por orden lgico el orden en que
son dados de alta y recuperados los registros, y por orden fsico el orden en
que estn grabados los registros en el soporte.

Los registros normalmente estarn ordenados por el contenido de uno o ms
campos para hacer ms fcil el trabajo de bsqueda, insercin y borrado de
registros.

La organizacin secuencial es aconsejable para ficheros con un ndice de
utilizacin muy elevado y estable.


2.- Ventajas e Inconvenientes de la Organizacin Secuencial:

Podemos citar como ventajas:

1. Aprovecha al mximo el soporte, al no dejar huecos entre los registros.

2. Rpido acceso al registro siguiente. Por lo que se hace ideal cuando en cada
operacin de actualizacin o consulta se van a procesar la mayora de los
registros.

3. Se pueden utilizar cualquier tipo de registros: de longitud fija, variable o
indefinida.

4. Se pueden grabar en cualquier tipo de soporte, tanto en secuenciales como
direccionables.

5. Todos los lenguajes de programacin disponen de instrucciones para
trabajar con este tipo de ficheros.


Entre los inconvenientes destacaremos:

1. El nico modo de acceso es el acceso secuencial, por lo que para leer el
registro que ocupe la posicin n es necesario leer los n-1 registros anteriores.
Esto hace que este tipo de organizacin no sea adecuado para ficheros en los
que se necesita procesar frecuentemente registros aislados, es decir que
tengan un ndice de utilizacin bajo.

2. No se pueden insertar registros entre los que ya estn grabados. Si tenemos
el fichero ordenado por el contenido de un campo y queremos dar de alta un
registro, que segn ese orden debera ir entre dos registros que ya existen en
el fichero, es necesario copiar todo el fichero en uno nuevo, grabando en el
nuevo fichero todos los registros, insertando el registro que se quiere dar de
alta en la posicin que le corresponda. Otra posibilidad es ir dando de alta los
registros al final del fichero y a continuacin realizar una operacin de
reordenacin de todo el fichero.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin

3. Si el fichero est grabado en un soporte secuencia por ejemplo una cinta
magntica, para poder hacer modificaciones o borrado de registros es
necesario hacer una copia del fichero en un fichero nuevo. Si el soporte no es
secuencial las modificaciones se pueden hacer sobre el mismos registro, y el
borrado se puede hacer de forma lgica, es decir, mediante la grabacin de
una marca en el registro.



3.- Utilizacin de Ficheros con Organizacin Secuencial.

En el momento de utilizar los ficheros con organizacin secuencial tenemos
que tener en cuenta el soporte sobre el que estn grabados, pues algunas
operaciones que se pueden hacer en los soportes direccionables no se pueden
hacer en los soportes secuenciales, como pueden ser las modificaciones y
borrado lgico de registros.

El formato de las instrucciones que nos permiten manejar los datos contenidos
en un fichero con organizacin secuencial depender del lenguaje de
programacin con el que trabajemos. De forma general podemos resumir las
instrucciones empleadas en el manejo de este tipo de ficheros en las
siguientes:

Abrir (OPEN) Abrir un fichero para poder trabajar con sus
registros. Se puede abrir de tres formas:
o INPUT (I) - Slo para leer registros.
o OUTPUT (0) - Slo para escribir registros.
o INPUT-OUPUT (I-O) - Para leer y escribir.
o EXTEND (E) - Para aadir registros al final del fichero

Cerrar (CLOSE) Cerrar el fichero, cuando ya no se va trabajar
mas con sus registros.

Leer (READ) Pasar la informacin de un registro a la memoria
principal del ordenador para que el programa pueda trabajar con los
datos que contiene. Cada vez que se da una orden de leer se lee el
siguiente registro.

Escribir (WRITE) Graba en el soporte la informacin de un registro
con la informacin que tenga en la memoria principal.

Reescribir (REWRITE)
Graba sobre un registro que ya existe en el fichero. Antes de utilizar esta
instruccin se tiene que leer antes el registro que se va a reescribir con
una orden de leer (READ).

Para poder utilizar los datos del fichero el sistema operativo utiliza un indicador,
o puntero, que se coloca sealando al primer registro de datos del fichero,
cuando se da la orden de Abrir (OPEN), y se va desplazando, siempre en la
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
misma direccin, cada vez que se lee o graba un registro. La estructura del
fichero se completa con un registro de cabecera que contiene informacin
acerca del fichero y un registro que sirve de marca de final de fichero, o EOF
(EOF - End Of File), que el sistema utiliza para saber cual es el ltimo registro
del fichero. El registro de final de fichero (E.O.F.) se graba, por primera vez en
el momento de la creacin del fichero y se va desplazando cuando se aaden
nuevos registros al final del mismo.



Variantes De La Organizacin Secuencial.

Con el fin de mejorar las prestaciones de la organizacin secuencial surgen
una serie de organizaciones que son una variante de esta y que pueden ser
utilizados con soportes direccionables. Las ms empleadas son:

a) La organizacin secuencial indexada, en la que los registros con los datos se
graban en un fichero secuencialmente, pero se pueden recuperar con acceso
directo gracias a la utilizacin de un fichero adicional, llamado de ndices, que
contiene informacin de la posicin que ocupa cada registro en el fichero de
datos.

b) La organizacin secuencial encadenada, que nos permite tener los registros
ordenados segn un orden lgico diferente del orden fsico en el que estn
grabados gracias a la utilizacin de unos campos adicionales
llamados punteros.

Organizacin Secuencial-Indexada.

1.- Caractersticas de la Organizacin Secuencial-Indexada.

A los ficheros con este tipo de organizacin se les llama, tambin, ficheros
indexados, por que se basa en la utilizacin de ndices, que permiten el acceso
a un registro del fichero de forma directa, sin tener que leer los anteriores.
Estos ndices son similares a los de los libros. Si nos interesa leer un captulo
concreto podemos recurrir al ndice que nos dice en que pgina comienza, y
abrimos el libro por esa pgina, sin tener que mirar en todas las pginas
anteriores para localizarlo.

Las caractersticas ms relevantes de un fichero indexado, son las siguientes:

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
a) El diseo del registro tiene que tener un campo, o combinacin de campos,
que permita identificar cada registro de forma nica, es decir, que no pueda
haber dos registros que tengan la misma informacin en l. A este campo se le
llama campo clave y es el que va a servir de ndice. Un mismo fichero puede
tener ms de un campo clave, pero al menos uno de ellos no admitir valores
duplicados y se le llama clave primaria. A las restantes se les llama claves
alternativas.

b) Permiten utilizar el modo de acceso secuencial y el modo de acceso
directo para leer la informacin guardada en sus registros.

El modo de acceso directo se hace conociendo el contenido del campo clave
del registro que queremos localizar. Con esa informacin el sistema operativo
puede consultar el ndice y conocer la posicin del registro dentro del fichero.

En el modo de acceso secuencial los registros son ledos ordenados por el
contenido del campo clave, independientemente del orden en que se fueron
grabando (El orden lgico no es igual al orden fsico), debido a que el acceso a
los datos se hace a travs del ndice, que para hacer ms fcil la bsqueda de
los registros permanece siempre ordenado por el campo clave.

c) Solamente se puede grabar en un soporte direccionable. Ej.: disco
magntico. Si esto no fuera as no podra emplear el acceso directo.


2.- Estructura de los Ficheros con Organizacin Secuencial-Indexada.

Un archivo con organizacin secuencial indexada est formado por:

A) El archivo secuencial o rea de datos: Es el rea en la que se escriben los
registros cuando el archivo es creado el fichero.

Los registros de un fichero con organizacin secuencial-indexada se graban en
un soporte de almacenamiento directo, en secuencia ascendente, de acuerdo
con los valores de la clave y en pginas o bloques de longitud fija.

B) El rea de ndices es creada por el sistema al mismo tiempo que se van
almacenando los datos. Contiene una tabla que asocia las claves con las
direcciones de los registros en el rea de datos.

Cada entrada del rea de ndices est formada por el valor ms alto de la clave
de cada grupo de registros y un puntero con la direccin del primer registro del
grupo.

C) Un rea de Excedentes (o de overflow) donde se graban los registros que
no tienen sitio en el rea de datos. Los nuevos registros se insertan y quedan
enlazados entre s mediante punteros conservando el orden lgico que marca
la clave o ndice principal.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Del tratamiento de los ndices y punteros se encarga el sistema operativo por lo
que no va a crear problemas al usuario cuando maneja este tipo de ficheros. El
usuario sabe lo que sucede cuando solicita una consulta de un registro, pero no
sabe como se realiza internamente esa consulta.

3.- ndices A Varios Niveles.

Existen diferentes formas de manejar los ndices, dependiendo del sistema
operativo o el lenguaje de programacin con el que se trabaja. Las
organizaciones de ndices mas utilizadas en la prctica son la ISAM (Indexed
Sequential Access Method) y la VSAM (Virtual Storage Access Method).

Cuando el fichero de datos tiene muchos registros puede que el fichero de
ndices se haga demasiado largo y las bsquedas en l se vayan haciendo
lentas, ya que cuantos ms registros tenga, mas crece el tiempo necesario
para localizar un registro. Para evitar este problema se recurre a la utilizacin
de ndices a varios niveles, de forma que se sustituye un rea de ndices nica,
pero de m tamao grande, por varias reas de ndices de menor tamao donde
la bsqueda es ms rpida.

Para damos una idea de c como se organizaran los ndices a varios niveles
podemos emplear un ejemplo de un fichero, con organizacin ISAM, grabado
en un disco duro con un cierto nmero de platos. Podemos representar de
forma muy simplificada la posible estructura del almacenamiento del archivo
que constar de las siguientes reas de ndices:

1 Nivel: (ndice maestro) Seala el cilindro en que se encuentra almacenado el
registro que nos interesa.

2 Nivel: (ndice de cilindros) Seala en que pista est ese registro, dentro del
cilindro.

3 Nivel: (ndice de pista) Seala, dentro de la pista, en que bloque, o sector, se
encuentra el registro.


4.- Ventajas e Inconvenientes de la Organizacin Secuencial Indexada

La organizacin secuencial indexada permite el acceso directo a los registros,
sin los inconvenientes de la existencia de huecos como en la organizacin
directa, y el tratamiento secuencial de los registros, propio de la organizacin
secuencial.

Esta organizacin es muy utilizada, tanto para procesos en los que intervienen
pocos registros como para aquellos en los que se maneja el fichero completo.

Las principales ventajas:

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
1. Permite el acceso secuencial. Esto es muy interesante cuando la tasa de
actividad es alta. En el acceso secuencial, adems, los registros se leen
ordenados por el campo clave.

2. Permite el acceso directo a los registros. Realmente emula el acceso directo,
empleando para ello las tablas de ndices. Primero busca la clave en el rea de
ndices y luego va a leer al rea de datos en la direccin que le indica la tabla.

3. Se pueden actualizar los registros en el mismo fichero, sin necesidad de
crear un fichero nuevo de copia en el proceso de actualizacin. Permite tanto el
PROCESO POR LOTES (procesos en diferido que hay que preparar
previamente) como el PROCESO EN TIEMPO REAL (las actualizaciones de la
informacin se llevan a cabo en el momento en que se producen).


Inconvenientes:

1. Ocupa mas espacio en el disco que los ficheros secuenciales, debido al uso
del rea de ndices.

2. Tiene tendencia a que aumente el tiempo medio de acceso a los registros,
cuando se producen muchas altas nuevas con claves que hay que intercalar
entre las existentes, ya que aumenta el rea de overflow. Requiere una
reorganizacin peridica.

3. Solo se puede utilizar soportes direccionables.

4. Obliga a una inversin econmica mayor, por la necesidad de programas y,
a veces, m hardware mas sofisticado.



Organizacin Directa (Ramdom, Aleatoria, Relativa)


1.- Caractersticas de La Organizacin Directa.

La organizacin directa est basada en la independencia entre el orden en que
se dan de alta los registros y la posicin en la que se graban en el soporte. La
posicin en la que se graban los registros est en funcin de la informacin que
tenga el campo clave del registro.

En esta organizacin el espacio total disponible para el fichero se divide
en celdas destinadas cada una de ellas a contener un registro y slo uno. Las
celdas estn numeradas correlativamente y se puede acceder al contenido de
un registro, de forma directa, si conocemos la direccin relativa de la celda en
la que est grabado.

Esta organizacin slo es posible en soportes direccionables, pues el acceso a
los registros se hace sin necesidad de leer los anteriores. Es la organizacin
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
que tienen un menor tiempo de acceso a un registro, en acceso directo. Se
usan cuando el acceso a los datos de un registro se hace siempre empleando
la misma clave y la velocidad de acceso a un registro es lo que ms nos
importa.

Como queda dicho para poder localizar un registro es necesario conocer el
valor de la clave. A las tcnicas utilizadas para convertir el valor de la clave de
un registro C, en la direccin relativa de la celda del fichero en que va a estar
grabado D se le llama tcnicas de direccionamiento. El elegir una buena
tcnica de direccionamiento es fundamental en este tipo de organizacin.

A la hora de elegir una tcnica de direccionamiento debemos pedirle:

1) Que sea fcil de aplicar. Tenemos que tener en cuenta que en esta
organizacin es el usuario el que se encarga de calcular la posicin en la que
se van a guardar los registros y no como en los ficheros indexados que era el
sistema operativo el que se encargaba de esto.

2) Que deje el menor nmero de huecos posible. Se debe procurar que el
mtodo seleccionado nos proporcione valores entre 1 y n, siendo n el nmero
de celdas que tiene el fichero, sin dejar celdas vacas.

3) Que las claves de registros diferentes nos den direcciones diferentes.
Cuando dos o ms claves diferentes proporcionan, al aplicar la tcnica de
direccionamiento, la misma direccin se dice que produce sinnimos. Tambin
se dice que esos registros colisionan.

Cuando las claves de dos registros dieron lugar a un sinnimo (indican la
misma celda), slo uno de ellos puede ser almacenado en esa celda y tenemos
que tener previsto algn procedimiento para calcular la posicin en la que se
tiene que grabar el otro registro. Los mtodos ms empleados para el
tratamiento de sinnimos son los siguientes:

a) Almacenar el registro que colisiona en el primer hueco libre que se
encuentre a partir de la direccin que le corresponde, y que est ya ocupada. A
este mtodo se le conoce como bsqueda lineal o direccionamiento abierto.

b) Creando una zona especial del fichero en la que se grabarn todos los
registros que dieron lugar a un sinnimo. A esta zona del fichero se le suele
llamar rea de desbordamiento (overflow) o de excedentes. Este es el sistema
ms empleado.


Clasificacin de Las Tcnicas de Direccionamiento

El mayor obstculo para el uso de los archivos relativos es la necesidad de
identificar los registros lgicos por un nmero relativo de registro, cuando en
realidad el usuario los va a identificar por el valor de un campo del registro,
como puede ser el n de factura, el D.N.I. de una persona, etc. Para poder
transformar el valor de la clave en la direccin relativa del registro en el fichero
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
hay una gran cantidad de tcnicas de direccionamiento que podemos clasificar
en tres grupos:

- Direccionamiento directo
- Por asociacin
- Aleatorio (hashing)

A) Direccionamiento directo:

El caso ptimo de aplicacin de esta organizacin se da cuando las claves en
el fichero son numricas y toman valores de 1 a n sin huecos intermedios. En
este caso la clave k nos conducir a la celda k-sima del fichero pudiendo
acceder fcilmente a los datos de ste registro. El campo clave de cada
registro contiene su direccin en el fichero.
Ej.: fichero de facturas donde tomamos como clave el n de factura.

B) Direccionamiento por asociacin:

Los valores de la clave se almacenan en una tabla en memoria en la que cada
elemento asocia cada valor de la clave con la direccin relativa en la que est
almacenado el registro. Puesto que la tabla debe prever la inclusin de todas
las direcciones posibles del archivo, su principal inconveniente resulta
determinar su tamao y mantenerla ordenada por los valores de la clave.

Ejemplo: Clave
------ ------------
C1 1
C2 2
C3 3

C) Direccionamiento aleatorio (Hashing):

En este caso hay que buscar una funcin, a ser posible biunvoca, que
relacione los posibles valores de la clave con el conjunto de nmeros
correlativos de celda. Esta funcin consistir en realizar una serie de clculos
matemticos con el valor de la clave hasta obtener un nmero entre 1 y n,
siendo n el nmero de celdas que tiene el fichero.

El principal inconveniente que presenta este tipo de direccionamiento es el que
se pueden producir sinnimos ya que el nmero que se obtiene al aplicar los
clculos es un nmero aleatorio y puede que dos claves diferentes den como
resultado el mismo nmero, y eso nos obliga a tener previsto un mtodo para el
tratamiento de los sinnimos. En los dos tipos anteriores nunca se producen
sinnimos.


Ventajas e Inconvenientes de La Organizacin Directa
Podemos citar como ventajas:

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
1. Al emplear un modo de acceso directo son los ficheros que permiten acceder
de la forma ms rpida posible a un registro cualquiera del fichero. Por tanto es
la organizacin ideal para los procesos en los que el tiempo de acceso a los
registros es lo ms importante, siempre y cuando el acceso se haga siempre
por el campo clave.

El caso ms favorable para utilizar la organizacin directa es cuando las claves
son numricas y permiten utilizar el direccionamiento directo.

2. Permite la actualizacin de los registros en el mismo fichero, sin necesidad
de copiar el fichero.

3. Permite realizar procesos de actualizacin en tiempo real.


Entre los inconvenientes destacan:

1. La relacin entre clave y direccin (N de registro) la define el programador y
slo l es responsable de manejarla correctamente. El acceso a un registro se
hace indicndole al sistema su direccin relativa dentro del fichero (n de
registro) y la comprobacin de s el registro ledo es o no el que buscamos la
tiene que hacer el programador, el sistema operativo no nos avisa de posibles
errores que se produzcan el clculo de la direccin.

2. Cuando el rango de claves posibles es muy superior al de claves que
realmente estn grabadas en el fichero, habr mucho espacio desaprovechado
puesto que tenemos que reservar espacio a todos y cada uno de los registros
tericamente posibles. Pueden existir celdas vacas.

3. El algoritmo de direccionamiento debe garantizamos que no se nos
producirn dos direcciones iguales para dos valores de clave distintos. En el
caso de no elegir un buen mtodo de direccionamiento puede que la aparicin
de sinnimos haga complicado el acceso a algunos registros debido a que
tendramos que emplear un mtodo de tratamiento de sinnimos que debe
controlar el programador.

4. No permite el acceso secuencial a los registros por otro orden que no sea el
orden en que estn grabados en el soporte.

5. Slo se puede utilizar un campo clave para acceder a los registros.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
5.6 Manejo de Espacio de Memoria Secundaria
La gestin de la memoria secundaria se realiza mediante los sistemas de
ficheros. Los datos en la memoria secundaria se almacenan en forma de
ficheros o archivos.

El S.O. determina en qu zonas de la Memoria secundaria se pueden
almacenar datos

La memoria secundaria requiere que la computadora use sus canales de
entrada/salida para acceder a la informacin y se utiliza para almacenamiento a
largo plazo de informacin persistente.

Que sin embargo, la mayora de los sistemas operativos usan los dispositivos
de almacenamiento secundario como rea de intercambio para incrementar
artificialmente la cantidad aparente de memoria principal en la computadora. La
memoria secundaria tambin se llama "de almacenamiento masivo".

Habitualmente, la memoria secundaria o de almacenamiento masivo tiene
mayor capacidad que la memoria primaria, pero es mucho ms lenta. En las
computadoras modernas, los discos duros suelen usarse como dispositivos de
almacenamiento masivo. El tiempo necesario para acceder a un byte de
informacin dado almacenado en un disco duro es de unas milsimas de
segundo (milisegundos). En cambio, el tiempo para acceder al mismo tipo de
informacin en una memoria de acceso aleatorio se mide en mil-millonsimas
de segundo (nanosegundos).

Los espacios de direcciones involucrados en el manejo de la memoria son de
tres tipos:

Direcciones fsicas: Son aquellas que referencian alguna posicin en la
memoria fsica.

Direcciones lgicas: Son las direcciones utilizadas por los procesos.
Sufren una serie de transformaciones, realizadas por el procesador (la
MMU), antes de convertirse en direcciones fsicas.

Direcciones lineales: Direcciones lineales se obtienen a partir de
direcciones lgicas tras haber aplicado una transformacin dependiente
de la arquitectura.
Los programas de usuario siempre tratan con direcciones virtuales,
nunca ven las direcciones fsicas reales.


Dado que la memoria principal es voltil y muy pequea para almacenar todos
los datos y los programas en forma permanente, el sistema de cmputo provee
memoria secundaria para respaldar la memoria principal.

La mayora de las computadoras modernas utilizan discos como medio de
almacenamiento en lnea, para programas y datos.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
El sistema operativo es responsable de las siguientes actividades respecto a la
administracin de la memoria secundaria:

Administracin del espacio de memoria libre.
Alojamiento de memoria
Planificacin del disco


Organizar el almacenamiento de datos en memoria secundaria
Sabemos que en los ordenadores cualquier cosa se almacena en forma de
tiras binarias, compuestas por unos y ceros. La msica, fotos, documentos, e
incluso programas no son ms que enormes colecciones de 1 y 0.
Para hacer uso de ello, es necesario que estas tiras de 1 y 0 que representan
datos se almacenen en la memoria principal, junto con los programas que los
gestionan. Pero la memoria principal es limitada y cara comparado con otro tipo
de memoria: la secundaria es decir, discos duros, disquetes, CD, dvd,
memorias flash, etc.

Estos dispositivos de memoria secundaria tienen en general un coste por bit
muchsimo menor que el de la memoria principal, pero son mucho ms lentos.
Adems, sus contenidos perduran aunque no dispongan de corriente elctrica
(cosa que no ocurre con la memoria principal).
Pues bien, el S.O. es el encargado de gestionar estos dispositivos, que son
muy distintos entre s, de tal manera que los programas y, en ltima instancia,
los usuarios tengan una experiencia similar con todos ellos. Bsicamente, el
S.O. organiza la informacin en el interior de los dispositivos de memoria
secundaria mediante un sistema de ficheros y directorios.

Organizando la informacin en ficheros se logra que dispositivos heterogneos
tengan un comportamiento similar.
Cada S.O. utiliza uno o varios sistemas de ficheros. Por ejemplo, FAT o NTFS,
utilizados por Windows; EXT2 o EXT3, utilizado por Linux; ISO-9660, que es un
sistema utilizado por los CD-ROM, etc.

Gestionar la carga de ejecutables desde la memoria secundaria a la principal
Con todos los ficheros que puede haber en un dispositivo de almacenamiento
secundario, podemos hacer dos grandes grupos:

Los que contienen datos
Los que contienen cdigo ejecutable

En el primer grupo podemos incluir cualquier fichero que contenga informacin
capaz de ser manipulada por los programas de aplicacin. Por ejemplo,
imgenes GIF o JPG, sonido MP3, ASF, AU video AVI, MPG
documentos de texto de Word, de OpenOffice, de WordPerfect, Hojas de
clculo, bases de datos o cualquier otro tipo de dato imaginable. Hay muchos
ficheros en cualquier disco duro que se pueden incluir en este grupo. Algunos
de ellos, ni siquiera los manejamos directamente. Las aplicaciones se encargan
de manipularlos sin necesidad de que les prestemos atencin ninguna.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
En el segundo grupo se incluyen todos aquellos ficheros que contienen cdigo
que la CPU debe interpretar: son los que conforman los programas y
aplicaciones. Ejemplo de ello pueden ser los EXE o DLL de Windows.
Pues bien, cuando iniciamos un programa, realmente le estamos pidiendo al
S.O. que entregue a la CPU una serie de rdenes almacenadas en uno o
varios ficheros. Esta accin es ms complicada de lo que parece, porque en los
SO actuales, normalmente puede haber en ejecucin ms de un programa a la
vez. Pues bien, es el S.O. el que carga el cdigo desde la memoria
secundaria a la principal, haciendo todos los preparativos necesarios para
recibir al nuevo programa.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
5.7 Modelo Jerrquico
A este modelo se le llama rbol ya que se usa una estructura de rbol invertida
con las races en la parte superior del diseo para su representacin. Es similar
al modelo en red ya que los datos se representan mediante registros llamados
nodos y las relaciones se suelen llamar lazos o enlaces. Sus caractersticas
son:

Una coleccin de arbole forman una BD
Padre es un nodo vinculado a otros de nivel inferior
Gemelos son los nodos al mismo nivel y tienen el mismo padre
Hojas son los nodos que no tienen hijos
Altura es la cantidad de niveles
Camino son las lneas que unen los nodos no puede haber mas de un
camino al mismo sitio o nodo
Rama es un camino que termina en una hoja
Familia es el conjunto de padres e hijos, etc.
Momento es el nmero total de nodos en un rbol
Peso es la cantidad de hojas que tiene el rbol

Un sistema de archivos tiene directorios que asocian un nombre de archivo a
cada archivo, usualmente conectando el nombre de archivo a un ndice en una
tabla de asignacin de archivos de algn tipo (como FAT en sistemas de
archivos MS-DOS o los i-nodos de los sistemas Unix).

La estructura de directorios suele ser jerrquica, ramificada o "en rbol",
aunque en algn caso podra ser plana. En algunos sistemas de archivos los
nombres de archivos son estructurados, con sintaxis especiales para
extensiones de archivos y nmeros de versin. En otros, los nombres de
archivos son simplemente cadenas de texto y los meta datos de cada archivo
son alojados separadamente.

En los sistemas de archivos jerrquicos, usualmente, se declara la ubicacin
precisa de un archivo con una cadena de texto llamada "ruta" (o path en
ingls). La nomenclatura para rutas vara ligeramente de sistema en sistema,
pero mantienen por lo general una misma estructura. Una ruta viene dada por
una sucesin de nombres de directorios y subdirectorios, ordenados
jerrquicamente de izquierda a derecha y separados por algn carcter
especial que suele ser una barra ('/') o barra invertida ('\') y puede terminar en
el nombre de un archivo presente en la ltima rama de directorios especificada.

Los archivos son almacenados por medio de directorios, esta clasificacin se
de acuerdo a la conveniencia del usuario o de la empresa. La estructura tiene
una forma de rbol con raz, este mtodo es el ms utilizado debido a que la
revisin o bsqueda se realiza de forma sencilla.
Para acceder a los archivos que se almacenan en un sistema jerrquico, el
usuario debe indicar el o los directorios que se deben recorrer para localizar el
archivo deseado, a esto se le denomina ruta de acceso del archivo. La ruta de
acceso puede ser de dos formas:

Ruta absoluta.- Este tipo de ruta de acceso inicia siempre con una diagonal
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
invertida \
C:\Edit c:\SOS\sistemas\report.txt

Ruta relativa.- Este tipo de ruta de acceso realiza la bsqueda del archivo en
el directorio de trabajo actual, si el archivo no se localiza aqu, el S.O. lo
buscar en los directorios especificados en el PATH de un archivo con
extensin .BAT.
C:\Edit report.txt


Estructura del sistema de ficheros.
El nombre simblico de un fichero puede estar formado por una raz y una
extensin.

Un directorio es una estructura que permite organizar los ficheros de un
sistema.

Los nombres simblicos de los ficheros deben ser nicos dentro del directorio.
Para identificar un fichero es necesario dar su direccin completa partiendo del
directorio raz (pathname o ruta de acceso). (Ejemplo:
\Directorio1\Directorio3\Fichero4)



Conceptos:
1. Directorio de trabajo (working directory o directorio activo).
Se puede dar la direccin de un fichero a partir del directorio de trabajo (ruta de
acceso relativa). (Ejemplo: si el directorio de trabajo es Directorio1
Directorio3\Fichero4)

2. Lista de bsqueda.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
A cada proceso se le asigna una lista de direcciones de directorios, de forma
que si el proceso hace referencia a un fichero y este no esta en su directorio de
trabajo, se busca en los directorios que indica dicha lista de bsqueda.

3. Ficheros que hacen referencia a dispositivos de E/S.

4. Enlace (Link).
Es un mecanismo que permite que un determinado fichero se vea en dos
puntos distintos de la estructura sin necesidad de que existan dos copias del
mismo fichero




Estructura interna de un directorio.
Un directorio se implementa generalmente mediante una tabla, donde cada fila
corresponde a uno de los elementos que cuelga de ese directorio. Con esta
tabla se puede obtener:

Conocimiento sobre los elementos que dependen del directorio;

Acceso a un elemento directamente: si el elemento es un directorio se
obtendr la direccin donde comienza la tabla que lo representa; en
caso de que sea un fichero se obtendr la direccin de comienzo de su
tabla de ndices o la direccin del primer bloque del fichero, dentro de la
FAT o directamente al bloque del disco que lo contiene;

Localizacin de un fichero o directorio dada su ruta de acceso: se
comienza buscando en la tabla del directorio raz la direccin de la
segunda referencia del pathname y as sucesivamente hasta hallar el
componente requerido o producirse un error debido a que alguna de las
referencias no se encuentren en sus respectivas tablas.

En dicha tabla se guarda informacin esencial de cada uno de los elementos:
tamao del fichero, fecha de creacin y de ltimo acceso, tipo de fichero, etc.

Por ejemplo, UNIX solo almacena el nombre simblico del fichero y el nmero
de i-node, ya que adems gestiona la tabla de i-nodes donde guarda la
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
informacin esencial de cada fichero: tamao, propietario del fichero y las
direcciones para localizar los bloques de datos del fichero en el disco. Existen
trece direcciones que se ajustan al siguiente



La Jerarqua nos lleva a una divisin de la direccin a memoria, donde
encontramos el bloque en el nivel de la jerarqua y un indicador del elemento
en el bloque.

Los niveles de son:

Nivel 1: Memoria cach: es una clase de memoria RAM esttica de acceso
aleatorio y alta velocidad.

Nivel 2: Memoria Principal: es donde son ejecutados los programas y procesos
de una computadora y es el espacio real que existen en memoria para que se
ejecuten los procesos.

Nivel 3: Memoria virtual: divide la memoria en bloques y los va asignando a los
diferentes procesos. Adems, de este modo, no es necesario tener todo el
cdigo del programa en ejecucin en la memoria (nos bastan ciertos bloques).
Asimismo, podemos ejecutar programas de tamao ms grande que la
memoria principal. Todo esto nos permite una mayor cantidad de procesos
simultneos en memoria.
INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
5.8 Mecanismos de Recuperacin en Caso de Falla
Debido a que los archivos se mantienen tanto en memoria principal como en el
disco, debemos asegurarnos de que un fallo del sistema no de por resultado la
perdida de datos o inconsistencia en los mismos.

La destruccin de la informacin, ya sea accidental o intencional, es una
realidad y tiene distintas causas:

Fallas de hardware y de software.
Fenmenos meteorolgicos atmosfricos.
Fallas en el suministro de energa.
Incendios e inundaciones.
Robos, vandalismo (incluso terrorismo).
Etc.

Esta posible destruccin de la informacin debe ser tenida en cuenta por:

Los sistemas operativos en general.
Los sistemas de archivos en particular.

Una tcnica muy usada para asegurar la disponibilidad de los datos es realizar
respaldos peridicos:

Hacer con regularidad una o ms copias de los archivos y colocarlas en
lugar seguro.

Todas las actualizaciones realizadas luego del ltimo respaldo pueden
perderse.

Otra tcnica es pasar todas las transacciones a un archivo, copindolas en otro
disco:
Genera una redundancia que puede ser costosa.
En caso de fallas en el disco principal, puede reconstruirse todo el
trabajo perdido si el disco de reserva no se da tambin.

Tambin existe la posibilidad del respaldo incremental:
Durante una sesin de trabajo los archivos modificados quedan
marcados.
Cuando un usuario se retira del sistema (deja de trabajar), un proceso
del sistema efecta el respaldo de los archivos marcados.
Se debe tener presente que es muy difcil garantizar una seguridad
absoluta de los archivos.

El mtodo correcto de manejar fallos consiste bsicamente en detectarlos a
tiempo y de forma correcta. La inclusin de equipos de test en el sistema es
esencial para mantener esta capacidad de monitorizacin.

INSTITUTO TECNOLGICO DE VERACRUZ
SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS
Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
En cualquier caso, la cada total o parcial del sistema se puede subsanar en
parte si hay puntos de restauracin del sistema (chkpt). Esta posibilidad
aumenta la disponibilidad de recuperacin en caso de fallos.

Un Caso Prctico
Los diseadores de Windows (Microsoft, 2000) disearon un nuevo sistema de
archivos, el sistema de archivos de W2K (NTFS), que cumple requisitos de
estaciones de trabajo y servidores.

La esencia de recuperacin, est en el registro. Cada operacin que modifica el
sistema de archivos se trata como una transaccin, se registra en un archivo de
registro. Por medio del registro, una transaccin parcialmente completada en el
momento de la cada del sistema, puede rehacerse o deshacerse ms tarde,
cuando se recupere el sistema.

Pasos a dar para asegurar la recuperabilidad:

NTFS primero lleva al registro del sistema de archivo para grabar en el
archivo de registro de la cach, cualquier transaccin que modifique la
estructura del volumen.
NTFS modifica el volumen (en la cach).
El gestor de cach llama al registro del sistema de archivos para
indicarle que lleve el archivo de registro al disco.
Una ves que el archivo de registro actualizado est seguro en el disco, el
gestor de cach lleva los cambios del volumen al disco.

Vous aimerez peut-être aussi