int main(){ printf("init: comienza\n"); if (crear_proceso("simplon")<0){ printf("Error creando simplon\n"); } /*if (crear_proceso("dormilon")<0) printf("Error creando dormilon\n");*/ /* Este programa causa una excepción */ if (crear_proceso("excep_arit")<0) printf("Error creando excep_arit\n"); /* Este programa crea otro proceso que ejecuta simplon a una excepción */ if (crear_proceso("excep_mem")<0) printf("Error creando excep_mem\n"); /* No existe: debe fallar */ if (crear_proceso("noexiste")<0) printf("Error creando noexiste\n"); espera(); printf("init: termina\n"); return 0; }
int main(){ int i, tot, j=5; struct tiempos_ejec tiempos_f1, tiempos_f2, tiempos_f3; int t0, t1, t2, t3; printf("prueba_tiempos: comienza\n"); t0=tiempos_proceso(0); printf("PRIMERA FASE: HACE LLAMADAS AL SISTEMA\n"); for (i=0; i<TOT_ITER_FASE1; i++) printf("prueba_tiempos: i %d\n", i); printf("FIN PRIMERA FASE\n"); t1=tiempos_proceso(&tiempos_f1); imp_tiempos(t1-t0, tiempos_f1.usuario, tiempos_f1.sistema); printf("SEGUNDA FASE: TODO CPU \n"); for (i=0; i<TOT_ITER_FASE2; i++) tot=j*i; printf("FIN SEGUNDA FASE\n"); t2=tiempos_proceso(&tiempos_f2); imp_tiempos(t2-t1, tiempos_f2.usuario-tiempos_f1.usuario, tiempos_f2.sistema-tiempos_f1.sistema); printf("TERCERA FASE: DORMIDO\n"); dormir(1); printf("FIN TERCERA FASE\n"); t3=tiempos_proceso(&tiempos_f3); imp_tiempos(t3-t2, tiempos_f3.usuario-tiempos_f2.usuario, tiempos_f3.sistema-tiempos_f2.sistema); printf("PASANDO ARGUMENTO ERRONEO\n"); printf("tot: %d\n", tot); /* Debe sobrevivir después de abortar el proceso */ if (crear_proceso("simplon")<0) printf("Error creando simplon\n"); tiempos_proceso((struct tiempos_ejec *) main); printf("prueba_tiempos: termina. NO DEBE SALIR\n"); return 0; }
int main(){ printf("prueba_alta_prioridad: comienza\n"); if (crear_proceso("yosoy")<0) printf("Error creando yosoy baja\n"); if (crear_proceso("yosoy")<0) printf("Error creando yosoy baja\n"); if (crear_proceso_alta_prioridad("yosoy")<0) printf("Error creando yosoy alta\n"); if (crear_proceso_alta_prioridad("yosoy")<0) printf("Error creando yosoy alta\n"); printf("prueba_alta_prioridad: termina\n"); return 0; }
int main(){ printf("init: comienza\n"); fijar_prio(25); if (crear_proceso("dormilon")<0) printf("Error creando dormilon\n"); fijar_prio(30); if (crear_proceso("simplon")<0) printf("Error creando simplon\n"); /* Este programa causa una excepción */ if (crear_proceso("excep_arit")<0) printf("Error creando excep_arit\n"); /* Este programa solicita que lo pongan a dormir */ if (crear_proceso("dormilon")<0) printf("Error creando dormilon\n"); if (crear_proceso("simplon")<0) printf("Error creando simplon\n"); /* Este programa crea otro proceso que ejecuta simplon a una excepción */ //if (crear_proceso("excep_mem")<0) // printf("Error creando excep_mem\n"); /* No existe: debe fallar */ if (crear_proceso("noexiste")<0) printf("Error creando noexiste\n"); printf("init: termina\n"); return 0; }
int main(){ printf("init: comienza\n"); if (crear_proceso("simplon")<0) printf("Error creando simplon\n"); get_pid(); printf("init: termina\n"); return 0; }
int main(){ int i; printf("Creando procesos . . . \n"); for(i=0; i<8; i++) { if (crear_proceso("test_e2_3_leer_disco")<0){ printf("test_e2_6_leer_varios_disco: Error al crear el proceso test_e2_3_leer_disco\n"); } } printf("Procesos lanzados.\n"); return 0; }
int main(){ int i; printf("Creando procesos . . . \n"); for(i=0; i<8; i++) { if (crear_proceso("test_e2_4_escribir_bloque")<0){ printf("test_e2_9_escribir_varios_bloque: Error al crear el proceso test_e2_2_leer_bloque\n"); } } printf("Procesos lanzados.\n"); return 0; }
int main(){ int i; printf("simplon (%i): empieza\n", get_pid()); if (crear_proceso("simplon")<0) printf("Error creando fill simplon\n"); for (i=0; i<TOT_ITER; i++){ printf("Soy simplon (%i), mi padres es %i \n", get_pid(), get_ppid()); } printf("simplon (%i): termina\n", get_pid()); return 0; }
int main() { /* MONTAJE DISCOFS */ //Montar disco. printf("escribir_fichero_mul_varfic -> Montando el disco en la particion /FICHEROS/lectura con discoFS\n"); if(montar("disco", "lectura", "discoFS") < 0) { printf("escribir_fichero_mul_varfic -> Error al montar particion lectura en disco con discoFS.\n"); } int i = 0; for(i = 0; i < 5; i++) { if(crear_proceso("escribir_fichero_mul_varfic_child") < 0) { printf("Error creando escribir_fichero_mul_varfic_child.\n"); } } return (0); }
int main() { int i; printf("simplon: comienza\n"); for (i=0; i<TOT_ITER; i++) printf("simplon: i %d\n", i); //fijar_prio(30); /* Augmentam la prioritat */ /* Prova de prioritats, deixarem que el simplon2 heredi del pare*/ if (crear_proceso("dormilon")<0){ printf("Error creando dormilon\n"); } //fijar_prio(10); //Aqui debería activarse la interrupción de Software. espera(); printf("simplon: termina\n"); return 0; }
int main(){ int i; printf("simplon: empieza\n"); //fijar_prio(11); if (crear_proceso("simplon")<0) printf("Error creando simplon\n"); printf("Soy simplon, mi padre es %i", get_ppid()); for (i=0; i<TOT_ITER; i++){ if(i == TOT_ITER/2){ printf("simplon: MITAD\n"); //dormir(2); } } printf("simplon: termina\n"); return 0; }
void * LTS_demorado(void * var){ char *buffer_2=(char *)malloc(1024); bzero(buffer_2,1024); char *prioridad=(char *)malloc(64); bzero(prioridad,64); char *paso_mensaje=(char *)malloc(256); while(1){ sem_wait(sem_lts_demorado); pthread_t id_hilo=pthread_self(); int retorno; int socket_demorado; proceso proceso; pthread_mutex_lock(&mutexListaDemorados); if((socket_demorado=sacar_conexion_demorada(listaConeccionesDemoradas))>0){ pthread_mutex_unlock(&mutexListaDemorados); pthread_mutex_lock(&mutexVarMMP); pthread_mutex_unlock(&mutexVarMMP); if( (retorno = validar_mmp_demorado(socket_demorado)) == 0){ enviar_mensaje("Enviame el codigo\n",socket_demorado); recibir_mensaje(&buffer_2,socket_demorado); recibir_mensaje(&prioridad,socket_demorado); //printf("Me llego la prioridad: %s\n",prioridad); proceso = crear_proceso(buffer_2,prioridad,socket_demorado); bzero(paso_mensaje,256); sprintf(paso_mensaje,"Se creo el proceso con PID=%d\n",proceso.pcb.pid); enviar_mensaje(paso_mensaje,socket_demorado); logx(proceso.pcb.pid,"LTS_demorado",id_hilo,"INFO","El proceso ha sido creado."); char *log_text=(char *)malloc(127); sprintf(log_text,"La prioridad del proceso es %d.",proceso.prioridad); logx(proceso.pcb.pid,"LTS_demorado",id_hilo,"DEBUG",log_text); // if ( buffer_2 != NULL ){ // free(buffer_2); // } pthread_mutex_lock(&mutexListaNuevos); agregar_proceso(listaProcesosNuevos,proceso); pthread_mutex_unlock(&mutexListaNuevos); sem_post(sem_sts); logx(proceso.pcb.pid,"LTS_demorado",id_hilo,"LSCH","Agregue el proceso a la lista de Nuevos."); pthread_mutex_lock(&mutexVarMMP); mmp++; pthread_mutex_unlock(&mutexVarMMP); logx(proceso.pcb.pid,"LTS",id_hilo,"INFO","Se aumento el grado de multiprogramacion."); }else{ if( retorno == -2){ logx(proceso.pcb.pid,"LTS",id_hilo,"ERROR","Se sobrepaso el maximo grado de multiprogramacion."); logx(proceso.pcb.pid,"LTS",id_hilo,"INFO","Se aumento el grado de multiprogramacion."); } } //FD_CLR(socket_demorado,&(*master)); }else{ pthread_mutex_unlock(&mutexListaDemorados); } sleep(1); } return 0; }
int main(){ int num; int i; printf("init: comienza\n"); printf("Menu de pruebas\n\n"); printf("1.- Prueba simple\n"); printf("2.- Excepcion aritmetica\n"); printf("3.- Excepcion memoria\n"); printf("4.- Nuevas llamadas\n"); printf("5.- Dormir procesos\n"); printf("6.- Planificacion Round-Robin\n"); printf("7.- Mostrar disco\n"); printf("8.- Mostrar fichero\n"); printf("9.- Copiar disco\n"); printf("10.-Copiar fichero\n"); printf("11.-Dormilon\n"); printf("12.-Alta prioridad\n"); printf("13.-Prueba avanzada dormir\n"); printf("*************\n"); printf("*** DISCO ***\n"); printf("*************\n"); printf("14.-Leer disco\n"); printf("15.-Escribir disco\n"); printf("16.-Leer disco avanzada\n"); printf("17.-Escribir disco avanzada\n"); printf("18.-Leer bloque disco avanzada\n"); printf("19.-Escribir bloque disco avanzada\n"); printf("\nIntroduzca su opcion:"); scanf("%d",&num); switch (num) { case 1: /* PRUEBA CREAR PROCESO QUE NO EXISTE */ if (crear_proceso("noexiste")<0) printf("Error creando noexiste\n"); /* PRUEBA CREAR PROCESO SIMPLE */ if (crear_proceso("simplon")<0) printf("Error creando simplon\n"); break; case 2: /* PRUEBA PROVOCAR EXCEPCION ARITMETICA */ if (crear_proceso("excep_arit")<0) printf("Error creando excep_arit\n"); break; case 3: /* PRUEBA PROVOCAR EXCEPCION MEMORIA */ if (crear_proceso("excep_mem")<0) printf("Error creando excep_mem\n"); break; case 4: /* PRUEBA DE LAS NUEVAS LLAMADAS */ for (i=1; i<=2; i++) { if (crear_proceso("yosoy")<0) printf("Error creando yosoy\n"); } break; case 5: /* PRUEBA DE LA LLAMADA DORMIR */ if (crear_proceso("prueba_dormir")<0) printf("Error creando prueba_dormir\n"); break; case 6: /* PRIMERA PRUEBA DE ROUND-ROBIN */ if (crear_proceso("prueba_RR")<0) printf("Error creando prueba_RR\n"); break; case 7: /* PRUEBA DEL DRIVER DE CDROM */ if (crear_proceso("mostrar_disco")<0) printf("Error creando mostrar_disco\n"); break; case 8: /* PRUEBA DEL SISTEMA DE FICHEROS SOLO LECTURA */ if (crear_proceso("mostrar_fichero")<0) printf("Error creando mostrar_fichero\n"); break; case 9: /* PRUEBA DEL DRIVER DE DISCO */ if (crear_proceso("copiar_disco")<0) printf("Error creando copiar_disco\n"); break; case 10: /* PRUEBA DEL SISTEMA DE FICHEROS LECTURA/ESCRITURA */ if (crear_proceso("copiar_fichero")<0) printf("Error creando copiar_fichero\n"); break; case 11: if(crear_proceso("dormilon") < 0) { printf("Error creando dormilon\n"); } break; case 12: if(crear_proceso("prueba_alta_prioridad")<0) { printf("Error creando prueba alta prioridad\n"); } break; case 13: if(crear_proceso("prueba_avanzada_dormir") < 0) { printf("Error creando prueba avanzada dormir\n"); } break; case 14: if(crear_proceso("leer_disco") < 0) { printf("Error creando prueba leer disco\n"); } break; case 15: if(crear_proceso("escribir_disco") < 0) { printf("Error creando prueba escribir disco\n"); } break; case 16: for(i = 0; i < 9; i++) { if(crear_proceso("leer_disco") < 0) { printf("Error creando prueba escribir disco\n"); } } break; case 17: for(i = 0; i < 9; i++) { if(crear_proceso("escribir_disco") < 0) { printf("Error creando prueba escribir disco\n"); } } break; case 18: for(i = 0; i < 9; i++) { if(crear_proceso("leer_disco_bloque") < 0) { printf("Error creando prueba escribir disco\n"); } } break; case 19: for(i = 0; i < 9; i++) { if(crear_proceso("escribir_disco_bloque") < 0) { printf("Error creando prueba escribir disco\n"); } } break; } printf("init: fin\n"); return (0); }