Concepto y Estructura de Proceso

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 opciones describe mejor la relación entre un programa y un proceso?

  • Un programa es una entidad pasiva que representa el código, mientras que un proceso es una entidad activa con un contador de programa y recursos asignados. (correct)
  • Un proceso es un archivo ejecutable almacenado en el disco, mientras que un programa es una instancia activa de ese archivo en la memoria.
  • Un programa y un proceso son sinónimos y se pueden usar indistintamente.
  • Un programa es la unidad básica de gestión en un sistema operativo, mientras que un proceso es un conjunto de programas relacionados.

¿Cómo gestiona el kernel los recursos limitados entre los procesos en un sistema operativo?

  • El kernel permite que los procesos compitan libremente por los recursos sin ninguna supervisión.
  • El kernel asigna una cantidad fija de cada recurso a cada proceso al inicio y no la modifica.
  • El kernel asigna inicialmente una cantidad de recursos a cada proceso y ajusta esta asignación dinámicamente en respuesta a las necesidades del proceso y del sistema. (correct)
  • El kernel ignora la demanda de recursos de los procesos y los asigna aleatoriamente.

¿Cuál de los siguientes describe mejor el estado de 'Espera' en el ciclo de vida de un proceso?

  • El proceso ha finalizado su ejecución y está esperando ser eliminado de la memoria.
  • El proceso está ejecutando activamente instrucciones en la CPU.
  • El proceso está bloqueado, esperando que ocurra un evento como la finalización de una operación de E/S. (correct)
  • El proceso está esperando a ser asignado a un procesador.

¿Qué diferencia principal existe entre los estados 'Interruptible' e 'Ininterrumpible' en GNU/Linux?

<p>Un proceso en estado 'Ininterrumpible' está esperando por hardware directamente y no manejará señales, mientras que uno en 'Interruptible' está esperando un evento y puede manejar señales. (D)</p> Signup and view all the answers

¿Cuál de los siguientes elementos NO forma parte del Bloque de Control de Proceso (PCB)?

<p>Copia de la totalidad del código fuente del programa (D)</p> Signup and view all the answers

¿En qué se diferencia un proceso con múltiples hilos (threads) de un proceso tradicional?

<p>Un proceso con múltiples hilos comparte recursos como memoria y archivos abiertos entre todos sus hilos, permitiendo ejecutar múltiples tareas concurrentemente, mientras que un proceso tradicional tiene un solo hilo de ejecución. (B)</p> Signup and view all the answers

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

<p>Maximizar la utilización de la CPU teniendo siempre algún proceso en ejecución. (C)</p> Signup and view all the answers

¿Qué es el 'swapping' en la planificación de procesos?

<p>Una técnica para eliminar temporalmente un proceso de la memoria, guardando su estado en el disco para reducir la contención por la CPU. (B)</p> Signup and view all the answers

¿Por qué el cambio de contexto ('context switch') se considera una sobrecarga ('overhead') para el sistema?

<p>Porque el sistema está gastando tiempo en guardar y restaurar el estado de los procesos, sin realizar trabajo útil directamente. (D)</p> Signup and view all the answers

En el contexto de operaciones en procesos, ¿qué significa que un proceso sea 'zombie'?

<p>El proceso finalizó, pero su información aún debe mantenerse en la tabla de procesos hasta que su padre lo recoja mediante una llamada a <code>wait()</code>. (A)</p> Signup and view all the answers

¿Qué implicaciones tiene el uso de memoria compartida (shared memory) para la comunicación entre procesos (IPC)?

<p>Requiere que los procesos manejen explícitamente la sincronización para evitar condiciones de carrera. (B)</p> Signup and view all the answers

En el modelo productor-consumidor con un buffer limitado, ¿qué deben hacer el productor y el consumidor si el buffer está lleno o vacío, respectivamente?

<p>El productor debe esperar si el búfer está lleno, y el consumidor debe esperar si el búfer está vacío. (A)</p> Signup and view all the answers

En la comunicación entre procesos mediante 'paso de mensajes', ¿qué papel juegan las operaciones send() y receive()?

<p><code>send()</code> se usa para enviar un mensaje, y <code>receive()</code> se usa para recibir un mensaje. (D)</p> Signup and view all the answers

¿Cuál es la diferencia clave entre comunicación directa e indirecta en el contexto del paso de mensajes (IPC)?

<p>En la comunicación directa, los procesos se nombran explícitamente entre sí, mientras que en la indirecta, se utilizan buzones (mailboxes). (A)</p> Signup and view all the answers

En la comunicación cliente-servidor usando sockets, ¿qué identifica de manera única un socket?

<p>Tanto C como D son correctas. (B)</p> Signup and view all the answers

Flashcards

¿Qué es un proceso?

Informalmente, un programa que se está ejecutando.

¿Qué es la unidad de trabajo de un sistema informático moderno?

Un sistema operativo moderno organiza el trabajo en unidades llamadas procesos.

¿Cuáles son los estados de un proceso?

Nuevo, Ejecutando, Espera, Listo, Terminado.

¿Cuándo se convierte un programa en un proceso?

Cuando un programa se carga en memoria.

Signup and view all the flashcards

¿Qué significa el proceso interruptible?

Es bloqueado, esperando un evento (E/S, recurso, señal).

Signup and view all the flashcards

¿Qué significa el proceso stopped?

El proceso se ha detenido y solo puede reiniciarse con acción externa.

Signup and view all the flashcards

¿Qué significa le estado Zombie?

Proceso finalizado, pero su información aún está en sus tablas.

Signup and view all the flashcards

¿Qué es el PCB?

Bloque de control de proceso. Contiene la información necesaria para el manejo de un proceso.

Signup and view all the flashcards

¿Cuál es la función del planificador de CPU?

Asignar un proceso a un 'core' de la CPU, gestionando los procesos listos para ejecutar.

Signup and view all the flashcards

¿Qué es el tiempo compartido (time sharing)?

Es cambiar rápidamente entre los diversos procesos

Signup and view all the flashcards

¿Qué hace fork()?

Crear un proceso hijo nuevo.

Signup and view all the flashcards

¿En qué consiste el cambio de contexto?

Es el proceso de cambiar el estado de un proceso para ejecutar otro.

Signup and view all the flashcards

¿Qué es el PID?

Es el identificador único de un proceso en el sistema operativo.

Signup and view all the flashcards

¿Qué son los IPC?

Un modelo para que los procesos cooperativos se comuniquen e intercambien información.

Signup and view all the flashcards

¿Qué es la comunicación directa en IPC?

Los procesos se nombran explícitamente, estableciendo una conexión directa.

Signup and view all the flashcards

Study Notes

Concepto de Proceso

  • Un proceso es un programa en ejecución, representando la unidad de trabajo en sistemas informáticos modernos
  • Un sistema operativo se compone de varios procesos ejecutando código de usuario o del sistema operativo (SO)
  • Se puede ejecutar múltiples procesos simultáneamente, con la CPU multiplexando entre ellos

Estructura de la Memoria de un Proceso

  • La memoria utilizada al invocar funciones se almacena temporalmente, conteniendo parámetros, direcciones de retorno y variables locales
  • La memoria asignada dinámicamente varía en tiempo de ejecución del programa
  • Las variables globales tienen un tamaño fijo y no cambian durante la ejecución
  • El código ejecutable posee un tamaño fijo que no cambia durante la ejecución

Estados de los Procesos

  • El estado actual de un proceso se guarda en el program counter (contador de programa) y en los registros del procesador
  • Un proceso es una entidad activa con un contador de programa y recursos asociados
  • Un programa es una entidad pasiva, como un archivo
  • Los estados de un proceso son:
  • Nuevo: El proceso está siendo creado
  • Ejecutando: El proceso esta ejecutando intrucciones
  • Espera: El proceso espera un evento (terminación de E/S, señal)
  • Listo: El proceso espera ser asignado a un procesador
  • Terminado: El proceso finalizó

Procesos en GNU/Linux

  • Los estados son:
  • Running: El proceso se esta ejecutando o listo para ejecutar
  • Interruptible: El proceso está bloqueado, esperando un evento
  • Uninterruptible: El proceso está bloqueado, esperando una condición de hardware
  • Stopped: El proceso se ha detenido, sólo puede reanudarse con una acción de otro proceso
  • Zombie: El proceso ha finalizado, pero su información aún se mantiene en la tabla de procesos
  • Idle: El proceso está inactivo
  • El estado de un proceso en GNU/Linux se visualiza con comandos como ps y top

Bloque de Control del Proceso (PCB)

  • Cada proceso se representa en el SO por un bloque de control de proceso (PCB)
  • El PCB contiene datos necesarios para iniciar o reiniciar un proceso, y datos de conteo
  • El estado del proceso puede ser nuevo, listo, en ejecución, en espera, detenido, etc...
  • El program counter indica la dirección de la siguiente instrucción a ejecutar
  • Registros de CPU: Varían en número y tipo según la arquitectura
  • Información de planificación de la CPU: Contiene la prioridad del proceso y punteros a las colas de planificación
  • Información de gestión de memoria: Registros base, límite, tablas de páginas o segmentos, según el sistema
  • Información de conteo: CPU y el tiempo real utilizado, límites de tiempo, números de conteo, etc
  • Información de estado de E/S: Lista de dispositivos de E/S asignados, y lista de archivos abiertos

Hilos (Threads)

  • La mayoría de los SO modernos permiten que un proceso tenga múltiples hilos de ejecución, facilitando la multitarea
  • Los sistemas multicore se benefician de esto porque los varios hilos pueden ejecutar en paralelo
  • En sistemas que soportan hilos, el PCB se expande para incluir toda la información específica de cada hilo

Planificación de Procesos

  • Multiprogramación: Maximiza el uso de la CPU al tener procesos en ejecución en todo momento
  • Tiempo Compartido: Permite a los usuarios interactuar con múltiples programas concurrentemente
  • El planificador de procesos elige un proceso para ejecutar en un núcleo de CPU
  • Si hay más procesos que núcleos, los procesos en espera deben esperar a que un núcleo se libere para ser replanificados
  • La cantidad de procesos en memoria es el grado de multiprogramación
  • Objetivos requieren balancear el comportamiento de los procesos:
  • Proceso limitado por E/S (I/O-bound): Dedica más tiempo a las operaciones de E/S que a los cálculos
  • Proceso limitado por CPU (CPU-bound): Dedica más tiempo a los cálculos que a las operaciones de E/S

Colas de Planificación de Processos

  • Los procesos se añaden a la cola de listos (ready queue) al ingresar al sistema, esperando la ejecucuón del núcleo de CPU
  • Hay otras colas, con procesos esperando eventos como la finalización de operaciones de entrada/salida (E/S)(wait queue)
  • La planificación habitual utiliza diagramas de colas, con colas de listos y un conjunto de colas de espera
  • Los círculos representan los recursos, y las flechas indican el flujo de procesos
  • Un nuevo proceso se une inicialmente a la cola de listos (ready queue)
  • El núcleo asigna un proceso para ejecución o se le asigna(dispatch)
  • Estando en ejecución pueden ocurrir varios eventos:
  • Podría solicitar E/S y ser colocado en la cola de E/S
  • Podría crear un nuevo hijo y ponerse el cola de espera mientras espera por su terminación
  • Swapping significa eliminar temporalmente un proceso de la memoria

Tipos de Planificación

  • El programador de la CPU (CPU scheduler) selecciona un proceso listo y se lo assigna a la CPU
  • El CPU scheduler necesita seleccionar los procesos frecuentemente
  • E/S-bound puede ejectutarse sólo milisegundos antes de una solicitud E/S
  • CPU-bound requiere un core de CPU por major tiempo
  • Idealmente el CPU scheduler debe ejecutarse al menos cada cada 100 milisegundos
  • Algunos SO utilizan swapping, que permite eliminar procesos temporalmente de la memoria
  • Es necesario usar swapping cuando el la memoria se ha comprometido en exceso

Cambio de Contexto (Context Switch)

  • Cuando ocurre una interrupción, el sistema necesita guardar el contexto del proceso actual
  • El contexto se representa en el PCB.
  • Para cambiar un core requiere:
  • Guardar el estado del proceso actual
  • Restaurar el estado de un proceso diferente (context switch)
  • El cambio de contexto es una sobrecarga ya que el sistema no realiza trabajo útil
  • La velocidad del cambio del contexto depende del la velocidad de memoria, el número de registros para copiar y otras instrucciones
  • Velocidad típica de microsegundos

Operaciones en Procesos

  • El proceso padre (parent) crea procesos hijos (children), formando un árbol de procesos
  • La mayoría de los Sistemas Operativos (UNIX, GNU/Linux y Windows) identifican procesos con un identificador único (PID)
  • El PID es un valor único para cada proceso, en sistemas GNU/Linux esto se puede visualizar con "pstree"

Creación de Procesos

  • Cuando el proceso crea un child, el proceso hijo necesita recursos, como tiempo de CPU, memoria, y archivos
  • El proceso puede obtener los recursos directamente.
  • Puede estar limitados al conjunto de recursos del proceso parent
  • El parent puede dividir sus recursos entre sus hijos
  • Al ejectuar:
  • El parent puede continuar ejecutándose concurrentemente con sus hijos
  • El parent puede esperar que los hijos finalizen
  • El espacio de memoria para el proceso nuevo:
  • El proceso child se hace un duplicado del padre, copiando los datos.
  • El proceso child ejecuta un nuevo programa

