Administración y Organización de Datos

October 24, 2017 | Author: Genaro Diaz Dominguez | Category: Computer File, Computer Data Storage, Computing, Technology, Computer Data
Share Embed Donate


Short Description

Descripción: Archivo...

Description

Unidad 1

Administración y Organización de Datos. M. I. Herschell Serna López

Genaro Díaz Domínguez (13E30363) INGENIERIA INFORMÁTICA – 4TO SEMESTRE

INTRODUCCIÓN Tener conocimiento de cómo en verdad se organiza nuestro ordenador, llega a resultar muy útil. En este trabajo se expondrán tanto la clasificación de los archivos que nuestro ordenador puede corresponder (tipo de archivos), al igual que los distintos mecanismos en las cuales podemos almacenar nuestra información, sea de manera física o lógica. Podemos tener conciencia de las utilidades que les podremos dar a nuestros distintos archivos encontrados almacenados en nuestros computadores. En cuanto a la diferencia entre los sistemas operativos, los archivos que en ellos podemos manipular, pueden ser distintos, es decir se pueden dar casos en los que el sistema operativo no pueda de algún modo visualizar tales archivos, pero para otros no se interpondrá ningún inconveniente.

TABLA DE CONTENIDO INTRODUCCIÓN................................................................................................ 1 TABLA DE CONTENIDO..................................................................................... 2 1 Introducción.................................................................................................. 3 1.1

Concepto de Archivo.........................................................................3

1.2

Tipos de Archivo.................................................................................. 4

DE ACUERDO A SUS ELEMENTOS SE ENCUENTRAN:............................4 DE ACUERDO A LOS DATOS QUE ALMACENAN SE ENCUENTRAN:.......4 DE ACUERDO AL MECANISMO QUE SE UTILIZA PARA ACCEDER A LOS ARCHIVOS SE ENCUENTRAN LOS SIGUIENTES:.....................................4 1.3

Organizaciones de Archivos..............................................................5

Organización lógica.................................................................................. 5 Organización física................................................................................... 9 1.4

Operaciones sobre Archivos............................................................14

FUENTES DE CONSULTA................................................................................ 16

1 Introducción. 1.1 Concepto de Archivo. Archivo o fichero informático es una entidad lógica compuesta por una secuencia finita de bytes, almacenada en un sistema de archivos ubicada en la memoria secundaria de un ordenador (disco duro, unidad extraíble, CD ROM, etc.) o Colección de información relacionada a la que se le asigna un nombre y se almacena en un disco. Los archivos son agrupados en directorios dentro del sistema de archivos y son identificados por un nombre de archivo y una extensión. El nombre forma la identificación única en relación a los otros archivos en el mismo directorio.

Los archivos y carpetas se organizan jerárquicamente.

Dependiendo de cada sistema de archivos, los ficheros pueden tener atributos particulares como, por ejemplo, fecha de creación, fecha de última modificación, solo lectura, ocultos, de sistema, dueño y permisos de acceso.

Un archivo o fichero informático es un conjunto de bits que son almacenados en un dispositivo. Un archivo es identificado por un nombre y la descripción de la carpeta o directorio que lo contiene. A los archivos informáticos se les llama así porque son los equivalentes digitales de los archivos escritos en libros, tarjetas, libretas, papel o microfichas del entorno de oficina tradicional. Los datos de un archivo informático normalmente consisten en paquetes más pequeños de datos (a menudo llamados registros o líneas) que son individualmente diferentes pero que comparten algún rasgo en común. Por ejemplo, un archivo de nóminas puede contener datos sobre todos los empleados de una empresa y los detalles de su nómina; cada registro del archivo de nóminas se refiere únicamente a un empleado, y todos los registros tienen la característica común de estar relacionados con las nóminas -esto es muy similar a colocar todos los datos sobre nóminas en un archivador concreto en una oficina que no tenga ninguna computadora. Un archivo de texto puede contener líneas de texto, correspondientes a líneas impresas en una hoja de papel. Los archivos de una computadora se pueden crear, mover, modificar, aumentar, reducir y borrar. En la mayoría de los casos, los programas de computadora que se ejecutan en la computadora se encargan de estas operaciones, pero el usuario de una computadora también puede manipular los archivos si es necesario. Por ejemplo, los archivos de Microsoft Office Word son normalmente creados y modificados por el programa Microsoft Word en respuesta a las órdenes del usuario, pero el usuario también puede mover,

renombrar o borrar estos archivos directamente usando un programa gestor de archivos como Windows Explorer (en computadoras con sistema operativo Windows).

1.2

Tipos de Archivo

Existen distintas clasificaciones de archivos, algunas de ellas son las siguientes:

DE ACUERDO A SUS ELEMENTOS SE ENCUENTRAN: Archivos de entrada: estos archivos están compuestos por una serie de datos almacenados en un dispositivo de entrada. Archivos de salida: estos archivos contienen aquella información que se la visualiza desde la computadora. Archivos de situación: estos archivos contienen información que es actualizada constantemente. Archivos constantes: estos archivos están conformados por registros cuyos campos son fijos o bien, de baja frecuencia de variación. Archivos históricos: está compuesto por datos que varían en el tiempo y con información de los archivos actualizados. Archivos de movimiento: esta clase de archivos se utilizan junto con los constantes y poseen en común algún campo. Archivos de maniobra: estos se crean en el momento en que se ejecuta algún programa y se borran una vez que finaliza la ejecución, son auxiliares.

DE ACUERDO A LOS DATOS QUE ALMACENAN SE ENCUENTRAN: ASCII: en este tipo de archivo los datos son almacenados a través de un simple texto. Esto permite intercambiar a los datos que contienen así como también para crear archivos que el propio usuario pueda modificar. Binario: esta clase de archivos, en cambio, almacena información en un lenguaje al que sólo la propia computadora comprende, por ejemplo colores, sonidos, imágenes u órdenes. Estos archivos son de menor peso que los anteriores.

DE ACUERDO AL MECANISMO QUE SE UTILIZA PARA ACCEDER A LOS ARCHIVOS SE ENCUENTRAN LOS SIGUIENTES: Archivos directos: en estos cada registro puede leerse y escribirse directamente. Esto se logra con la expresión de su dirección en el fichero. Archivos secuenciales: en estos archivos los registros se organizan de manera secuencial de manera tal que para leer uno, se deben haber leído los anteriores.

Archivos de índices: en estos archivos se puede acceder a los registros a partir de la contraseña que posean.

1.3

Organizaciones de Archivos

Se refiere a las diferentes maneras en las que puede ser organizada la información de los archivos, así como las diferentes maneras en que ésta puede ser accesada. Dado que hay 2 niveles de visión de los archivos (físico y lógico), se puede hablar también de 2 aspectos de organización de archivos: Organización de archivos lógicos y de archivos físicos.

Organización de un sistema de archivos utilizando directorios. El sistema de archivos está relacionado especialmente con la administración del espacio de almacenamiento secundario, fundamentalmente con el almacenamiento de disco. Una forma de organización de un sistema de archivos puede ser la siguiente: 

Se utiliza una “raíz” para indicar en qué parte del disco comienza el “directorio raíz”.



El “directorio raíz” apunta a los “directorios de usuarios”.



Un “directorio de usuario” contiene una entrada para cada uno de los archivos del usuario.



Cada entrada de archivo apunta al lugar del disco donde está almacenado el archivo referenciado.

Los nombres de archivos solo necesitan ser únicos dentro de un directorio de usuario dado. El nombre del sistema para un archivo dado debe ser único para el sistema de archivos.

En sistemas de archivo “jerárquicos” el nombre del sistema para un archivo suele estar formado como el “nombre de la trayectoria” del directorio raíz al archivo.

Organización lógica. La mayoría de las computadoras organizan los archivos en jerarquías llamadas carpetas, directorios o catálogos. (El concepto es el mismo independientemente de la terminología usada.) Cada carpeta puede contener un número arbitrario de archivos, y también puede contener otras carpetas. Las otras carpetas pueden contener todavía más archivos y carpetas, y así sucesivamente, construyéndose un estructura en árbol en la que una «carpeta raíz» (el nombre varía de una computadora a otra) puede contener cualquier número de niveles de otras carpetas y archivos. A las carpetas se les puede dar nombre exactamente igual que a los archivos (excepto para la carpeta raíz, que a menudo no tiene nombre). El uso de carpetas hace más fácil organizar los archivos de una manera lógica. La mayor parte de las estructuras de organizaciones alternativas de archivos se encuentran dentro de estas cinco categorías: Pilas

Archivo de pilas: Registro de longitud variable. Conjunto variable de campos. Orden cronológico. Es la forma más fácil de organizar un archivo. Los datos se recogen en el orden en que llegan. Su objetivo es simplemente acumular una masa de datos y guardarla. Los registros pueden tener campos diferentes o similares en un orden distinto. Cada campo debe ser auto descriptivo, incluyendo tanto un campo de nombre como el valor. La longitud de cada campo debe indicarse implícitamente con delimitadores, explícitamente incluidos como un subcampo más. El acceso a los registros se hace por búsquedas exhaustiva y son fáciles de actualizar. Si se quiere encontrar un registro que contiene un campo particular y un valor determinado, es necesario examinar cada registro de la pila hasta encontrar el registro deseado. Si se quieren encontrar todos los registros que contienen un campo particular o que tienen un valor determinado para ese campo, debe buscarse el archivo entero. Se aplica cuando los datos se recogen o almacenan antes de procesarlos o cuando no son fáciles de organizar. Esta clase de archivo aprovecha bien el

espacio cuando los datos almacenados varían en tamaño y estructura. Fuera de estos usos limitados, este tipo de archivos no se adapta a la mayoría de las aplicaciones.

Archivos secuenciales

Archivo secuencial: Registro de longitud fija. Conjunto fijo de campos en orden constante. Orden secuencial por el campo clave. Es la forma más común de estructura de archivos. Se emplea un formato fijo para los registros, son de la misma longitud y constan del mismo número de campos de tamaño fijo con un orden determinado. Se necesita almacenar los valores de cada campo; el nombre del campo y la longitud de cada uno son atributos de la estructura del archivo. Cada registro tiene un campo clave que lo identifica (generalmente es el primero de cada registro). Los registros se almacenan en secuencia por la clave. Se utilizan normalmente en aplicaciones de procesos por lotes, ya que es la única organización de archivos que se puede guardar tanto en cintas como en discos. Para las aplicaciones interactivas que incluyen peticiones o actualizaciones de registros individuales, los archivos secuenciales no son óptimos. El acceso requiere una búsqueda secuencial de correspondencias con la clave. Si el archivo entero o gran parte de él pueden traerse a la memoria principal de una sola vez, se podrán aplicar técnicas de búsquedas más eficientes. Al acceder un registro de un archivo secuencial grande, se produce un procesamiento extra y un retardo considerable.

La organización física del archivo en una cinta o disco se corresponde exactamente con la organización lógica del archivo, por lo tanto el procedimiento habitual es ubicar los nuevos registros en un archivo de pila separado, es llamado archivo de registro o archivo de transacciones. Una alternativa es organizar físicamente el archivo secuencial como una lista enlazada, en cada bloque físico se almacena uno o más registros y cada bloque del disco contienen un puntero al bloque siguiente. La inserción de un nuevo registro implica la manipulación de puntero, pero no requiere que el nuevo registro ocupe una posición particular del bloque físico.

Archivos secuenciales indexados

Archivo secuencial indexado. Los registros se organizan en una secuencia basada en un campo clave presentando dos características, un índice del archivo para soportar los accesos aleatorios y un archivo de desbordamiento. El índice proporciona una capacidad de búsqueda para llagar rápidamente al registro deseado y el archivo de desbordamiento es similar al archivo de registros usado en un archivo secuencial, pero está integrado de forma que los archivos de desbordamiento se ubiquen siguiendo un puntero desde su registro predecesor. La estructura más simple tiene como índice un archivo secuencial simple, cada registro del archivo índice tiene dos campos, un campo clave igual al del archivo principal y un puntero al archivo principal. Para encontrar un campo especifico se busca en el índice hasta encontrar el valor mayor de la clave que es iguale o precede al valor deseado de la clave, la búsqueda continua en el archivo principal a partir de la posición que indique el puntero. Cada registro del archivo principal tiene un campo adicional que es un puntero al archivo de desbordamiento. Cuando se inserta un nuevo registro al archivo,

