Estructura de los SO Procesos e Hilos

PREGUNTAS DE REFUERZO DIAPOSITIVA No 16

Sistemas operativos de acuerdo a su estructura


Modular
Anillos o Capas

Microkernel
Virtuales
Cliente/Servidor


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)


  • THE (Technische Hogeschool Eindhoven)
  • Venus
  • MULTICS (Multiplexed Information and Computing Service)





  • AIX
  • BeOS
  • Mach
  • MorphOS
  • QNX
  • Minix
  • Hurd
  • L4
  • RadiOS
  • Symbian
  • VSTa




  • ubuntu
    OpenVZ
  • Virtuozzo
  • FreeVPS
  • Linux-VServer
  • FreeBSD Jails
  • Solaris Containers
  • AIX Workload Partitions


Windows 7
windows xP
ubuntu
kubunyu
SUSE Linux
Windows server
Cent OS



Ensayo Sistemas Operativos Según su Estructura


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.

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 dedrivers, 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 delkernel 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.


El Micronúcleo surge como una nueva forma de organización para un Sistema Operativo, es un término algo tedioso de entender ya que puede no ser relativo a su tamaño, pero si a su diseño.
En este sistema las funciones centrales son manejadas por el núcleo(kernel) y la interfaz de usuario es manejada por el entorno(shell). El Microkernel se encarga de todo el código de un sistema, y de planificar los hilos(threads) con la finalidad de tener multitareas.
Algunas ventajas que podemos destacar de los Micronúcleos son los siguientes:
•Uniformidad de interfaces: disponen de una interfaz única para las solicitudes de los procesos, el paso de mensajes.
•Portabilidad: reduciendo el núcleo e implementando casi todo en servidores, para implementarlo en arquitecturas diferentes, sólo habría que modificar el núcleo haciendo más simple su portabilidad.
•Fiabilidad: es más fácil corregir fallas en un sistema pequeño ya que se pueden realizar pruebas más rigurosas que en un sistema mucho más grande.

Dentro de esta estructura también podríamos incluir el Sistema Cliente-Servidor ya que presenta una ligera variación en la idea del Microkernel la cual es que este sistema hace la diferencia entre dos clases de procesos: los servidores, cada uno de los cuales proporciona cierto servicio, y los clientes, que utilizan estos servicios. A menudo la capa inferior es un microkernel, pero eso no es requerido. La esencia es la presencia de procesos cliente y procesos servidor.
En los sistemas operativos modernos, los sistemas cliente-servidor nacen con la finalidad de minimizar el núcleo (kernel), trasladando el código de todos sus servicios a las capas superiores; y el núcleo sólo deberá controlar la comunicación, que se realiza mediante mensajes, entre clientes y servidores o servidores y hardware.
El objetivo es desarrollar la mayoría de las funciones del sistema operativos como procesos de usuario. Un proceso de usuario, llamado en este caso proceso cliente, envía una solicitud a un proceso servidor, que realiza el trabajo y devuelve la respuesta.
El sistema operativo se divide en partes donde cada una controla una faceta del sistema, entre ellos servicios a archivos, servicios a procesos, servicios a terminales, o servicios a la memoria, donde cada una es pequeña y controlable, así al ejecutar los procesos en modo usuario y no en modo núcleo si hay algún error en algún servidor, este afectará sólo a dicha parte y no a toda la máquina, ya que no se tiene acceso al hardware.
5.png

En esta estructura el Sistema Operativo queda definido modularmente por divisiones en capas o niveles, cuya organización está dada como una jerarquía de capas donde cada una de ellas ofrece una interfaz clara y bien definida, la capa superior solamente utiliza los servicios y funciones que ofrece la capa inferior, es decir, la capa n sólo se comunica para obtener lo requerido con la capa n-1 (Ver imagen derecha), donde la capa inferior es la más privilegiada. El encargado de que solamente haya comunicación entre capas adyacentes es el procesador.
La capa más interna o inferior (capa 0) corresponde al Hardware, mientras que la más alta o externa corresponde a la interfaz de usuario.
El primer sistema construido de esta manera fue el sistema THE (Technische Hogeschool Eindhoven), desarrollado en Holanda por E. W. Dijkstra (1968) y sus estudiantes.
El sistema original consta de 6 capas:
Capa 5: Se encuentra la interfaz de usuario.
Capa 4: Aloja los programas de usuario.
Capa 3: Se controlan los dispositivos E/S (entrada y salida).
Capa 2: Se administra la comunicación inter-proceso y la consola del operador.
Capa 1: Administración de memoria y discos.
Capa 0: Correspondiente al Hardware, realizando asignación del procesador, también alterna entre procesos cuando ocurren interrupciones o se han expirado y proporciona multiprogramación básica de la CPU.




Sistemas operativos Según los servicios que ofrecen


Monotarea
Multitarea
Multiproceso
Monousuario
Monoproceso
MS-DOS
GM-NAA I/O
BESYS
UMES
SHARE Operating System
Unix
linux
VMS
AmigaOS
WindowsNT
FreeBSD
Windows NT server
Windows 2000 Profesional
Unix
Linux
Windows XP
Windows 95,98,Me


windows NT


windows 2000






DOS


Windows 98,98,Me






Terminos Basicos

Programación en paralelo:La computación Paralela, es muy importante actualmente, al permitir mejorar la velocidad en la solución de grandes problemas, de modo que se mejora el rendimiento de computo.

La computación paralela es una forma de cómputo en la que muchas instrucciones se ejecutan simultáneamente, operando sobre el principio de que problemas grandes, a menudo se pueden dividir en unos más pequeños, que luego son resueltos simultáneamente (en paralelo).


