Conceptos Clave de Sistemas Operativos: Procesos, Threads y Arquitecturas

Clasificado en Informática

Escrito el en español con un tamaño de 4,64 KB

Capítulo 3

Ubicación del Proceso

La ubicación del proceso incluye:

  • El programa a ser ejecutado.
  • La ubicación de los datos locales y globales.
  • Las constantes definidas.
  • La pila usada por el proceso.

Estructura de Información de Estado del Proceso (PCB)

Conjunto de atributos.

Imagen del Proceso

Conjunto de programa, pila, datos y atributos.

Bloque de Control de Proceso (PCB)

El PCB contiene información vital sobre el proceso:

  • Identificación del proceso: PID, PPID y del usuario creador.
  • Información de estado del procesador: Registros visibles al usuario, registros de control y de estado (Program Counter, códigos de condición, estado, punteros a pila).
  • Información de control del proceso:
    • Información de planificación y estado: Estado del proceso, prioridad, información requerida para la planificación, evento.
    • Estructuras de datos.
    • Comunicación interprocesos.
    • Privilegios de los procesos.
    • Administración de memoria.
    • Recursos utilizados y estadísticas.

Creación de un Proceso

Pasos involucrados en la creación de un proceso:

  • Asigna un identificador de proceso único.
  • Asigna espacio para el proceso.
  • Inicializa el PCB.
  • Enlaza el proceso a las estructuras necesarias.
  • Crea nuevas estructuras de datos.

Cuándo Intercambiar un Proceso

El intercambio de procesos puede ocurrir debido a:

  • Interrupción periódica de reloj.
  • Interrupción de E/S.
  • Fallo de página.
  • Trap.
  • Llamadas al sistema.

Cambio de Contexto de un Proceso

Pasos para realizar un cambio de contexto:

  • Salvar la información del proceso actual.
  • Modificar el PCB del proceso ejecutando, cambiando su estado.
  • Mover el PCB a la estructura correspondiente (cola de espera, etc.).
  • Seleccionar un nuevo proceso para ejecución.
  • Modificar el PCB del proceso seleccionado.
  • Modificar estructuras del administrador de memoria (si es necesario).
  • Restablecer el contexto del proceso seleccionado.

Ejecución del Sistema Operativo

Kernel sin Proceso

  • El kernel se ejecuta fuera de cualquier proceso de usuario.
  • El SO se ejecuta como una entidad separada en modo supervisor.

Ejecución dentro de los Procesos de Usuario

  • El SO corre dentro del contexto de los procesos de usuario.
  • Los procesos corren en modo supervisor cuando ejecutan código del SO.

SO Basado en Proceso

  • Las funciones del kernel se ejecutan en procesos separados.
  • Usados en ambientes multiproceso o multicomputadoras.

Capítulo 4

Threads

Características de los threads:

  • Poseen un estado de ejecución.
  • Su contexto de ejecución es guardado cuando no ejecutan.
  • Poseen una pila de ejecución.
  • Almacenan información de variables estáticas por thread.
  • Acceden a los recursos del proceso: los threads de un mismo proceso comparten los recursos de dicho proceso.

Ventajas de los Threads

  • Menor tiempo de creación que un nuevo proceso.
  • Menor tiempo al finalizar.
  • Menor tiempo de intercambio entre threads de un mismo proceso.
  • Comunicación entre threads de un mismo proceso sin necesidad del kernel.

Consideraciones:

  • Suspender un proceso implica suspender todos sus threads, puesto que ocupan la misma área de memoria.
  • El término de un proceso implica el término de todos sus threads.

Estados de los Threads

  • Spawn (Generando otro thread).
  • Bloqueado.
  • Desbloqueado.
  • Finalizado.

Categorías de los Sistemas de Computación

SISD (Single Instruction, Single Data)

Un solo procesador ejecuta instrucciones operando con datos en una sola memoria.

SIMD (Single Instruction, Multiple Data)

Cada instrucción es ejecutada en procesadores distintos con datos distintos.

MISD (Multiple Instruction, Single Data)

Un conjunto de datos es transmitido a distintos procesadores, los cuales ejecutan distintas secuencias de instrucciones.

MIMD (Multiple Instruction, Multiple Data)

Varios procesadores en forma simultánea ejecutan secuencias de instrucciones distintas sobre un conjunto de datos distintos.

Entradas relacionadas: