- (PC 1)
- 2021-2:
- 2022-1:
- 2022-2:
- 2025-1:
- (PC 2)
- (PC 3)
- (PC 4)
- (2025-1)
- 6. Exactamente, ¿Qué es la RAM?
- La RAM es un memoria volátil (no persistente, se pierde su contenido si se apaga la compu), accede rápidamente a su contenido. La unidad de almacenamiento es la palabra. La RAM es como un hilo de una palabra de espesor, que se recorre en forma continua y con saltos hacia adelante y atrás y también con saltos. Almacena datos, metadatos y los procesos en ejecución. No tiene ningún conocimiento de la ubicación ni significado de los datos que almacena: para eso esta la metadata.
- asd
- (2022-2)
- (EP - 2022-II) 1. ¿Cuáles son las funciones fundamentales del Sistema Operativo?
- 1) Identificar y autentificar a los usuarios.
2) Facilitar el uso del computador (comunicación usuario/computador).
3) Identificar y contabilizar la utilización de los recursos.
4) Gestionar y asignar recursos de hardware a los programas: procesador, memoria y periféricos.
5) Proteger los datos y programa.
6) Gestionar y mantener archivos (en discos). - (EP - 2022-II) 2. Resuma los dos bloques de datos necesarios para gestionar la ejecución de todos los procesos
- 1) System Control Block (SCB): Contiene información general de todos los procesos en ejecución.
2) Process Control Block (PBC): Contiene información completa de cada proceso de ejecución. - (EP - 2022-II) 3. Resuma los estados de un proceso en ejecución
- El proceso está en:
1) Creación: Está en la cola de espera antes de la RAM
2) Listo: Está en la RAM, puede estar también en la CPU o en E/S
3) Corriendo: está en la RAM y en la CPU
4) Bloqueado: está en la RAM y en una E/S
5) Suspendido: no están la RAM sino en un área de disco - 4.
- No determinista: Toma muestras de las longitudes de las colas de llegadas a la RAM, de procesos en la RAM y en la R/S y aplica modelos estadísticos para disminuir las colas
- (2022-1)
- 6. Explique rápidamente los conceptos de: 1) programa fuente, 2) programa objeto, 3) programa ejecutable, 4) proceso en la RAM
- 1) programa fuente: compuesto de instrucciones de dos tipos: variables y código de programación (instrucciones)
2) Programa objeto: compilación (traducción) del fuente
3) Programa ejecutable: programa objeto + links de utilitarios
4) Proceso: programa ejecutable cargado en la RAM con df = dv + DB - (2021-2)
- ()
- (Semana 1) falta 2025-1: pg 8 porque pertenece a semana 3
- Semana 1-00: [00FuncionesSO]
- 2025-I: 2X, 3X
- 2. Describa los pasos de arranque del computador [p. 5]
- 1) La BIOS (el gestor de arranque GRUB) pregunta por el SO a utilizar y localiza su ubicación.
2) Se realiza un test de memoria RAM y comprueba qué dispositivos o periféricos están conectados.
3) El programa cargador carga en la RAM el cargador inicial.
4) Se Carga en la RAM el SO Kernell y shell. - 3. ¿Qué son: un sistema y un sistema operativo? [p. 5]
- - Un sistema es un conjunto de módulos integrados, se suele entrar/salir por diferentes módulos.
- Sistema operativo: es un software (procesos) que gestiona la ejecución de procesos productivos del computador: da facilidades a los usuarios, uso óptimo de los recursos, protege los datos y flujo de ejecución de procesos. - 2022-II: 1X, 2X, 5X
- 1. ¿Qué es la BIOS y para qué sirve? [p. 4]
- Es un programa grabado en la placa base y sirve para:
1) Elegir el sistema operativo a cargar
2) Verifica la RAM y los dispositivos disponibles
3) Carga el sistema operativo seleccionado para gestionar al computador - 2. Describa las componentes fundamentales de la operación del computador y los objetivos del SO. [p. 2]
- Las componentes fundamentales son: usuario, SO, hardware y los datos.
Las operaciones son:
1) Identifica a los usuarios, 2) les facilita la operación del computador
3) Identifica y contabiliza los recursos, 4) Gestionar y asignar recursos de hardware a los programas
4) Protege los datos y programas
5) Gestiona y mantiene los archivos en discos - 5. ¿El navegador Google Chrome junto con Drive constituyen un Sistema operativo?, ¿por qué? [p. 4 y p. 2]
- Sí, son un sistema operativo, por que satisfacen los objetivos: interfaz de usuario, gestionan los recursos y los datos.
- 2022-I: 2, 3, 5
- 2. Describa las componentes fundamentales de la operación del computador y como opera el SO con ellas: [p. 2]
- Las componentes fundamentales son: usuario, SO, hardware y los datos.
Las operaciones son:
1) Identifica a los usuarios,
2) les facilita la operación del computador
3) Identifica y contabiliza los recursos,
4) Gestionar y asignar recursos de hardware a los programas
5) Protege los datos y programas
6) Gestiona y mantiene los archivos en discos - 3. ¿Cuáles son los niveles (flujo) de comunicación en el computador en tiempo de ejecución? [p. 3]
- 1) Usuario,
2) Máquina simbólica de lenguaje de alto nivel,
3) Sistema operativo,
4) maquina operativa,
5) Micromáquina de dispositivos,
6) lógica digital para operación de dispositivos,
7) dispositivo electrónico - 5. Describa los procesos de encendido del computador. [p. 4]
- 1) La BIOS ubica al SO que debe arrancarse
2) Verifica el funcionamiento de la RAM y la conexión de dispositivos y periféricos
3) Carga el kernel del SO en la RAM y comienza a ejecutarse - 2021-II: 2X, 3X, 4X, 5
- 2. Defina en modo preciso y rápido: Una versión, una distribución, una llamada y una interrupción. [p. 4]
- - Una versión es una mejora de un software a lo largo del tiempo.
- Una distribución toma como base un software (generalmente el kernel/núcleo) y le da una orientación específica, es como una rama que se desarrolla en modo independiente del original.
- Una llamada: es una solicitud al CPU para ejecutar instrucciones y proviene del usuario u otro software, incluyendo el sistema operativo.
- Una interrupción: es una notificación urgente al CPU, generalmente es una respuesta al CPU o un evento urgente. - 3. ¿Qué es un sistema operativo y cuáles son sus funciones principales? [p. 3]
- El SO es un conjunto de programas con el fin de facilitar el uso del computador de modo eficiente.
Las funciones principales son:
1) identificar usuarios y recursos.
2) facilitar la comunicación usuario/computador,
3) gestionar los recursos: procesador, memoria y periféricos,
4) gestión y mantenimiento de archivos,
5) proteger datos y programas, etc. - 4. Defina a los sistemas operativos Android y Google Chrome. [p. 4]
- Ambos son propiedad de Google.
- Android: es una distribución de Linux orientado principalmente a sistemas móviles con pantalla táctil. Actualmente integra una sociedad que desarrolla estándares abiertos para dispositivos móviles.
- Chrome: es una distribución de Linux orientado principalmente a internet, su capa de shell es el navegador Google Chrome y almacena archivos en la nube, con Drive. - 5. Un objetivo principal de un sistema operativo es “hacer un uso eficiente del hardware”. ¿Cuándo es adecuado no cumplir este objetivo? [p. 2]
- Cuando:
El computador es usado en misiones riesgosas: se duplica el hardware, por si falla uno.
No se puede dar mantenimiento al hardware, también se duplica.
En situación que se requiere respuesta rápida, se sobredimensionan las capacidades. - Semana 1-01: [01FuncionesSO]
- 2025-I: 4X, 5X
- 4. Defina multiprogramación y multiprocesamiento, ¿pueden funcionar simultáneamente? [p. 16]
- - Multiprogramación: programación del Sistema operativo para gestionar varios procesos cargados a la RAM.
- Multiprocesamiento: varios procesadores (CPU) gestionados por el sistema operativo. Sí, es lo más frecuente. - 5. Describa el funcionamiento de un sistema operativo de tiempo compartido (time sharing) y cuáles son sus ventajas y desventajas? [p. 17]
- El SO establece una ventana de tiempo de ejecución para cada proceso, al terminar la ejecución de un proceso, se elige al siguiente.
Ventajas: optimiza el uso de todos los recursos, mejora el tiempo de atención a múltiples procesos que consumen poco CPU.
Desventaja: El SO consume más CPU al intercambiar los procesos de la CPU. - 2021-II : 6X
- 6. Explique la diferencia entre multiproceso y multitarea. [p. 16]
- - Multiproceso (concurrencia): es la ejecución intercalada de dos o más procesos -en uno o más procesadores. Un proceso se ejecuta hasta donde puede, luego entra otro... y otro. No hay apropiación del CPU.
- Multitarea: es un caso particular de concurrencia, en el que se establece un criterio para intercambiar la ejecución de los procesos, generalmente, cada proceso se ejecuta por un quantum de tiempo, lo cual da la impresión de ejecución en “paralelo”. Hay apropiación del CPU. - (Semana 2) falta asignar 2022-1- pg1
- Semana 2-00: [00Procesos]
- 2025-I: 1X
- 1. Resuma el vocabulario técnico aprendido: palabra, bus, arquitectura, llamar e interrumpir. [p. 1]
- - Palabra: capacidad mínima de transmisión de datos en un computador, aloja una instrucción de proceso, es una potencia de 2
- Bus: cable físico de n hilos por el que fluyen palabras.
- Arquitectura: estructura de componentes físicas de un computador
- Llamar: verbo para solicitar un servicio del nivel alto (n) al bajo (SO)
- Interrumpir: verbo para responder el fin de un servicio del nivel bajo (hardware) al alto (SO). - 2022-II: 4X
- 4. En tiempo de ejecución: ¿Qué verbo indica la solicitud al SO para ejecutar los comando de los usuarios?, explique. ¿Qué verbo indica la comunicación al SO de la finalización de una tarea del hardware?, explique.
- Llamar al SO para que atienda cuando pueda interrumpir al SO para que atienda a la brevedad posible.
- 2022-I: 4X
- 4. En tiempo de ejecución: ¿Qué verbo indica la solicitud al SO para ejecutar los comando de los usuarios?, explique. ¿Qué verbo indica la comunicación al SO de la finalización de una tarea del hardware?, explique.
- Llamar al SO para que atienda cuando pueda interrumpir al SO para que atienda a la brevedad posible.
- 2021-II: 1X, 2X, 10X
- 1. Defina en modo preciso y rápido: CPU, Núcleo, Multinúcleo, Procesador y Multiprocesador. [p. 1]
- CPU: el hardware que ejecuta las instrucciones.
Núcleo: la unidad de cálculo básica de la CPU.
Multinúcleo: incluye varios núcleos informáticos en la misma CPU.
Procesador: un chip físico que contiene una o más CPU.
Multiprocesador: incluye varios procesadores. - 2. Defina en modo preciso y rápido: Una versión, una distribución, una llamada y una interrupción. [vocabulario]
- Una versión es una mejora de un software a lo largo del tiempo.
- Una distribución toma como base un software (generalmente el kernel/núcleo) y le da una orientación específica, es como una rama que se desarrolla en modo independiente del original.
- Una llamada: es una solicitud al CPU para ejecutar instrucciones y proviene del usuario u otro software, incluyendo el sistema operativo.
- Una interrupción: es una notificación urgente al CPU, generalmente es una respuesta al CPU o un evento urgente. - 10. ¿Qué son las hebras? [p. 1]
- Un proceso puede descomponerse en tareas (hebras) independientes, que se pueden ejecutar concurrentemente con otros procesos o hebras, incluso del mismo proceso. Una hebra es un proceso, por lo tanto tiene: Pid, estado, PCB, etc.
El proceso creador de hebras las coordina y comparte sus variables globales, funciones y archivos abiertos. - Semana 2-01: [01Procesos(22-2)]
- 2025-I: 7, 9, 10
- 7. Describa las estructuras de datos para gestionar procesos. [p. 16-22]
- Los datos están en la RAM y se organizan en bloques:
System Control block (SCB): contienen la información común de todos los procesos en la RAM como: el pid, estado del proceso, puntero al PCB de proceso, etc.
Process Control block (PCB): contiene información de cada proceso específico, por ejemplo: descriptor de proceso, proceso padre, usuario, prioridad, hardware y archivos en uso. - 9. Describa los tiempos que se miden al ejecutar procesos. [p. 34-38]
- - Fork: crean un bifurcación de un proceso (padre) con un hijo (hebra), que es su clon (comparten el mismo proceso); esto permite generar árboles de procesos.
- Execve: cargan un programa ejecutable almacenado en alguna carpeta, reemplaza (kill) al proceso que los llamó y se ejecuta. - 10. ¿Cómo se organizan los bloques de datos de un proceso en la RAM? [p. 23]
- 1) Código ejecutable
2) Datos con y sin valor inicial
3) Pilas de datos locales para funciones, en especial recursivas
4) El montón, para arreglos y memoria dinámica. - 2022-II: 3, 6, 7, 8, 9, 10
- 3. Defina los procesos: 1) reutilizables, 2) Reentrantes y 3) Apropiativo. [p. 8-9]
- 1) reutilizables: Se cargan en la RAM, cada vez que se usan, ejemplo: procesos del usuario.
2) Reentrantes: Se carga una sola copia del código en la RAM y cada vez que se usa se crea su zona de datos propia
3) Accede a los recursos (CPU u otros) y solo los abandona por una instrucción de código (modo voluntario) - 6. La Conjetura de Collatz establece que: dado un entero positivo n, si se aplica repetidamente la operación (de Collatz):
>if(n%2!=0) n = 3*n +1;
>else n /= 2; >n converge a 1.
>Ejemplo: n = 8, valores de n: 8, 4, 2, 1
Describa Qué hace el programa collatz.c adjunto [p. 34-40] - El proceso padre crea un clon y lo espera El clon verifica la Conjetura de Collatz e imprime los valores: 8,4,2,1
- 7. Describa los procesos: 1) Reutilizables, 2) No apropiativos, 3) Intercambiables (swapable), 4) Segundo plano. [p. 18-12 y 33]
- 1) Reutilizables: los procesos de los usuarios
2) No apropiativos: multitasking con un quantum de tiempo de proceso
3) Intercambiables: los de segundo plano
4) Segundo plano: impresión de documentos. - 8. Describa Qué hace el programa 04Kill.c adjunto. [p. 34-40 y 43-44]
- El proceso padre crea un clon1, luego crea un clon2 y lo espera.
El clon1 se autoelimina con execv(), el cual inicia la ejecución de ls.
El clon2 hace un wait(1) y luego mata a ls.
El proceso padre termina la ejecución. - 9. ¿Cómo se organizan los datos de los procesos en ejecución? [p. 16-18 y 19-22]
- Los datos se organizan en dos niveles:
- System Control Block (scb) Información general de todos los procesos: Lista de todos los procesos, proceso en CPU, procesos en distintos estados, punteros a recursos, ubicación de rutinas de manejo de errores, etc.
- Process Control Block (PCB) información de cada proceso: de identificación, planificación, segmentos de memoria y recursos asignados, comunicación entre procesos. - 10. ¿Cómo se despliega un programa ejecutable en la RAM? [p. 23]
- 1) Se despliega el código de todo el programa
2) Se despliegan los datos
- a) datos con valor inicial
- b) datos sin valor agregado
- c) archivos proyectados
- d) pila de datos de funciones
- e) montón de datos de memoria dinámica - 2022-I: 6, 7, 8, 9, 10
- 6. ¿Cómo gestiona el SO la ejecución de procesos? [p. 5]
- 1) Productos: procesos
2) Quien ejecuta: el CPU
3) Facilitador (gestor)
4) Lugar de trabajo: la RAM
5) Recursos necesarios: datos
6) Equipo necesarios: dispositivos E/S
7) como se hace: Programa
8) Modo de producción: se puede hacer multiprogramación - 7. De ejemplos de procesos: 1) Reutilizables, 2) No apropiativos, 3) Intercambiables, 4) Segundo plano [p. 8-12 y 33]
- 1) Reutilizables: los procesos de los usuarios
2) No apropiativos: multitasking con un quantum de tiempo de proceso
3) Intercambiables: los de segundo plano
4) Segundo plano: impresión de documentos - 8. ¿Cómo crea el Sistema operativo un árbol de procesos? [p. 41-42]
- Inicia con la ejecución del proceso init.
Para bifurcar las ramas los procesos fork() que clonan procesos.
Las ramas se convierten en “hojas” con el proceso execve() que mata al proceso padre y llama a un proceso residente en disco. - 9. ¿Cómo se organiza la metainformación de los procesos en ejecución? [p. 16-22]
- Esta información se organiza en dos niveles:
- System Control Block (scb) Información general de todos los procesos: Lista de todos los procesos, proceso en CPU, procesos en distintos estados, punteros a recursos, ubicación de rutinas de manejo de errores, etc.
- Process Control Block (PCB) información de cada proceso: de identificación, planificación, segmentos de memoria y recursos asignados, comunicación entre procesos. - 10. ¿Cómo se despliega un programa fuente en la RAM? [p. 23]
- En primer lugar el programa fuente se convierte en ejecutable (una instrucción de programa suelen dividirse en varias instrucciones ejecutables que se alojan en palabras).
Las instrucciones ejecutables se clasifican en bloques que se alojan en la RAM en diferentes modos: código, datos con valor inicial, datos sin valor inicial, archivos proyectados, pila () de datos de funciones, montón (heap) de datos con apuntador. - 2021-II: 7, 8, 9
- 7. Cuando un proceso crea un nuevo proceso usando fork(), ¿Son compartidos la pila, el montón y segmentos de memoria, por el padre y el hijo?, ¿por qué? [p. 34]
- Todo, por que el hijo es clon del padre
- 8. Los procesos pueden ser tipificados por diferentes criterios.
Complete una tabla:
Criterio: tipos [p. 8-12] - - Carga a la RAM: Reutilizables, reentrantes
- Permanencia en la RAM: Residentes, intercambiables (swap)
- Acceso a CPU: Apropiativos, no apropiativos
- Privilegio de ejecución: privilegiados, no privilegiados
- Por propietario: Usuarios, del sistemas - 9. Describa rápidamente los estados de un proceso en multiprogramación. [p. 27-31]
- - No nato: Programa ejecutable en disco, listo para ser cagado en la RAM
- Preparado: Proceso cargado en la RAM, con morfología ejecutable, a la espera de ser activo
- Activo: proceso residente en la RAM, con instrucciones ejecutándose en el CPU
- Bloqueado: proceso residente en la RAM, no procesa instrucciones en la RAM, está en espera de completar una operación de entrada/salida. Al terminar pasa a preparado
- Concluido: por fin de proceso, por cancelación o error.
- Suspendido: sale de la RAM y pasa a disco. - Semana 3-00:
- Semana 3-01:
- Semana 1-00: [00FuncionesSO]
- (PC 1 - 2025-I) 3. ¿Qué son: un sistema y un sistema operativo? [p. 5]
- - Un sistema es un conjunto de módulos integrados, se suele entrar/salir por diferentes módulos.
- Sistema operativo: es un software (procesos) que gestiona la ejecución de procesos productivos del computador: da facilidades a los usuarios, uso óptimo de los recursos, protege los datos y flujo de ejecución de procesos. - (PC1 - 2022-II) 2. Describa las componentes fundamentales de la operación del computador y los objetivos del SO. [p. 2]
- Las componentes fundamentales son: usuario, SO, hardware y los datos.
Las operaciones son:
1) Identifica a los usuarios, 2) les facilita la operación del computador
3) Identifica y contabiliza los recursos, 4) Gestionar y asignar recursos de hardware a los programas
4) Protege los datos y programas
5) Gestiona y mantiene los archivos en discos - (PC 1 - 2021-II) 3. ¿Qué es un sistema operativo y cuáles son sus funciones principales? [p. 3]
- El SO es un conjunto de programas con el fin de facilitar el uso del computador de modo eficiente.
Las funciones principales son:
1) identificar usuarios y recursos.
2) facilitar la comunicación usuario/computador,
3) gestionar los recursos: procesador, memoria y periféricos,
4) gestión y mantenimiento de archivos,
5) proteger datos y programas, etc. - (EP - 2022-II) 1. ¿Cuáles son las funciones fundamentales del Sistema Operativo?
- 1) Identificar y autentificar a los usuarios.
2) Facilitar el uso del computador (comunicación usuario/computador).
3) Identificar y contabilizar la utilización de los recursos.
4) Gestionar y asignar recursos de hardware a los programas: procesador, memoria y periféricos.
5) Proteger los datos y programa.
6) Gestionar y mantener archivos (en discos). - (PC 1- 2022-II) 5. ¿El navegador Google Chrome junto con Drive constituyen un Sistema operativo?, ¿por qué? [p. 4 y p. 2]
- Sí, son un sistema operativo, por que satisfacen los objetivos: interfaz de usuario, gestionan los recursos y los datos.
- (PC 1 - 2021-II) 4. Defina a los sistemas operativos Android y Google Chrome. [p. 4]
- Ambos son propiedad de Google.
- Android: es una distribución de Linux orientado principalmente a sistemas móviles con pantalla táctil. Actualmente integra una sociedad que desarrolla estándares abiertos para dispositivos móviles.
- Chrome: es una distribución de Linux orientado principalmente a internet, su capa de shell es el navegador Google Chrome y almacena archivos en la nube, con Drive. - (PC 1- 2021-II) 2. Defina en modo preciso y rápido: Una versión, una distribución, una llamada y una interrupción. [p. 4]
- - Una versión es una mejora de un software a lo largo del tiempo.
- Una distribución toma como base un software (generalmente el kernel/núcleo) y le da una orientación específica, es como una rama que se desarrolla en modo independiente del original.
- Una llamada: es una solicitud al CPU para ejecutar instrucciones y proviene del usuario u otro software, incluyendo el sistema operativo.
- Una interrupción: es una notificación urgente al CPU, generalmente es una respuesta al CPU o un evento urgente. - (PC 1 - 2022-II) 1. ¿Qué es la BIOS y para qué sirve? [p. 4]
- Es un programa grabado en la placa base y sirve para:
1) Elegir el sistema operativo a cargar
2) Verifica la RAM y los dispositivos disponibles
3) Carga el sistema operativo seleccionado para gestionar al computador - (PC 1 - 2025-I) 2. Describa los pasos de arranque del computador [p. 5]
- 1) La BIOS (el gestor de arranque GRUB) pregunta por el SO a utilizar y localiza su ubicación.
2) Se realiza un test de memoria RAM y comprueba qué dispositivos o periféricos están conectados.
3) El programa cargador carga en la RAM el cargador inicial.
4) Se Carga en la RAM el SO Kernell y shell. - Semana 1-01: [01FuncionesSO]
- (2. Historia y evolución:
) - (PC 1 - 2025-I) 4. Defina multiprogramación y multiprocesamiento, ¿pueden funcionar simultáneamente? [p. 16]
- - Multiprogramación: programación del Sistema operativo para gestionar varios procesos cargados a la RAM.
- Multiprocesamiento: varios procesadores (CPU) gestionados por el sistema operativo. Sí, es lo más frecuente. - (PC 1 - 2021-II) 6. Explique la diferencia entre multiproceso y multitarea. [p. 16]
- - Multiproceso (concurrencia): es la ejecución intercalada de dos o más procesos -en uno o más procesadores. Un proceso se ejecuta hasta donde puede, luego entra otro... y otro. No hay apropiación del CPU.
- Multitarea: es un caso particular de concurrencia, en el que se establece un criterio para intercambiar la ejecución de los procesos, generalmente, cada proceso se ejecuta por un quantum de tiempo, lo cual da la impresión de ejecución en “paralelo”. Hay apropiación del CPU. - (PC 1 - 2025-I) 5. Describa el funcionamiento de un sistema operativo de tiempo compartido (time sharing) y cuáles son sus ventajas y desventajas? [p. 17]
- El SO establece una ventana de tiempo de ejecución para cada proceso, al terminar la ejecución de un proceso, se elige al siguiente.
- Ventajas: optimiza el uso de todos los recursos, mejora el tiempo de atención a múltiples procesos que consumen poco CPU.
- Desventaja: El SO consume más CPU al intercambiar los procesos de la CPU. - Semana 2-00: [00Procesos]
- (PC 1 - 2025-I) 1. Resuma el vocabulario técnico aprendido: palabra, bus, arquitectura, llamar e interrumpir. [p. 1]
- - Palabra: capacidad mínima de transmisión de datos en un computador, aloja una instrucción de proceso, es una potencia de 2
- Bus: cable físico de n hilos por el que fluyen palabras.
- Arquitectura: estructura de componentes físicas de un computador
- Llamar: verbo para solicitar un servicio del nivel alto (n) al bajo (SO)
- Interrumpir: verbo para responder el fin de un servicio del nivel bajo (hardware) al alto (SO). - (PC 1 - 2022-II) (PC 1 - 2022-I) 4. En tiempo de ejecución: ¿Qué verbo indica la solicitud al SO para ejecutar los comando de los usuarios?, explique. ¿Qué verbo indica la comunicación al SO de la finalización de una tarea del hardware?, explique.
- Llamar al SO para que atienda cuando pueda interrumpir al SO para que atienda a la brevedad posible.
- (PC 1 - 2021-II) 1. Defina en modo preciso y rápido: CPU, Núcleo, Multinúcleo, Procesador y Multiprocesador. [p. 1]
- CPU: el hardware que ejecuta las instrucciones.
Núcleo: la unidad de cálculo básica de la CPU.
Multinúcleo: incluye varios núcleos informáticos en la misma CPU.
Procesador: un chip físico que contiene una o más CPU.
Multiprocesador: incluye varios procesadores. - (PC 1 - 2021-II) 2. Defina en modo preciso y rápido: Una versión, una distribución, una llamada y una interrupción. [vocabulario]
- - Una versión es una mejora de un software a lo largo del tiempo.
- Una distribución toma como base un software (generalmente el kernel/núcleo) y le da una orientación específica, es como una rama que se desarrolla en modo independiente del original.
- Una llamada: es una solicitud al CPU para ejecutar instrucciones y proviene del usuario u otro software, incluyendo el sistema operativo.
- Una interrupción: es una notificación urgente al CPU, generalmente es una respuesta al CPU o un evento urgente. - (PC 1 - 2021-II) 10. ¿Qué son las hebras? [p. 1]
- Un proceso puede descomponerse en tareas (hebras) independientes, que se pueden ejecutar concurrentemente con otros procesos o hebras, incluso del mismo proceso. Una hebra es un proceso, por lo tanto tiene: Pid, estado, PCB, etc.
El proceso creador de hebras las coordina y comparte sus variables globales, funciones y archivos abiertos. - Semana 2-01: [01Procesos(22-2)]
- (1. concepto de proceso [p. 1])

- (PC 1 - 2022-1) 6. ¿Cómo gestiona el SO la ejecución de procesos? [p. 5]
- 1) Productos: procesos
2) Quien ejecuta: el CPU
3) Facilitador (gestor)
4) Lugar de trabajo: la RAM
5) Recursos necesarios: datos
6) Equipo necesarios: dispositivos E/S
7) como se hace: Programa
8) Modo de producción: se puede hacer multiprogramación - (PC 1 - 2022-II) 3. Defina los procesos: 1) reutilizables, 2) Reentrantes y 3) Apropiativo. [p. 8-9]
- 1) reutilizables: Se cargan en la RAM, cada vez que se usan, ejemplo: procesos del usuario.
2) Reentrantes: Se carga una sola copia del código en la RAM y cada vez que se usa se crea su zona de datos propia
3) Accede a los recursos (CPU u otros) y solo los abandona por una instrucción de código (modo voluntario) - (PC 1 - 2021-II) 8. Los procesos pueden ser tipificados por diferentes criterios.
Complete una tabla:
Criterio: tipos [p. 8-12] - - Carga a la RAM: Reutilizables, reentrantes
- Permanencia en la RAM: Residentes, intercambiables (swap)
- Acceso a CPU: Apropiativos, no apropiativos
- Privilegio de ejecución: privilegiados, no privilegiados
- Por propietario: Usuarios, del sistemas - (PC 1 - 2025-I) 7. Describa las estructuras de datos para gestionar procesos. [p. 16-22]
- Los datos están en la RAM y se organizan en bloques:
System Control block (SCB): contienen la información común de todos los procesos en la RAM como: el pid, estado del proceso, puntero al PCB de proceso, etc.
Process Control block (PCB): contiene información de cada proceso específico, por ejemplo: descriptor de proceso, proceso padre, usuario, prioridad, hardware y archivos en uso. - (PC 1 - 2022-II) 7. Describa los procesos: 1) Reutilizables, 2) No apropiativos, 3) Intercambiables (swapable), 4) Segundo plano. [p. 18-12 y 33]
- 1) Reutilizables: los procesos de los usuarios
2) No apropiativos: multitasking con un quantum de tiempo de proceso
3) Intercambiables: los de segundo plano
4) Segundo plano: impresión de documentos. - (PC 1 - 2022-II) 9. ¿Cómo se organizan los datos de los procesos en ejecución? [p. 16-18 y 19-22]
- Los datos se organizan en dos niveles:
- System Control Block (scb) Información general de todos los procesos: Lista de todos los procesos, proceso en CPU, procesos en distintos estados, punteros a recursos, ubicación de rutinas de manejo de errores, etc.
- Process Control Block (PCB) información de cada proceso: de identificación, planificación, segmentos de memoria y recursos asignados, comunicación entre procesos. - (PC 1 - 2022-1) 7. De ejemplos de procesos: 1) Reutilizables, 2) No apropiativos, 3) Intercambiables, 4) Segundo plano [p. 8-12 y 33]
- 1) Reutilizables: los procesos de los usuarios
2) No apropiativos: multitasking con un quantum de tiempo de proceso
3) Intercambiables: los de segundo plano
4) Segundo plano: impresión de documentos - (2. estructuras de datos [p. 12])

