miércoles, 13 de enero de 2016

COMUNICACION ENTRE PROCESOS Y MS- DOS



Resumen  de la clase dictada  9 y 16 de diciembre 2015 

1.     INTRODUCCIÓN

Dentro de las operaciones más básicas y a las ves complejas de una computadora encontramos a los procesos. Ya que si no existiera procesos el computador de que nos serviría.  La comunicación entre procesos a veces es muy dificultoso para los sistemas operativos, pero es muy útil ya que mediante esta comunicación los procesos  en el sistema operativo se llevan de una manera más eficiente.
Los comandos MS-DOS permiten funcionar un equipo con pocas órdenes concretas y mejorarlo a su vez.


2.  OBJETIVO

Conocer comunicación entre procesos y características del MS-DOS y comandos básicos.


3. MARCO TEÓRICO

3.1. COMUNICACIÓN ENTRE PROCESOS

Con frecuencia, los procesos necesitan comunicarse con otros procesos. Por ejemplo, en una canalización del shell, la salida del primer proceso se debe pasar al segundo proceso y así sucesivamente.

Por ende, existe una necesidad de comunicación entre procesos, de preferencia en una forma bien estructurada sin utilizar interrupciones. En las siguientes secciones analizaremos algunas de las cuestiones relacionadas con esta comunicación entre procesos o IPC.

En resumen, hay tres cuestiones aquí. La primera se alude a lo anterior: cómo un proceso puede pasar información a otro. La segunda está relacionada con hacer que dos o más procesos no se interpongan entre sí; por ejemplo, dos procesos en un sistema de reservaciones de una aerolínea, cada uno de los cuales trata de obtener el último asiento en un avión para un cliente distinto. La tercera trata acerca de obtener la secuencia apropiada cuando hay dependencias presentes: si el proceso A produce datos y el proceso B los imprime, B tiene que esperar hasta que A haya producido algunos datos antes de empezar a imprimir. En la siguiente sección analizaremos las tres cuestiones.




 Figura1. Dos procesos desean acceder a la memoria compartida al mismo tiempo.

3.2. CONDICIONES DE CARRERA

En algunos sistemas operativos, los procesos que trabajan en conjunto pueden compartir cierto espacio de almacenamiento en el que pueden leer y escribir datos. El almacenamiento compartido puede estar en la memoria principal (posiblemente en una estructura de datos del kernel) o puede ser un archivo compartido; la ubicación de la memoria compartida no cambia la naturaleza de la comunicación o los problemas que surgen. Para ver cómo funciona la comunicación entre procesos en la práctica, consideremos un ejemplo simple pero común: un spooler de impresión. Cuando un proceso desea imprimir un archivo, introduce el nombre del archivo en un directorio de spooler especial.
Otro proceso, el demonio de impresión, comprueba en forma periódica si hay archivos que deban imprimirse y si los hay, los imprime y luego elimina sus nombres del directorio.


3.3. REGIONES CRÍTICAS

¿Cómo evitamos las condiciones de carrera? La clave para evitar problemas aquí y en muchas otras situaciones en las que se involucran la memoria compartida, los archivos compartidos y todo lo demás compartido es buscar alguna manera de prohibir que más de un proceso lea y escriba los datos compartidos al mismo tiempo. Dicho en otras palabras, lo que necesitamos es exclusión mutua, cierta forma de asegurar que si un proceso está utilizando una variable o archivo compartido, los demás procesos se excluirán de hacer lo mismo. La dificultad antes mencionada ocurrió debido a que el proceso B empezó a utilizar una de las variables compartidas antes de que el proceso A terminara con ella.

El problema de evitar las condiciones de carrera también se puede formular de una manera abstracta.

Parte del tiempo, un proceso está ocupado realizando cálculos internos y otras cosas que no producen condiciones de carrera. Sin embargo, algunas veces un proceso tiene que acceder a la memoria compartida o a archivos compartidos, o hacer otras cosas críticas que pueden producir carreras.

