Programação e Desenvolvimento

Projetos, softwares, sites, blogs e trabalhos conforme sua necessidade e com os melhores preços.
Tecnologia do Blogger.

Text Widget

Search (Don't Edit)

Sample Text

Colaboradores

Formulir Kontak

Nome

E-mail *

Mensagem *

Full-Width Version (true/false)

Flickr

Facebook

Translate

Video of the Day

Slider (Add Label Name Here!) (Documentation Required)

Teste Teste Teste

Know us

Teste Teste Teste Teste

Popular Posts

Featured

21 de ago. de 2020

Estrutura de dados I - Mapa Unicesumar

Atenção: Precisando de ajudas nos seus trabalhos entre em contato e realize um orçamento: E-mail: mvf5system@gmail.com

(15) 99764-3162

Os processadores Intel da família x86 costumam dar a possibilidade e o programador criar sub-rotinas em assembly (procedimentos ou funções). Para isso, o programador deve conhecer muito bem a arquitetura e organização do computador. A programação de computadores em linguagem de baixo nível exige que saibamos como manipular dados em memória respeitando as regras de inserção e remoção impostas pela estrutura de dados conhecida como pilha. Segundo Silberchartz (2011), um programa possui quatro áreas principais, em memória, a saber: seção de texto, seção e dados, heap e pilha. A figura abaixo ilustra a estrutura de um processo em memória principal.

SILBERSCHATZ, Abraham. Fundamentos de Sistemas Operacionais. 8. ed. Rio de Janeiro: LTC, 2011.
 
Considere que você é um desenvolvedor Open Source e está ajudando a comunidade de Sistema Operacional de Código aberto a desenvolver um algoritmo de gerenciamento da pilha em memória. Assim sendo, você decide criar um programa que simule condições semelhantes às de um Sistema Operacional que manipula a pilha.
 
Os dados a serem armazenados na pilha devem simular processos, sendo que cada elemento a empilhar/desempilhar deve possuir:
 
O PID do cada processo (Process ID, é um código gerado automaticamente pelo sistema – cada processo tem seu próprio PID);
O nome do programa/comando que gerou o processo.
 
O programa deve ter um menu principal em forma de laço de repetição que atenda aos seguintes requisitos:
 
O menu sempre deve imprimir o conteúdo da pilha (da base em direção ao topo);
Após a impressão do conteúdo da pilha, o usuário deve ser informado de que pode realizar as seguintes operações:
Inserir um elemento na pilha;
Remover um elemento da pilha;
Esvaziar a pilha;
Encerrar o programa.
 
A operação “Inserir um elemento na pilha” deve pedir para que o usuário informe o nome do programa ou comando que será empilhado. O programa deve associar um PID a esse nome automaticamente, e empilhar ambos os dados: PID + nome. Caso a pilha esteja cheia, o usuário deve receber uma mensagem informando: “Pilha cheia, impossível empilhar mais elementos.”.
 
A operação “Remover um elemento da pilha” tentar remover um elemento da pilha. Caso haja elemento para ser removido, o PID e o nome do elemento desempilhado devem ser impressos na tela. Caso não seja possível desempilhar elementos, o programa deve imprimir a mensagem “Pilha vazia, impossível desempilhar elementos.”, na tela.
 
A operação “Esvaziar a pilha” deve remover todos os elementos da pilha.
 
A operação “Encerrar programa” deve finalizar o processo.
 
Observações:
O código-fonte deve ser escrito de forma a implementar estruturas de dados estáticas. Nesse caso, nossa pilha deverá ter, no máximo, 5 posições para armazenar elementos (tamanho igual a 5);
A correção será feita em ambiente Bloodshed Dev C++, no padrão C ANSI. Assim, caso o aluno tenha desenvolvido seu código em outra IDE/Compilador, é importante que o aluno garanta que seu código também é compilável/executável em ambiente Dev C++. Essa é uma responsabilidade do aluno, e não da equipe de correção.

0 comentários:

Postar um comentário

Postagem em destaque

MVF5 System - SOLUÇÕES EM TI!

          Desenvolvimento de projetos, softwares, sites, blogs e trabalhos conforme sua necessidade e com os melhores preços. Entre em c...

Seguidores

Total de visualizações

Postagens populares