miércoles, 26 de octubre de 2016
Hilos / Threads
En la programacion en muchas ocaciones se es necesario tener dos o mas procesos de manera simultanea, a esto se le llama programacion concurrente, esto se puede lograr de dos formas, se pueden tener varios cpus o nucleos que procesen la informacion de manera paralela o a traves del sistema operativo se puede compartir el tiempo del cpu y hacer que este procese la informacion de manera escalonada, java de manera interna te permite hacer esto ultimo utilizado una clase que se llama thread y una interfaz que se llama runnable, esta interfaz te permite crear una clase que va a ser procesada de forma "paralela " al proceso main, de esta forma podras hacer varias operaciones de manera simultanea. Programar el hilo de primera instancia no es muy complicado, ya que solo necesitas agregar un "implements Runnable" alado del nombre de tu clase, y despues implementar el metodo abstracto de void run() y adentro de este poner todas las operaciones que quieres que haga tu hilo cuando sea llamado, y en el void solo se instancia la clase y se corre el metodo run.Las cosas se empiezan a complicar cuando se tiene que tomar en cuenta el hecho de que si quieres modificar una variable en los distintos subprocesos, estos tienen que estar sincronizados de alguna forma para que la variable se cambie de manera correcta, de lo contrario, puede que se hagan las operaciones en un orden distintos al deseado.Tambien los hilos deberan de estar sincronizados ya que en algunas aplicaciones se necesita que un subproceso termine o te arroje un valor antes de que inicie el otro. Los hilos no son las unicas implementaciones que existen en java para la programacion concurrente, pero son las mas faciles de implementar ademas de que son las que utilizan menos recursos en el sistema, ya que los procesos hijos en muchos casos instancian parametros del proceso padre a diferencia del hilo el cual no depende tanto del entorno en donde se esta corriendo.Se puede definir un hilo como una tarea o proceso que esta ocurriendo de manera simultanea a otro.
La ventaja de utilizar procesos concurrentes es como ya se ha dicho antes la posibilidad de realizar varias tareas de forma simultanea y la principal desventaja es la complejidad de implementarla.
domingo, 18 de septiembre de 2016
Modelo OSI
Introduccion
Un protocolo es un conjunto de reglas que se utilizan para poder realizar algo. En este caso un protocolo de comunicacion es aquel conjunto de reglas que sigue tanto el receptor como el transmisor para poder establecer la comunicacion.Antes de que se creara el modelo OSI, todas las redes eran de indole gubernamental (como ARPANET o CYCLADES) o desarrollado por distintas compañias de hardware(como SNA de IBN o DECnet).Esto ocasiono que si se queria montar una red, todos los componentes en ella tenian que ser de la misma marca, y conectar dos redes se volvia muy complicado, ya que tenias que tener maquinas que tuvieran multiples protocolos para poder conectarse.Es por esta razon que en 1973 en Sydney, durante una reunion de la ISO, se decidio que se iba a crear un protocolo que corriera en el hardware de todas las compañias. Durante el periodo de desarrollo del protocolo, TCP/IP se volvio muy popular para interconectar redes de distintas compañias. Mientras que en las redes locales Ethernet y Token ring se volvieron prominentes.En el año de 1980 la ISO publico el modelo OSI(Open System Interconnection).
Desarrollo
El modelo OSI consiste de 7 capas, entre cada capa se tiene una interfaz que permite la comunicacion entre capas.Cada capa agrega headers al mensaje para que de esta forma las capas del receptor puedan distinguir las partes que consisten el mensaje.
Capa 1 o Fisica
Es el medio fisico(coaxial,pares trenzados,guias de onda,fibra optica) por el que va a viajar la informacion y la forma en que lo va a hacer.Garantiza tambien las caracteristicas de los materiales que se van a utilizar y y los componentes electricos(niveles de tension), define como se va a hacer el establecimiento, mantenimiento y liberacion del enlace fisico, maneja las señales electricas en el medio de transmision,garantiza la conexion.
Capa 2 o Capa de enlace
Se divide principalmente en 2:LLC:Es la que se dedica a poner el mensaje en el medio, tambien se dedica a hacer el mutiplexeo para que varios protocolos de red coexistan en un mismo cable. MAC:Se dedica a hacer que los distintos dispositivos de red se pongan de acuerdo para poder coompartir el medio de comunicacion.
Capa 3 o Capa de red
Se encarga de crear la ruta por la cual los datos van a viajar, aun cuando estos dos no esten conectados de manera directa.Las unidades de informacion se denominan paquetes y el principal protocolo utilizado en esta capa es el IP.Los routers son los que se encargan de hacer este trabajo.
Capa 4 o Capa de Transporte
Se encarga de segmentar y enumerar la informacion en paquetes, y despues se encarga de transportar los paquetes a traves de la red, sin importar en que red se encuentren tanto el receptor como el transmisor.Tambien reenvia cualquier paquete 0. que no haya llegado al receptor. En esta capa existen dos protocolos principalmente UDP y TCP.Capa 5 o Capa de Sesion
Esta capa se encarga de mantener y controlar el enlace establecido entre dos computadoras que estan transmitiendo datos.Reanuda la conexion en caso de haber algun tipo de interrupcion y tambien es la que se encarga de autorizar o autenticar a los usuarios.Capa 6 o Capa de Presentacion
Se encarga de darle un formato a la informacion, tambien se puede utilizar para comprimir y cifrar la informacion.Capa 7 o Capa de Aplicacion
Es la que permite que las aplicaciones se comuniquen con las demas capas, funciona como una interfaz. Existen multiples protocolos para esta capa como los son el http,el ftp,smtp, etc. El usuario no interactua nunca con esta capa, las aplicaciones son las que interactuan con esta capa.Conclusion
El modelo OSI es un modelo de referencia que se ha utilizado para estandarizar como se va a establecer la conexion en una red.Sirve para establecer las distintas capas de esta conexion y los protocolos que se utilizan en cada una de estas.Tipos de redes/Topologia de redes
Introduccion
El termino red en informatica hace referencia a un conjunto de equipos y dispositivos conectados entre si, con el objetivo de transmitir datos para compartir recursos e informacion. Existen dos clasificaciones principales para las redes. La primera es en base a su tamaño o sea en la extension geografica que abarca la red. La segunda hace referencia a su arquitectura o a su estructura logica que es como estan conectadas las computadoras en la red. A esta ultima se le llama topologia.Clasificacio de redes en base a su extension
LAN
(Local Area Network) : Una red de area local es la interconexion de varios ordenadores y perificos. Su extension queda limitadamente a un entorno de hasta 200 metros, como el de un edificio de oficinas. Su aplicacion mas extendida es en la interconexion de estaciones de trabajo y ordenadores peersonales en fabricas, oficinas de trabajo, etc. con el fin de compartir recursos e intercambiar datos y aplicaciones.La tecnologia mas utilizada es Ethernet.MAN
(Metropolitan Area NetworK): Esta alcanza el area geografica de una ciudad o un municipio. Conecta varias redes de LAN cercanas geograficamente entre si a alta velocidad. Permite que dos nodos se comuniquen como si fueran parte de la misma red local.Esta compuesta por conmutadores o routers conectados entre si.Se utilizan dos buses de caracter unidirrecional independietes entre si.WAN
(Wide Area Network): Estas redes cubren una extension geografica de 100 km hasta de 1000km, dando el servio a un pais o continente. Coomparadas a las demas redes, la velocidad de transimision en estas se ve afectada drasticamente. Las WAN fucnionan a traves de routers.La WAN mas conocida es el internet. Muchas WAN son construidas por y para el uso de compañias o empresas particulares y por los proveedores de Internet.PAN
(Personal Area Network) : Redes conformadas por una pequeña cantidad de equipos establecidos a una distancia corta entre si. Se mantiene una comunicacion directa.WLAN
(Wireless Local Area Network): Tiene las mismas caracteristicas y funcionamiento de una LAN con la unica diferencia siendo que el medio por el que se transmiten los datos es inalambrico haciendo uso de las ondas de microondas. Estas surgieron con el auge de los dispositivos moviles.VLAN
(Virtual Local Area Network) : Es un grupo de dispositivos que se configuran para que se comuniquen como si estuvieran conectados sobre el mismo segmento de cable cuando en realidad se encuentran localizados en distintos segmentos de una LAN. Se basan en conexiones logicas en vez de fisicas.Toplogias
La topologia o forma logica de una red se define como la cadena de comunicacion que los nodos que conforman una red usan para comunicarse . Es la distribucion geometrica de las computadoras conectadas.Red Bus
Se tiene un unico canal de comunicacion, el cual es denominado bus, al cual son conectados los diferentes dispositivos. De esta forma todos los dispositivos comparten el mismo canal para comunicarse entre si. De manera fisica todos los hosts estan conectados a un cable comun, por lo que se pueden comunicar de forma directa.Si el cable es dañado, todos los hosts en la red quedan incomunicados. Al extremo del cable se coloca una resistencia de acople denominada terminador que indica que no hay mas ordenadores en el extremo.El bus es pasivo ya que no se generan señales en cada nodo.Ventajas
- Facil Implemetancion y crecimiento
- Economica
- Simplicidad de la arquitectura
- Longitud de canal limitada
- Si se tiene un problema en el canal, toda la red queda degradada.
- Perdida de desempeño a medida que la red crece.
- Alta perdida de transmision debido a colision de mensajes.
Red Estrella
Una red de estrella es una red en la cual las estaciones de trabajo estan conectadas con un punto central, normalmente denominado conecentrador. Todas las comunicaciones realizadas en la red tienen que pasar por este punto . Se tiene normalmente los medios para prevenir que haya eco en el nodo central. Principalmente se utilizan en las redes de area local haciendo uso de los rotuers, switches y hubs.Ventajas
- Permite que los nodos se comuniquen entre si de manera conveniente.
- Facil implementacion.
- Si el nodo central falla, toda la red se desconecta.
- Es costosa en comparacion a una de bus, debido a la cantidad de cable que se necesita.
- El cable viaja por separado del conectrado a cada computadora.
Anillo
Topologia de red en que cada estacion de trabajo esta conectada a la primera y la ultima esta conectada a la primera. Cada estacion tiene un receptor y un emisor el cual funcionara como repetidor, que pasa la señal a la siguiente estacion. En este tipo de red la comunicacion se da a traves del paso de un token o testigo. De esta forma se evitan las eventuales perdidas de informacion debido a colisiones.Cabe mencionar que si alguno de los nodos en la red deja de funcionar, se pierden la comunicacion en toda la red.Se tiene tambien la variente del anillo doble en donde los datos viajan en ambas dirrecciones. Esta configuracion permite que la red sea tolerante a fallos.Ventejas
- Facil implementacion, simplicidad de diseño y escalabilidad.
- Longitud de canal limitada.
- Se degrada el canal a medida que la red crece.
Malla
Todos los nodos de la red estan interconectados con todos los demas nodos de la red, de tal forma que si uno de los cables falla, se pueda usar otro camino para establecer la conexion.En este tipo de red no se es necesario tener un nodo central. La red de malla puede funcionar incluso cuando alguno de los nodos falla o cuando la conexion falla, haciendola un tipo de red muy comfiable.Aunque su confiabilidad aumenta de manera muy drastica, de la misma forma lo hace el costo de implementacion debido a la cantidad de cableado que se necesita, por lo cual se ha vuelto una sred muy utilizada en wireless.Se puede utilizar en conjunto con otras topologias para formar un hibrdio.
Arbol
Se puede visualizar como una coleccion de redes de anillo interconectadas una con otro con un tronco principal.De este tronco se ramifica todo lo demas.En este tipo de red, si algun segmento de la red falla no necesariamente toda la red queda inutilizada.
Conclusion
Existen diversas clasificaciones para las redes, las dos importantes siendo en base a su tamaño/alcance y la segunda en su forma geometrica.De las primeras se tienen LAN,WAN,PAN,MAN y de las segundas las mas utilizadas son Bus,Anillo,Estrella,Arbol,Malla,Etc.
Referencia
Computer Networks A. Tanenbaum Computer Networking : Principles,Protocols and Practice Olivier Bonaventuresábado, 17 de septiembre de 2016
Sistemas distribuidos
Introduccion
La computadora ha sufrido grandes cambios desde sus primeros dias, desde que existian las grandes computadoras que solo te permitian hacer algunas tareas especificas y a las que solamente tenian acceso las grandes organizaciones, hasta las computadoras actuales, que tienen la misma capacidad que los primeros y que ya cada vez estan mas introducidos en nuestra vida cotidiana. Los cambios se pueden atribuir a dos cambios que ocurrieron en los años 70: 1.- El desarrollo del micropocesador, que redujo el tamaño y costo de las computadoras, y de estar forma aumento el alcance de estas. 2.- El desarrollo de las redes de area local y de las comunicaciones que permitieron conectar computadoras para transferir datos a alta velocidad.Sistemas distribuidos
'Sistemas cuyos componentes hardware y software, que se encuentran en computadoras conectadas en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo. Se establece la comunicacion mediante un protocolo establecido' .Caracteristicas :
Concurrencia : La concurrencia es la capacidad que tiene un sistema de realizar mas de una accion de forma simultanea. O sea los recursos se pueden utilizar simultaneamente por los usuarios. Fallos independientes: Cada componente del sistema puede fallar de manera independiente y los demas continuar realizando su trabajo. Estos significa que si un componente del sistema falla, el sistema en conjunto puede continuar trabajando sin ningun problema. Carencia de reloj global: La coordinacion de transferncia de mensajes entre los componentes no tiene una temporizacion general, si no que esta distribuida en los componentes. Esto significa que cada microprocesador de cada unos de los componentes es independiente el uno del otro y tiene su propio reloj interno.Ventajas:
Economicamente es mucho mas barato añadir servidores y clientes cuando se quiere aumentar la potencia. El trabajo en conjunto. Tienen mayor confiabilidad, si una de las maquinas llegara a faltar o fallar, el sistema no se veria afectado en gran medida. Pueden crecer de manera incremental, añadiendo procesadores el sistema aumenta su pontencia en base a las necesidades del cliente. Se pueden compartir recursos que de otra forma saldrian muy costosos.Desventajas:
La principal desventaja de los sistemas distribuidos son el software, el diseño y la implantacion, ya que se generan muchos inconvenientes. Se pueden llegar a dar perdidas de mensajes o saturacion en la red, y tambien la seguridad se puede ver compormetida.Conclusion
En conclusion los sistemas distribuidos se pueden definir como un red de computadoras que se comunican y coordinan para hacer una accion en especifico. Tienen como caracteristicas principales la concurrencia, los fallos independientes y la carencia de un reloj global. Presentan numeros ventajas contra los sistemas centralizados, como en el aspecto economico, escalabilidad, confiabilidad, etc. Y en cuanto a desventajas se tienen el trafico,la perdida de mensajes y la implantacion. Aunque con estos se pueden combatir con una buena administracion.Referencias :
http://www.tamps.cinvestav.mx/~vjsosa/clases/sd/sistemas_distribuidos_panorama.pdf
Suscribirse a:
Entradas (Atom)


