Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "lista.h"
- bool listaVazia0(listaPrioridade0 *l0){
- return (l0->inicio == NULL) ? true : false;
- }
- bool listaVazia1(listaPrioridade1 *l1){
- return (l1->inicio == NULL) ? true : false;
- }
- bool listaVazia2(listaPrioridade2 *l2){
- return (l2->inicio == NULL) ? true : false;
- }
- bool listaVazia3(listaPrioridade3 *l3){
- return (l3->inicio == NULL) ? true : false;
- }
- void iniciarLista0(listaPrioridade0 *l0){
- l0->inicio = l0->fim = NULL;
- l0->qtd = 0;
- }
- void iniciarLista1(listaPrioridade1 *l1){
- l1->inicio = l1->fim = NULL;
- l1->qtd = 0;
- }
- void iniciarLista2(listaPrioridade2 *l2){
- l2->inicio = l2->fim = NULL;
- l2->qtd = 0;
- }
- void iniciarLista3(listaPrioridade3 *l3){
- l3->inicio = l3->fim = NULL;
- l3->qtd = 0;
- }
- Processo *getTempoProcesso(int tempoProcessado){
- Processo *P = (Processo*)malloc(sizeof(Processo));
- if(P != NULL){
- P->prox = NULL;
- P->tempoProcessado = tempoProcessado;
- }
- return P;
- }
- Processo *getPID(){
- Processo *P = (Processo*)malloc(sizeof(Processo));
- if(P != NULL){
- P->prox = NULL;
- P->PID = rand() % 10 + 304;
- }
- return P;
- }
- Processo *getTempoTotal(int tempoTotal){
- Processo *P = (Processo*)malloc(sizeof(Processo));
- if(P != NULL){
- P->prox = NULL;
- P->tempoTotal = tempoTotal;
- }
- return P;
- }
- void inserirLista0(listaPrioridade0 *l0, int PID, int tempoTotal){
- Processo *novo = setProcesso(PID, tempoTotal);
- if(novo != NULL){
- if(listaVazia0(l0)){
- l0->inicio = l0->fim = novo;
- novo->prox = l0->inicio;
- }else{
- l0->fim->prox = novo;
- novo->prox = l0->inicio;
- l0->fim = novo;
- }
- l0->qtd++;
- }
- }
- void inserirLista1(listaPrioridade1 *l1, Processo *P){
- if(listaVazia1(l1)){
- l1->inicio = l1->fim = P;
- P->prox = l1->inicio;
- }else{
- l1->fim->prox = P;
- P->prox = l1->inicio;
- l1->fim = P;
- }
- l1->qtd++;
- }
- void inserirLista2(listaPrioridade2 *l2, Processo *P){
- if(listaVazia2(l2)){
- l2->inicio = l2->fim = P;
- P->prox = l2->inicio;
- }else{
- l2->fim->prox = P;
- P->prox = l2->inicio;
- l2->fim = P;
- }
- l2->qtd++;
- }
- void inserirLista3(listaPrioridade3 *l3, Processo *P){
- if(listaVazia3(l3)){
- l3->inicio = l3->fim = P;
- P->prox = l3->inicio;
- }else{
- l3->fim->prox = P;
- P->prox = l3->inicio;
- l3->fim = P;
- }
- l3->qtd++;
- }
- Processo *removerLista0(listaPrioridade0 *l0){
- Processo *aux = l0->inicio;
- if(aux->prox == l0->inicio)
- iniciarLista0(l0);
- else
- l0->inicio = l0->fim->prox = aux->prox;
- return aux;
- }
- Processo *removerLista1(listaPrioridade1 *l1){
- Processo *aux = l1->inicio;
- if(aux->prox == l1->inicio)
- iniciarLista1(l1);
- else
- l1->inicio = l1->fim->prox = aux->prox;
- return aux;
- }
- Processo *removerLista2(listaPrioridade2 *l2){
- Processo *aux = l2->inicio;
- if(aux->prox == l2->inicio)
- iniciarLista2(l2);
- else
- l2->inicio = l2->fim->prox = aux->prox;
- return aux;
- }
- Processo *removerLista3(listaPrioridade3 *l3){
- Processo *aux = l3->inicio;
- if(aux->prox == l3->inicio)
- iniciarLista3(l3);
- else
- l3->inicio = l3->fim->prox = aux->prox;
- return aux;
- }
- void imprimir(listaPrioridade0 *l0, listaPrioridade1 *l1, listaPrioridade2 *l2, listaPrioridade3 *l3){
- Processo *aux0 = l0->inicio;
- Processo *aux1 = l1->inicio;
- Processo *aux2 = l2->inicio;
- Processo *aux3 = l3->inicio;
- if(!listaVazia0(l0)){
- while(aux0->prox != l0->inicio){
- printf("Lista de prioridade 0\n");
- printf("PID = [%d] Tempo Total de Excucao = [%d] Tempo já executado = [%d]",aux0->PID, aux0->tempoTotal, aux0->tempoProcessado);
- aux0 = aux0->prox;
- }
- }
- if(!listaVazia1(l1)){
- while(aux1->prox != l1->inicio){
- printf("Lista de prioridade 1\n");
- printf("PID = [%d] Tempo Total de Excucao = [%d] Tempo já executado = [%d]",aux1->PID, aux1->tempoTotal, aux1->tempoProcessado);
- aux1 = aux1->prox;
- }
- }
- if(!listaVazia2(l2)){
- while(aux2->prox != l2->inicio){
- printf("Lista de prioridade 2\n");
- printf("PID = [%d] Tempo Total de Excucao = [%d] Tempo já executado = [%d]",aux2->PID, aux2->tempoTotal, aux2->tempoProcessado);
- aux2 = aux2->prox;
- }
- }
- if(!listaVazia3(l3)){
- while(aux3->prox != l3->inicio){
- printf("Lista de prioridade 3\n");
- printf("PID = [%d] Tempo Total de Excucao = [%d] Tempo já executado = [%d]",aux3->PID, aux3->tempoTotal, aux3->tempoProcessado);
- aux3 = aux3->prox;
- }
- }
- }
- void destruirLista0(listaPrioridade0 *l0){
- if(!listaVazia0(l0)){
- Processo *atual = l0->inicio, *ant;
- while(atual->prox != l0->inicio){
- ant = atual;
- atual = atual->prox;
- free(ant);
- }
- free(atual);
- iniciarLista0(l0);
- }
- }
- void destruirLista1(listaPrioridade1 *l1){
- if(!listaVazia1(l1)){
- Processo *atual = l1->inicio, *ant;
- while(atual->prox != l1->inicio){
- ant = atual;
- atual = atual->prox;
- free(ant);
- }
- free(atual);
- iniciarLista1(l1);
- }
- }
- void destruirLista2(listaPrioridade2 *l2){
- if(!listaVazia2(l2)){
- Processo *atual = l2->inicio, *ant;
- while(atual->prox != l2->inicio){
- ant = atual;
- atual = atual->prox;
- free(ant);
- }
- free(atual);
- iniciarLista2(l2);
- }
- }
- void destruirLista3(listaPrioridade3 *l3){
- if(!listaVazia3(l3)){
- Processo *atual = l3->inicio, *ant;
- while(atual->prox != l3->inicio){
- ant = atual;
- atual = atual->prox;
- free(ant);
- }
- free(atual);
- iniciarLista3(l3);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement