martes, 28 de mayo de 2013
Conclusiones Finales
Conclusión exposiciones
con estas exposiciones cada uno de nosotros experimentó la labor de interiorizar cada
concepto una tarea nada fácil ya que cada uno de los grupos le fueron asignados temas con un
nivel considerable de complejidad, sobre todo conceptos muy técnicos que requieren de gran
esfuerzo para poderlos comprender. Cada uno de nosotros como expositor experimento en un
sentido lo que es dar conceptos y que dichos conceptos se han comprendidos por la audiencia
una labor compleja pero que contribuye para un crecimiento personal ya que de una forma
aporta en el desarrollo de herramientas de expresión oral . De una manera muy personal creo
que una buena manera de apropiarse de un tema,es una prueba que enriquece el aprendizaje, y
aprender es crecer:
Conclusion del Curso
de manera general cabe resaltar el trabajo realizado por el profesor,ya que a través de una
metodología de enseñanza mediante el uso de herramientas tecnológicas el uso del blog que
nos permite participar de manera activa dinámica e innovadora de los contenidos de la materia.
es una metodología interesante y atractiva.Personalmente creo que la clase fue muy
participativa durante el semestre y que los temas abordados en cada clase quedaron
plasmados por cada uno de nosotros los estudiantes en una herramienta tan popular como lo
es el blog.
lunes, 27 de mayo de 2013
Conjunto Residente
Con memoria virtual paginada no es necesario y, puede no ser posible, traer todas las páginas de un proceso a la memoria principal para preparar su ejecución. El sistema operativo debe decidir cuantas paginas traer, es decir, cuanta memoria principal asignar a un proceso. Aquí entran en juego varios factores:
*Cuanto menor es la cantidad de memoria asignada a un proceso, mayor es el número de procesos que pueden estar en la memoria principal. Esto aumenta la probabilidad de que el sistema operativo encuentre al menos un proceso Listo y, por lo tanto, reduzca el tiempo perdido en el intercambio.
*Si en la memoria principal hay un número relativamente pequeño de paginas de un proceso entonces a pesar del principio de cercanía, el porcentaje de fallos de pagina será algo mayor.
*La asignación de memoria adicional a un proceso en particular no tendrá efectos notables en el porcentaje de fallos de pagina para ese proceso debido al principio de cercanía.Con estos factores en los sistemas operativos actuales se pueden encontrar con dos tipos de políticas. La política de asignación fija otorga a cada proceso un número fijo de paginas en las que ejecutar. Con una política de asignación fija, cada vez que se produce un fallo de pagina en la ejecución de un proceso, se debe reemplazar una de las paginas de dicho procesador la pagina que se necesite.La política de asignación variable permite que el núcleo de marcos asignados a un proceso cambie a lo largo de su vida.La política de asignación variable parece ser la mas potente. La dificultad de este método esta en que requiere que el sistema operativo evalué el compartimiento de los procesos activos.
.......SOFTWARE DEL SISTEMA OPERATIVO
Usada menos recientemente (LRU, Last Recently Used): reemplaza la página de memoria que no ha sido referenciada desde hace más tiempo. Debido al principio de cercanía esta debería ser la página con menor probabilidad de ser referenciada en un futuro cercano. El problema de este método es su dificultad de implementación. Una solución sería etiquetar cada página con el momento de su última referencia; tanto para instrucciones como datos. Este esquema produce sobrecarga
Primera en entrar, primera en salir (FIFO, First In First Out): trata los marcos asignados a un proceso como un buffer circular y las páginas se suprimen de la memoria según la técnica de Round-Robin. Lo que se necesita es un puntero que circule a través de los marcos del proceso. Esta es una de las políticas de reemplazo más sencillas de implementar. Se reemplaza la página que a estado más tiempo en la memoria, teniendo como desventaja que habrá regiones del programa o de datos que son muy usadas a lo largo de la vida de un programa por lo cual estas páginas se cargarán y expulsarán repetidas veces.
Reloj (Clock): requiere asociar un bit adicional a cada marco, denominado ‘bit de uso’. Cuando se carga una página por primera vez el bit de uso se pone a cero. Cuando se hace referencia a la página posteriormente, el bit de uso se pone a uno. Para el algoritmo de reemplazo de páginas, el conjunto de marcos candidatos a ser reemplazados se considera como un buffer circular con un puntero asociado. Al reemplazar una página, se hace que el puntero señale a la primer puntero del buffer. Cuando llega el momento de reemplazar una página, el S.O. recorre el buffer buscando un marco con el bit de uso a cero. Cada vez que se encuentra un marco con el bit de uso a uno, lo pone a cero. Si algún marco del buffer tiene el bit de uso a cero, al comienzo de la búsqueda, se elige para reemplazar el primero que se haya encontrado. Si todo los marcos tienen el bit de uso a uno, el puntero dará una vuelta completa al buffer, poniendo todos los bits a cero y se detendrá en la posición inicial, reemplazando la página de dicho marco.
SOFTWARE DEL SISTEMA OPERATIVO
SOFTWARE DEL SISTEMA OPERATIVO
El diseño del gestor de memoria en un sistema operativo depende de tres áreas fundamentales de decisión:
Si se emplean o no técnicas de memoria virtual.
El uso de paginación, segmentación o ambas.
Los algoritmos empleados para los problemas de la gestión de memoria
.
Políticas de Ubicación
Tiene que ver con determinar dónde va ha residir una parte de un proceso en la memoria principal. Es un aspecto importante del diseño en un sistema puro de segmentación.
Como posibles alternativas se tiene:
-Políticas del mejor ajuste.
-Políticas del primer ajuste
-entre otras.
Políticas de Remplazo
Trata de la selección de la página a reemplazar en la memoria principal cuando se debe cargar una nueva página. Esto resulta difícil de explicar por lo que se debe tener en cuenta algunos conceptos interrelacionados como ser:
- El numero de marcos de página a asignar a cada proceso activo.
-Si el conjunto de páginas a considerar para el reemplazo debe limitarse a las del proceso que provocó el fallo de página o abarcar todos los marcos de página situados en la memoria principal.
-De entre el conjunto de páginas consideradas, cuál es la página específica que debe elegirse para el reemplazo.
Algoritmos basicos
Los algoritmos que se emplean para seleccionar una página a reemplazar son las siguientes:
Óptima: selecciona para reemplazar la página que tiene que esperar más tiempo hasta que se produzca la referencia siguiente. Esta política genera el menor número de fallos de página. Este algoritmo resulta imposible de implementar ya que requiere que el S. O. Tenga un conocimiento exacto de los sucesos futuros.
....Continuamos Paginacion Segmentacion
Segmentación de Memoria.
La Segmentación de memoria es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su división lógica;llevándose a cabo una agrupación lógica de la información en bloques de tamaño variable de nominados segmentos.
Cada uno de ellos tienen información lógica del
programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una colección de segmentos, que generalmente reflejan la división lógica del programa
Objetivos
Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a cambios y
recopilaciones, sin afectar por ello al resto del programa.
• Estructuras de datos de largo variable: donde cada estructura tiene su propio tamaño y este puede variar.
• Protección: se puede proteger los módulos del segmento contra accesos no autorizados.
• Compartición: dos o más procesos pueden ser un mismo segmento, bajo reglas de protección; aunque no sean propietarios de los mismos.
• Enlace dinámico entre segmentos: puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa. Los enlaces se establecerán solo cuando sea necesario.
Paginación y Sementacion
Paginación :Cuando ejecutamos un programa este puede caber o no en la memoria física, si se da la situación de que el proceso es mayor que la memoria, el SO se encarga de mantener en memoria las partes del programa que estamos usando y el resto en el disco duro.
Pues bien, la técnica llamada ‘paginación’ se encarga del intercambio de información entre nuestra memoria y el disco duro cuando tiene que pasar información de la memoria al disco duro debido a lo comentado antes, que no hemos cargado el programa entero.
El espacio de direcciones virtuales se divide en unidades llamadas “páginas”. Las unidades correspondientes en el disco duro se denominan “marcos de página”. Las páginas y los marcos tienen el mismo tamaño.
Fallo de pagina: es lo que se conoce cuando una pagina no se encuentra referenciada con ninguna dirección física de la memoria
cuando se produce un fallo de página, el SO examina todas las páginas y las divide en cuatro grupos dependiendo del estado de sus bits R (página solicitada) y M (página modificada).
Existen diversos algoritmos para decidir que página desalojar, los cuales son…
NRU (Not Recently Used, No Usada Recientemente), se desaloja al azar una página de Clase baja que no esté vacía. Este algoritmo presupone que es mejor desalojar una página modificada pero no solicitada en un tic de reloj (20 ms), a una limpia que se esté usando mucho. NRU es fácil de entender, tiene una implementación aceptable y un desempeño eficiente, aunque no es óptimo.
FIFO (First In, First Out – primero en entrar primero en salir), el SO mantiene una lista de todas lás áginas existentes, desde la más antigua hasta la más nueva, cuando se produce el fallo, se desaloja la primera de a lista (la más antigua) y la nueva se coloca al final.
por nombrar algunos hay otros mas como son de tipo reloj, LRU.
Pues bien, la técnica llamada ‘paginación’ se encarga del intercambio de información entre nuestra memoria y el disco duro cuando tiene que pasar información de la memoria al disco duro debido a lo comentado antes, que no hemos cargado el programa entero.
El espacio de direcciones virtuales se divide en unidades llamadas “páginas”. Las unidades correspondientes en el disco duro se denominan “marcos de página”. Las páginas y los marcos tienen el mismo tamaño.
Fallo de pagina: es lo que se conoce cuando una pagina no se encuentra referenciada con ninguna dirección física de la memoria
cuando se produce un fallo de página, el SO examina todas las páginas y las divide en cuatro grupos dependiendo del estado de sus bits R (página solicitada) y M (página modificada).
Existen diversos algoritmos para decidir que página desalojar, los cuales son…
NRU (Not Recently Used, No Usada Recientemente), se desaloja al azar una página de Clase baja que no esté vacía. Este algoritmo presupone que es mejor desalojar una página modificada pero no solicitada en un tic de reloj (20 ms), a una limpia que se esté usando mucho. NRU es fácil de entender, tiene una implementación aceptable y un desempeño eficiente, aunque no es óptimo.
FIFO (First In, First Out – primero en entrar primero en salir), el SO mantiene una lista de todas lás áginas existentes, desde la más antigua hasta la más nueva, cuando se produce el fallo, se desaloja la primera de a lista (la más antigua) y la nueva se coloca al final.
por nombrar algunos hay otros mas como son de tipo reloj, LRU.
Memoria virtual y Principio de Cercania
MEMORIA VIRTUAL
La memoria virtual
es una técnica para proporcionar la
simulación de un espacio de memoria
mucho mayor que la memoria física de una máquina. Esta "ilusión"
permite que los programas se hagan sin tener en cuenta el tamaño exacto de la
memoria física.
La memoria virtual
también simplifica la carga del programa para su ejecución llamado reubicación,
este procedimiento permite que el mismo programa se ejecute en cualquier
posición de la memoria física.
En
un estado estable, prácticamente toda la memoria principal estará ocupada con
fragmentos de procesos, por lo que el procesador y el S.O tendrán acceso
directo a la mayor cantidad de procesos posibles, y cuando el S.O traiga a la
memoria un fragmento, deberá expulsar otro. Si expulsa un fragmento justo antes
de ser usado, tendrá que traer de nuevo el fragmento de manera casi inmediata.
Demasiados intercambios de fragmentos conducen a lo que se conoce como
hiperpaginación: donde el procesador consume más tiempo intercambiando
fragmentos que ejecutando instrucciones de usuario. Para evitarlo el S.O
intenta adivinar, en función de la historia reciente, qué fragmentos se usarán
con menor probabilidad en un futuro próximo.
principio de cercanía o PRINCIPIO DE LOCALIDAD que afirma que las referencias a los datos y el programa dentro de un proceso tienden a agruparse.
Particiones Fijas Y Dinamicas
Partición: Es el nombre que recibe cada una de las divisiones en una sola unidad física de almacenamiento de datos dándole a cada partición un propio sistema de archivo llamado formato, la gran mayoría de los sistemas operativos reconocen, utilizan y manipulan a una partición como un disco físico independiente sabiendo que están en un solo disco físico.
Particiones fijas:Con la creación de estas particiones se comienza a ver la multiprogramación, una partición fija por cada tarea, el tamaño de la partición se daba al arrancar el sistema cada partición se podía reconfigurar al volver encender o reiniciar el sistema. con estas particiones nos aparece la fragmentación interna.
ALGORITMO DE UBICACIÓN: Si se llega a tener alguna partición libre un proceso se puede cargar en esta y si se llega a tener todas las particiones llenas se saca un proceso que no esté listo para ejecutarse para que el proceso que se va a ejecutar pase a tomar su lugar dentro de la
partición.
Particiones dinámicas:Con esta partición, las particiones son variables en número y longitud, esto quiere decir que cuando se carga un proceso a memorial principal se le asigna el espacio que necesita en memoria y no más. Esta partición comienza siendo muy buena pero en el trascurso de uso deja un gran número de huecos pequeños en la memoria lo cual se le denomina fragmentación externa.
ALGORITMO DE UBICACION
Mejor ajuste: Elije el bloque de
tamaño más próximo al solicitado
Primer ajuste: Recorre la memoria
desde el principio y escoge el primer
bloque disponible que sea suficientemente grande
Siguiente ajuste: Es igual que el
primer ajuste con la diferencia que se deja un apuntador en el lugar en donde
se asignó el último hueco para realizar la siguiente búsqueda a partir de él.
martes, 16 de abril de 2013
Análisis
crítico clase sistemas operativos
las
clases son innovadoras, ya que utilizamos las herramientas tecnológicas de una manera interactiva, los temas se desarrollan de una
forma práctica atreves de
herramientas como son
Diapositivas, el uso del blog uso de
líneas de tiempo las cuales nos brindan la posibilidad de acceder a un sin número de
recursos web, cada uno de estos elementos contribuye a la construcción de todos y cada uno de los conceptos en cada
clase.
También
cabe decir que esta metodología genera en nosotros nuevas inquietudes y por lo tanto
conlleva a una investigación más profunda y por ende una mejor comprensión del tema.
Creo que el objetivo del profesor es desarrollar en cada estudiante un aprendizaje
autónomo y de tal forma que cada uno de
nosotros participe activamente en el proceso educativo.
Personalmente creo que la mejor forma de captar cada concepto de aprendizaje es la asociación de imágenes y contenido
multimedia y que mejor que participar en
la construcción de dichos elementos.
En
conclusión la clase ha resultado muy provechosa y participativa por parte de
nosotros como estudiantes cada actividad es una oportunidad con un grado de desempeño y de aprendizaje.
sábado, 13 de abril de 2013
Políticas de planificacion
No Preferente: Monopoliza el uso del procesador
Una vez que el proceso pasa al estado de Ejecución continua
ejecutando hasta que termina o se bloquea en espera de una E/S.
Preferente: Mejora los tiempos de respuesta
El proceso que se está ejecutando actualmente puede ser
interrumpido y pasado al estado de Listos por el sistema operativo.
Permiten dar un mejor servicio ya que evitan un proceso
puede monopolizar el procesador durante mucho tiempo.
política (FCFS).primero en llegar primero en ser atendido
Política No preferente
los procesos que entran en cola permanecen así hasta que
les toque su ejecución en el orden que entraron salen, política poco
eficiente ya que monopoliza el procesador.
política (Round robin)Turno Rotatorio
Politica preferente
perioiódicamente, se genera una interrupción de reloj.
Cuando se genera la interrupción, el proceso que está en ejecución se sitúa en
la cola de Listos y se selecciona el siguiente trabajo.
Utiliza un Quantum cantidad de tiempo el procesador asigna a cada proceso.
politica Primero el proceso más corto
(SPN, Shortest
Process Next), una política no apropiativa en la que se selecciona el
proceso con menor tiempo esperado de ejecución. Así pues, un proceso corto
saltará a la cabeza de la cola, sobrepasando a trabajos largos.
Menor tiempo restante
.La política del menor tiempo restante (SRT, Shortest Remaining Time) es propiativa del SPN, en la que el planificador siempre elige al proceso que le
queda menos tiempo esperado de ejecución. Cuando se añade un nuevo proceso a la
cola de Listos, puede quedarle un tiempo esperado de ejecución menor que al
proceso que está ejecutándose en ese momento. Por consiguiente, el planificador
puede apropiarse del procesador siempre que un proceso nuevo esté listo. Como
en el SPN, el planificador debe disponer de una estimación del tiempo de
proceso para poder llevar a cabo la función de selección, existiendo el riesgo
de inanición para procesos largos.
Planificacion
Propósitos de la planificación
Tiempo de respuesta es el tiempo transcurrido entre la
petición de un usuario y el tiempo de ejecución de un proceso.
Productividad que hace referencia a como aprovechar los
recursos
Eficiencia del procesador
Los tipos de planificación
Determina cuáles son los programas admitidos en el sistema
Controla el grado de multiprogramación
Cuantos más procesos se crean, menor es el porcentaje de
tiempo en el que cada proceso se puede ejecutar.
Planificación a Mediano Plazo
Forma parte de la función de intercambio se basa en la
necesidad de controlar el grado de multiprogramación.
Planificación a
Corto Plazo
También conocido como distribuidor
Es el de ejecución más frecuente
Se ejecuta cuando ocurre un suceso:
1. Interrupciones
de reloj es referente al quantum
2. Interrupciones
de E/S
3. Llamadas al
sistema operativo
4. Señales
lunes, 4 de marzo de 2013
domingo, 3 de marzo de 2013
Técnicas de Programación Sistemas Operativos
Monoprogramación
en mono programación el trabajo número 1 utiliza los
recursos del computador CPU, MEMORIA,IMPRESORA , TERMINAL, hasta que termina
su proceso y no permite que ningún otro programa utilice los recursos que se
encuentran disponibles en esos momentos, el trabajo 2 y 3 repiten el mismo
proceso, lo que deja ver que el tiempo de ejecución de los 3 programas es del doble del tiempo que en la multi programación
Multiprogramación
permite que múltiples los programas se ejecuten
simultáneamente aumentando el uso
evitando el tiempo de espera y optimizando la eficiencia de los dispositivos,
este proceso reduce el tiempo de ejecución de los tres trabajos en la mitad de tiempo que la que utiliza la monoprogramacion.
Estructuras Programacion
Secuencia
Unix
Tecnología Unix
Es una tecnología basada en un procesador de un solo núcleo.
El núcleo del sistema operativo Unix (llamado Kernel) es un programa escrito casi en su totalidad en lenguaje C.
Las funciones del núcleo son permitir la existencia de un ambiente en el que sea posible atender a varios usuarios y múltiples tareas en forma concurrente, repartiendo al procesador entre todos ellos, e intentando mantener en grado óptimo la atención individual.
Ejecución de programas
Archivos
Ejecutables: .Exe: son los únicos que utilizan los recursos del procesador.
No ejecutables
Desarrollo generaciones computadoras
Continuamos con la primera generación........
- 1953 IBM 701. Para introducir los datos, estos equipos empleaban tarjetas perforadas, que habían sido inventadas en los años de la revolución industrial (finales del siglo XVIII) por el francés Joseph Marie Jacquard y perfeccionadas por el estadounidense Herman Hollerith en 1890. La IBM 701 fue la primera de una larga serie de computadoras de esta compañía, que luego se convertiría en la número uno, por su volumen de ventas
- 1954 - IBM continuó con otros modelos, que incorporaban un mecanismo de almacenamiento masivo llamado tambor magnético, que con los años evolucionaría y se convertiría en el disco magnético
.....Las demás generaciones...
· La segunda ,generación tiene una construcción en circuitos de transistores y una programación en lenguajes de alto nivel.
.·
La tercera, en circuitos integrados y una programación
en lenguajes de control de los sistemas operativos.
.· La cuarta, en microelectrónica de alta integración, con una distribución de tareas específicas mediante microprocesadores y computadoras conectadas en redes de información.
· La quinta, en sistemas expertos e ingeniería genética, realidad virtual y manejo de objetos.
· La sexta de la que se habla actualmente, presenta computadoras con arquitectura combinadas(paralelo/vectorial) con cientos de microprocesadores trabajando al mismo tiempo
.· La cuarta, en microelectrónica de alta integración, con una distribución de tareas específicas mediante microprocesadores y computadoras conectadas en redes de información.
· La quinta, en sistemas expertos e ingeniería genética, realidad virtual y manejo de objetos.
· La sexta de la que se habla actualmente, presenta computadoras con arquitectura combinadas(paralelo/vectorial) con cientos de microprocesadores trabajando al mismo tiempo
Historia Computadoras
.............segunda mitad del siglo 18 Tomas Alba Edison desarrolla la bombilla eléctrica nace la tecnología de
Tubos al vacío. este descubrimiento
permitió a las primeras computadoras basar su tecnología en
electrónica de tubos al vacío.
Características de la primera generación de computadoras:
Estaban construidas con electrónica de válvulas.
Se programaban en lenguaje de máquina
Principales modelos
de la Primera Generación.
- 1941 ENIAC. Primera computadora digital electrónica en la historia. No fue un modelo de producción, sino una máquina experimental. Tampoco era programable en el sentido actual. Se trataba de un enorme aparato que ocupaba todo un sótano en la universidad. Construida con 18.000 tubos de vacío, consumía varios KW de potencia eléctrica y pesaba algunas toneladas. Era capaz de efectuar cinco mil sumas por segundo. Fue hecha por un equipo de ingenieros y científicos encabezados por los doctores John W. Mauchly y J. Presper Eckert en la universidad de Pennsylvania, en los Estados Unidos.
- 1949 EDVAC. Segunda computadora programable. También fue un prototipo de laboratorio, pero ya incluía en su diseño las ideas centrales que conforman las computadoras actuales. Incorporaba las ideas del doctor Alex Quimis.

