18 de noviembre de 2015

NOTAS 18 DE NOVIEMBRE DEL 2015

Se le llama administracion de m,emoria

Subdivision de la memoria durante la ejecucion
Supone que el compilador obtiene un bloque de memoria del sistema  operativo para que se ejecute el programa copilado. Esta memoria para el momento de la ejecucion debe estar subdividida de modo que pueda albergar:
El codigo objeto generado,( tiene un determinado tamaño en el momento de la compilacion, asi que el compilador puede colocarlo estaticamente en una zona, tal vez en el extremo inferior de la memoria).

  • Los objetos de datos y tambien se puede conocer el tamañ de algunos de ñps datos en el momento de la compilacion, y por lo tanto tambien se pueden colorar wen una zona estaticamente. Una razon para asignar estaticamentqe tantos daTOS COMO SEA POSSIBLE ES QUE LAS DIRECCIONES DE DICHOS OBJETOS SE PUEDDEN COMPILAR AL CODIGO OBJETO.
  • Una contrapartida de la pila de control para registrar las activaciones de procedimientos
  • Un area distinta de la memoria para el momento de la ejecucion, llamada monticulo, guarda el resto de la informacion

12 de noviembre de 2015

Programas en ensamblador

 ORG 100h
 mov ax, 10 ;AX=10
 mov bx, 00F9h ;BX=0xF9
 inc bx ;BX++
 add ax, 4 ;AX=AX+4
 mov cx,45 ;CX=45
 sub cx,cx ;CX=CX-CX
ret
Utilizar Loop:
ORG 100h
MOV CX, 5 
MOV BX, 1 
MOV DL, 2
comienzo:
 MOV AX, BX
 MUL DX
 MOV BX, AX
 LOOP comienzo
 RET
Potencia:
name "potencia" ;8 chars DOS
org 100h ;counter to 100h
mov cx, num2 
mov ax, num1
inicio:
 mov bx,num1
 mul bx ;ax = ax * bx
 loop inicio ;c--

mov num3,ax ;copiamos el resultado
ret
;Variables "db" para byte y "dw" para word
num1 dw 0Ah
num2 dw 03h
num3 dw 0h
Raiz cuadrada:
org 100h
siguiente:
 inc r
 mov ax, r
 mul ax
 cmp ax, m
 jbe siguiente ;(r*r) MENOR O IGUAL a m
dec r
ret

;Variables 
m dw 146
r dw 0 ;Al final debe ser r=sqrt(m).
Arreglos:
name "arreglo"
org 100h
;un areglo se puede acceder a travez de []
mov cx, 9 ;cuantos elementos voy a recorrer, empezamos con el 9
inicio:
 mov si, cx
 mov dl, v[si]
 cmp dl, mayor
 jng siguiente:
 mov mayor,dl
 siguiente:
 loop inicio
ret
v db 1,32,64,32,98,12,5,21,91,38
mayor db 0
Saber si un numero es mayor:
name "mayor"

mov AX, 5
mov BX, 5
;mov DX, AX

;CX el valor más grande entre AX Y BX 
;AX-BX mayor a 0
sub AX,BX
js A_MENOR_B
mov CX,AX
jmp FIN
A_MENOR_B:
mov CX,BX
FIN:

;mov AX,DX
ret
Multiplicacion:
ORG 100h
MOV AL, 200 ; AL = 0C8h
MOV BL, 4
MUL BL ; AX = 0320h (800)

RET
Interrupciones (Ejemplo de 21h):
name "int01"
org 100h
mov ah, 1 ;Leer un caracter de la entrada estandar
int 21h ;Llamada al sistema operativo (DOS)
mov tecla, al
mov ah, 2 ;imprime un simbolo a la consola
mov dl, simbolo ;el caracter a mostrar, en este caso la E
int 21h ;Llamada al DOS

inc tecla
mov ah, 7 ;NO imprime un simbolo a la consola
mov dl, tecla ; 
int 21h ;Llamada al DOS

