|
En esta sección queremos mostrar lo fácil que es utilizar DMT para crear, borrar y pasar a primer plano una tarea. Se ha intentado minimizar el número de teclas para realizar las anteriores operaciones y así dar la oportunidad al usuario de que cree varias tareas y las ponga en ejecución simultánea de una forma rápida, fácil y eficiente.
Para crear una nueva tarea se ha de pulsar la tecla [Alt] + una tecla de función (F1, F2, ..., F10). El número de la tarea vendrá determinado por la tecla de función que se haya pulsado así, si por ejemplo, si pulsa [Alt] + [F2] se creará una nueva tarea cuyo número de identificación es 2.
NOTA: Como se
comentó en el capítulo 1, según el tamaño de la memoria RAM se podrán ejecutar más o menos tareas a la
vez, por ello no todas las teclas de función estarán disponibles. Si
tenemos un ordenador con 8 Mbytes de RAM sólo se podran ejecutar 7 tareas
de usuario, con lo cual estarán disponibles las teclas de función (F1, F2,
..., F7).
Para finalizar una tarea deberá de estar antes en primer plano y luego se pulsará la combinación de teclas [Alt] + [Ctrl] + [M] o bien se escribirá EXIT en la línea de comandos del DOS.
Para pasar a primer plano una tarea se deberá de pulsar la tecla [Alt] + tecla de función con el número de la tarea. Así si tenemos la tarea numero 2 en segundo plano podremos pasarla a primer plano pulsando la tecla [Alt] + [F2].
Si el usuario que maneja DMT aún no se ha convencido de que todas las tareas se ejecutan de forma concurrente puede probar a ejecutar DMT pasándole el parámetro /d (debug) en la línea de comandos. Al pasar este parámetro a DMT, las tareas carecerán de pantallas virtuales y todas accederán a la pantalla física al mismo tiempo, con lo que se observará que todas las tareas se ejecutan de forma concurrente bajo DMT.
En este apéndice queremos comparar aquellas ventajas y desventajas que posee DMT respecto al procesador de comandos de Windows 3.11 y Windows 95, DOSX y VMM32 respectivamente.
El procesador de comandos de Windows 3.11 es muy similar al de DMT ya que ejecuta todos sus programas V86 con un IOPL igual a 3, con lo que les da mayor libertad de ejecución en memoria, produciendo a veces el control total del sistema por una tarea o una caída del sistema.
Al dar a las tareas V86 un IOPL igual a 3, éstas pueden adueñarse del control de las interrupciones enmascarables evitando su ejecución. Así, si una tarea V86 inhibe las interrupciones enmascarables y se queda en un bucle infinito, DMT o Windows 3.11 no tendrán ocasión de conmutar a otra tarea, ya que el despachador de tareas que funciona con las interrupciones externas del reloj de tiempo real, no tendrá ocasión de ejecutarse.
Windows 3.11 es superior a DMT en los siguiente aspectos:
• Posee un mecanismo de memoria virtual que intercambia páginas de memoria a disco, con lo que aumenta el espacio de direcciones lineales y puede ejecutar, por tanto, un mayor número de tareas V86 en memoria.
• Es capaz de ejecutar programas en modo gráfico, aunque en algunos casos no lo consigue debido a la resolución de algunos modos gráficos.
• Puede ejecutar programas que utilizan memoria expandida o e instala un servidor VCPI o DPMI para que puedan ejecutarse tareas para el modo protegido.
• Implementa algunos servicios ofrecidos por el DOS, como imprimir una cadena por pantalla, desde el modo protegido, con lo que aumenta la velocidad de ejecución de las tareas V86.
• Ejecución de varias tareas en ventanas separadas, lo que permite la visualización simultánea de varias tareas por pantalla.
Aunque Windows 3.11 es superior a DMT, hay algunas pequeñas características en las que DMT superan al procesador de comandos de Windows 3.11 como pueden ser:
• Como DMT no realiza tantos chequeos como Windows 3.11 para la ejecución de tareas V86, posee un código altamente optimizado para la emulación de servicios DOS y BIOS, con lo que algunos programas DOS se ejecutan más rápidos en DMT que en Windows 3.11.
• Da el mismo privilegio para todas las tareas, con lo que las tareas en segundo plano se ejecutan a gran velocidad. En Windows 3.11 las tareas en segundo plano tienen un bajo nivel de privilegios con lo que tardan mucho tiempo en ejecutarse.
• Windows 3.11 no es capaz de ejecutar tareas en segundo plano que utilicen los registros Pell-Pannig de la tarjeta VGA, que son los responsables de un scroll suave por pantalla, en cambio DMT es capaz de realizar esto.
• DMT da un número a cada una de las tareas que ejecuta, con lo que el usuario puede pasar a primer plano una tarea directamente una vez que conoce su número pulsando las teclas de función. En Windows 3.11 se ha de pasar secuencialmente por todas las tareas para pasar una a primer plano.
Con todo esto, podemos ver que Windows 3.11 es superior a DMT pero también hay que tener en cuenta que el tiempo de desarrollo de DMT ha sido mucho menor que el de Windows 3.11 y se carecido de información y bibliografía para el desarrollo de DMT.
Windows 95 ha mejorado exponencialmente su procesador de comandos con respecto a Windows 3.11, ya que ahora Windows 95 ejecuta sus programas V86 con un IOPL menor que 3 con lo que tiene un mayor control sobre las operaciones que realizan los programas V86. Con un IOPL menor que 3 las tareas V86 no pueden adueñarse del control de las interrupciones enmascarables con lo que Windows 95 siempre será el dueño del sistema. Aunque a veces se ha observado a Windows 95 bloqueado al ejecutar varias tareas V86.
Todas las características que posee Windows 3.11 las posee también Windows 95 y además han sido mejoradas.
Windows 95 emula muchos mas servicios para sus tareas V86 con lo que su ejecución son mucho más rápidas, incluso en ventanas de pantalla.
Además es capaz de ejecutar cualquier tarea que utilice cualquier modo gráfico tanto en segundo plano como en una ventana de pantalla.
No es posible por tanto comparar a DMT con el procesador de comandos de Windows 95 ya que este último posee muchas más prestaciones que DMT.
DMT es un programa que depende fuertemente del hardware de la máquina, por lo que su ejecución en distintas máquinas puede no ser correcta. DMT ha sido programado en un 80486SX a 33Mhz y funciona correctamente.
En esta sección queremos mostrar el resultado de varias pruebas que se han realizado al ejecutar DMT en distintas máquinas. Por diversos motivos no he podido ejecutar DMT en tantas máquinas como me hubiera gustado, pero de todas formas mostramos a continuación los resultados de ejecutar DMT en algunas máquinas.
Al ejecutar DMT varias veces en este ordenador, el sistema se bloqueaba justo antes de crear la primera tarea. Tras darle varias vueltas a esto, probé a cargar DMT sin ningún controlador instalado en memoria, es decir, pulsando [F5] nada mas encender el ordenador. Tras esto se probó nuevamente DMT y su ejecución fue correcta.
Cuando DMT chequeaba la cantidad de memoria disponible para su ejecución (esto ocurre en la presentación) el ordenador se quedaba bloqueado. Este problema no sé por qué ocurría pero al ejecutar DMT bajo el turbo debugger se llegó a ejecutar la primera tarea. Una vez creada la primera tarea, no se podían crear más tareas ya que el despachador de tareas no se ejecutaba. Esto es debido a que no se podía reprogramar el reloj de tiempo real en este ordenador para activar el despachador de tareas.
Este ordenador utilizaba el COMMAND.COM de Windows 95 como procesador de comandos, lo que hacía que DMT se bloqueará tras cargar y eliminar varias tareas de memoria. Se probó con un disco de arranque que utilizaba el COMMAND.COM del MS-DOS y su ejecución era correcta un 80% de las veces.
DMT necesita muchas restricciones para que pueda ejecutarse en memoria. En esta sección se describen cada uno de los errores que DMT devuelve y cómo podemos llegar a eliminarlos para poder ejecutar el nuevo MS-DOS multitarea, DMT.
Error devuelto por DMT |
Forma de corregirlo |
El procesador no es un 386 o Superior |
Se necesita un 80386 o superior para poder ejecutar DMT. Si este error aparece es imposible ejecutar DMT en esa máquina. |
El procesador está en Modo Virtual 8086 |
Seguramente se ha cargado un gestor de memoria como el EMM386, QEMM, etc, o se está ejecutando bajo Windows o el propio DMT. Elimine ese gestor de memoria del fichero CONFIG.SYS o arranque el ordenador pulsando la tecla [F5] cuando empiece a cargar el MS-DOS. |
Existe muy poca XMS para ejecutar DMT |
Seguramente tenga cargado un programa residente que haya alojado toda la memoria extendida. Arranque nuevamente el ordenador y ejecute seguidamente DMT. |
No se puede acceder a la XMS |
Este error aparece para configuraciones XMS. DMT no posee este tipo de configuración en su versión final |
No se puede alojar memoria XMS |
Sólo para configuraciones XMS. DMT no posee configuración XMS en su versión final. |
No se puede bloquear la memoria XMS |
Sólo para configuraciones XMS. DMT no posee configuración XMS en su versión final |
encontrado servidor XMS (HIMEM, QEMM...) |
DMT no permite que haya ningún gestor de memoria extendida, que no sea la BIOS, en memoria. Elimine el gestor de memoria del fichero CONFIG.SYS o arranque el ordenador pulsando [F5] cuando empiece a cargarse el MS-DOS. |
No se puede liberar la línea A20 |
Sólo para configuraciones XMS. DMT no posee configuración XMS en su versión final. |
No hay suficiente memoria convencional |
Seguramente haya cargado varios programas residentes en memoria y no deja memoria convencional suficiente para DMT. Elimine esos programas de memoria o arranque el ordenador pulsando [F5] cuando empiece a cargarse el MS-DOS. |
Excepción 12: Excepción de pila |
DMT ha ejecutado una tarea que por diversos motivos ha afectado a la pila de DMT. DMT finaliza aquí su ejecución. Si desea seguir utilizando la multitarea de DMT escriba nuevamente DMT en la línea de comandos del DOS. |
No se puede reprogramar el reloj de tiempo real |
El reloj de tiempo real en esa máquina posee diversas características que hacen que DMT no pueda programarlo. Intente cargar nuevamente DMT o inténtelo arrancando el ordenador con la tecla [F5]. |
No se puede crear la tarea numero 1 por falta de memoria |
Existe algún programa DOS cargado en memoria que ha alojado toda la memoria extendida. Elimínelo de la memoria y vuelva a ejecutar DMT. |
No hay Memoria Extendida libre para alojar la tarea |
Existe algún programa DOS cargado en memoria que ha alojado toda la memoria extendida. Elimínelo de la memoria y vuelva a ejecutar DMT. |
No existe ningún procesador de comandos en el sistema |
El programa COMMAND.COM ha sido borrado del disco y DMT no puede crear un nuevo shell. Consiga el programa COMMAND.COM e instálelo en su sistema. |
Error en cadena de MCBs. Memoria convencional corrupta |
Ha ocurrido un error mientras el DOS cargaba DMT en memoria. Pruebe a ejecutar DMT nuevamente reiniciando el ordenador. |
MS-DOS no ha cargado debidamente DMT por falta de memoria |
Ha ocurrido un error mientras el DOS cargaba DMT en memoria. Pruebe a ejecutar DMT nuevamente reiniciando el ordenador. |
El fichero DMT.EXE ha sido renombrado por el usuario |
Se ha cambiado el nombre del fichero DMT.EXE por otro. Utilice el comando REN para volver a poner el nombre DMT.EXE. |
[TISCHER] "PC Interno". Tischer. Editorial Marcombo.
[TISCHER] "PC Interno 2". Tischer. Editorial Marcombo.
[CRAWFORD] "Programación del 80386/387". John H. Crawford & Patrick P. Gelsinger. Editorial Anaya.
[PETERSON] "Sistemas Operativos. Conceptos fundamentales". James L. Peterson & Abraham Silbreschatz. Editorial Reverté.
[WILTON] "Sistemas de vídeo". Richard Wilton. Editorial Anaya.
[INTEL386] "80386, Guía del programador y Manual de referencia". Intel. Editorial Anaya.
[INTEL] "80386, Guía del programador de sistemas". Intel. Editorial Anaya.
[HELPPC] "HelpPC 2.10". David Jurgens.
[TRAN] "Extensores para 286/386". Thomas "Tran" Pytel.
[MICHELETTO] "386Power". Lorenzo "Mike" Micheletto.
[BROWN] "The Ralph Brown Interrupt List versión 4.3". Ralph Brown
[SEYCHELL] "DOS32 versión 3.3". Adam Seychell.
[STALKER] "How to program de DMA". Night Stalker.
[DULLINK] "D32". Herman Dullink.
[ASMFAQ] "ASM F.A.Q.". Internet news group: alt.lang.asm.
[TIMING] "Instructions Timing". AsmEDIT by Olaf Krusche & Tilo Elstner.
[YRAOLAGOITIA] "DOS 4". Jaime de Yraolagoitia. Editorial Paraninfo.
[XMSspec] "eXtended Memory Specification (XMS), version 2.0".
[VCPIspec] "Virtual Control Program Interface (VCPI) Specification"
[DPMIspec] "DOS Protected Mode Interface (DPMI) Specification"
Cómo contactar con el autor |
Si deseas obtener los fuentes de DMT (32-bit Dos Multitarea) o deseas más información sobre este proyecto, mándame un e-mail a:
Aún no hay comentarios para este recurso.
Monografias, Exámenes, Universidades, Terciarios, Carreras, Cursos, Donde Estudiar, Que Estudiar y más: Desde 1999 brindamos a los estudiantes y docentes un lugar para publicar contenido educativo y nutrirse del conocimiento.
Contacto »