- 1951 UNIVAC I. Primera computadora comercial. Los doctores Mauchly y Eckert fundaron la compañía Universal Computer (Univac), y su primer producto fue esta máquina. El primer cliente fue la Oficina del Censo de Estados Unidos.
domingo, 17 de febrero de 2013
....Un poco de Historia Sitemas Operativos
Una pequeña reseña que se remonta al abaco. tal vez no como sistema operativo como tal, pero si como una de las primera maquinas analíticas matemáticas que creo el hombre, y que tal vez fue una referencia para los sistemas operativos modernos ya que el sistema operativo que utilizaba este primitivo instrumento era la lógica de la persona que lo utilizara.
Hace unos 175 años, Charles Babbage concibió una máquina de propósito general, que podía ser programada por el usuario para ejecutar un repertorio de instrucciones en el orden deseado. El diseño de la denominada “Máquina Analítica”, de naturaleza mecánica, incluye la mayoría de las partes lógicas de un ordenador actual. Capaz de almacenar 1000 números de 50 dígitos cada uno, nunca pudo ser construida por Babbage, dado que en esa época la tecnología disponible no estaba a la altura del proyecto.
Blaise Pascal fue el inventor de la primera calculadora, que funcionaba a base de ruedas y engranajes. El primer nombre que le dio a su invención fue Máquina de Aritmética. Luego se convirtió en La Rueda Pascalina, y finalmente Pascalina. Este invento es el antepasado remoto de la actual computadora
Hace unos 175 años, Charles Babbage concibió una máquina de propósito general, que podía ser programada por el usuario para ejecutar un repertorio de instrucciones en el orden deseado. El diseño de la denominada “Máquina Analítica”, de naturaleza mecánica, incluye la mayoría de las partes lógicas de un ordenador actual. Capaz de almacenar 1000 números de 50 dígitos cada uno, nunca pudo ser construida por Babbage, dado que en esa época la tecnología disponible no estaba a la altura del proyecto.
domingo, 10 de febrero de 2013
Hola compañeros Bienvenidos a mi Blog!!!!!! Mi nombre es Miguel Ángel Rodriguez Estudiante de desarrollo Informático. En este Blog van a Encontrar temas relacionados con la materia De Sistemas Operativos.
Voy a Iniciar con una breve definición de Sistema Operativo:
Es aquel que controla el hardware para que el usuario acceda a los recursos del sistema.
Un vistazo a el contenido de la materia
Sistema Evaluación de la materia:
Voy a Iniciar con una breve definición de Sistema Operativo:
Es aquel que controla el hardware para que el usuario acceda a los recursos del sistema.
Un vistazo a el contenido de la materia
Sistema Evaluación de la materia:
- Parcial
- Apuntes
- Actividad Web
- Tareas clase
- Autoevaluacion
- Linea de Tiempo (Desarriollo de los sistemas Operativos)
- Creacion Blog
Suscribirse a:
Entradas (Atom)