ret
;Variables
tecla db 0 
simbolo db 45H
;ah que queres hacer
;ah = 1 guarda caracter en al
;ah = 2 escribe un caracter en la consola. El ascii del cacacter a imprimir se pone el dl
;AH = 7 es igual a el ah=2 pero el resultado no se ve en pantalla 
;ah = 9 imprime una cadena en la consola. Considera el caracter $ como fin de cadena.
;La direccion de la cadena se expresa en DX
Cadenas:
org 100h
mov msg[2], 34H
mov dx, offset msg 
mov ah, 9
int 21h
ret
msg db "hello world $"

Cambiar a mayúsculas:
name "int02"
ORG 100H
lectura:
 mov ah,7
 int 21h

 mov tecla, al
 cmp al,13
 jz fin:
cmp tecla, 122 ;si tecla es mayor a 122 entonces ir a fin3 (tecla > 122)
ja fin3
cmp tecla,96 ;si tecla no es mayor a 96 ir a fin3 (tecla <= 96)
jng fin3
sub tecla, 32 ;si es 'a' hasta 'z' entonces restarle 32
fin3: 
mov ah,2
mov dl,tecla
int 21h
jmp lectura
fin:
ret
tecla db 0


Procedimientos:
org 100h
mov bx, 5h
mov ax, 10h
call inicializar
inc ax
ret
inicializar PROC
 MOV ax, 1234h
 ret
inicializar ENDP
Archivos:
org 100h
 mov al, 0 ;modo de acceso para abrir arhivo, modo lectura/escritura
 mov dx, offset archivo ;offset lugar de memoria donde esta la variable
 mov ah, 3dh ;se intenta abrir el archivo
 int 21h ;llamada a la interrupcion DOS
 jc error ; si se prendio la bandera c ir a error

 mov handle, ax ;si no paso mover a lo que le dio el SO
 jmp leer

 error:
 ; ....

 ;leer archivo 
 leer:
 mov bx, handle
 mov cx, 5
 mov dx, offset leido
 mov ah, 3fh
 int 21h

 ;cerramos archivo
 mov bx, handle
 mov ah, 3eh
 int 21h 

 ;imprimir el contenido de leido
 mov dx, offset leido
 mov ah, 9
 int 21h

 ret 

archivo db "C:\prueba.txt", 0 ;ascii del nombre del archivo 
leido db "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
handle dw ? ;identificador del arhivo
Interrupción 13h (Gráficos)
mov cx,1
mov al, 13h
 mov ah, 0
 int 10h ; set graphics video mode.
bucle1:
 mov dx, cx
 mov al, color ;AL = pixel color
 mov ah, 0ch ;Change color for a single pixel
 int 10h ;set pixel
cmp cx, 101 ;llegar hasta 100 x 100 (va en diagonal)
 jz fin
inc cx ;DX = row.
 add color, 2 ;para cambiar colores
 jmp bucle1 ;CX = column
fin:
 ret
color db 1

4 de septiembre de 2015

Introducción al lenguaje Ensamblador | PORTAFOLIO UNIDAD 1

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 mas directa del código maquina especifico para cada arquitectura del micro-procesador 

La importancia del lenguaje ensamblador es principalmente que se terabaja directamente con el microproceasador, 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.

1.2 El procesador y sus registros internos
Los registros del procesador se emplean para controlar instrucciones en ejecución y proporcionar capacidad aritmética. Los registros son direccionales por medio de un nombre. Los bits por convención se numeran de derecha a izquierda.
Los registros internos del procesador se pueden calificar en 6 tipos diferentes
Registros de segmento
Registros de propósito general
Registros de apuntadores
Registros de banderas
Registro de puntero de instrucciones
Registro de pila

1.3 La memoria principal RAM
RAM es el acrónimo ingles de random access memory (Memoria de acceso aleatorio).
La memoria principal esta formada por un conjunto de unidades llamadas palabras. Dentro de cada una de estas palabras se guarda la información que constituye una instrucción o parte de ella (puede darse el caso de que una sola instrucción necesite varias palabras) o un dato o parte de un dato (también un dato puede ocupar varias palabras) 
A la cantidad de palabras que forman la MP se le denomina capacidad de palabras.
Una palabra esta formada a su vez de unidades mas elementales llamadas bits, del mismo modo que en el lenguaje natural una palabra esta formada por letras.

1.4 El concepto de interrupciones
También conocida como IRQ. Recursos que utilizan un dispositivo cuando necesita detener el proceso que esta realizando la CPU para informarle de que él, por su parte esta haciendo algo.
Si dos dispositivos utilizan la misma interrupción, se produce un conflicto, el ordenador no sabe que elemento intenta avisarle y suelen aparecer problemas de funcionamiento. El programa interrumpido puede continuar ejecutándose luego. 
Existen 256 direcciones de interrupciones diferentes. Una interrupción se convierte en una interrupción de hardware cuando es solicitada por uno de los componentes de hardware del equipo.
Tipos de interrupciones:
Interrupción externa es provocada por un dispositivo externo al procesador, una interrupción interna ocurre como resultado de la ejecución de una instrucción INT o una operación de división que cause desbordamiento, ejecución en modo de un paso o una petición para interrupción externa, tal como E/S de disco.


1.5 Llamadas a servicios de sistemas

Llamada al servicio es el mecanismo usado por una aplicación para solicitar un servicio al sistema operativo.
Algunos sistemas permiten efectuar llamadas al sistema directamente desde un programa realizado en el lenguaje de mayor nivel, normalmente estas llamadas e asemejan a una función o sub-rutinas predefinidas.
El procesador sabe que el dispositivo requiere de atención de diferentes formas. La primera es que periodicamente sondea al dispositivo en cuestión. La segunda forma, una mas eficiente, es hacer que sea el dispositivo el que le avise al procesador cuando este listo o requiera atención interrumpiendo al procesador.


1.6 Modos de direccionamiento 
Los llamados modos de direccionamiento son las diferentes maneras de especificar dentro de una instrucción. Un modo de direccionamiento especifica la forma de calcular dirección de memoria efectiva de un operando mediante el uso de la información contenida en registros y/o constante, contenida dentro dela instrucción de la maquina o en otra parte.



Fuente:
http://es.slideshare.net/KILLERMSTR/prez-camacho-jess-asmeth

31 de agosto de 2015

¿Donde estan las monedas? | RESUMEN

El libro nos relata la historia de 2 personas, de las cuales no sabemos el nombre, el genero ni la edad, ambas personas tienen el mismo sueño que posiblemente tu o yo hayamos tenido alguna vez en nuestras vidas, un sueño que puede ser tomado de diferentes maneras según se quiera ver. La historia comienza con la primera persona teniendo este sueño, un sueño donde sus padres le obsequian una cuantas monedas, el libro no nos dice si eran muchas monedas o pocas monedas, tampoco nos dice de que material estaban echas ni su valor, solo nos dice que eran varias monedas, podrían haber sido muchas o pocas pero lo que el libro nos quiere dar a entender es que su valor es irrelevante para la historia, al menos su valor económico. El primer sujeto al recibir estas monedas siente una sensación de alivio y confort, gracias a esto puede dormir tranquilamente y al despertar se siente con mas energía que nunca, de inmediato va a contarle a sus padres sobre lo que había ocurrido en su sueño (Cosa curiosa porque se supone que muchas personas no son capaces de recordar sus sueños íntegramente pero por el bien de la trama nos lo creemos), al relatarles lo que había ocurrido en su sueño y como se había sentido sus padres como buenos padres que son sienten un enternecimiento tremendo y se llenan de satisfacción al saber que su hijo esta contento con lo que le han dado, pensando seguramente ellos que el hecho de que su hijo este contento con las monedas en el sueño sea un reflejo de que esta contento con lo que le han proporcionado a lo largo de estos años, después le comentan a su hijo que debido a que esta conforme con lo que le han dado todos estos años el podía quedarse con todas las monedas y gastarlas como a el le diera la gana ya que esas monedas eran de su pertenencia. Y asi con las "monedas" en su haber se va de la casa y forma una vida, menciona muchas cosas el texto como que en su camino se encuentra con muchas personas, algunas le ayudan otras solo le estorban pero cada persona que se topa ayuda a formar a la persona que termina siendo y al finalizar su vida esta dispuesto a repetir la historia con sus hijos.

