miércoles, 6 de marzo de 2019

1.7 Proceso de ensamblado y ligado

EDICION
Los archivos fuente de código ensamblador deben estar en formato ASCII standard. Para esto puede usarse cualquier editor que permita crear archivos sin formato, e.g. Edlin, Edit, Write,
El editor del Turbo Pascal, Works, Word, WordStar, etcétera. Las declaraciones pueden ser introducidas en mayúsculas y/o minúsculas. Una buena práctica de programación es poner todas las palabras reservadas (directivas e instrucciones) en mayúsculas y todo lo del usuario en minúsculas para fines de facilidad de lectura del código. Las sentencias pueden comenzar en cualquier columna, no pueden tener más de 128 caracteres, no se permiten lineas múltiples ni códigos de control, y cada línea debe ser terminada con una combinación de line-feed y carriage-return. Los comentarios se declaran con; y terminan al final de la línea.


ENSAMBLADO
El ensamblado se lleva a cabo invocando al MASM. Este puese ser invocado, usando una línea de comando, de la siguiente manera: MASM archivo [,[objeto][,[listado][,[cross]]]]][opciones][;] Dónde: Objeto.- Es el nombre para el archivo objeto. Listado.- Nombre del archivo de listado de ensamblado. cross. Es un archivo de referencias cruzadas. LINK De la misma forma que el ensamblado, la fase de liga se lleva a cabo con el LINK. Este puede ser invocado de la misma forma que el MASM. Los parámetros que este requiere son: LINK objeto [,[ejecutable][,[mapa][,[librería]]]]][opciones][;] dónde:
Objeto.- Es el nombre para el archivo .OBJ Ejecutable.- Nombre del archivo .EXE Mapa.- Nombre del archivo mapa Librería.- Nombre del archivo biblioteca de rutinas


EJECUCION
Para la ejecución del programa simplemente basta teclear su nombre en el prompt de MS-DOS y teclear ENTER. Con esto el programa será cargado en memoria y el sistema procederá a ejecutarlo. El proceso completo para poder crear un programa ejecutable con el Microsoft Macro Assembler se muestra abajo.


Caracteristicas del Proceso de Ensamblado y ligado.
  1. El programa utiliza un editor de texto para crear un archivo de texto ASCII, conocido como archivo de código fuente.
  2. El ensamblador lee el archivo de código fuete y produce un archivo de código objeto, una traducción del programa a lenguaje máquina. De manera opcional, produce un archivo de listado. Si ocurre un error, el programador debe regresar al paso 1 y corregir el programa. 
  3. El enlazador lee el archivo de código objeto y verifica si el programa contiene alguna llamada a los procedimientos en una biblioteca de enlace. El enlazador copia cualquier procedimiento requerido de la biblioteca de enlace, lo combina con el archivo de código objeto y produce el archivo ejecutable. De manera opcional, el enlazador puede producir un archivo de mapa.
  4. La herramienta cargador (loader) del sistema operativo lee el archivo ejecutable y lo carga en memoria, y bifurca la CPU hacia la dirección inicial del programa, para que éste empiece a ejecutarse.

1.6 Modos de direccionamiento

Los llamados modos de direccionamiento son las diferentes maneras de especificar en informática un operando dentro de una instrucción. Cómo se especifican e interpretan las direcciones de memoria según las instrucciones. Un modo de direccionamiento especifica la forma de calcular la dirección de memoria efectiva de un operando mediante el uso de la información contenida en registros y / o constantes, contenida dentro de una instrucción de la máquina o en otra parte.

Diferentes arquitecturas de computadores varían mucho en cuanto al número de modos de direccionamiento que ofrecen desde el hardware. Eliminar los modos de direccionamiento más complejos podría presentar una serie de beneficios, aunque podría requerir de instrucciones adicionales, e incluso de otro registro. Se ha comprobado que el diseño de CPUs segmentadas es mucho más fácil si los únicos modos de direccionamiento que proporcionan son simples.
La mayoría de las máquinas RISC disponen de apenas cinco modos de direccionamiento simple, mientras que otras máquinas CISC tales como el DEC VAX tienen más de una docena de modos de direccionamiento, algunos de ellos demasiado complejos. El mainframe IBM System/360 disponía únicamente de tres modos de direccionamiento; algunos más fueron añadidos posteriormente para el System/390.
Cuando existen solo unos cuantos modos, estos van codificados directamente dentro de la propia instrucción (Un ejemplo lo podemos encontrar en el IBM/390, y en la mayoría de los RISC). Sin embargo, cuando hay demasiados modos, a menudo suele reservarse un campo específico en la propia instrucción, para especificar dicho modo de direccionamiento. El DEC VAX permitía múltiples operandos en memoria en la mayoría de sus instrucciones, y reservaba los primeros bits de cada operando para indicar el modo de direccionamiento de ese operando en particular.
Incluso en computadores con muchos modos de direccionamiento, algunas medidas realizadas a programas indican que los modos más simples representan cerca del 90% o más de todos los modos de direccionamiento utilizados. Dado que la mayoría de estas medidas son obtenidas a partir de códigos de alto nivel generados a partir de compiladores, nos da una idea de las limitaciones que presentan los compiladores que se utilizan.

