miércoles, 31 de enero de 2018

Registros del Procesador







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. El DX es conocido como l 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.

Registro de Apuntador de Instrucciones.

El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de dirección de la siguiente instrucción que se ejecuta. El IP esta asociado con el registro CS en el sentido de que el IP indica la instrucción actual dentro del segmento de código que se esta ejecutando actualmente. Los procesadores 80386 y posteriores tienen un IP ampliado de 32 bits, llamado EIP.En el ejemplo siguiente, el registro CS contiene 25A4[0]H y el IP contiene 412H. Para encontrar la siguiente instrucción que será ejecutada, el procesador combina las direcciones en el CS y el IP:

Segmento de dirección en el registro CS: 25A40H Desplazamiento de dirección en el registro IP: + 412H Dirección de la siguiente instrucción: 25E52H

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.

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:

Las banderas mas importantes para la programación en ensamblador son O, S, Z y C, para operaciones de comparación y aritméticas, y D para operaciones de cadenas de caracteres. Los procesadores 80286 y posteriores tienen algunas banderas usadas para propósitos internos, en especial las que afectan al modo protegido. Los procesadores 80286 y posteriores tienen un registro extendido de banderas conocido como Eflags.

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.

Claro que estos nombres y tipos de registros son estándar, ya que cada fabricante puede utilizar otros registro que reemplacen a estos o los auxilien, aun así, los fabricantes que usan otros registro tienen la misma función que los anteriormente mencionados.

Registro Apuntador de Instrucciones


El registro IP de 16 bits contiene el desplazamiento de dirección de la siguiente instrucción que se ejecuta. El IP está asociado con el registro CS en el sentido de que el IP indica la instrucción actual dentro del segmento de código que se está ejecutando actualmente en la memoria.

Registros Índice

Los registros SI y DI están disponibles para direccionamiento indexado y para operaciones de cadenas de caracteres.
  • Registro SI: El registro índice fuente de 16 bits es requerido por algunas operaciones con cadenas de caracteres. El SI está asociado con el segmento DS.
  • Registro DI: El registro índice destino también es requerido por algunas operaciones con cadenas de caracteres. El DI está asociado con el segmento ES.

martes, 30 de enero de 2018

Firebird y DBeaver

Firebird

Firebird es un RDBS(Sistema manejador de base de datos relacional)  que desciende del motor
Interbase de 1991 lo que significa que es muy estable.

Firebird es de codigo abierto, siendo así completamente libre MPL(Mozila Public License),
puede manejar base de datos pequeñas y grandes.

Cuenta con un soporte completo de procedimientos almacenados y Triggers.

Su instalación es muy sencilla.

Las transacciones son 100% ACID (Atomicity, Consistency, Isolation, Durability)  y confiable.

Tambien contiene integridad referencial, es decir que maneja relaciones por ser arquitectura multigeneracional.

Tambien cuenta con soporte de funciones definidas por el usuario (UDF).

Cuenta con muchos tipos de conectividad como Java y Python.

Firebird tiene 2 tipos, Clasico y Super Server.

El clasico maneja un proceso por conxion.
El Super maneja 1 solo proceso unico para cada conexion.


DBeaver

DBeaver es una herramienta de base de datos universal gratuita y de código abierto para desarrolladores y administradores de bases de datos. La usabilidad es el objetivo principal de este proyecto, la interfaz de usuario del programa está cuidadosamente diseñada e implementada.
Es gratis y de código abierto (ASL). 

Es multiplataforma Se basa en el marco de código abierto y permite escribir varias extensiones (complementos).

 Admite cualquier base de datos que tenga un controlador JDBC. Puede manejar cualquier fuente de datos externa que puede o no tener un controlador JDBC.

Existe un conjunto de complementos para determinadas bases de datos (MySQL, Oracle, DB2, SQL Server, PostgreSQL, Vertica, Informix, MongoDB, Cassandra, Redis en la versión 3.x) y diferentes utilidades de gestión de bases de datos (por ejemplo, ERD).

Programas en EMU8086 básicos (Sumas, Restas, Incrementos, Decrementos)

Programa 1 (En Clase)

ORG 100h   ;Mueve la alocacion de memoria al registro 100 hexadecimal
                    ;A partir de este registro se empezaran a sustituir los datos que utilizaremos

mov ax,10   ;Asigna al registro ax el valor de 10 decimal
mov bx, 00F9h  ;Asigna el valor 249 en hexadecimal al registro bx
inc bx   ;Incrementa en 1 el valor de bx
add ax, 4   ;Suma 4 al registro ax
mov cx,45  ;Asigna 45 al registro cx
sub cx,cx   ;resta cx a cx
ret


Programa 2
ORG 0000h
mov ax, 30 ;Asigna 30 al registro ax, 1E en hexadecimal
mov cx, 33 ;Asigna 33 al registro cx, 21 en hexadecimal
mov bx,1C2h   ;Asigna el valor 450 en hexadecimal al registro bx

inc bx   ;Incrementa bx en 1, 1C3 en hexadecimal
add ax,80 ;Suma 80 al registro ax, 110 en decimal,  6E en hexadecimal
sub cx,30 ;resta 30 al registro cx
ret




Programa 3

ORG 0000h
mov ax, 15  ;Asigna 15 (0Fh) a Ax
mov bx, 7Ch ;Asigna 7C (124) a Bx
mov cx, 10  ;Asigna 10(Ah) a Cx

inc bx ;incrementa bx en 1
inc bx ;incrementa bx en 1
inc bx ;incrementa bx en 1(7Fh=127)
add ax, 20  ;Suma 20 a Ax =35=23h
sub cx,5  ;Resta 5 de Cx =5
ret




Programa 4(Decrementos)

ORG 0000h

mov ax, 10 
mov bx, 50
mov cx, 20 

dec bx ;Decrementa bx en 1
dec bx ;Decrementa bx en 1
dec bx ;Decrementa bx en 1
ret




jueves, 25 de enero de 2018

Apunte de Registros de Procesador

Registros de Segmento

Es un registro que contiene 16 bits de longitud, ayuda al direccionamiento de memoria.

Registro CS.

Semento de codigo, puede almacenar más de un valor de desplazamiento de aountador (IP).

Registro DS (Datos)

Genera una referencia de un byte especifico.

Registros SS (Pila)

Permite la colocacion en memoria de una pila para el almacenamienot temporal de direcciones y datos.

Registro ES

Operaciones con cadenas de caracteres, utilizan el registro extra para manejar direccionamiento de memoria.

miércoles, 24 de enero de 2018

Funciones de un DBA - Analisis de Videos

Videos - https://www.youtube.com/watch?v=el6zxekfYxY
            - https://www.youtube.com/watch?v=9t2PwlR7LRY


Un DBA cumple con diversas funciones de acuerdo a la empresa y el perfil  del puesto en el que se encuentran.

El DBA es el responsable de administrar las bases de datos, su actividad, su estructura y determinar diccionarios de la base de datos, y mantener segura e integra entre otras cosas a la base de datos.

El DBA tambien es responsable de la creacion de esquemas internos de la base de datos la cual tendra que representar el funcionamiento interno de la base de datos.

Entre las funciones principales se encuentran recuperabilidad, integridad, seguridad, disponibilidad, desempeño y desarrollo y soporte a pruebas.

En la recuperabilidad el DBA debe  crear y manejar los respaldos de las bases de datos que maneje.

El DBA debe verificar la integridad de la información que comprende la base dedatos.

El DBA debe controlar los accesos a la base de datos para la edicion y modificacion de la base de datos por medio de permisos a distintos usuarios.

El DBA debe tener la mayor parte del tiempo posible la base de datos en linea para el uso de los usuarios.

El DBa tambien debe proveer soporte a los programadores y otros usuarios que utilizarán la base de datos.

martes, 23 de enero de 2018

El procesador y sus registros Internos



Definición de registros:

un registro es una memoria de alta velocidad y poca capacidad, integrada en el microprocesador, que permite guardar transitoriamente y acceder a valores muy usados, generalmente en operaciones matemáticas.


Función de los registros:
• Los registros están en la cumbre de la jerarquía de memoria, y son la manera más rápida que tiene el sistema de almacenar datos. Los registros se miden generalmente por el número de bits que almacenan; por ejemplo, un "registro de 8 bits" o un "registro de 32 bits“.

• La CPU contiene un conjunto de localidades de almacenamiento temporal de datos de alta velocidad llamada registro. Algunos de los registros están dedicados al control, y solo la unidad de control tiene acceso a ellos. Los registros restantes son los registros de uso general y el programador es el usuario que tiene acceso a ellos.

Algunos registros básicos:
Dentro del conjunto básico de registros de control se deben incluir a los siguientes:
A.Contador de programa (PC).
B.Registro de direcciones de la memoria (MAR).
C.Registro de datos (RD).
D.Registro de instrucciones (IR).
E.Palabra de estado de programa (PSW).


Pagina:
http://leo-yac.wixsite.com/lenguaje-ensamblador/el-procesador-y-sus-registros-internos

Importancia del Lenguaje Ensamblador

La importancia del lenguaje ensamblador radica 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.
                            

Ventajas y desventajas del Lenguaje Ensamblador

Ventajas1.     .- Como trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el más cercano a la máquina la computadora lo procesa mas rápido.
2.     
Eficiencia de tamaño .- Un programa en ensamblador no ocupa mucho espacio en memoria porque no tiene que cargan librerías y demás como son los lenguajes de alto nivel
3.     
Flexibilidad .- Es flexible porque todo lo que puede hacerse con una máquina, puede hacerse en el lenguaje ensamblador de esta máquina; los lenguajes de alto nivel tienen en una u otra forma limitantes para explotar al máximo los recursos de la máquina. O sea que en lenguaje ensamblador se pueden hacer tareas específicas que en un lenguaje de alto nivel no se pueden llevar acabo porque tienen ciertas limitantes que no se lo permite 

DesventajasTiempo de programación .- Como es un lenguaje de bajo nivel requiere más instrucciones para realizar el mismo proceso, en comparación con un lenguaje de alto nivel. Por otro lado, requiere de más cuidado por parte del programador, pues es propenso a que los errores de lógica se reflejen más fuertemente en la ejecución.Programas fuente grandes .- Por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos más instrucciones primitivas para describir procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los programas, y nuevamente reduce la productividad de los programadores.Peligro de afectar recursos inesperadamente .- Que todo error que podamos cometer, o todo riesgo que podamos tener, podemos afectar los recursos de la maquina, programar en este lenguaje lo más común que pueda pasar es que la máquina se bloquee o se reinicialice. Porque con este lenguaje es perfectamente posible (y sencillo) realizar secuencias de instrucciones inválidas, que normalmente no aparecen al usar un lenguaje de alto nivel.Falta de portabilidad.- Porque para cada máquina existe un lenguaje ensamblador; por ello, evidentemente no es una selección apropiada de lenguaje cuando deseamos codificar en una máquina y luego llevar los programas a otros sistemas operativos o modelos de computadoras.

Pagina:
http://lenguajes-e-interpretes.blogspot.mx/2012/11/importancia-del-lenguaje-ensamblador.html

Relacióndel DBA con otras áreas de los Sistemas

Programación Por Capas

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.



Presentación:
https://prezi.com/2nl8ipwnkboi/112-relacion-del-dba-con-otras-areas-de-los-sistemas/

Funciones de un 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.