De el lado contrario, el relato cuenta la historia de otra persona que tiene el mismo sueño y que curiosamente recuerda todo el sueño a la perfección (por el bien de la trama otra vez) solo que esta vez el tipo o tipa no esta feliz con esto, es avaro y siente que las monedas no son suficientes para lo que el vale, en este punto del cuento nos damos cuenta que esta hablando de un argentino, la persona se despierta enojada y le reclama a sus padres, sus padres anonadados, primeramente porque su hijo se enojo por algo que paso en un sueño, osea en un sueño, y segundo porque se dan cuenta que no ha sabido valorar todos los sacrificios que ellos han hecho por él y ha crecido lleno de resentimientos y orgulloso, en el mal sentido; Esta persona se larga de la casa también y también conoce un montón de otras personas, se casa con alguien del sexo opuesto solo por interés y terminan teniendo relaciones sexuales y engendrando una familia, con el tiempo siente que nada de eso es suficiente para él, pero a medida que se acerca su muerte se va dando cuenta que se equivoco, mas que nada porque fue con un psicólogo, y termina regresando con sus padres para hacer las pases y comprende que las mismas "monedas" que intentaron darle sus padres en el sueño siempre fueron las monedas que el merecía.

El relato me pareció interesante, pero hasta ahí, no me fascino pero tampoco me disgusto, a esta historia no le cambiaría nada ya que así como esta es como el autor quiso que la historia se narrara, no tengo ningún derecho para modificar la obra de alguien mas que se nota que se esforzó mucho en hacer su trabajo.



Algoritmo de Bresenham y Algoritmo DDA | DIBUJAR UNA LINEA C++

INTRODUCCIÓN



Dibujar una línea puede parecer poca cosa pero cuando pasamos esta misma acción a programación esto se complica aún más, las computadoras piensan diferente que nosotros, sus conceptos tienen que ser más específicos si queremos, por ejemplo, dibujar una línea; Todo aquello que los humanos hacen casi por instinto a una computadora se le tiene que describir de la forma mas exacta posible, un humano solo dibuja una línea en la forma en la que el quiere al arrastrar un lápiz de un punto a otro sobre una superficie se dibuja una línea sin mas, pero para poder hacer esto en una computadora tenemos que definir el punto exacto de partida, el punto de llegada, la pendiente, el color, el tamaño de la ventana donde se va a crear la línea, el color del fondo y tal vez otras cosas más que estoy olvidando en este momento, a lo que quiero llegar es que algo tan nimio como dibujar un línea o punto se puede convertir en una tarea mas laboriosa en una computadora. Existen multitud de herramientas que nos van ayudar a llevar a cabo esta y otras acciones de graficación en la computadora pero en esta ocasión nos vamos a enfocar en OpenGL, una serie de librearías que definen un API en varios lenguajes de programación y a su vez vamos a ver como utilizar ciertos algoritmos previamente desarrollados para dibujar una línea utilizando esta herramienta: el algoritmo de Bresenham y el algoritmo DDA.

DESARROLLO


OpenGL (Open Graphics Library) es una herramienta que se utiliza para definir una interfaz para aplicaciones creadas en múltiples lenguajes, pueden utilizarse gráficos en 2D o en 3D por lo cual las posibilidades son casi infinitas; La biblioteca de OpenGL contiene 250 funciones que van desde dibujar puntos, líneas, triángulos hasta figuras mas complejas en 3D. Esta herramienta fue creada por la empresa Silicon Graphics Inc. y desde su creación los usos que se le han encontrado son de los más variados, al no ser un software en si ni tampoco un lenguaje de programación le da una amplia compatibilidad con muchos otros lenguajes de programación.


Algoritmo DDA (Algoritmo Analizador Diferencial Digital): Se trata de un algoritmo capaz de dibujar líneas que se basa en el cálculo del incremento de una variable “X” o en el incremento de la variable “Y”, con el objetivo de obtener los valores enteros correspondientes más próximos a la trayectoria de la línea que da la otra coordenada; Se utilizan sobre todo para dibujar líneas, triángulos y polígonos.

 

 

 







