Vous êtes sur la page 1sur 64

Instituto Tecnológico de San Juan del Río Sistemas Operativos

Sistemas

UNIDAD I INTRODUCCION

I.- Introducción a los sistemas Operativos

El sistema operativo es componente que hace funcionar a una computadora es un intermediario entre las peticiones de los usuarios y los
programas , administra y opera el hardware de la computadora, lee y escribe información hacia y desde las unidades de disco.

Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computación destinado a muchas tareas entre
las que destaca la administración eficaz de sus recursos.

Comienza a trabajar cuando en memoria se carga un programa específico y aun antes de ello, que se ejecuta al iniciar el equipo, o al
iniciar una máquina virtual, y gestiona el hardware de la máquina desde los niveles más básicos, brindando una interfaz con el usuario.

Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos electrónicos que utilicen microprocesadores para
funcionar, ya que gracias a éstos podemos entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de
DVD, autoradios, computadoras, agendas electrónicas, dispositivos de conectividad ,etc).

Existen 2 tipos de sistemas operativos:

a) Sistema basado en caracteres: son aquellos que reciben comandos desde el prompt de la computadora a:\ ó c:\ y responden a ella
ejecutando una tarea específica.

b) Sistema de interfaz gráfico: son aquellos que utilizan el mouse como dispositivo de señalización que permite seleccionar pequeños
símbolos o dibujos que representan alguna tarea a realizar.

Sistemas Operativos más Comunes

MS-DOS (Microsoft), OS/2 (IBM warp, server), Solaris (Sun Microsystem /Oracle), Windows (versiones Vista, Seven, Server 2003, Server
2008), Mac OS X (Leopard) , Linux (red Hat, Ubuntu, Fedora, Suse, etc.), HP-UX, etc.

Elaboró: MGTI Rosana Ayala Landeros 1


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

ACTIVIDAD DE APRENDIZAJE: Identificar los Sistemas Operativos más utilizados en la actualidad y su fabricante
ACTIVIDAD DE APRENDIZAJE: ¿y el futuro de los sistemas operativos?

1.1 Concepto de Sistema Operativo


Un sistema operativo es un conjunto de programas o software, destinado a permitir la comunicación entre el usuario y la máquina de forma
cómoda y eficiente; se encarga de gestionar los recursos del ordenador, esto incluye la gestión del hardware desde los niveles más
básicos.

1.2Funciones de un S.O
Un sistema operativo se encarga de realizar funciones básicas para la gestión de un sistema informático, estas funciones son:

· Implementación de una interfaz de usuario. El medio por el cual interactúan usuario/sistema.


· Administración de recursos. Gestiona el óptimo manejo de los recursos del sistema.
· Administración de archivos. Controla la forma en que los archivos se almacenan física y lógicamente.
· Administración de tareas. Gestiona los procesos que se ejecutan o que se ejecutaran en el procesador.
· Servicio de soporte y utilidades. Asistencia y gestión de programas utilitarios del sistema.

1.3. Evolución de los S.O

ACTIVIDAD DE APRENDIZAJE: Enlistar los sucesos que han permitido evolucionar los diferentes SO

1.4Clasificación de los S.O.


Clasificación Según su función:
§ Sistema Operativo Monotareas
§ Sistema Operativo Multitareas
§ Sistema Operativo Monousuario
§ Sistema Operativo Multiusuario
§ Tiempo real
§ Tiempo compartido
§ Secuencia por lotes

Elaboró: MGTI Rosana Ayala Landeros 2


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Sistema Operativo Monotareas. Los sistemas operativos monotareas son más primitivos, es decir, solo pueden manejar un proceso en
cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora esta imprimiendo un documento,
no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.

Sistema Operativo Multitareas. Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una
computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. Es un tipo muy simple de multitarea en el que dos
o más aplicaciones se cargan al mismo tiempo, pero en el que solo se está procesando la aplicación que se encuentra en primer plano (la
que ve el usuario). Para activar otra tarea que se encuentre en segundo plano, el usuario debe traer al primer plano la ventana o pantalla
que contenga esa aplicación. En la multitarea cooperativa, la que se utiliza en el sistema operativo Macintosh, las tareas en segundo plano
reciben tiempo de procesado durante los tiempos muertos de la tarea que se encuentra en primer plano (por ejemplo, cuando esta
aplicación está esperando información del usuario), y siempre que esta aplicación lo permita. En los sistemas multitarea de tiempo
compartido, cada tarea recibe la atención del microprocesador durante una fracción de segundo. Para mantener el sistema en orden,
cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho más lento
que la velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultáneas.

Sistema Operativo Monousuario. Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las
limitaciones creadas por el hardware, los programas o el tipo de aplicación que se esté ejecutando. Estos tipos de sistemas son muy
simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se está utilizando, esto quiere decir, que las
instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y están orientados principalmente por los
microcomputadores.

Sistema Operativo Multiusuario. Es todo lo contrario a monousuario; y en esta categoría se encuentran todos los sistemas que cumplen
simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean
especialmente en redes. En otras palabras consiste en el fraccionamiento del tiempo (timesharing).

Secuencia por Lotes. La secuencia por lotes o procesamiento por lotes en microcomputadoras, es la ejecución de una lista de
comandos del sistema operativo uno tras otro sin intervención del usuario. En los ordenadores más grandes el proceso de recogida de
programas y de conjuntos de datos de los usuarios, la ejecución de uno o unos pocos cada vez y la entrega de los recursos a los usuarios.
Procesamiento por lotes también puede referirse al proceso de almacenar transacciones durante un cierto lapso antes de su envío a un
archivo maestro, por lo general una operación separada que se efectúa durante la noche.

Elaboró: MGTI Rosana Ayala Landeros 3


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Los sistemas operativos por lotes (batch), en los que los programas eran tratados por grupos (lote) en ves de individualmente. La función
de estos sistemas operativos consistía en cargar en memoria un programa de la cinta y ejecutarlo. Al final este, se realizaba el salto a una
dirección de memoria desde donde reasumía el control del sistema operativo que cargaba el siguiente programa y lo ejecutaba. De esta
manera el tiempo entre un trabajo y el otro disminuía considerablemente.

Tiempo Real. Un sistema operativo en tiempo real procesa las instrucciones recibidas al instante, y una vez que han sido procesadas
muestra el resultado. Este tipo tiene relación con los sistemas operativos monousuarios, ya que existe un solo operador y no necesita
compartir el procesador entre varias solicitudes. Su característica principal es dar respuestas rápidas; por ejemplo en un caso de peligro
se necesitarían respuestas inmediatas para evitar una catástrofe.

Tiempo Compartido. El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por más de una persona al
mismo tiempo. El tiempo compartido ejecuta programas separados de forma concurrente, intercambiando porciones de tiempo asignadas
a cada programa (usuario). En este aspecto, es similar a la capacidad de multitareas que es común en la mayoría de los
microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con el acceso de varios usuarios
a computadoras más grandes y a organizaciones de servicios, mientras que la multitarea relacionada con las microcomputadoras implica
la realización de múltiples tareas por un solo usuario.

Clasificación de los sistemas operativos según su estructura: (niveles o estratos de diseño)


· Sistemas operativos monolíticos o modular
· Sistemas operativos por Microkernel
· Sistemas por capas.
· Modelo cliente-servidor

Estructura modular.- Sistemas operativos cuya característica principal consiste en que carece de estructura ya que el sistema
operativo se escribe como una colección de procedimientos, los cuales pueden llamar a otros cada vez que así se requiera. Cuando se
usa esta técnica, cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y resultados y cada uno
de ellos es libre de llamar a cualquier otro, si este ultimo proporciona cierto cálculo útil para el primero. Sin embargo incluso en este
tipo de sistemas es posible tener al menos algo de estructura.

Elaboró: MGTI Rosana Ayala Landeros 4


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Los servicios (o llamadas al sistema) que proporciona el sistema operativo se solicitan colocando los parámetros en lugares bien definidos,
como en los registros o en la pila, para después ejecutar una instrucción especial de trampa de nombre "llamada al núcleo" o "llamada al
supervisor". Esta llamada consta de los siguientes pasos:

1. El programa del usuario es atraído hacia el núcleo.


2. El sistema operativo determina él número del servicio solicitado
3. El sistema operativo localiza y llama al proceso correspondiente al servicio
4. El control regresa al programa del usuario.

Estructura por microkernel.- En este tipo de estructura, las funciones centrales son controladas por un núcleo que es llamado kernel y la
interfaz del usuario es controlada por el llamado entorno shell. Para ver todo esto mucho más claro, pondremos un ejemplo. En el sistema
operativo DOS, su parte más importante es un programa llamado COMMAND.COM el cual se descompone en dos partes:

El kernel, que se mantiene en memoria en todo momento, contiene el código máquina de bajo nivel para manejar la administración del
hardware para otros programas que necesitan estos servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el
interprete de comandos.

Existen muchos shells diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a
partir de la versión 5.0 incluyó un Shell llamado DOS SHELL.

ACTIVIDAD DE APRENDZAJE: Enlistar tipos de shells

Estructura por capas.-También llamado estructura por anillos concéntricos. Esta estructura consiste en organizar el sistema operativo
como una jerarquía de capas, las cuales están construidas sobre la inmediata inferior.

Una generalización más avanzada del concepto de capas se presento en el sistema MULTICS. En lugar de capas, MULTICS estaba
organizado como una serie de anillos concéntricos, siendo los anillos interiores los privilegiados. Cuando un procedimiento de un anillo

Elaboró: MGTI Rosana Ayala Landeros 5


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

exterior deseaba llamar a un procedimiento de un anillo interior, debió hacer el equivalente a una llamada al sistema
Mientras que el esquema de capas de THE era en realidad un apoyo al diseño, debido a que todas las partes del sistema estaban ligadas
entre si en un solo programa objeto, en MULTICS, el mecanismo de anillos estaba más presente durante el tiempo de ejecución y era
reforzado por el hardware. La ventaja del mecanismo de anillos es su facilidad de extensión para estructurar subsistemas del usuario.

Estructura cliente-servidor.-Una tendencia de los sistemas operativos actuales es la de explotar la idea de mover el código a capas
superiores y eliminar la mayor parte posible del sistema operativo para mantener un núcleo mínimo. El punto de vista usual es el de
implantar la mayoría de las funciones del sistema operativo en los procesos del usuario. Para solicitar un servicio, como la lectura de un
bloque de cierto archivo, un proceso del usuario (denominado proceso cliente) envía la solicitud a un proceso servidor, que realiza
entonces el trabajo y regresa la respuesta.

La función principal que hace el núcleo es controlar la comunicación entre los clientes y los servidores. Al separar el sistema operativo en
partes, cada una de ellas controla una faceta del sistema, como el servicio a archivos, servicios a procesos, servicio a terminales o servicio
a la memoria, cada parte es pequeña y controlable. Además como todos los servidores se ejecutan como procesos en modo usuario y no
en modo núcleo, no tienen acceso directo al hardware. En consecuencia si hay un error en el servidor de archivos, éste puede fallar, pero
esto no afectará en general a toda la máquina.

·Ventajas: - Flexibilidad. Cada proceso servidor se encarga de una función, siendo cada parte más pequeña y flexible y facilita
el desarrollo y la depuración de cada proceso servidor.

· Desventajas: -Mayor sobrecarga al manejar servicios de los sistemas operativos monolíticos, la razón es que los componentes
están en espacios de memoria distintas por lo que su activación requiere mayor tiempo.

1.6 Núcleo de un S. O.
En informática, el núcleo (anglicismo kernel, de raíces germánicas como kern) es la parte fundamental de un sistema operativo. Es el
software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma más básica, es el
encargado de gestionar recursos, a través de servicios de llamada al sistema.

Como hay muchos programas y el acceso al hardware es limitado, el núcleo también se encarga de decidir qué programa podrá hacer uso
de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser

Elaboró: MGTI Rosana Ayala Landeros 6


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la
complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso para el programador.

Funciones generalmente ejercidas por un núcleo: Los núcleos tienen como funciones básicas garantizar la carga y la ejecución de los
procesos, las entradas/salidas y proponer un interfaz entre el espacio núcleo y los programas del espacio del usuario.

Aparte de las funcionalidades básicas, el conjunto de las funciones de los puntos siguientes (incluidos los pilotos materiales, las funciones
de redes y sistemas de archivos o los servicios) necesariamente no son proporcionados por un núcleo de sistema de explotación. Pueden
establecerse estas funciones del sistema de explotación tanto en el espacio usuario como en el propio núcleo. Su implantación en el
núcleo se hace en el único objetivo de mejorar los resultados. En efecto, según la concepción del núcleo, la misma función llamada desde
el espacio usuario o el espacio núcleo tiene un coste temporal obviamente diferente. Si esta llamada de función es frecuente, puede
resultar útil integrar estas funciones al núcleo para mejorar los resultados.

Hay que señalar que estas técnicas son utilizadas para atenuar defectos de los núcleos como los elevados estados. En la medida de lo
posible, es preferible escribir un programa informático fuera del núcleo, en el espacio usuario. En efecto, el espacio del núcleo, supone la
ausencia de mecanismos como la protección de la memoria. Es pues más complejo escribir un programa informático que funciona en el
espacio del núcleo, que en el espacio usuario; los errores y faltas de seguridad pueden desestabilizar el sistema.

Hay cuatro grandes tipos de núcleos:


· Los núcleos monolíticos facilitan abstracciones del hardware subyacente realmente potentes y variadas.
· Los micronúcleos (microkernel) proporcionan un pequeño conjunto de abstracciones simples del hardware, y usan las aplicaciones
llamadas servidores para ofrecer mayor funcionalidad.
· Los núcleos híbridos (micronúcleos modificados) son muy parecidos a los micronúcleos puros, excepto porque incluyen código
adicional en el espacio de núcleo para que se ejecute más rápidamente.
· Los exonúcleos no facilitan ninguna abstracción, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias
al acceso directo o casi directo al hardware.

Micronúcleos: El enfoque micronúcleo consiste en definir una abstracción muy simple sobre el hardware, con un conjunto de primitivas o
llamadas al sistema que implementan servicios del sistema operativo mínimos, como la gestión de hilos, el espacio de direccionamiento y
la comunicación entre procesos.

Elaboró: MGTI Rosana Ayala Landeros 7


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

El objetivo principal es la separación de la implementación de los servicios básicos y de la política de funcionamiento del sistema. Por
ejemplo, el proceso de bloqueo de E/S se puede implementar con un servicio en espacio de usuario ejecutándose encima del micronúcleo.
Estos servicios de usuario, utilizados para gestionar las partes de alto nivel del sistema, son muy modulares y simplifican la estructura y
diseño del núcleo. Si falla uno de estos servidores, no se colgará el sistema entero, y se podrá reiniciar este módulo independientemente
del resto. Sin embargo, la existencia de diferentes módulos independientes origina retardos en la comunicación debido a la copia de
variables que se realiza en la comunicación entre módulos.

“El núcleo opera como asignador de recursos para cualquier proceso que necesite hacer uso de las facilidades de cómputo”

Núcleos monolíticos en contraposición a micronúcleos: Frecuentemente se prefieren los núcleos monolíticos frente a los
micronúcleos debido al menor nivel de complejidad que comporta el tratar con todo el código de control del sistema en un solo espacio de
direccionamiento. Por ejemplo, XNU, el núcleo de Mac OS X, está basado en el núcleo Mach 3.0 y en Free BSD, en el mismo espacio de
direccionamiento para disminuir la latencia que comporta el diseño de micronúcleo convencional.

Los núcleos monolíticos suelen ser más fáciles de diseñar correctamente, y por lo tanto pueden crecer más rápidamente que un sistema
basado en micronúcleo, pero hay casos de éxito en ambos bandos. Los micronúcleos suelen usarse en robótica embebida o
computadoras médicas, ya que la mayoría de los componentes del sistema operativo residen en su propio espacio de memoria privado y
protegido. Esto no sería posible con los núcleos monolíticos, ni siquiera con los modernos que permiten cargar módulos del núcleo.

Núcleos híbridos.- Los núcleos híbridos fundamentalmente son micronúcleos que tienen algo de código «no esencial» en espacio de
núcleo para que éste se ejecute más rápido de lo que lo haría si estuviera en espacio de usuario. Éste fue un compromiso que muchos
desarrolladores de los primeros sistemas operativos con arquitectura basada en micronúcleo adoptaron antes que se demostrara que los
micronúcleos pueden tener muy buen rendimiento. La mayoría de sistemas operativos modernos pertenecen a esta categoría, siendo el
más popular Microsoft Windows. XNU, el núcleo de Mac OS X, también es un micronúcleo modificado, debido a la inclusión de código del
núcleo de Free BSD en el núcleo basado en Mach.

Existe confusión en el término «núcleo híbrido» con los núcleos monolíticos que pueden cargar módulos después del arranque, lo que es
un error. «Híbrido» implica que el núcleo en cuestión usa conceptos de arquitectura o mecanismos tanto del diseño monolítico como del
micronúcleo, específicamente el paso de mensajes y la migración de código «no esencial» hacia el espacio de usuario, pero manteniendo
cierto código «no esencial» en el propio núcleo por razones de rendimiento.

Elaboró: MGTI Rosana Ayala Landeros 8


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Exonúcleos: También conocidos como sistemas operativos verticalmente estructurados, representan una aproximación radicalmente
nueva al diseño de sistemas operativos.

La idea subyacente es permitir que el desarrollador tome todas las decisiones relativas al rendimiento del hardware. Los exonúcleos son
extremadamente pequeños, ya que limitan expresamente su funcionalidad a la protección y el multiplexado de los recursos. Se llaman así
porque toda la funcionalidad deja de estar residente en memoria y pasa a estar fuera, en bibliotecas dinámicas.

Los diseños de núcleos clásicos (tanto el monolítico como el micronúcleo) abstraen el hardware, escondiendo los recursos bajo una capa
de abstracción del hardware, o detrás de los controladores de dispositivo. En los sistemas clásicos, si se asigna memoria física, nadie
puede estar seguro de cuál es su localización real, por ejemplo.

La finalidad de un exonúcleo es permitir a una aplicación que solicite una región específica de la memoria, un bloque de disco concreto,
etc., y simplemente asegurarse que los recursos pedidos están disponibles, y que el programa tiene derecho a acceder a ellos.

Debido a que el exonúcleo sólo proporciona una interfaz al hardware de muy bajo nivel, careciendo de todas las funcionalidades de alto
nivel de otros sistemas operativos, éste es complementado por una «biblioteca de sistema operativo». Esta biblioteca se comunica con el
exonúcleo subyacente, y facilita a los programadores de aplicaciones las funcionalidades que son comunes en otros sistemas operativos.

Algunas de las implicaciones teóricas de un sistema exonúcleo son que es posible tener distintos tipos de sistemas operativos (p.e.
Windows, Unix) ejecutándose en un solo exonúcleo, y que los desarrolladores pueden elegir prescindir de o incrementar funcionalidades
por motivos de rendimiento.

Actualmente, los diseños exonúcleo están fundamentalmente en fase de estudio y no se usan en ningún sistema popular. Un concepto de
sistema operativo es Nemesis, creado por la Universidad de Cambridge, la Universidad de Glasgow, Citrix Systems y el Instituto Sueco de
Informática. El MIT también ha diseñado algunos sistemas basados en exonúcleos. Los exonúcleos se manejan en diferente estructura
dado que también cumplen funciones distintas

ACTIVIDAD DE APRENDIZAJE: Explicar el funcionamiento de tecnologías de más de un núcleo.

Elaboró: MGTI Rosana Ayala Landeros 9


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

1.6.1Interrupciones FLIH
La interrupción es el mecanismo mediante el cual otros módulos pueden interrumpir una secuencia normal de procesamiento.
· Programa: por ejemplo división por cero
· Temporizador: cuando se cumple un tiempo específico
· E/S: cuando hay algo que comunicar
· Hardware: cuando ocurre una falla.

La gestión de interrupciones la realiza el manipulador (controlador) de interrupciones (FLIH, First Level Interrupt Handler).

El manipulador de interrupciones es la parte del sistema operativo responsable de proporcionar la respuesta adecuada a las señales
procedentes tanto del exterior como del interior del sistema (interrupciones externas e internas).

1.6.2 Despachador o Scheduler


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. Esto involucra:
· cambio de contexto
· cambio a modo usuario
· salto a la dirección de memoria que corresponda al programa de usuario para continuar su ejecución.
· Criterios de Despachador
· Utilización de CPU: mantener la CPU ocupada la mayor cantidad del tiempo posible
· Productividad (Throughput): # de procesos por unidad de tiempo
· Tiempo de servicio (Turnaround time): tiempo necesario para la ejecución de un proceso particular
· Tiempo de espera (Waiting time): tiempo total que el proceso se encuentra en la fila ready
· Tiempo de respuesta (Response time): tiempo que transcurre desde el requerimiento hasta que se produce la primera respuesta
(en ambientes de tiempo compartido)
· Criterios de Optimización
· Máxima utilización de CPU
· Máxima productividad
· Mínimo tiempo de servicio

Elaboró: MGTI Rosana Ayala Landeros 10


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

· Mínimo tiempo de espera


· Mínimo tiempo de respuesta

1.6.3. Primitivas de Comunicación (Comunicación entre procesos)


Es una función básica de los Sistemas operativos. Los procesos pueden comunicarse entre sí a través de compartir espacios de memoria,
ya sean variables compartidas o buffers, o a través de las herramientas provistas por las rutinas de IPC.

La IPC provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre sí. Normalmente a través de un sistema de
bajo nivel de paso de mensajes que ofrece la red subyacente.

La comunicación se establece siguiendo una serie de reglas (protocolos de comunicación). Los protocolos desarrollados para internet son
los mayormente usados: protocolo de internet (capa de red), protocolo de control de transmisión (capa de transporte) y protocolo de
transferencia de archivos , protocolo de transferencia de hipertexto (capa de aplicación).

ACTIVIDAD DE APRENDIZAJE: Al concluir esta unidad, podrá explicar ¿Por qué tantos sistemas operativos? Argumente.

Elaboró: MGTI Rosana Ayala Landeros 11


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

UNIDAD II ADMINISTRACION DE PROCESOS Y DEL PROCESADOR

2.1Concepto de Proceso
Un proceso no es más que un conjunto de threads que ejecutan el mismo código, junto con las zonas de memoria asociadas a ellos y los
ficheros que tienen abiertos.

Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y
dispositivos de E/S. El SO es el responsable de:

Crear y destruir los procesos. Parar y reanudar los procesos. Ofrecer mecanismos para que se comuniquen y sincronicen.

La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas fijarles prioridades
alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las de
prioridad media y después las de baja.

Un programa consta al menos, de un proceso y un proceso, al menos, de un thread. Cuando un programa tiene varios procesos, lo normal
es que cada uno ejecute un código distinto, los cuales se encuentran en ficheros ejecutables separados. Dos procesos solo pueden
compartir una zona de memoria si esta es definida expresamente como tal. Así mismo, es en este caso cuando los sistemas de
sincronización a la hora de compartir memoria se vuelven especialmente necesarios e importantes.

2.2Estados y transiciones de los procesos


Durante su vida, un proceso puede pasar por una serie de estados discretos, algunos de ellos son:
· En ejecución: El proceso ocupa la CPU actualmente, es decir, se está ejecutando.
· Listo o preparado: El proceso dispone de todos los recursos para su ejecución, sólo le falta la CPU.
· Bloqueado: Al proceso le falta algún recurso para poder seguir ejecutándose, además de la CPU. Por recurso se pueden entender
un dispositivo, un dato, etc. El proceso necesita que ocurra algún evento que le permita poder proseguir su ejecución.

Solamente puede haber un proceso en ejecución 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

Elaboró: MGTI Rosana Ayala Landeros 12


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

procesos no se desbloquean en orden de prioridad, sino que lo hacen en el orden de ocurrencia de los eventos que están esperando.
Como se verá más adelante, hay situaciones en las cuales varios procesos pueden bloquearse esperando la ocurrencia del mismo evento;
en tales casos es común asignar prioridades a los procesos que esperan.

Transiciones de estado de los procesos.


· De ejecución á Bloqueado: al iniciar una operación de E/S, al realizar una operación WAIT.
· De ejecución á Listo: por ejemplo, en un sistema de tiempo compartido, cuando el proceso que ocupa la CPU lleva demasiado
tiempo ejecutándose continuamente (agota su cuantum) el sistema operativo decide que otro proceso ocupe la CPU, pasando el
proceso que ocupaba la CPU a estado listo.
· De Listo á en ejecución: cuando lo requiere el planificador de la CPU.
· De Bloqueado á Listo: se dispone del recurso por el que se había bloqueado el proceso.

Obsérvese que de las cuatro transiciones de estado posibles, la única iniciada por el proceso de usuario es el bloqueo, las otras tres son
iniciadas por entidades externas al proceso.

2.3Procesos ligeros, hilos


El concepto de proceso es más complejo y sutil que el presentado hasta ahora. Engloba dos conceptos separados y potencialmente
independientes:
· Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros
recursos como dispositivos de E/S o ficheros.
· Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecución, a través de uno o más programas. Esta ejecución
se entremezcla con la de otros procesos. De tal forma, que un proceso tiene un estado y una prioridad de expedición u origen. La
unidad planificada y expedida por el sistema operativo es el proceso.

En la mayoría de los sistemas operativos, estas dos características son, de hecho, la esencia de un proceso. Sin embargo, son
independientes, y pueden ser tratadas como tales por el sistema operativo. Esta distinción ha conducido en los sistemas operativos
actuales a desarrollar la construcción conocida como thread, Si se tiene esta división de características, la unidad de asignación de
la CPU se conoce como hilo, mientras que a la unidad que posee recursos se le llama proceso.

Elaboró: MGTI Rosana Ayala Landeros 13


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Dentro de un proceso puede haber uno o más hilos de control cada uno con:
· Un estado de ejecución (en ejecución, listo, bloqueado).
· Un contexto de procesador, que se salva cuando no esté ejecutándose.
· Una pila de ejecución.
· Algún almacenamiento estático para variables locales.
· Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos.

Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: se tarda menos tiempo en crear un nuevo hilo de un
proceso que ya existe, en terminarlo, y en hacer un cambio de contexto entre hilos de un mismo proceso. Al someter a un mismo proceso
a varios flujos de ejecución se mantiene una única copia en memoria del código, y no varias.

Un ejemplo de aplicación que podría hacer uso de los hilos es un servidor de archivos de una red de área local. Cada vez que llega una
solicitud de una operación sobre un archivo, se puede generar un nuevo hilo para su gestión. El servidor gestiona multitud de solicitudes,
por tanto, se pueden crear y destruir muchos hilos en poco tiempo para dar servicio a estas peticiones. Si el servidor es un
multiprocesador, se pueden ejecutar varios hilos de un mismo proceso simultáneamente y en diferentes procesadores.

ACTIVIDAD DE APRENDIZAJE: Elaborar un cuadro comparativo sobre diversos tipos de procesadores.

2.4concurrencia y secuenciabilidad

En un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo aparentando una ejecución simultánea.
Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecución intercalada
produce beneficios en la eficiencia del procesamiento y en la estructuración de los programas.

La intercalación y la superposición pueden contemplarse como ejemplos de procesamiento concurrente en un sistema monoprocesador,
los problemas son consecuencia de la velocidad de ejecución de los procesos que no pueden predecirse y depende de las actividades de
otros procesos, de la forma en que el sistema operativo trata las interrupciones surgen las siguientes dificultades:

1. Compartir recursos globales es riesgoso


2. Para el sistema operativo es difícil gestionar la asignación óptima de recursos.

Elaboró: MGTI Rosana Ayala Landeros 14


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

La concurrencia comprende incorporar varias cuestiones de diseño, incluyendo la comunicación entre procesos, comparación y
competencia por los recursos, sincronización de la ejecución de varios procesos y asignación del tiempo de procesador a los procesos y
es fundamental para que existan diseños como Multiprogramación, Multiproceso y Proceso distribuido.

Los procesos son concurrentes si existen simultáneamente. Cuando dos o más procesos llegan al mismo tiempo a ejecutarse, se dice que
se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes, es
necesario que tengan alguna relación entre ellos. La concurrencia puede presentarse en:

• Varias aplicaciones: La multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido
dinámicamente entre varios trabajos o aplicaciones activas.

• Aplicaciones estructuradas: Como ampliación de los principios del diseño modular y la programación estructurada, algunas aplicaciones
pueden implementarse eficazmente como un conjunto de procesos concurrentes.

• Estructura del sistema operativo: Las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha
comprobado que algunos sistemas operativos están implementados como un conjunto de procesos. Existen tres modelos de computadora
en los que se pueden ejecutar procesos concurrentes:

§ Multiprogramación con un único procesador, Multiprocesador y Multicomputadora(Es una máquina de memoria distribuida).

Tipos de procesos concurrentes.


Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperación de otros procesos. Un claro ejemplo de procesos
independientes son los diferentes shells que se ejecutan de forma simultánea en un sistema.

Procesos cooperantes: Son aquellos que están diseñados para trabajar conjuntamente en alguna actividad, para lo que deben ser
capaces de comunicarse e interactuar entre ellos. En ambos tipos de procesos (independientes y cooperantes), puede producirse una
serie de interacciones entre ellos.

Elaboró: MGTI Rosana Ayala Landeros 15


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas
Elementos a gestionar y diseñar a causa de la concurrencia.
1. El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo hace por medio de PBC’s (Bloque de
Control de Procesos)

2. El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo. Entre estos recursos se incluyen:
• Tiempo de procesador: Es función de la planificación.
• Memoria: La mayoría de los sistemas operativos emplean esquemas de memoria virtual.
• Archivos:
• Dispositivos de E/S:
3. El sistema operativo debe proteger los datos y los recursos físicos de cada proceso contra injerencias no intencionadas de otros
procesos.
4. Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se realiza la ejecución con respecto a otros
procesos concurrentes.

2.4.1Exclusión Mutua y Sección Crítica


Es posible clasificar las interacciones de los procesos en función del nivel de conocimiento que cada proceso tiene de la existencia de los
demás:
• Los procesos no tienen conocimiento de los demás: Estos son procesos independientes que no están pensados para operar juntos.
• Los procesos tienen un conocimiento indirecto de los otros: Los procesos no conocen necesariamente a los otros, pero comparten el
acceso a algunos objetos.
• Los procesos tienen un conocimiento directo de los otros: Los procesos son capaces de comunicarse con los demás y están diseñados
para trabajar conjuntamente en alguna actividad.

Competencia entre procesos por los recursos


Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso, y la ejecución de un proceso puede influir
en el comportamiento de los procesos que compiten y el sistema operativo le asignará el recurso a uno de ellos y el otro tendrá que
esperar. Por lo que el proceso que quede esperando, se retrasará, se bloqueara y en el peor de los casos nunca se terminará con éxito.

Es en estos procesos concurrentes, donde se plantean una serie de situaciones clásicas de comunicación y sincronización, entre ellos el
problema de la sección crítica, uno de los problemas que con mayor frecuencia aparece cuando se ejecutan procesos concurrentes.

Elaboró: MGTI Rosana Ayala Landeros 16


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Ejemplo: Se tiene un Sistema Operativo que debe asignar un identificador de proceso (PID) a dos procesos en un sistema
multiprocesador. Cuando el SO realiza esta acción en dos procesadores de forma simultánea sin ningún tipo de control, se pueden
producir errores, ya que se puede asignar el mismo PID a dos procesos distintos. Este problema se debe a que constituyen una sección
crítica que debe ejecutarse en forma atómica, es decir, de forma completa e indivisible y ningún otro proceso podrá ejecutar dicho código
mientras el primero no haya acabado su sección.

Solución a la sección crítica


Para resolver el problema de la sección crítica es necesario utilizar algún mecanismo de sincronización que permita a los procesos
cooperar entre ellos sin problemas. Este mecanismo debe proteger el código de la sección crítica y su funcionamiento básico es:

• Cada proceso debe solicitar permiso para entrar en la sección crítica, mediante algún fragmento de código que se denomina de forma
genérica entrada en la sección crítica.

• Cuando un proceso sale de la sección crítica debe indicarlo mediante otro fragmento de código que se denomina salida de la sección
crítica. Este fragmento permitirá que otros procesos entren a ejecutar el código de la sección crítica.

Cualquier solución que se utilice para resolver este problema debe cumplir los tres requisitos siguientes: Exclusión mutua, Progreso, y
Espera acotada.

Exclusión mutua
La exclusión mutua la podríamos definir como una operación de control que permite la coordinación de procesos concurrentes, y que tiene
la capacidad de prohibir a los demás procesos realizar una acción cuando un proceso haya obtenido el permiso.

El control de la competencia involucra al sistema operativo, porque este asigna los recursos. Además, los procesos deben ser capaces por
sí mismos, de expresar de algún modo los requisitos de exclusión mutua, como puede ser bloquear los recursos antes de usarlos.

Hacer que se cumpla la exclusión mutua crea dos problemas de control adicionales.

• Interbloqueo. Si se tienen dos procesos P1 y P2 y dos recursos críticos, R1 y R2. Supóngase que cada proceso necesita acceder a
ambos recursos para llevar a cabo una parte de su función. En tal caso, es posible que se presente la siguiente situación: el sistema

Elaboró: MGTI Rosana Ayala Landeros 17


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

operativo asigna R1 a P2 y R2 a P1. Cada proceso está esperando a uno de los dos recursos. Ninguno liberará el recurso que ya posee
hasta que adquiera el otro y ejecute su sección crítica. Ambos procesos están ínterbloqueados.

• Inanición. Supóngase que tres procesos, P1, P2 y P3, necesitan acceder periódicamente al recurso R. Considérese la situación en la que
P1 está en posesión del recurso y tanto P2 como P3 están parados, esperando al recurso. Cuando P1 abandona su sección crítica, tanto
P2 como P3 deben poder acceder a R. Supóngase que se le concede el acceso a P3 y que, antes de que termine su sección crítica, P1
solicita acceso de nuevo. Si se le concede el acceso a P1 después de que P3 termine y si P1 y P3 se conceden el acceso repetidamente
el uno al otro, se puede negar definidamente a P2 el acceso al recurso.

Requisitos para la exclusión mutua.


El uso adecuado de la concurrencia entre procesos exige la capacidad de definir secciones críticas y hacer cumplir la exclusión mutua.
Esto es fundamental para cualquier esquema de proceso concurrente. Cualquier servicio o capacidad que dé soporte para la exclusión
mutua debe cumplir los requisitos siguientes:
1. Debe cumplirse la exclusión mutua: Solo un proceso, de entre todos los que poseen secciones críticas por el mismo recurso u
objeto compartido, debe tener permiso para entrar en ella en un instante dado.
2. Un proceso que se interrumpe en una sección no crítica debe hacerlo sin estorbar a los otros procesos.
3. Un proceso no debe poder solicitar acceso a una sección crítica para después ser demorado indefinidamente; no puede
permitirse el interbloqueo o la inanición.
4. Cuando ningún proceso está en su sección crítica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin
dilación.
5. No se pueden hacer suposiciones sobre la velocidad relativa de los procesos o su número.
6. Un proceso permanece en su sección crítica solo por un tiempo finito.

Soluciones a la exclusión mutua.-Hay varias formas de satisfacer los requisitos de exclusión mutua: Por Software, por Hardware y por
métodos que consisten en dar algún tipo de soporte al sistema operativo, entre estos métodos se encuentran los semáforos, monitores,
paso de mensajes, etc.

2.4.2Sicnronización de procesos
La sincronización es la transmisión y recepción de señales que tiene por objeto llevar a cabo el trabajo de un grupo de procesos
cooperativos. Es la coordinación y cooperación de un conjunto de procesos para asegurar la comparación de recursos de cómputo. La

Elaboró: MGTI Rosana Ayala Landeros 18


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

sincronización entre procesos es necesaria para prevenir y/o corregir errores de debidos al acceso concurrente a recursos compartidos. La
sincronización permite intercambiar señales de tiempo (ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones
específicas de precedencia impuestas por el problema que se resuelve. Sin una sincronización adecuada entre procesos, la actualización
de variables compartidas puede inducir a errores de tiempo relacionados con la concurrencia que son con frecuencia difíciles de depurar.

Para que los procesos puedan sincronizarse es necesario disponer de servicios que permitan bloquear o suspender bajo determinadas
circunstancias la ejecución de un proceso. Los principales mecanismos de sincronización que ofrecen los sistemas operativos son:

• Señales, Tuberías, Semáforos, Mutex y variables condicionales , Paso de mensajes, Tuberías

Una tubería es un mecanismo de comunicación y sincronización.

2.4.2.1Mecanismos de Semaforos

Un semáforo es una estructura diseñada para sincronizar dos o más threads o procesos, de modo que su ejecución se realice de forma
ordenada y sin conflictos entre ellos. Un semáforo básico está formada por una posición de memoria y dos instrucciones, una para
reservarlo y otra para liberarlo. A esto se le puede añadir una cola de threads para controlar su orden.

El porqué no se pueden usar directamente otras estructuras más clásicas, como por ejemplo usar una variable común para decidir si se
puede o no acceder a un recurso, se debe a que estamos en un sistema multitarea: hacer esto implicaría realizar una espera activa (un
bucle, comprobando constantemente si la variable está o no a 0, y así saber si podemos seguir ejecutando o no). Por otro lado, puede
ocurrir algo mucho peor: supongamos que un proceso comprueba la variable, y ve que el recurso está libre, por lo que procedería a
cambiar dicha variable de valor y seguir. Pues bien, si justo después de la comprobación pero antes de que cambie el valor se conmuta de
tarea y el nuevo proceso comprueba la variable, como todavía no se ha actualizado, creerá que el recurso está libre, e intentará tomarlo,
haciendo que ambos programas fallen. Lo peor del caso es que se tratará de un error aleatorio: unas veces fallará y otras no.

Para evitarlo, se idearon los semáforos. Se empieza por inicializar la posición de memoria a 1, a continuación cada vez que un thread o un
proceso quiera acceder a dicho recurso, hará primero una petición con la primera de las llamadas disponibles. Cuando el S.O. ejecuta esa
llamada, comprueba el valor que hay en la posición de memoria del semáforo, y si es distinta de cero, se limita a restarle 1 y devolver el

Elaboró: MGTI Rosana Ayala Landeros 19


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

control al programa; sin embargo, si ya es cero, duerme al proceso que hizo la petición y lo mete en la cola de procesos, en espera de que
el semáforo se ponga a un valor distinto de cero.

Por último, cuando el proceso ha terminado el acceso al recurso, usa la segunda llamada para liberar el semáforo. Cuando el S.O. la
ejecuta, comprueba si la cola del semáforo está vacía, en cuyo caso se limita a incrementar el valor del semáforo, mientras que si tiene
algún proceso, lo despierta, de modo que vuelve a recibir ciclos de CPU y sigue su ejecución. Si había varios procesos en espera, se irán
poniendo en marcha uno tras otro a medida que el anterior va liberando el semáforo. Cuando termina el último, el semáforo se vuelve a
poner a 1. Se trata, por tanto, del mismo proceso que seguiríamos con la variable, pero con la ventaja de que es un mecanismo estandar
para todos los procesos, y como es una operacion atómica, no surge el problema de que una conmutación pueda producir errores
aleatorios.

Vemos que la primera vez que un proceso usa el semáforo, este tiene valor 1, por lo que pasa a cero y el proceso puede acceder al
recurso. Si durante ese tiempo otro proceso quiere acceder también, al usar el semáforo, este tiene valor cero, por lo que el S.O. deja de
darle ciclos de CPU. Cuando el primer proceso ha terminado, libera el recurso, con lo que el S.O. puede comprobar que el segundo
proceso está esperando, por lo que le vuelve a dar ciclos. En este punto, el proceso sigue como si nunca hubiese sido detenido. Este tipo
de semáforos son los de Exclusión mútua, o Mutex.

Otra utilización de los semáforos es cuando uno o más procesos tienen que esperar a que otro halla terminado una tarea. Para ello, el
primer proceso borra el semáforo y con una primitiva adecuada se pone a esperar a que el semáforo se active (posted). Mientras, el
segundo proceso va trabajando, y cuando termina lo que tiene que hacer, activa el semáforo, con lo que el primer proceso vuelve a
ponerse en marcha, sin haber desperdiciado ciclos de CPU. Son semáforos evento. Vemos que puede haber varios procesos esperando
por el mismo semáforo, y el thread que lo activa no tiene por qué saber cuantos son. Cobran su importancia cuando el evento no es
producido por otro thread, sino por otras funciones del S.O., como las de sincronización, que veremos más adelante.

2.4.2.2 Mecanismo de Monitores


Es un tipo de procedimientos, variables y estructuras de datos que se agrupan en un tipo de modulo especial. Tienen una propiedad
importante: solo un proceso puede estar activo en un monitor en un instante de tiempo.
Los monitores proveen un nuevo tipo de variables de condición con dos operaciones que operan sobre el (solo se usan dentro del
procedimiento de el monitor).

Elaboró: MGTI Rosana Ayala Landeros 20


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas
Wait(a): produce que el proceso que ejecuta la instrucción sea interrumpido y removido de la cola de ready hasta que otro proceso lo
habilite ejecutando la instrucción signal( )con la misma variable de condición.
Signal(a): Habilita la ejecución de algún proceso en espera por la ejecución de la instrucción wait con la misma variable de condición.

2.4.3 Interbloqueo DeadLock


El interbloqueo puede definirse formalmente como sigue: Un conjunto de procesos está en interbloqueo si cada proceso del conjunto está
esperando un evento que sólo otro proceso del conjunto puede causar. Puesto que todos los procesos están esperando, ninguno de ellos
puede causar ninguno de los eventos que podrían despertar a cualquiera de los demás miembros del conjunto, y todos los procesos
continúan esperando indefinidamente.

Tipos de recursos
Reutilizables .-Un recurso reutilizable es aquél que puede ser usado con seguridad por un proceso y no se agota con el uso. Los procesos
obtienen unidades de recursos que liberan posteriormente para que otros procesos las reutilicen. Como ejemplos de recursos reutilizables
se tienen los procesadores, canales de E/S, memoria principal y secundaria, dispositivos y estructuras de datos tales como archivos,
bases de datos y semáforos.

Consumibles .-Un recurso consumible es aquél que puede ser creado (producido) y destruido (consumido). Normalmente, no hay límite en
el número de recursos consumibles de un tipo en particular. Un proceso productor que no está bloqueado puede liberar cualquier número
de recursos consumibles. Cuando un proceso adquiere un recurso, éste deja de existir. Como ejemplos de recursos consumibles están las
interrupciones, señales, mensajes, e información en buffers de E/S.

Condiciones para el interbloqueo


Coffman (1971) demostró que deben cumplirse cuatro condiciones para que haya un bloqueo mutuo:
1. Condición de exclusión mutua. Cada recurso está asignado únicamente a un solo proceso o está disponible.
2. Condición de retener y esperar. Los procesos que actualmente tienen recursos que les fueron otorgados previamente pueden solicitar
nuevos recursos.
3. Condición de no expropiación. No es posible quitarle por la fuerza a un proceso los recursos que le fueron otorgados previamente. El
proceso que los tiene debe liberarlos explícitamente.

Elaboró: MGTI Rosana Ayala Landeros 21


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

4. Condición de espera circular. Debe haber una cadena circular de dos o más procesos, cada uno de los cuales está esperando un
recurso retenido por el siguiente miembro de la cadena.

Deben estar presentes estas cuatro condiciones para que ocurra un bloqueo mutuo. Si una o más de estas condiciones está ausente, no
puede haber bloqueo mutuo.

2.4.3.1Prevención del interbloqueo o Deadloock


Los bloqueos mutuos pueden ser evitados si se sabe cierta información sobre los procesos antes de la asignación de recursos. Para cada
petición de recursos, el sistema controla si satisfaciendo el pedido entra en un estado inseguro, donde puede producirse un bloqueo
mutuo. De esta forma, el sistema satisface los pedidos de recursos solamente si se asegura que quedará en un estado seguro. Para que
el sistema sea capaz de decidir si el siguiente estado será seguro o inseguro, debe saber por adelantado y en cualquier momento el
número y tipo de todos los recursos en existencia, disponibles y requeridos. Existen varios algoritmos para evitar bloqueos mutuos:
· Algoritmo del banquero, introducido por Dijkstra.
· Algoritmo de grafo de asignación de recursos.
· Algoritmo de Seguridad.
· Algoritmo de solicitud de recursos.

2.4.3.2Detección del interbloqeo


Las estrategias de prevención del interbloqueo son muy conservadoras; solucionan el problema del interbloqueo limitando el acceso a los
recursos e imponiendo restricciones a los procesos. En el lado opuesto, las estrategias de detección del interbloqueo no limitan el acceso
a los recursos ni restringen las acciones de los procesos. Con detección del interbloqueo, se concederán los recursos que los procesos
necesiten siempre que sea posible. Periódicamente, el sistema operativo ejecuta un algoritmo que permite detectar la condición de círculo
vicioso de espera. Puede emplearse cualquier algoritmo de detección de ciclos en grafos dirigidos.

El control del interbloqueo puede llevarse a cabo tan frecuentemente como las solicitudes de recursos o con una frecuencia menor,
dependiendo de la probabilidad de que se produzca el interbloqueo. La comprobación en cada solicitud de recurso tiene dos ventajas:
Conduce a una pronta detección y el algoritmo es relativamente simple, puesto que está basado en cambios increméntales del estado del
sistema. Por otro lado, tal frecuencia de comprobaciones consume un tiempo de procesador considerable.

Elaboró: MGTI Rosana Ayala Landeros 22


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Una vez detectado el interbloqueo, hace falta alguna estrategia de recuperación. Las técnicas siguientes son posibles enfoques,
enumeradas en orden creciente de sofisticación:

1. Abandonar todos los procesos bloqueados. Esta es, se crea o no, una de las soluciones más comunes, si no la más común, de las
adoptadas en un sistema operativo.
2. Retroceder cada proceso interbloqueado hasta algún punto de control definido previamente y volver a ejecutar todos los procesos. Es
necesario que haya disponibles unos mecanismos de retroceso y reinicio en el sistema. El riesgo de esta solución radica en que puede
repetirse el interbloqueo original. Sin embargo, el no determinismo del procesamiento concurrente asegura, en general, que esto no va a
pasar.
3. Abandonar sucesivamente los procesos bloqueados hasta que deje de haber interbloqueo. El orden en el que se seleccionan los
procesos a abandonar seguirá un criterio de mínimo coste. Después de abandonar cada proceso, se debe ejecutar de nuevo el algoritmo
de detección para ver si todavía existe interbloqueo.
4. Apropiarse de recursos sucesivamente hasta que deje de haber interbloqueo. Como en el punto 3, se debe emplear una selección
basada en coste y hay que ejecutar de nuevo el algoritmo de detección después de cada apropiación. Un proceso que pierde un recurso
por apropiación debe retroceder hasta un momento anterior a la adquisición de ese recurso.

Para los puntos 3 y 4, el criterio de selección podría ser uno de los siguientes, consistentes en escoger el proceso con:
• La menor cantidad de tiempo de procesador consumido hasta ahora.
• El menor número de líneas de salida producidas hasta ahora.
• El mayor tiempo restante estimado.
• El menor número total de recursos asignados hasta ahora.
• La prioridad más baja.
Algunas de estas cantidades son más fáciles de medir que otras. El tiempo restante estimado deja lugar a dudas, especialmente. Además,
aparte de las medidas de prioridad, no existe otra indicación del “coste” para el usuario frente al coste para el sistema en conjunto.

2.4.3.3Recuperación del interbloqueo


Una vez que se ha detectado el interbloqueo se debe romper para que los recursos puedan finalizar su ejecución y liberar así los recursos.
Para ruptura de la espera se pueden realizar varias opciones. Las idónea sería suspendiendo algunos de los procesos bloqueados para
tomar sus recursos y reanudar sus ejecución una vez que se hubiera deshecho el interbloqueo. Esta solución solo puede resultar factible
en casos muy particulares; no se podría suspender a un proceso de escribir en una impresora para pasarla a otro proceso y reanudar

Elaboró: MGTI Rosana Ayala Landeros 23


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

después la impresión, como tampoco se podría suspender indefinidamente un proceso de tiempo real. Las dos opciones que se suelen
utilizar son: reiniciar uno o más de los procesos bloqueados y expropiar los recursos de algunos de los procesos bloqueados.

Para aplicar la primera de las opciones se deben tener en cuenta una serie de factores con el fin de elegir aquellos procesos cuya
reiniciación resulte menos traumática. Entre los factores a tener en cuenta en cada proceso se tienen:

1. La prioridad del proceso.


2. El tiempo de procesamiento utilizado y el que le resta.
3. El tipoy número de recursos que posee.
4. El número de recursos que necesita para finalizar.
5. El número de otros procesos que se verían involucrados con su reiniciación

El procedimiento de la segunda opción consiste en ir expropiando recursos de algunos procesos de forma sucesiva hasta que se consiga
salir del interbloqueo.

2.5 Niveles, criterios y objetivos de la planificación


Se consideran tres niveles importantes de planificación, los que se detallan a continuación:

Planificación de alto nivel: Se encarga de llevar procesos de disco a memoria y viceversa. Seleccionando los trabajos que deben admitirse
en el sistema.
· También se denomina Planificación de trabajos.
· Determina a qué trabajos se les va a permitir competir activamente por los recursos del sistema, lo cual se denomina
Planificación de admisión.
· Administrar todos los recursos del sistema excepto el CPU.
· Mantiene las colas de procesos bloqueados y suspendidos.
· Controla la creación de procesos.
· Maneja el nivel de multiprogramación.

Elaboró: MGTI Rosana Ayala Landeros 24


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas
Planificación de nivel intermedio: En algunos casos, en especial cuando el sistema está sobrecargado, el planificador de nivel medio
encuentra ventajoso retirar trabajos activos de la memoria para reducir el grado de multiprogramación, y por lo tanto, permitir que los
trabajos se completen más aprisa. Este subadministrador controla los trabajos que se intercambian hacia fuera y de regreso.

· Determina a qué procesos se les puede permitir competir por la cpu.


· Efectúa “suspensiones” y “activaciones” (“reanudaciones”) de procesos.
· Debe ayudar a alcanzar ciertas metas en el rendimiento total del sistema.
· Equilibrar la administración de trabajos en el sistema con la asignación del CPU a dichos procesos.
· Nivelar la carga del sistema (procesos activos y pasivos).

Planificación de bajo nivel: Se encarga de pasar de un proceso a otro en memoria principal. Determinando a cuál proceso listo se le
asignará el CPU cuando éste se encuentra disponible.
· Determina a qué proceso listo se le asigna la cpu cuando esta queda disponible y asigna la cpu al mismo, es decir que “despacha”
la cpu al proceso.

Criterios
- Equidad.- Garantizar que cada proceso obtiene su proporción justa de la cpu.
- Eficacia.- Mantener ocupada la cpu el ciento por ciento del tiempo.
- Tiempo de respuesta.- Minimizar el tiempo de respuesta para los usuarios interactivos.
- Tiempo de regreso.- Minimizar el tiempo que deben esperar los usuarios por lotes(batch) para obtener sus resultados.
- Rendimiento.- Maximizar el número de tareas procesadas por hora.

2.6 Técnicas de administración del planificador

Las disciplinas de planificación pueden ser: Expropiativas y No expropiativas

Se denomina planificador al software del sistema operativo encargado de asignar los recursos de un sistema entre los procesos que los
solicitan. Siempre que haya que tomar una decisión, el planificador debe decidir cuál de los procesos que compiten por la posesión de un
determinado recursos lo recibirá.

Elaboró: MGTI Rosana Ayala Landeros 25


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Los algoritmos tienen distintas propiedades según los criterios en los que se basen para su construcción, lo cual se refleja en qué tipo de
procesos se puede ver favorecido frente a otro en la disputa del procesador. Antes de realizar la elección de un algoritmo se debe
considerar las propiedades de estos frente al criterio de diseño elegido. Algunos de estos son:

a) Eficacia: Se expresa como un porcentaje del tiempo medio de utilización. Aunque puede parecer lógico intentar mantener este
parámetro próximo al 100%, con un valor tan elevado otros aspectos importante de medida del comportamiento del sistema pueden verse
deteriorados, como por ejemplo el tiempo medio de espera.

b) Rendimiento: Es una medida del número de procesos completados por unidad de tiempo. Por ejemplo 10 procesos por segundo.

c) Tiempo de retorno o regreso: Es el intervalo de tiempo que transcurre desde que un proceso se crea o presenta hasta que completa
por el sistema.

d) Tiempo de espera: Es el tiempo que el proceso espera hasta que se le concede el procesador. Puede resultar una medida mas
adecuada de la eficiencia del sistema, ya que se elimina de la media el tiempo que tarda en ejecutarse el mismo. e) Tiempo de respuesta
a un evento: Se denomina así el intervalo de tiempo que transcurre desde que se señala un evento hasta que se ejecuta la primera
instrucción de la rutina de servicio de dicho evento. El criterio de selección de un algoritmo se suele basar en la maximización o
minimización de una función de los parámetros anteriores.

2.6.1 FIFO: First In First Out


Mecanismo de scheduling en el cual los procesos se ordenan en una fila, en la cual se ejecutan cada uno de los procesos hasta su
finalización secuencialmente. Es tremendamente ineficiente.

FIFO es el acrónimo inglés de First In, First Out (primero en entrar, primero en salir). Es un método utilizado en estructuras de datos,
contabilidad de costes y teoría de colas. Guarda analogía con las personas que esperan en una cola y van siendo atendidas en el orden
en que llegaron, es decir, que la primera persona que entra es la primera persona que sale.

Si se implementa mediante vectores el número máximo de elementos que puede almacenar está limitado al que se haya establecido en el
código del programa antes de la compilación (cola estática) o durante su ejecución (cola pseudoestática). Sea cual sea la opción elegida,
el número de elementos que podrá almacenar la cola quedará determinado durante toda la ejecución del programa.

Elaboró: MGTI Rosana Ayala Landeros 26


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

El sistema debe reservar el tamaño de memoria necesario para acoger todos los datos, sea cual sea el número de elementos usados, lo
que en algunas aplicaciones supone un despilfarro de la memoria. Sin embargo, si se usan punteros, el número máximo no está declarado
sino que se hace un uso dinámico de la memoria, adaptándose al tamaño necesario en cada momento en función de los elementos que
hay en la cola. Uno de los usos de las colas es la exploración “en anchura” de un árbol de búsqueda. Otro uso típico de las colas, es la
gestión de descargas de una aplicación p2p.

Los FIFOs se usan comúnmente en circuitos de electrónica para almacenaje y hacer control de flujo. Hablando de hardware formar un
FIFO consiste básicamente en una conjunto de punteros de lectura/escritura, almacenamiento y lógica de control. El almacenamiento
puede ser SRAM, flip-flops, o cualquier otra forma adecuada de almacenamiento. Para FIFOs de un tamaño importante se usa usualmente
una SRAM de doble puerto, donde uno de los puertos se usa para la escritura y el otro para la lectura.

Un FIFO sincrónico maneja el mismo reloj (clock) tanto para las lecturas como para las escrituras. Una asincrónico es aquel que utiliza
diferentes relojes una para lectura y otro para la escritura. Cuando se habla de FIFO´s asincrónicos se introduce el tema de la meta-
estabilidad..

2.6.2 SJF Short Job First


Al igual que en el algoritmo FIFO las ráfagas se ejecutan sin interrupción, por tanto, sólo es útil para entornos batch. Su característica es
que cuando se activa el planificador, éste elige la ráfaga de menor duración. Es decir, introduce una noción de prioridad entre ráfagas.

Hay que recordar que en los entornos batch se pueden hacer estimaciones del tiempo de ejecución de los procesos. La ventaja que
presenta este algoritmo sobre el algoritmo FIFO es que minimiza el tiempo de finalización promedio.

2.6.3 RR Round Robin


Cada proceso tiene asignado un intervalo de tiempo de ejecución, llamado cuantum. Si el proceso agota su cuantum de tiempo, se elige a
otro proceso para ocupar la CPU. Si el proceso se bloquea o termina antes de agotar su cuantum también se alterna el uso de la CPU. El
round robin es muy fácil de implementar. Todo lo que necesita el planificador es mantener una lista de los procesos listos.

Elaboró: MGTI Rosana Ayala Landeros 27


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas
2.6.4 Queves Multileves
Un algoritmo de planificación multinivel particiona la cola de listos en colas separadas. Se asignan en forma permanente los trabajos a una
cola, generalmente, basándose en alguna propiedad del mismo (requerimientos de memoria, tipo de trabajo), teniendo cada cola su propio
algoritmo. Por ejemplo, la cola interactiva podría planificarse usando RR y la batch FIFO.

Ningún trabajo en una cola de baja prioridad puede ejecutarse si las colas con mayor prioridad no están vacías. Si algún trabajo entra en
una cola de mayor prioridad, el trabajo de otras colas es interrumpido.

2.6.5 Multilevs Feedback Queves


En colas multinivel realimentadas los trabajos pueden moverse dentro de distintas colas. La idea es separar procesos con distintos tipos
de interrupciones de la CPU. Si un trabajo consume mucho tiempo de CPU, será movido a una cola con menor prioridad. En forma similar,
si un proceso espera demasiado tiempo en una cola de baja prioridad, lo moveremos a una cola de mayor prioridad. En general un
planificador de este tipo esta definido por los siguientes parámetros:
1. El número de colas.
2. El tipo de algoritmo de planificación de cada cola.
3. Un método de cuando mover un trabajo a una cola de mayor prioridad.
4. Un método de cuando mover un trabajo a una cola de menor prioridad.
5. Un método de a qué cola se enviará un trabajo cuando necesita servicio.

Elaboró: MGTI Rosana Ayala Landeros 28


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

UNIDAD III ADMINISTRACION DE MEMORIA

La memoria principal también llamada memoria central, es una unidad dividida en celdas que se identifican mediante una dirección.
Está formada por bloques de circuitos integrados o chips capaces de almacenar, retener o "memorizar" información digital, a dichos
bloques tiene acceso el microprocesador de la computadora.

La Memoria se comunica con el microprocesador de la CPU mediante el bus de direcciones. El ancho de este bus determina la capacidad
que posea el microprocesador para el direccionamiento de direcciones en memoria.

Para que un proceso pueda ejecutarse debe estar ubicado en la memoria principal del ordenador. Una parte del sistema operativo se va a
encargar de gestionar la memoria principal, de forma que los procesos puedan residir en la memoria sin conflictos. La gestión de la
memoria implica varias tareas, una de ellas es llevar un registro de qué zonas están libres (es decir, no están siendo utilizadas por ningún
proceso), y qué zonas están ocupadas por qué procesos.

Elaboró: MGTI Rosana Ayala Landeros 29


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

ACTIVIDAD DE APRENDIZAJE: Caracteriza los diferentes tipos de buses de sistema.


ACTIVIDAD DE APRENDIZAJE: Elabora un cuadro comparativo sobre diversos tipos de memorias.

Otra tarea importante surge en sistemas en los que no todos los procesos, o no todo el código y datos de un proceso, se ubican en la
memoria principal. En estos sistemas, a menudo se debe pasar parte, o la totalidad del código y datos de un proceso, de memoria a disco,
o viceversa; siendo el sistema operativo responsable de esta tarea. De esta forma se libera al usuario de realizar estas transferencias de
información, de las cuales no es consciente.

Dos temas importantes en la gestión de la memoria son el de la carga de los programas de disco a memoria y el de la protección. Desde
el momento en que varios procesos deben compartir la memoria del ordenador surge el problema de la protección.

En general, se pretende que un proceso no pueda modificar las direcciones de memoria en las que no reside. Esto es así ya que en las
direcciones de memoria donde no está ubicado el proceso pueden residir otros procesos, o código o estructuras de datos del S.O. Si un
proceso puede modificar indiscriminadamente la memoria, podría, por ejemplo, cambiar el valor de una dirección de memoria donde
residiera una variable de otro proceso, con la consecuente ejecución incorrecta del proceso propietario de la variable. Algunos sistemas ni
siquiera permiten que un proceso pueda leer las direcciones de memoria en las que no reside, con esto se consigue privacidad sobre el
código y datos de los procesos.

Existen varias formas de gestionar la memoria. Por lo común, la forma de gestión dependerá de la máquina virtual que se quiera
proporcionar y del hardware subyacente. Con independencia de la forma de gestión es necesario decidir qué estrategias se deben utilizar
para obtener un rendimiento óptimo. Las estrategias de administración de la memoria determinan el comportamiento de una
organización de memoria determinada cuando se siguen diferentes políticas.

¿Cuándo se toma un nuevo programa para colocarlo en la memoria?


¿Se toma el programa cuando el sistema lo necesita, o se intenta anticiparse a las peticiones del sistema?
¿En qué lugar de la memoria principal se coloca el siguiente programa por ejecutar?
¿Se colocan los programas lo más cerca posible unos de otros en los espacios disponibles de la memoria principal para reducir al mínimo
el desperdicio de espacio, o se colocan lo más rápido posible para reducir el tiempo empleado en tomar la decisión?

Elaboró: MGTI Rosana Ayala Landeros 30


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas
“Los sistemas actuales usan en su mayor parte el almacenamiento virtual.”

3.1Filosofía y administración de la Memoria


Filosofía: La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un tamaño definido.
Cada localidad de almacenamiento tiene asignada una dirección que la identifica. Una de las funciones básicas que debe implementar un
SO es la Administración de la Memoria para tener un control sobre los lugares donde están almacenados los procesos y datos que
actualmente se están utilizando.

Los programas y datos necesitan estar en el almacenamiento principal para ser ejecutados o para poder hacer referencia de ellos Las
estrategias de administración del almacenamiento determinan el comportamiento de la administración de memoria cuando se siguen
ciertas políticas. Por ejemplo, Unix permite procesos múltiples y en un proceso puede generar otro fácilmente. La planificación del
procesador usa un algoritmo basado en prioridades. La administración de memoria es un algoritmo de regiones variables con
intercambios. Inicialmente los algoritmos realizados se eligieron por sencillez, no por velocidad ni complejidad. El desarrollo inicial se hizo
bajo un espacio muy pequeño de memoria.

Los recursos de memoria totales eran insuficientes para justificar algoritmos complejos, por lo que UNIX intercambiaba el contenido en
memoria de los procesos.

3.2 Memoria Real


La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en
memoria para que se ejecuten los procesos.

Administración de la memoria con mapas de bits .- Este tipo de administración divide la memoria en unidades de asignación, las
cuales pueden ser tan pequeñas como unas cuantas palabras o tan grandes como varios kilobytes. A cada unidad de asignación le
corresponde un bit en el mapa de bits, el cual toma el valor de 0 si la unidad está libre y 1 si está ocupada (o viceversa). Un mapa de bits
es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de memoria, puesto que el tamaño del
mapa sólo depende del tamaño de la memoria y el tamaño de la unidad de asignación.

Administración de la memoria con listas ligadas.-Otra forma de mantener un registro de la memoria es mediante una lista ligada de los
segmentos de memoria asignados o libres, en donde un segmento puede ser un proceso o un hueco entre dos procesos.