miércoles, 27 de febrero de 2019

1.5 Llamadas a servicios del sistema

Llamada al sistema.

  • Llamadas que ejecutan los programas de aplicación para pedir algún servicio al SO. 
  • Llamadas al sistema no bloqueantes: son aquellas llamadas en las que, si lo que se solicita no está disponible, el proceso no se queda bloqueado, sino que devuelven un valor especial indicando la condición de información no disponible
  • Llamadas al sistema bloqueantes: la aplicación se bloquea a la espera del resultado. Si un hilo hace una llamada bloqueante, todos los hilos se bloquearán. Si hace una llamada no bloqueante, los demás hilos podrán seguir ejecutando.

¿Como se mandan las llamadas al sistema?

  • Se activa una interrupción ejecutando una operación especial conocida "Llamada al sistema" 
  • Esta se lanza cuando: 
  • Una aplicación de usuario solicita un servicio del sistema operativo. 
  • Proporciona los medios para que un programa de usuario pida al so que realice tareas reservadas del so en nombre del programa de usuario. 
  • Una llamada al sistema se invoca de diversas maneras dependiendo de la funcionalidad proporcionada por el procesador subyacente. 
  • Se trata de un método usado por un proceso para solicitar la actuación del so. 
  • Normalmente una llamada al sistema toma la forma de una excepción que efectúa una transferencia a una posición específica en el vector de interrupción.

Tipos de llamadas al sistemas
  • Control de procesos 
  • Terminar (end), abortar (abort) 
  • cargar (load), ejecutar (execute) 
  • crear procesos (create process o submit job), terminar procesos (terminate process) 
  • fork: inicia un nuevo proceso 
  • exec:el programa se ejecuta 
  • obtener atributos del proceso (get process attributes), definir atributos del proceso (set process attributes) 
  • esperar para obtener tiempo (wait time) 
  • esperar suceso (wait event), señalizar suceso (signal event) 
  • asignar y liberar memoria. 
  • llamada al sistema para liberar memoria (dump) (i45) 
  • Administración de archivos 
  • crear archivos (create), borrar archivos (delete) 
  • abrir (open), cerrar (close) 
  • leer (read), escribir (write), reposicionar (reposition) 
  • obtener atributos del archivo, definir atributos del archivo. 
  • move: mover archivos 
  • copy: copiar archivos 
  • Adminsitración de dispositivos 
  • solicitar dispositivo (request), liberar dispositivo (release) 
  • leer (read), escribir (write), reposicionar (reposition) 
  • obtener atributos de dispositivo, definir atributos de dispositivo 
  • conectar y desconectar dispositivos lógicamente. 
  • Mantenimiento de la información 
  • obtener la hora (time) o la fecha (date), definir la hora o la fecha 
  • obtener datos del sistema, establecer datos del sistema 
  • obtener los atributos de procesos, archivos o dispositivos 
  • establer los atributos de procesos, archivos o dispositivos 
  • Comunicaciones 
  • crear, eliminar conexiones de comunicación 
  • enviar, recibir mensajes 
  • transferir información de estado 
  • conectar y desconectar dispositivos remotos. (i43) 

Llamadas al sistema
  • Abrir archivo 
  • Crear archivo 
  • Proteger archivo 
  • Escribir mensaje en consola 
  • Terminar en forma anormal 
  • Borrar archivo 
  • Leer archivo 
  • Modificar archivo (i39) 
  • CreateProcess de win32 
  • get hostid: Cada computadora de red tiene un nombre de host. Un host tiene un identificador de red. Ésta llamada al sistema hace esa traducción (i49) 
  • get processid: Cada proceso tiene un nombre de proceso y este nombre se traduce en un identificador mediante el cual el so hace referencia al proceso. Ésta llamada al sistema realiza la traducción

1.3 La memoria principal (RAM)

La memoria principal (RAM)

La memoria principal o primaria, "Memoria Central ", es aquella memoria de un ordenador, donde se almacenan temporalmente tanto los datos como los programas que la CPU está procesando o va a procesar en un determinado momento. Por ejemplo, cuando la CPU tiene que ejecutar un programa, primero lo coloca en la memoria y después lo empieza a ejecutar.

Otros andarán más rápido si el sistema cuenta con más memoria RAM. La memoria Caché: dentro de la memoria RAM existe una clase de memoria denominada Memoria Caché que tiene la característica de ser más rápida que las otras, permitiendo que el intercambio de información entre el procesador y la memoria principal sea a mayor velocidad.

Está formada por bloques de circuitos integrados o chips capaces de almacenar, retener o "memorizar" información digital, es decir, valores binarios; a dichos bloques tiene acceso el microprocesador de la computadora. La MP se comunica con el microprocesador de la CPU mediante el bus de direcciones.

El ancho de este bus determina la capacidad que posea el microprocesador para el direccionamiento de direcciones en memoria. En algunas oportunidades suele llamarse "memoria interna" a la MP, porque a diferencia de los dispositivos de memoria secundaria, la MP no puede extraerse tan fácilmente por usuarios no técnicos.

La MP es el núcleo del sub-sistema de memoria de una computadora, y posee una menor capacidad de almacenamiento que la memoria secundaria, pero una velocidad millones de veces superior. Si tienes más memoria almacenas más datos.

Características de la Memoria
Las magnitudes importantes que caracterizan la Memoria Central o Principal son:

  • Capacidad o tamaño de la misma. Es decir, el numero de miles de posiciones que contiene. Normalmente se expresan en K.palabras, aunque en los ordenadores personales al ser las palabras de 8 bits se expresan en K-bytes. En la actualidad, el tamaño de la palabra es múltiplo del byte, ya que de esta forma el acceso a la misma puede hacerse desde uno al ancho máximo del bus de datos, ahorrando en muchos casos tiempo. Así tendremos palabras de 8, 16, 32, 64 bits y capacidades de siempre medidas en potencia de dos: 8, 16, 64, 128 K...etc(siendo 1K igual a 1025).
  • Tiempo de Acceso. Es el tiempo que invierte el ordenador desde que se emite la orden de lectura-escritura, hasta que finaliza la misma. Este tiempo es muy pequeño, y de el depende la potencia del ordenado. Son típicos tiempos del orden de microsegundos e incluso del orden de 2 a 10 nanosegundos.
  • El tamaño de la celda define su anchura de palabra, y viene fijado por el ancho del registro de información de memoria. Si la palabra interna es superior a la de la memoria, necesitara hacer más de un acceso para conseguir toda la información.

martes, 26 de febrero de 2019

1.2 Registros del procesador de Emu8086

Aquí podemos ver una tabla donde nos muestran los registros según el procesador de Emu8086


Creacion de un proyecto y aplicacion con Django

En esta entrada veremos como podremos crear un proyecto de Django, ademas de una aplicación dentro de nuestro proyecto

Primero que nada para poder crear un proyecto de Django dentro de Python, debemos tener instalado obviamente, Python, y preferentemente Pycharm para poder ver los archivos que nos creara el proyecto de Django.

Ahora, una ves teniendo Python, y Pycharm de preferencia, debemos instalar Django. Para poder instalar Django lo único que debemos hacer es utilizar el siguiente comando
pip install Django
Y se nos empezara a instalar nuestro Django inmediatamente.
Eso es lo fácil, ahora para poder crear un proyecto.

Si tenemos una version de Python menor a 3.X.X como yo, que tengo la version 2.15.X deberemos hacer lo siguiente:

Entramos dentro de nuestro Command Prompt debemos entrar a la carpeta de Pyhton27 y después a Scripts y ejecutar el siguiente código:
Django-admin startproyect Proyecto
En donde al final se escribe el nombre del proyecto nosotros lo llamaremos Proyecto por el momento.
Una vez creado el proyecto podemos ver la carpeta o podemos ver nuestro proyecto y los archivos creados por el proyecto.

Para poder ver que el proyecto ya esta creado bien, podemos buscar el archivo llamado manage.py, el cual es nuestro proyecto en archivo de python, lo que podemos hacer con el archivo es correr nuestro servidor, con el siguiente comando dentro de la carpeta del proyecto en el Command Prompt.
python manage.py runserver
Al momento de correr el comando veremos como empieza a correr nuestro servidor, es un servidor local hay que aclarar esto, pero también podemos ver como es que nos muestra un cierto mensaje de advertencia que no hemos migrado ciertas partes a nuestro proyecto, esto lo veremos después, por ahora veremos como es que nos corre el servidor, y al final nos da una URL, la cual esta URL es de nuestro proyecto.
Podemos ver nuestro proyecto copiando y pegando esa URL que vemos al final.

Ahora, es lo único que tenemos en la pagina, para poder crear una aplicación debemos cerrar nuestro servidor, presionando las teclas Ctrl+C se cierra nuestro servidor, y podemos seguir escribiendo en el CMD.

Para poder crear una aplicación, para nuestro servidor, seria hacer lo siguiente.
Regresamos a nuestra carpeta scripts dentro de la carpeta python27, y escribir el siguiente comando.
django-admin startapp aplicacion
Asi creamos una carpeta exclusivamente para una aplicación que podemos llegar a instalar dentro de nuestro proyecto mas adelante.

Podemos ver dentro de pycharm los archivos que se nos crearon para cada una de las carpetas tanto como para el proyecto como para la aplicación.




martes, 19 de febrero de 2019

1.2 Analisis de los manejadores de bases de datos

Un manejador o gestor de bases de datos (DBMS) es un sistema que permite la creacion, gestion y administracion de bases de datos. Asi como la eleccion y manejo de las estructuras necesarias para el almacenamiento y busqueda de la informacion del modo mas eficiente posible.

A continuacion se mostrara una lista de algunos sistemas gestores de bases de datos:

Oracle

Resultado de imagen para dbms oracle
Oracle data base RDBMS es un sistema de administracion de bases de datos relacionales de objetos de Oracle corporation.
La base de datos de Oracle es la primera diseñada para la computacion grid empresarial, la cual proporciona la manera mas flexible y rentable de administrar la informacion y las aplicaciones.

Ventajas
  • Oracle es el motor de base de datos objeto-relacional mas usado a nivel mundial
  • Puede ejecutarse en todas las plataformas
  • Permite el uso de particiones para mejorar su eficiencia, de replicacion e incluso ciertas versiones admiten la administracion de bases de datos distribuidas 
  • Oracle es la base de datos con mas orientacion a internet

Desventajas
  • Se encuentran muchas versiones desde su lanzamiento original de version 8 con varias versiones posteriores con correcciones,hasta su estabilidad en la version 8.0.3. El motivo de estos errores fue, al parecer, la remodelacion del sistema de almacenamiento por causa de la introduccion de extensiones orientadas a objetos.
  • Su mayor inconveniente es su precio. Incluso las licencias de personasl Oracle son excesivamente caras.

MySQL

Resultado de imagen para dbms mysql

Es un sistema de administracion de base de datos que nos permite administrar bases de datos relacionales. Es un software de codigo abierto respaldado por Oracle. A pesar de que MySQL es un software de codigo abierto, puede comparse una version de licencia comercial de Oracle para obtener servicios de soporte pemium.

Ventajas
  • MySQL es de codigo abierto
  • Tiene una gran velocidad al realizar operaciones, lo que mejora su rendimiento
  • Facilidad de configuracion e intalacion
  • Soporta gran variedad de sistemas operativos
  • Su conectividad, velocidad y seguridad hacen de MySQL server altamente apropiado para acceder a bases de datos en internet.
Desventajas
  • Gran porcentaja de las utilidades de MySQL no estan documentadas
  • No es intuitivo como otros programas. Ejemplo: Access.

Microsoft SQL server

Resultado de imagen para dbms microsoft sql server logo
SQL Server es un sistema de administracion de bases de datos relacionales desarrollado por Microsoft.Tambien es un ORDBMS, plataforma dependiente tanto de su interfaz grafica como software basado en comandos y SQL language, que es producto de IBM.

Ventajas
  • Es muy util para manejar y obtener datos de la red
  • Compatibilidad con la mayoria de las tareas administrativas de SQL Server.
  • Al trabajar una red social, permite agregar mas servidores de SQL Server y visualizar las bases de datos de otra persona.
Desventajas
  • La acaparacion de memoria RAM para intalaciones y manejo de software
  • Contiene muchas restricciones entre ellas
  • Bloqueos a nivel de pagina
  • Un tamaño fijo y demasiado pequeño al trabajar en la hoja

PostgreSQL

Resultado de imagen para dbms postgre logo

Es un potente sistema de gestion de bases de datos relacionales de codigo abierto.
PostgreSQL se ejecuta en todos los principales sistemas operativos, incluidos Linux, Unix y Windows.
Diseñado para ambientes de alto volumen y nadie puede demandarlo por violar acuerdos de licencia, puesto que no hay costo asociado a la licencia de este software.

Ventajas
  • Su intalacion ilimitada
  • Facilidad al administrar 
  • Dispone de flexibilidad para hacer investigacion y desarrollo de sistemas sin necesidad de incurrir en costos adicionales
Desventajas
  • Es 3 veces mas lento que MySQL
  • La sintaxis de algunos comandos o sentencias no es nada intuitiva
  • Consume muchos recursos de la maquina

Programa que pone 3 colores y 3 letras

include 'emu8086.inc' CUADRO MACRO XI,YI,XF,YF,COLOR MOV AX, 0600H ; MOV BH, COLOR ; COLOR DE FONDO Y LETRA MOV BL, 00H MOV CH...