- (EP - 2022-II) 2. Resuma los dos bloques de datos necesarios para gestionar la ejecución de todos los procesos
- 1) System Control Block (SCB): Contiene información general de todos los procesos en ejecución.
2) Process Control Block (PBC): Contiene información completa de cada proceso de ejecución. - (PC 1 - 2022-1) 9. ¿Cómo se organiza la metainformación de los procesos en ejecución? [p. 16-22]
- Esta información se organiza en dos niveles:
- System Control Block (scb) Información general de todos los procesos: Lista de todos los procesos, proceso en CPU, procesos en distintos estados, punteros a recursos, ubicación de rutinas de manejo de errores, etc.
- Process Control Block (PCB) información de cada proceso: de identificación, planificación, segmentos de memoria y recursos asignados, comunicación entre procesos. - (PC 1 - 2025-I) 10. ¿Cómo se organizan los bloques de datos de un proceso en la RAM? [p. 23]
- 1) Código ejecutable
2) Datos con y sin valor inicial
3) Pilas de datos locales para funciones, en especial recursivas
4) El montón, para arreglos y memoria dinámica. - (PC 1 - 2022-1) 10. ¿Cómo se despliega un programa fuente en la RAM? [p. 23]
- En primer lugar el programa fuente se convierte en ejecutable (una instrucción de programa suelen dividirse en varias instrucciones ejecutables que se alojan en palabras).
Las instrucciones ejecutables se clasifican en bloques que se alojan en la RAM en diferentes modos: código, datos con valor inicial, datos sin valor inicial, archivos proyectados, pila () de datos de funciones, montón (heap) de datos con apuntador. - (PC 1 - 2022-II) 10. ¿Cómo se despliega un programa ejecutable en la RAM? [p. 23]
- 1) Se despliega el código de todo el programa
2) Se despliegan los datos
- a) datos con valor inicial
- b) datos sin valor agregado
- c) archivos proyectados
- d) pila de datos de funciones
- e) montón de datos de memoria dinámica - (3. Vida de un proceso [25])

- (PC 1 - 2021-II) 9. Describa rápidamente los estados de un proceso en multiprogramación. [p. 27-31]
- - No nato: Programa ejecutable en disco, listo para ser cagado en la RAM
- Preparado: Proceso cargado en la RAM, con morfología ejecutable, a la espera de ser activo
- Activo: proceso residente en la RAM, con instrucciones ejecutándose en el CPU
- Bloqueado: proceso residente en la RAM, no procesa instrucciones en la RAM, está en espera de completar una operación de entrada/salida. Al terminar pasa a preparado
- Concluido: por fin de proceso, por cancelación o error.
- Suspendido: sale de la RAM y pasa a disco. - (PC 1 - 2022-II) 6. La Conjetura de Collatz establece que: dado un entero positivo n, si se aplica repetidamente la operación (de Collatz):
>if(n%2!=0) n = 3*n +1;
>else n /= 2; >n converge a 1.
>Ejemplo: n = 8, valores de n: 8, 4, 2, 1
Describa Qué hace el programa collatz.c adjunto [p. 34-40] - El proceso padre crea un clon y lo espera El clon verifica la Conjetura de Collatz e imprime los valores: 8,4,2,1
- (PC 1 - 2025-I) 9. Describa los tiempos que se miden al ejecutar procesos. [p. 34-38]
- - Fork: crean un bifurcación de un proceso (padre) con un hijo (hebra), que es su clon (comparten el mismo proceso); esto permite generar árboles de procesos.
- Execve: cargan un programa ejecutable almacenado en alguna carpeta, reemplaza (kill) al proceso que los llamó y se ejecuta. - (PC 1 - 2022-II) 8. Describa Qué hace el programa 04Kill.c adjunto. [p. 34-40 y 43-44]
- El proceso padre crea un clon1, luego crea un clon2 y lo espera.
El clon1 se autoelimina con execv(), el cual inicia la ejecución de ls.
El clon2 hace un wait(1) y luego mata a ls.
El proceso padre termina la ejecución. - (PC 1 - 2021-II) 7. Cuando un proceso crea un nuevo proceso usando fork(), ¿Son compartidos la pila, el montón y segmentos de memoria, por el padre y el hijo?, ¿por qué? [p. 34]
- Todo, por que el hijo es clon del padre
- (PC 1 - 2022-1) 8. ¿Cómo crea el Sistema operativo un árbol de procesos? [p. 41-42]
- Inicia con la ejecución del proceso init.
Para bifurcar las ramas los procesos fork() que clonan procesos.
Las ramas se convierten en “hojas” con el proceso execve() que mata al proceso padre y llama a un proceso residente en disco. - SEMANA 3: (01Planificacion.pdf)

