Baixe o app para aproveitar ainda mais
Prévia do material em texto
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA, E TECNOLOGIA DO CEARÁ FÁBIO SOUZA FREITAS Sistemas Operacionais Lista 02 - Atividade avaliativa CEDRO-CEARÁ 2020.2 https://classroom.google.com/u/1/c/MTY1MzU2NjU2MDM1 FÁBIO SOUZA FREITAS Sistemas Operacionais Lista 02 - Atividade avaliativa Trabalho apresentado ao curso de Bacharelado em Sistema de Informação do Instituo Federal de Educação, Ciência, Tecnologia do Ceará- Campus Cedro como requisito parcial para conclusão da primeira etapa da disciplina de Sistemas Operacionais. Professor: Paulo Roberto Pessoa Amora CEDRO-CEARÁ 2020.2 https://classroom.google.com/u/1/c/MTY1MzU2NjU2MDM1 1. Quais os estados de um processo e como e o percurso dos processos por esses estados? Também desenhe seu diagrama. 2. O que é um PCB? Qual sua importância quanto a gerencia de processos realizada pelo SO? Quais os dados que ele mantém? O que ´e troca de contexto e como ele e utilizado nesse momento? 3. Como ocorre a criação de processos? 4. Qual a utilidade de um Escalonamento (Scheduling) de CPU? pode prejudicar o sistema? 5. Qual o propósito das chamadas de sistema? 6. O que são processos com E/S predominante e de CPU predominante? De exemplos. Como gerenciá-los para ter uma melhor performance do sistema? 7. Descreva o problema do consumidor e produtor. Como resolvê-lo com cooperação? 8. Qual a diferença entre um processo com um thread e com múltiplas threads? 9. Quais os componentes (partes internas) de um thread? 10. Quais as principais vantagens e desvantagens em dividir threads em multiprocessadores? 11. Qual a diferença entre threads a nível de usuário e a nível de kernel? 12. Explique os modelos de geração de threads: muitos-para-um, um-para-um e muitos-para muitos. Respostas 1. Quando criado, seu estado é considerado "Novo", os processos na fila do processador estão em estado de “pronto”. No estado “Executando” um processo pode fazer chamadas de sistema até a chamada de sistema ser atendida, o processo não pode continuar sua execução, ele fica bloqueado e só volta a disputar o processador após a conclusão da chamada. Enquanto espera pelo termino da chamada de sistema, o processo está no estado “Bloqueado”. E um processo que está há muito tempo no processador, ele volta para o fim da fila do estado pronto, um novo processo da fila de prontos ganha o processador e assim cada processo tem chance de executar um pouco. Esse mecanismo cria um caminho entre o estado de executando e o estado de pronto. O sistema operacional reúne todas essas informações através de estruturas específicas chamadas PCB (Bloco de Controle de Processos). 2. PCB (Bloco de Controle de Processos) estrutura de dados usado para representar um processo dentro do Sistema Operacional. A gerencia do processador permite garantir o uso adequado do processador para atender aos diversos processos em execução pelo sistema operacional. Manter o processador ocupado a maior parte do tempo, balancear o uso da UCP entre os processos, privilegiar a execução de aplicações críticas, maximizar o throughput do sistema e oferecer tempos de resposta razoáveis. 3. A criação de um processo ocorre quando o sistema operacional adiciona um novo PCB a sua estrutura e aloca um espaço de endereçamento na memória para uso. A partir da criação do PCB o sistema operacional já reconhece a existência do processo. 4. A rotina Scheduler tem como função implementar os critérios da política de escalonamento. Esta rotina também é chamada escalonador. Todo o compartilhamento do processador depende desta rotina. Processo é que consome mais tempo podendo demorar muito para serem finalizados, caso comece a chegar processos menores que ele. 5. As chamadas de sistemas são funções (interfaces) usadas pelos aplicativos para solicitar a execução de algum serviço ao kernel do sistema operacional. Por isso, as chamadas de sistemas são instruções com maior privilégio quando comparadas às outras instruções. 6. Processos CPU bound (orientados à CPU): são processos que utilizam muito o processador, em que o tempo de execução é definido pelos ciclos de processador. Processos I/O bound (orientados à E/S): são processos que realizam muitas operações de entrada e saída de dados, em que o tempo de execução é definido pela duração destas. https://guialinux.uniriotec.br/kernel/ 7. Chamado de Produtor e o Consumidor (também conhecido como o problema do buffer limitado), consiste em um conjunto de processos que compartilham um mesmo buffer. Os processos chamados produtores põem informação no buffer. Os processos chamados consumidores retiram informação deste buffer. Precisamos nos preocupar com acessos ilegais a certos recursos que são compartilhados entre os processos, e manter sincronismo entre os mesmos. 8. Os processos e os encadeamentos são sequências independentes de execução. A diferença típica é que os threads (do mesmo processo) são executados em um espaço de memória compartilhado, enquanto os processos são executados em espaços de memória separados. 9. um identificador do thread (ID), um contador de programa, um conjunto de registradores e uma pilha. 10. Uma das vantagens é que isso facilita o desenvolvimento, visto que torna possível elaborar e criar o programa em módulos, experimentando-os isoladamente no lugar de escrever em um único bloco de código. Outro benefício dos threads é que eles não deixam o processo parado, pois quando um deles está aguardando um determinado dispositivo de entrada ou saída, ou ainda outro recurso do sistema, outro thread pode estar trabalhando. A desvantagem deste modelo é que para cada thread que é criada no nível do usuário, um thread correspondente no kernel também é criada. 11. No modo Kernel, o código em execução tem acesso completo e irrestrito ao hardware subjacente. Ele pode executar qualquer instrução da CPU e fazer referência a qualquer endereço de memória. O modo kernel é geralmente reservado para as funções de nível mais baixo e mais confiáveis do sistema operacional. No modo de usuário, o código em execução não tem capacidade de acessar diretamente o hardware ou a memória de referência. O código em execução no modo de usuário deve delegar às APIs do sistema para acessar o hardware ou a memória. Devido à proteção proporcionada por este tipo de isolamento, as falhas no modo deusuário são sempre recuperáveis. A maior parte do código emexecução em seu computador será executada no modo de usuário. 12. O modelo muitos-para-um mapeia muitos threads de nível de usuário para threads do kernel. O gerenciamento dos threads é realizado no espaço do usuário e assim é eficiente, mas o processo inteiro ficará bloqueado. O modelo um-para-um mapeia cada thread de usuário para um thread de kernel, gera mais concorrência do que o modelo muitos-para-um. Permite a um outro thread ser executado, enquanto um thread realiza uma chamada de sistema de bloqueio, ele também permite que múltiplos threads executem em paralelo em multiprocessadores.
Compartilhar