Esa parte del programa en la que se accede a la memoria compartida se conoce como región crítica o sección crítica. Si pudiéramos ordenar las cosas de manera que dos procesos nunca estuvieran en sus regiones críticas al mismo tiempo, podríamos evitar las carreras.
Figura2. Exclusión mutua mediante el uso de regiones críticas.


3.4. INTRODUCCIÓN A MS-DOS

En un sistema operativo monousuario y monotarea, es decir, dedica los recursos del sistema a un solo usuario y a un solo proceso. MS-DOS son las siglas de MicroSoft Disk Operating System –algo así como <<Sistema Operativo en Disco>>-.
Una de sus características principales es que permite hacer funcionar un equipo con pocas órdenes concretas. Esto implica que en un simple disquete se pueden almacenar las órdenes o comandos necesarios y el propio núcleo del SO.
3.5. CARACTERÍSTICAS GENERALES DE MS-DOS

Podemos decir, que las principales características de este SO son:
  • Monousuario: el ordenador solo puede ser usado por un solo usuario a la vez
  • Monotarea: sólo es capaz de ejecutar un proceso a la vez. La CPU destina su tiempo a dicho proceso hasta que este haya terminado.
  • Interfaz modo texto o de línea de comandos: la comunicación entre el usuario y el sistema se realiza mediante comandos formados por cadenas de caracteres.
  • Gestión de memoria y periféricos: coordina todas las operaciones de E/S, los accesos y la gestión de memoria.
3.6. GESTIÓN DE MEMORIA

Por lo general, MS-DOS tiene una forma específica de estructurar y gestionar la memoria principal del equipo. Esta, se divide principalmente en tres bloques:
  • Memoria convencional: ocupa los primeros 640 KB de RAM
  • Área de memoria superior: desde los 641 KB hasta los 1024 KB (1 MB).
  • Memoria Extendida: desde el primer MB hasta lo que disponga el equipo.
3.6. MEMORIA CONVENCIONAL

Esta memoria se usa, principalmente, para ejecutar todos los programas del S.O. La mayor parte de los ficheros incluidos en MS-DOS están destinados a gestionar esta memoria con el fin de liberarla al máximo. Cuanta más memoria convencional esté libre, mayor podrá el programa a ejecutar.

El propio MS-DOS solo utilizará unos 2 KB aproximadamente. En esta zona, se almacena las IRQ’s (tablas de interrupciones), la tabla de características de la máquina, etc. A continuación, se encuentra el núcleo (Kernel) del MS-DOS, el cual está constituido por dos programas: el IO.SYS y el MS-DOS.SYS, los cuales definiremos un poco más adelante.
La zona de órdenes de fichero contiene las órdenes del fichero CONFIG.SYS, las cuales se instalan en memoria de forma residente. Hay cinco órdenes básicas del propio CONFIG.SYS que se almacenan en esta zona: BUFFERS, FCBS, FILES, LASTDRIVE y STACKS.

A continuación, encontramos la zona de controladores de dispositivo, donde se almacenan todos ellos. Estos controladores se cargan en el CONFIG.SYS mediante la orden DEVICE.

Posteriormente se ubica el COMMAND.COM. Este programa es el intérprete de comandos del SO y contiene todos los comandos del DOS que se cargan en memoria en el momento del arranque –es decir, los llamados <<comandos internos>>-.

Por último, en la zona de programas residentes de usuario, se cargan en primer lugar los programas que se cargar desde el AUTOEXEC.BAT –como son el KEYB, DOSKEY, PRINT, etc-. A partir del último programa residente, la memoria que queda libre es la que podemos usar para cargar los programas del usuario.

3.7. MEMORIA SUPERIOR

