|
|
Las metas de OS/2 fueron crear un sistema operativo para oficina, proveyendo independencia de hardware, capacidad multitarea, ambiente personalizable, y entorno estable. Adicionalmente, OS/2 es creado bajo el standard SAA (System Application Architecture) de IBM, haciendo que el desarrollo de aplicaciones sea compatible con las arquitecturas System 370, System 3x y PS/2.
En esencia, OS/2 es un sistema operativo monousuario - multitarea. Este se encuentra formado por un conjunto de rutinas que son llamadas cada vez que se desea obtener algún servicio. Su diseño fue pensado para optimizar las respuestas más que el throughput.
IBM presenta el PS/2: nueva generación de computadoras personales diseñadas para el cambiante medio ambiente que demandaba más memoria, poder de procesamiento y capacidad de intercomunicación.
PS/2 modelo 30:Excepto el modelo 30, el resto incorpora la arquitectura de bus paralelo Micro Channel (Micro Canal). Se trata de un bus multicanal provisto para soportar un ambiente multitareas, soporte de procesadores concurrentes, acceso en 32 bits a datos y señales analógicas. Permite, también, una relación en la intercalación de sectores de 1:1 durante el grabado. El PS/2 incorpora un BIOS de compatibilidad y uno avanzado.
Se presenta la nueva generación de sistemas operativos para computadores personales:
Para el usuario el sistema es una interfaz gráfica de texto desde la que se abren sesiones e invocan procesos mediante comandos introducidos por teclado. Bajo la perspectiva de la interfaz gráfica, las sesiones se abren y los procesos se invocan por la acción de un apuntador sobre iconos
.El usuario puede abrir varias sesiones y en cada una tener varias tareas ejecutándose. A nivel comando, el usuario tiene control sobre la sessión y, en forma limitada, sobre los procesos (tareas) que haya lanzado. Una sesión nueva se activa con el comando START. La sesión activa se denomina foreground session y las restantes background sessions.
El sistema provee tres niveles en su capacidad multitarea (multitasking).
Aunque el usuario tiene cierto control sobre sus procesos, el control total se obtiene, tanto para procesos como threads, a nivel programación.
Un usuario puede tener varias sesiones, cada sesión mantiene varios procesos y cada proceso varios threads. Para cada proceso, OS/2 asigna un PID (Process IDentification) único y le otorga cierta prioridad. El proceso que crea a otro es el Parent Process y el creado es el Child Process (rutina del sistema DosExecPgm). El padre conoce el PID del hijo, pero no hay forma de saber si el hijo creó a sus propios descendientes. Aunque la opción comand subtree de DosCWait permite saber si una tarea fue llevada a buen término incluyendo a los descendientes del child process.
Los child process pueden ser ejecutados en forma:
Un parent process posee control limitado sobre un child process, este control se reduce a:
Un proceso termina hasta que todos los threads regresan del system call. Sin embargo, es posible terminar el proceso sin o con sus descendientes, según se invoque la rutina de terminación.
La asignación de recursos es controlada por el sistema y es otorgada por proceso. Un child process hereda los recursos y prioridad de su creador.
La ruta de ejecución de la CPU a través de un programa se llama Thread of Execution.
OS/2 soporta múltiples threads por proceso y todos comparten los recursos asignados a éste (memoria, file handles). Cada thread sólo tiene sus propios datos y PSW (Process Status Word).
El primer thread es creado automáticamente por OS/2 (thread 1) y se le asigna área de stack. Todos los threads son hermanos sin importar quién creó a quién. Cada uno posee un identificador y heredan la prioridad de su creador. Threads adicionales pueden crearse con la rutina del sistema DosCreateThread y con este llamado debe asignársele memoria.
Si el stack de un thread crece demasiado puede provocar un Stack Fault y terminar con el thread. El thread puede terminar por sí mismo si llama a DosExit o terminar a todos si invoca la misma función con la opción de proceso entero.
La integridad de los datos es controlada a través de semáforos (DosCreateSem) y funciones del sistema que aseguran que sólo un thread puede tener acceso a los datos en un instante determinado (DosSuspendThread, DosResumeThread, DosEnterCritSec, DosExitCritSec).
La política de administración del procesador bajo OS/2 es del tipo denominado Preemptive Scheduler. Esto significa que la atención del procesador otorgada a un proceso puede ser retirada si otro con prioridad más alta la solicita.
El thread listo para ser ejecutado con más alta prioridad es atendido. Este correrá hasta que termine o hasta que su tiempo expire. El siguiente thread es ejecutado entonces. Realmente, lo que atiende el scheduler son threads no procesos, aunque todos los threads de un proceso tienen la misma prioridad.
Se contemplan dos niveles de prioridades:
OS/2 tiende a incrementar la prioridad de procesos I/O-bound, i.e. los procesos que están condicionados al flujo de la transferencia en las operaciones de entrada-salida. En contraparte, tiende a decrementar la prioridad de los procesos CPU-bound (DosGetPrty, DosSetPrty). Un background thread no puede tener prioridad mayor a un foreground thread. Threads de la misma prioridad son atendidos en round-robin.
La técnica de Enlace Dinámico (Dynamic Linking) permite a un programa llamar a una subrutina que no ha sido incluida (ligada, enlazada) en el código ejecutable. OS/2 resuelve automáticamente estas referencias cuando se carga el programa (load time) o cuando se ejecuta (run time). Bajo un esquema tradicional, cuando todas las referencias externas son resueltas en tiempo de compilación (Static Linking), la resolución de enlaces hace a un programa más rápido en su carga o ejecución pero lo hace dependiente de las versiones y cada cambio implica un religado.
Dynamic Linking Libraries (DLLs) contienen rutinas de propósito general, incluyendo la Application Programming Interface (API) de OS/2.
La primera versión de OS/2 incluyó un sistema de archivos muy similar al de DOS.
OS/2 maneja por defecto 3 file handles (identificadores formados por enteros de 16 bits). Para el usuario estos son identificados como STDIN, STDOUT y STDERR.
Es posible dividir un disco en varios pequeños. Cada uno con su FAT y file system completo (Extended Partitioning).
Para OS/2, un volumen es un floppy, disco o partición. El volume ID se crea con un checksum del nombre del usuario, combinándolo con los segundos desde 1980 y usando esto como semilla para un generador de números aleatorios que regresa un valor de 0 a 4x109.
Los nombres de los archivos son iguales que en MS-DOS.
Una característica de OS/2 es que permite hacer uso de Installable File Systems (IFS). Estos son como Device Drivers que se cargan en la inicialización del sistema (boot).
El Memory Manager aloja memoria física y virtual a los procesos Cada referencia de memoria resulta en una referencia de selector de segmento que referencía a una entrada de la Global Descriptor Table o la Local Descriptor Table (contienen dirección física y longitud).
Los programas acceden a memoria únicamente a través de la GDT o LDT. En OS/2 no se pueden cambiar los vectores de interrupción, para protección del ambiente multitarea.
El 80286 provee un mecanismo de protección de anillo. Las aplicaciones corren en el anillo 3 (no privilegiado), rutinas requiriendo de ciertos privilegios de I/O corren en el anillo 2, Device Drivers corren en el anillo 0 (privilegiado) junto con el Kernel. El acceso a datos es sólo en orden ascendente. Por esto las aplicaciones no pueden hacer llamadas directas al ROM BIOS.
OS/2 Soporta named shared memory y giveaway shared memory La memoria se aloja por segmentos o en parte de ellos. Versiones iniciales ejecutaban el swaping por segmento, versiones basadas en el 80386 recurren a la paginación. El algoritmo de reemplazo es el Least-Recently-Used. Se permite el Memory Overcommit.
La comunicación entre procesos es realizada de varias formas:
OS/2 proporciona dos interfaces. Una orientada a modo caracter denominada VIO y una interfaz gráfica de ventanas conocida como Presentation Manager. La interfaz orientada a caracter es conocida como Workplace Shell.
Adicionalmente, OS/2 cuenta con los siguientes elementos:
| Last update: . |