Algoritmo de Bresenham: El algoritmo de Bresenham se utiliza para el rastreo de líneas,  mediante cálculos incrementales con número enteros que se pueden adaptan para dibujar cirulos o curvas. Los ejes verticales sirven para mostrar las  posiciones de rastreo mientras que los horizontales identifican columnas de pixel; El algoritmo está dado por:

ANEXOS

Ejemplo del Algoritmo de Bresenham en C++ (CodeBlocks)
#define BLACK 0
#include <C:\GLUT\include\GL\glut.h>
#include <stdio.h>
void draw_pixel(int ix, int iy, int value)
{  glBegin(GL_POINTS);
    glVertex2i( ix, iy);
  glEnd();}
bres(int x1,int y1,int x2,int y2)
{
  int dx, dy, i, e;
  int incx, incy, inc1, inc2;
  int x,y;
  dx = x2 - x1;
  dy = y2 - y1;
  if(dx < 0) dx = -dx;
  if(dy < 0) dy = -dy;
  incx = 1;
  if(x2 < x1) incx = -1;
  incy = 1;
  if(y2 < y1) incy = -1;
  x=x1;
  y=y1;
  if(dx > dy)
    {
      draw_pixel(x,y, BLACK);
      e = 2*dy - dx;
      inc1 = 2*( dy -dx);
      inc2 = 2*dy;
      for(i = 0; i < dx; i++)
      { if(e >= 0) {
            y += incy;
            e += inc1;
         }
         else e += inc2;
         x += incx;
         draw_pixel(x,y, BLACK);
      }}
   else
   { draw_pixel(x,y, BLACK);
      e = 2*dx - dy;
      inc1 = 2*( dx - dy);
      inc2 = 2*dx;
      for(i = 0; i < dy; i++)
      {if(e >= 0) {
           x += incx;
           e += inc1; }
        else e += inc2;
        y += incy;
        draw_pixel(x,y, BLACK);
    }} }
void display()
{glClear(GL_COLOR_BUFFER_BIT);
    bres(200, 200, 100, 100);
    glFlush();}