Elaboró: MGTI Rosana Ayala Landeros 31


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Asignación del hueco de intercambio.-En algunos sistemas, cuando el proceso se encuentra en la memoria, no hay un hueco en el disco
asignado a él. Cuando deba intercambiarse, se deberá asignar un hueco para él en el área de intercambio del disco. Los algoritmos para
la administración del hueco de intercambio son los mismos que se utilizan para la administración de la memoria principal.

En otros sistemas, al caerse un proceso, se le asigna un hueco de intercambio en el disco. Cuando el proceso sea intercambiado, siempre
pasará al hueco asignado, en vez de ir a otro lugar cada vez. Cuando el proceso concluya, se libera el hueco de intercambio. La única
diferencia es que el hueco en disco necesario para un proceso debe representarse como un número entero de bloques del disco. Por
ejemplo, un proceso de 13.5 K debe utilizar 14K (usando bloques de 1K).

3.2.1 Administración de Almacenamiento


En la administración del almacenamiento, pareciera que los discos nunca tienen espacio suficiente, que se sobrecargan con actividad de
E/S o que fallan repentinamente.

La gran mayoría de los dispositivos de almacenamiento masivo utilizan alguna forma de media de rotación y soportan el acceso aleatorio
de los datos en esa media. Esto significa que los componentes siguientes están 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

3.2.2 Jerarquía de Memorias


Se conoce como jerarquía de memoria a la organización 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, basándose en el principio de
cercanía de referencias. Los puntos básicos relacionados con la memoria pueden resumirse en: Cantidad, Velocidad y Coste

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
cálculo y cálculo, 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.

Elaboró: MGTI Rosana Ayala Landeros 32


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Como puede esperarse los tres factores compiten entre sí, por lo que hay que encontrar un equilibrio. En los sistemas con varios niveles
de memoria hay muchas transferencias constantes de programas y datos entre los distintos niveles. Estas transferencias consumen
recursos del sistema, como tiempo de la CPU, que de otro modo podrían utilizarse provechosamente.

· Figura 3.1 jerarquía de memorias

Los niveles que componen la jerarquía 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 concidera un nivel mas de la jerarquia de memorias)

3.2.3 Estrategias de Administración de Memoria


Estrategias de Administración del Almacenamiento.-Están dirigidas a la obtención del mejor uso posible del recurso del almacenamiento
principal. Se dividen en las siguientes categorías:
· Estrategias de búsqueda:
o Estrategias de búsqueda por demanda.

Elaboró: MGTI Rosana Ayala Landeros 33


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

o Estrategias de búsqueda anticipada.


· Estrategias de colocación.
· Estrategias de reposición.

Las “estrategias de búsqueda” están relacionadas con el hecho de cuándo obtener el siguiente fragmento de programa o de datos para
su inserción en la memoria principal. En la “búsqueda por demanda” el siguiente fragmento de programa o de datos se carga al
almacenamiento principal cuando algún programa en ejecución lo referencia. Se considera que la “búsqueda anticipada” puede producir
un mejor rendimiento del sistema.

Las “estrategias de colocación” están relacionadas con la determinación del lugar de la memoria donde se colocará (cargará) un
programa nuevo.

Las “estrategias de reposición” están relacionadas con la determinación de qué fragmento de programa o de datos desplazar para dar
lugar a los programas nuevos.

3.2.4 Asignación Contigua VS No continua


En la “asignación contigua” cada programa ocupa un bloque contiguo y sencillo de localizaciones de almacenamiento. En la “asignación
no contigua” un programa se divide en varios bloques o “segmentos” que pueden almacenarse en direcciones que no tienen que ser
necesariamente adyacentes, por lo que es más compleja pero más eficiente que la asignación continua.

3.2.5. Multiprogramación con partición fija y variable e intercambio de almacenamiento


Se denomina multiprogramación a la técnica que permite que dos o más procesos ocupen la misma unidad de memoria principal y que
sean ejecutados al “mismo tiempo” (seudo-paralelismo, en una única CPU sólo puede haber un proceso a la vez) en la unidad central de
proceso o CPU.

ventajas:
· La ya mencionada, varios procesos en ejecución.
· Permite el servicio interactivo simultáneo a varios usuarios de manera eficiente.
· Aprovecha los tiempos que los procesos pasan esperando a que se completen sus operaciones de E/S

Elaboró: MGTI Rosana Ayala Landeros 34


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

· Aumenta el uso de la CPU.


· Las direcciones de los procesos son relativas, el programador no se preocupa por saber en dónde estará el proceso dado que el
sistema operativo es el que se encarga de convertir la dirección lógica en física.

Un proceso entra a ejecutarse y llega al momento en que tiene que hacer espera por un dispositivo de entrada y/o salida por ejemplo, el
CPU estará ocioso mientras espera que el proceso puede usar el dispositivo para así finalmente ejecutarse. Los sistemas de
multiprogramación evitan eso ya que durante ese tiempo de esperar pasan a ejecutar otro proceso teniendo así al computador ocupado.

Particiones fijas.- Consiste en dividir la memoria en varias particiones de tamaño fijo. Cada partición puede contener exactamente un
proceso.

El nivel de multiprogramación está limitado por el número de particiones. Cuando una partición está libre, se selecciona un proceso de la
cola de entrada y se carga en la partición libre; cuando un proceso termina, la partición está disponible para otro. El sistema operativo
conserva una tabla que indica qué partes de la memoria están disponibles y cuales están ocupadas.

Particiones Variables
* Cada trabajo ocupa tanto espacio como necesita.
* El tamaño del trabajo a ubicar no puede ser mayor que el almacenamiento principal disponible
* Se disminuye parcial o totalmente el desperdicio de memoria
* Aparecen: Condensación y Compactación

El nivel de multiprogramación está limitado por el número de particiones. Cuando una partición está libre, se selecciona un proceso de la
cola de entrada y se carga en la partición libre; cuando un proceso termina, la partición está disponible para otro. El sistema operativo
conserva una tabla que indica qué partes de la memoria están disponibles y cuales están ocupadas.

3.3 Organización de memoria virtual

La memoria virtual es la separación de la memoria lógica del usuario de la memoria física. Esta separación permite proporcionar a los
programadores una gran memoria virtual cuando sólo se dispone de una memoria física más pequeña. La memoria virtual facilita las
tareas de programación, ya que el programador no se tiene que preocupar por la cantidad de memoria física disponible.

Elaboró: MGTI Rosana Ayala Landeros 35


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas
3.4Administración de Memoria virtual
Las diferentes organizaciones de almacenamiento virtual generalmente implementadas son [7, Deitel]:

· Paginación.
· Segmentación.
· Segmentación y paginación.
· Paginación Segmentada

3.4.1 Paginación
En sistemas operativos de computadoras, los sistemas de paginación de memoria dividen los programas en pequeñas partes o páginas.
Del mismo modo, la memoria es dividida en trozos del mismo tamaño que las páginas llamados marcos de página. De esta forma, la
cantidad de memoria desperdiciada por un proceso es el final de su última página, lo que minimiza la fragmentación interna y evita la
externa.

En un momento cualquiera, la memoria se encuentra ocupada con páginas de diferentes procesos, mientras que algunos marcos están
disponibles para su uso. El sistema operativo mantiene una lista de estos últimos marcos, y una tabla por cada proceso, donde consta en
qué marco se encuentra cada página del proceso. De esta forma, las páginas de un proceso pueden no estar contiguamente ubicadas en
memoria, y pueden intercalarse con las páginas de otros procesos.

En la tabla de páginas de un proceso, se encuentra la ubicación del marco que contiene a cada una de sus páginas. Las direcciones
lógicas ahora se forman como un número de página y de un desplazamiento dentro de esa página (conocido comúnmente como offset). El
número de página es usado como un índice dentro de la tabla de páginas, y una vez obtenida la dirección del marco de memoria, se utiliza
el desplazamiento para componer la dirección real o dirección física. Este proceso se realiza en una parte del computador específicamente
diseñada para esta tarea, es decir, es un proceso hardware y no software.

De esta forma, cuando un proceso es cargado en memoria, se cargan todas sus páginas en marcos libres y se completa su tabla de
páginas. El mecanismo de paginación cumple dos funciones:

· Llevar a cabo la transformación de una dirección virtual a física, o sea, la determinación de la página a la que corresponde una
determinada dirección de un programa, así como del marco, si lo hay, que ocupa esta página;

Elaboró: MGTI Rosana Ayala Landeros 36


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

· Transferir, cuando haga falta, páginas de la memoria secundaria a la memoria principal, y de la memoria principal a la memoria
secundaria cuando ya no sean necesarias.

Figura3.2 Transformación de direcciones para llevar a cabo la paginación

Así pues, cada vez que la CPU genere una dirección de memoria ésta es transformada por una unidad hardware, de forma que en el bus
del sistema se introduce la dirección física correspondiente. Es importante observar que la paginación es en sí misma una forma de
reubicación dinámica. Cada dirección lógica es transformada en alguna dirección física por el hardware de paginación. Observe también
que si el tamaño de página (como es lo usual) es una potencia de dos, el hardware no precisa realizar ninguna división, simplemente sabe
que los últimos n bits, si el tamaño de página es de 2n , representan el desplazamiento, y los primeros bits la página.

Cada proceso debe tener su propia tabla de páginas, y su dirección de comienzo en la memoria principal forma parte de la porción del
PCB utilizada para realizar un cambio de proceso.

Como el número de marcos (cantidad de memoria real) asignados a un proceso será normalmente menor que el número de páginas que
éste utiliza, es muy posible que una dirección del programa haga referencia a una página que no se encuentre en aquel momento en la

Elaboró: MGTI Rosana Ayala Landeros 37


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas
memoria principal. En este caso el elemento correspondiente de la tabla de páginas estará vacío, provocando el hardware una interrupción
de "fallo de página" si se intenta acceder a ella. Esta interrupción provoca que el control pase al software (al sistema operativo), para que
éste inicie la transferencia de la página que falta desde la memoria secundaria a la memoria principal, y actualice de acuerdo con ello la
tabla de páginas. El proceso en ejecución se hará no listo hasta que se haya completado esta transferencia. La posición de las páginas en
la memoria secundaria puede guardarse en una tabla separada o en la misma tabla de páginas. En este último caso, es necesario un "bit
de presencia" en cada elemento de la tabla de páginas, para indicar si la página se encuentra presente o no en la memoria principal, y si
el campo de direcciones debe interpretarse como una dirección de marco, o bien como una dirección de la memoria secundaria.

Si no existe ningún marco vacío en el momento en que ocurre un fallo de página, hay que guardar en la memoria secundaria alguna otra
página con el fin de hacer sitio a la nueva. La elección de la página que habrá que sacar es el resultado de un algoritmo de reemplazo
de página. Por el momento, vamos a destacar tan sólo el hecho de que la información que necesita el algoritmo de cambio de página,
puede estar contenida en algunos bits adicionales que se añaden a cada elemento de la tabla de páginas.

Quizás habría que aclarar, que toda la operación de transformaciones de direcciones la lleva a cabo el hardware, excepto en el caso en
que haya que traer una página de la memoria secundaria. En este caso, la aplicación del algoritmo de cambio de página, así como la
actualización de la tabla de páginas, las lleva a cabo el software.

La anterior discusión proporciona una visión general de cómo funciona la paginación. En la práctica hay que hacer una serie de
modificaciones para llegar a una implementación viable. Una de ellas es que la transformación de dirección virtual a física debe ser rápida.

3.4.2 Segmentación

Es un esquema de administración de la memoria que soporta la visión que el usuario tiene de la misma. Un espacio de direcciones lógicas
es una colección de segmentos. Cada segmento tiene un nombre y una longitud. Las direcciones especifican tanto el nombre del
segmento como el desplazamiento dentro del segmento. Por lo tanto, el usuario especifica cada dirección mediante dos cantidades: un
nombre de segmento y un desplazamiento.

Elaboró: MGTI Rosana Ayala Landeros 38


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Figura 3.3 visión del usuario de la memoria

¿Cuál es la visión de la memoria que tiene el usuario ? Concibe el usuario la memoria como una tabla lineal de palabras, algunas de las
cuales contienen instrucciones mientras que otras contienen datos, o bien se prefiere alguna otra visión de la memoria ? Hay un acuerdo
general en que el usuario o programador de un sistema no piensa en la memoria como una tabla lineal de palabras. Más bien prefieren
concebirla como una colección de segmentos de longitud variable, no necesariamente ordenados (fig. 3.3).

Por simplicidad de implementación, los segmentos están numerados y se referencian por un número de segmento en lugar de por un
nombre. Normalmente el programa de usuario se ensambla (o compila), y el ensamblador (o el compilador) construye automáticamente
segmentos que reflejan el programa de entrada.

Al igual que la tabla de páginas, la tabla de segmentos puede situarse bien en registros rápidos o bien en memoria. Una tabla de
segmentos mantenida en registros puede ser referenciada muy rápidamente: la adición a la base y la comparación con el límite pueden
realizarse simultáneamente para ahorrar tiempo.

Elaboró: MGTI Rosana Ayala Landeros 39


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas
Compartición y protección
Una ventaja importante de la segmentación es la asociación de la protección con los segmentos. Puesto que los segmentos representan
una porción del programa definida semánticamente, es probable que todas las entradas en el segmento se utilicen de la misma manera.
De ahí que tengamos algunos segmentos que son instrucciones, mientras que otros son datos. En una arquitectura moderna las
instrucciones son no automodificables, de modo que los segmentos de instrucciones pueden definirse como de sólo lectura o sólo
ejecución. El hardware verificará los bits de protección asociados a cada entrada en la tabla de segmentos para impedir accesos ilegales a
memoria, tales como tentativas de escribir en un segmento de sólo lectura o de utilizar un segmento de sólo ejecución como datos.
Situando una tabla en un segmento propio, el hardware verificará automáticamente que toda indexación en la tabla es legal, y no
sobrepasa los límites de la misma. Así, muchos errores frecuentes en programas serán detectados por hardware antes de que puedan
ocasionar un daño serio.

Otra ventaja de la segmentación está relacionada con la compartición de código y datos. Los segmentos se comparten cuando las
entradas en las tablas de segmentos de dos procesos diferentes apuntan a las mismas posiciones físicas.

La compartición se produce a nivel de segmento. Por lo tanto, cualquier información puede compartirse definiéndole un segmento. Pueden
compartirse varios segmentos, de modo que es posible compartir un programa compuesto de más de un segmento.

El ordenador GE 645 utilizado con Multics tenía 4 registros que contenían los números de segmento del segmento actual, del segmento de
pila, del segmento de enlace y de un segmento de datos. Los programas pocas veces hacen referencia directamente a un número de
segmento, sino siempre indirectamente a través de estos cuatro registros de segmento. Esto permite que el código pueda compartirse
libremente.

Fragmentación
El sistema operativo tiene que encontrar y asignar memoria para todos los segmentos de un programa de usuario. Esta situación es
similar a la paginación, excepto en el hecho de que los segmentos son de longitud variable; las páginas son todas del mismo tamaño. Por
tanto, como en el caso de las particiones dinámicas, la asignación de memoria es un problema de asignación dinámica de
almacenamiento, resuelto probablemente mediante un algoritmo del mejor o primer ajuste.

La segmentación puede ocasionar entonces fragmentación externa, cuando todos los bloques libres de memoria son demasiado
pequeños para acomodar a un segmento. En este caso, el proceso puede simplemente verse obligado a esperar hasta que haya

Elaboró: MGTI Rosana Ayala Landeros 40


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

disponible más memoria (o al menos huecos más grandes), o puede utilizarse la compactación para crear huecos mayores. Puesto que la
segmentación es por naturaleza un algoritmo de reubicación dinámica, podemos compactar la memoria siempre que queramos.

3.4.3 Estrategias de Administración de Memoria Virtual