también se añade al archivo de desbordamiento. El registro del archivo principal que precede inmediatamente al nuevo registro según la secuencia lógica se actualiza con un puntero del registro nuevo en el archivo de desbordamiento, si el registro inmediatamente anterior está también en el archivo de desbordamiento se actualizará el puntero en el registro. Para procesar secuencialmente un archivo completo los registros del archivo principal se procesarán en secuencia hasta encontrar un puntero al archivo de desbordamiento, el acceso continúa en el archivo de desbordamiento hasta que encuentra un puntero nulo, entonces renueva el acceso donde se abandonó en el archivo principal.

Archivos indexados

Archivo indexado. A los registros se accede solo a través de sus índices. No hay restricción en la ubicación de los registros, al menos un índice contiene un puntero a cada registro y pueden emplearse registros de longitud variable. Se suelen utilizar dos tipos de índices, uno exhaustivo que contiene una entrada para cada registro del archivo principal y se organiza como un archivo secuencial para facilitar la búsqueda, el otro índice es parcial que contiene entrada a los registros donde esté el campo de interés. Con registro de longitud variable, algunos registros no contendrán todos los campos y cuando se añade un registro al archivo principal, todos los archivos de índices deben actualizarse. Archivos directos o de dispersión Explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida. Se requiere un campo clave en cada registro. Los archivos directos son muy usados donde se necesita un acceso muy rápido, donde se usan registros de longitud fija y donde siempre se accede a los registros de una vez.

Organización física. Los datos son arreglados por su adyacencia física, es decir, de acuerdo con el dispositivo de almacenamiento secundario. Los registros son de tamaño fijo o de tamaño variable y pueden organizarse de varias formas para constituir archivos físicos.

Cinta magnética.

Cintas magnéticas En este dispositivo el archivo físico esta formado por un conjunto de registros físicos, y los bloques están organizados en forma consecutiva, ya que se asigna en igual forma. Además tales registros puede contener etiquetas que permitan un mayor control sobre los datos almacenados, y son las siguientes: - Etiqueta de volumen.- Contiene información que permite identificar la cinta, el nombre del propietario y cualquier información general requerida. - Etiqueta de archivo.- Se utilizan por pares para indicar el inicio y fin del archivo, contiene información acerca del nombre del archivo, fecha de creación. - Etiqueta de usuario.- Sirven para guardar información adicional importancia para el usuario; no son procesados por el sistema operativo.

de

Discos Magnéticos.

Discos magnéticos El archivo físico en un disco es una colección de registros físicos de igual tamaño, los cuales pueden estar organizados en forma consecutiva, ligada o con una tabla de mapeo. En la organización contigua, el archivo utiliza registros físicos contiguos, siguiendo la secuencia normal de direcciones.

La organización encadenada consiste un conjunto de bloques, cada uno de los cuales tiene un campo destinado para indicar la dirección del siguiente registro, o sea, para lo que se ha llamado enlace o liga. Otra forma de organización es la tabla de mapeo que consiste en una tabla de apuntadores a los registros físicos que forman el archivo. La organización física de un archivo en el almacenamiento secundario depende de la estrategia de agrupación y de la estrategia de asignación de archivos. Para elegir una organización de archivos se deben tener en cuenta ciertos criterios: Si un archivo va a procesar solamente por lotes, accediendo cada vez a todos los registros, entonces el acceso rápido para la recuperación de un único registro es una preocupación mínima. Un archivo almacenado en CD-ROM nunca será actualizado, por lo que la facilidad de actualización no se considera. Para la economía de almacenamiento, debería existir una mínima redundancia de los datos, ésta redundancia es el medio fundamental para incrementar la velocidad de acceso a los datos. Este tipo de organización muestra a su vez, 2 aspectos importantes: Métodos De Asignación De Espacio Libre y Asignación De Espacio De Almacenamiento Del Archivo. METODOS DE ASIGNACION DE ESPACIO LIBRE Un método de asignación de espacio libre determina la manera en que un Sistema Operativo controla los lugares del disco que no están siendo ocupados. Para el control del espacio libre se puede utilizar como base alguno de los métodos teóricos: Vector de Bits, Lista Ligada, Por Agrupación y por Contador. VECTOR DE BITS Se tiene un arreglo de bits, el número de bits que tiene, representa cada sector del disco, o sea que si los sectores 10 y 11 están ocupados su representación será: Ejemplo de un vector de bits. LISTA LIGADA Existe una cabecera en la que se tiene la dirección del primer sector vacío, ese sector a su vez, tiene un apuntador al siguiente bloque, y así sucesivamente hasta que se

encuentre una marca indicando que ya no hay espacio libre, tal y como se muestra en la siguiente figura.

Ejemplo de una lista ligada

POR AGRUPACION Es similar a la lista ligada, solo que en este se tiene por cada sector, un grupo de apuntadores a varios espacios vacíos, al final de cada bloque se tiene un apuntador a otro grupo de apuntadores, observe la figura.

Ejemplo asignación agrupación.

de por

POR CONTADOR Aquí, por cada conjunto de bloques contiguos que estén vacíos, se tiene por cada apuntador, un número de inicio y el tamaño del grupo de sectores vacíos.

Ejemplo de asignación por contador.

MÉTODOS DE ASIGNACIÓN DE ESPACIO EN DISCO. Un método de asignación de espacio en disco determina la manera en que un Sistema Operativo controla los lugares del disco ocupados por cada archivo de datos. Se debe controlar básicamente la identificación del archivo, sector de inicio y sector final. Para el control del espacio ocupado en disco se puede utilizar como base alguno de los métodos teóricos: Asignación Contigua, Asignación Ligada, Asignación Indexada.

ASIGNACIÓN CONTIGUA. Este método consiste en asignar el espacio en disco de tal manera que las direcciones de todos los bloques correspondientes a un archivo definen un orden lineal. Por ejemplo:

Ejemplo de asignación contigua. VENTAJAS

DESVENTAJAS

- La cabeza de lectura no se mueve- Produce fragmentación externa. demasiado en la lectura de un archivo. ASIGNACIÓN LIGADA En este método, cada archivo es una lista ligada de bloques de disco. En el directorio hay un apuntador al bloque de inicio y un apuntador al bloque final para cada archivo. En cada uno de los

Ejemplo de asignación ligada 

bloques donde se encuentra un archivo hay un apuntador al siguiente bloque de la lista. Por ejemplo:

VENTAJAS

DESVENTAJAS

No produce fragmentación externa.



La cabeza de lectura se puede demasiado en la lectura de un archivo.



- Si una liga se pierde, se perderá el archivo completo.



Es ineficiente para archivos directos.



Se necesita un campo extra para el apuntador.

la

mover

implementación

de

ASIGNACIÓN INDEXADA Como ya se vio, la asignación ligada resuelve problemas de fragmentación externa, sin embargo, la asignación ligada no soporta eficientemente el acceso directo a los archivos. La asignación indexada resuelve este problema poniendo todos los apuntadores en una sola localidad: El bloque índice. Cada archivo tiene su bloque índice, El cual es un arreglo de direcciones de bloques de disco. La i-ésima entrada en el bloque índice apunta al iésimo bloque que conforma el

archivo. En el directorio se controla la dirección del bloque índice de cada archivo, por ejemplo: Ejemplo de asignación indexada. VENTAJAS

DESVENTAJAS



No produce fragmentación externa.



Existe desperdicio cuando hay archivos muy chicos.



Eficiente para implementación archivos directos.



Desbordamiento de bloque índice. (Solución: creación de un esquema ligado; el último bloque índice apunta a otro índice).

1.4

la de

Operaciones sobre Archivos

Las operaciones sobre ficheros completos con el fichero como unidad, sin tener en cuenta sus registros. Sin embargo, la organización del fichero y la estructura lógica de sus registros sí debe ser tenida en cuenta al operar con él. Creación de un fichero El objetivo de esta operación es permitir a los usuarios la creación de nuevos ficheros. Mediante esta operación se indican las propiedades y las características del fichero para que el sistema de ficheros pueda reconocerlo y procesarlo. En el proceso de creación del fichero debe registrarse la información necesaria para que el sistema pueda localizar el fichero y manipular sus registros lógicos. Para ello, el método de acceso debe obtener información sobre el formato y el tamaño de los registros lógicos y físicos, la identificación del fichero, la fecha de creación, su posible tamaño, su organización, aspectos de seguridad, etc. Copiar archivos Para copiar archivos, basta con seleccionarlos y tocar con el botón derecho sobre alguno de estos archivos y después escoger la opción copiar del menú contextual. Una vez hechos estos pasos, toque la unidad o la carpeta donde desea copiar dichos archivos, toque con el botón derecho sobre este y seleccione la opción Pegar para iniciar el proceso de copia. Si desea anular el proceso de copia, toque el botón Cancelar. Para copiar también puede arrastrar los archivos seleccionados a la unidad o carpeta donde desea copiarlos. Apertura de un fichero En esta operación el método de acceso localiza e identifica un fichero existente para que los usuarios o el propio sistema operativo puedan operar con él. En algunos sistemas la operación de creación no existe como tal, y es la operación de apertura de un fichero no existente, la que implícitamente, crea un nuevo

fichero. Los errores que pueden producirse en la apertura de un fichero son los siguientes: El fichero no se encuentra en el lugar indicado (dispositivo, directorio, nombre). El fichero se ha localizado pero el usuario no tiene permiso para acceder al mismo. El fichero no se puede leer por errores en el hardware del dispositivo de almacenamiento. Cierre de un fichero Esta operación se utiliza para indicar que se va a dejar de utilizar un fichero determinado. Mediante esta operación el método de acceso se encarga de "romper" la conexión entre el programa de usuario y el fichero, garantizando la integridad de los registros. Al ejecutar esta operación, el sistema se encarga de escribir en el dispositivo de almacenamiento aquella información que contienen los búfer asociados al fichero y se llevan a cabo las operaciones de limpieza necesarias. Tras cerrar el fichero, sus atributos dejan de ser accesibles para el método de acceso. El único parámetro necesario para realizar esta operación es el identificador del fichero devuelto por el método de acceso al crear o abrir el fichero. Los errores que se pueden producir al cerrar un fichero son los siguientes: El fichero no está abierto. No se ha podido escribir en el dispositivo toda la información del fichero, debido a fallos en el hardware. No se ha podido escribir en el dispositivo toda la información del fichero por falta de espacio en el dispositivo de almacenamiento. Cambiar nombre Para cambiar el nombre el a los archivos o carpetas o cualquier otro elemento, selecciónelo primero, toque sobre él con el botón derecho y escoja la opción Cambiar nombre, seguidamente, digite el nuevo nombre. Para cambiar el nombre también puede hacerlo de esta otra manera: toque le archivo una vez, vuelva a tocarlo de nuevo, notará que el cursor parpadea al final de lo marcado, escriba su nuevo nombre. Borrado de un fichero o archivos Para borrar archivos, abra la unidad o carpeta donde se encuentran los archivos que desea borrar, selecciónelos primero y toque sobre alguno con el botón derecho. Del menú contextual seleccione la opción Eliminar. Sirve para confirmar si realmente desea borrar. Si está seguro toque el botón Si, de lo contrario toque el botón No. Los archivos no son eliminados completamente, son enviados a un elemento nuevo del Windows llamado la Papelera de reciclaje, la función de esta es mantener una lista de los archivos borrados, ofreciendo la posibilidad de recuperarlos en caso de que fueron borrados accidentalmente. Se analizará en un apartado más adelante. Extensión del fichero

Esta operación permite a los programas de usuario aumentar el tamaño de un fichero asignándole más espacio en el dispositivo de almacenamiento. Para realizar esta operación el método de acceso necesita conocer el identificador del fichero y el tamaño del espacio adicional que se debe asignar al fichero. En función de la organización del fichero, el método de acceso determinará si el espacio adicional que debe asignar debe ser contiguo al fichero o no. Mediante esta operación el atributo que indica el tamaño del fichero será modificado y se devolverá al programa de usuario con un código de estado. El único motivo para que esta operación no se lleve a cabo con éxito es que no haya suficiente espacio disponible en el lugar adecuado (no contiguo). Cambiar propiedades Si desea cambiar las propiedades con solo lectura, oculto, de sistema o modificado, toque el archivo, seguidamente, sobre él presione con el botón derecho, seleccione la opción Propiedades. Seleccione las opciones deseadas y presione Aceptar.

FUENTES DE CONSULTA http://www.tiposde.org/informatica/105-tipos-de-archivos/#ixzz3SdXL8iwg http://www.ecured.cu/index.php/Archivo_(Inform%C3%A1tica) http://es.wikipedia.org/wiki/Archivo_(inform%C3%A1tica) http://sistemasoperativos.angelfire.com/html/5.4.html

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF