El sistema operativo OS/2 ha tenido una historia turbulenta en el seno de Microsoft e IBM, creciendo en algún tiempo bajo equipos de trabajo de ambas compañias y prosiguiendo finalmente con la última. Los objetivos para este sistema operativo eran: compatibilidad para ejecutar los programas existentes para DOS en las computadoras 80x86, ofrecer la multitarea, la facilidad de memoria virtual y servicios de red de área local [Alcal92].
Respecto a los discos duros, OS/2 permite crear varias particiones en un solo disco y mantener sistemas de archivos en cada partición con su propio 'File Allocation Table' (FAT) en cada partición. A este tipo de particiones se les llama 'particiones ampliadas'. OS/2 continua usando nombres de archivos de ocho caracteres y extensiones de tres con un punto que los separa. En la tabla 10.1 se muestran algunas llamadas para la manipulacioacute;n de archivos.
Llamada Descripción
DosBufReset Graba al disco los buffers del archivo DosClose Cierra el archivo DosDelete Borra el archivo DosDevIOCtl Establece parámetros de trabajo DosMkDir Crea un directorio DosNewSize Cambia el tamaño de archivo DosFileInfo Obtiene información sobre el archivo DosSetFileInfo Establece información del archivo DosOpen Abre un archivo DosSetFileMode Establece el modo de operación DosRmDir Borra un directorio vacío DosSelectDisk Selecciona un disco para trabajar Tabla 10.1 Algunas llamadas de OS/2 para archivos
Como en UNIX y algunos otros sistemas operativos, OS/2 permite ser instalado en una partición de disco duro y dejar otras intactas para instalar otros sistemas operativos, dando así la facilidad de poder usar una misma computadora con diferentes sistemas operativos. OS/2 ofrece una interfaz gráfica para que el usuario trabaje, en particular ofrece un ícono para representar los archivos y una barra de menús para realizar operaciones sobre ellos como abrirlos, cerralos, copiarlos, etc. Si el usuario está acostumbrado a teclear comandos, entonces puede pedir una sesión de DOS para usar los comandos habituales de ese sistema operativo. En particular, en el ambiente de ventanas se tiene un ícono denominado 'Sistema OS/2' que contiene otro ícono llamado 'Unidades' y ahí existen íconos que representan el disco duro, unidades de disco flexible, etc. Para realizar copias de archivos, borrados, etc; basta con arrastrar los íconos correspondientes de/hacia el origen/destino deseado. La versión inicial de OS/2 tenía incluído el sistema Windows, pero debido a las regalías que debía pagar a Microsoft, éste fue eliminado y el usuario debe adquirirlo por separado, y configurarlo al momento de instalación.
Otra facilidad de OS/2 es la facilidad de crear 'conductos' lo cual también es una función heredada de UNIX.
La calendarización de procesos o 'threads' se hace por prioridad y dándoles una intervalo de ejecución a cada proceso o 'thread'. Se manejan tres niveles de prioridades: procesos preferentes, procesos preferentes interactivos y procesos normales. OS/2 eleva a la categoría de prefentes a aquellos procesos que hacen mucha E/S.
Otra facilidad notable de OS/2 es la carga dinámica de librerías, que consiste en la generación de aplicaciones cuyas librerías no forman parte del coacute;digo compilado, sino que son cargadas cuando el programa es ejecutado. Esto sirve bastante sobre todo cuando las librerías son de uso común. Como se ve, esta facilidad es parecida a las del sistema operativo UNIX SunOS.
Para estas fechas, es posible contar con una versión de OS/2 que maneje la memoria con paginación.
OS/2 sigue soportando la idea de 'device drivers' en una forma parecida que en DOS. De hecho, algunos estudiosos de los sistemas operativos afirman que DOS se puede considerar como un sistema 'microkernel' por esta característica.
Para que un proceso sea candidato a manejar un dispositivo, debe informarlo a través de una llamada a 'DosMonOpen' y 'DosMonReg'. El supervisor de dispositivos usará un modelo de productor-consumidor para enviar y recibir datos con el proceso candidato. Tambieacute;n es factible que para un mismo dispositivo el supervisor envíe los datos a varios procesos interesados en leer de él. Los dispositivos en OS/2 se clasifican en aquellos orientados a bloques y aquellos orientados a caracteres. Los dispositivos orientados a caracteres se manejan de manera síncrona.
Los procesos también pueden indicar los permisos de los archivos y dispositivos para indicar quiénes pueden accesarlos al mismo tiempo. De este modo se consigue que los datos estén íntegros.
También existe el servicio de reloj, lo cual permite sincronizar algunos eventos, por medio del reloj del sistema que oscila 32 veces por segundo y otro que oscila millones de veces. Dependiendo de la precisión deseada se usa el reloj adecuado. Las llamadas para el reloj de mayor precisión se hacen en un área llamada 'segmento de información global' por medio de la rutina 'DosGetInfoSeg'.