Professional Documents
Culture Documents
Interrupciones de E/S.
Para que se pueda dar una una interrupción E/S es necesario que se carga
en los registros apropiados dentro del controlador del dispositivo, dichos
registros le dicen al controlador las acciones que se van a realizar. La
ejecución de la interrupción E/S se puede llevar a cabo de 2 formas distintas:
• La E/S Sincronía: que solo devuelve en control a los procesos del
usuario cuando la operación se ha completado satisfactoriamente.
• La E/S Asíncrona: la cual puede devolver el control aunque el proceso
se siga ejecutando.
Estructura DMA.
Al momento de recibir información de un interrupción E/S asíncrona es
previsible que el tiempo que se toma este en la recepción con respecto al
manejo que se puede dar al mismo o a otros procesos relacionados, por tal
motivo a dichas interrupciones es normal que se le asigne una prioridad baja,
para que las interrupciones mas importantes y que e puedan dar en los
intervalos de tiempo que la interrupción E/S tiene, entre un envió y otro. Aun
así los intervalos de tiempo perdidos pueden resultar altos para dispositivos
E/S que logren alcanzar velocidades cercanas a la de la memoria.
Es por este motivo que se utiliza el acceso directo a memoria o DMA(direct
memory access) con dichos dispositivos, esto permite que el contralor de el
dispositivo pueda transferir un bloque completo de de datos desde su propio
bufete hacia la memoria, o caso contrario, sin que tener intervención directa
de la CPU. Esto permite el numero de interrupciones generadas descienda ya
que no se generaran por pequeñas cantidades de información (bytes) sin por
bloque completos de los mismos.
Estructura de Almacenamiento.
Para que un programa pueda ejecutarse es necesario que este se encuentre
en la memoria principal, ya que esta es una la una área de almacenamiento
de gran tamaño a la cual el procesador puede tener acceso. Dicho memoria
se puede ver como una matriz enorme de bytes con direcciones definidas
para cada una, dichas direcciones permiten el acceso a la información que allí
se guardan por medio el comando load, para cargar y store para guardar.
Jerarquías de almacenamiento
La amplia variedad de sistemas de almacenamiento en un sistema de
computador se puede organizar en una jerarquía según la velocidad y el costo,
en esta Los niveles más altos son costosos, pero rápidos. A medida que
bajamos por la jerarquía, el costo por bit generalmente disminuye, mientras
que el tiempo de acceso por lo regular aumenta. Este cambio resulta es
razonable; si un sistema de almacenamiento dado fuera más rápido y más
económico que otro no habría razón alguna para utilizar la memoria más lenta
y costosa.
El diseño de un sistema de memoria completo debe equilibrar estos
factores: sólo debe utilizar la memoria costosa necesaria, y contar con la
mayor cantidad posible de memoria no volátil de bajo costo. Se pueden
instalar caches para subsanar las diferencias de desempeño cuando existe
una gran disparidad en cuanto a tiempo de acceso o tasa de transferencia
entre dos componentes.
Protección de E/S.
Un programa de usuario puede perturbar el funcionamiento normal del sistema
emitiendo instrucciones de E/S no válidas, accediendo a posiciones de
memoria dentro del sistema operativo mismo, o negándose a ceder la CPU.
Podemos utilizar diversos mecanismos para asegurar que tales perturbaciones
no ocurran en el sistema.
Para evitar que un usuario realice E/S nó válida, definimos todas las
instrucciolnes de E/S como privilegiadas. Así, los usuarios no pueden emitir
instrucciones de E/S directamente; deben hacerlo a través del sistema
operativo. Para que la proteclción de E/S sea completa, debemos asegurar que
un programa de usuario nunca pueda asumir el control del computador en
modo de monitor. Si pudiera hacerlo, la proteccción de E/S peligraría.
Protección de la memoria
Con el fin de asegurar un funcionamiento correcto, debemos impedir que el
vector de interrupción sea modificado por un programa de usuario. También
debemos proteger contra modificaciones las rutinas de servicio de interrupción
del sistema operativo. Si no lo hacemos, un programa de usuario podría
sobrescribir las instrucciones de la rutina de servicio de interrupción con saltos
al programa del usuario, y así asumir el control desde la rutina de servicio, que
se ejecuta en modo de monitor.
Gestión de procesos
Podemos considerar que un proceso es un trabajo que se ejecuta por lotes o un
programa que se ejecuta en tiempo compartido, pero en realidad el concepto es
más general.
Un proceso necesita ciertos recursos, incluidos tiempo de CPU, memoria,
archivos y dispositivos de E/S, para llevar a cabo su tarea. Estos recursos se
otorgan al proceso en el momento en que se crea, o bien se le asignan durante
su ejecución-Ademas de los diferentes recursos físicos y lógicos que un proceso
obtiene cuando se le crea, podrían pasársele algunos datos de inicialización
(entradas).
Un programa por sí solo no es un proceso; un programa es una entidad
pasiva, como el contenido de un archivo almacenado en disco, mientras
que un proceso es una entidad activa, con un contador de programa que
especifica la siguiente instrucción por ejecutar.
Así, aunque haya dos procesos asociados al memo programa, se
considerarán como dos secuencias de ejecución individuales.
El sistema consiste en una collección de procesos, algunos de los
cuales son procesos del sistema operativo «los que ejecutan código del
sistema), siendo el resto procesos de usuario (los que ejecultan código de
algún usuario).
El sistema operativo se encarga de las siguientes actividades relacionadas con la
gestión de procesos:
Gestión de archivos
La gestión de archivos es uno de los componentes más visibles de un sistema
operativo. Los computadores pueden almacenar información en varios tipos
distintos de medios físicos. Los medios más comunes son cinta magnética,
disco magnético y disco óptico. Cada uno de éstos tiene su propias
características y organización física, y cada medio se controla con un
dispositivo, como una unidad de disco o una unidad de cinta, que tienen
características distintas y únicas. Estas propiedades incluyen la rapidez,
capacidad, tasa de transferencia de datos y método de acceso (secuencial o
aleatorio).
A fin de hacer más cómodo el uso del sistema de computación, el sistema
operativo presenta una perspectiva lógica uniforme del almacenamiento de
información, abstrayendo las propiedades físicas de sus dispositivos de
almacenamiento para definir una unidad de almacenamiento lógica, el archivo. El
sistema operativo establece la correspondencia entre los archivos y los medios
físicos, y accede a los archivos a través de los dispositivos de almacenamiento.
Un archivo es una colección de información relacionada definida por su creador.
Por lo regular, los archivos representan programas y datos. Los archivos de datos
pueden ser numéricos, alfabéticos o alfanuméricos. Los archivos pueden ser de
forma libre, como los de texto, o tener un formato rígido. Un archivo consiste en una
secuencia de bits, líneas o registros, cuyos significados han sido definidos por su
creador. El concepto de archivo es muy general.
El sistema operativo implementa el concepto abstracto de archivo administrando
los medios de almacenamiento masivo, como cintas y discos, y los dispositivos que
los controlan. Además, los archivos normalmente se organizan en directorios con
objeto de facilitar su uso. Por último, si varios usuarios tienen acceso a los archivos,
podría ser deseable controlar quién y de qué modo puede acceder a los archivos.
El sistema operativo se encarga de las siguientes actividades relacionadas con la
gestión de archivos:
Sistema de protección
Si un sistema de computación tiene múltiples usuarios y permite la
ejecución concurrente de múltiples procesos, es preciso proteger cada
proceso de las actividades de los demás. Con ese fin, se incluyen
mecanismos para asegurar que solo aquellos procesos que hayan
obtenido la autorización debida del sistema operativo puedan operar con
los archivos, segmentos de memoria, procesadores y demás recursos.
El término protección se refiere a un mecanismo para controlar el
acceso de programas, procesos o usuarios a los recursos definidos por
un sistema de computador. Este mecanismo debe incluir alguna forma
de especificar los controles que se impondrán, junto con alguna forma de
hacerlos cumplir.
Un recurso no protegido no paule defenderse contra el uso (o el mal uso)
por parte de un usuario incompetente o no autorizado. Un sistema
orientado hacia la protección permite distinguir entre el uso autorizado y
no autorizado, como veremos en el capítulo 19.
Manipulación de archivos
Primero necesitamos la facultad de crear (créate) y eliminar (delete archivos. Ambas
llamadas al sistema necesitan el nombre del archivo y tal vez algunos de sos
atributos. Una vez creado un archivo, es preciso abrirlo (open) para usarle. Tamlbién
podríamos leer (read), escribir (write) o reposicíonar (reposition) rebobinar o saltar al
fin del archivo, por ejemplo). Por último, necesitamos cerrar (cióse) el arlchivo para
indicar que ya no lo estamos usando.
Gestión de dispositivos
Un programa podría requerir recursos adicionales durante su ejecución para poder
continuar. Tales recursos podrían ser más memoria, unidades de cinta, acceso a
archivos, y demás. Si los recursos están disponibles, se pueden conceder, y el
control se devolverá al programa de usuario; si no, el programa tendrá que esperar
hasta que haya suficientes recursos disponibles.
Podemos ver los archivos como dispositivos abstractos o virtuales. Asi muchas
de las llamadas al sistema para archivos también se necesitan para los
dispositivos. Si el sistema tiene múltiples usuarios, primero hay que solicitar
(reqnest) el dispositivo, a fin de asegurar su uso exclusivo. Cuando el dispositivo
ya no se necesite, será preciso liberarlo (reléase). Estas funciones son similares a
las llamadas al sistema abrir y cerrar para archivos.
Mantenimiento de información
Muchas llamadas al sistema existen con el solo propósito de transferir información
entre el programa del usuario y el sistema operativo.
Comunicación
Hay dos modelos de comunicación comunes. En el modelo de transferencia de
mensajes, la información se intercambia por medio de un recurso de
comunicación entre procelsos provisto por el sistema operativo. Antes de que
pueda haber comunicación, se debe abrir una conexión o vinculación. Es preciso
conocer el nombre del otro comu-nicador, trátese de otro proceso en la misma
CPU o de un proceso en otro computador conectado por una red de
comunicaciones. Cada computador de una red tiene un nombre de anfitrión (host
ñame) por el cual comúnmente se le conoce. Así mismo, cada proceso tiene un
nombre de proceso que se traduce a un identífícador equivalente con el cual el
sistema operativo puede referirse a él. Las llamadas al sistema obtener
identífícador de anfitrión (get hostid) y obtener identífícador de proceso (get
processid) se encargan de esta traducción. A continuación, los identificadores se
pasan a las llalmadas abrir y cerrar de propósito general provistas por el sistema
operativo, o a llamadas al sistema específicas abrir conexión (open connection) y
cerrar conexión (cióse connection), dependiendo del modelo de comunicaciones
del sistema. Por lo regular, el proceso receptor debe otorgar su permiso para que
se establezca la comulnicación con una llamada aceptar conexión (accept
connection). La mayor parte de los procesos que reciben conexiones son
demonios (daemons) de propósito especial, es decir, programas del sistema
incluidos para ese fin. Los demonios ejecutan una llamalda esperar conexión
(wait for connection) y se les despierta cuando se establece una conexión. Acto
seguido el originador de la comunicación, llamado cliente, y el demolnio
receptor, llamado servidor, intercambian mensajes mediante llamadas al sistema
leer mensaje (read message) y escribir mensaje (write message). La llamada
cerrar conexión (cióse connection) termina la comunicación.
Programas del sistema
Algunos de ellos no son más que interfaces entre ei usuario y las llamadas al
sistema, mientras que otros son mucho más complejos. Los programas del
sistema se pueden dividir en varias categorías: