viernes, 15 de abril de 2011

Ejecución de programas

A la vez que el sistema operativo puede proveer una interfaz coherente para ejecutar programas en la computadora, también es la interfaz entre estos programas y otros recursos de la computadora (por ejemplo, la memoria de la computadora, una impresora otro programa, que puede ser una aplicación de hoja de cálculo).

Cuando los programadores escriben programas de computadora, les incorporan instrucciones, que se conocen como llamadas al sistema, que solicitan servicios desde el sistema operativo. (Son "llamadas" debido a que el programa tiene que llamar al sistema operativo para proporcionar alguna información o servicio.)

Por ejemplo, cuando usted quiere que su programa procesador de palabras abra un archivo, usa el cuadro de diálogo Abrir para enlistar los archivos en la carpeta que especificó.

Para proveer la lista, el programa llama al sistema operativo. El SO pasa por el mismo proceso para elaborar una lista de archivos si recibe esta instrucción de usted (desde el escritorio) o de una aplicación. La diferencia es que cuando la solicitud viene de una aplicación, el sistema operativo envía los resultados de su trabajo a la aplicación en lugar de al escritorio.

Además de listas de archivos, algunos otros servicios que proporciona un sistema operativo a los programas son:

* Guardar el contenido de archivos en un disco para almacenamiento permanente.
* Leer los contenidos de un archivo de un disco a la memoria.
* Enviar un documento a la impresora y activar la impresora.
* Proveer recursos que le permiten copiar o mover datos de un documento a otro o de un programa a otro.
* Asignar RAM entre varios programas que usted haya abierto.
* Reconocer los golpes de teclado o clics del ratón y desplegar caracteres o gráficos en la pantalla.

Compartir información
Tan pronto como empiece a usar un programa procesador de palabras, o cualquier otro tipo de aplicación, descubrirá la necesidad de mover fragmentos de datos de un lugar en un documento a otro.Por ejemplo, podría ver una carta y darse cuenta que tendría más sentido si el segundo párrafo se pasara a la página 2. Una de las ventajas de usar una computadora es que este tipo de edición no sólo es posible sino también simple.

La mayor parte de los sistemas operativos, incluyendo Windows 95/98, Windows NT y el SO Macintosh, logran esta hazaña con una característica del sistema operativo conocida como Portapapeles (Clipboard). El Portapapeles es un espacio de almacenamiento temporal para datos que se copian o se mueven. Por ejemplo, para mover un párrafo en un documento de un procesador de palabras, se realizan las acciones siguientes:

1. Seleccione el texto que desea mover.
2. Use el comando Cortar (Cut) para eliminar el texto seleccionado y colocarlo en el Portapapeles.
3. Mueva el punto de inserción a la nueva posición del texto en el documento.
4. Use el comando Pegar (Paste) para copiar el texto del Portapapeles a la nueva posición en el documento.
5. Texto movido. Una copia del texto permanece en el Portapapeles hasta la próxima vez que usted use el comando Cortar o Copiar (Copy).

Con frecuencia, en lugar de usar el comando Cortar (Cut), el cual quita los datos y los coloca en el Portapapeles, usted puede usar Copiar (Copy), el cual hace una copia de los datos y los almacena en el Portapapeles pero no elimina el original. En cualquier caso, se usa el comando Pegar (Paste) para copiar el contenido del Portapapeles de nuevo en el documento.

Nota: El Portapapeles sólo almacena un conjunto de datos a la vez, aunque el conjunto de datos puede ser casi de cualquier tamaño o longitud. El contenido del Portapapeles es eliminado cada vez que se selecciona un nuevo conjunto de datos y de nuevo se elige entre los comandos Cortar o Copiar. Este hecho tiene dos consecuencias importantes:

1_Debe tener cuidado de no borrar datos valiosos que han sido colocados en el Portapapeles, o los perderá.
2_Puede pegar datos desde el Portapapeles cuantas veces quiera (hasta que elija Cortar o Copiar de nuevo).

Como podría imaginarse (o ya sabe), el Portapapeles también puede usarse para mover datos de un documento a otro. Por ejemplo, puede copiar una dirección de una carta a otra y por tanto evitar teclearla otra vez.

La versatilidad real del Portapapeles, sin embargo, se deriva del hecho de que en realidad es parte del sistema operativo, no una aplicación particular. Como resultado, puede usar el Portapapeles para mover datos de un programa a otro. Por ejemplo, digamos que creó una tabla en un programa de hoja de cálculo y desea pegarla en un reporte que creó con su programa procesador de palabras.

La versatilidad del Portapapeles se ha extendido con la característica conocida en Windows como OLE, que significa vinculación e incrustación de objetos (Obejct Linking and Embedding). Un simple corte y pegado entre aplicaciones da como resultado una incrustación de objetos. Los datos, que en términos de programación se conocen como objeto, son incrustados en un nuevo tipo de documento. Éstos conservan el formato que se les dio en la aplicación original, pero su relación con el archivo original es destruida: sólo son parte del nuevo documento.

La vinculación de objetos, sin embargo, agrega otra capa a la relación: los datos que son copiados al Portapapeles retienen un vínculo con el documento original, de modo que un cambio en el documento original también aparece en los datos vinculados. Por ejemplo, suponga que un reporte se genera en forma semanal y siempre contiene la misma tabla, actualizada con los números correctos para la semana actual. Con la vinculación de objetos, los números en la hoja de cálculo electrónica a partir de la cual se genera la tabla pueden actualizarse, y la tabla en el reporte reflejará en forma automática los nuevos números.

Multitarea
Además de poder correr programas y compartir datos entre aplicaciones, los sistemas operativos Windows y Macintosh se han unido a OS/2 y UNIX al lograr una meta buscada desde hace mucho por las computadoras personales: ahora una computadora puede ser multitarea, es decir, que puede ser capaz de "caminar y silbar al mismo tiempo". Multitarea significa mucho más que la capacidad de cargar múltiples programas en memoria (aunque incluso esto era difícil para los primeros sistemas operativos). Multitarea significa poder realizar dos o más procedimientos, como imprimir un documento de varias páginas, enviar correo electrónico a través de Internet y mecanografiar una carta, todo de manera simultánea.

Los ingenieros de software usan dos métodos para desarrollar sistemas operativos multitarea. El primero requiere cooperación entre el sistema operativo y los programas de aplicación. Los programas que están corriendo en ese momento revisarían en forma periódica el sistema operativo para ver si cualquier otro programa necesita la CPU. Si cualquiera la necesita, el programa que se está ejecutando cederá el control de la CPU al siguiente programa. Este método se llama multitarea cooperativa, y es usado por los sistemas operativos Macintosh y Windows 3x para permitir actividades tales como imprimir mientras el usuario continúa mecanografiando o usa el ratón para introducir más datos.

El segundo método se llama multitarea preferente. Con este método, el sistema operativo mantiene una lista de los programas que están corriendo y asigna una prioridad a cada programa en la lista. El sistema operativo puede intervenir y modificar el estado de prioridad de un programa, reacomodando la lista de prioridad. Con multitarea preferente, el sistema operativo puede darle prioridad al programa que está corriendo y reasignar el tiempo a una tarea de prioridad superior en cualquier momento. La multitarea preferente por tanto tiene la ventaja de ser capaz de llevar a cabo programas de prioridad superior con mayor rapidez que los programas de prioridad baja. Windows 95/98, Windows NT, OS/2 y UNIX emplean multitarea preferente.

No hay comentarios:

Publicar un comentario