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).





miércoles, 23 de junio de 2010


ETAPAS DEL SISTEMA OPERATIVO.









1a. Etapa (1945-1955): Bulbos y conexiones.
Después de los infructuosos esfuerzos de Babbage, hubo poco progreso en la construcción de las computadoras digitales, hasta la Segunda Guerra Mundial. A mitad de la década de los 40's, Howard Aiken (Harvard), John Von Newman (Instituto de Estudios Avanzados, Princeton), J. Prespe R. Eckert y Williams Mauchley (Universidad de Pennsylvania), así como Conrad Zuse (Alemania), entre otros lograron construir máquinas de cálculo mediante bulbos. Estas máquinas eran enormes y llenaban cuartos completos con decenas de miles de bulbos, pero eran mucho más lentas que la computadora casera más económica en nuestros días.
Toda la programación se llevaba a cabo en lenguaje de máquina absoluto y con frecuencia se utilizaban conexiones para controlar las funciones básicas de la máquina. Los lenguajes de programación eran desconocidos (incluso el lenguaje ensamblador). No se oía de los Sistemas Operativos el modo usual de operación consistía en que el programador reservaba cierto período en una hoja de reservación pegada a la pared, iba al cuarto de la máquina, insertaba su conexión a la computadora y pasaba unas horas esperando que ninguno de los 20,000 o más bulbos se quemara durante la ejecución. La inmensa mayoría de los problemas eran cálculos numéricos directos, por ejemplo, el cálculo de valores para tablas de senos y cosenos.
A principio de la década de los 50's la rutina mejoro un poco con la introducción de las tarjetas perforadas. Fue entonces posible escribir los programas y leerlas en vez de insertar conexiones, por lo demás el proceso era el mismo.




2a. Etapa. (1955-1965): Transistores y Sistemas de Procesamiento por lotes.
La introducción del transistor a mediados de los años 50's modificó en forma radical el panorama. Las computadoras se volvieron confiables de forma que podían fabricarse y venderse a clientes, con la esperanza de que ellas continuaran funcionando lo suficiente como para realizar un trabajo en forma.
Dado el alto costo del equipo, no debe sorprender el hecho de que las personas buscaron en forma por demás rápidas vías para reducir el tiempo invertido. La solución que, por lo general se adoptó, fue la del sistema de procesamiento por lotes.




3ra Etapa (1965-1980): Circuitos integrados y multiprogramación.
La 360 de IBM fue la primera línea principal de computadoras que utilizó los circuitos integrados, lo que proporcionó una gran ventaja en el precio y desempeño con respecto a las máquinas de la segunda generación, construidas a partir de transistores individuales. Se trabajo con un sistema operativo enorme y extraordinariamente complejo. A pesar de su enorme tamaño y sus problemas el sistema operativo de la linea IBM 360 y los sitemas operativos similares de esta generación producidos por otros fabricantes de computadoras realmente pudieron satisfacer, en forma razonable a la mayoria de sus clientes. También popularizaron varias técnicas fundamentales, ausentes de los sistemas operativos de la segunda generación, de las cuales la más importante era la de multiprogramación.
Otra característica era la capacidad de leer trabajos de las tarjetas al disco, tan pronto como llegara al cuarto de cómputo. Así, siempre que concluyera un trabajo el sistema operativo podía cargar un nuevo trabajo del disco en la partición que quedara desocupada y ejecutarlo.


4ta Etapa (1980-Actualidad): Computadoras personales.
Un interesante desarrollo que comenzó a llevarse a cabo a mediados de la década de los ochenta ha sido el crecimiento de las redes de computadoras personales, con sistemas operativos de red y sistemas operativos distribuidos.
En los sistema operativo de red, los usuarios están conscientes de la existencia de varias computadoras y pueden conectarse con máquinas remotas y copiar archivos de una máquina a otra. Cada máquina ejecuta su propio sistema operativo local y tiene su propio usuario.
Por el contrario, un sistema operativo distribuido es aquel que aparece ante sus usuarios como un sistema tradicional de un solo procesador, aun cuando esté compuesto por varios procesadores. En un sistema distribuido verdadero, los usuarios no deben ser conscientes del lugar donde su programa se ejecute o de lugar donde se encuentren sus archivos; eso debe ser manejado en forma automática y eficaz por el sistema operativo.


TIPOS DE SISTEMAS OPERATIVOS.







1) DOS: El famoso DOS, que quiere decir Disk Operating System (sistema operativo de disco), es más conocido por los nombres de PC-DOS y MS-DOS. MS-DOS fue hecho por la compañía de software Microsoft y es en esencia el mismo SO que el PC-DOS.
La razón de su continua popularidad se debe al aplastante volumen de software disponible y a la base instalada de computadoras con procesador Intel.
Cuando Intel liberó el 80286, DOS se hizo tan popular y firme en el mercado que DOS y las aplicaciones DOS representaron la mayoría del mercado de software para PC. En aquel tiempo, la compatibilidad IBM, fue una necesidad para que los productos tuvieran éxito, y la "compatibilidad IBM" significaba computadoras que corrieran DOS tan bien como las computadoras IBM lo hacían.
Aún con los nuevos sistemas operativos que han salido al mercado, todavía el DOS es un sólido contendiente en la guerra de los SO.




2) Windows 3.1: Microsoft tomo una decisión, hacer un sistema operativo que tuviera una interfaz gráfica amigable para el usuario, y como resultado obtuvo Windows. Este sistema muestra íconos en la pantalla que representan diferentes archivos o programas, a los cuales se puede accesar al darles doble click con el puntero del mouse. Todas las aplicaciones elaboradas para Windows se parecen, por lo que es muy fácil aprender a usar nuevo software una vez aprendido las bases.

3) Windows 95: En 1995, Microsoft introdujo una nueva y mejorada versión del Windows 3.1. Las mejoras de este SO incluyen soporte multitareas y arquitectura de 32 bits, permitiendo así correr mejores aplicaciónes para mejorar la eficacia del trabajo.








4) Windows NT: Esta versión de Windows se especializa en las redes y servidores. Con este SO se puede interactuar de forma eficaz entre dos o más computadoras.



5) OS/2: Este SO fue hecho por IBM. Tiene soporte de 32 bits y su interfaz es muy buena. El problema que presenta este sistema operativo es que no se le ha dad el apoyo que se merece en cuanto a aplicaciones se refiere. Es decir, no se han creado muchas aplicaciones que aprovechen las características de el SO, ya que la mayoría del mercado de software ha sido monopolizado por Windows.




6) Mac OS: Las computadoras Macintosh no serían tan populares como lo son si no tuvieran el Mac OS como sistema operativo de planta. Este sistema operativo es tan amigable para el usuario que cualquier persona puede aprender a usarlo en muy poco tiempo. Por otro lado, es muy bueno para organizar archivos y usarlos de manera eficaz. Este fue creado por Apple Computer, Inc.







7) UNIX: El sistema operativo UNIX fue creado por los laboratorios Bell de AT&T en 1969 y es ahora usado como una de las bases para la supercarretera de la información. Unix es un SO multiusuario y multitarea, que corre en diferentes computadoras, desde supercomputadoras, Mainframes, Minicomputadoras, computadoras personales y estaciones de trabajo. Esto quiere decir que muchos usuarios puede estar usando una misma computadora por medio de terminales o usar muchas de ellas.
CUAL ES LA IMPORTANCIA DE LOS SITEMAS OPERATIVOS?


