Powered By Blogger

miércoles, 3 de septiembre de 2014

1.6 Núcleo.


Una definición mas especifica de lo que es el núcleo ( Kernel ) de un sistema operativo es: un conjunto de rutinas cuya misión es la de gestionar el procesador, la memoria, la entrada/salida y el resto de procesos disponibles en la instalación. Toda esta gestión la realiza para atender al funcionamiento y peticiones de los trabajos que se ejecutan en el sistema. 

El esquema general de la gestión del procesador, es el siguiente:

Definición y concepto de proceso.

El Bloque de Control de Proceso (PCB) como imagen donde el sistema operativo ve el estado del proceso.
Estados por los que pasa un proceso a lo largo de su existencia en la computadora.

Operaciones que se pueden realizar sobre un proceso.
Clarificación de los procesos según su forma de ejecución, de carga, etc. 

Por proceso debe entenderse: 
Un programa en ejecución junto con el entorno asociado (registros, variables ,etc.).

1.5 Estructura: Niveles o Estratos de Diseño.



El nucleo o kernel se divide en 5 capas o niveles: 


Nivel 1. Gestión de Memoria:Proporciona las facilidades de bajo nivel para la gestión de memoria secundaria necesaria para la ejecución de procesos. 

Nivel 2. Procesador: Se encarga de activar los cuantums de tiempo para cada uno de los procesos, creando interrupciones de hardware cuando no son respetadas. 

Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los dispositivos de E/S requeridos por los procesos. 

Nivel 4. Información o Aplicación o Interprete de Lenguajes: Facilita la comunicación con los lenguajes y el sistema operativo para aceptar las ordenes en cada una de las aplicaciones. Ejecutando un programa el software de este nivel crea el ambiente de trabajo e invoca a los procesos correspondientes. 

Nivel 5. Control de Archivos: Proporciona la facilidad para el almacenamiento a largo plazo y manipulación de archivos con nombre, va asignando espacio y acceso de datos en memoria. 

El núcleo o kernel realiza diferentes funciones tales como:

>Manejo de interrupciones.
>Creación y destrucción de procesos.
>Cambio de estado de los procesos.
>Despacho
>Suspensión y reanudación de procesos.
>Sincronizacion de procesos.
>Comunicación entre procesos.
>Manipulación de los bloques de control de procesos.
>Apoyo para las actividades de entrada/salida.
>Apoyo para asignación y liberación de memoria.
>Apoyo para el sistema de archivos.
>Apoyo para el mecanismo de llamada y retorno de un   procedimiento.
> Apoyo para ciertas funciones de contabilidad del sistema.

1.4 Clasificación.



Sistema Operativo Monotareas.


Los sistemas operativos monotareas son más primitivos y es todo lo contrario al visto anteriormente, es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora esta imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.



Sistema Operativo Monousuario.


Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este ejecutando.

Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y están orientados principalmente por los microcomputadores.


Sistema Operativo Multiusuario.


Es todo lo contrario a monousuario; y en esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes.

En otras palabras consiste en el fraccionamiento del tiempo (timesharing).



Sistemas Operativos por lotes.


Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reunen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.

Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecución de los trabajos.

Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico.

Algunas otras características con que cuentan los Sistemas Operativos por lotes son: 


>Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de lote. 

>Permiten poca o ninguna interacción usuario/programa en ejecución. 

>Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios. 

>No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de línea. 

>Conveniente para programas de largos tiempos de ejecución (ej, análisis estadísticos, nóminas de personal, etc.). 

>Se encuentra en muchos computadores personales combinados con procesamiento serial. 

>Planificación del procesador sencilla, típicamente procesados en orden de llegada. 

>Planificación de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y programas transitorios. 

>No requieren gestión crítica de dispositivos en el tiempo. 

>Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y ningún control de concurrencia para el acceso. 


Sistemas Operativos de tiempo real.

Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran número de sucesos o eventos.

Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo muy rápidamente. Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes:


>Control de trenes. 


>Telecomunicaciones. 

>Sistemas de fabricación integrada. 

>Producción y distribución de energía eléctrica. 

>Control de edificios. 

>Sistemas multimedia. 


Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes características: 



>Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayoría externos al sistema computacional, en breve tiempo o dentro de ciertos plazos. 

>Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc. 

>Es proporcionar rápidos tiempos de respuesta. 

>Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso. 

>Proceso se activa tras ocurrencia de suceso, mediante interrupción. 

>Proceso de mayor prioridad expropia recursos. 

>Por tanto generalmente se utiliza planificación expropiativa basada en prioridades. 

>Gestión de memoria menos exigente que tiempo compartido, usualmente procesos son residentes permanentes en memoria. 

>Población de procesos estática en gran medida. 

>Poco movimiento de programas entre almacenamiento secundario y memoria. 

>Gestión de archivos se orienta más a velocidad de acceso que a utilización eficiente del recurso. 


Sistemas Operativos de tiempo compartido.


Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario.

Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria.


Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.

Características de los Sistemas Operativos de tiempo compartido: 


>Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseño asistido por computador, procesamiento de texto, etc. 


>Dan la ilusión de que cada usuario tiene una máquina para sí. 

>Mayoría utilizan algoritmo de reparto circular. 

>Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye después de concedido el servicio. 

>Evitan monopolización del sistema asignando tiempos de procesador (time slot). 

>Gestión de memoria proporciona protección a programas residentes. 

>Gestión de archivo debe proporcionar protección y control de acceso debido a que pueden existir múltiples usuarios accesando un mismo archivos. 



Sistemas Operativos distribuidos.


Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.

Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.

Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.


Características de los Sistemas Operativos distribuidos: 


>Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software . 

>Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios. 

>Objetivo clave es la transparencia. 

>Generalmente proporcionan medios para la compartición global de recursos. 

>Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos (a través de comunicación de procesos internodos, llamadas a procedimientos remotos, etc.). 


Sistemas Operativos de red.


Son aquellos sistemas que mantienen a dos o más computadoras unidas através de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.

El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.

Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.


Sistemas Operativos paralelos.



En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo.

En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso.

Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.

1.3 Evolución Historica.


1.2 Funciones y características.


Características


En general, se puede decir que un Sistema Operativo tiene las siguientes características:

Conveniencia. Un Sistema Operativo hace mas conveniente el uso de una computadora.


Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera mas eficiente posible.

Habilidad para evolucionar. Un Sistema Operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio.



Funciones


Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos.

Relacionar dispositivos (gestionar a través del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.

Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora.








lunes, 1 de septiembre de 2014

1.1 Definición y Concepto

Existen diversas definiciones de lo que es un Sistema Operativo, pero no hay una definición exacta, es decir una que sea estándar; a continuación se presentan algunas:

1.- Se pueden imaginar un Sistema Operativo como los programas, instalados en el software o firmware, que hacen utilizable el hardware. El hardware proporciona la "capacidad bruta de cómputo"; los sistemas operativos ponen dicha capacidad de cómputo al alcance de los usuarios y administran cuidadosamente el hardware para lograr un buen rendimiento.

2.- Los Sistemas Operativos son ante todo administradores de recursos; el principal recurso que administran es el hardware del computador ;además de los procesadores, los medios de almacenamiento, los dispositivos de entrada/salida, los dispositivos de comunicación y los datos.

3.- Un Sistema Operativo es un programa que actúa como intermediario entre el usuario y el hardware del computador y su propósito es proporcionar el entorno en el cual el usuario pueda ejecutar programas. Entonces, el objetivo principal de un Sistema Operativo es, lograr que el sistema de computación se use de manera cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente.

4.- Un Sistema Operativo es un conjunto de programas que controla la ejecución de programas de aplicación y actúa como una interfaz entre el usuario y el hardware de una computadora, esto es, un Sistema Operativo explota y administra los recursos de hardware de la computadora con el objeto de proporcionar un conjunto de servicios a los usuarios del sistema.

En resumen, se podría decir que los Sistemas Operativos son un conjunto de programas que crean la interfaz del hardware con el usuario, y que tiene dos funciones primordiales, que son:

  • Gestionar el hardware.- Se refiere al hecho de administrar de una forma más eficiente los recursos de la máquina.

  • Facilitar el trabajo al usuario.-Permite una comunicación con los dispositivos de la máquina.

El Sistema Operativo se encuentra almacenado en la memoria secundaria. Primero se carga y ejecuta un pedazo de código que se encuentra en el procesador, el cual carga el BIOS, y este a su vez carga el Sistema Operativo que carga todos los programas de aplicación y software variado.




Unidad 1 Introducción a los sistemas operativos


Es una parte importante de cualquier sistema de computación. Un sistema de computación puede dividirse en componentes, por ejemplo el hadware o el sistema operativo. 


Un sistema operativo es un programa que actua como intermediario entre el usuario y el hadware del computador y su propósito es proporcionar el entorno en el cual el usuario pueda ejecutar programas. Entonces, el objetivo principal de un sistema operativo es, lograr que el sistema de computación se use de manera cómoda, y el objetivo secundario es que el hadware del computador se emplee de manera eficiente.