miércoles, 21 de julio de 2010

NUCLEO DEL SISTEMA OPERATIVO


QUE ES EL NUECLEO?

El corazón de un sistema operativo es el núcleo, un programa de control que reacciona ante cualquier interrupción de eventos externos y que da servicio a los procesos, creándolos, terminándolos y respondiendo a cualquier petición de servicio por parte de los mismos. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma más básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema.

FUNCIONES GENERALMENTE ESTABLECIDAS POR EL NUCLEO


-la carga y la ejecución de los procesos.
-La comunicación entre los programas que solicitan recursos y el hardware.

-Gestión de los distintos programas informáticos (tareas) de una máquina.
-Gestión del hardware (memoria, procesador, periférico, forma de almacenamiento, etc.)
-Proporcionar el entorno adecuado para la existencia de procesos

-Manejo de interrupciones. Se transforman generalmente en mensajes para los siguientes niveles: Conmutación del procesador entre hilos o procesos (soporte al diagrama de estados)
-Mecanismos básicos de comunicación entre hilos y procesos
-Mecanismos básicos de gestión de memoria
-Carga inicial y activación de la configuración del sistema



Hay cuatro grandes tipos de núcleos:
-Los núcleos monolíticos facilitan abstracciones del hardware subyacente realmente potentes y variadas.
-Los micronúcleos (en inglés microkernel) proporcionan un pequeño conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad.
-Los núcleos híbridos (micronúcleos modificados) son muy parecidos a los micronúcleos puros, excepto porque incluyen código adicional en el espacio de núcleo para que se ejecute más rápidamente.
-Los exonúcleos no facilitan ninguna abstracción, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware.


MANIPULACION DEL HADWARE


La manipulación del hardware se realiza por medio de controladores de dispositivo, que conocen la forma de comunicarse directamente con el hardware de la máquina.
El software por su parte puede comunicarse con el kernel por medio de llamadas al sistema, las cuales le indican al kernel que realice tareas como abrir y escribir un archivo, ejecutar un programa, finalizar un proceso u obtener la fecha y hora del sistema.

lunes, 19 de julio de 2010

SPOOLING

En el campo de la Informática, el spooling (Simultaneous Peripheral Operations On-Line) se refiere al proceso mediante el cual la computadora introduce trabajos en un buffer (un área especial en memoria o en un disco), de manera que un dispositivo pueda acceder a ellos cuando esté listo.


El spooling es útil en caso de dispositivos que acceden a los datos a distintas velocidades. El buffer proporciona un lugar de espera donde los datos pueden estar hasta que el dispositivo (generalmente más lento) los procesa. Esto permite que la CPU pueda trabajar en otras tareas mientras que espera que el dispositivo más lento acabe de procesar el trabajo.


La aplicación más común del spooling es la impresión. En este caso, los documentos son cargados en un buffer, que habitualmente es un área en un disco, y la impresora los saca de éste a su propia velocidad.

El spooling permite también que los usuarios coloquen varios trabajos de impresión en una cola de una vez, en lugar de esperar a que cada uno acabe para enviar el siguiente.


El spooling es una herramienta que el sistema operativo toma para poder realizar procesos, o ejecutar aplicaciones.


El spooling es una característica de los últimos sistemas operativos lanzados al mercado.


El uso de un almacenamiento intermedio permite que varios procesos en paralelo estén generando datos para el dispositivo, sin que se mezcle el resultado, ni que tengan que esperar a que finalice la operación con el periférico.

DIAGRAMA DE SPOOLING




BUFFER DE DATOS


Un buffer (o búfer) en informática es un espacio de memoria, en el que se almacenan datos para evitar que el programa o recurso que los requiere, ya sea hardware o software, se quede en algún momento sin datos.

El concepto del Buffer es similar al de cache. Pero en el caso del buffer, los datos que se introducen siempre van a ser utilizados. En la caché sin embargo, no hay seguridad, sino una mayor probabilidad de utilización.

MANEJADOR DE DISPOSITIVOS


El código que depende de los dispositivos aparece en los manejadores de dispositivos.
Cada controlador posee uno o más registros de dispositivos:
Se utilizan para darle los comandos. Los manejadores de dispositivos proveen estos comandos y verifican su ejecución adecuada. La labor de un manejador de dispositivos es la de:

• Aceptar las solicitudes abstractas que le hace el software independiente del dispositivo.

• Verificar la ejecución de dichas solicitudes. Si al recibir una solicitud el manejador está ocupado con otra solicitud, agregara la nueva solicitud a una cola de solicitudes pendientes.

•Al finalizar la operación debe verificar los errores.

•Si todo esta o.k. transferirá los datos al software independiente del dispositivo.

•Regresa información de estado sobre los errores a quien lo llamó.

•Inicia otra solicitud pendiente o queda en espera.

PROCEDIMIENTOS DE ENTRADA Y DE SALIDA


•Desde el punto de vista del hardware, las instrucciones de entrada y salida le ayudan al programa a comunicarse con un periférico de la computadora tal como una terminal, una impresora o un disco.


•Las instrucciones de entrada estándar, sirven para leer carácteres desde el teclado, y las instrucciones de salida estándar despliegan carácteres en la pantalla.
•En Pascal todas las operaciones de entrada/salida se realizan ejecutando unidades de programa especiales denominados procedimientos de entrada/salida que forman parte del compilador y sus nombres son identificadores estándar.

GESTION DE ENTRADAS Y SALIDAS



