Documente Academic
Documente Profesional
Documente Cultură
Se aprecia que en reserva los primeros 16K de memoria (de la localidad [0x00, 0x3ff]) para
el vector de interrupciones, en este espacio de direcciones se pueden atender hasta 256
interrupciones distintas.
El BIOS de DOS
El BIOS de DOS (MSDOS BIOS) consiste de una lista de manejadores de
dispositivos (residente en memoria) y un módulo de inicialización adicional. Los
manejadores de dispositivos se encuentran en el archivo IO.SYS. El MS-DOS
BIOS se crea para una máquina en particular por un OEM3.2. La rutina de
inicialización del BIOS de DOS y SYSINIT se deshechan después de la
inicialización.
El núcleo de DOS
El núcleo de DOS (MSDOS KERNEL) es el corazón de este sistema operativo y
proporciona las funciones que tienen los sistemas operativos tradicionales. El
núcleo proporciona estos servicios a los programas de aplicación de forma
independiente a los dispositivos.
El núcleo de DOS proporciona los siguientes servicios a través del uso de manejadores de
dispositivos:
• Manejo de memoria.
• Manejo de tarea y ambiente.
• Configuración de un país específico.
Los programas accesan a las funciones del sistema a través de la instrucción de interrupción
por software INT. El sistema operativo DOS reserva las interrupciones 0x20 hasta 0x3f
para uso propio. Las interrupciones de DOS son:
Hilo de ejecución
En sistemas operativos, un hilo de ejecución o subproceso es una característica que
permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos
hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los
archivos abiertos, situación de autenticación.
Un hilo es básicamente una tarea que puede ser ejecutada en paralelo con otra tarea.
Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos, son
en conjunto conocidos como un proceso. El hecho de que los hilos de ejecución de un
mismo proceso compartan los recursos hace que cualquiera de estos hilos pueda modificar
éstos. Cuando un hilo modifica un dato en la memoria, los otros hilos acceden a ese dato
modificado inmediatamente.
El proceso sigue en ejecución mientras al menos uno de sus hilos de ejecución siga activo.
Cuando el proceso finaliza, todos sus hilos de ejecución también han terminado. Asimismo
en el momento en el que todos los hilos de ejecución finalizan, el proceso no existe más y
todos sus recursos son liberados.
Estados de un hilo
Los principales estados de los hilos son: Ejecución, Listo y Bloqueado. No tiene sentido
asociar estados de suspensión de hilos ya que es un concepto de proceso. En todo caso, si
un proceso está expulsado de la memoria principal (ram), todos sus hilos deberán estarlo ya
que todos comparten el espacio de direcciones del proceso.
Cambio de estados
• Creación: Cuando se crea un proceso se crea un hilo para ese proceso. Luego, este
hilo puede crear otros hilos dentro del mismo proceso, proporcionando un puntero
de instrucción y los argumentos del nuevo hilo. El hilo tendrá su propio contexto y
su propio espacio de la columna, y pasara a la final de los listos.
• Bloqueo: Cuando un hilo necesita esperar por un suceso, se bloquea (salvando sus
registros de usuario, contador de programa y punteros de pila). Ahora el procesador
podrá pasar a ejecutar otro hilo que esté en la final de los Listos mientras el anterior
permanece bloqueado.
1. Se tarda mucho menos tiempo en crear un hilo nuevo en un proceso existente que en
crear un proceso. Algunas investigaciones llevan al resultado que esto es así en un
factor de 10.
2. Se tarda mucho menos en terminar un hilo que un proceso, ya que cuando se
elimina un proceso se debe eliminar el BCP del mismo, mientras que un hilo se
elimina su contexto y pila.
3. Se tarda mucho menos tiempo en cambiar entre dos hilos de un mismo proceso
4. Los hilos aumentan la eficiencia de la comunicación entre programas en ejecución.
En la mayoría de los sistemas en la comunicación entre procesos debe intervenir el
núcleo para ofrecer protección de los recursos y realizar la comunicación misma. En
cambio, entre hilos pueden comunicarse entre sí sin la invocación al núcleo. Por lo
tanto, si hay una aplicación que debe implementarse como un conjunto de unidades
de ejecución relacionadas, es más eficiente hacerlo con una colección de hilos que
con una colección de procesos separados.
Sincronización de hilos
Todos los hilos comparten el mismo espacio de direcciones y otros recursos como pueden
ser archivos abiertos. Cualquier modificación de un recurso desde un hilo afecta al entorno
del resto de los hilos del mismo proceso.Por lo tanto, es necesario sincronizar la actividad
de los distintos hilos para que no interfieran unos con otros o corrompan estructuras de
datos.
Una ventaja de la programación multihilo es que los programas operan con mayor
velocidad en sistemas de computadores con múltiples CPUs (sistemas multiprocesador o a
través de grupo de máquinas) ya que los hilos del programa se prestan verdaderamente para
la ejecución concurrente. En tal caso el programador necesita ser cuidadoso para evitar
condiciones de carrera (problema que sucede cuando diferentes hilos o procesos alteran
datos que otros también están usando), y otros comportamientos no intuitivos. Los hilos
generalmente requieren reunirse para procesar los datos en el orden correcto. Es posible que
los hilos requieran de operaciones atómicas para impedir que los datos comunes sean
cambiados o leídos mientras estén siendo modificados, para lo que usualmente se utilizan
los semáforos. El descuido de esto puede generar interbloqueo.
Formas de multihilos
Los sistemas operativos generalmente implementan hilos de dos maneras:
• Multihilo cooperativo: depende del mismo hilo abandonar el control cuando llega a
un punto de detención, lo cual puede traer problemas cuando el hilo espera la
disponibilidad de un recurso.
Procesamiento asíncrono
Aceleración de la ejecución
Se pueden ejecutar, por ejemplo, un lote mientras otro hilo lee el lote siguiente de un
dispositivo.
Puede ser un mecanismo eficiente para un programa que ejecuta una gran variedad de
actividades, teniendo las mismas bien separadas mediante hilos que realizan cada una de
ellas.
Implementaciones
Hay dos grandes categorías en la implementación de hilos:
También conocidos como ULT (user level thread) y KLT (kernel level thread)
En una aplicación ULT pura, todo el trabajo de gestión de hilos lo realiza la aplicación y el
núcleo o kernel no es consciente de la existencia de hilos. Es posible programar una
aplicación como multihilo mediante una biblioteca de hilos. La misma contiene el código
para crear y destruir hilos, intercambiar mensajes y datos entre hilos, para planificar la
ejecución de hilos y para salvar y restaurar el contexto de los hilos.
Comandos batch
CALL
Este comando realiza, desde un archivo batch, una llamada a la ejecución de otro archivo
batch. El primer archivo no finaliza su ejecución al realizar la llamada.
CHOICE
Ofrece al usuario una entrada de datos para que pueda escoger una opción (escoger una de
las letras que se le ofrecen), y espera hasta que esta tenga lugar.
Es un parámetro opcional.
/C[:]letra, especifica las letras que indicarán las opciones del usuario. Si las
especificas separadas por comas, aparecerán entre corchetes seguidas de un
interrogante. Si no se especifican, se usara YN (si, no) por defecto.
/T[:]c,nn: introduce un tiempo de espera antes de ejecutar la acción por defecto. Con
los siguientes posibles valores:
c: señala que carácter será usado como opción por defecto después de nn segundos.
Solo puedes indicar uno de los caracteres especificados con el modificador /C:::nn:
indica el número de segundos de pausa. Valores entre 0 y 99.
• CHOICE [/C[:]letra] [/N] [/S] [/T[:]c,nn] [texto], puedes especificar un texto que
aparecerá antes de la entrada de datos. No hace falta que se entrecomille, salvo que
dicha cadena de texto incluya una barra /.
• ECHO
• Activa o desactiva el volcado de texto del programa (output) a la pantalla:
• ECHO [ON|OFF] echo [mensaje] Parámetros
• ON|OFF: activa o desactiva el volcado de texto. Para conocer el estado actual, usar
ECHO sin parámetros.
• Mensaje: el texto a mostrar.
SET
set /p :Permite la entrada de datos por parte del usuario (prompt),el valor
introducido por el mismo define la variable.
FOR
Parámetros:
%%variable %variable: representa una variable que será reemplazada por su valor.
FOR reemplazará %%variable o %variable con la cadena de caracteres
especificados en SET hasta que el comando especificado se haya ejecutado sobre
todos los archivos. %%variable se emplea con FOR dentro de archivos batch,
y %variable desde la línea de comandos.
(set), especifica uno o más archivos de texto (o cadenas) que se procesaran con el
comando. Necesita paréntesis.
command, el comando que debe ejecutarse sobre cada archivo especificado en SET
parámetros de comando.
GOTO
Donde :Label (advierte los dos puntos) es una etiqueta que identifica la línea. 8 caracteres
máximo.
IF
Parámetros:
PAUSE
Suspende la ejecución de comandos y presenta un mensaje para que el usuario presione una
tecla para continuar.
"pause > nul" no muestra mensaje al pausar la ejecucion, pero sigue requiriendo que el
usuario presione cualquier tecla para poder continuar.
REM
SHIFT
COMANDO DEL D O S.
CHKDSK - Controla un disco y provee información sobre su capacidad, su estado, los directorios,
los archivos, la FAT, etc. Ha sido reemplazado por SCANDISK en los DOS 6.2.
MD - Crea un directorio. Otro nombre de este comando: MKDIR, por "Make Directory”, creación de
un directorio.
SCANDISK - Herramienta de verificación y reparación de los discos duros, pero sólo a partir de la
versión 6.2.
Aca estan los demas para los que quieren saber mas del dos
APPEND - Indica al sistema en qué directorios debe buscar los archivos de datos o de comandos.
Este comando es relativamente reciente en el DOS y complementa al comando PATH, que sólo se
ocupa de archivos de comandos.
ASSIGN - Envía el comando direccionado en un disco hacia otro disco; este último reemplaza al
primero. Ya no existe en el DOS 6.
BACKUP - Realiza una copia de seguridad de los archivos de un disco en uno 0 varios discos,
mostrando mientras tanto su nombre en pantalla. La restauración de los archivos se hace con la
orden de sentido contrario, RESTORE. El Backup ya no existe en el DOS 6, lo cual es una
bendición porque este comando era uno de los más difíciles de manejar.
BASIC - Llama al lenguaje Basic IBM en los DOS IBM. Se trata del lenguaje de programación más
simple que existe.
BAT - Extensión específica para el nombre de los archivos de procedimientos, que disponen de
toda una gama de comandos propios. Uno de los más conocidos es el archivo AUTOEXEC.BAT,
que se ejecuta automáticamente cuando usted pone su computadora en funcionamiento.
BREAK - Activa o desactiva la posibilidad de realizar una interrupción con Control + Pausa, que
permite salir de una secuencia.
BUFFERS - Comando para el config.sys que determina la capacidad del búfer para el disco.
CHDIR - Cambio de directorio, cuyo nombre abreviado es CD. Adopte CD en lugar de CHDIR si
quiere evitar presionar tres teclas en el teclado.
CHKDSK - Controla un disco y provee información sobre su capacidad, su estado, los directorios,
los archivos, la FAT, etc. Ha sido reemplazado por SCANDISK en los DOS 6.2.
CHKSTATE.SYS - Una novedad del DOS 6. Usado por el programa MemMaker para optimizar la
memoria.
CHOICE - Una novedad del DOS. 6. Le pide al usuario que efectúe una selección en una
secuencia «batch».
CLS - Simplemente borra la pantalla, sin cambiar ninguna otra cosa. Es un comando pequeño e
interesante que conviene recordar.
DATE - Muestra en pantalla y modifica la fecha utilizada por el sistema; la nueva, fecha introducida
se graba en las memorias permanentes.
DBLSPACE.SYS - Una novedad del DOS 6. Determina la posición final del archivo dblspace.bin.
DEBUG - Lanza el programa de "debugging' (eliminación de errores). Debug está reservado a los
expertos.
DEFRAG - Una novedad del DOS 6. Desfragmenta los archivos en el disco duro para mejorar la
velocidad y la seguridad.
DEL - Destruye uno o varios archivos en el disco (actúa como el comando ERASE).
DELTREE - Una novedad dei DOS 6. Suprime un directorio y todo lo que contiene, incluyendo los
subdirectorios, en una sola operación.
DEVICEHIGH - Carga un administrador en memoria superior, por encima de los primeros 640 KB.
DISKCOMP - Compara el contenido total, pista por pista y sector por sector, de dos disquetes del
mismo tipo.
DOS - Establece un vínculo entre la memoria convencional y la memoria superior a través del
config.sys.
DOSSHELL - Llama a la superestructura de diálogo del DOS. Este dos shell ha sido
suprimido en la versión DOS 6.2 ya que Microsoft consideró que había sido reemplazado
ventajosamente por el “Administrador de archivos” de ese superprograma que es Windows.
DRIVPARM - Define los parámetros de periféricos en modo bloque, a través del Config.Sys.
DRIVESPACE - Reemplaza a DBLSPACE a partir del DOS 6.22, con las mismas funciones.
ECHO - Vuelve a mostrar en pantalla o no, en eco, los comandos ejecutados en un archivo .BAT,
según se ponga o no en servicio este eco, usando ON u OFF respectivamente. Permite introducir
un mensaje que será mostrado en pantalla en todos los casos.
ERASE - Destruye uno o varios archivos del disco (y actúa como el comando DEL). Opte por DEL
ya que se escribe más rápido.
ERROLEVEL - Código de errores para archivos .BAT Otra noción más para expertos.
EXE2BIN - Convierte el formato .EXE en .BIN o .COM. Este comando, que no existe más en los
DOS 6, está destinado a los programadores.
EXIT - Sale de un procesador de comandos. En la mayoría de los casos, EXIT le permite salir del
DOS para volver al programa que lo llama, Windows por ejemplo.
FASTHELP - Muestra en pantalla la lista de comandos de la versión 6 con una breve explicación.
FASTOPEN - Proporciona un acceso rápido a los archivos que se usan con más frecuencia, o a los
últimos que se han utilizado, memorizando su camino de acceso.
FIND - Busca la cadena de caracteres indicada en un archivo y envía al periférico activo de salida
(el monitor, por ejemplo) todas las líneas en las que la encontró.
FOR - Especifica la repetición del mismo comando para cada una de las variables contenidas en la
lista.
GOTO - Es un direccionamiento incondicional a una línea marcada con un rótulo del mismo
nombre en un archivo .BAT.
GRAFTABL - Carga la tabla de los caracteres gráficos, los códigos ASCII 128 a 255, para la
visualización en pantalla. No existe más en el DOS 6.
GRAPHIC - Carga una secuencia que permite la impresión de la pantalla que incluye caracteres
gráficos, de códigos 128 a 255.
GWBASIC - Llamado del antiguo Basic avanzado de Microsoft. No existe más en el DOS 6, en el
cual ha sido reemplazado por el QBasic.
HELP - Pedido de ayuda. Desde el DOS 5.
INCLUDE - Incluye un bloque de configuración en otro, a través del Config.Sys. Nuevo comando
con el DOS 6.
INTERLNK - Conecta dos computadoras, por medio de sus puertos paralelos o en serie. Nuevo
comando del DOS 6.
INTERSVR - Lanza el centro de recuperación de datos InterLnk. Nuevo comando del DOS 6.
JOIN - Asigna el contenido de un disco a un directorio de otro disco. No existe más en el DOS 6.
KEYB - Carga el programa que administra el teclado (reemplaza al que reside en la memoria
muerta, para el teclado USA).
LOADFIX - Carga un programa por encima de los primeros 64 Kb de memoria y lo ejecuta. Nuevo
comando del DOS 6.
MENUCOLOR - Determina el color del texto y del fondo para el primer menú, a través del
Config.Sys. A partir del DOS 6.
MIRROR - Copia de seguridad para el seguimiento del borrado de archivos. Con el DOS 5.
MKDIR - Crea un subdirectorio. Otro nombre de este comando: MD, por "Make Directory”, creación
de un directorio.
MOVE - Mueve uno o varios archivos y da nuevo nombre a archivos o directorios. Nuevo comando
con el DOS 6.
NUMLOCK - Determina que la sección numérica del teclado esté bloqueada o no, a través del
Config.Sys. Nuevo comando a partir del DOS 6.
PATH - Especifiica caminos de búsqueda alternativos para los archivos de comando (con la
extensión .COM, o .EXE o .BAT) que no se encuentran en el directorio activo. Este comando se
encuentra generalmente en el archivo Autoexec.bat.
POWER - Pone en servicio o saca de servicio la administración del consumo de energía. Nuevo
comando a partir del DOS 6.
PRINT - Imprime el contenido de archivos, en segundo plano, mientras se prosigue con un trabajo
en la pantalla.
PRINTER.SYS - Se utiliza para conmutar las tablas de códigos con las impresoras, a través del
Config.Sys.
PROMPT - Define o muestra en pantalla los símbolos del sistema utilizados por el DOS.
RD - Suprime un subdirectorio que debe estar obligatoriamente vacío (y que, por lo tanto, sólo
debe contener las marcas . y ..). El nombre completo de este comando es RMDIR.
RECOVER - Interviene cuando hay que recuperar los datos de un archivo porque hay un sector
defectuoso en el disco. Los datos de este sector se habrán perdido. No existe más en el DOS 6.
REM - Introduce observaciones, comentarios, en 123 caracteres como máximo por línea de REM.
RENAME - Cambia el nombre de un archivo. Es lo mismo que REN, pero más largo de escribir.
RMDIR - Suprime un subdirectorio que debe estar obligatoriamente vacío (y que, por lo tanto, sólo
debe contener las marcas . y ..). El nombre abreviado es RD.
SET - Sirve para definir el entorno de trabajo que requieren algunos programas, introduciendo un
nombre seguido de su equivalencia.
SHIFT - Sirve para utilizar más de 10 parámetros reemplazables numerados de 0 a 9, en las líneas
de comando, marcando una diferencia de una posición para cada SHIFT que se introduce.
SHIPDISK - Bloquea los cabezales del disco duro antes de desplazarlo. Desapareció en el DOS 6.
SUBMENU - Define un ítem del menú de arranque abriendo un submenú. Nuevo comando del
DOS 6.
SUBST - Sustituye un camino de acceso cuya descripción es larga, y/o su unidad, por una unidad
de disco ficticia que bastará con llamar luego.
SYS - Copia los tres archivos que sirven de núcleo al sistema del disco fuente activo al disco
destinatario.
TIME - Muestra en pantalla o configura la hora del sistema (incluidos los relojes permanentes,
resguardados).
TREE - Muestra los árboles de los directorios de un disco (y la lista de sus archivos con una clave
suplementaria).
VDISK - Instala un disco virtual, a través del Config.Sys. Dejó de estar incluido a partir del DOS 6.
VERIFY - Pone en servicio (con ON) o anula (con OFF) la verificación de los datos escritos en el
disco.