sábado, 7 de marzo de 2015

Gestión de procesos en MS-DOS

   MS-DOS es un sistema operativo monoproceso por lo que no puede soportar varios procesos en ejecución simultánea. 

      Cuando se arranca el sistema operativo el shell de MS-DOS indica que esta preparado para recibir ordenes al mostrar la petición en la pantalla, en ese momento, el usuario puede arrancar un programa, con lo que el shell iniciará un nuevo proceso,este proceso hijo deberá terminarse antes de que se vuelva a mostrar la petición de orden. Mientras el proceso hijo se ejecuta, el proceso padre quedará suspendido, y aunque permanezcan juntos en memoria, sólo el hijo estará activo y el proceso padre no podrá reanudar su ejecución hasta que el hijo termine. 
En MS-DOS existen dos tipos de archivos ejecutables, que provocan dos tipos de procesos distintos:
  • Los archivos “.COM”, no levan encabezado y contienen solo un segmento de código ejecutable, se cargan en memoria sin ninguna modificación, y se ejecutan. Los procesos que se inician a partir de ficheros de este tipo constan de un segmento de texto, uno de datos y otro de pila que no pueden superar en conjunto los 64k.
  • Los archivos “.EXE”, además del código ejecutable, disponen de información sobre reasignación y los procesos iniciados a partir de este tipo de archivos, pueden disponer además del segmento de texto, el de datos y el de pila, de varios segmentos adicionales.

     Cada proceso en MS-DOS dispone de un bloque inicial de 256 bytes denominado PSP(prefijo del segmento de programa) que guarda entre otras cosas: información relativa al tamaño del programa, un apuntador al bloque del ambiente(parte d la memoria donde se guardan las variables de shell),un apuntador al psp del padre, etc.
Cuando se crea un proceso hijo en MS-DOS se comprobará si existe memoria suficiente, ya que al no disponerse de swapping, si no existe memoria suficiente, no podrá crearse. En el caso de que se haya podido crear, el proceso hijo normalmente hereda los archivos abiertos del padre y puede abrir sus propios archivos, sin embargo, estos últimos se cerrarán cuando el hijo muera, momento entonces en el que MS-DOS, recupera la memoria ocupada por él y el proceso desaparece. Sin embargo, existe la posibilidad de que un proceso, al terminar, indique al sistema operativo que le permita residir en la memoria después de haber terminado,y activarse, por ejemplo, mediante una combinación de teclas concretas ;esta posibilidad se debe a que los procesos pueden instalar sus propios manejadores de interrupciones. A los que funcionan de esta forma se les denomina programas residentes en memoria.



Fuentes:
 Medina, Ramon. Programación avanzada en lenguaje ensamblador. 1992, Págs. 7-19.
Barbakati, Nabaiyoti. Haybe, Randal. The waite group´s microsoft macro assembler bible.
Godfrey, Terry J.Lenguaje ensamblador para microcomputadoras ibm(para principiantes y avanzados). 1991, Editorial Prentice-hall hispanoamericana, S.A. Págs. 8-12 y 143-148.
Alcalde E.; García M.; Peñuelas S. Informática básica.1988, Editorial McGraw-Hill. Págs. 23-48.

Volver a Índice

No hay comentarios:

Publicar un comentario