Multihilos - bleums/Redes-Comunicaciones GitHub Wiki
Sistemas Operativos
En términos generales, el sistema operativo es el administrador de los recursos del sistema de cómputo y es el encargado de la ejecución de los servicios para los programas y de los comandos digitados por el usuario.
Tipos de recursos
- Físicos: Dispositivos de entrada o salida
- No Físicos: Como datos, por ejemplo
- Compartidos
- No compartidos
Administración de los recursos del sistema
Gestión de procesos:
- Nuevo: El proceso existe y el sistema lo reconoce, pero aún no tine tiene los recursos para iniciar su ejecución.
- Listo: El proceso tiene todo lo que necesita para ejecutarse, excepto el procesador, es decir debe esperar que el sistema operativo le asigne un "turno de proceso".
- En ejecución: El proceso tiene todo lo necesario y se ejecuta.
- En espera: Durante su ejecuión, el proceso tiene necesidad de algo más de lo que le fue asignado. Ya sea un recurso, información o un permiso.
- Terminado: El proceso terminó su ejecución, y está en la tarea de devolver los recursos que le fueron asignados.
Gestión de memoria
- ROM: Contiene las instrucciones básicas que el computador puede realizar. No es modificable en forma temporal ni permanente.
- RAM: Es la memoria de trabajo, en ella se guarda la información del software que está en ejecución (incluido el SO) y de los datos con que este software está trabajando.
- Memoria Secundaria: Esta memoria puede estar dentro del computador en forma permanente (disco duro), o puede ser introducida en él en forma temporal (disquetes).
El administrador de memoria del SO utiliza estos tipos de memoria en diferentes etapas de ejecución del sistema de cómputo, pero principalmente, presta una serie de servicios a los procesos, generalmente relacionados con el uso de la memoria RAM:
- Solicitar memoria
- Liberar memoria
- Compartir memoria
Comunicación y sincronzación entre proceso
En el caso de los procesos independientes, que no dependen uno del otro, la interacción se presenta cuando compiten por el acceso a los recursos; mientras que en el caso de los procesos cooperantes, la interacción se da cuando estos se comunican y sincronizan entre sí para alcanzar un objetivo común. Generalmente, la sincronización se logra mediante el uso de semáforos y monitores, los cuales permiten controlar el estado del sistema, especialmente cuando un mismo recurso es solicitado por diversos procesos.
Construcción y ejecución de los programas
El hardware de una máquina proporciona las instrucciones básicas para la construcción de los programas; estas instrucciones son mezcladas por el sistema operativo, el cual las multiplica para poder ofrecer muchos más servicios. Durante la ejecución, podría decirse que se sigue un orden inverso a aquel en el cual se construyó el programa; los datos digitados por el usuario son tomados por el programa dentro del cual está trabajando, cuyas instrucciones son traducidas por el lenguaje en términos que pueda comprender el sistema operativo. Este, a su vez, las traduce a instrucciones que puedan ser ejecutadas por el hardware.
Multihilos
La diferencia esencial entre multihilo y multiproceso consiste en que cada proceso tiene un conjunto completo de variables, mientras que los hilos las comparten.
Propiedades de los Hilos
Estados de los hilos
- new
- runnable
- blocked
- dead