Su importancia es para establecer o estructurar un conjunto de mensajes que activan entradas y salidas claves del centro de mando del rom.Por dar un ejemplo sencillo, es como decirle un código para que el cpu nos diga la cantidad de memoria que está vacía. Entonces nos enviará una gráfica de pastes ilustrando % de memoria llena y % de memoria vacía.Así el programador estará haciendo un diagnóstico rápido y podrá hacer las correcciones y modificaciones necesarias para calibrar y actualizar la unidad completa.Hay veces que la compu se alenta o se atasca totalmente, porque le entran virus o la llenamos de información inecesaria y no hay otra salida, que acudir a un técnico que domine el S. O. a la perfección; y la vuelva a poner en circulación, como recien comprada.
A QUE SE LA LLAMA CONCURRENCIA, COMPARTIR, ALMACENAR, Y NO DETERMINANCÍA EN UN SISTEMA OPERATIVO?


•CONCURRENCIA: la concurrencia es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si sólo existe un procesador encargado de ejecutar los procesos concurrentes, simulando la concurrencia, ocupándose de forma alternada en uno y otro proceso a pequeñísimos intervalos de tiempo. De esta manera simula que se están ejecutando a la vez.Debido a que los procesos concurrentes en un sistema pueden interactuar entre otros también en ejecución, el número de caminos de ejecución puede ser extremadamente grande, resultando en un comportamiento sumamente complejo. Las dificultades asociadas a la concurrencia han sido pensadas para el desarrollo de lenguajes de programación y conceptos que permitan hacer la concurrencia más manejable.


•COMPARTIR: El hecho de compartir hace referencia al disfrute en común de un recurso o un espacio. En sentido estricto, hace referencia al disfrute simultáneo o uso alternativo de un bien finito, como un monte público o un lugar de residencia.
En un sentido más amplio, compartir hace referencia a la concesión gratuita de un uso que es susceptible de ser tratado como un bien sin rival por no ser tangible, como es la información. Más ampliamente, puede hacer referencia al concepto de donar; ejemplo claro de esto son iniciativas como el bookcrossing, donde el objeto compartido no vuelve a la persona que lo pone en circulación.



•ALMACENAR: Los dispositivos o unidades de almacenamiento de datos son dispositivos que leen o escriben datos en medios o soportes de almacenamiento, y juntos conforman la memoria secundaria o almacenamiento secundario de la computadora.
Estos dispositivos realizan las operaciones de lectura y/o escritura de los medios o soportes donde se almacenan o guardan, lógica y físicamente, los archivos de un sistema informático.

FUNCIONES DERL SISTEMA OPERATIVO.


•Aceptar los trabajos y conservarlos hasta su finalización.
•Detectar errores y actuar de modo apropiado en caso de que se produzcan.
•Controlar las operaciones de E/S.
•Controlar las interrupciones.
•Planificar la ejecución de tareas.
•Entregar recursos a las tareas.
•Retirar recursos de las tareas.
•Proteger la memoria contra el acceso indebido de los programas.
•Soportar el multiacceso.
•Proporcionar al usuario un sencillo manejo de todo el sistema.
•Aprovechar los tiempos muertos del procesador.
•Compartir los recursos de la máquina entre varios procesos al mismo tiempo.
•Administrar eficientemente el sistema de cómputo como un todo armónico.
•Permitir que los diferentes usuarios se comuniquen entre sí, así como protegerlos unos de otros.
•Permitir a los usuarios almacenar información durante plazos medianos o largos.
•Dar a los usuarios la facilidad de utilizar de manera sencilla todos los recursos, facilidades y lenguajes de que dispone la computadora.
•Administrar y organizar los recursos de que dispone una computadora para la mejor utilización de la misma, en beneficio del mayor número posible de usuarios.
•Controlar el acceso a los recursos de un sistema de computadoras.

SISTEMAS OPERATIVOS


QUE ES UN SISTEMA OPERATIVO?

Un Sistema operativo (SO) es un software que actúa de interfaz entre los dispositivos de hardware y los programas usados por el usuario para manejar un computador.1 Es responsable de gestionar, coordina las actividades y llevar a cabo el intercambio de los recursos y actúa como estación para las aplicaciones que se ejecutan en la máquina.