Procesos: Componentes y estados

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

¿Cuál de las siguientes NO es un componente esencial de un proceso en ejecución?

  • Sección de texto (código del programa)
  • Contador de programa (PC)
  • Registros del CPU
  • Archivos de configuración estáticos (correct)

¿Qué distingue principalmente a un proceso de un programa?

  • Un proceso es un archivo estático en disco, mientras que un programa es una instancia activa cargada en memoria.
  • Un programa es un archivo estático en disco, mientras que un proceso es una instancia activa cargada en memoria. (correct)
  • Un proceso es un conjunto de instrucciones, mientras que un programa es un conjunto de datos.
  • Ambos términos son intercambiables y representan lo mismo.

En el contexto de los estados de un proceso, ¿qué significa que un proceso esté en estado 'Listo' (Ready)?

  • El proceso ha finalizado su ejecución de manera exitosa.
  • El proceso tiene todos los recursos necesarios y está esperando a que la CPU lo ejecute. (correct)
  • El proceso está bloqueado esperando un evento externo, como la finalización de una operación de E/S.
  • El proceso está esperando a ser creado por el sistema operativo.

¿Qué ocurre con un proceso que está en estado 'En Ejecución' (Running) si termina su tiempo de CPU asignado (quantum)?

<p>Regresa al estado 'Listo' (Ready). (D)</p>
Signup and view all the answers

¿Qué tipo de evento podría causar que un proceso pase del estado 'En Ejecución' (Running) al estado 'Esperando' (Waiting)?

<p>La necesidad de esperar un evento externo como la lectura de un archivo. (A)</p>
Signup and view all the answers

¿Cuál es la principal función del Bloque de Control de Proceso (PCB)?

<p>Actuar como el 'DNI' del proceso, almacenando información crítica para su gestión y control. (C)</p>
Signup and view all the answers

¿Qué información NO se encuentra típicamente dentro del Bloque de Control de Proceso (PCB)?

<p>La dirección física en memoria donde se encuentra el código del proceso. (C)</p>
Signup and view all the answers

¿Qué facilita el PCB en un sistema operativo multitarea?

<p>El cambio de contexto (context switch) eficiente entre procesos. (A)</p>
Signup and view all the answers

¿Cuál es la consecuencia principal de no guardar el valor del Contador de Programa (PC) en el PCB durante un cambio de contexto?

<p>El sistema operativo no podría volver a ejecutar el proceso correctamente después de ser interrumpido. (C)</p>
Signup and view all the answers

¿Qué son los hilos (threads) en el contexto de un proceso?

<p>Unidades básicas de ejecución dentro de un proceso que permiten realizar múltiples tareas concurrentemente. (B)</p>
Signup and view all the answers

¿Cuál es una ventaja clave de usar hilos en lugar de procesos separados?

<p>Comunicación más rápida entre las diferentes partes de la aplicación. (D)</p>
Signup and view all the answers

¿Qué recurso es típicamente compartido entre todos los hilos dentro de un mismo proceso?

<p>Memoria del proceso. (C)</p>
Signup and view all the answers

¿Qué ocurre si un hilo dentro de un proceso llama a la función exit()?

<p>Se terminan todos los hilos dentro del proceso y el proceso en sí. (A)</p>
Signup and view all the answers

¿Cuál es el objetivo principal de la planificación de procesos en un sistema operativo?

<p>Decidir qué proceso ejecutar, cuándo y durante cuánto tiempo para optimizar el uso del CPU y garantizar un sistema receptivo. (B)</p>
Signup and view all the answers

¿Cuál de los siguientes NO es un objetivo clave de la planificación de procesos?

<p>Maximizar el uso del espacio en disco duro. (D)</p>
Signup and view all the answers

¿Qué tipo de procesos se encuentran en la cola de listos (Ready Queue)?

<p>Procesos que tienen todos los recursos necesarios excepto el CPU. (B)</p>
Signup and view all the answers

¿Qué ocurre durante un cambio de contexto (context switch) que lo convierte en una 'sobrecarga'?

<p>El CPU está guardando y restaurando el estado de los procesos, sin realizar trabajo útil directamente. (D)</p>
Signup and view all the answers

¿Qué problema principal presenta el algoritmo de planificación First-Come, First-Served (FCFS)?

<p>Puede llevar a que procesos cortos tengan que esperar mucho tiempo si un proceso largo llegó primero (efecto convoy). (B)</p>
Signup and view all the answers

¿Por qué el algoritmo Shortest Job First (SJF) es difícil de implementar en la práctica?

<p>Es difícil predecir con precisión el tiempo de CPU restante para cada proceso. (A)</p>
Signup and view all the answers

¿Qué característica define al algoritmo de planificación Round Robin (RR)?

<p>Asigna un tiempo fijo (quantum) a cada proceso antes de ser interrumpido. (B)</p>
Signup and view all the answers

¿Qué riesgo está asociado con el uso de prioridades en la planificación de procesos?

<p>Inanición (procesos de baja prioridad nunca se ejecutan). (D)</p>
Signup and view all the answers

¿Cómo se organizan generalmente los procesos en sistemas operativos modernos en términos de jerarquía?

<p>En una jerarquía de árbol, donde cada proceso (excepto el inicial) tiene un padre. (A)</p>
Signup and view all the answers

¿Qué hace la llamada al sistema fork() en sistemas UNIX/Linux?

<p>Crea un nuevo proceso idéntico al proceso actual (proceso hijo). (B)</p>
Signup and view all the answers

¿Cuál es la diferencia clave en el valor de retorno de la llamada fork() entre el proceso padre y el proceso hijo?

<p>El padre recibe el PID del hijo, mientras que el hijo recibe 0. (C)</p>
Signup and view all the answers

Flashcards

¿Qué es un proceso?

Un programa en ejecución, secuencial.

Sección de texto

Código del programa.

Contador de programa (PC)

Indica la próxima instrucción a ejecutar.

Sección de datos

Variables globales en un proceso.

Signup and view all the flashcards

Estado Nuevo (New)

El proceso acaba de ser creado. El SO reserva recursos.

Signup and view all the flashcards

Estado Listo (Ready)

El proceso espera a que el CPU lo ejecute.

Signup and view all the flashcards

Estado En Ejecución (Running)

El proceso está siendo ejecutado por el CPU.

Signup and view all the flashcards

Estado Esperando (Waiting/Blocked)

El proceso no puede continuar hasta un evento externo.

Signup and view all the flashcards

Estado Terminado (Terminated)

El proceso ha finalizado su ejecución.

Signup and view all the flashcards

Zombie

Proceso terminado, pero no leído por el padre.

Signup and view all the flashcards

Huérfano

Proceso cuyo padre terminó antes que él.

Signup and view all the flashcards

PCB (Bloque de control de proceso)

Estructura de datos para gestionar cada proceso, como un 'DNI'.

Signup and view all the flashcards

¿Por qué es importante el PCB?

Suspender, reanudar procesos, cambio de contexto y aislamiento.

Signup and view all the flashcards

PID (Process ID)

Número único que identifica el proceso.

Signup and view all the flashcards

Contador de Programa (PC) en PCB

Dirección de la próxima instrucción a ejecutar.

Signup and view all the flashcards

¿Qué es un cambio de contexto (context switch)?

Guardar PCB del proceso actual y cargar el del nuevo proceso.

Signup and view all the flashcards

¿Qué algoritmo de planificación asigna tiempos fijos?

Round Robin (RR)

Signup and view all the flashcards

¿Qué componente decide qué proceso se ejecuta?

El planificador (scheduler)

Signup and view all the flashcards

¿Dónde encuentra el planificador un proceso a ejecutar?

cola de listos

Signup and view all the flashcards

¿Qué es un hilo?

Unidad básica de ejecución dentro de un proceso.

Signup and view all the flashcards

¿Qué comparten los hilos?

Segmento de código, datos globales, heap, archivos abiertos.

Signup and view all the flashcards

¿Qué son Llamadas a Procedimientos Remotos (RPC)?

Permite llamar a funciones en otra máquina como si fueran locales.

Signup and view all the flashcards

¿Que son Named Pipes (FIFOs)

Comunican procesos no relacionados, persisten en el sistema de archivos.

Signup and view all the flashcards

Study Notes

  • Un proceso es un programa en ejecución, con ejecución secuencial.

Componentes de un Proceso

  • Sección de texto: El código del programa.
  • Contador de programa (PC): Indica la próxima instrucción a ejecutar.
  • Registros del CPU: Estado actual del proceso.
  • Pila (Stack): Datos temporales (parámetros, direcciones de retorno, variables locales).
  • Sección de datos: Variables globales.
  • Heap: Memoria asignada dinámicamente.
  • Un programa es pasivo, mientras que un proceso es activo porque está cargado en memoria.

Estados de un Proceso

  • Nuevo: El proceso acaba de ser creado y el SO está reservando recursos para él.

  • Listo: El proceso tiene todos los recursos necesarios y está a la espera de que el CPU lo ejecute, encontrándose en la cola de listos del planificador.

  • El CPU sólo puede ejecutar un proceso a la vez por núcleo, así que el SO alterna entre ellos.

  • En Ejecución: El proceso está siendo ejecutado por el CPU de forma secuencial.

  • Transiciona de este estado si termina su tiempo de CPU o si necesita esperar un evento, como leer un archivo y entonces pasa a Waiting.

  • Esperando: El proceso no puede continuar hasta que ocurra un evento externo, como E/S, señales o sincronización.

  • Se localiza en una cola de espera asociada al recurso que necesita.

  • Terminado: El proceso ha finalizado su ejecución, liberando sus recursos pero el PCB puede quedar temporalmente para que el padre lea su estado.

  • Zombie: Proceso terminado cuyo estado no ha sido leído por el padre.

  • Huérfano: Proceso cuyo padre terminó antes que él, siendo adoptado por init.

Bloque de Control de Proceso (PCB)

  • Es una estructura de datos con la que el sistema operativo gestiona cada proceso, el cual facilita al SO suspender y reanudar procesos, facilita los cambios de contexto entre procesos y mantiene el aislamiento entre procesos para seguridad y estabilidad.

Componentes Clave del PCB

  • Información de Identificación: Incluye PID (identificador único), PPID (ID del proceso padre), y permisos de acceso de usuario/grupo.
  • Estado del Proceso: Registra el estado actual (Nuevo, Listo, Ejecutando, Esperando, Terminado).
  • Información de Ejecución: Incluye el contador de programa (PC) y los valores de los registros del CPU.
  • Información de Planificación: Incluye la prioridad del proceso, la política de scheduling y el tiempo restante de CPU.
  • Gestión de Memoria: Direcciones de memoria asignadas y límites de memoria.
  • Contabilidad: Tiempo de CPU usado y hora de inicio del proceso.
  • Estado de E/S: Lista de archivos abiertos y dispositivos asignados.
  • En un cambio de contexto, el estado del proceso actual se guarda en su PCB y se carga el estado del nuevo proceso desde su PCB.

Hilos

  • Un hilo es una secuencia de instrucciones que puede ser manejada independientemente por el planificador del SO.

  • En un proceso tradicional, 1 hilo = 1 flujo de ejecución, si el proceso tiene multihilos, tiene múltiples hilos que comparten recursos como memoria y archivos.

  • Comparten la memoria del proceso así como permisos y atributos y tienen exclusivos un contador de programa, registros del CPU y Stack.

  • Es más eficiente crear un hilo que un proceso y la comunicación entre hilos es más rápida.

  • Los hilos pueden estar en estado Ready, Running o Blocked.

  • Pueden ocurrir condiciones de carrera cuando varios hilos acceden a un recurso compartido y se debe usar mutex o semáforos para bloquear los hilos.

  • Se produce un deadlock, cuando dos hilos se bloquean mutuamente esperando recursos (Hilo A espera un recurso de B, y viceversa).

Planificación de Procesos

  • La planificación es usada por el Sistema Operativo y su objetivo principal es optimizar el uso del CPU y garantizar un sistema receptivo del CPU.

Objetivos Clave

  • Maximizar la utilización del CPU

  • Equidad

  • Minimizar tiempo de respuesta

  • Throughput

  • La cola de listos contiene procesos en estado Ready, y la cola de espera, procesos en estado Waiting.

  • El planificador selecciona el próximo proceso a ejecutar desde la cola de listos.

  • En un cambio de contexto, el SO guarda el estado del proceso actual en su PCB, carga el estado del nuevo proceso desde su PCB y transfiere el control al nuevo proceso.

  • El cambio de contexto implica una sobrecarga ya que el CPU no hace trabajo útil, solo guarda y restaura estados entre 1 a 100 microsegundos.

