La invasión de la tecnología!

A medida que pasa el tiempo más nos invade la tecnología...

La WEB...

La WEB esta transformando a la sociedad...

De la mano de la tecnología...

Todo avance tecnológico se encuentra ligado al desarrollo de la innovación...

La ciencia y la tecnología

La ciencia y la tecnología son la plataforma de una cadena de innovaciones que se han difundido por todo el planeta...

Archive for 2015

MEMORIA VIRTUAL


La memoria virtual es una técnica de gestión de memoria que permite que el sistema operativo disponga de mayor cantidad de memoria y que este disponible físicamente para software de usuario como para el sistema operativo.

La memoria virtual permite ejecutar procesos que no caben en la memoria RAM.

Cuando se usa memoria virtual o cuando una dirección es leída o escrita por la CPU, una parte del hardware dentro de la computadora traduce las direcciones de memoria generadas por el software (direcciones virtuales).

  • Dirección Lógica: es la dirección que genera el proceso; también se conoce como dirección virtual.
  • Dirección Física: dirección que perciba la unidad de memoria.
Las direcciones lógicas y físicas son iguales en los esquemas de vinculación en tiempo de compilación y de carga, pero difieren en el esquema de vinculación en tiempo de ejecución.




REQUISITOS DE LA GESTIÓN DE MEMORIA






Los requisitos para entender el concepto de gestión de memoria son:


REUBICACIÓN


Cuando se ejecute un programa, los programadores no sabrán en que lugar de la memoria se encuentra. Mientras el programa esté en ejecución, esté podrá ser movido al disco y devolverlo a la memoria principal en un lugar diferente, a esto se le conoce como Reubicación.


COMPARTICIÓN


En la compartición,  el segmento de datos y el segmento de código comparten el mismo segmento de código pero cada un conserva su independencia trabajando individualmente.


PROTECCIÓN


El sistema operativo sólo puede combinar el nivel de referencia y nunca puede hacer una referencia al bloque de control de procesos. Los procesos no deberían ser capaces de referenciar el espacio de memoria de otro proceso sin permiso. Es imposible comprobar las direcciones absolutas de los programas puesto que estos pueden ser reubicados.


ORGANIZACIÓN LÓGICA


Los programas son escritos en módulos, los módulos se pueden escribir y compilar por separado. A los módulos se les puede dar diferente grado de protección: de sólo lectura, de sólo ejecución.


ORGANIZACIÓN FÍSICA


La memoria disponible para un programa y sus datos puede ser insuficiente . El solapamiento permite asignar la misma zona de memoria a diferentes módulos.

Los registros y el caché son administrador por el procesador.

Ram y memoria secundaria son administrados por el sistema operativo



PAGINACIÓN Y SEGMENTACION


Se divide la memoria en partes. la diferencia que existe entre particiones físicas y dinámicas, es que la memoria se divide en secciones o de diferentes tamaños.

El disco duro es la memoria secundaria, que archiva los programas no procesos. El disco duro es un contenedor de información por lo tanto no puede contener procesos. La memoria y el procesador son los únicos que contienen procesos.

Actualmente, la división de la memoria se realiza a través de la paginación y la segmentación.



PAGINACIÓN


Es una técnica de manejo de memoria, en la que el espacio de memoria se divide en secciones físicas de igual tamaño.

A diferencia de las particiones fijas, acá se dividen los procesos y programas. Los procesos se dividen en el mismo tamaño de los marcos de página.







SEGMENTACIÓN


Es un esquema para implementar espacios de direcciones, llevándose a cabo un agrupación lógica de la información en bloques de tamaño variable denominados segmentos.

La segmentación es un esquema de administración de la memoria que soporta la visión que el usuario tiene de la misma.

Un espacio de direcciones lógicas es una colección de segmentos. Cada segmento tiene un nombre y una longitud.

las direcciones especifican el nombre del segmento como el desplazamiento dentro del segmento. Por lo tanto, el usuario especifica cada dirección mediante dos cantidades, el nombre del segmento y el desplazamiento.






PARTICIONES FIJAS Y DINÁMICAS

En las particiones fijas la memoria se divide en varias particiones de tamaño fijo, del mismo tamaño o de tamaño diferente. Cada partición puede contener exactamente un proceso.

Un programa puede ser tan grande que puede exceder el tamaño de una partición. En este caso, el programador debe diseñar el programa mediante superposiciones para que sólo una parte del programa esté en la memoria principal.

En las particiones de igual tamaño, si todas las particiones estuvieran ocupadas con procesos que no están listos para ejecutar y necesita cargarse un nuevo proceso, debe determinarse que partición expulsarse de la memoria. Cuando una partición esta libre, se selecciona un proceso de la cola de entrada y se carga en la partición libre, cuando un proceso termina, la partición está disponible para otro.



El sistema operativo conserva una tabla que indica qué partes de la memoria están disponibles y cuáles están ocupadas.


  • El tamaño de la partición se especifica al encender el sistema.
  • Cada partición se puede reconfigurar al volver a encender o reiniciar el sistema.
  • Una vez asignada una partición a una tarea, no se permitía que ninguna otra tarea entrara a sus fronteras.




ASIGNACIÓN DE MEMORIA CON PARTICIONES FIJAS


Asigna memoria en tiempo de compilación antes de que el programa asociado sea ejecutado.

Una aplicación de esta técnica conlleva a que un módulo de programa declare datos estáticos de forma local, de forma que estos datos son inaccesibles desde otros módulos a menos que se les pasen referenciados como parámetros o le sean devueltos por la función.





PARTICIONES DINÁMICAS


Consiste en particiones de memoria de tamaño variable, es decir, a cada proceso se le asigna la cantidad de memoria que necesita. Se deben utilizar algunos algoritmos para la ubicación de procesos en las particiones. 

  • Cada trabajo ocupa tanto espacio como necesita.
  • El tamaño del trabajo a ubicar no puede ser menor que el almacenamiento principal disponible.
  • Se disminuye parcial o totalmente el desperdicio de memoria.

Con particiones dinámicas surgen dificultades como:

Producto de la entrada y salida de procesos en la memoria, se van generando porciones cada vez más pequeñas de la memoria sin utilizar, lo que se conoce como fragmentación externa. para solucionar este problema, se debe recurrir a la compactación de la memoria para eliminar espacios (huecos) existentes entre procesos, esto significa que los procesos deben ser reubicados en memoria de forma dinámica.


POLITICAS DE PLANIFICACION

PRESENTACION MODELOS DE ESTADOS




MODELO DE ESTADOS


Los sistemas operativos deben disponer de una forma de crear y destruir procesos cuando se requiera durante la operación, teniendo ademas presente que los procesos pueden generar procesos hijos mediante llamadas al Sistema Operativo, pudiendo darse ejecución en paralelo. Respecto de los estados del proceso deben efectuarse las siguientes consideraciones:

Cada proceso es una entidad independiente pero frecuentemente debe interactuar con otros procesos.

Los procesos pueden bloquearse de su ejecución porque desde el punto de vista lógico no puede continuar porque espera datos que aún no están disponibles y porque el Sistema Operativo asigno la CPU a otro proceso.


Entre los estados que puede tener un proceso encontramos:

     *   En ejecución: Utiliza la CPU en el instante dado.
     *   Listo: Ejecutable, se detiene en forma temporal para que se ejecute otro proceso.
     *   Bloqueado: No se puede ejecutar debido a la ocurrencia de algún evento externo.




MODELO DE 2 ESTADOS





Este es el modelo de estados mas simple. En este modelo, un proceso puede estar en Ejecución o No Ejecución. Cuando se crea un nuevo proceso, se pone en estado de No Ejecución, en algún momento el proceso que está en Ejecución pasará al estado No Ejecución y otro proceso se elegirá de la lista de procesos listos para ejecutar para ponerlo en estado Ejecución. Además los procesos que no se están ejecutando deben guardarse en algún tipo de cola mientras esperan su turno para ejecutar.




MODELO DE 3 ESTADOS





En el modelo de 3 estados se establece el estado de Bloqueado a diferencia del 2 ya que en realidad, los procesos utilizan datos para operar con ellos, y puede suceder que no se encuentren listos, o que se deba esperar algún suceso antes de continuar. Es por esto que se creo el estado de Bloqueado porque se necesita un estado donde los procesos permanezcan como dice la palabra bloqueados esperando hasta que puedan proseguir. 




MODELO DE 5 ESTADOS





En el modelo de 5 estados se divide al estado No Ejecución en dos estados: Listo y Bloqueado. Se agregan además un estado Nuevo y otro Terminado. Los 5 estados de la gráfica son:

Ejecución: El proceso está actualmente en ejecución.

Listo: El proceso está listo para ser ejecutado, sólo está esperando que el planificador así lo disponga.

Bloqueado: El proceso no se puede ejecutar hasta que no se produzca cierto suceso, como una operación de Entrada / Salida.

Nuevo: El proceso recién fue creado y todavía no fue admitido por el Sistema Operativo. En general los procesos que se encuentran en este estado todavía no fueron cargados en la memoria principal.

Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque termino o por algún fallo, como un error de protección, aritmético, etc.




MODELO DE 6 ESTADOS





