martes, 2 de febrero de 2016

Paginación y Segmentación de Sistemas Operativos


1. Objetivo
Investigar sobre la paginación y segmentación en los sistemas operativos.

2. Introducción
La memoria es uno de los recursos más valiosos que gestiona el sistema operativo. Uno  de los elementos principales que caracterizan un proceso es la memoria que utiliza. Ésta está lógicamente separada de la de cualquier otro proceso del sistema. Un proceso no puede acceder, al espacio de memoria asignado a otro proceso, lo cual es imprescindible para la seguridad y estabilidad del sistema. El direccionamiento es una parte importante de la gestión de memoria, puesto que influye mucho en la visión del mismo por parte de un proceso, como en el aprovechamiento del hardware y el rendimiento del sistema.  

3. Marco Teórico
3.1 Paginación
Es una técnica de manejo de memoria, en la cual el espacio de memoria se divide en secciones físicas de igual tamaño, denominadas marcos de páginas. Los programas se dividen en unidades lógicas.
Las páginas de un programa necesitan estar continuamente en:
Memoria, los mecanismos de paginación permiten la correspondencia correcta entre las direcciones virtuales y las direcciones reales de la memoria que se reverencien.

Figura 1: Paginación

3.1.1 Tablas de páginas
Cada página tiene un número que se utiliza como índice en la tabla de páginas, lo que da por resultado el número del marco correspondiente a esa página virtual. Si el BIT presente/ausente es 0, se provoca un señalamiento (TRAP) hacia el sistema operativo. Si el BITes 1, el número de marco que aparece en la tabla de páginas se copia en los BITS de mayor orden del registro de salida.
Figura 2: Tabla de Páginas

3.1.2 Características de la paginación

·         El espacio de direcciones lógico de un proceso puede ser no contiguo.
·         Se divide la memoria física en bloques de tamaño fijo llamados marcos (frames).
·         Se divide la memoria en bloques de tamaño llamados páginas.
·         Se mantiene información en los marcos libres.
·         Para correr un programa de en páginas de tamaño, se necesitan encontrar n marcos y cargar el programa.
·         Se establece una tabla de páginas para trasladar las direcciones lógicas a físicas.
·         Se produce fragmentación interna.

3.1.3 Ventajas de la paginación
  • Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el resto se cargara bajo la solicitud.
  • No es necesario que las paginas estén contiguas en memoria, por lo que no se necesitan procesos de compactación cuando existen marcos de páginas libres dispersos en la memoria.
  • Es fácil controlar todas las páginas, ya que tienen el mismo tamaño. 

·   
3.1.4 Desventajas de la paginación

  • El costo de hardware y software se incrementa, por la nueva información que debe manejarse y el mecanismo de traducción de direcciones necesario. Se consumen muchos más recursos de memoria, tiempo en el CPU para su implantación.
  • Se deben reservar áreas de memoria para las PMT de los procesos. Al no ser fijo el tamaño de estas, se crea un problema semejante al de los programas (cómo asignar un tamaño óptimo sin desperdicio de memoria, u ovearhead del procesador).

 3.2 SEGMENTACIÓN
Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su división lógica, llevándose a cabo una agrupación lógica de la información en bloques de tamaño variable denominados segmentos. Cada uno de ellos tienen información lógica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una colección de segmentos, que generalmente reflejan la división lógica del programa. 

Figura 3: Segmentación


3.2.1 OBJETIVOS: 
  • Modularidad de programas: Cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa. 
  • Estructuras de datos de largo variable: Ejm. Stack, donde cada estructura tiene su propio tamaño y este puede variar. 
  • Protección: Se pueden proteger los módulos del segmento contra accesos no autorizados. 
  • Compartición: Dos o más procesos pueden ser un mismo segmento, bajo reglas de protección; aunque no sean propietarios de los mismos. 
  • Enlace dinámico entre segmentos: Puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa. Los enlaces se establecerán sólo cuando sea necesario.

3.2.2 Ventajas de la Segmentación
·         Atenúa el problema de la fragmentación
·         Permite definir protecciones selectivamente  
·         Permite compartición de zonas de memoria de forma eficaz  
·         Todo ello sin añadir complejidad a los algoritmos de gestión de espacio

3.2.3 Desventajas de la Segmentación
·         El compilador/enlazador debe reconocer un espacio segmentado (desventaja leve)
·         Necesita soporte del hardware
·         Incurre en un acceso adicional a memoria (para la tabla de segmentos)
·         No soluciona del todo los problemas de las técnicas de ubicación contigua (fragmentación).

4. Conclusión
Estas formar de segmentar la memoria ayuda al sistema operativo a no sufrir posibles bloqueos por una saturación de la memoria, ya que estos segmentos le dan a cada proceso un espacio lógico en el que puede trabajar de manera eficaz.
  
5. Bibliografía
Tanenbaum, A. 2009. Sistemas Operativos Modernos. 3 ed. México.
Ann Mclver Mchoes. 2011. Sistemas Operativos. 6 ed.
http://www.ual.es/~acorral/DSO/Tema_3.pdf


lunes, 1 de febrero de 2016

Comunicación entre procesos y MS-DOS


1. Introducción
La comunicación entre procesos es una función básica de los sistemas operativos que provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre sí, la comunicación entre procesos puede estar motivada por la competencia o el uso de recursos compartidos o porque varios procesos deban ejecutarse sincronizada mente para completar una tarea.
DOS, como cualquier sistema operativo, controla las actividades del ordenador. Administra operaciones como el flujo de datos, la visualización, la introducción de datos, entre otros elementos que forman un sistema.

2. Objetivo
Investigar de qué se trata la comunicación entre procesos, MS-DOS.

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í.
También es importante mencionar que dos de estas cuestiones se aplican de igual forma a los hilos. La primera (el paso de información) es fácil para los hilos, ya que comparten un espacio de direcciones común (los hilos en distintos espacios de direcciones que necesitan comunicarse entran en la categoría de los procesos en comunicación).


Figura 1: Comunicación entre procesos


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.


Figura 2: Condiciones de carrera


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.
Aunque este requerimiento evita las condiciones de carrera, no es suficiente para que los procesos en paralelo cooperen de la manera correcta y eficiente al utilizar datos compartidos. Necesitamos cumplir con cuatro condiciones para tener una buena solución:
•No puede haber dos procesos de manera simultánea dentro de sus regiones críticas.
•No pueden hacerse suposiciones acerca de las velocidades o el número de CPU
•Ningún proceso que se ejecute fuera de su región crítica puede bloquear otros procesos.
•Ningún proceso tiene que esperar para siempre para entrar a su región crítica.

Figura 3: Regiones críticas



3.4 MS-DOS
DOS es un acronimo de Disk Operating System, sistema operativo por Microsoft,y que que tiene instalado la mayoría de las computadoras.
DOS es a parte de un sistema operativo, un conjunto de programas que nos permiten manipular informacion contenida en discos, de esta fora podemos trabajar con facilidad, comodidad y rapidez con estos; a demás, el DOS coordina el funionamiento del microprocesador para que todo funciones bien en el interioro de nuestra computadora.
A lo largo del tiempo Microsoft ha ido mejorando el DOS , desde su primera versión el 1.981. Las versiones que puedan existir, sirven para corregir errores detectados en la versión anterior o para mejorar ciertas partes del programa; si la variación está en la primera cifra, significa que se han introducido cambios importantes, por ejemplo, etc, de las prestaciones de los nuevos microprocesadores, en gran parte para poder aprovechar sus ventajas

Comandos de gestión de directorios:
Comando: DIR
Función: Lista todos los ficheros y directorios de la ruta en la que nos encontramos. Mediante parámetros podemos modificar ese listado.

Sintaxis: DIR [unidad\directorio\fichero]
Parámetros: Algunos de los parámetros que se pueden utilizar para modificar el listado de archivos y directorios son los siguientes:
•/P Muestra pantalla por pantalla el listado, para visualizar la pantalla siguiente basta con pulsar una tecla. Al pulsar una tecla se procesara el siguiente bloque de listado y así sucesivamente.
•/O Ordena por el orden especificado:
•/ON Ordena por nombre en formato de lista detallada /OE Ordena por extensión
•/OS Ordena por tamaño
•/OD Ordena por fecha
•/OG Ordena poniendo agrupados todos los directorios después de los ficheros.
•/O-X Ordena inversamente por el orden especificado por X
•/S Muestra los archivos del directorio especificado y todos sus subdirectorios

Comando: CD
Función: Permite cambiar de un directorio activo a otro.
Sintaxis: CD [unidad:]\[ruta]\[directorio]
Observación: Si deseamos bajar un nivel en el árbol de directorios, sólo es necesario escribir cd..

Comando: MD ó MKDIR
Función: Crear directorios
Sintaxis: MD [unidad\ruta\]
Observación: Si intentamos crear un directorio que ya estuviera creado nos da error. En algunos casos se puede hacer mkdir dir1\dir2 y sería equivalente a la siguientes acciones: mkdir dir1; cd dir1; mkdir dir2; cd dir2; cd ..; cd..

Comando: RD
Función: Borra un directorio (sólo si se encuentra vacío).
Sintaxis: RD [unidad\ruta\]
Parámetros: Los parámetros que se pueden utilizar con este comando son:
•/S Elimina todo el directorio a borrar aunque no esté vacío, pero pide confirmación.
•/Q No pide confirmación para eliminar un árbol de directorios cuando se utiliza junto con la opción /S.

Gestión de archivos:
Comando: TYPE
Función: Ver el contenido de archivos de texto, haciendo un listado (no permite el uso de comodines).
Sintaxis: TYPE [unidad:]\[ruta]\[directorio]\

Comando: PRINT
Función: Imprime archivo de texto.
Sintaxis: PRINT [unidad:]\[ruta]\[directorio]\

Comando: COPY
Función: Copia el fichero origen al fichero destino.
Sintaxis: copy
Observación: Para juntar varios archivos, hay que especificar un único archivo destino y los archivos origen ponerlos en el formato: archivo1+archivo2+archivo3. Si el archivo destino existe, pide confirmación de sobre escritura de dicho archivo. Si queremos que no nos pida confirmación, deberemos usar el parámetro /Y para omitir dicha confirmación.

Comando: REN o RENAME
Función: Renombra un fichero. Dará error si existe un fichero que tenga el mismo nombre dentro del mismo directorio. Con este comando se pueden utilizar los comodines del dir.
Sintaxis: rename

Comando: MOVE
Función: Este comando mueve ficheros de un directorio a otro.
Sintaxis: move [/Y] donde /Y es un parámetro que poniéndolo, el move moverá ficheros sin preguntar la confirmación de reemplazo a otros archivos que se puedan llamar de la misma forma al directorio de destino. En caso de no especificarse, MSDOS pedirá una confirmación de reemplazo de ficheros.

Comando: DEL ó ERASE
Función: Se encarga de borrar uno o varios archivos. Se pueden utilizar comodines.
Sintaxis: del [unidad:]\[ruta]\[directorio]\
Parámetros: Algunos de los parámetros que se pueden utilizar con este comando son:
•/P Pide confirmación antes de eliminar cada archivo.
•/F Fuerza la eliminación de los archivos de sólo lectura.

Comando: FC
Función: Compara dos ficheros y verifica si las copias son exactas.
Sintaxis: FC fichero1 fichero2

Comando: XCOPY
Función: Copia un directorio entero con subdirectorios y ficheros incluidos. Recibe el nombre del directorio a copiar y opcionalmente el directorio destino. Admite también una serie de parámetros.
Sintaxis: xcopy origen [destino]
Parámetros: Los parámetros que admite son:
•/P: Pide confirmación de SI o NO antes de copiar cada archivo.
•/S: Indica que la copia debe hacerse extensiva a todos los subdirectorios, exceptuando los vacíos.
•/E: Igual que con el /S, sólo que copia también los directorios vacíos.
•/W: Espera la confirmación antes de copiar los archivos.
•/V: Verifica si el archivo se ha copiado correctamente.
•/C: Continúa copiando aunque ocurran errores.
•/Q: No muestra los nombres de los archivos mientras está copiando.

Comando: DOSKEY
Función: Comando residente en memoria y una vez activado, permite visualizar los comandos de MSDOS introducidos con anterioridad a través de la línea de comandos. Las flechas de arriba y abajo recuperan los comandos, la tecla de escape limpia lo que hubiese escrito en la línea de comandos, F7 muestra los comandos usados, pulsando las teclas Alt + F7 se borran los comandos utilizados como si acabásemos de abrir el terminal DOS. Manejo de Herramientas Informáticas

Comando: EDIT
Función: Editor de texto de MSDOS con una interfaz gráfica. Permite visualizar cualquier archivo que contenga texto.
Sintaxis: edit [unidad:]\[ruta]\[directorio]\
Ejemplo: c:\>edit fichero.txt Con esto se nos abriría el editor de texto del MSDOS con el archivo fichero.txt. En caso de que el nombre de archivo pasado como parámetro al edit no exista, el edit abrirá un archivo nuevo en blanco almacenado con ese nombre pero de forma temporal, con lo cual luego hay que guardarlo a través del menú que ofrece el edit.

Atributos de los ficheros
Los atributos permiten asociar a los ficheros características especiales. Estas características de los ficheros son que sean ficheros:
•De sólo lectura (R): Protege la escritura y el borrado de un fichero. El fichero sólo puede ser leído.
•De archivo (A): Sirve para saber si un determinado fichero ha sido o no modificado.
•Oculto (H): Sirve para ocultar un fichero. Por ejemplo algunos archivos del sistema son ocultos.
•De sistema (S): Sirve para identificar los archivos propios del sistema, los cuales sirven para cargar el SO. Para visualizar o modificar los atributos de un fichero se utiliza el comando attrib.



Comando: ATTRIB Función: Visualiza o modifica los atributos de un fichero.
Sintaxis: attrib /s
Sintaxis: attrib (modificará los atributos de un fichero determinado)
Obs: Con + establecemos un atributo a un fichero y con – lo borramos. Si no damos ningún parámetro lo que hacemos es visualizar los atributos.

4. Conclusión
La comunicación entre procesos permite que el computador realice ejecuciones de manera eficaz evadiendo ocasiones de posibles bloqueos en el sistema, El MS-DOS permite la comunicación del usuario con el computador mediante comandos, permitiendo esta manipular de manera más rápida y eficaz los datos guardados en discos

5. Bibliografía
http://www.escet.urjc.es/~emartin/curso0/2-ComandosDOS.pdf
Tanenbaum, A. 2009. Sistemas Operativos Modernos. 3 ed. México. D. F. PEARSON EDUCACIÓN. p. 62-79