Anda di halaman 1dari 14

Sistemas de computación y operativos.

Por Leonardo Sanclemente

En el estudio de los sistemas operativos es muy común descartar la idea de


observar al sistema que se antepone a este en cuanto al control de una
computadora, el sistema de computación, sin embargo, para una mayor
comprensión es necesario hacer un desgloso de las funciones, acciones y
elementos principales de dichos sistemas.

Los sistemas de computación generales se encuentran compuestos


principalmente por una CPU y un cierto numero de controladores de
dispositivos, los cuales se encuentran conectado a un bus común, con el fin
de tener acceso a la memoria compartida del sistema. Cada uno de estos
controladores tiene la función de regular tipos determinados de dispositivos de
entra y salida, como por ejemplo , impresoras, teclados, pantallas entre otros.
Dichos controladores pueden encontrarse en ejecución de forma simultanea,
razón por la cual es común que a los dos componente antes mencionados se
le sume un controlador de memoria el tiene como función sincronizar los
accesos a la memoria.
El inicio normal de un sistema de computación se da con un proceso inicial o
“init” el cual se queda en espera de un suceso, el cual es llamado interrupción,
debido a que cambia el curso de ejecución del sistema. Estas interrupciones
pueden ser generadas por el hardware en cualquier momento, esto se logra
enviando una señal a la CPU por medio del bus del sistema, este proceso se
conoce como llamada al monitor o llamada al sistema.
Al darse una interrupciones la CPU transfiere su ejecución a una posición
donde habitualmente se encuentra el inicio de la rutina clasificada para
atender dicha interrupción, al realizarse por completo la rutina la CPU vuelve a
la operación que fue interrumpida y la reanuda. La forma en que se realiza
este proceso varia entre los diferentes sistemas de computación, sin embargo,
muchos realizan procesos semejantes entre si.
Normalmente al activarse una interrupción las demás se desactivan o quedan
en espera hasta el momento en que la rutina de dicha interrupción culmine, lo
cual impide que se sobrescriban datos que este manejando una interrupción
de manera simultanea con la otra, lo cual daría lugar a una interrupción
perdida. Mas allá de esto al momento de activar una interrupción es común
que en arquitecturas de interrupciones mas avanzadas se maneje una
jerarquía la cual dará un grado de prioridad para que ciertas interrupciones se
ejecuten primero que otras.
Actualmente los sistemas operativos son del tipo controlado por
interrupciones. Esto quiere decir que como se dijo anteriormente, de no haber
procesos o manejo de dispositivos que atender, el sistema se pone en estado
de espera hasta que alguna de estas opciones se de. Cuando esto sucede se
puede decir que el sistema se encuentra frente a una trampa o excepción, la
cual es una interrupción generada por software ya la sea por causa de un
error en el desarrollo de un proceso, o por causa de una llamado a un servicio
del sistema operativo por parte de un programa del usuario.

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.

Al realizarse una interrupción E/S se guarda información de la solicitud que


genero la E/S a un dispositivo en especifico en un espacio de memoria,
ademas de esto, se pausa cualquier otra solicitud destinada al manejo del
mismo dispositivo hasta que la actual culmine. Estos procesos se almacenan
en una cola en memoria para su próxima ejecución.

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.

Uso de caches (caching)


La información normalmente se guarda en algún sistema de
almacenamiento. A medida que se usa, esa información se copia en un
sistema de almacenamiento más rápido —el caché— de forma temporal.
Cuando necesitamos un elemento de información en particular, primero
vemos si está en el caché. Si así es, utilizamos la información directamente
del caché; si no, utilizamos la informa^ ción del sistema de almacenamiento
principal, colocando una copia en el caché bajo el supuesto de que hay una
probabilidad elevada de que se vaya a necesitar otra vez.
Observando mas a fondo este esquema, los registros internos programables,
como los registros Ínldice, funcionan como caché de alta velocidad para la
memoria principal. El programador (o compilador) ímplementa los algoritmos
de asignación y reemplazo de registros para decidir cuál información debe
mantener en registros y cuál en la memoria principal. También hay caches que
se implementan totalmente en hardware.

Protección por hardware.


Cuando los programadores operaban el computador desde la consola, tenían
control total sobre el sistema. Sin embargo, a medida que se desarrollaron los
sistemas operativos, este control se transfirió al sistema operativo. A partir del
monitor residente, el sistema operativo comenzó a desempeñar muchas de
las funciones, en especial E /S, que antes habían sido obligación del
programador.
Con el fin de mejorar el aprovechamiento del computador, el sistema
operativo comenzó a compartir los recursos del sistema entre varios
programas simultáneamente.

Este modo de compartir aumentó el grado de utilización pero también los


problemas. Cuando el sistema se ejecutaba sin compartir, un error en un
programa sólo podía causar problemas al programa que se estaba ejecutando.
Al compartir, muchos procesos pueden verse adversamente afectados por un
error en un programa.
En un sistema multiprogramado pueden ocurrir errores más sutiles aún. Un
pro grama con errores podría modificar el programa o los datos de otro
programa, o incluso del monitor residente mismo.
Si no hay protección contra errores como éstos, o bien el computador sólo
debe ejecutar un proceso a la vez, o debemos sospechar de todas las
salidas. Un sistema operativo bien diseñado debe asegurar que un programa
incorrecto (o mal intencionado) no pueda hacer que otros programas se
ejecuten incorrectamente.
Operación en modo dual.
El modo de operación dual nos ayuda a proteger el sistema operativo de
usuarios descarriados, y a los usuarios descarriados unos de otros. Esto se
hace diseñando algunas de las instrucciones de máquina que podrían causar
daños como instrucciones privilegiadas. El hardware sólo permite la ejecución
de instrucciones privilegiadas en el modo de monitor. Si se intenta ejecutar una
instrucción privilegiada en modo de usuario, el hardware rehusará hacerlo,
tratará la instrucción como no válida y pasará el control a través de una trampa
al sistema operativo.

La falta de un modo dual apoyado por hardware puede causar deficiencias


graves en un sistema operativo. Un programa de usuario fuera de control puede
borrar el sistema operativo escribiendo datos encima de él, y varios programas
pueden escribir en un dispositivo al mismo tiempo, con resultados posiblemente
desastrosos.

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.

Lo que necesitamos para separar el espacio de memoria de cada programa es


la capacidad para determinar el intervalo de direcciones a las que el programa
puede acceder, y proteger la memoria que no está dentro de ese espacio.
Podemos lograr esta protección utilizando dos registros, por lo regular una base
y un limite.

La protección consiste en que el hardware de la CPU compara con estos


registros todas las direcciones generadas en modo de usuario. Si cualquier
programa que se ejecuta en modo de usuario intenta acceder a la memoria del
monitor o de otros usuarios, el control pasa a través de una trampa al monitor.

Arquitectura general de los sistemas


Gracias a la multiprogramación y el tiempo compartido, en los que los recursos
del sistema se comparten entre muchos programas y procesos distintos. Este
compartimiento llevó directamente a modificaciones de la arquitectura básica
de los computadores, para que el sistema operativo pudiera mantener el
control sobre el sistema, y más que nada sobre la E/S. Es preciso mantener el
control para lograr un funcionamiento, continuo, consistente y correcto.
Dado que las instrucciones de E/S son privilegiadas, sólo el sistema
operativo puede ejecutarlas. Entonces, ¿cómo realiza operaciones de E/S un
programa de usuario? AI hacer privilegiadas las instrucciones de E/S, hemos
impedido que los programas del usuario realicen E/S, sea válida o no. La
solución a este problema es que, dado que sólo el monitor puede realizar E/S,
el usuario debe pedir al monitor que realice la E/S a su nombre. Tal solicitud
se denomina 'llamada al sistema (o llamada al monitor o llamada defunción del
sistema operativo).

Estructuras del sistema operativo.


Hay varias perspectivas desde las que podemos considerar un sistema
operativo. Una consiste en examinar los servicios que proporciona. Otra es
explorar la interfaz que ofrece a los usuarios y programadores. Una tercera
consiste en desglosar el sistema en sus componentes y estudiar sus
interconexiones. En este capituló exploraremos estos tes aspectos de los
sistemas operativos, mostrándolos desde los puntos de vista de los usuarios,
programadores y diseñadores de sistemas operativos. Veremos qué servicios
proporciona un sistema operativo, cómo los proporciona y qué metodologías
se emplean para diseñar tales sistemas.
Componentes del sistema
Podemos crear un sistema tan grande y complejo como un sistema operativo
sólo si lo dividimos en porciones más pequeñas. Cada una de estas partes
deberá ser un componente bien delineado del sistema, con entradas, salidas y
funciones cuidadosamente definidas.

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:

• Crear y eliminar procesos tanto de usuario como del sistema


• Suspender y reanudar procesos
• Proveer mecanismos para la sincronización de procesos
• Proveer mecanismos para la comunicación entre procesos

• Proveer mecanismos para manejar bloqueos mutuos (deadlocks).

Gestión de la memoria principal.


La memoria principal es una matriz grande de palabras o bytes, cuyo tamaño va
desde cientos de miles hasta cientos de millones. Cada palabra o byte tiene su
propia dirección. La memoria principal es un depósito de datos a los que se
puede acceder rápidamente y que son compartidos por la CPU y los
dispositivos de E/S.
Para ejecutar un programa, es preciso cargarlo en la memoria y transformar
sus direcciones relativas en absolutas. Mientras se ejecuta, el programa accede
a las interruciones y datos que están en la memoria generando esas
direcciones absolutas. En algún momento, el programa termina, su espacio de
memoria se declara disponible, y el siguiente programa puede cargarse y
ejecutarse.
El sistema operativo se encarga de las siguientes actividades relacionadas con la
gestión de memoria:

• Saber cuáles partes de la memoria se están usando actualmente, y quién las


está usando
• Decidir cuáles procesos se cargarán en la memoria cuando se disponga de
espacio
• Asignar y liberar espacio de memoria según se necesite.

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:

• Crear y eliminar archivos


• Crear y eliminar directorios
• Proveer las primitivas para manipulación de archivos y directorios
• Establecer la correspondencia de los archivos con el almacenamiento secundario

• Resguardar los archivos en medios de almacenamiento estables (no


volátiles).

Gestión de almacenamiento secundario.


La mayor parte de los sistemas de computador modernos utiliza discos como
principal medio de almacenamiento en línea, tanto para programas como para datos.
Casi todos los programas —incluidos compiladores, ensamlbladores, rutinas de
ordenación, editores y formateadores— se guardan en un disco hasta que se cargan
en la memoria, y luego utilizan el disco como fuente y como desltino de su-
procesamiento. Por ello, la administración correcta del almacenamiento en disco es
extremadamente importante para un sistema computacional.
El sistema operativo se encarga de las siguientes actividades relacionadas con la
gestión de discos.

• Administración del espacio libre


• Asignación del almacenamiento
• Planificación del disco

E1 almacenamiento secundario se usa con mucha frecuencia, así que su


uso debe ser eficiente. La velocidad de operación global del computador
podrá depender del subsistema de disco y de los algoritmos que lo
manipulan.

Trabajo con redes.


Un sistema distribuido es una colección de procesadores que no
comparten memoria, dispositivos periféricos ni el reloj.

Los procesadores de un sistema distribuido varían en cuanto a formato y


función; podrían incluir microprocesadores pequeños, estaciones de
trabajo, mini-computadores y sistemas de cómputo de propósito general
grandes.

Los procesadores del sistema se conectan por medio de una red de


comunicaciones, que puede configurarse de varias maneras distintas. La
red puede estar total o parcialmente conectada, y su diseño debe
considerar estrategias de encaminamiento y conexión, y también los
problemas de contención y seguridad.

El acceso a recursos compartidos permite acelerar los cálculos, ampliar


la disponibilidad de los datos y mejorar la confiabilidad. Los sistemas
operativos normalmente generalizan el acceso por red como una forma de
acceso a archivos; los detalles del trabajo con la red están contenidos en
el driver de la interfaz con la red.

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.

Sistema de interpretación de órdenes


Uno de los programas del sistema más importantes de un sistema operativo es el
intérprete de órdenes o de comandos, que es la intrerfaz entre el usuario y el
sistema operativo. Algunos sistemas operativos incluyen el intérprete de órdenes en
el núcleo; otros, como MS-DOS y UNIX, tratan el intérprete de órdenes como un
prolgrama especial que se está ejecutando cuando se inicia un trabajo, o cuando un
usuario ingresa en un sistema de tiempo compartido.

Muchas de las órdenes que se dan al sistema operativo vienen en


enunciados de control. Cuando se inicia un trabajo nuevo en un sistema
por lotes, o cuando un usuario ingresa en un sistema de tiempo
compartido, se ejecuta automáticamente un programa que lee e
interpreta estos enunciados de control. Dicho programa tamlbién se
conoce como intérprete de tarjetas de control o intérprete de línea de
comandos y recibe el nombre común de shett. La función del shell es
muy sencilla: obtener la siguiente orden y ejecutarla.

Servicios del sistema operativo


Un sistema operativo crea un entorno para la ejecución de programas. El sistema
operativo proporciona ciertos servicios a los programas y a los usuarios de dichos
programas. Desde luego, los servicios específicos varían de un sistema operativo a
otro, pero podemos identificar algunas clases comunes. Estos servicios se
proporlcionan para comodidad del programador, a fin de facilitar la tarea de
programación.

• Ejecución de programas: El sistema debe poder cargar un programa en la


memoria y ejecutarlo. El programa debe poder terminar su ejecución, sea normal
o anormalmente (indicando un error).

• Operaciones de E/S: Un programa en ejecución podría requerir E/S.


Ésta podría implicar el uso de un archivo o un dispositivo de E/S.
Dispositivos específicos pueden requerir fundones espedales (como rebobinar
una unidad de cinta, o borrar la pantalla de un CRT). Por cuestiones de efidenda
y segurildad, los usuarios casi nunca pueden controlar los dispositivos de E/S
directamente; por tanto, el sistema operativo debe induir un mecanismo para
realizar E/S.
• Manipulación del sistema de archivos: El sistema de archivos tiene particular
interés. Es evidente que los programas necesitan leer y escribir archivos, y
tamlbién crear y eliminar archivos espedficando su nombre.
• Comunicadones: Hay muchas circunstancias en las que un proceso necesita
intercambiar informadón con otro, y hay dos formas prindpales de llevar a cabo
tal comunicadón. La primera ocurre entre procesos que se ejecutan en el mismo
computador; la segunda implica procesos que se ejecutan en computaldores
distintos conectados a .una red. La comunicadón puede implementarse mediante
memoria compartida o con'la técnica de transferencia de mensajes, en la que el
sistema operativo transfiere paquetes de informadón entre procesos.

• Detección de errores: El sistema operativo necesita estar pendiente


en lodo momento de los posibles errores. Pueden ocurrir errores en el
hardware de la CPU y la memoria (como un error de memoria o un
corte de alimentadón elécltrica), en los dispositivos de E/S (como un
error de paridad en cinta, un fallo de conexión en una red o falta de
papel en una impresora) o en el programa de usuario (como un
desbordamiento en una operación aritmética, un intento de acceder a
una posidón de memoria no permitida o un uso excesivo de tiempo de
CPU). Para cada tipo de error, el sistema operativo debe emprender
la acción apropiada para asegurar un funcionamiento correcto y
consistente del sistema de computación.

Control de procesos y trabajos


Un programa en ejecución debe poder detener su ejecución ya sea normalmente {fin
[end]) o anormalmente (abortar [abort]). Si se emite una llamada al sistema para
terminar anormalmente el programa que se está ejecutando, o si el programa se
topa con algún problema y causa una trampa de error, a veces se hace un vuelco
•Control de proceso o fin, abortar
• Manipulación de archivos
• Manipulación de dispositivos
• Mantenimiento de información
• Comunicaciones

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:

• Manipulación de archivos: Estos programas crean, eliminan, copian, cambian de


nombre, imprimen, vacían, listan y en general manipulan archivos y directorios.

• Información de estado: Algunos programas simplemente piden al sistema la


fecha, hora, cantidad de memoria o espacio en disco disponible, número de
usuarios y otra información de estado similar. Dicha información se formatea
y se exhibe en la terminal o en otro dispositivo de salida o archivo.
• Modificación de archivos: Puede contarse con varios editores de textos para
crear y modificar el contenido de archivos almacenados en disco o cinta.
• Apoyo a lenguajes de programación: En muchos casos se proporcionan al
usuario compiladores/ ensambladores e intérpretes de lenguajes de
programación comunes (como FORTRAN, COBOL, Pascal, BASIC, C y LISP) junto
con el sistema operativo. Muchos de estos programas ahora se venden por
separado.
• Carga y ejecución de programas: Una vez que un programa se ha ensamblado o
compilado, es preciso cargarlo en la memoria para ejecutarlo. El sistema puede
incluir cargadores absolutos, cargadores relocalizables, editores de enlaces y
cargadores de superposiciones. También se requieren sistemas de depuración
para lenguajes de alto nivel o lenguaje de máquina.

• Comunicaciones: Estos programas proporcionan el mecanismo para crear


conexiones virtuales entre procesos, usuarios y sistemas de computación
distintos; permiten a los usuarios enviar mensajes a las pantallas de otros,
enviar mensajes más grandes como correo electrónico, o transferir archivos
de una máquina a otra, e incluso usar otros computadores remotamente
como si fueran locales (mediante inicio de sesión remoto -remote login-).

Estructura del sistema


Una estrategia común consiste en dividir la tarea en componentes pequeños,
en lugar de tener un sistema monolítico. Cada uno de estos módulos debe se
definida del sistema, con entradas, salidas y funciones cuidadosamente
especificadas.

Anda mungkin juga menyukai