Es un método mediante el cual, un sistema operativo simula tener más memoria principal que la que existe físicamente. 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 paginación como método de administración de memoria básica y algún
mecanismo de intercambio (para descargar paginas de la memoria principal hacia el disco duro y para cargar esas páginas de nuevo a la
memoria). La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria
física de una maquina. Esta “ilusión” permite que los programas se hagan sin tener en cuenta el tamaño exacto de la memoria física. La
ilusión de la memoria virtual esta soportada por el mecanismo de traducción de memoria, junto con una gran cantidad de almacenamiento
rápido en disco duro. Así en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequeña parte
del, está en memoria real y el resto almacenado en el disco, y puede ser referenciado fácilmente.

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 más grande posible.

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

Estrategias de colocación: Determinan en que lugar del almacenamiento primario se debe colocar una pagina o un segmento entrante.
Una página entrante se puede colocar en cualquier marco de página disponible.

Elaboró: MGTI Rosana Ayala Landeros 41


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Estrategias de reemplazo: Sirven para decidir cual página o segmento se debe desplazar para dar espacio a una página o segmento
entrante cuando esta completamente ocupado el almacenamiento primario.

La memoria virtual ha llegado a ser un componente esencial de la mayoría de los sistemas operativos actuales. Y como en un instante
dado, en la memoria sólo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener más procesos en la memoria. Es
más, 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 cómo gestionar este esquema.

La memoria virtual también simplifica la carga del programa para su ejecución llamada reubicación, este procedimiento permite que el
mismo programa se ejecute en cualquier posición de la memoria física

Elaboró: MGTI Rosana Ayala Landeros 42


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

UNIDAD IV ADMINISTRACION DE ENTRADA SALIDA


Un computador se compone de uno o más procesadores o CPUs, memoria principal o RAM, memoria secundaria (discos), tarjetas de
expansión (tarjetas de red, modems y otros), monitor, teclado, mouse y otros dispositivos. O sea, es un sistema complejo. Escribir
programas que hagan uso correcto de todas estas componentes no es una tarea trivial. Peor aún si hablamos de uso óptimo. Si cada
programador tuviera que preocuparse de, por ejemplo, como funciona el disco duro del computador, teniendo además siempre presentes
todas las posibles cosas que podrían fallar, entonces a la fecha se habría escrito una cantidad bastante reducida de programas.

Una de las funciones principales de un S. O. es el control de todos los dispositivos de e / s de la computadora [23, Tanenbaum].
· Entrada: · Salida: · Entrada/salida:
o Teclado o Monitor o Unidades de
o Ratón o Altavoz almacenamiento
o Joystick o Auriculares o CD
o Lápiz óptico o Impresora o DVD
o Micrófono o Plotter o Módem
o Webcam o Proyector o Fax
o Escáner o USB
o Escáner de código de
barras
o Pantalla táctil

ACTIVIDAD DE APRENDIZAJE: Explicar el funcionamiento de algún dispositivos de E/S

Las principales funciones relacionadas son:

· Enviar comandos a los dispositivos.


· Detectar las interrupciones.
· Controlar los errores.
· Proporcionar una interfaz entre los dispositivos y el resto del sistema:
o Debe ser sencilla y fácil de usar.
o Debe ser la misma (preferentemente) para todos los dispositivos (independencia del dispositivo).

Elaboró: MGTI Rosana Ayala Landeros 43


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

El código de e / s representa una fracción significativa del S. O. El uso inapropiado de los dispositivos de e / s frecuentemente genera
ineficiencias del sistema, lo que afecta la performance global.

4.1 Dispositivos y manejadores de dispositivos


Todos los dispositivos de E/S se pueden agrupar en tres grandes grupos:

• Dispositivos de interfaz de usuario.


• Dispositivos de almacenamiento.
• Dispositivos de comunicaciones.

El sistema de E/S es la parte del sistema operativo que se ocupa de facilitar el manejo de los dispositivos de E/S ofreciendo una visión
lógica simplificada de los mismos que pueda ser usada por otros componentes del sistema operativo (como el sistema de archivos) o
incluso por el usuario. Mediante esta visión lógica se ofrece a los usuarios un mecanismo de abstracción que oculta todos los detalles
relacionados con los dispositivos físicos, así como del funcionamiento real de los mismos. El sistema operativo debe controlar el
funcionamiento de todos los dispositivos de E/S para alcanzar los siguientes objetivos:

ü Facilitar el manejo de los dispositivos de E/S. Para ello debe ofrecer una interfaz entre los dispositivos y el resto del sistema que
sea sencilla y fácil de utilizar.
ü Optimizar la E/S del sistema, proporcionando mecanismos de incremento de prestaciones donde sea necesario.
ü Proporcionar dispositivos virtuales que permitan conectar cualquier tipo de dispositivo físico sin que sea necesario remodelar el
sistema de E/S del sistema operativo.
ü Permitir la conexión de dispositivos nuevos de E/S, solventando de forma automática su instalación usando mecanismos del tipo
plug & play.

En el modelo de conexión de un periférico se distinguen dos elementos:


ü Periféricos o dispositivos de E/S. Elementos que se conectan a la unidad central de proceso a través de las unidades de
entrada/salida. Son el componente mecánico que se conecta a la computadora.
ü Controladores de dispositivos o unidades de E/S. Se encargan de hacer la transferencia de información entre la memoria principal
y los periféricos. Son el componente electrónico a través del cual se conecta el dispositivo de E/S. Tienen una conexión al bus de
la computadora y otra para el dispositivo (generalmente mediante cables internos o externos).

Elaboró: MGTI Rosana Ayala Landeros 44


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Para empezar una operación de E/S, la CPU tiene que escribir sobre los registros los datos de la operación a través de una dirección de
E/S o de memoria asignada únicamente al controlador. Según se haga de una u otra forma, se distingue entre dispositivos conectados
por puertos o proyectados en memoria.

El modelo de dispositivos por puertos es clásico en las arquitecturas de Intel. En ellas, cuando se instala un dispositivo, a su
controlador se le asigna un puerto de E/S, una interrupción hardware y un vector de interrupción. Para efectuar una operación de E/S la
CPU ejecuta operaciones por puerto con la dirección de puerto del dispositivo y con parámetros para indicar qué registro se quiere
manipular. Todas las operaciones de entrada/salida (pantalla gráfica, impresoras, ratón, discos, etc.) se realizan usando esas dos
instrucciones en lenguaje máquina con los parámetros adecuados. El problema de este tipo de direccionamiento es que exige conocer las
direcciones de E/S y programar las instrucciones especiales de E/S, lo que es significativamente distinto del modelo de memoria de la
computadora.

El modelo de direccionamiento de E/S es el modelo proyectado en memoria. Este modelo, típico de las arquitecturas de Motorola,
asigna a cada dispositivo de E/S un rango de direcciones de memoria a través de las cuales se escribe sobre los registros del controlador.
En este modelo no hay instrucciones específicas de E/S, sino que las operaciones se llevan a cabo mediante instrucciones máquina de
manejo de memoria, lo que permite gestionar un mapa único de direcciones de memoria. Sin embargo, para no tener conflictos con otros
accesos a memoria y para optimizar las operaciones, se reserva una zona de memoria física para asignar las direcciones de E/S.

Los dispositivos de almacenamiento secundario y terciario manejan la información en unidades de tamaño fijo, denominadas bloques, por
lo que a su vez se denominan dispositivos de bloques. Estos bloques se pueden direccionar de manera independiente, lo que permite leer
o escribir un bloque con independencia de los demás. Los dispositivos de bloque lo son porque el hardware fuerza la existencia de
accesos de un tamaño determinado. Un disco, por ejemplo, se divide en sectores de 512 bytes o de 1 KB, siendo un sector la unidad
mínima de transferencia que el controlador del disco puede manejar. Los dispositivos de caracteres, como los terminales, impresoras,
tarjetas de red, módems, etcétera, no almacenan información en bloques de tamaño fijo. Gestionan flujos de caracteres de forma lineal y
sin ningún tipo de estructura de bloque. Un teclado es un buen ejemplo de estos dispositivos.

Un controlador de dispositivo (llamado normalmente controlador o driver) es un programa informático que permite al sistema operativo
interactuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz -posiblemente estandarizada- para
usarlo. Se puede esquematizar como un manual de instrucciones que le indica cómo debe controlar y comunicarse con un dispositivo en
particular. Por tanto, es una pieza esencial, sin la cual no se podría usar el hardware.

Elaboró: MGTI Rosana Ayala Landeros 45


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Existen tantos tipos de controladores como tipos de periféricos, y es frecuente encontrar más de un controlador posible para el mismo
dispositivo, cada uno ofreciendo un nivel distinto de funcionalidades.

Los controladores son muy variados, casi tanto como los dispositivos de E/S. Muchos de ellos, como los de disco, pueden controlar
múltiples dispositivos. Otros, como los de canales de E/S, incluyen su propio procesamiento y bus para controlar la E/S por programa y
evitar interrupciones en la UCP de la computadora. De cualquier forma, en los últimos años ha existido un esfuerzo importante de
estandarización de los dispositivos, lo que permite usar un mismo controlador para dispositivos de distintos fabricantes. Un buen ejemplo
lo constituyen los dispositivos SCSI (Small Computers System Interface ó Sistema de Interfaz para Pequeñas Computadoras) cuyos
controladores ofrecen una interfaz común independientemente de que se trate de un disco, una cinta, un CD-ROM, etc. Otro buen ejemplo
son los controladores IDE (Integrated Drive Electronics), que suelen usarse para conectar los discos en todas las computadoras
personales. En cualquier caso, y sea como sea el controlador, su misión es convertir los datos del formato interno del dispositivo a
uno externo que se ofrezca a través de una interfaz de programación bien definida. Los controladores de dispositivo se suelen
agrupar en alguna de las siguientes categorías o clases:
• Adaptadores de audio (tarjetas de sonido).
• Dispositivos de comunicación (infrarrojos, módems, etc).
• Dispositivos de visualización; pantallas (displays).
• Teclados.
• Ratón (“mouse” y otros señaladores gráficos).
• Dispositivos multimedia.
• Dispositivos de Red.
• Impresoras.
• Almacenamiento

4.2 Mecanismos y Manejadores de Dispositivos (device drivers)


El controlador es el componente más importante desde el punto de vista del sistema operativo, ya que constituye la interfaz del dispositivo
con el bus de la computadora y es el componente que se ve desde la CPU. El SO generalmente trabaja con el controlador y no con el
dispositivo. Los modelos más frecuentes de comunicación entre la cpu y los controladores son:

-Para la mayoría de las micro y mini computadoras: Modelo de bus del sistema.
-Para la mayoría de los mainframes: Modelo de varios buses y computadoras especializadas en e/s llamadas canales de e/s.

Elaboró: MGTI Rosana Ayala Landeros 46


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

El S. O. realiza la E/S al escribir comandos en los registros de los controladores; los parámetros de los comandos también se cargan en
los registros de los controladores. Al aceptar el comando, la CPU puede dejar al controlador y dedicarse a otro trabajo. Al terminar el
comando, el controlador provoca una interrupción para permitir que el SO:
-Obtenga el control de la CPU
-Verifique los resultados de la operación.

La CPU obtiene los resultados y el estado del dispositivo al leer uno o más bytes de información de los registros del controlador.

Su programación se lleva a cabo mediante una interfaz de muy bajo nivel que proporciona acceso a una serie de registros del controlador,
incluidos en el mapa de E/S de la computadora, que se pueden acceder mediante instrucciones de máquina de E/S. Hay tres registros
importantes en casi todos los controladores: registro de datos, estado y control.

El registro de datos sirve para el intercambio de datos. En él irá el controlador cargando los datos leídos y de él irá extrayendo los datos
para su escritura en el periférico. Un bit del registro de estado sirve para indicar que el controlador puede transferir una palabra. En las
operaciones de lectura esto significa que ha cargado en el registro de datos un nuevo valor, mientras que en las de escritura significa que
necesita un nuevo dato. Otros bits de este registro sirven para que el controlador indique los problemas que ha encontrado en la ejecución
de la última operación de E/S.

El registro de control sirve para indicarle al controlador las operaciones que ha de realizar. Los distintos bits de este registro indican
distintas acciones que ha de realizar el periférico. Para empezar una operación de E/S, la CPU tiene que escribir sobre los registros
anteriores los datos de la operación a través de una dirección de E/S o de memoria asignada únicamente al controlador. Este modelo vale
tanto para los terminales o la pantalla como para los discos. Las características del controlador son muy importantes, ya que definen el
aspecto del periférico para el sistema operativo. Atendiendo a las características del hardware de los dispositivos, se pueden observar los
siguientes aspectos distintivos:
• Dirección de E/S. En general hay dos modelos de direccionamiento de E/S, los que usan puertos y los que proyectan los
registros en memoria.
•Unidad de transferencia. Los dispositivos suelen usar unidades de transferencia de tamaño fijo. Hay dos modelos clásicos
de dispositivos: de caracteres y de bloques.
• Interacción computadora-controlador. La computadora tiene que interaccionar con la computadora para realizar las

Elaboró: MGTI Rosana Ayala Landeros 47


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

operaciones de E/S y saber cuándo terminan.


Un controlador de dispositivo o unidad de E/S se encarga de controlar uno o más dispositivos del mismo tipo y de intercambiar información
entre ellos y la memoria principal o unidad central de proceso de la computadora. El controlador debe encargarse además de sincronizar
la velocidad del procesador con la del periférico y de detectar los posibles errores que se produzcan en el acceso a los periféricos.

En el caso de un controlador de disco, éste debe encargarse de convertir un flujo de bits procedente del disco a un bloque de bytes
detectando y corrigiendo, si es posible, los errores que se produzcan en esta transferencia. Una vez obtenido el bloque y comprobado que
se encuentra libre de errores, deberá encargarse de transferirlo a memoria principal. La información entre los controladores de dispositivo
y la unidad central de proceso o memoria principal se puede transferir mediante un programa que ejecuta continuamente y lee o escribe
los datos del (al) controlador. Con esta técnica, que se denomina E/S programada, la transferencia de información entre un periférico y el
procesador se realiza mediante la ejecución de una instrucción de E/S. Con esta técnica, es el procesador el responsable de extraer o
enviar datos entre el procesador y el controlador de dispositivo, lo que provoca que el procesador tenga que esperar mientras se realiza la
transferencia entre el periférico y el controlador. Dado que los periféricos son sensiblemente más lentos que el procesador, éste deberá
esperar una gran cantidad de tiempo hasta que se complete la operación de E/S.La técnica es dedicar una unida de procesamiento
especial para la E/S. La forma de hacerlo es muestrear continuamente los registros de estado de los controladores para ver si están
disponibles y, en ese caso, leer o escribir los registros.

Imagine un canal de E/S al que hay conectados múltiples buses de E/S que, a su vez, tienen múltiples dispositivos de E/S. Si la CPU
quiere escribir en uno de ellos, debe mirar su registro de estado hasta que los bits indiquen que no está ocupado. Cuando esto ocurra,
escribirá un bloque en los registros del controlador y esperará hasta que los bits de estado indiquen que está disponible. Imagine que
quiere leer de otro controlador, deberá esperar a que los bits de estado le indiquen que está disponible, programar la operación y esperar
a que se indique que los datos están disponibles. Evidentemente, incluso aunque la CPU esté controlando varios dispositivos de E/S,
siempre existe pérdida de ciclos debido a la existencia de las esperas.

4.3Estructura de datos para manejo de Dispositivos


Los procesos de usuario emiten peticiones de entrada/salida al sistema operativo. Cuando un proceso solicita una operación de E/S, el
sistema operativo prepara dicha operación y bloquea al proceso hasta que se recibe una interrupción del controlador del dispositivo
indicando que la operación está completa. Las peticiones se procesan de forma estructurada en las siguientes capas:

• Manejadores de interrupción.

Elaboró: MGTI Rosana Ayala Landeros 48


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

• Manejadores de dispositivos o drivers.


•Software de EIS independiente de los dispositivos. Este software está formado por la parte de alto nivel de los manejadores,
el gestor de cache, el gestor de bloques y el servidor de archivos.
•Interfaz del sistema operativo. Llamadas al sistema que usan las aplicaciones de usuario.

El sistema operativo estructura el software de gestión de E/S de esta forma para ofrecer a los usuarios una serie de servicios de E/S
independientes de los dispositivos. Esta independencia implica que deben emplearse los mismos servicios y operaciones de E/S para leer
datos de un disquete, de un disco duro, de un CD-ROM o de un teclado.

Manejadores de interrupción
Los manejadores de interrupción se encargan de tratar las interrupciones que generan los controladores de dispositivos una vez que éstos
están listos para la transferencia de datos o bien han leído o escrito los datos de memoria principal en caso de acceso directo a memoria.
Para tratar dicha interrupción se ejecuta el correspondiente manejador de interrupción cuyo efecto es el de salvar los registros, comunicar
el evento al manejador del dispositivo y restaurar la ejecución de un proceso (que no tiene por qué ser el interrumpido).

Los manejadores de interrupción suelen hacer algo más que comunicar el evento al manejador de dispositivo. Cuando una interrupción
ocurre muy frecuentemente, caso del reloj, o cuando la cantidad de información a transferir es muy pequeña, caso del teclado, sería muy
costoso comunicar siempre el evento al manejador de dispositivo asociado. En estos casos, el propio manejador de interrupción registra la
ocurrencia del evento, bien mediante el incremento de una variable global para el reloj o la acumulación de caracteres en un buffer del
teclado. La notificación al manejador se hace únicamente cada cierto número de ocurrencias del evento, en el caso del reloj, o activando
una bandera que indica que hay datos en el buffer del teclado.

Manejadores de dispositivos
Cada dispositivo de E/S, o cada clase de dispositivos, tiene un manejador asociado en el sistema operativo. Dicho manejador incluye:
código independiente del dispositivo para proporcionar al nivel superior del sistema operativo una interfaz de alto nivel y el código
dependiente del dispositivo necesario para programar el controlador del dispositivo a través de sus registros y datos.

La tarea de un manejador de dispositivo es aceptar peticiones, de la parte del código de E/S independiente del dispositivo, traducir dichas
peticiones a términos que entienda el controlador, enviar al mismo las órdenes adecuadas en la secuencia correcta y esperar a que se
cumplan.

Elaboró: MGTI Rosana Ayala Landeros 49


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Todos los manejadores tienen una lista de peticiones pendientes por dispositivo donde se encolan las peticiones que llegan de niveles
superiores. El manejador explora la lista de peticiones, extrae una petición pendiente y ordena su ejecución. La política de extracción de
peticiones de la lista es dependiente de manejador y puede ser FIFO. Una vez enviada la petición al controlador, el manejador se bloquea
o no, dependiendo de la velocidad del dispositivo.

Después de recibir el fin de operación, controla la existencia de errores y devuelve al nivel superior el estado de terminación de la
operación. Si tiene operaciones pendientes en la cola de peticiones, atiende a la siguiente, en caso de que le toque ejecutar después de la
operación de E/S. En caso contrario se bloquea.

Software de E/S independiente del dispositivo


La mayor parte del sistema de E/S es software independiente de dispositivo. Este nivel incluye el sistema de archivos y el de gestión de
red, el gestor de bloques, la cache de bloques y una parte de los manejadores de dispositivo. La principal función de esta capa de
software es ejecutar las funciones de E/S que son comunes a todos los dispositivos a través de una interfaz uniforme.

Internamente, en este nivel se proporciona acceso a nivel de bloques o caracteres, almacenamiento intermedio, gestión de los
dispositivos, planificación de la E/S y control de errores.

El tamaño de acceso a nivel de bloques se hace usando tamaños de bloque de acceso comunes para todo un sistema de archivos, lo que
permite ocultar que cada dispositivo puede tener distinto tamaño de sector y distinta geometría. Estos detalles quedan ocultos por la capa
de software in dependiente de dispositivo que ofrece una interfaz sobre la base de bloques lógicos del sistema de archivos. Lo mismo
ocurre con los dispositivos de caracteres, algunos de los cuales trabajan con un carácter cada vez, como el teclado, mientras otros
trabajan con flujos de caracteres, como el modem o las redes.

Para optimizar la E/S y para armonizar las peticiones de usuario, que pueden ser de cualquier tamaño, con los bloques que maneja el
sistema de archivos, el software de E/S proporciona almacenamiento intermedio en memoria del sistema operativo. Esta facilidad se usa
para tres cosas:

• Optimizar la E/S evitando accesos a los dispositivos.


• Ocultar las diferencias de velocidad con que cada dispositivo y usuario manejan los datos.
• Facilitar la implementación de la semántica de compartición, al existir una copia única de los datos en memoria.

Elaboró: MGTI Rosana Ayala Landeros 50


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

El sistema de E/S mantiene buffers en distintos componentes. Por ejemplo, en la parte del manejador del teclado independiente del
dispositivo existe un buffer para almacenar los caracteres que teclea el usuario hasta que se pueden entregar a los niveles superiores. Si
se usa una línea serie para leer datos de un sistema remoto y almacenarlos en el disco, se puede usar un buffer para guardar
temporalmente los datos hasta que tengan una cierta entidad y sea rentable escribirlos a disco. Si se está leyendo o escribiendo un
archivo, se guardan copias de los bloques en memoria para no tener que acceder al disco si se vuelven a leer.

La gestión de los dispositivos agrupa a su vez tres servicios: nombrado, protección y control de acceso.

El nombrado permite traducir los nombres de usuario a identificadores del sistema. Por ejemplo, en UNIX, cada dispositivo tiene un
nombre (p. ej.: /dev/cdrom) que se traduce en un único identificador interno (o nodo-i), que a su vez se traduce en un único número de
dispositivo principal (clase de dispositivo) y secundario (elemento de la clase). Cada dispositivo tiene asociada una información de
protección (en UNIX mediante 3 bits para dueño, grupo y mundo) y este nivel de software asegura que los requisitos de protección se
cumplen. Además proporciona control de acceso para que un dispositivo dedicado, como una impresora, sea accedido por un único
usuario cada vez.

Una de las funciones principales del sistema de E/S es la planificación de la E/S de los distintos componentes. Para ello se usan colas de
peticiones para cada clase de dispositivo, de las que se extraen las peticiones de cada dispositivo en particular. Cada una de estas colas
se ordena siguiendo una política de planificación, que puede ser distinta en cada nivel. Imagine el caso de LINUX, donde existe una cola
global de peticiones de E/S, ordenadas en orden FIFO, para los discos instalados. Cuando un manejador de disco queda libre, busca la
cola global para ver si hay peticiones para él y, si existen, las traslada a su cola de peticiones particular ordenadas según la política SCAN,
por ejemplo. Este mecanismo permite optimizar la E/S al conceder a cada mecanismo la importancia que, ajuicio de los diseñadores del
sistema operativo, se merece. En el caso de Windows, por ejemplo, el ratón es el dispositivo de E/S más prioritario del sistema. La razón
que hay detrás de esta política es conseguir un sistema muy interactivo.

En otros sistemas, como UNIX, las operaciones de disco son más prioritarias que las del ratón para poder desbloquear rápidamente a los
procesos que esperan por la E/S. Sea cual sea el criterio de planificación, todos los sistemas de E/S planifican las actividades en varios
lugares.

Por último, este nivel proporciona gestión de errores para aquellos casos que el manejador de dispositivo no puede solucionar. En general,
todos los sistemas operativos incluyen alguna forma de control de errores internos y de notificación al exterior en caso de que esos errores

Elaboró: MGTI Rosana Ayala Landeros 51


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

no se puedan resolver. Imagine, por ejemplo, que una aplicación quiere leer de un dispositivo que no existe. El sistema de E/S verá que el
dispositivo no está y lo notificará a los niveles superiores hasta que el error llegue a la aplicación. Sin embargo, es importante resaltar que
los sistemas operativos son cada vez más robustos y cada vez incluyen más control y reparación de errores, para lo cual usan métodos de
paridad, checksums, códigos correctores de error, etc. Además, la información que proporcionan cuando hay un error es cada vez mayor.

4.4 Operaciones de Entrada y Salida


Tanto en la E/S programada como la basada en interrupciones, la UCP debe encargarse de la transferencia de datos una vez que sabe
que hay datos disponibles en el controlador. Una mejora importante para incrementar la concurrencia entre la UCP y la E/S consiste en
que el controlador del dispositivo se pueda encargar de efectuar la transferencia de datos, liberando de este trabajo a la UCP, e
interrumpir a la UCP sólo cuando haya terminado la operación completa de EIS. Esta técnica se denomina acceso directo a memoria
(DMA, Direct Memory Access).

Cuando se utiliza acceso directo a memoria, es el controlador el que se encarga directamente de transferir los datos entre el periférico y la
memoria principal, sin requerir intervención alguna por parte del procesador. Esta técnica funciona de la siguiente manera: cuando el
procesador desea que se imprima un bloque de datos, envía una orden al controlador indicándole la siguiente información:

· Tipo de operación: lectura o escritura.


· Periférico involucrado en la operación.
· La dirección de memoria desde la que se va a leer o a la que va a escribir directamente con el
controlador de dispositivo (dirección).
· El número de bytes a transferir (contador).

Donde el campo Operación corresponde al código de operación de las instrucciones máquina normales. Especifica la operación que debe
realizar la CCW. La unidad de control decodifica este campo y envía las señales adecuadas de control al dispositivo. Existen varias
operaciones, las más importantes son las siguientes:

Lectura, Escritura, Control, Bifurcación y Flags

Una vez emitida la orden, el procesador continúa realizando otro trabajo sin necesidad de transferir el bloque de datos. Es el propio
controlador el que se encarga de transferir el bloque de datos del periférico a memoria. La transferencia se realiza palabra a palabra.

Elaboró: MGTI Rosana Ayala Landeros 52


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Cuando el controlador ha completado la transferencia, genera una interrupción que activa la rutina de tratamiento correspondiente, de tal
manera que se sepa que la operación ha concluido.

Utilizando acceso directo a memoria el procesador únicamente se ve involucrado al inicio y al final de la transferencia. Por tanto, cuando el
sistema operativo despierta al proceso que pidió la E/S, no tiene que copiar el bloque a memoria porque ya está allí. El DMA requiere una
etapa de almacenamiento intermedio en el controlador del dispositivo para armonizar la velocidad del dispositivo de EIS con la copia de
los datos en memoria principal. La razón para este almacenamiento intermedio reside en que una vez que el dispositivo empieza la
transferencia de datos, ésta debe hacerse a velocidad constante para evitar transferencias parciales y nuevas esperas de posicionamiento
del dispositivo sobre los datos (latencia). Una vez transferidos los datos a la memoria del controlador, éste los copia en memoria principal
aprovechando el ancho de banda libre del bus.

Los pasos a seguir en una operación de E/S con DMA son los siguientes:
1. Programación de la operación de E/S. Se indica al controlador la operación, los datos a transferir y la dirección de memoria sobre la que
se efectuará la operación.
2. El controlador contesta aceptando la petición de E/S.
3. El controlador le ordena al dispositivo que lea (para operación de lectura) una cierta cantidad de datos desde una posición determinada
del dispositivo a su memoria interna. 7.3.
4. Cuando los datos están listos, el controlador los copia a la posición de memoria que tiene en sus registros, incrementa dicha posición de
memoria y decrementa el contador de datospendientes de transferir.
5. Los pasos 3 y 4 se repiten hasta que no quedan más datos por leer.
6. Cuando el registro de contador está a cero, el controlador interrumpe a la UCP para in dicar que la operación de DMA ha terminado.

Elaboró: MGTI Rosana Ayala Landeros 53


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

UNIDAD V SISTEMA DE ARCHIVOS

5.1. Concepto

El sistema de archivos (File System) es un método para el almacenamiento y organización de archivos de computadora y los datos que
estos contienen, para hacer más fácil la tarea encontrarlos y accederlos. Los sistemas de archivos son usados en dispositivos de
almacenamiento como discos duros y CD-ROM e involucran el mantenimiento de la localización física de los archivos.

Es un conjunto de tipo de datos abstractos que son implementados para el almacenamiento, la organización jerárquica, la manipulación, el
acceso, el direccionamiento y la recuperación de datos. Los sistemas de archivos comparten mucho en común con la tecnología de las
bases de datos.

Los sistemas operativos tienen su propio sistema de archivos, estos pueden ser representados de forma textual (ej.: el shell de DOS) o
gráficamente utilizando un gestor de archivos.

El software del sistema de archivos se encarga de organizar los archivos (que suelen estar segmentados físicamente en pequeños
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 físicas de cada bloque.

Los sistemas de archivos pueden ser clasificados en tres categorías: sistemas de archivo de disco, sistemas de archivos de red y sistemas
de archivos de propósito especial. Ejemplos de sistemas de archivos son:

Sistema operativo Tipos de sistemas de archivos admitidos


Dos FAT16
Windows 95 FAT16
Windows 95 OSR2 FAT16, FAT32
Windows 98 FAT16, FAT32
Windows NT4 FAT, NTFS (versión 4)

Elaboró: MGTI Rosana Ayala Landeros 54


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Windows 2000/XP FAT, FAT16, FAT32, NTFS (versiones 4 y 5)


Linux Ext2, Ext3,Ext4, ReiserFS, Linux Swap (FAT16, FAT32, NTFS)
MacOS HFS (Sistema de Archivos Jerárquico), MFS (Sistemas de Archivos Macintosh)
OS/2 HPFS (Sistema de Archivos de Alto Rendimiento)
SGI IRIX XFS
FreeBSD, OpenBSD UFS (Sistema de Archivos Unix)
Sun Solaris UFS (Sistema de Archivos Unix)
IBM AIX JFS (Sistema Diario de Archivos)

5.2Nocion de archivo real y virtual


El término archivo relacionado directamente con ejemplos tales como los archivos de texto que se pueden generar con cualquier
procesador de texto. Una característica 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 línea corta de texto ocupa menos espacio en disco que esa misma línea 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 volátil, es decir la aquel tipo de memoria cuya información se pierde al interrumpirse el flujo de
corriente eléctrica, esto es, la memoria RAM.

5.3 Componentes Sistema de Archivos


Los componentes del sistema de archivos y de programación permiten interactuar con los recursos del sistema de archivos y de directorio
y provocar eventos en intervalos programados. Las instancias del componente File System Watcher permiten inspeccionar cambios en los
directorios y archivos y reaccionar cuando se producen. El componente Timer permite configurar programaciones simples de producción
de eventos y ejecutar el procesamiento asociado.

Tipos de sistemas de archivos

Sistemas de archivos de disco.-Un sistema de archivo de disco está diseñado para el almacenamiento de archivos en una unidad de
disco, que puede estar conectada directa o indirectamente a la computadora.
Otros sistemas de archivos

Elaboró: MGTI Rosana Ayala Landeros 55


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

§ HFS el Sistema de Archivo de Mac. Se usa en todo tipo de medio de almacenamiento, desde CD's y DVD's hasta el HD.
§ HFS+ es la variante moderna de HFS con soporte para una mayor capacidad de almacenamiento, unicode y mucho más.

Sistemas de archivos de red.- Un sistema de archivos de red es el que accede a sus archivos a través de una red. Dentro de esta
clasificación encontramos dos tipos de sistemas de archivos: los sistemas de archivos distribuidos (no proporcionan E/S en paralelo) y los
sistemas de archivos paralelos (proporcionan una E/S de datos en paralelo).

Sistemas de archivos de propósito especial.-Los sistemas de archivos de propósito especial son básicamente aquellos que no caen en
ninguna de las dos clasificaciones anteriores.

5.4 Organización Física y Lógica de los Archivos


En esta parte vamos a usar el término organización de archivos para referirnos a la estructura lógica de los registros determinada por la
manera en que se accede a ellos. La organización física del archivo en almacenamiento secundario depende de la estrategia de
agrupación y de la estrategia de asignación de archivos. Para seleccionar una organización de archivos hay diversos criterios que son
importantes:

· Fiabilidad para asegurar la confianza de los datos

§ Acceso Rápido para recuperar la información


§ Fácil actualización
§ Economía de almacenamiento
§ Mantenimiento simple
§ Fiabilidad para asegurar la confianza de los datos

La prioridad relativa de estos criterios va a depender de las aplicaciones que va a usar el archivo. El número de alternativas de
organización de archivos que se han implementado o propuesto es inmanejable, incluso para un libro dedicado a los sistemas de archivos.
La mayor parte de las estructuras empleadas en los sistemas reales se encuadran en una de estas categorías o puede implementarse
como una combinación de estas: Archivos secuenciales, Archivos Secuenciales indexados, Archivos indexados Archivos directos o de
dispersión.

Elaboró: MGTI Rosana Ayala Landeros 56


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas
5.5 Mecanismos de acceso
Método de Acceso Secuencial: La forma más común de estructura de archivo es el archivo secuencial. En este tipo de archivo, un
formato fijo es usado para los registros. Todos los registros tienen el mismo tamaño, constan del mismo número de campos de tamaño fijo
en un orden particular. Como se conocen la longitud y la posición de cada campo, solamente los valores de los campos se necesitan
almacenarse; el nombre del campo y longitud de cada campo son atributos de la estructura de archivos.

Un campo particular, generalmente el primero de cada registro se conoce como el campo clave. El campo clave identifica unívocamente al
registro. Así, los valores de la clave para registros diferentes son siempre diferentes.
Los archivos secuenciales son típicamente utilizados en aplicaciones de proceso de lotes Y son óptimos para dichas aplicaciones si se
procesan todos los registros. Para las aplicaciones interactivas que incluyen peticione s o actualizaciones de registros individuales, los
archivos secuenciales ofrecen un rendimiento pobre.

Normalmente un archivo secuencial se almacena en bloques, en un orden secuencial simple de los registros. La organización física del
archivo en una cinta o disco se corresponde exactamente con la ubicación lógica del archivo. En este caso, el procedimiento para ubicar
los nuevos registros en un archivo de pila separado, llamado archivo de registro (log file) o archivo de transacciones. Periódicamente, se
realiza una actualización por lotes que mezcla el archivo de registro con el archivo maestro para producir un nuevo archivo en secuencia
correcta de claves.

Método de Acceso Secuencial Indexado: Un método popular para superar las desventajas de los archivos secuenciales es el del
archivo secuencias indexado. El archivo secuencial indexado mantiene las características básicas de los archivos secuenciales: los
registros están organizados en una secuencia basada en un campo. Dos características se añaden: un índice del archivo para soportar los
accesos aleatorios y un archivo de desbordamiento ( overflow ). El índice provee una capacidad de búsqueda para llegar rápidamente a
las proximidades de un registro deseado. El archivo de desbordamiento (overflow) es similar al archivo de registro usado en un archivo
secuencial, pero esta integrado de forma que los registros del archivo de desbordamiento se ubican en la dirección de un puntero desde si
registró precedente.

En la estructura secuencial indexada más simple, se usa un solo nivel de indexación. El índice, en este caso, es un archivo secuencial
simple. Cada registro del archivo índice tiene dos campos: un campo clave, que es el mismo que el campo clave del archivo principal y un
puntero al archivo principal. Para encontrar un campo especifico se busca en el índice hasta encontrar el valor mayor de la clave que es
igual o precede al valor deseado de la clave. La búsqueda continua en el archivo principal a partir de la posición indicada por el puntero.

Elaboró: MGTI Rosana Ayala Landeros 57


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Método de Archivos Directos o de Dispersión (Hashed)


Los archivos directos explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida. Como en
los archivos secuenciales y secuenciales indexados, se requiere un campo clave en cada registro. Sin embargo, aquí no hay concepto de
ordenamiento secuencial.

5.6 Modelo jerárquico memoria secundaria


Generalmente 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 asignación de archivos de algún tipo —como FAT en sistemas de archivos MS-DOS o los i-
nodos de los sistemas Unix.

Normalmente los archivos y carpetas se organizan jerárquicamente

La estructura de directorios suele ser jerárquica, ramificada o "en árbol", aunque en algún caso podría ser plana. En algunos sistemas de
archivos los nombres de archivos son estructurados, con sintaxis especiales para extensiones de archivos y números de versión. En otros,
los nombres de archivos son simplemente cadenas de texto y los metadatos de cada archivo son alojados separadamente.

En los sistemas de archivos jerárquicos, usualmente, se declara la ubicación precisa de un


archivo con una cadena de texto llamada "ruta" —o path en inglés—. La nomenclatura para
rutas varía ligeramente de sistema en sistema, pero mantienen por lo general una misma
estructura.

Una ruta viene dada por una sucesión de nombres de directorios y subdirectorios, ordenados
jerárquicamente de izquierda a derecha y separados por algún carácter 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.

Elaboró: MGTI Rosana Ayala Landeros 58


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

UNIDAD VI PROTECCION Y SEGURIDAD

Los mecanismos de protección proporcionan un acceso controlado limitando los tipos de acceso a archivos que los diferentes usuarios
pueden efectuar. También se requiere protección para asegurar que sólo los procesos que hayan obtenido la autorización debida del
sistema operativo puedan operar no sólo con los archivos sino también con los segmentos de memoria, UCP y otros recursos.

La protección se proporciona con un mecanismo que controla el acceso de los programas, proceso o usuarios a los recursos definidos por
el sistema que se impondrán, y hacer cumplir las restricciones.

El sistema de seguridad impide el acceso no autorizado a un sistema, que podría dar pie a la destrucción o alteración mal intencionada de
los datos. La seguridad se encarga de validar a los usuarios del sistema para proteger la integridad de la información almacenada en el
sistema, así como los recursos físicos del sistema de computación

6.1 Concepto y objetivos de protección


La protección es un mecanismo control de acceso de los programas, procesos o usuarios al sistema o recursos. Hay importantes razones
para proveer protección. La más obvia es la necesidad de prevenirse de violaciones intencionales de acceso por un usuario.

Otras de importancia son, la necesidad de asegurar que cada componente de un programa, use solo los recursos del sistema de acuerdo
con las políticas fijadas para el uso de esos recursos. Un recurso desprotegido no puede defenderse contra el uso no autorizado o de un
usuario incompetente. Los sistemas orientados a la protección proveen maneras de distinguir entre uso autorizado y desautorizado.

Objetivos de la Protección
• Protección del SO frente a usuarios poco confiables.
• Control para que cada componente activo de un proceso sólo pueda acceder a los recursos especificados, y sólo en forma
congruente con la política establecida.
• La mejora de la protección implica también una mejora de la seguridad.
• Las políticas de uso se establecen:
ü Por el hardware.
ü Por el administrador / SO.

Elaboró: MGTI Rosana Ayala Landeros 59


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

ü Por el usuario propietario del recurso.

• La protección no sólo es cuestión del administrador, sino también del usuario.

6.2 Funciones de sistema de Protección


Dado que los sistemas de computo se han venido haciendo cada vez más sofisticados en sus aplicaciones, la necesidad de proteger su
integridad, también ha crecido. Los aspectos principales de protección en un Sistema Operativo son:

1. Protección de los procesos del sistema contra los procesos de usuario.


2. Protección de los procesos de usuario contra los de otros procesos de usuario.
3. Protección de Memoria.
4. Protección de los dispositivos.

6.3 Concepto de Seguridad


La seguridad está definida como el conjunto de medidas tomadas para protegerse contra robos, ataques, crímenes y espionajes o
sabotajes. La seguridad implica la cualidad o estado de estar seguro, es decir, la evitación de exposiciones a situaciones de peligro y la
actuación para quedar a cubierto frente a contingencias adversas.

El uso creciente y la confianza en los computadoras en todo el mundo ha hecho surgir una preocupación legítima con respecto a la
seguridad informática. El uso de los computadores ha extendido en ambientes comerciales, gubernamentales, militares e incluso en los
hogares. Grandes cantidades de datos vitales sensibles se están confiando y almacenado cada vez más en computadores. Entre ellos se
incluyen registros sobre individuos, negocios y diferentes registros públicos y secretos gubernamentales y militares. Grandes
transacciones monetarias tienen lugar diariamente en forma de transferencia electrónicas de fondos. Más recientemente, informaciones
tales como notificaciones de propiedad intelectual y datos comerciales estratégicos son también almacenados, procesados y diseminados
mediante computadores. Entre ellos se incluyen diseños de ventas, contratos legales y muchos otros.

La seguridad, no solo requiere un sistema de protección apropiado, sino también considerar el entorno externo en el que el sistema opera.
La protección interna no es útil si la consola del operador está al alcance de personal no autorizado, o si los archivos se pueden sacar

Elaboró: MGTI Rosana Ayala Landeros 60


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

simplemente del sistema de computación y llevarse a un sistema sin protección. Estos problemas de seguridad son esencialmente de
administración, no problemas del sistema operativo.

La información almacenada en el sistema, así como los recursos físicos del sistema de computación, tienen que protegerse contra acceso
no autorizado, destrucción o alteración mal intencionada, y la introducción accidental de inconsistencia.

Es muy importante ser consciente que por más que nuestra empresa sea la más segura desde el punto de vista de ataques externos,
Hackers, virus, etc. (conceptos luego tratados); la seguridad de la misma será nula si no se ha previsto como combatir un incendio.

La seguridad física es uno de los aspectos más olvidados a la hora del diseño de un sistema informático. Si bien algunos de los aspectos
tratados a continuación se prevén, otros, como la detección de un atacante interno a la empresa que intenta a acceder físicamente a una
sala de operaciones de la misma, no.

Esto puede derivar en que para un atacante sea más fácil lograr tomar y copiar una cinta de la sala, que intentar acceder vía lógica a la
misma.

Existen organismos oficiales encargados de asegurar servicios de prevención de riesgos y asistencia a los tratamientos de incidencias.
Como el CERT/CC (Computer Emergency Response Team Coordination Center) del SEI de la Carnegie Mellon University son centros de
alertas y reacción frente a los ataques informáticos, destinados a las empresas o administradores, pero generalmente estas informaciones
son accesibles a todo el mundo.

Seguridad Interna, Externa y Operacional

La seguridad interna está relacionada a los controles incorporados al hardware y al Sistema Operativo para asegurar los recursos del
sistema.

La seguridad externa está compuesta por la seguridad física y la seguridad operacional. La seguridad física incluye la protección contra
desastres (como inundaciones, incendios, etc.) y protección contra intrusos.

La seguridad operacional consiste en varias políticas y procedimientos implementados por el administrador del sistema de computación.

Elaboró: MGTI Rosana Ayala Landeros 61


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas
Seguridad Física

Consiste en la "aplicación de barreras físicas y procedimientos de control, como medidas de prevención y contramedidas ante amenazas
a los recursos e información confidencial"(1). Se refiere a los controles y mecanismos de seguridad dentro y alrededor del Centro de
Cómputo así como los medios de acceso remoto al y desde el mismo; implementados para proteger el hardware y medios de
almacenamiento de datos.

Tipos de Desastres
Cada sistema es único y por lo tanto la política de seguridad a implementar no será única. Este concepto vale, también, para el edificio en
el que nos encontramos. Es por ello que siempre se recomendarán pautas de aplicación general y no procedimientos específicos. Para
ejemplificar esto: valdrá de poco tener en cuenta aquí, en Entre Ríos, técnicas de seguridad ante terremotos; pero sí será de máxima
utilidad en Los Angeles, EE.UU.

Este tipo de seguridad está enfocado a cubrir las amenazas ocasionadas tanto por el hombre como por la naturaleza del medio físico en
que se encuentra ubicado el centro.

Las principales amenazas que se prevén en la seguridad física son:

1. Desastres naturales, incendios accidentales tormentas e inundaciones.


2. Amenazas ocasionadas por el hombre.
3. Disturbios, sabotajes internos y externos deliberados.

A veces basta recurrir al sentido común para darse cuenta que cerrar una puerta con llave o cortar la electricidad en ciertas áreas siguen
siendo técnicas válidas en cualquier entorno.

Los peligros más importantes que se corren en un centro de procesamiento; con el objetivo de mantener una serie de acciones a seguir en
forma eficaz y oportuna para la prevención, reducción, recuperación y corrección de los diferentes tipos de riesgos.

Incendios Inundaciones Condiciones Climatológicas

Señales de Radar (voltajes) Instalaciones Eléctricas Ergometría

Elaboró: MGTI Rosana Ayala Landeros 62


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

Control de Accesos

El control de acceso no sólo requiere la capacidad de identificación, sino también asociarla a la apertura o cerramiento de puertas, permitir
o negar acceso basado en restricciones de tiempo, área o sector dentro de una empresa o institución.

1. Utilización de Guardias
2. Utilización de Detectores de Metales
Utilización de Sistemas Biométricos
3. Verificación Automática de Firmas (VAF)

4. Seguridad con Animales


Sirven para grandes extensiones de terreno, y además tienen órganos sensitivos mucho más sensibles que los de cualquier
dispositivo y, generalmente, el costo de cuidado y mantenimiento se disminuye considerablemente utilizando este tipo de sistema.
Así mismo, este sistema posee la desventaja de que los animales pueden ser engañados para lograr el acceso deseado.
5. Protección Electrónica

6.4 La Seguridad en el S.O

Mediante la autorización se determina qué acceso se permite y a qué entidad. Como punto crítico se destaca la selección del personal y la
asignación del mismo. Generalmente se dividen responsabilidades, de esta manera un operario no debe conocer la totalidad del sistema
para cumplir con esas responsabilidades. Se deben instrumentar diversos controles, y el personal debe saber de la existencia de dichos
controles, pero desconocer cuáles son, para reducir la probabilidad de que intrusos puedan evadirlos.

Existen varios mecanismos que pueden usarse para asegurar los archivos, segmentos de memoria, CPU, y otros recursos administrados
por el Sistema Operativo. Por ejemplo, el direccionamiento de memoria asegura que unos procesos puedan ejecutarse solo dentro de sus
propios espacios de dirección. El timer asegura que los procesos no obtengan el control de la CPU en forma indefinida.

La protección se refiere a los mecanismos para controlar el acceso de programas, procesos, o usuarios a los recursos definidos por un
sistema de computación. Seguridad es la serie de problemas relativos a asegurar la integridad del sistema y sus datos.
Hay importantes razones para proveer protección. La más obvia es la necesidad de prevenirse de violaciones intencionales de acceso por

Elaboró: MGTI Rosana Ayala Landeros 63


Instituto Tecnológico de San Juan del Río Sistemas Operativos
Sistemas

un usuario. Otras de importancia son, la necesidad de asegurar que cada componente de un programa, use solo los recursos del sistema
de acuerdo con las políticas fijadas para el uso de esos recursos.

Un recurso desprotegido no puede defenderse contra el uso no autorizado o de un usuario incompetente. Los sistemas orientados a la
protección proveen maneras de distinguir entre uso autorizado y desautorizado.

Mecanismos y Políticas

El rol de la protección es proveer un mecanismo para el fortalecimiento de las políticas que gobiernan el uso de recursos. Tales políticas
se pueden establecer de varias maneras, algunas en el diseño del sistema y otras son formuladas por el administrador del sistema. Otras
pueden ser definidas por los usuarios individuales para proteger sus propios archivos y programas.
Las políticas son diversas, dependen de la aplicación y pueden estar sujetas a cambios a lo largo del tiempo.

Un principio importante es la separación de políticas de los mecanismos. ‘Los mecanismos determinan cómo algo se hará. Las políticas
deciden que se hará’ La separación es importante para la flexibilidad del sistema.

Monitoreo de amenazas

Una manera de reducir los riesgos de seguridad es tener rutinas de control en el sistema operativo para permitir o no el acceso a un
usuario. Estas rutinas interactúan con los programas de usuario y con los archivos del sistema. De esta manera, cuando un usuario desea
realizar una operación con un archivo, las rutinas determinan si se niega o no el acceso y en caso de que el mismo fuera permitido
devuelven los resultados del proceso. Además las rutinas de control permiten detectar los intentos de penetración al sistema y advertir en
consecuencia.

Elaboró: MGTI Rosana Ayala Landeros 64

Vous aimerez peut-être aussi