Buscar este blog

jueves, 7 de septiembre de 2017

1.6 Núcleo

El Núcleo (o kernel) es una colección de módulos de software que se ejecutan en forma privilegiada –lo que significa que tienen acceso pleno a los recursos del sistema. El núcleo normalmente representa sólo una pequeña parte de lo que por lo general se piensa que es todo el sistema operativo, pero es tal vez el código que más se utiliza. Por esta razón, el núcleo reside por lo regular en la memoria principal, mientras que otras partes del sistema operativo son cargadas en la memoria principal sólo cuando se necesitan.

El núcleo de un sistema operativo normalmente el código necesario para realizar las siguientes funciones:

• Manejo de interrupciones.
• Creación y destrucción de procesos.
• Cambio de estado de los procesos.
• Despacho.
• Suspensión y reanudación de procesos.
• Sincronización 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.

El Kernel consiste en la parte principal del código del sistema operativo, el cual se encargan de controlar y administrar los servicios y peticiones de recursos y de hardware con respecto a uno o varios procesos, este se divide en 5 capas:



Nivel 1. Procesador. (Núcleo)

Se encarga de activar los cuantum de tiempo para cada uno de los procesos, creando interrupciones de hardware cuando no son respetadas.Se introduce la noción de proceso como un programa en ejecución. Entre los requisitos fundamentales de un sistema operativo que ofrezca soporte para múltiples procesos se incluye la capacidad de suspender y reanudar los procesos.
Esto exige salvaguardar los registros del hardware, de modo que la ejecución pueda cambiar de un proceso a otro. Además, si los procesos necesitan cooperar, hace falta algún método de sincronización. Una de las técnicas más simples, pero un concepto importante en el diseño de sistemas operativos, es el semáforo.

• Objetos→ proceso y semáforo
• Operaciones típicas→ crear, destruir, suspender, reanudar, señalizar y esperar

Nivel 2. Entrada/Salida.

Proporciona las facilidades para poder utilizar los dispositivos de E/S requeridos por procesos.
Tiene que ver con los dispositivos de almacenamiento secundario. En este nivel se sitúan las funciones de ubicación de las cabezas de lectura y escritura, y se producen las transferencias reales de bloques. Este nivel se apoya en el nivel anterior para planificar las operaciones y notificar al proceso que hizo la solicitud que la operación ha culminado.

Ø Objetos→ bloques de datos
Ø Operaciones típicas→ leer, escribir, asignar y liberar
Dispositivos de Entrada y Salida.

El código destinado a manejar la entrada y salida de los diferentes periféricos en un sistema operativo es de una extensión considerable y sumamente complejo. Resuelve las necesidades de sincronizar, atrapar interrupciones y ofrecer llamadas al sistema para los programadores.

Nivel 4. Sistema 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. Da soporte al almacenamiento a largo plazo de los archivos con nombre.
En este nivel, los datos del almacenamiento secundario se contemplan en términos de entidades abstractas de longitud variable, en contraste con el enfoque orientado al hardware del nivel de E/S básicas, en términos de pistas, sectores y bloques de tamaño fijo.
• Objetos→ archivos dispositivos
• Operaciones típicas→ crear, destruir, abrir, cerrar, leer y escribir.

Nivel 5. Información o Aplicación o Intérprete de Lenguajes.

Facilita la comunicación con los lenguajes y el sistema operativo para aceptar las ordenes en cada una de las aplicaciones. Cuando se solicitan ejecutando un programa el software de este nivel crea el ambiente de trabajo e invoca a los procesos correspondientes.

Ofrece al usuario una interfaz con el sistema operativo. Se denomina shell y separa al usuario de los detalles, le presenta el sistema operativo como un simple conjunto de servicios. El shell acepta las órdenes del usuario o las sentencias de control de trabajos, las interpreta, crea y controla los procesos según sea necesario.
El intérprete de comandos representa la interfaz entre el usuario y el sistema operativo. Algunos sistemas operativos incluyen el intérprete en el kernel. Otros como el DOS o UNIX, poseen un programa especial para cumplir esta función que se ejecuta cuando se inicia el sistema.
• Objetos→ datos del entorno
• Operaciones típicas→ sentencias del lenguaje de ordenes

martes, 5 de septiembre de 2017

1.5 Estructura de los S.O

