Podcast
Questions and Answers
¿Cuál de las siguientes NO es un componente esencial de un proceso en ejecución?
¿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?
¿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)?
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)?
¿Qué ocurre con un proceso que está en estado 'En Ejecución' (Running) si termina su tiempo de CPU asignado (quantum)?
¿Qué tipo de evento podría causar que un proceso pase del estado 'En Ejecución' (Running) al estado 'Esperando' (Waiting)?
¿Qué tipo de evento podría causar que un proceso pase del estado 'En Ejecución' (Running) al estado 'Esperando' (Waiting)?
¿Cuál es la principal función del Bloque de Control de Proceso (PCB)?
¿Cuál es la principal función del Bloque de Control de Proceso (PCB)?
¿Qué información NO se encuentra típicamente dentro del Bloque de Control de Proceso (PCB)?
¿Qué información NO se encuentra típicamente dentro del Bloque de Control de Proceso (PCB)?
¿Qué facilita el PCB en un sistema operativo multitarea?
¿Qué facilita el PCB en un sistema operativo multitarea?
¿Cuál es la consecuencia principal de no guardar el valor del Contador de Programa (PC) en el PCB durante un cambio de contexto?
¿Cuál es la consecuencia principal de no guardar el valor del Contador de Programa (PC) en el PCB durante un cambio de contexto?
¿Qué son los hilos (threads) en el contexto de un proceso?
¿Qué son los hilos (threads) en el contexto de un proceso?
¿Cuál es una ventaja clave de usar hilos en lugar de procesos separados?
¿Cuál es una ventaja clave de usar hilos en lugar de procesos separados?
¿Qué recurso es típicamente compartido entre todos los hilos dentro de un mismo proceso?
¿Qué recurso es típicamente compartido entre todos los hilos dentro de un mismo proceso?
¿Qué ocurre si un hilo dentro de un proceso llama a la función exit()
?
¿Qué ocurre si un hilo dentro de un proceso llama a la función exit()
?
¿Cuál es el objetivo principal de la planificación de procesos en un sistema operativo?
¿Cuál es el objetivo principal de la planificación de procesos en un sistema operativo?
¿Cuál de los siguientes NO es un objetivo clave de la planificación de procesos?
¿Cuál de los siguientes NO es un objetivo clave de la planificación de procesos?
¿Qué tipo de procesos se encuentran en la cola de listos (Ready Queue)?
¿Qué tipo de procesos se encuentran en la cola de listos (Ready Queue)?
¿Qué ocurre durante un cambio de contexto (context switch) que lo convierte en una 'sobrecarga'?
¿Qué ocurre durante un cambio de contexto (context switch) que lo convierte en una 'sobrecarga'?
¿Qué problema principal presenta el algoritmo de planificación First-Come, First-Served (FCFS)?
¿Qué problema principal presenta el algoritmo de planificación First-Come, First-Served (FCFS)?
¿Por qué el algoritmo Shortest Job First (SJF) es difícil de implementar en la práctica?
¿Por qué el algoritmo Shortest Job First (SJF) es difícil de implementar en la práctica?
¿Qué característica define al algoritmo de planificación Round Robin (RR)?
¿Qué característica define al algoritmo de planificación Round Robin (RR)?
¿Qué riesgo está asociado con el uso de prioridades en la planificación de procesos?
¿Qué riesgo está asociado con el uso de prioridades en la planificación de procesos?
¿Cómo se organizan generalmente los procesos en sistemas operativos modernos en términos de jerarquía?
¿Cómo se organizan generalmente los procesos en sistemas operativos modernos en términos de jerarquía?
¿Qué hace la llamada al sistema fork()
en sistemas UNIX/Linux?
¿Qué hace la llamada al sistema fork()
en sistemas UNIX/Linux?
¿Cuál es la diferencia clave en el valor de retorno de la llamada fork()
entre el proceso padre y el proceso hijo?
¿Cuál es la diferencia clave en el valor de retorno de la llamada fork()
entre el proceso padre y el proceso hijo?
Flashcards
¿Qué es un proceso?
¿Qué es un proceso?
Un programa en ejecución, secuencial.
Sección de texto
Sección de texto
Código del programa.
Contador de programa (PC)
Contador de programa (PC)
Indica la próxima instrucción a ejecutar.
Sección de datos
Sección de datos
Signup and view all the flashcards
Estado Nuevo (New)
Estado Nuevo (New)
Signup and view all the flashcards
Estado Listo (Ready)
Estado Listo (Ready)
Signup and view all the flashcards
Estado En Ejecución (Running)
Estado En Ejecución (Running)
Signup and view all the flashcards
Estado Esperando (Waiting/Blocked)
Estado Esperando (Waiting/Blocked)
Signup and view all the flashcards
Estado Terminado (Terminated)
Estado Terminado (Terminated)
Signup and view all the flashcards
Zombie
Zombie
Signup and view all the flashcards
Huérfano
Huérfano
Signup and view all the flashcards
PCB (Bloque de control de proceso)
PCB (Bloque de control de proceso)
Signup and view all the flashcards
¿Por qué es importante el PCB?
¿Por qué es importante el PCB?
Signup and view all the flashcards
PID (Process ID)
PID (Process ID)
Signup and view all the flashcards
Contador de Programa (PC) en PCB
Contador de Programa (PC) en PCB
Signup and view all the flashcards
¿Qué es un cambio de contexto (context switch)?
¿Qué es un cambio de contexto (context switch)?
Signup and view all the flashcards
¿Qué algoritmo de planificación asigna tiempos fijos?
¿Qué algoritmo de planificación asigna tiempos fijos?
Signup and view all the flashcards
¿Qué componente decide qué proceso se ejecuta?
¿Qué componente decide qué proceso se ejecuta?
Signup and view all the flashcards
¿Dónde encuentra el planificador un proceso a ejecutar?
¿Dónde encuentra el planificador un proceso a ejecutar?
Signup and view all the flashcards
¿Qué es un hilo?
¿Qué es un hilo?
Signup and view all the flashcards
¿Qué comparten los hilos?
¿Qué comparten los hilos?
Signup and view all the flashcards
¿Qué son Llamadas a Procedimientos Remotos (RPC)?
¿Qué son Llamadas a Procedimientos Remotos (RPC)?
Signup and view all the flashcards
¿Que son Named Pipes (FIFOs)
¿Que son Named Pipes (FIFOs)
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.