En el modelo de 6 estados a diferencia de el de 5, se incluye el estado Suspendido. Este proceso corresponde a mover un proceso de la memoria principal a la memoria secundaria (normalmente disco). Los estados por lo tanto son:

Nuevo

Listo o en Espera: Puede estar en memoria principal o en memoria secundaria.

Ejecución: Está en el uso del procesador.

Bloqueado: Puede estar en memoria principal o en memoria secundaria.

Suspendido

Terminado




MODELO DE 7 ESTADOS





En el modelo de 7 estados se ve la inclusión de los estados de Suspensión. Por lo tanto los estados son:

Nuevo

Listo: Puede estar en memoria principal o en memoria secundaria.

Ejecución: Está en el uso del procesador.

Bloqueado: Puede estar en la memoria principal o en la memoria secundaria. 

Bloqueado / Suspendido

Listo / Suspendido

Terminado







http://prezi.com/rjwvzp-kozmw/present/?auth_key=fhtqfqd&follow=ob-p-z3loqij

MULTIPROGRAMACION




Es la habilidad para poder soportar la ejecución de dos o más trabajos activos (que se están ejecutando) al mismo tiempo. Esto trae como resultado que la Unidad central de Procesamiento (CPU) siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización.

Su objetivo es tener varias tareas en la memoria principal, de manera que cada una está usando el procesador.


Sistemas operativos como UNIX, MAC-OS, Windows 95, Windows 98, Windows NT, Windows 7, Windows 8, soportan la multiprogramación.


A continuación se muestra un ejemplo de multprogramación con tras programas:







VENTAJAS DE LA MULTIPROGRAMACIÓN


*   Varios procesos en ejecución.

*   Permite el servicio interactivo simultaneo a varios usuarios de manera eficiente.

*  Aprovecha los tiempos que los procesos pasan esperando a que se completen sus operaciones de E/S y por ende aumenta la eficiencia en el uso de la CPU.

*  Las direcciones de los procesos son relativas, el programador no se preocupa por saber en dónde estará el proceso, dado que el sistema operativo es el que se encarga de convertir la dirección lógica en física.

SISTEMAS OPERATIVOS





¿QUÉ SON?


Son programas que realizan control sobre dispositivos.

Las funciones básicas de los sistemas operativos son administrar los recursos de la máquina, coordinar el hardware, organizar archivos y directorios en dispositivos de almacenamiento.

Los sistemas operativos más utilizados son Dos, Windows, Linux, Mac. Algunos traen navegadores incorporados como es el caso de Windows que trae Internet Explorer.


A continuación un cuadro comparativo de diferentes sistemas operativos:



EVOLUCIÓN DE LA TECNOLOGÍA

EVOLUCIÓN DE LA TECNOLOGÍA



Primera Generación

Abarca desde el año 1946 hasta 1954, época en la q la tecnología electrónica era a base de bulbos o tubos de vacío y la computación era en términos de nivel más bajo q puede existir, se conoce como lenguaje de máquina.

Estos dispositivos usaban tubos al vacío para procesar información, tarjetas perforadas para entrar los datos y los programas, cilindros magnéticos para almacenar la información e instrucciones internas.

Además eran equipos grandes, utilizaban gran cantidad de electricidad, generaban mucho calor y eran sumamente lentas.



Segunda Generación

Abarca desde el año 1954 hasta 1964. En esta generación las computadoras reducen su tamaño y son de menor costo, al ser más pequeñas son más rápidas.

Usan transistores para procesar información. Estos dispositivos se programaban con lenguajes de alto nivel.



Tercera Generación

Comprende entre 1965 y 1971. Sustituyeron a las de segunda generación introduciendo una forma de programación que aún se utiliza en algunas computadoras actuales.

Estos dispositivos consumían menos de energía, tenían circuitos integrados, se renovaron los periféricos, eran minicomputadoras no tan costosas y con gran capacidad de procesamiento.



Cuarta Generación

Desde 1971 hasta 1988, mejoras en la tecnología marcan el inicio de esta generación: el remplazo de las memorias con núcleos magnéticos por la de chips de silicio y la implementación de muchos más componentes en un chip.

Al reducir el tamaño de procesador hizo posible el nacimiento de las microcomputadoras o computadoras personales.



Quinta Generación

Empezó desde 1989 hasta nuestros días. Estos equipos son basados en inteligencia artificial. Son máquinas capaces de resolver problemas complejos como la traducción de un idioma a otro.

Estos dispositivos aumentaron la capacidad de memoria, tienen mayor velocidad, utilizan lenguaje natural para la interfaz con el usuario, utilizan multiprocesadores.