Estructura de un sistema operativo
Analizando la historia de los Sistemas Operativos notamos que se puede considerar que éstos surgen desde finales de los 50's con una arquitectura bastante obsoleta comparada con la de la actualidad.
Para poder construir un Sistema Operativo se deben tener en cuenta dos tipos de requisitos, los cuales son:
§  Requisitos de usuario: Un sistema fácil de usar y de aprender, seguro, rápido y adecuado para el uso que se le necesita dar.
§  Requisitos del software: Considera el continuo mantenimiento, forma de operación, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad.
El objetivo de la estructuración es buscar una organización interna que facilite la comprensión, incremente la portabilidad, extensión y favorecer el mantenimiento de los Sistemas Operativos.
A continuación se describen las distintas estructuras que presentan los actuales Sistemas Operativos para satisfacer las necesidades que de ellos se quieren obtener. Éstas no son de ninguna manera las únicas estructuras posibles, pero nos darán una idea de algunos diseños que se han llevado a la práctica.

Los Sistemas Monolíticos. (Estructuras Simples)
Según la Real Academia Española Monolítico es algo de una pieza, sin fisuras o rígido, inflexible.
Los sistemas Monolíticos son la estructura más simple para un Sistema Operativo. También llamados de Estructura Modular, fue escrito para proporcionar una máxima funcionalidad dentro del menor espacio posible.
Se caracteriza porque no tienen una estructura totalmente clara, con ésto nos referimos a que sus rutinas y funcionalidades (ej. manejo de drivers, sistemas de archivos, gestión de memoria, etc.), se encuentran agrupados en un solo programa (el Sistema Operativo).
Este sistema está descrito como un conjunto de procedimientos o rutinas entrelazadas de tal forma que cada una tiene la posibilidad de llamar a las otras rutinas cada vez que así lo requiera. Sin embargo, cabe destacar las falencias en este tipo de estructura que radica principalmente en la poca confiabilidad otorgada, ya que todo el sistema, al no tener una estructura definida, se ejecuta todo en el mismo nivel del núcleo (kernel) lo que lo hace altamente vulnerable, por esta razón cuando falla un programa se produce un error en todo el sistema.
Además, otro problema inherente al Sistema Monolítico es que si se modifica el hardware por lo general es necesario recompilar el kernel para poder disponer de las funcionalidades. Ésto consume tiempo y recursos porque la compilación de un nuevo kernel puede durar varias horas y necesita de una gran cantidad de memoria. Cada vez que alguien añade una nueva característica o corrige un error, significa que se necesitará hacer una recompilación del kernel entero, un ejemplo de ésto podemos verlo en Linux. También el hecho de que en el espacio del kernel están incluidos todos los servicios básicos, tiene tres grandes inconvenientes: el tamaño del núcleo, la falta de extensibilidad y la mala capacidad de mantenimiento.
Esquema Sistema Monolítico

EJEMPLOS SISTEMAS MONOLÍTICOS:
Los ejemplos típicos de este sistema son Unix, MS-DOS y Mac OS hasta Mac OS 8.6. Otros ejemplos son:
§  Linux
§  Syllable
§  Núcleos tipo DOS
§  DR-DOS
§  Familia Microsoft Windows 9x (95, 98, 98SE, Me)


domingo, 3 de septiembre de 2017

1.4 Clasificación de los S.O

Clasificación


Administración de tareas


  • Monotarea: Solamente puede ejecutar un proceso (aparte de los procesos del propio S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción.
  • Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.

 Administración de usuarios


  • Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo.
  • Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.

Manejo de recursos


  • Centralizado: Si permite usar los recursos de una sola computadora.
  • Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos... ) de más de una computadora al mismo tiempo.

Ejemplos de Sistemas Operativos ( ordenadores )



Ejemplos de Sistemas Operativos ( Dispositivos Moviles )


viernes, 1 de septiembre de 2017

1.3 Evolucion historica

Existen diversas clasificaciones de los sistemas operativos, la más común es por lo servicios que ofrecen al usuario final:
 Sistemas operativos monousuarios
Los sistemas operativos monousuarios son aquellos que soportan a un usuario a la vez, sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales típicamente se han clasificado en este renglón.
Sistemas operativos multiusuarios
Los sistemas operativos multiusuarios son capaces de dar servicio a más de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente.
Sistemas operativos monotareas
Los sistemas monotarea son aquellos que sólo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez.
Sistemas operativos multitareas
Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad.
Sistemas operativos uniproceso
Un sistema operativo uniproceso es aquél capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS.
Sistemas operativos multiproceso
Un sistema operativo multiproceso se refiere al número de procesadores del sistema, que es más de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente. Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simétrica, los procesos o partes de ellos son enviados indistintamente a cualquiera de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema.

6.6 VALIDACIÓN Y AMENAZA

Amenazas a la seguridad en el acceso al sistema: ·   Intrusos. ·   programas malignos. Intrusos: ·   Piratas o hackers:  individuos...