Su misión es almacenar programas del sistema y rutinas de inicialización y control. Se divide en varios segmentos:
  • La memoria de vídeo: compuesta por chips de RAM, almacena los caracteres y atributos que se visualizan en pantalla. Dicha RAM suele residir en chips situados en la propia gráfica.
  • La BIOS: conjunto de rutinas básicas que gestionan las operaciones de Entrada/Salida del sistema; dichas rutinas se almacenan en la ROM.
  • Los huecos que quedan entre los bloques mencionados se denominan UMB (Upper Memory Blocks, <<bloque de memoria superior>>) y se usan para cargar controladores de los distintos periféricos.
  • La memoria expandida (EMS): es un tipo de gestión de memoria que surge como solución a la limitación original de los primeros equipos. Dicha gestión se realiza en 4 bloques de 16 KB (64 KB en total) ubicados en memoria superior. Gracias a la EMS, se podrá utilizar la Memoria Extendida (XMS): como MS-DOS no puede acceder directamente a la información por encima de los 1024 KB, utiliza la EMS (lo que hace es crear un marco de página en una zona a la que puede acceder el ordenador y, a través de dicho marco, se puede redireccionar hacia la XMS).
  •  
3.8. MEMORIA EXTENDIDA (XMS)

Como ya hemos dicho, por sí mismo MS-DOS no es capaz de gestionar la RAM a partir de 1024 KB, pero con la aparición de dispositivos como RAMDRIVE.SYS, se pueden crear “discos virtuales” en memoria extendida. Así, cuando vamos a usar programas que son demasiado grandes para la memoria convencional, éstos se cargan en el disco virtual formado en la memoria extendida.

3.9. MEMORIA ALTA (HMA)

Es la zona de memoria expandida que va desde los 1025 a los 1088 KB. Esta zona permite instalar el núcleo del sistema, liberando a la memoria convencional de 44 KB para poder ejecutar aplicaciones.

3.10. PRINCIPALES COMANDOS MS-DOS
  • COMANDO: MD
  • ACCIÓN: Crea directorios
  • SINTAXIS: MD [unidad:\ruta\] <nombre>
  • COMANDO: RD
  • ACCIÓN: Borra directorios (solo si se encuentra vacío)
  • SINTAXIS: RD [unidad:\ruta\] <nombre>
  • COMANDO: CD ; CD.. ; CD\
  • ACCIÓN: Sirve para moverse por los distintos directorios
  • SINTAXIS: CD <nombre de la carpeta> , CD.. , CD\
  • COMANDO: TREE
  • ACCIÓN: Muestra la el árbol de directorios de la unidad
  • SINTAXIS: TREE [Unidad:\ruta]
  • PRINICPALES MODIFICADORES:  /F Presenta los nombres de los archivos que contiene cada directorio.  /A Utiliza caracteres de texto en lugar de caracteres gráficos.
  • COMANDO: VOL
  • ACCIÓN: Muestra el número de serie del disco o unidad
  • SINTAXIS: VOLCOMANDO: DELTREE
  • ACCIÓN: Borra el directorio aunque no esté vacío.
  • SINTAXIS: DELTREE [unidad:\ruta\] <nombre>
  • PRINICPALES MODIFICADORES: /Y No pide confirmación antes de borrar.
  • COMANDO: DIR
  • ACCIÓN: Muestra el contenido de un directorio
  • SINTAXIS: DIR [unidad:\directorio]
  • PRINICPALES MODIFICADORES: /P Pausa la pantalla para poder ver todo. /S Muestra también subdirectorios.
  • COMANDO: MOVE
  • ACCIÓN: Mueve ficheros de un directorio a otro
  • SINTAXIS: MOVE <origen> <destino>
  • PRINICPALES MODIFICADORES: /Y No pregunta por la confirmación de reemplazo
  • COMANDO: TYPE
  • ACCIÓN: Visualiza archivos de texto
  • SINTAXIS: TYPE [Unidad:\ruta\Archivo]
  • COMANDO: XCOPY
  • ACCIÓN: Copia directorios enteros
  • SINTAXIS: XCOPY <Origen> <destino>
  • PRINICPALES MODIFICADORES:  /P Pide confirmación antes de copiar cada archivo. /S La copia debe ser extensiva a todos los directorios (los vacíos no). /E Copia también los directorios Vacíos.
  • COMANDO: REN / RENAME
  • ACCIÓN: Renombra ficheros
  • SINTAXIS: RENAME <nombre actual> <nombre nuevo>
  • COMANDO: DEL
  • ACCIÓN: Elimina ficheros
  • SINTAXIS: DEL [Unidad:\ruta\Archivo]
  • PRINICPALES MODIFICADORES: /P Pide confirmación.
  • COMANDO: UNDELETE
  • ACCIÓN: Recupera archivos borrados con DEL
  • SINTAXIS: UNDELETE <fichero>
  • PRINICPALES MODIFICADORES: /LIST Presenta una lista de los archivos recuperables. /ALL Recupera todos los archivos.
  • COMANDO: FC
  • ACCIÓN: Compara que 2 ficheros sean iguales
  • SINTAXIS: FC fichero1 fichero2
  • COMANDO: EDIT
  • ACCIÓN: Editor de texto
  • SINTAXIS: EDIT <fichero>

  • COMANDO: FORMAT
  • ACCIÓN: Formatea unidades
  • SINTAXIS: FORMAT <Unidad:>
  • PRINICPALES MODIFICADORES:  /Q  Da un formato rápido. /S  Copia al disco los archivos de sistema.
  • COMANDO: SYS
  • ACCIÓN: Copia el sistema a otra unidad
  • SINTAXIS: SYS <Unidad:>
  • COMANDO: CHKDSK
  • ACCIÓN: Chequea el disco y nos muestra información sobre él.
  • SINTAXIS: CHKDSK [Unidad:][fichero]
  • COMANDO: DISKCOPY
  • ACCIÓN: Copia el contenido total de un disco, sirve para hacer copias de seguridad.
  • SINTAXIS: DISKCOPY <Unidad origen> <Unidad destino>
  • COMANDO: CLS
  • ACCIÓN: Limpia la pantalla
  • SINTAXIS: CLS
  • COMANDO: VER
  • ACCIÓN: Nos muestra la versión de MSDOS que utilizamos
  • SINTAXIS: VER
  • COMANDO:DATE
  • ACCIÓN: Muestra y cambia la fecha
  • SINTAXIS: DATE
  • COMANDO: TIME
  • ACCIÓN: Muestra y cambia la hora
  • SINTAXIS: TIME
  • COMANDO: FIND
  • ACCIÓN: Busca una cadena específica de texto
  • SINTAXIS: FIND [modificadores] “Cadena” [Unidad:\ruta\archivo]  (“Cadena”= Texto a buscar)
  • PRINICPALES MODIFICADORES:  /V Presenta todas las líneas que no contengan la cadena especificada. /I   Indica que no se haga distinción entre mayúsculas y minúsculas.
  • COMANDO: LABEL
  • ACCIÓN: Cambia la etiqueta del disco
  • SINTAXIS: LABEL
  • COMANDO: VOL
  • ACCIÓN: Muestra el número de serie del disco o unidad
  • SINTAXIS: VOL

  • COMANDO: ATTRIB
  • ACCIÓN: Asocia a los archivos distintos atributos
  • SINTAXIS: ATTRIB [Modificadores] <Fichero>

4. CONCLUSIÓN

La comunicación es de gran utilidad para los sistemas operativos porque permite que las tareas se realicen de una manera eficiente, comunicando un proceso con el otro aunque para los sistemas operativos muchas veces es muy dificultoso ya que estos no se cumplen debido a bloqueos y otros. Existen maneras de mejorar nuestro sistema operativos es mediante los comandos MS-DOS que permite editar archivos del sistema.


5.   BIBLIOGRAFÍA
 
Delgado, P.2012. MS-DOS. (En Línea). Consultado el 27 de Dic. 2015. Formato HTML. Disponible en: http://todobytes.es/2012/07/ms-dos-introduccion-i-breve-introduccion-caracteristicas-generales-y-gestion-de-memoria/
Tanenbaum, A. 2009. Sistemas Operativos Modernos. 3 ed. México. D. F. PEARSON EDUCACIÓN. p. 62-79

1 comentario: