Andrew s. Tanenbaum


 Sistemas operativos de computadoras de bolsillo



Descargar 4,35 Mb.
Ver original pdf
Página8/134
Fecha de conversión12.11.2019
Tamaño4,35 Mb.
1   ...   4   5   6   7   8   9   10   11   ...   134

1.4.5 Sistemas operativos de computadoras de bolsillo

Continuando con los sistemas cada vez más pequeños, llegamos a las computadoras de bolsillo

(handheld). Una computadora de bolsillo o PDA (Personal Digital Assitant, Asistente personal di-

gital) es una computadora que cabe en los bolsillos y realiza una pequeña variedad de funciones,

como libreta de direcciones electrónica y bloc de notas. Además, hay muchos teléfonos celulares

muy similares a los PDAs, con la excepción de su teclado y pantalla. En efecto, los PDAs y los te-

léfonos celulares se han fusionado en esencia y sus principales diferencias se observan en el tama-

ño, el peso y la interfaz de usuario. Casi todos ellos se basan en CPUs de 32 bits con el modo

protegido y ejecutan un sofisticado sistema operativo.

Los sistemas operativos que operan en estos dispositivos de bolsillo son cada vez más sofisti-

cados, con la habilidad de proporcionar telefonía, fotografía digital y otras funciones. Muchos de

ellos también ejecutan aplicaciones desarrolladas por terceros. De hecho, algunos están comenzan-

do a asemejarse a los sistemas operativos de computadoras personales de hace una década. Una de

las principales diferencias entre los dispositivos de bolsillo y las PCs es que los primeros no tienen

discos duros de varios cientos de gigabytes, lo cual cambia rápidamente. Dos de los sistemas ope-

rativos más populares para los dispositivos de bolsillo son Symbian OS y Palm OS.



1.4.6  Sistemas operativos integrados

Los sistemas integrados (embedded), que también se conocen como incrustados o embebidos, operan

en las computadoras que controlan dispositivos que no se consideran generalmente como computado-

ras, ya que no aceptan software instalado por el usuario. Algunos ejemplos comunes son los hornos



de microondas, las televisiones, los autos, los grabadores de DVDs, los teléfonos celulares y los re-

productores de MP3. La propiedad principal que diferencia a los sistemas integrados de los dispositi-

vos de bolsillo es la certeza de que nunca se podrá ejecutar software que no sea confiable. No se

pueden descargar nuevas aplicaciones en el horno de microondas; todo el software se encuentra en

ROM. Esto significa que no hay necesidad de protección en las aplicaciones, lo cual conlleva a cier-

ta simplificación. Los sistemas como QNX y VxWorks son populares en este dominio.



1.4.7 Sistemas operativos de nodos sensores

Las redes de pequeños nodos sensores se están implementando para varios fines. Estos nodos son

pequeñas computadoras que se comunican entre sí con una estación base, mediante el uso de comu-

nicación inalámbrica. Estas redes de sensores se utilizan para proteger los perímetros de los edifi-

cios, resguardar las fronteras nacionales, detectar incendios en bosques, medir la temperatura y la

precipitación para el pronóstico del tiempo, deducir información acerca del movimiento de los ene-

migos en los campos de batalla y mucho más.

Los sensores son pequeñas computadoras con radios integrados y alimentadas con baterías.

Tienen energía limitada y deben trabajar durante largos periodos al exterior y desatendidas, con fre-

cuencia en condiciones ambientales rudas. La red debe ser lo bastante robusta como para tolerar fa-

llas en los nodos individuales, que ocurren con mayor frecuencia a medida que las baterías

empiezan a agotarse.

Cada nodo sensor es una verdadera computadora, con una CPU, RAM, ROM y uno o más sen-

sores ambientales. Ejecuta un sistema operativo pequeño pero real, por lo general manejador de

eventos, que responde a los eventos externos o realiza mediciones en forma periódica con base en un

reloj interno. El sistema operativo tiene que ser pequeño y simple debido a que los nodos tienen po-

ca RAM y el tiempo de vida de las baterías es una cuestión importante. Además, al igual que con los

sistemas integrados, todos los programas se cargan por adelantado; los usuarios no inician repenti-

namente programas que descargaron de Internet, lo cual simplifica el diseño en forma considerable.

TinyOS es un sistema operativo bien conocido para un nodo sensor.



1.4.8 Sistemas operativos en tiempo real

Otro tipo de sistema operativo es el sistema en tiempo real. Estos sistemas se caracterizan por tener

el tiempo como un parámetro clave. Por ejemplo, en los sistemas de control de procesos industria-