Multinucleo: 
Un procesador multinúcleo es aquel que combina dos o más microprocesadores independientes en un solo paquete, a menudo un solo circuito integrado. Un dispositivo de doble núcleo contiene solamente dos microprocesadores independientes. En general, los microprocesadores multinúcleo permiten que un dispositivo computacional exhiba una cierta forma del paralelismo a nivel de thread(thread-level parallelism) (TLP) sin incluir múltiples microprocesadores en paquetes físicos separados. Esta forma de TLP se conoce a menudo como multiprocesamiento a nivel de chip (chip-level multiprocessing) o CMP.


Pila de Datos:Una pila (stack en inglés) es una lista ordenada o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Outúltimo enentrar, primero en salir) que permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el área de informática debido a su simplicidad y ordenación implícita de la propia estructura.

Nivel de Procesamiento:El concepto fundamental del efecto de nivel-de-proceso es que diversos métodos de codificar la información en resultado de la memoria en diversos tipos de códigos de la memoria. Los códigos de la memoria diferencian en su fuerza. La fuerza del código de la memoria, alternadamente, determina la velocidad del decaimiento del rastro de memoria y del éxito de (memoria ) de la memoria en un cierto plazo.

Esta estructura de la memoria sugiere que la memoria no tenga niveles separados de almacenaje. Esto es contrario a las opiniónes tales como tres-almacena el modelo de la memoria. El Nivel-de-Proceso considera que hay un número infinito de procesar niveles de memoria que es codificada. Los niveles son indistintos y los límites entre los niveles son no existentes. Bajo este modelo, el almacenaje reputa resuelto procesando.



PREGUNTAS DE REFUERZO DIAPOSITIVA No 39

Definiciones alternativas (Procesos e Hilos)


Procesos

  • Un proceso puede informalmente entenderse como un programa en ejecución. Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociados".
  • el concepto se refiere a la ejecución de diversas instrucciones por parte del microprocesador, de acuerdo a lo que indica un programa.
  • Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por:
    • Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
    • Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.
    • Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
    • Otra información que permite al sistema operativo su planificación.

Hilos

  • En sistemas operativos, un hilo de ejecuciónhebra o subproceso es la unidad de procesamiento más pequeña que puede ser planificada por un sistema operativo.
  • Un hilo en un sistema operativo es la caracterisctica que permite a una aplicación realizar varias tareas a la vez concurrentemente, los distintos hilos de ejecucion comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situacion de autentificacion. Esta accion permite simplificar el diseño de una aplicacion que debe llevar a cabo distintas funciones simultaneamente.
  • Los hilos son básicamente una tarea que puede ser ejecutada en paralelo con otra tarea; teniendo en cuenta lo que es propio de cada hilo es el contador de programa, la pila de ejecucion y el estado de la CPU(incluyendo el valor de los registros).

Planificadores


El planificador es un componente funcional muy importante de los sistemas operativos multitarea ymultiproceso, y es esencial en los sistemas operativos de tiempo real. Su función consiste en repartir el tiempo disponible de un microprocesador entre todos los procesos que están disponibles para su ejecución.



PCB y TCB



Los hilos no son independientes entre sí, a diferencia de los procesos que si pueden ser independientes.
Como todos los hilos pueden acceder a todas las direcciones de la tarea, un hilo puede leer la pila de cualquier otro hilo o escribir sobre ella. Aunque pueda parecer lo contrario la protección no es necesaria ya que el diseño de una tarea con múltiples hilos tiene que ser un usuario único.

PCB es sinónimo de Control de Procesos de bloque, y TCB significa Contexto Tarea Buffer. 
TCB describe un contexto de ejecución, (por ejemplo. Puntero de pila), el PCB un contexto medio ambiente, (por ejemplo. Segmentos de memoria y permisos). 
A PCB tendrá de uno o más TCB ligada a ella. 
TCB y PCB, ambos representan un buffer / array que almacena valores retenidas por diversos registros como Stack Pointer (SP), Contador de Programa (PC), y otras variables, mientras que cambiar de tarea se lleva a cabo.


Procesos Vs Hilos (Sistemas Operativos)


Semejanzas: Los hilos operan, en muchos sentidos, igual que los procesos.
  • Pueden estar en uno o varios estados: listo, bloqueado, en ejecución o terminado.
  • También comparten la CPU.
  • Sólo hay un hilo activo (en ejecución) en un instante dado.
  • Un hilo dentro de un proceso se ejecuta secuencialmente.
  • Cada hilo tiene su propia pila y contador de programa.
  • Pueden crear sus propios hilos hijos.
Diferencias: Los hilos, a diferencia de los procesos,  no son independientes entre sí.
  • Como todos los hilos pueden acceder a todas las direcciones de la tarea, un hilo puede leer la pila de cualquier otro hilo o escribir sobre ella. Aunque pueda parecer lo contrario la protección no es necesaria ya que el diseño de una tarea con múltiples hilos tiene que ser un usuario único.
Ventajas: de los hilos sobre los procesos.
  • Se tarda mucho menos tiempo en crear un nuevo hilo en un proceso existente que en crear un nuevo proceso.
  • Se tarda mucho menos tiempo en terminar un hilo que un proceso.
  • Se tarda mucho menos tiempo en conmutar entre hilos de un mismo proceso que entre procesos.
  • Los hilos hacen más rápida la comunicación entre procesos, ya que al compartir memoria y recursos, se pueden comunicar entre sí sin invocar el núcleo del SO.

No hay comentarios:

Publicar un comentario