Skip to content

isaias0rt0n/sistemas-operacionais

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistemas Operacionais

🏷️ About

Trabalho realizado na disciplina de sistemas Operacionais, visando abordar conceitos como:

  • Threads
  • Processos
  • Produtor e Consumidor
  • Algoritmos de escalonamento SJF e Round Robin
  • Faça um programa que leia um número “n” informado pelo usuário e diga quantos números primos há entre 0 e “n”. Esse seu programa deve rodar em 2 threads, de forma que o esforço computacional seja uniformemente dividido entre os threads.
  • Podemos calcular o seno de um número segundo a série de Taylor-Maclaurin como na imagem abaixo. Faça um programa em C que lê um valor para x e calcule o valor de Sen(x) utilizando duas threads para dividir os cálculos, uma para os termos com soma e outra para os com subtração. O valor deve ser calculado até ser próximo do seno

  • Crie um programa em C que demonstre uma hierarquia de processos com o comando fork( ) -> Pai -> Filho ->Filho1
  • Crie um programa que receba parâmetros na chamada do main e mostre na saída metade dos parâmetros pelo processo pai e a outra metade pelo processo filho
  • Crie um programa em C que apresente duas funções para threads (produtor e consumidor), nesse devem ser criadas a quantidade de threads definidas por uma variável global QTD e utilizar outra variável global chamada “valor”. O produtor só pode produzir um número se essa variável tiver sido consumida (valor=0), quando ele for produzir é atribuído um número aleatório a variável “valor”. O consumido só pode consumir um número, se ele já tiver sido produzido (valor≠0), quando ele consome é atribuído valor=0. O programa deve seguir as seguintes especificações: (comentário do código)
  • Implemente uma simulação para os algoritmos de escalonamento SJF e Round Robin em C. Em sua implementação o usuário deve fornecer a quantidade de processos que estão na fila para serem executados, a ordem de chegada e o tempo de execução de cada processo. Durante a execução deve ser informado ao usuário qual o processo que está executando e esperado o tempo de cada processo por segundo. Por exemplo, se um processo A demora 5 segundos, deve ser informado que ele está sendo trabalhado e esperado o tempo de execução deste para poder iniciar o próximo, para isso utilize um temporizador em seu algoritmo.