les, las computadoras en tiempo real tienen que recolectar datos acerca del proceso de producción

y utilizarlos para controlar las máquinas en la fábrica. A menudo hay tiempos de entrega estrictos

que se deben cumplir. Por ejemplo, si un auto se desplaza sobre una línea de ensamblaje, deben lle-

varse a cabo ciertas acciones en determinados instantes. Si un robot soldador realiza su trabajo de

soldadura antes o después de tiempo, el auto se arruinará. Si la acción debe ocurrir sin excepción

en cierto momento (o dentro de cierto rango), tenemos un sistema en tiempo real duro. Muchos

de estos sistemas se encuentran en el control de procesos industriales, en aeronáutica, en la milicia

y en áreas de aplicación similares. Estos sistemas deben proveer garantías absolutas de que cierta

acción ocurrirá en un instante determinado.



36

INTRODUCCIÓN

CAPÍTULO 1


SECCIÓN 1.5

CONCEPTOS DE LOS SISTEMAS OPERATIVOS



37

Otro tipo de sistema en tiempo real es el sistema en tiempo real suave, en el cual es acepta-

ble que muy ocasionalmente se pueda fallar a un tiempo predeterminado. Los sistemas de audio di-

gital o de multimedia están en esta categoría. Los teléfonos digitales también son ejemplos de

sistema en tiempo real suave.

Como en los sistemas en tiempo real es crucial cumplir con tiempos predeterminados para rea-

lizar una acción, algunas veces el sistema operativo es simplemente una biblioteca enlazada con los

programas de aplicación, en donde todo está acoplado en forma estrecha y no hay protección entre

cada una de las partes del sistema. Un ejemplo de este tipo de sistema en tiempo real es e-Cos.

Las categorías de sistemas para computadoras de bolsillo, sistemas integrados y sistemas en

tiempo real se traslapan en forma considerable. Casi todos ellos tienen por lo menos ciertos aspec-

tos de tiempo real suave. Los sistemas integrados y de tiempo real sólo ejecutan software que colo-

can los diseñadores del sistema; los usuarios no pueden agregar su propio software, lo cual facilita

la protección. Los sistemas de computadoras de bolsillo y los sistemas integrados están diseñados

para los consumidores, mientras que los sistemas en tiempo real son más adecuados para el uso in-

dustrial. Sin embargo, tienen ciertas características en común.



1.4.9  Sistemas operativos de tarjetas inteligentes

Los sistemas operativos más pequeños operan en las tarjetas inteligentes, que son dispositivos del

tamaño de una tarjeta de crédito que contienen un chip de CPU. Tienen varias severas restricciones

de poder de procesamiento y memoria. Algunas se energizan mediante contactos en el lector en el

que se insertan, pero las tarjetas inteligentes sin contactos se energizan mediante inducción, lo cual

limita en forma considerable las cosas que pueden hacer. Algunos sistemas de este tipo pueden rea-

lizar una sola función, como pagos electrónicos; otros pueden llevar a cabo varias funciones en la

misma tarjeta inteligente. A menudo éstos son sistemas propietarios. 

Algunas tarjetas inteligentes funcionan con Java. Lo que esto significa es que la ROM en la tar-

jeta inteligente contiene un intérprete para la Máquina virtual de Java (JVM). Los applets de Java

(pequeños programas) se descargan en la tarjeta y son interpretados por el intérprete de la JVM. Al-

gunas de estas tarjetas pueden manejar varias applets de Java al mismo tiempo, lo cual conlleva a

la multiprogramación y a la necesidad de planificarlos. La administración de los recursos y su pro-

tección también se convierten en un problema cuando hay dos o más applets presentes al mismo

tiempo. El sistema operativo (que por lo general es en extremo primitivo) presente en la tarjeta es

el encargado de manejar estas cuestiones.



1.5  CONCEPTOS DE LOS SISTEMAS OPERATIVOS

La mayoría de los sistemas operativos proporcionan ciertos conceptos básicos y abstracciones tales

como procesos, espacios de direcciones y archivos, que son la base para comprender su funciona-

miento. En las siguientes secciones analizaremos algunos de estos conceptos básicos en forma bre-

ve, como una introducción. Más adelante en el libro volveremos a analizar cada uno de ellos con

mayor detalle. Para ilustrar estos conceptos, de vez en cuando utilizaremos ejemplos que por lo ge-

neral se basan en UNIX. No obstante, por lo general existen también ejemplos similares en otros

sistemas, además de que en el capítulo 11 estudiaremos Windows Vista con detalle.



1.5.1 Procesos

Un concepto clave en todos los sistemas operativos es el proceso. Un proceso es en esencia un pro-

grama en ejecución. Cada proceso tiene asociado un espacio de direcciones, una lista de ubicacio-

nes de memoria que va desde algún mínimo (generalmente 0) hasta cierto valor máximo, donde el

proceso puede leer y escribir información. El espacio de direcciones contiene el programa ejecuta-

ble, los datos del programa y su pila. También hay asociado a cada proceso un conjunto de recur-

sos, que comúnmente incluye registros (el contador de programa y el apuntador de pila, entre ellos),

una lista de archivos abiertos, alarmas pendientes, listas de procesos relacionados y toda la demás

información necesaria para ejecutar el programa. En esencia, un proceso es un recipiente que guar-

da toda la información necesaria para ejecutar un programa.

En el capítulo 2 volveremos a analizar el concepto de proceso con más detalle, pero por ahora

la manera más fácil de que el lector se dé una buena idea de lo que es un proceso es pensar en un

sistema de multiprogramación. El usuario puede haber iniciado un programa de edición de video

para convertir un video de una hora a un formato específico (algo que puede tardar horas) y des-

pués irse a navegar en la Web. Mientras tanto, un proceso en segundo plano que despierta en forma

periódica para comprobar los mensajes entrantes puede haber empezado a ejecutarse. Así tenemos

(cuando menos) tres procesos activos: el editor de video, el navegador Web y el lector de correo

electrónico. Cada cierto tiempo, el sistema operativo decide detener la ejecución de un proceso y

empezar a ejecutar otro; por ejemplo, debido a que el primero ha utilizado más tiempo del que le

correspondía de la CPU en el último segundo.

Cuando un proceso se suspende en forma temporal como en el ejemplo anterior, debe reiniciar-

se después exactamente en el mismo estado que tenía cuando se detuvo. Esto significa que toda la

información acerca del proceso debe guardarse en forma explícita en alguna parte durante la sus-

pensión. Por ejemplo, el proceso puede tener varios archivos abiertos para leerlos al mismo tiem-

po. Con cada uno de estos archivos hay un apuntador asociado que proporciona la posición actual

(es decir, el número del byte o registro que se va a leer a continuación). Cuando un proceso se sus-

pende en forma temporal, todos estos apuntadores deben guardarse de manera que una llamada a

read


que se ejecute después de reiniciar el proceso lea los datos apropiados. En muchos sistemas

operativos, toda la información acerca de cada proceso (además del contenido de su propio espacio

de direcciones) se almacena en una tabla del sistema operativo, conocida como la tabla de proce-

sos, la cual es un arreglo (o lista enlazada) de estructuras, una para cada proceso que se encuentre

actualmente en existencia.

Así, un proceso (suspendido) consiste en su espacio de direcciones, que se conoce comúnmen-

te como imagen de núcleo (en honor de las memorias de núcleo magnético utilizadas antaño) y su

entrada en la tabla de procesos, que guarda el contenido de sus registros y muchos otros elementos

necesarios para reiniciar el proceso más adelante.

Las llamadas al sistema de administración de procesos clave son las que se encargan de la crea-

ción y la terminación de los procesos. Considere un ejemplo común. Un proceso llamado intérpre-



te de comandos shell lee comandos de una terminal. El usuario acaba de escribir un comando,

solicitando la compilación de un programa. El shell debe entonces crear un proceso para ejecutar el

compilador. Cuando ese proceso ha terminado la compilación, ejecuta una llamada al sistema para

terminarse a sí mismo.



38

INTRODUCCIÓN

CAPÍTULO 1


SECCIÓN 1.5

CONCEPTOS DE LOS SISTEMAS OPERATIVOS



39

Si un proceso puede crear uno o más procesos aparte (conocidos como procesos hijos) y estos

procesos a su vez pueden crear procesos hijos, llegamos rápidamente la estructura de árbol de pro-

cesos de la figura 1-13. Los procesos relacionados que cooperan para realizar un cierto trabajo a

menudo necesitan comunicarse entre sí y sincronizar sus actividades. A esta comunicación se le co-

noce como comunicación entre procesos, que veremos con detalle en el capítulo 2.

A

B

D



E

F

C



Figura 1-13. Un árbol de proceso. El proceso creó dos proceso hijos, C. El pro-

ceso creó tres procesos hijos, DF.

Hay otras llamadas al sistema de procesos disponibles para solicitar más memoria (o liberar

la memoria sin utilizar), esperar a que termine un proceso hijo y superponer su programa con uno

distinto.

En algunas ocasiones se tiene la necesidad de transmitir información a un proceso en ejecución

que no está esperando esta información. Por ejemplo, un proceso que se comunica con otro, en una

computadora distinta, envía los mensajes al proceso remoto a través de una red de computadoras.

Para protegerse contra la posibilidad de que se pierda un mensaje o su contestación, el emisor pue-

de solicitar que su propio sistema operativo le notifique después de cierto número de segundos pa-

ra que pueda retransmitir el mensaje, si no se ha recibido aún la señal de aceptación. Después de

asignar este temporizador, el programa puede continuar realizando otro trabajo.

Cuando ha transcurrido el número especificado de segundos, el sistema operativo envía una se-

ñal de alarma al proceso. La señal provoca que el proceso suspenda en forma temporal lo que esté

haciendo, almacene sus registros en la pila y empiece a ejecutar un procedimiento manejador de se-

ñales especial, por ejemplo, para retransmitir un mensaje que se considera perdido. Cuando termina

el manejador de señales, el proceso en ejecución se reinicia en el estado en el que se encontraba jus-

to antes de la señal. Las señales son la analogía en software de las interrupciones de hardware y se

pueden generar mediante una variedad de causas además de la expiración de los temporizadores. Mu-

chas traps detectadas por el hardware, como la ejecución de una instrucción ilegal o el uso de una di-

rección inválida, también se convierten en señales que se envían al proceso culpable.

Cada persona autorizada para utilizar un sistema recibe una UID (User Identification, Identifica-

ción de usuario) que el administrador del sistema le asigna. Cada proceso iniciado tiene el UID de la

persona que lo inició. Un proceso hijo tiene el mismo UID que su padre. Los usuarios pueden ser miem-

bros de grupos, cada uno de los cuales tiene una GID (Group Identification, Identificación de grupo).

Una UID conocida como superusuario (superuser en UNIX) tiene poder especial y puede vio-

lar muchas de las reglas de protección. En instalaciones extensas, sólo el administrador del sistema

conoce la contraseña requerida para convertirse en superusuario, pero muchos de los usuarios ordi-


narios (en especial los estudiantes) dedican un esfuerzo considerable para tratar de encontrar fallas

en el sistema que les permitan convertirse en superusuario sin la contraseña.

En el capítulo 2 estudiaremos los procesos, la comunicación entre procesos y las cuestiones re-

lacionadas.



1.5.2 Espacios de direcciones

Cada computadora tiene cierta memoria principal que utiliza para mantener los programas en ejecución.

En un sistema operativo muy simple sólo hay un programa a la vez en la memoria. Para ejecutar un se-

gundo programa se tiene que quitar el primero y colocar el segundo en la memoria.

Los sistemas operativos más sofisticados permiten colocar varios programas en memoria al

mismo tiempo. Para evitar que interfieran unos con otros (y con el sistema operativo), se necesita

cierto mecanismo de protección. Aunque este mecanismo tiene que estar en el hardware, es contro-

lado por el sistema operativo.

El anterior punto de vista se relaciona con la administración y protección de la memoria prin-

cipal de la computadora. Aunque diferente, dado que la administración del espacio de direcciones

de los procesos está relacionada con la memoria, es una actividad de igual importancia. Por lo ge-

neral, cada proceso tiene cierto conjunto de direcciones que puede utilizar, que generalmente van

desde 0 hasta cierto valor máximo. En el caso más simple, la máxima cantidad de espacio de direc-

ciones que tiene un proceso es menor que la memoria principal. De esta forma, un proceso puede

llenar su espacio de direcciones y aún así habrá suficiente espacio en la memoria principal para con-

tener todo lo necesario.

Sin embargo, en muchas computadoras las direcciones son de 32 o 64 bits, con lo cual se ob-

tiene un espacio de direcciones de 2

32

o 2


64

bytes, respectivamente. ¿Qué ocurre si un proceso tie-

ne más espacio de direcciones que la memoria principal de la computadora, y desea usarlo todo?

En las primeras computadoras, dicho proceso simplemente no podía hacer esto. Hoy en día existe

una técnica llamada memoria virtual, como se mencionó antes, en la cual el sistema operativo man-

tiene una parte del espacio de direcciones en memoria principal y otra parte en el disco, moviendo

pedazos de un lugar a otro según sea necesario. En esencia, el sistema operativo crea la abstracción

de un espacio de direcciones como el conjunto de direcciones al que puede hacer referencia un pro-

ceso. El espacio de direcciones se desacopla de la memoria física de la máquina, pudiendo ser ma-

yor o menor que la memoria física. La administración de los espacios de direcciones y la memoria

física forman una parte importante de lo que hace un sistema operativo, por lo cual el capítulo 3 se

dedica a este tema.



1.5.3 Archivos

Otro concepto clave de casi todos los sistemas operativos es el sistema de archivos. Como se dijo

antes, una de las funciones principales del sistema operativo es ocultar las peculiaridades de los dis-

cos y demás dispositivos de E/S, presentando al programador un modelo abstracto limpio y agrada-

ble de archivos independientes del dispositivo. Sin duda se requieren las llamadas al sistema para

crear los archivos, eliminarlos, leer y escribir en ellos. Antes de poder leer un archivo, debe locali-



40

INTRODUCCIÓN

CAPÍTULO 1


SECCIÓN 1.5

CONCEPTOS DE LOS SISTEMAS OPERATIVOS



41

zarse en el disco para abrirse y una vez que se ha leído información del archivo debe cerrarse, por

lo que se proporcionan llamadas para hacer estas cosas.

Para proveer un lugar en donde se puedan mantener los archivos, la mayoría de los sistemas

operativos tienen el concepto de un directorio como una manera de agrupar archivos. Por ejem-

plo, un estudiante podría tener un directorio para cada curso que esté tomando (para los progra-

mas necesarios para ese curso), otro directorio para su correo electrónico y otro más para su página

de inicio en World Wide Web. Así, se necesitan llamadas al sistema para crear y eliminar directo-

rios. También se proporcionan llamadas para poner un archivo existente en un directorio y para

eliminar un archivo de un directorio. Las entradas de directorio pueden ser archivos u otros direc-

torios. Este modelo también da surgimiento a una jerarquía (el sistema de archivos) como se mues-

tra en la figura 1-14.

Directorio raíz

Estudiantes

Docentes

Leo


Prof.Brown

Archivos


Cursos

CS101


CS105

Artículos

Conce-

siones


SOSP

COST-11


Comités

Prof.Green

Prof.White

Matty


Robbert

Figura 1-14. Un sistema de archivos para un departamento universitario.

Las jerarquías de procesos y de archivos están organizadas en forma de árboles, pero la simili-

tud se detiene ahí. Por lo general, las jerarquías de procesos no son muy profundas (más de tres ni-

veles es algo inusual), mientras que las jerarquías de archivos son comúnmente de cuatro, cinco o

incluso más niveles de profundidad. Es común que las jerarquías de procesos tengan un tiempo de

vida corto, por lo general de minutos a lo más, mientras que la jerarquía de directorios puede exis-

tir por años. La propiedad y la protección también difieren para los procesos y los archivos. Por lo

común, sólo un proceso padre puede controlar o incluso acceder a un proceso hijo, pero casi siem-



pre existen mecanismos para permitir que los archivos y directorios sean leídos por un grupo apar-

te del propietario.

Para especificar cada archivo dentro de la jerarquía de directorio, se proporciona su nombre

de ruta de la parte superior de la jerarquía de directorios, el directorio raíz. Dichos nombres de ru-

ta absolutos consisten de la lista de directorios que deben recorrerse desde el directorio raíz para lle-

gar al archivo, y se utilizan barras diagonales para separar los componentes. En la figura 1-14, la

ruta para el archivo CS101 es /Docentes/Prof.Brown/Cursos/CS101. La primera barra diagonal in-

dica que la ruta es absoluta, es decir, que empieza en el directorio raíz. Como una observación adi-

cional, en MS-DOS y Windows se utiliza el carácter de barra diagonal inversa (\) como separador

en vez del carácter de barra diagonal (/), por lo que la ruta del archivo antes mostrado podría escri-

birse como \Docentes\Prof.Brown\Cursos\CS101. A lo largo de este libro utilizaremos generalmen-

te la convención de UNIX para las rutas.

En cada instante, cada proceso tiene un directorio de trabajo actual, en el que se buscan los

nombres de ruta que no empiecen con una barra diagonal. Como ejemplo, en la figura 1-14 si /Do-

centes/Prof.Brown fuera el directorio de trabajo, entonces el uso del nombre de ruta Cursos/CS101

produciría el mismo archivo que el nombre de ruta absoluto antes proporcionado. Los procesos pue-

den modificar su directorio de trabajo mediante una llamada al sistema que especifique el nuevo di-

rectorio de trabajo.

Antes de poder leer o escribir en un archivo se debe abrir y en ese momento se comprueban los

permisos. Si está permitido el acceso, el sistema devuelve un pequeño entero conocido como des-




Compartir con tus amigos:
1   ...   4   5   6   7   8   9   10   11   ...   134


La base de datos está protegida por derechos de autor ©absta.info 2019
enviar mensaje

    Página principal