Algoritmos de Planificación

  • First-Come, First-Served (FCFS): Se ejecutan en orden de llegada, pero si un proceso largo llega primero, los cortos esperan mucho.
  • Shortest Job First (SJF): Ejecuta primero el proceso con menor tiempo de CPU restante, optimizando minimización del tiempo de espera pero difícil de predecir.
  • Round Robin: Cada proceso recibe un quantum de CPU antes de ser interrumpido.
  • Prioridades: Los procesos con mayor prioridad se ejecutan primero, pero procesos de baja prioridad puede que nunca de ejecuten.

Creación y Terminación de Procesos

  • Los procesos se organizan en una jerarquía árbol, donde cada proceso tiene un padre.
  • fork(): Duplica el proceso actual en sistemas UNIX/Linux.
  • Crea un hijo idéntico, con el mismo código, memoria y archivos, diferenciándose solo en el valor retornado (PID del hijo para el padre, 0 para el hijo).
  • exec(): Reemplaza el programa actual por uno nuevo sin crear un nuevo proceso, solo reemplaza el código ejecutado.
  • Los modelos de compartición de recursos pueden ser con todo (herencia total), con un subconjunto específico o sin compartición.
  • Terminación normal: El proceso libera recursos (memoria, archivos) y comunica su estado al padre por medio de código de salida.
  • Terminación forzada: El padre mata al hijo, por uso excesivo de recursos o porque la tarea del hijo ya no es necesaria.

Estado Zombie

  • Hijo que terminó pero el padre no ha llamado wait(), consumiendo entrada en la tabla de procesos hasta que el padre lee su estado usando wait() o ignora señales.
  • Estado Huérfano: Hijo que sigue ejecutándose cuando el padre termina, siendo asignado al proceso init (PID 1) como padre adoptivo.

Comunicación entre Procesos (IPC)

  • Memoria Compartida: Los procesos acceden a una región de memoria común, siendo más rápido que el paso de mensajes pero requiere sincronización.
  • Paso de Mensajes: Los procesos se comunican enviando mensajes a través de canales, como pipes, sockets o colas de mensajes, siendo más seguro pero también más lento que memoria compartida.
  • En UNIX un Pipe puede ser sincrónico o asíncrono
  • Condición de Carrera: Ocurre cuando múltiples procesos acceden a un recurso compartido sin sincronización, y el resultado final depende del orden de ejecución.

Pipes (Tuberías)

  • Un canal de comunicación unidireccional y puede haber Pipes ordinarios y con nombre.
  • Los Pipes Ordinarios (Anonymous Pipes) son para comunicación entre procesos relacionados y son temporales.
  • Los Named Pipes (FIFOs) son para la comunicación entre procesos no relacionados y persisten en el sistema de archivos.

Sockets

  • Puntos de comunicación bidireccionales que pueden usarse en la misma máquina o en red y soportan múltiples protocolos (TCP, UDP).
  • Los Sockets de Dominio Unix son para comunicación local en la misma máquina y son más rápidos que TCP/IP.
  • Los Sockets de Red (TCP/UDP) son para la comunicación entre máquinas.

Colas de Mensajes

  • Una cola de sistema asíncrono donde los procesos envían y reciben mensajes gestionada por el kernel y persisten y hay prioridades.

Comunicación entre Procesos Comparativa

  • Los Pipes son unidireccionales y volátiles, solo para procesos padre-hijo.
  • Los Sockets son bidireccionales y volátiles, con cualquiera relación entre procesos.
  • Las colas de mensajes son bidireccionales y persistentes, con cualquier relación entre procesos.

Llamadas a Procedimientos Remotos (RPC)

  • Un proceso permite llamar a funciones en otra máquina como si fueran locales, y componen Stub del cliente y Stub del servidor.
  • El Stub del cliente traduce la llamada local a un mensaje de red y el Stub del servidor recibe el mensaje y ejecuta la función real
  • Los Pipes, Sockets y RPCs permiten una arquitectura Cliente-Servidor

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Cooperating Processes in Operating Systems
5 questions
Operating Systems: Processes
19 questions

Operating Systems: Processes

IntelligibleCitrine1068 avatar
IntelligibleCitrine1068
Use Quizgecko on...
Browser
Browser