miércoles, 31 de enero de 2018

REGISTROS
Registros De Propósito General 


  • AX (Acumulador): a menudo conserva el resultado temporal después de una operación aritmética o lógica.
  • BX (Base): Se utiliza para guardar la dirección base de listas de datos en la memoria.
  • CX (Contador): Contiene el conteo para ciertas instrucciones de corrimientos y rotaciones, de iteraciones en el ciclo loop y operaciones repetidas de cadenas.
  • DX (Datos): Contiene la parte más significativa de un producto después de una multiplicación; la parte más significativa del dividendo antes de la división.


Registros Apuntadores y de Índices 


  • SP (Apuntador de pila): Contiene el desplazamiento con respecto al segmento de pila del tope de la pila del programa. El registro SP se emplea para direccionar datos en la pila cuando se ejecutan las instrucciones push y pop y cuando se llama o se regresa de un procedimiento mediante las instrucciones: call y ret.
  • BP (Apuntador de base): Contiene el desplazamiento con respecto al segmento de pila de datos almacenados en la pila de un programa.
  •  DI (Índice destino): Contiene el desplazamiento con respecto al segmento extra de un elemento de una cadena o arreglo.
  • SI (Índice fuente): Contiene el desplazamiento con respecto al segmento de datos de un elemento de un arreglo o cadena.
  • IP (Apuntador de instrucciones): Contiene siempre el desplazamiento con respecto al segmento de código de la localidad de memoria que contiene la siguiente instrucción que va a ejecutar el microprocesador


Registros De Segmentos 


  • CS (Código): Tiene la dirección lógica del segmento en que se encuentra el código de un programa. Si el código ocupa más de un segmento, contiene la dirección lógica de uno de los segmentos.
  • DS (Datos): Tiene la dirección lógica del segmento en que se encuentran los datos estáticos de un programa. Si los datos ocupan más de un segmento, contiene la dirección lógica de uno de los segmentos.
  • ES (Extra): Este registro también tiene la dirección lógica de uno de los segmentos en que se encuentran los datos estáticos de un programa. Este registro se utiliza en ciertas operaciones del microprocesador para el manejo de cadenas.
  • SS (Pila): Tiene la dirección lógica del segmento en que se encuentran la pila del sistema. La pila no puede ser mayor a un segmento.




Programas de EMU8086

4 Practicas de martes 30 de enero






sábado, 27 de enero de 2018

1.2 Análisis de los manejadores de bases de datos

1.2 Análisis de los manejadores de bases de datos


El sistema manejador de bases de datos es la porción más importante del software de un sistema de base de datos. Un DBMS es una colección de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de alguna tarea específica.


MySQL

Es un sistema de gestión de bases de datos relacional, fue creada por la empresa sueca MySQL AB, la cual tiene el copyright del código fuente del servidor SQL, así como también de la marca. 
MySQL es un software de código abierto, licenciado bajo la GPL de la GNU, aunque MySQL AB distribuye una versión comercial, en lo único que se diferencia de la versión libre, es en el soporte técnico que se ofrece, y la posibilidad de integrar este gestor en un software propietario, ya que de otra manera, se vulneraría la licencia GPL.


PosgreSQL
Soporta distintos tipos de datos: además del soporte para los tipos base, también soporta datos de tipo fecha, monetarios, elementos gráficos, datos sobre redes (MAC, IP ...), cadenas de bits, etc. También permite la creación de tipos propios.
Incluye herencia entre tablas, por lo que a este gestor de bases de datos se le incluye entre los gestores objeto-relacionales.

Microsoft SQL Server
Es un sistema gestor de base de datos relacionales de Microsoft Corporation orientado a
sistemas medianos y grandes aunque también puede rodar en ordenadores personales. SQL Server Management Studio es la herramienta de SQL Server que permite definir y gestionar todas las bases de datos almacenadas en el servidor SQL Server 2005. 

Oracle
Es un sistema de gestión de base de datos relacional fabricado por Oracle Corporation. Oracle es básicamente un herramienta cliente/servidor para la gestión de base de datos la gran potencia que tiene y su elevado precio hace que solo se vea en empresas muy grandes y multinacionales, por norma general. Oracle Corporation : es una de las mayores compañías de software del mundo. Sus productos van desde bases de datos (Oracle) hasta sistemas de gestión. Cuenta además, con herramientas propias de desarrollo para realizar potentes aplicaciones, como Oracle Designer

Microsoft Visual Foxpro
Microsoft Visual FoxPro le ofrece más de lo que puede esperar de un sistema de 
administración de bases de datos (DBMS): velocidad, eficacia y flexibilidad. Además, Visual FoxPro le lleva hacia la próxima generación y le proporciona modelos de objetos y eventos que ayudan a crear y modificar aplicaciones con mayor rapidez que nunca. 
Puede programar aplicaciones rápidamente con ayuda de los asistentes, los generadores, las barras de herramientas y los diseñadores de Visual FoxPro. Con el modelo de objetos y eventos de Visual FoxPro, puede crear prototipos e implementar rápidamente las aplicaciones.

Firebird 

FireBird es un sistema de administración de bases de                                                              datos de código abierto, que tiene su
origen en la versión 6 de Interbase, cuyo código fue liberado por Borland en 2000. Este sistema de bases de datos relacional proporciona muchas de las características implementadas en el estándar ANSI SQL.

El programa es multiplataforma y puede trabajar sistemas operativos tan dispares como Windows, Mac o Linux. Otras características de Firebird son: arquitectura cliente/servidor sobre protocolo TCP/IP; soporte para transacciones y claves foráneas; seguridad basada en usuarios y roles, y mucho más.

FireBird proporciona dos tipos distintos de servidor: Classic y Super Server. La principal diferencia entre ellos reside en la forma como se realiza la conexión, ya que Super Server crea hilos independientes para cada una.

IBM DB2
Permite agilizar el tiempo de respuestas de esta consulta
Recuperación utilizando accesos de sólo índices.

Predicados correlacionados.
Tablas de resumen
Tablas replicadas
Uniones hash
DB2 utiliza una combinación de seguridad externa y control interno de acceso a proteger datos.
DB2 proporciona un juego de datos de acceso de las interfaces para los diferentes tipos de usuarios y aplicaciones.
DB2 guarda sus datos contra la pérdida, acceso desautorizado, o entradas inválidas.
Usted puede realizar la administración de la DB2 desde cualquier puesto de trabajo.
La base de datos se puede programar para tener una exacta cantidad de particiones que contienen la información del usuario, índice, clave de transacción y archivos de configuración. De esta forma, los administradores definen grupos de nodos, que son una serie de particiones de la base, lo que posteriormente facilita cualquier búsqueda.

miércoles, 24 de enero de 2018

UNIDAD 1: Perspectiva práctica de la administración de bases de datos

1.1 Administrador de Base de Datos (DBA) 
Un administrador de bases de datos (o DBA) tiene la responsabilidad de mantener y operar las bases de datos que conforman el sistema de información de una compañía.


1.1.1 Funciones de DBA

  • Gestión General de Base de Datos

El DBA es la persona con más conocimientos sobre base de datos en una organización. Como tal, debe entender las reglas básicas de la tecnología de base de datos relacional y ser capaz de comunicarlos con precisión a los demás.

  • Modelado de Datos y Diseño de Base de Datos

Un DBA debe ser un profesional experto en la recopilación y análisis de las necesidades del usuario para obtener modelos de datos conceptuales y lógicos. Esta tarea es más difícil de lo que parece. Un modelo conceptual de datos describe los requisitos de datos a un nivel muy alto, un modelo de datos lógico proporciona en profundidad los detalles de los tipos de datos, longitudes, relaciones y cardinalidad. El DBA utiliza técnicas de normalización para ofrecer modelos de datos que reflejen las necesidades de los datos de la empresa.

  • Auditoria

Una de las tareas de un DBA es identificar qué usuarios tienen acceso a insertar, actualizar o eliminar datos, y cuándo. Una auditoría NO sólo podría ser necesaria por un tiempo limitado, para usuarios específicos o datos específicos. También puede ser requerida  24/7 para todos los datos que se introduzcan en el DBMS. Regularmente, para realizar las funciones de autorías los DBAs tienen que trabajar en combinación con los auditores internos y externos de la empresa.

  • Integración con aplicaciones

La mayoría de las empresas hoy en día utilizan aplicaciones de terceros (casi nadie ya desarrolla sus propias aplicaciones in-house), muy pocas de estas aplicaciones funcionan de manera aislada. En otras palabras, las aplicaciones tienen que interconectarse unas con otras, generalmente utilizando base de datos como el medio para compartir los datos. Los DBAs a menudo se involucran en los procesos de integrar las aplicaciones existentes con las bases datos que administran. Esto puede incluir la creación de aplicaciones a medida, scripts, etc.

  • Resguardo y recuperación de datos

Uno de los aspectos más fundamentales del trabajo del DBA es proteger los datos de la organización. Esto incluye hacer copias de seguridad periódicas de los datos y mantenerlos a salvo de la destrucción accidental o intencional. Además, diseñar, implementar y probar un plan de recuperación para que cuando se presenten los problemas, los datos se pueden restaurar rápidamente.

  • Inteligencia de negocios y almacenamiento de datos

Una de las áreas de mayor crecimiento para el DBA es la Inteligencia de Negocios (BI) y almacenamiento de datos. Esto se debe a que cada vez más organizaciones están tratando de extraer toda la información que pueda con el fin de tomar mejores decisiones de negocios.

  • Planificación de capacidad

En la mayoría de las organizaciones, el número y tamaño de las bases de datos crece rápidamente. Es la responsabilidad del DBA gestionar el creciente volumen de datos y diseñar los planes apropiados para administrarlos. Esto incluye también la gestión del hardware donde se almacenan los datos.

  • Administración de cambios

La configuración del servidor SQL Server o MySQL, el esquema de base de datos, el código de Transact-SQL, y muchas otras facetas del ecosistema de aplicaciones cambian con el tiempo. A menudo es la responsabilidad del DBA realizar el análisis de impacto antes de realizar los cambios dentro de una DBMS. Implementar cambios, hacer pruebas piloto y documentar todos los cambios y procedimientos es parte del trabajo de un DBA.

  • Desarrollo de aplicaciones

Muchos administradores de base datos deben de desarrollar aplicaciones y scripts con el objetivo de automatizar tareas relacionadas con la inserción, sustracción o borrado de información dentro del manejador de base de datos. En general, éste debe de colaborar a nivel de integración de sistema con los desarrolladores de aplicaciones, por lo que a veces se ve en la obligación de desarrollar código para casos específicos.
1.1.2 Relación con DBA con otras áreas de sistemas

En sistemas muy complejos cliente/servidor y de tres capas, la base de datos es sólo uno de los elementos que determinan la experiencia de los usuarios en línea y los programas desatendidos.
El rendimiento es una de las mayores motivaciones de los DBA para coordinarse con los especialistas de otras áreas del sistema fuera de las líneas burocráticas tradicionales. Uno de los deberes menos respetados por el administrador de base de datos es el desarrollo y soporte a pruebas, mientras que algunos otros encargados lo consideran como la responsabilidad más importante de un DBA.


Las actividades de soporte incluyen la colecta de datos de producción para llevar a cabo pruebas con ellos; consultar a los programadores respecto al desempeño; y hacer cambios a los diseños de tablas de manera que se puedan proporcionar nuevos tipos de almacenamientos para las funciones de los programas.


martes, 23 de enero de 2018

Unidad I: Introducción al lenguaje ensamblador 

1.1 Importancia de la programación en lenguaje ensamblador

El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de microprocesador.

La importancia del lenguaje ensamblador es principalmente que se trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este, tiene la ventaja de que en el se puede realizar cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro punto sería que los programas en ensamblador ocupan menos espacio en memoria.

Es importante como se puede ver, el Lenguaje Ensamblador es directamente traducible al Lenguaje de Máquina, y viceversa; simplemente, es una abstracción que facilita su uso para los seres humanos. 
Por otro lado, la computadora no entiende directamente al Lenguaje Ensamblador; es necesario traducirle a Lenguaje de Máquina. Pero, al ser tan directa la traducción, pronto aparecieron los programas Ensambladores, que son traductores que convierten el código fuente a código objeto. Surge como una necesidad de facilitar al programador la tarea de trabajar con lenguaje máquina sin perder el control directo con el hardware.

1.2 El procesador y sus registros internos


Los registros del procesador se emplean para controlar instrucciones en ejecución, manejar direccionamiento de memoria y proporcionar capacidad aritmética. Los registros son direccionables por medio de un nombre
TIPOS DE REGISTROS:
  1. Registros de segmento.
  2. Registros de propósito general.
  3. Registros de apuntadores.
  4. Registros de banderas.
  5. Registros de Pila.
  6. Registros Indice.
Registros de segmento:
Un registro de segmento tiene 16 bits de longitud y facilita un área de memoria para direccionamiento conocida como el segmento actual.
Registro CS:  El DOS almacena la dirección inicial del segmento de código de un programa en el registro CS. Esta dirección de segmento, mas un valor de desplazamiento en el registro apuntador de instrucción (IP), indica la dirección de una instrucción que es buscada para su ejecución.
Registro DS:  La dirección inicial de un segmento de datos de programa es almacenada en el registro DS. En términos sencillos, esta dirección, mas un valor de desplazamiento en una instrucción, genera una referencia a la localidad de un byte especifico en el segmento de datos.
Registro SS: El registro SS permite la colocación en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS almacena la dirección de inicio del segmento de pila de un programa en le registro SS. Esta dirección de segmento, mas un valor de desplazamiento en el registro del apuntador de pila (SP), indica la palabra actual en la pila que esta siendo direccionada.
Registros ES: Alguna operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro extra de segmento para manejar el direccionamiento de memoria. En este contexto, el registro ES esta asociado con el registro DI (índice). Un programa que requiere el uso del registro ES puede inicializarlo con una dirección de segmento apropiada.
Registros FS y GS:  Son registros extra de segmento en los procesadores 80386 y posteriores.  

Registros de propósito general

Los registros de propósito general AX, BX, CX y DX son los caballos de batalla del sistema. Son únicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte. El ultimo byte de la izquierda es la parte “alta”, y el ultimo byte de la derecha es la parte “baja”. Por ejemplo, el registro CX consta de una parte CH (alta) y una parte Cl (baja), y usted puede referirse a cualquier parte por su nombre.
  • Registro AX:  El registro AX, el acumulador principal, es utilizado para operaciones que implican entrada/salida y la mayor parte de la aritmética. Por ejemplo, las instrucciones para multiplicar , dividir y traducir suponen el uso del AX. También, algunas operaciones generan código mas eficiente si se refieren al AX en lugar de a los otros registros.
  • Registro BX: El BX es conocido como el registro base ya que es el único registro de propósito general que puede ser índice para direccionamiento indexado. También es común emplear el BX para cálculos.
  • Registro DX: Es conocido como el registro de datos. Alguna operaciones de entrada/salida requieren uso, y las operaciones de multiplicación y división con cifras grandes suponen al DX y al AX trabajando juntos.

 

Registros Apuntadores

Los registros SP (apuntador de la pila) Y BP (apuntador de base) están asociados con el registro SS y permiten al sistema accesar datos en el segmento de la pila.
  • Registro SP:  El apuntador de la pila de 16 bits esta asociado con el registro SS y proporciona un valor de desplazamiento que se refiere a la palabra actual que esta siendo procesada en la pila. Los procesadores 80386 y posteriores tienen un apuntador de pila de 32 bits, el registro ESP. El sistema maneja de forma automática estos registros.
  • Registro BP: El BP de 16 bits facilita la referencia de parámetros, los cuales son datos y direcciones transmitidos vía pila. Los procesadores 80386 y posteriores tienen un BP ampliado de 32 bits llamado el registro EBP.

 

Registros Indice

Los registros SI y DI están disponibles para direccionamiento indexado y para sumas y restas.
  • Registro SI: El registro índice fuente de 16 bits es requerido por algunas operaciones con cadenas (de caracteres). En este contexto, el SI esta asociado con el registro DS. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32 bits, el ESI.
  • Registro DI: El registro índice destino también es requerido por algunas operaciones con cadenas de caracteres. En este contexto, el DI esta asociado con el registro ES. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32 bits, el EDI.

 

Registro de Banderas 

De los 16 bits del registro de banderas, nueve son comunes a toda la familia de procesadores 8086, y sirven para indicar el estado actual de la maquina y el resultado del procesamiento. Muchas instrucciones que piden comparaciones y aritmética cambian el estado de las banderas, algunas cuyas instrucciones pueden realizar pruebas para determinar la acción subsecuente. En resumen, los bits de las banderas comunes son como sigue:
  • OF (Overflow, desbordamiento):  Indica desbordamiento de un bit de orden alto (mas a la izquierda) después de una operación aritmética.
  • DF (dirección): Designa la dirección hacia la izquierda o hacia la derecha para mover o comparar cadenas de caracteres.
  • IF (interrupción):  Indica que una interrupción externa, como la entrada desde el teclado, sea procesada o ignorada.
  • TF (trampa): Permite la operación del procesador en modo de un paso. Los programas depuradores, como el DEBUG, activan esta bandera de manera que usted pueda avanzar en la ejecución de una sola instrucción a un tiempo, para examinar el efecto de esa instrucción sobre los registros de memoria.
  • SF (signo): Contiene el signo resultante de una operación aritmética (0 = positivo y 1 = negativo).
  • ZF (cero):  Indica el resultado de una operación aritmética o de comparación (0 = resultado diferente de cero y 1 = resultado igual a cero).
  • AF (acarreo auxiliar): Contiene un acarreo externo del bit 3 en un dato de 8 bits para aritmética especializada.
  • PF  (paridad): Indica paridad par o impar de una operación en datos de 8 bits de bajo orden (mas a la derecha).
  • CF  (acarreo):  Contiene el acarreo de orden mas alto (mas a la izquierda) después de una operación aritmética; también lleva el contenido del ultimo bit en una operación de corrimiento o de rotación. Las banderas están en el registro de banderas en las siguientes posiciones.

Registros de PILA

La pila es un área de memoria importante y por ello tiene, en vez de uno, dos registros que se usan como desplazamiento (offset) para apuntar a su contenido. Se usan como complemento al registro y son:
  • SP (Stack Pointer) : Se traduce como puntero de pila y es el que se reserva el procesador para uso propio en instrucciones de manipulado de pila. Por lo general , el programador no debe alterar su contenido.

  • BP  (Base pointer):  Se usa como registro auxiliar. El programador puede usarlo para su provecho.