- Tipos de planificador (largo, mediano, corto plazo) S3-01: 1 y 4 (batch = largo plazo; interactivo = mediano y corto plazo) 21-2 P1, 22-2 P1
- 1. Defina a los planificadores de largo, mediano/corto plazo. (PC 2 - 2021-II)
- - Largo plazo (o de trabajos) decide el orden de ejecución de los procesos en un entorno batch, no apropiativo y el grado de multiprocesamiento.
- Mediano/corto plazo: decide el orden de ejecución de los procesos en un entorno apropiativo que atiende a distintos procesos concurrentemente (tiempo compartido), como gráficos, servidores, etc. También decide sobre la detención del proceso en ejecución, la transición de procesos y el intercambio (swapping). - 1 Explique brevemente los 3 tipos de planificadores (PC 2 - 2022-II)
- Los planificadores son parte del SO, planifican la entrada de procesos a la CPU dependiendo del entorno de trabajo.
- De Largo plazo: Planifican la entrada de procesos a la CPU para procesos Batch
- Mediano plazo: Planifican la entrada de procesos a la CPU y el swapping para entorno interactivo.
- Corto plazo: Planifica la entrada de threads a la CPU. - Planificación apropiativa y no apropiativa S3-01: 3 (también 15 a 29 al ver cada algoritmo) 22-1 P2, 22-2 P2
- 2 Explique con precisión la planificación apropiativa y no apropiativa.
- En un tiempo t hay un proceso en el CPU y los otros están listos en la RAM.
- En la planificación no apropiativa (del CPU) todos los procesos listos esperan a que termine o se bloquee el proceso en ejecución en la CPU
- En la planificación apropiativa cualquier proceso listo en la Ram puede apropiarse del CPU desalojando al que estaba en ejecución; este cambio de procesos se hace cada cierto tiempo llamado quantum. - 2 En Relación a la apropiación del CPU, describa los tipos de planificadores
- - No Apropiativos: El planificador permite que los procesos permanezcan en CPU hasta que se bloquean: inicio de entrada salida, esperan por otro proceso, o finalizan.
- Apropiativos: El planificador desaloja a los procesos de la CPU, generalmente por una interrupción de un quantum de tiempo. - Objetivos generales del planificador (justicia, política, equilibrio) S3-01: 4 y 6. La analogía país-presidente-SO-procesos está en la página 1 del archivo 00 25-1 P1, 21-2 P2, 22-2 P3
- 1. El SO tiene OBJETIVOS GENERALES para la planificación de PROCESOS en la compu. Las personas (procesos) y el presidente (SO) de un país, tenemos comportamientos similares. Si usted fuera presidente del Perú (SO) y aplicara los mismos OBJETIVOS GENERALES, descríbalos a continuación.
- - Justicia: cada persona debe tener acceso justo y razonable a los recursos de vida fundamentales: alimentación, vivienda, salud, educación, etc.
- Política: Las personas tenemos deberes, derechos y solidaridad.
- Equilibrio: que se utilicen todos los recursos del país, que haya trabajo. - 2. Enuncie y JUSTIFIQUE los objetivos generales, típicos de un planificador de procesos.
- - Justicia (fairness): que el proceso obtenga una porción de CPU “justa”, ya que es el recurso más importante.
- Política: que se satisfaga un determinado criterio establecido (ej. prioridades): Un criterio para la optimidad.
- Equilibrio: Todas las partes del sistema estén ocupadas haciendo algo, esto indica buen aprovechamiento del hardware. - 3. FUNDAMENTE los objetivos de los planificadores
- 1) Los procesos representan a usuarios o aplicaciones que requieren un servicio de procesamiento eficaz y eficiente en tiempos razonables.
2) Todo el ambiente de proceso es muy costoso, por lo que los planificadores deben hacer el mejor uso de los recursos. - Medidas de tiempo (turnaround, throughput, índice de servicio) S3-01: 5, 6, 8, 9 y 10 (ejemplo) 22-1 P3
- 3 ¿Qué tipos de variable son los más relevantes en la planificación? De tres ejemplos.
- El tiempo y los índices son los más relevantes, ejemplos:
1) Turnaround (tr, tiempo de respuesta) = tiempo de salida – tiempo de entrada
2) throughput = (número de trabajos)/(unidad de tiempo)
3) Indice de servicio (is) = (tCPU + tES)/tr - Modelos de evaluación (determinista, no determinista, simulación) S3-01: 11 a 14 22-1 P4
- 4. Explique el concepto, las ventajas y desventajas de tres modelos de planificación
- 1) Determinista: utiliza mediciones reales de los indicadores.
Vent: los modelos son sencillos y precisos.
Desv.: engañoso si la muestra no es representativa.
2) No determinista: utiliza distribuciones de probabilidad para generar ráfagas de procesos en las colas de entrada a la RAM, CPU, E/S, etc. y estima las medias de productividad, tiempo de retorno, tiempos de espera, etc.
Vent: Es externo a los computadores y procesos y no genera ruidos de ejecución.
Desv: Requiere de profesionales especializados
3) Simulación del comportamiento del sistema generando ráfagas de procesos en diferentes puntos.
Vent.: se acercan a mediciones reales.
Desv.: alto costo de: obtención de datos, tiempo de simulación, mediciones, etc. - Round-Robin y quantum S3-01: 25, 26 y 27 22-2 P4, 22-1 P10, 21-2 P10
- 4. Explique el algoritmo de planificación apropiativa Round-Robin, sus ventajas y desventajas
- En este algoritmo, se ejecuta, por un quantum q de tiempo, el primer proceso de la cola de preparados y luego vuelve al final de la cola.
- Ventaja: es muy sencillo de implementar y es justo.
- Desventaja: la estimación de q. Se recomienda q tal qué el 80% de los procesos finalicen antes de q, para comenzar: 20 ms <= q <= 50 ms. - 10. Al ejecutar un cambio de procesos se consume tiempo no productivo; sin embargo se cambia cada quantum de tiempo. ¿Por qué se cambia y que tiempo es adecuado para el quantum?
- Porque: da la oportunidad de ejecución a todos los procesos en modo concurrente y gran porcentaje (>= 70%) de ellos finalizan antes del quantum. Tiempo experimental de quantum para iniciar: 80% de los procesos deben finalizar antes del quantum, el cual suele estar entre 20 y 50 milisegundos
- 10. Al ejecutar la apropiación de recursos se cambia el contexto del proceso que sale por el del que entra al CPU, esto consume tiempo no productivo, sin embargo se implanta la apropiación cada quantum de tiempo. ¿Por qué y que tiempo es adecuado para el quantum?
- - PORQUE: da la oportunidad de ejecución a todos los procesos en modo concurrente y muchos de ellos de ellos finalizan antes del quantum.
- - TIEMPO DE QUANTUM EXPERIMENTAL: 80% de los procesos deben finalizar antes del quantum.
- Colas multinivel S3-01: 28 y 29 25-1 P3
- 3. ¿Qué son y cómo se planifican las Colas de Multinivel (CM)?
- Los procesos en la RAM se clasifican en niveles, según sus requerimientos de recursos, cada nivel tiene su cola de procesos, el resultado son CM.
Planificación:
1) Cada CM tiene sus prioridades de ejecución y suelen tener tiempos de CPU asignados.
2) Los procesos de un nivel siguen un algoritmo de planificación adecuado al nivel.
3) Los procesos pueden cambiar de nivel. - Sistemas de tiempo real: concepto y objetivos S3-01: 4 y 7 (objetivos), 30 y 31 (concepto) 25-1 P2, 21-2 P3
- 2. ¿Qué es un Sistema de Tiempo Real (STR) y cuáles son los objetivos de planificación de su SO?
- - STR: Es un sistema dedicado a gestionar el funcionamiento de “cosas inteligentes, como una compu” del mundo real, sus recursos suelen ser sobredimensionados y estar ociosos; pero es crítico que funcionen a tiempo cuando se los necesita.
- Objetivos: priorizar la ejecución de procesos, cumplir los límites de tiempos de ejecución y la calidad, sincronizar threads, y asegurar la gestión de eventos. - 3 Describa un sistema de tiempo real:
- El computador responde:
1) en tiempos límite, lo cual implica velocidad: respuestas de robots o sincronización: escuchar música.
2) es fiable: evita perder datos,
3) es predecible: evita la degradación de la calidad. - Tiempo real: ¿es planificable? (Σ Ci/Pi ≤ 1) S3-01: 32 y 33 22-1 P5
- 5 Para la planificación en tiempo real: Se tiene 3 flujos de eventos periódicos con: tiempos de cpu (tCPU): 10, 15, 20 ms periodos de tiempo de ocurrencia (pOCU): 25 30 35 ¿Serán planificables?
- NO: suma(tCPU/pOCU) = 10/25 + 15/30 + 20/35 = 1.47 > 1.
- Hebras y su planificación a dos niveles S3-01: 34 a 38 (la 38 es la clave) 25-1 P4, 22-2 P5, 21-2 P4
- 4 Describa las hebras de un proceso y su planificación a corto plazo
- - Un proceso inicial puede crear hebras (subprocesos, con objetivos específicos), con su propio: identificador, pilas y registros; comparten datos generales, y recursos abiertos, pueden o no compartir código; se sincronizan todas para dar un resultado general.
- La planificación a corto plazo se hace a dos niveles: plafificador del SO y planificador de hebras, el cual es no apropiativo internamente y gestiona su ventana de tiempo en tiempo de afinidad con el CPU. - 5 ¿Qué son y cómo se procesan las hebras?
- - Una hebra es la unidad básica de uso del CPU, un proceso tiene como mínimo una hebra, si hay varias tareas concurrentes se puede crear una hebra para cada tarea. Las hebras comparten segmentos de código, datos y recursos; pero se contabilizan como un proceso con identificador, contador de programa, registros, pila.
- - Procesan como procesos concurrentes/asociados en CPU: todas comparten un solo quantum y lo van usando en modo no apropiativo, cuando se bloquea una, entra la siguiente; la hebra finaliza q vuelve a procesar cuando le llega su turno.
- 4 Explique la estrategia de planificación de hebras.
- Se planifica a dos niveles
1) Se planifica a nivel de procesos
2) Dentro de cada proceso, se planifica a nivel de hebra: No hay apropiación entre hebras. Si una hebra agota el quantum del proceso, salta a otro proceso, cuando retorne, continúa con la misma hebra. Si la hebra no agota el quantum, el planificador salta a otra hebra del mismo proceso. - (00Planificacion.pdf)
- Multiprocesamiento (simétrico/asimétrico, afinidad, equilibrio de carga) S3-01: 39 a 42; simétrico/asimétrico en la 40 y en el archivo 00; afinidad en la 41 25-1 P5, 22-1 P1, 21-2 P5
- 5 Describa el multiprocesamiento y su planificación a corto plazo
- - El multiprocesamiento en una compu ocurre cuando un computador tiene varios núcleos de CPU y los utiliza a todos para ejecutar muchos procesos.
- Planificación: Existen dos tipos de procesamiento: simétrico (comparten la memoria) y asimétrico (un procesador maestro controla la estructura de datos). Los procesos suelen ejecutarse en un procesador afín (por su caché). Se procura el equilibrio de carga de los CPU y un proceso puede pedir o ser cambiado a otro CPU. - 1 Explique brevemente los multi-procesamientos asimétrico y simétrico
- En multiprocesamiento se tiene más de un procesador y pueden ejecutar múltiples procesos simultáneamente.
- En el multiprocesamiento simétrico, los procesadores comparten la misma memoria y todos son gestionados por el SO.
- En el multiprocesamiento asimétrico hay un procesador maestro que controla la estructura de datos del sistema y sólo el procesador maestro es gestionado por el SO. - 5 Explique la estrategia de planificación para multiprocesadores y multiprocesos
- 1) Asignar un grupo de procesos a cada procesador
2) Planificar internamente la ejecución de los procesos
Ventaja: aprovecha la afinidad de la caché entre procesos y procesadores.
Desventaja: desbalanceo de carga de los procesadores, que se corrige reasignando procesos. - SEMANA 4: (00Concurrencia) (01Concurrencia) (04Semaforos)

- Ventajas y desventajas de la ejecución concurrente S4-01: 7 (ventajas) y 11 (condición de carrera como desventaja) 22-2 P8, 21-2 P6
- 8 ¿Cuáles son las ventajas y desventajas de la programación concurrente?
- - Ventajas: Facilitan la programación de tareas en procesos separados, acelera la ejecución de cálculos en paralelo, mejora la inateractividad de las aplicaciones, se utiliza mejor el CPU.
- Desventajas: Se puede producir condición de carrera: posibles errores de sincronización. - 6 Describa rápidamente las ventajas y desventajas de la ejecución concurrente
- VENTAJAS:
1) Facilita la programación: Diversas tareas se ejecutan en procesos separados.
2) Acelera la ejecución de cálculos: Dividirlos en procesos paralelos.
3) Mejora la interactividad de las aplicaciones.
4) se aprovecha más la CPU.
DESVENTAJAS:
1) Produce condición de carrera (errores de cálculos),
2) ejecuta desordenadamente,
3) Requiere sincronizar en la ejecución en el programa. - Interacciones entre procesos (compartir, comunicar, sincronizar) S4-01: 8 y 9 25-1 P9
- 9 Describa las interacciones entre procesos que requieren sincronización
- 1) Compartir recursos: entre procesos que compiten
2) Comunicación: intercambio de información de E/S entre procesos
3) Sincronización de eventos: un proceso espero un evento de otros procesos. - Condición de carrera y cómo se manifiesta S4-01: 11 a 16 (ejemplos 03a y 03b, resultados distintos en cada ejecución) 25-1 P6
- 6 ¿Cómo se detecta una condición de carrera?
- Se producen errores misteriosos y difíciles de detectar, no dan mensaje de error, pueden pasar inadvertidos; pueden ser errores de cálculo, desincroniza en la ejecución de procesos, etc.
Las herramientas más eficientes para detectarlos son: los casos de prueba por los conocedores del modelo que incluyen: funcionamiento individual, integrado, random de su operación, también deben haber utilitarios genéricos de prueba. - Exclusión mutua y sección crítica: definir inicio y fin S4-01: 17, 19 y 24; S4-00: hoja "Pag. 19" 22-1 P7, 25-1 P10 (parte del problema sencillo)
- 7 ¿Cómo se definen el inicio y fin de una sección crítica, dentro de un programa
- 1) Identificar los recursos críticos
2) Inicio: seleccionar la sentencia de inicio de uso del recurso
3) Fin: buscar la instrucción que finalice el uso del recurso crítico de tal modo que la sección crítica se ejecute en modo atómico (no divisible) - 10 ¿Cuál es la estrategia para definir las secciones críticas para semáforos?
- Depende del tipo de problema, cada tipo tiene su estrategia propia, esto se estudia en un curso de programación concurrente.
- 1) problema sencillo (compartir memoria):
1) identificar variables compartidas,
2) identificar los segmentos de programa que las usan,
3) programar los semáforos.
- 2) Hay varios problemas complejos clásicos: productor consumidos, los filósofos, lectores y escritores, espera activa, etc. - Condiciones para la exclusión mutua S4-01: 23 21-2 P9
- 9 Explique rápidamente las condiciones para implementar la exclusión mutua.
- 1) Solo un proceso puede procesar la sección crítica de un recurso, los otros esperan.
2) Todo proceso que solicite acceso a una sección crítica debe ejecutarse, en algún turno.
3) Si ningún proceso está en una sección crítica, el proceso que solicite entrada, entrará inmediatamente.
4) La exclusión no depende de la velocidad relativa de los procesos ni el número de procesadores.
5) Un proceso ejecuta la sección crítica por un tiempo finito. - Efectos colaterales: interbloqueo e inanición S4-01: 20, 21 y 22 22-2 P7
- 7 ¿Cuáles son los efectos colaterales de aplicar sección crítica para resolver el problema de condición de carrera?
- 1) Interbloqueo para más de un procesos usando 2 o más recursos.
2) Inanición para más de dos procesos. - Historia de optimizaciones y problemas (planificación → carrera → semáforos → interbloqueo/inanición) S4-01: 28 22-2 P6, 22-1 P6, 21-2 P7
- 6 La historia de la optimización de las prestaciones del computador es dificultosa: se resuelve un problema; pero tiene efectos secundarios a resolver. Describa unos ejemplos, y una recomendación general de solución costosa.
- 1) Con la planificación de procesos se aumentan el número de procesos que se se ejecutan y se reducen los tiempos de ejecución; pero se pueden producir condiciones de carrera.
2) Se resuelve el problema anterior (con la exclusión mutua de las secciones críticas); pero se pueden producir interbloqueos o inaniciones.
3) Se resuelve el problema anterior con algoritmos específicos para cada caso; pero los algoritmos son diversos y complejos. En muchos casos la opción recomendada es tener holgura de recursos y ciertas estrategias para reducir los problemas, y si se presentan, estar preparados para soluciones costosas por reparación de daños. - 6 Cuente brevemente la historia de optimizaciones y problemas con los procesos, que resuelve el SO.
- 1) Con la planificación de procesos se aumentan el número de procesos que se se ejecutan y se reducen los tiempos de ejecución; pero se pueden producir condiciones de carrera.
2) Se resuelve el problema anterior (con la exclusión mutua de las secciones críticas); pero se pueden producir interbloqueos o inaniciones.
3) Se resuelve el problema anterior con algoritmos específicos para cada caso; pero los algoritmos son diversos y complejos, en muchos casos la opción más recomendable es tener holgura de recursos y ciertas estrategias para reducir los problemas, y si se presentan, estar preparados para soluciones costosas por reparación de daños. - 7 Explique el flujo de optimizaciones → problemas/soluciones → otras soluciones... que se generan a partir de la planificación de procesos...
- Planificación de procesos optimiza la cantidad de procesos en ejecución; pero genera el problema de condición de carrera (errores en los cálculos) → solución: Programación: Exclusión mutua de procesos en secciones críticas (uso de semáforos); pero generan problema de interbloqueo de procesos, y de inanición.
- Semáforos: concepto, wait/signal y programación en C S4-01: 29, 30 y 31; S4-04 (sintaxis de sem_init, sem_wait, sem_post); S4-00 (hojas de pág. 30 y 31 con el programa) 25-1 P7, 22-2 P9, 22-1 P8, 21-2 P8
- 7 Describa qué es un semáforo y cómo se implementa
- Un semáforo es un “mecanismo (externo/interno, artificio)” que permite sincronizar el uso de recursos: memoria, i/o (no cpu); en secciones críticas.
Tiene dos parámetros de activación: Indicador de que las sección crítica abarca 1 o más procesos, número de procesos que puede ejecutar la sección crítica.
Implementación en C:
1) Identificar las secciones críticas
2) Definición y valores iniciales de la variables de semáforo
3) función wait() para intentar entrar en la sección crítica
4) función post() para salir de la sección crítica. - 9 Describa la aplicación de un mecanismo de semáforo a una sección crítica
- 0) Inicialmente se define una variable de semáforo y asigna un valor.
1) Antes de entrar en una sección crítica de un proceso se llama a una función wait() que permite ingresar a ella o bloquear al proceso.
2) Al terminar la sección crítica se llama a una función signal(), la cual llama a ejecución a otros procesos bloqueados por el semáforo. - 8 ¿Cómo se programa el mecanismo de semáforos, para la exclusión mutua de una sección crítica?
- 1) Se define y da valor inicial a una variable sem de semáforo = 1, 2, ... para que hayan 1,2, .. respectivamente procesos en la sección crítica.
2) Justo antes del inicio de la sección crítica: se activa la función wait (sem-- y verifica si se apropia o no de la sección crítica)
3) Justo después del final de la sección crítica: se activa la función sigñal (sem++, sale de la sección crítica y avisa que salio a los otros procesos). - 8 Explique el concepto y la programación de semáforos
- - CONCEPTO: Es un “mecanismo” librería externa a los programas para sincronizar la compartición de un recurso por diferentes procesos.
- PROGRAMACIÓN EN C: 1) incluir la librería semaphore.h, definir e iniciar una variable semáforo s, ordenar wait(&s) antes de la sección crítica, ordenar post(&s) al final de la sección crítica, - Significado del valor de s (>0, =0, <0) S4-01: 31; S4-00: "Significado del valor s"; S4-04: parámetros de sem_init 25-1 P8
- 8 ¿Qué significan los valores asignados/modificados a la variable de control de la cantidad de procesos en un sem_t s?
- La variable s es bidimensional:
1) share (compartir sección crítica entre procesos): 0: sí, 1: no
2) Capacidad s: número de procesos que puede alojar en su sección crítica:
s > 0: capacidad disponible de la sección crítica para alojar procesos.
s = 0: la sección crítica está llena y no hay procesos en cola de espera.
s < 0: la sección crítica está llena y hay |s| procesos en cola de espera. - Productor-consumidor con semáforos y espera activa S4-01: 33 a 36 22-2 P10 (láminas 35 y 36), 22-1 P9, 25-1 P10 (problemas complejos)
- 9 La aplicación directa del mecanismo de semáforos en un programa específico parece muy sencilla. ¿es eso cierto, muestre dos experiencias de dificultades?
- Solo para casos extremadamente sencillos es fácil la aplicación directa; la gran mayoría de veces no, ejemplo en problema del productor consumidor:
1) El mismo mecanismo se aplica dos veces ¿?: en el productor y el consumidor
2) También se produce una espera activa del recurso PRODUCTO, se debe aplicar un segundo semáforo ¿? que inicia en el CONSUMIDOR y termina en el PRODUCTOR cuando a producido un producto. - 10 ¿Cuál es la estrategia para definir las secciones críticas para semáforos?
- Depende del tipo de problema, cada tipo tiene su estrategia propia, esto se estudia en un curso de programación concurrente.
1) problema sencillo (compartir memoria): 1) identificar variables compartidas, 2) identificar los segmentos de programa que las usan, 3) programar los semáforos.
2) Hay varios problemas complejos clásicos: productor consumidos, los filósofos, lectores y escritores, espera activa, etc. - asd