•En Computación, entrada/salida. Es la colección de interfaces que usan distintas unidades funcionales de un sistema de procesamiento de información para comunicarse unas con otras, o las señales (información) enviadas a través de esas interfaces. Las entradas son señales recibidas por la unidad, mientras que las salidas son las señales enviadas por esta. Esto se refiere a ejecutar una operación de entrada o salida. Estos dispositivos de entrada/salida son utilizados por una persona u otro sistema para comunicarse con la computadora.

•Los dispositivos típicos para la comunicación entre computadoras realizan las dos operaciones entrada y salida un ejemplo es el modem y la tarjeta de red. En arquitectura de computadoras, la combinación de una unidad central de procesamiento CPU y la memoria principal es aquella que la CPU puede escribir o leer directamente mediante instrucciones individuales; cualquier movimiento de información hacia ese conjunto de le considera entrada/salida.

•La CPU y su circuitería complementaria proveer métodos de entrada/salida que se usan en programación de bajo nivel para la implementación de controladores de dispositivos. El lenguaje de programación C define funciones que les permite a sus programas realizar E/S, es decir les permiten leer datos y escribir datos hacia sus programas.

EJEMPLOS DE ENTRSDAS Y SALIDAS:
•Entrada:
•Teclado.
•Ratón.
•Lápiz óptico.
•Webcam.
•Escáner.
•Lector de código de barras.
•Salida:
•Monitor.
•Altavoces.
•Impresora.
•Proyector.
•Entrada/Salida:
•Unidades de almacenamiento (USB)
•DVD.
•Módem.
•Pantalla Tactil.

GESTION DE MEMORIA




Unidad de manejo de la memoria, también conocido como gestión de memoria:es un dispositivo de hardware formado por un grupo de circuitos integrados, responsable del manejo de los accesos a la memoria por parte de la unidad de procesamiento central (CPU). El propósito de manejar la memoria es optimizar el uso del RAM.





POR EJEMPLO:
Cuando la CPU intenta acceder a una dirección de memoria lógica ( es un procesador), la MMU realiza una búsqueda en una memoria caché especial llamada Buffer de Traducción Adelantada(TLB).
En esta memoria se mantienen entradas de la tabla de páginas, donde se pueden rescatar las direcciones físicas correspondientes a algunas direcciones lógicas, de forma directa.
Cuando la dirección requerida por la CPU se encuentra en el TLB, su traducción a dirección real o física es entregada, en lo que se conoce como 'acierto en el TLB


UN BENEFICIO, fundamental de la MMU es la posibilidad de implementar protección de memoria, evitando que los programas accedan a porciones de memoria prohibidos. Por ejemplo se puede evitar que un programa acceda o modifique sectores de memoria de otros programas.











OBJETIVOS DE LA GESTION DE MEMORIAS



- En la memoria principal son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos.



- La memoria virtual es aquella que le ofrece a las aplicaciones la ilusión de que están solas en el sistema y que pueden usar el espacio de direcciones completo.



- Las direcciones de memoria son de tres tipos: físicas, lógicas y lineales.



- El objetivo del intercambio es dar cabida a la ejecución de más aplicaciones de las que pueden residir simultáneamente en la memoria del sistema.



- La asignación consiste en determinar cuál espacio vacío en la memoria principal es el más indicado para ser asignado a un proceso.



- Las estrategias más comunes para asignar espacios vacíos (huecos) son: primer ajuste, mejor ajuste, peor ajuste.



- La fragmentación es la memoria que queda desperdiciada al usar los métodos de gestión de memoria tales como la asignación.



- La fragmentación puede ser interna o externa.



- La paginación es una técnica de gestión de memoria en la cual el espacio de memoria se divide en secciones físicas de igual tamaño llamadas marcos de pagina, las cuáles sirven como unidad de almacenamiento de información.



- La segmentación 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 denominados segmentos.




FUNCIONES PRINCIPALES DE LA GESTION DE MEMORIA:



-La traducción de las direcciones lógicas (o virtuales) a direcciones físicas (o reales).
-La protección de la memoria.
-El control de caché.




MEMORIA VIRTUAL

La memoria virtual es una técnica de administración de la memoria real que permite al sistema operativo brindarle al software de usuario y a si mismo un espacio de direcciones mayor que la memoria real o física.

Con la memoria virtual, el sistema operativo asigna una porción de un medio de almacenamiento, usualmente el disco duro, para funcionar como RAM adicional. Según se interacciona con un programa, parte de él puede estar en el RAM y el resto del programa está en el disco duro, el que se está usando como memoria virtual.




IMPLANTACION DE LA MEMORIA VIRTUAL



Para implementar la memoria virtual, para el sistema es necesario tener un hardware especial de administración de memoria.
Este hardware a menudo se conoce como un MMU, Sin un MMU, cuando el CPU accede a la RAM, las ubicaciones reales de RAM nunca cambian, la dirección de memoria 123 siempre será la misma dirección física dentro de la RAM. Sin embargo, con un MMU, las direcciones de memoria pasan a través de un paso de traducción antes de cada acceso de memoria. Esto significa que la dirección de memoria 123 puede ser redirigida a la dirección física 82043 en un momento dado y a la dirección 20468 en otro.




POLITICAS DEL MANEJO DE MEMORIAS



Precedentemente se han expuesto los esquemas de traslación de direcciones y los mecanismos de aceleración de la traslación, pero sin mencionar las reglas con las cuales esos esquemas son controlados.
Para cada situación en particular una de estas reglas es aplicada, dependiendo del ámbito que cubre la misma.
Por ejemplo, estas reglas determinan la carga de información en la memoria principal, decidiendo el momento (reglas de búsqueda), el lugar (reglas de ubicación) y si es necesario remover información, cuál es prescindible; además de la decisión de cuando variar la cantidad de memoria principal utilizada (reglas de reemplazo).