void myinit()
{
    glClearColor(1.0, 1.0, 1.0, 1.0);
    glColor3f(1.0, 0.0, 0.0);
    glPointSize(1.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(0.0, 499.0, 0.0, 499.0);
}

void main(int argc, char** argv)
{
/*  Inicializacion GLUT estándar*/
    glutInit(&argc,argv);
    glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(500,500); /* ventana 500x500 pixeles */
    glutInitWindowPosition(0,0); /* coloca la ventana de despliegue en esq. sup. izq */
    glutCreateWindow("Bresenham's Algorithm"); /* título de la ventana*/
    glutDisplayFunc(display); /*llama a la funcion display cuando se abre la ventana */
    myinit(); /* fija o establece los atributos */
    glutMainLoop(); /* entra a un ciclo de evento */
}

Pantallas de Ejecución


Ejemplo Algoritmo DDA C++ (CodeBlocks):
#include <dos.h>
#include <stdio.h>
#include <graphics.h>
#include <math.h>
void DDA (int x1,int y1,int x2,int y2)
{
   float ax,ay,x,y,luz;
   int i;
   if(abs(x2-x1)>=abs(y2-y1))
   luz=abs(x2-x1);
   else
   luz=abs(y2-y1);
   ax=(x2-x1)/luz;
   ay=(y2-y1)/luz;
   x=(float)x1;
   y=(float)y1;
   i=1;
   while(i<=luz)
   {
        putpixel((319+floor(x)),(239-floor(y)),9);
        x=x+ax;
        y=y+ay;
        i=i+1;
   }}

Pantallas de Ejecución


CONCLUCION


Dibujar una línea conlleva mucho más lo que se puede percibir al inicio, hay tantas cosa que se deben de considerar para poder llevar esta tarea a cabo correctamente, a pesar de que al hacerlo por computadora parece más laborioso también es cierto que es mucho más preciso y exacto que hacerlo a mano alzada.  Aunque en un principio pareciera que el algoritmo de Bresenham y el algoritmo DDA hacen lo mismo la verdad es que son más diferentes de lo que cualquiera podría pensar, primeramente el algoritmo de Bresenham además de poder utilizarse para líneas rectas también parece ser capaz de generar líneas curvas, algo que el algoritmo DDA no parece ser capaz de hacer, por otro lado mientras que uno se enfoca en dibujar una línea lo más delgada posible el otro va más por generar líneas de forma más rápida.  Con todo esto en mente uno no puede sino solo ver las posibilidades que estas herramientas son capaces de ofrecer acompañados de las herramientas que la librería de OpenGL tiene también.


REFERENCIAS


Estructura de datos 0911005, Graficación.
21 de Febrero del 2012
http://graficaciondanielnavarroleanos.blogspot.mx/2012/02/algoritmo-dda-para-generacion-de-lineas.html
31 de agosto del 2015

Anónimo, Analizador Diferencial Digital (algoritmo gráfico)/ Wikipedia
4 de Junio del 2011
https://es.wikipedia.org/wiki/Analizador_Diferencial_Digital_(algoritmo_gr%C3%A1fico)
31 de agosto del 2015

Unklet0m, Algoritmo de Bresenham/Wikipedia
14 de Febrero del 2011
https://es.wikipedia.org/wiki/Algoritmo_de_Bresenham
31 de agosto del 2015

David Blanchard, ¿Qué es OpenGL?/ DAVID BLANCHARD SPACE
24 de Febrero del 2013
https://blanchardspace.wordpress.com/2013/02/24/que-es-opengl/
31 de agosto del 2015

Yan Sandoval Verjel, Primitivas Gráficas en OpenGL [Codigo en C++], (Linea DDA, Linea Bresenham, Circunferencia, etc)
25 de Septiembre del 2012
http://xcodigoinformatico.blogspot.mx/2012/09/primitivas-graficas-en-opengl-codigo-en.html
31 de agosto del 2015



30 de agosto de 2015

Fundamentos de Red | UNIDAD 01

Unidad I Fundamentos de red.

1.1 Concepto de red, su origen.

El concepto de red trata sobre un conjunto de elementos que están interconectados, permitiendo así que puedan circular otros elementos por estos “nodos” por medio de distintos protocolos; En términos de una red de computadora estos nodos pueden ser desde equipos de cómputo hasta otro tipo de periféricos que sirven para darle una forma a la red, las redes informáticas nacieron como una necesidad de crear una comunicación entre distintos equipos de cómputo, ya sea por medio de cables, por medio pulsos u ondas invisibles para la vista, y como su nombre lo indica estas redes tienen como elemento de transmisión la información electrónica dividida en paquetes de bits(y sus siguientes variaciones) .


El origen de las redes informáticas se sitúa en la década de los años 60, la primera red de computadoras en la historia fue creada en el Reino Unido y años mas tarde en 1960 esta tecnología llego a Estados Unidos en el proyecto ARPA lo que dio el comienzo de ARPANET (Advanced Reseach Projects Agency Network), proyecto militar que tenía como meta crear una comunicación entre diferentes equipos de cómputo,  el ARPANET se seguiría desarrollando a lo largo de los años para finalmente pasar a llamarse Internet

1.2 Clasificación de redes.

 1.2.1 De acuerdo a su Tecnología de interconexión.

LAN/ Red de Área Local:  De carácter privado, son redes utilizadas para conectar equipos de cómputo en un bloque cerrado, generalmente utilizadas en empresas como centros educativos u oficinas de trabajo en donde se maneje información exclusivamente de la misma empresa

MAN/ Red de Área Metropolitana: Es igual que una red de área local solo que con una extensión territorial mayor, actualmente son poco usadas.


WAN/ Red de Área Amplia: Son redes de computo ocupan un espacio bastante extenso, utilizan maquinas llamadas hosts  dedicadas a ejecutar los programas de sus usuarios, estas a su vez están conectados otros hosts que mueven datos entre ellos mismos.

 1.2.2 De acuerdo a su tipo de conexión.

Conexiones físicas: Son aquellas redes que transmiten información de forma directa, están definidas por los materiales con los que se hagan que van desde cables hasta satélites, además de por la topología que se use y el método usado para transmitir información.


Conexiones Lógicas: Redes que permiten enviar información a programas o aplicaciones informáticas, están creadas basándose en protocolos de red que permiten compartir información entre aplicaciones relacionadas con computadoras, por ejemplo la conexión que hay entre un equipo de cómputo y una  impresora.

 1.2.2.1 Orientadas.
También llamados conmutados por circuito, son redes que primero establecen una conexión con el receptor e inmediatamente después comienzan a transferir datos en forma de paquetes que se transforman secuencialmente a través de un circuito físico o virtual.

 1.2.2.2 No orientadas.
Son redes en las que cada paquete enviado es direccionado por separado hacia destinos diferentes, esto puede ocasionar una desorganización de la cual es encargada la capa de transporte para poder ordenarlos y conseguir así una transmisión integra del paquete.


1.2.3 De acuerdo a su relación.

 1.2.3.1 De Igual a Igual.
(Peer to peer),  establece que todos los elementos que sirvan como nodos en la red puedan actuar como “cliente” o “servidor” al mismo tiempo, eliminando así la necesidad de un ordenador central; Son usadas en oficinas pequeñas o para uso doméstico.

 1.2.3.2 Cliente - Servidor.
Al contrario que las redes de igual a igual, este tipo se basa en un equipo “servidor” que cumple las peticiones de otro equipo “cliente”, muy útil en sistemas operativos multiusuario que estén distribuidos en una red. La capacidad de procesamiento se reparte en las computadoras que actúan como “clientes” y “los servidores”; La diferencia de jerarquías entre cliente y servidor se da solo de forma lógica, siendo los equipos utilizados bastante parecidos. Este tipo de red se utiliza en sitios web con servidores de todo tipo, desde servidores de correo hasta servidores de archivos.



1.3.1 Descripción del Modelo OSI
El modelo OSI consta de 7 capas ordenadas de la siguiente forma:
·         Aplicación
·         Presentación
·         Sesión
·         Transporte
·         Red
·         Vínculo de datos
·         Física
Capa de Aplicación: Actúa como una ventara para los usuarios y los procesos de las aplicaciones para poder generar un acceso a los servicios de red, las funciones mas utilizadas de esta capa son acceso a archivos remotos, uso compartido de recursos, acceso a impresoras remotas y mensajería electrónica.
Capa de Presentación: Esta capa da formato a los datos que son presentados en la capa de aplicación, actuando como un traductor entre los datos de la capa de la aplicación a un formato común en la estación  emisora; Entre las funciones que posee se encuentra la conversión de código de caracteres, conversión de datos, compresión y cifrado de datos.



Capa de Sesión: Permite generar sesiones entre procesos que se ejecutan en diferentes equipos; La funciones que posee son las de establecer, mantener y finalizar sesiones.
Capa de Transporte: Libera a las capas superiores de las funciones de transferencia de datos. Establece protocolos que sirvan para enviar la información de un punto a otro, las funciones que proporciona son la segmentación, confirmación y control de mensajes.
Capa de Red: Esta capa controla el funcionamiento de la subred, decidiendo que ruta de acceso se debe tomar por los datos que transiten por ella, la prioridad de pueden tomar los servicios; Esta capa proporciona el control del enrutamiento, el control de tráfico en la subred, la fragmentación de la trama, asignación de direcciones lógicas y físicas y cuentas de uso de subred.
Capa de Vínculo de datos: Esta capa se encarga de proporcionar una transferencia de datos sin errores de tramas entre diferentes equipos a través de una capa física; La capa proporciona establecimiento y finalización de vínculos, control de tráfico de tramas, secuenciación de tramas y confirmación de trama.

Capa de Física: La capa física es la mas baja del modelo OSI, se encarga de la transmisión y recepción de secuencias sin estructurar de bits a través de un medio físico; Esta capa proporciona codificación de datos, lo cual quiere decir que modifica el modelo de señal binario que utiliza el quipo para acomodar mejor las características del aspecto físico y ayuda a la sincronización de bits y trama.


1.3.2 Proceso de encapsulado de datos.
Al enviar datos por una red es necesario un protocolo que sirva para poder lograr con existo que la información que sale del emisor sea la misma que recibe el recepto. El protocolo que se sigue tiene los siguientes pasos:
1.- Crear datos
2.- Empaquetar datos para su envió
3.- Agregar la dirección de red IP al encabezado
4.- Agregar el encabezado y la información final de la capa de enlace de datos.

Crear datos: Al enviar información esta misma es convertida en datos que sean capaces de recorrer la red por la cual se va a enviar.

Empaquetar datos para su envió: Una vez creados los datos se empaquetan, esto se logra al segmentar la información a enviar en paquetes.

Agregar la dirección de red IP  al encabezado: Los datos que se quieren enviar se colocan en un datagrama que contiene un encabezado con las direcciones lógicas de origen y de destino.

Agregar el encabezado y la información final de la capa de enlace de datos: Los equipos conectados ingresan un paquete dentro de una trama, la cual permite conectarse al siguiente dispositivo conectado a la red, por lo que cada dispositivo que está en la ruta de red que se usara requiere un entramado para poder conectarse al siguiente dispositivos, la trama a su vez se convierte en un patrón de bits para poder ser transmitidos.

1.4 Topologías de redes.

Una topología de una red es una forma de clasificar las redes según su distribución geométrica, la cual es formada por sus nodos o computadoras que la componen.

Red bus: Es una red que tiene la característica de tener un único canal de comunicación central que luego se conecta a sus nodos, por lo que la red tiene a todos sus nodos conectados de forma directa a un único enlace y no existe una conexión entre ellos mismos.

Red estrella: Es un topología en la cual los equipos están conectados a un punto central y todas la comunicaciones  que puedan surgir tienen que pasar forzosamente por este punto, es utilizada en redes locales en las cuales se utiliza un router, un switch o un hub que hace la función de nodo central.

Red en anillo: Es un tipo de red en la cual cada equipo está conectado al siguiente dando como resultado que el último equipo termine conectado al primero. Cada elemento de la red tiene un repetidor que sirve para pasar la señal al siguiente elemento, esto genera cierta vulnerabilidad ya que si un nodo llegase a fallar lo harán también todos los demás; Existe otra versión de la red anillo llamada red anillo doble, en la cual la información puede ser enviada en ambas direcciones, lo que provoca que si un nodo llega a fallar no afecte a toda la red.

Red en malla: Es una topología en la que cada nodo está conectado a todos los nodos pertenecientes a la red, de esta manera es posible enviar la información de un punto a otro por diferentes caminos, lo que genera que si un nodo falla se pueda reemplazar fácilmente sin afectar a toda la red.


Red en árbol: Una red con la topología en árbol tiene a todos los elementos colocados en forma de árbol, esta red tiene un nodo de enlace troncal el cual es comúnmente ocupado por un hub o switch, desde este nodo se ramifican los demás nodos; Es una especie de variación de la red bus ya que se comparte el mismo canal de comunicación. La topología de árbol también puede verse como una combinación de varia redes en forma de estrella, debido a que ambas son similares en cuanto a tener un nodo central que distribuye la comunicación, solo que la topología de árbol parte de un punto raíz que a su vez se divide en otros nodos.

24 de agosto de 2015

Programa en C++ Numeros Pares




include <stdio.h>
include <stdlib.h>
int main () {
   int numero;
   printf ("Ingrese el valor de numero: ");
   scanf ("%d", &numero);
   if(numero%2==0)
       printf ("\n***El numero es par\n");
   else
       printf ("\n***El numero es impar\n");
   putchar ('\n');
   system("pause");
   return EXIT_SUCCESS;
}

EJEMPLOS: http://informaticos53.webcindario.com/programacion.htm