SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
Ejercicios Propuestos
1. Escribe un programa en C que pida por teclado dos cadenas de caracteres y Después
escriba cada cadena por pantalla carácter a carácter. La escritura de cada cadena
deberá hacerla un proceso diferente. El proceso padre deberá esperar a que termine
el proceso hijo.
2. Escribe un programa en C que reciba dos números enteros como parámetros de
entrada y cree dos procesos de manera que cada uno calcule el Factorial de uno de
los números, de forma concurrente, y utilizando el fichero ejecutable obtenido en el
apartado anterior. El proceso padre será el último en terminar, es decir, que espere a
la terminación de sus procesos hijos.
3. Escribir una función que lea de la entrada estándar un carácter y escriba ese carácter
en un fichero cuyo descriptor se pasa como argumento a la misma. Una vez escrito
en el fichero el carácter leído, la función escribirá por la salida estándar el
identificador del proceso que ejecuta la función.
4. Escribe un programa en C que dada 3 matrices, sincronice los hilos del código se
de tal forma que se imprima en primer lugar la primera fila de la matriz, a
continuación la segunda, después la tercera y así sucesivamente hasta la ´última fila
de la matriz.
5. Se desea imprimir las tablas de multiplicar del 1 al 10 de tal manera que ´estas se
muestren respectivamente en 10 columnas consecutivas. Por lo tanto, en la primera
línea se imprimirá el primer elemento de cada una de las sucesivas tablas (esto es,
1x1, 2x1,..., 10x1). En la segunda línea se imprimirá el segundo elemento de cada
una de las sucesivas tablas (es decir, 1x2, 2x2,..., 10x2). Y así hasta llegar a
imprimir (en la décima línea) el ´último elemento de cada tabla (esto es, 1x10,
2x10,..., 10x10).
6. En el programa que aparece más abajo se crean cinco hilos simulando a cinco
comensales que están sentados en una mesa circular en el mismo orden en el que
fueron creados. En el centro de la mesa hay un plato de arroz y un cucharón para
servirlo. Los comensales se sirven el arroz de uno en uno y en el orden en que están
sentados a la mesa; esto es, comensal 0, 1, 2, 3, 4, 0, 1, ... Los hilos sincronizan su
ejecución de la forma arriba descrita utilizando mutex y variables de condición,
Responder a las siguientes preguntas sobre este programa:
(a) ¿Por qué no se incluye la función sleep, que simula el periodo en el que come un
comensal, dentro del mutex?
(b) El hilo principal crea los hilos en un bucle y espera a que finalicen en otro bucle.
¿Por qué no se realizan ambas operaciones en un ´único bucle?
(c) Modifica la solución proporcionada para que se utilice una ´única variable de
condición para la sincronización.
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <time.h>
#define NHILOS 5
void *f_hilos(void *ind)
{ int indice;
indice = (int)ind;
while(1) {
printf("Comensal %d: Sirve su comidan",indice);
sleep(random() % 3); /* Comensal ind comiendo */
printf("Comensal %d: Plato vacion",indice);
}
pthread_exit(0);
}
main()
{ int i;
pthread_t *hilos;
time_t t;
srandom(time(&t));
hilos = malloc(NHILOS * sizeof(pthread_t));
for (i = 0; i < NHILOS; i++) pthread_create(&hilos[i], NULL, f_hilos, (void
for (i = 0; i < NHILOS; i++) pthread_join(hilos[i], NULL);
pthread_exit(0);
}
7. Para llevar esto a cabo se crearán 10 hilos, uno por tabla, que se ejecutaran
concurrentemente. Y la sincronización entre hilos se realizará mediante mutex y
variables de condición. Todos los hilos ejecutaran una misma función a la que se le
pasará como argumento el número de su correspondiente tabla. El hilo principal
finalizara cuando se haya impreso todas las tablas.
8. Implementa un programa en lenguaje C que cree 10 hilos de tipo “sumador” y otros
10 hilos de tipo “restador”. Los hilos sumadores sumarán uno a una variable global
v, realizando cada uno esta operación 1000 veces. Los hilos restadores restarán uno
a la variable global v y cada uno realizará esta operación 1000 veces. Se incluye la
estricción de que el valor de la variable v no puede ser nunca negativo. Utiliza
mutex y variables de condición para sincronizar la ejecución de los hilos.
9. Implementa un programa en lenguaje C que cree 10 hilos de tipo “sumador” y otros
10 hilos de tipo “restador”. Los hilos sumadores sumarán uno a una variable global
v, realizando cada uno esta operación 1000 veces. Los hilos restadores restarán uno
a la variable global v y cada uno realizará esta operación 1000 veces. Todos los
hilos se ejecutaran concurrentemente. Se incluye la restricción de que no se pueden
realizar dos operaciones iguales de forma consecutiva. O sea, si hace una suma, la
siguiente operación debe ser una resta y viceversa. Utiliza mutex y variables de
condición para sincronizar la ejecución de los hilos.
10. Realiza un programa en C que cree un hilo productor y 2 hilos consumidores y
resuelva el problema del productor-consumidor con buffer circular limitado
mediante mutex y variables de condición. Se valorara la eficiencia de la solución
propuesta.
11. Realiza ejercicio N- 7, de la guía final SO.
Compila y ejecuta cada ejercicio para comprobar su funcionamiento

Más contenido relacionado

Similar a Ejercicios Propuestos 2023

Ejercicios Tema 1 1
Ejercicios Tema 1  1Ejercicios Tema 1  1
Ejercicios Tema 1 1
jaquito1009
 
Taller2 lab stats_matlab
Taller2 lab stats_matlabTaller2 lab stats_matlab
Taller2 lab stats_matlab
Nar Dy
 
Practicas de visual basic 6.0
Practicas de visual basic 6.0Practicas de visual basic 6.0
Practicas de visual basic 6.0
BangMiriam3003
 

Similar a Ejercicios Propuestos 2023 (20)

Ud diagramas de flujo
Ud diagramas de flujoUd diagramas de flujo
Ud diagramas de flujo
 
Manual.es
Manual.esManual.es
Manual.es
 
Ejercicios Tema 1 1
Ejercicios Tema 1  1Ejercicios Tema 1  1
Ejercicios Tema 1 1
 
Clase 10
Clase 10Clase 10
Clase 10
 
Presentación de matlab electromagnetismo ...
Presentación de matlab electromagnetismo                                     ...Presentación de matlab electromagnetismo                                     ...
Presentación de matlab electromagnetismo ...
 
practicas dfd
practicas dfdpracticas dfd
practicas dfd
 
Mas_de_400_ejercicios_de_programacion_en (2).pdf
Mas_de_400_ejercicios_de_programacion_en (2).pdfMas_de_400_ejercicios_de_programacion_en (2).pdf
Mas_de_400_ejercicios_de_programacion_en (2).pdf
 
Mas_de_400_ejercicios_de_programacion_en (1).pdf
Mas_de_400_ejercicios_de_programacion_en (1).pdfMas_de_400_ejercicios_de_programacion_en (1).pdf
Mas_de_400_ejercicios_de_programacion_en (1).pdf
 
Taller2 lab stats_matlab
Taller2 lab stats_matlabTaller2 lab stats_matlab
Taller2 lab stats_matlab
 
Practicas
PracticasPracticas
Practicas
 
Practicas 2 unidad
Practicas 2 unidadPracticas 2 unidad
Practicas 2 unidad
 
Sesión 8
Sesión 8Sesión 8
Sesión 8
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivas
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 
Switch case (informe_18)
Switch case (informe_18)Switch case (informe_18)
Switch case (informe_18)
 
Practicas
PracticasPracticas
Practicas
 
Manual de practicas
Manual de practicasManual de practicas
Manual de practicas
 
Practicas de visual basic 6.0
Practicas de visual basic 6.0Practicas de visual basic 6.0
Practicas de visual basic 6.0
 
Practicas de visual basic 6.0
Practicas de visual basic 6.0Practicas de visual basic 6.0
Practicas de visual basic 6.0
 

Más de puracastillo

Más de puracastillo (20)

ejerciciospropuestosgestionM.pdf
ejerciciospropuestosgestionM.pdfejerciciospropuestosgestionM.pdf
ejerciciospropuestosgestionM.pdf
 
mapa conceptual.pptx
mapa conceptual.pptxmapa conceptual.pptx
mapa conceptual.pptx
 
clase invertida.pptx
clase invertida.pptxclase invertida.pptx
clase invertida.pptx
 
Guia N1_ Modelo de PL.pdf
Guia N1_ Modelo de PL.pdfGuia N1_ Modelo de PL.pdf
Guia N1_ Modelo de PL.pdf
 
Presentación sistema operativo.pptx
Presentación sistema operativo.pptxPresentación sistema operativo.pptx
Presentación sistema operativo.pptx
 
Unidad2 métodos cuantitativa
Unidad2 métodos cuantitativa Unidad2 métodos cuantitativa
Unidad2 métodos cuantitativa
 
Ejercicios Propuestos Sincronización.pdf
Ejercicios Propuestos Sincronización.pdfEjercicios Propuestos Sincronización.pdf
Ejercicios Propuestos Sincronización.pdf
 
Ejercicios propuestos Procesos e Hilos
Ejercicios propuestos Procesos e Hilos Ejercicios propuestos Procesos e Hilos
Ejercicios propuestos Procesos e Hilos
 
Gestiond memoria-pnfi
Gestiond memoria-pnfiGestiond memoria-pnfi
Gestiond memoria-pnfi
 
Plan de clases proyecto iii fase1 2021
Plan de clases proyecto iii fase1 2021Plan de clases proyecto iii fase1 2021
Plan de clases proyecto iii fase1 2021
 
Plan evaluacion uniencasa sistemas operativos2
Plan evaluacion uniencasa sistemas operativos2Plan evaluacion uniencasa sistemas operativos2
Plan evaluacion uniencasa sistemas operativos2
 
Plan evaluacion uniencasa sistemas operativos
Plan evaluacion uniencasa sistemas operativosPlan evaluacion uniencasa sistemas operativos
Plan evaluacion uniencasa sistemas operativos
 
Ejercicios propuestos ms
Ejercicios propuestos msEjercicios propuestos ms
Ejercicios propuestos ms
 
Ejercicios propuestos metodo simplex
Ejercicios propuestos metodo simplexEjercicios propuestos metodo simplex
Ejercicios propuestos metodo simplex
 
Plan evaluación uniencasa investigación de operaciones
Plan evaluación uniencasa investigación de operacionesPlan evaluación uniencasa investigación de operaciones
Plan evaluación uniencasa investigación de operaciones
 
Guia 2 metodo grafico
Guia 2 metodo graficoGuia 2 metodo grafico
Guia 2 metodo grafico
 
Ejercicios propuestos metodo grafico
Ejercicios propuestos metodo graficoEjercicios propuestos metodo grafico
Ejercicios propuestos metodo grafico
 
Entregables proyecto iii
Entregables proyecto iii Entregables proyecto iii
Entregables proyecto iii
 
Baremos fase i y ii
Baremos fase i y iiBaremos fase i y ii
Baremos fase i y ii
 
Estructura del informe final
Estructura del informe finalEstructura del informe final
Estructura del informe final
 

Último

Pasos para enviar una tarea en SIANET - sólo estudiantes.pdf
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdfPasos para enviar una tarea en SIANET - sólo estudiantes.pdf
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdf
NELLYKATTY
 
Profecia 2300 dias explicada, Daniel 8:14
Profecia 2300 dias explicada, Daniel 8:14Profecia 2300 dias explicada, Daniel 8:14
Profecia 2300 dias explicada, Daniel 8:14
KevinBuenrostro4
 

Último (20)

IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...
IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...
IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...
 
2.15. Calendario Civico Escolar 2024.docx
2.15. Calendario Civico Escolar 2024.docx2.15. Calendario Civico Escolar 2024.docx
2.15. Calendario Civico Escolar 2024.docx
 
Tipologías de vínculos afectivos (grupo)
Tipologías de vínculos afectivos (grupo)Tipologías de vínculos afectivos (grupo)
Tipologías de vínculos afectivos (grupo)
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
 
Revista Faro Normalista 6, 18 de mayo 2024
Revista Faro Normalista 6, 18 de mayo 2024Revista Faro Normalista 6, 18 de mayo 2024
Revista Faro Normalista 6, 18 de mayo 2024
 
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptxDESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
 
ACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLA
ACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLAACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLA
ACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLA
 
Power Point : Motivados por la esperanza
Power Point : Motivados por la esperanzaPower Point : Motivados por la esperanza
Power Point : Motivados por la esperanza
 
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdf
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdfPasos para enviar una tarea en SIANET - sólo estudiantes.pdf
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdf
 
LA ORALIDAD, DEFINICIÓN Y CARACTERÍSTICAS.pptx
LA ORALIDAD, DEFINICIÓN Y CARACTERÍSTICAS.pptxLA ORALIDAD, DEFINICIÓN Y CARACTERÍSTICAS.pptx
LA ORALIDAD, DEFINICIÓN Y CARACTERÍSTICAS.pptx
 
el poder del estado en el siglo XXI.pptx
el poder del estado en el siglo XXI.pptxel poder del estado en el siglo XXI.pptx
el poder del estado en el siglo XXI.pptx
 
2. Entornos Virtuales de Aprendizaje.pptx
2. Entornos Virtuales de Aprendizaje.pptx2. Entornos Virtuales de Aprendizaje.pptx
2. Entornos Virtuales de Aprendizaje.pptx
 
TEMA EGIPTO.pdf. Presentación civilización
TEMA EGIPTO.pdf. Presentación civilizaciónTEMA EGIPTO.pdf. Presentación civilización
TEMA EGIPTO.pdf. Presentación civilización
 
Profecia 2300 dias explicada, Daniel 8:14
Profecia 2300 dias explicada, Daniel 8:14Profecia 2300 dias explicada, Daniel 8:14
Profecia 2300 dias explicada, Daniel 8:14
 
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdf
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdfMETODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdf
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdf
 
Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptxComunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
 
CONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocx
CONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocxCONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocx
CONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocx
 
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOSTRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
 
Análisis de los factores internos en una Organización
Análisis de los factores internos en una OrganizaciónAnálisis de los factores internos en una Organización
Análisis de los factores internos en una Organización
 
4ª SESION la misión santificadora del Espíritu Santo en la vida de la Iglesi...
4ª SESION  la misión santificadora del Espíritu Santo en la vida de la Iglesi...4ª SESION  la misión santificadora del Espíritu Santo en la vida de la Iglesi...
4ª SESION la misión santificadora del Espíritu Santo en la vida de la Iglesi...
 

Ejercicios Propuestos 2023

  • 1. Ejercicios Propuestos 1. Escribe un programa en C que pida por teclado dos cadenas de caracteres y Después escriba cada cadena por pantalla carácter a carácter. La escritura de cada cadena deberá hacerla un proceso diferente. El proceso padre deberá esperar a que termine el proceso hijo. 2. Escribe un programa en C que reciba dos números enteros como parámetros de entrada y cree dos procesos de manera que cada uno calcule el Factorial de uno de los números, de forma concurrente, y utilizando el fichero ejecutable obtenido en el apartado anterior. El proceso padre será el último en terminar, es decir, que espere a la terminación de sus procesos hijos. 3. Escribir una función que lea de la entrada estándar un carácter y escriba ese carácter en un fichero cuyo descriptor se pasa como argumento a la misma. Una vez escrito en el fichero el carácter leído, la función escribirá por la salida estándar el identificador del proceso que ejecuta la función. 4. Escribe un programa en C que dada 3 matrices, sincronice los hilos del código se de tal forma que se imprima en primer lugar la primera fila de la matriz, a continuación la segunda, después la tercera y así sucesivamente hasta la ´última fila de la matriz. 5. Se desea imprimir las tablas de multiplicar del 1 al 10 de tal manera que ´estas se muestren respectivamente en 10 columnas consecutivas. Por lo tanto, en la primera línea se imprimirá el primer elemento de cada una de las sucesivas tablas (esto es, 1x1, 2x1,..., 10x1). En la segunda línea se imprimirá el segundo elemento de cada una de las sucesivas tablas (es decir, 1x2, 2x2,..., 10x2). Y así hasta llegar a imprimir (en la décima línea) el ´último elemento de cada tabla (esto es, 1x10, 2x10,..., 10x10). 6. En el programa que aparece más abajo se crean cinco hilos simulando a cinco comensales que están sentados en una mesa circular en el mismo orden en el que fueron creados. En el centro de la mesa hay un plato de arroz y un cucharón para servirlo. Los comensales se sirven el arroz de uno en uno y en el orden en que están sentados a la mesa; esto es, comensal 0, 1, 2, 3, 4, 0, 1, ... Los hilos sincronizan su ejecución de la forma arriba descrita utilizando mutex y variables de condición, Responder a las siguientes preguntas sobre este programa: (a) ¿Por qué no se incluye la función sleep, que simula el periodo en el que come un comensal, dentro del mutex? (b) El hilo principal crea los hilos en un bucle y espera a que finalicen en otro bucle. ¿Por qué no se realizan ambas operaciones en un ´único bucle? (c) Modifica la solución proporcionada para que se utilice una ´única variable de condición para la sincronización.
  • 2. #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <time.h> #define NHILOS 5 void *f_hilos(void *ind) { int indice; indice = (int)ind; while(1) { printf("Comensal %d: Sirve su comidan",indice); sleep(random() % 3); /* Comensal ind comiendo */ printf("Comensal %d: Plato vacion",indice); } pthread_exit(0); } main() { int i; pthread_t *hilos; time_t t; srandom(time(&t)); hilos = malloc(NHILOS * sizeof(pthread_t)); for (i = 0; i < NHILOS; i++) pthread_create(&hilos[i], NULL, f_hilos, (void for (i = 0; i < NHILOS; i++) pthread_join(hilos[i], NULL); pthread_exit(0); } 7. Para llevar esto a cabo se crearán 10 hilos, uno por tabla, que se ejecutaran concurrentemente. Y la sincronización entre hilos se realizará mediante mutex y variables de condición. Todos los hilos ejecutaran una misma función a la que se le pasará como argumento el número de su correspondiente tabla. El hilo principal finalizara cuando se haya impreso todas las tablas. 8. Implementa un programa en lenguaje C que cree 10 hilos de tipo “sumador” y otros 10 hilos de tipo “restador”. Los hilos sumadores sumarán uno a una variable global v, realizando cada uno esta operación 1000 veces. Los hilos restadores restarán uno a la variable global v y cada uno realizará esta operación 1000 veces. Se incluye la estricción de que el valor de la variable v no puede ser nunca negativo. Utiliza mutex y variables de condición para sincronizar la ejecución de los hilos. 9. Implementa un programa en lenguaje C que cree 10 hilos de tipo “sumador” y otros 10 hilos de tipo “restador”. Los hilos sumadores sumarán uno a una variable global v, realizando cada uno esta operación 1000 veces. Los hilos restadores restarán uno a la variable global v y cada uno realizará esta operación 1000 veces. Todos los hilos se ejecutaran concurrentemente. Se incluye la restricción de que no se pueden realizar dos operaciones iguales de forma consecutiva. O sea, si hace una suma, la siguiente operación debe ser una resta y viceversa. Utiliza mutex y variables de condición para sincronizar la ejecución de los hilos.
  • 3. 10. Realiza un programa en C que cree un hilo productor y 2 hilos consumidores y resuelva el problema del productor-consumidor con buffer circular limitado mediante mutex y variables de condición. Se valorara la eficiencia de la solución propuesta. 11. Realiza ejercicio N- 7, de la guía final SO. Compila y ejecuta cada ejercicio para comprobar su funcionamiento