O Sistema Operacional
Por: fabiodeangele • 19/11/2021 • Projeto de pesquisa • 424 Palavras (2 Páginas) • 127 Visualizações
Proc_A:
Pelo que pude ver aloca o Plotter, processe e no final é liberado
Proc_B:
Deve ser "liberado" o scanner após a impressora e plotter. Do contrário irá travar o funcionamento da impressora e plotter.
Correção:
Procedimento Proc_B()
Início
Enquanto (verdadeiro) Faça // Procedimento nunca termina
processa_algo();
aloca_scanner();
processa_algo_utilizando_scanner();
libera_scanner();
aloca_impressora();
processa_algo_utilizando_scanner_impressora();
libera_impressora();
aloca_plotter();
processa_algo_utilizando_scanner_impressora_plotter();
libera_plotter();
Fim Enquanto;
Fim;
Proc_C:
Aqui a impressora tem que ser "liberada" para poder alocar o scanner.
Correção:
Procedimento Proc_C()
Início
Enquanto (verdadeiro) Faça // Procedimento nunca termina
processa_algo();
aloca_impressora();
processa_algo_utilizando_impressora();
libera_impressora();
aloca_scanner();
processa_algo_utilizando_scanner_impressora();
libera_scanner();
Fim Enquanto;
Fim;
Início
sema_impressora = 1; // Inicia semaforo de controle da impressora
sema_plotter = 1; // Inicia semaforo de controle do plotter
sema_scanner = 1; // Inicia semaforo de controle do scanner
// Inicia as threads colocando-as em execução paralelamente
pthread_create(thread_A, Proc_A); // Inicia Proc_A como uma thread
pthread_create(thread_B, Proc_B); // Inicia Proc_A como uma thread
...