Ejemplos de Creación

  • Sistemas GNU/Linux, usan "fork" desde el compilador C
  • Sistemas Windows, usan la "CreateProcess" function

Terminación de Procesos

  • Un proceso finaliza cuando exits.
  • El proceso se comunica con el parent mediante exit(), devuelve un valor
  • El SO retorna los recursos
  • El proceso parent puede acabar con la ejecucuión un proceso child con "system call*".
  • Por norma general sólo el parent puede hacer esto, puesto que una app maliciosa podría eliminar otros procesos
  • El parent necesita conocer el PIDs de sus hijos, sólo puede terminarlo si hay una relación entre ellos
  • El parent puede finalizar la ejecución child con varias opciones.
  • Que exceda el limite de recursos
  • La tarea assignada no sea necesaría
  • El parent termina y se cancela el child

Terminación de Procesos y procesos zombie

  • Un estado "zombie" es un proceso child que ha finalizado pero el parent no ejecutó wait()
  • Si el parent no invoca a wait() al terminar, deja los procesos children huérfanos

Mecanismos de Comunicación entre Procesos

  • Pueden ser:
  • Independientes: No comparten datos con otros procesos.
  • Cooperativos: Son afectados por otros processes
  • Razones para Cooperar:
  • Compartir Información
  • Acelerar cálculos
  • Modularidad
  • Requerimiento cooperativo en el mecanismo de comunicación entre procesos (IPC) que dejan interconectar datos

Modelos de Comunicación

  • Memoria Compartida, y Paso de Mensajes
  • Memoria Compartida: +rápido, requere system calls
  • Paso de Mensajes: Datos pequeños, fácil implementación

Sistemas de Memoria Compartida IPC

  • Requiere la creación de un área en la memoria para los procesos a comunicarse
  • En general esos procesos deben tener áreas de direcciones vinculadas
  • La ubicación de los datos es determinada por esos procesos, no por el SO
  • Los procesos responsables necesitan verificar que no se escriban simultáneamente a la misma ubicación

Memoria Compartida. El Problema Productor - Consumidor

  • Un producer crea información que se consume por consumer
  • Una solución común es usar la memoria compartida para uso concurrente entre productor y consumidor
  • El producer y el consumer deben syncronizarse mutuamente

Buffers

  • Es requisito el estar syncronizado entre en el producer y el consumer evitando consumir ítems no finalizados todavía
  • Buffer Unbound, no establecido en práctica con tamaño ilimitado, consumidor debe esperar que ocurran nuevos items
  • Buffer Bounded, tamaño ya establecido, el consumer necesita estar listo o esperar, el producer se asegurará de estar lleno
  • En memoria compartida, el **in apunta a la siguiente posición buffer, el out es primero el fin
  • *"buffer está vació cuando in == out"
  • El "buffer está lleno cuando (in + 1) % BUFFER SIZE) == out"
  • Consumer - "buffer[out]", "[out] = (out + 1) % BUFFER SIZE "
  • Producer - "buffer[in] = nextproduced", "in = (in + 1) % BUFFER SIZE"

Sistemas en Paso de Mensajes IPC

  • El SO es proporcionar una metodología de pasaje de mensajes para que los procesos cooperativos se comuniquen
  • Envío del mensaje que deja a los procesos la sincronización y la comunicación sin dejar acceder al espacio con la misma dirección
  • Es útil cuando tienes diferentes computadoras en red, ya que el SO proporciona la comunicación mediante "send" y "receive"
  • "Send" tiene la variable message, cuyo tamaño puede ser constante o no.

Comunicación

  • Es necesario que existan links entre procesos P y Q
  • Los links pueden ser físicamente o logícamente implementados
  • Hay diferentes métodos de implementar logícamente link y operaciones send()/receive()

Métodos de Comunicación

  • Directo o Indirecto, Syncrónico y Asynchrónico, y en búfer automático o explícito
  • En comunicación directa, los procesos se dan nombres mutuamente, la vinculación entre links se obtiene automáticamente
  • En comunicación indirecta, los mensajes se envían y reciben en "mailboxes", y se requiere la presencia de mailboxes con identificación única

Resolución del problema de Multi-Acceso en el mailbox

  • Permitir un link sólo por dos procesos como máximo
  • Permitir que sólo un proceso ejecute una receptción por vez
  • Permitir un sistema que arbitrariamente deje seleccionar al receptor.

Mailboxes

  • Los Mailboxes pueden pertenecer a un proceso o al SO, mediante sistemas Crear un mailbox, Operaciones envío y recibo, y Botrar un mailbox.

La sincronozación de las primitivas send()/receive()

  • Pueden bloquearse o no, o ser sincrónicos o asynchrónicos
  • Al enviarse en bloqueo el envío sucede hasta que hay un mensaje valido
  • No bloqueo el envío: envía pero continua
  • Recibo con bloqueo: el receptor se bloquea hasta que se envíe
  • Recibo sin bloqueo: Se envia un mensaje valido o nulo
  • Rendezvous: El emisor y receptor ambos se bloquean, y es una trivial solución al problema productor consumidor

Búfer. Buffering

  • En el modelo del sistema de IPC de pasajeros los mensajes son interceptados por la cola:
  • cero capacidad, no puede esperar los mensajes, el que envía debe bloquear
  • Capacidad limitada, la memoria tiene una longitud, entonces deben recebir la memoria usada con los ítems o bloquear la función hasta que haya más espacio
  • Capacidad ilimitada, la memoria tiene la longitud infinita, y con un envió por defecto que no bloqueá

Ejemplos IPC sistema POSIX

  • *Portable Operating System Interface, representan el conjunto de estándares principales en unix y Windows
  • General nombre que asigna 3 mecanismos IPC: Colas Mensajes, Semoforos y Memoria Compartida Posix.
  • colas Mensajes, permiten la Prioridad, dando a los msj que es necesario enviar primero
  • Semáfores, la llamada es sincronizada para multiples procedimientos POSIX con un valor que nunca es menor que cero
  • Memoria Compartida, facilita la zona con multiples processes, mediante método rápido IPC dejando de actualizar la información desde los cambios

Sistema de Pipes

  • Actua como conductores de comunicación entre procesos
  • Los sistemas UNIZ, da facilidad de uso para comunicarse aún la comunicación esté limitadan
  • Conexión: one way or two way commnunication, si la comunicación es semi dupléx, que deje la información viajar sólo con la dirección asignada o dupléx completo deje viajar los datos desde las dierecciones asignadas.
  • Relacionado parent-child si la comunicación es de la red, the processus must rest a common machine

Los Procesos Ordinarios The Ordinaries Pipes

  • Los procesos ordinarios o comunes permite que los dos procesos comuniquen por el modelo productor consumidor, con escritura, y la data se lee
  • Sistema UNIX construyen con la función pipe(intfd[]), retorna y lee, el descriptor de archivo desde la escritura

Ejemplo del Sistema Ordinary Pipes

  • Se trata como archivo en llamada y retorna desde los filesystem read/write
  • No puede acceder al proceso exterior, el padre creando, mediante fork el pipes
  • Como el child hereada lo abierto del padre, el "pipe" va para el *type especial file"

Ejemplo en *Ordinary Pipes *

  • Hay code para Unix - C

Los Named Pipes - Ejemplo Linux

  • Sistema mas simple para un par de procesos a comunicarse desde Sistemas UNIX y Windows, es finito el uso
  • En el code tienen varios writes, y continúa una vez finalizado
  • El código puede ser *two way, it doesn't requires *relacionamiento de hijo e puede ser multi proceso en write

Comunicación Cliente-Servidor, y Sockets

  • El puro de comunicar viene a la end point, la comunicación por la Net usa los sockets
  • Estos tienen direccionamientos tipo" Internet Protocol Address- IPaddress” concatenanda con port
  • En general, usan la tecnología cliente/servidor
  • Los servers escuche por el puerto específico, una vez que el " server" recibe la la llamada , hace la conección

AlgunOS servidores, y sus puertos

  • *El SSH puerto es a partir del 22, *FTP es en 21, la "Web es 80
  • Todos los puertos a bajo de 1024 son conocidos y para implementación de Services estándar
  • Un cliente inicia hace un puerto
  • La connexión se hace con un par de "Sockets" uno del host, uno del server "Envia y Recibe, en dependencia de la dirección del type_ end point que va
  • La data es con conexiones únicas dentro del servidor de la conexión.

Los Sistemas se Remote Procedural Calls-RPC

  • Tiene un método de call-procedimientos con conectividad entre la red
  • Al diferente lo IPC los ""msj" en la comunicación RPC van estructured
  • Y va al escucha por el demon", el porte del Remoto y cada vez tenga el identificador.

El *porte, al comenzar y la cantidad de mensajes tiene número incluido al principio

  • Los sistemas normales tienen Port es red son muchos dirección IP diferencia

Studying That Suits You

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

Quiz Team

Related Documents

More Like This

Operating Systems Process Management
14 questions
Operating Systems: Process Management
13 questions
Operating Systems: Process Management
36 questions
Operating Systems: Process Management
10 questions
Use Quizgecko on...
Browser
Browser