Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 – O Gerenciador de Processos é um dos mais importantes gerenciadores em um Sistema Operacional. Descreva: (a) as funções desse gerenciador; Execução do processo no processador de maneira adequada (considerando a prioridade do processo e a quantidade de processos gerenciados) (b) a conceituação de processos versus a conceituação de threads; Processo: um programa em execução, também um conjunto de informações necessárias para a concorrência de programas no sistema operacional. Além disso, também pode ser entendido como o ambiente onde um programa é executado. Threads: é a menor unidade de processamento que pode ser executada em um sistema operacional. Na maioria dos sistemas operacionais modernos, uma thread existe dentro de um processo e um único processo pode conter várias threads. (c) as condições que levam ao término de um processo; 1. Saída normal (voluntária). 2. Erro fatal (involuntário). 3. Saída por erro (voluntária). 4. Morto por outro processo (involuntário). (d) os possíveis estados de um processo; 1. Em execução (realmente usando a CPU naquele instante). 2. Pronto (executável, temporariamente parado para deixar outro processo ser executado). 3. Bloqueado (incapaz de ser executado até que algum evento externo aconteça). (e) os principais algoritmos de escalonamento de processos; 1. FIFO - FCFS 2. SJF - Shortest Job First 3. Prioridade 4. Round-Robin 5. Múltiplas Filas 6. Garantido 7. Lotérico 8. Tempo-Real (f) uma discussão que relacione exclusão mútua, região crítica, sincronização e comunicação entre processos. 2 – Responda às perguntas a seguir. a) Qual a relação entre timesharing e multiprogramação? A diferença entre o sistema de compartilhamento de tempo e de multiprogramação está no funcionamento de cada um. Os sistemas de compartilhamento de tempo, também chamados de time-sharing, possibilitam que vários programas sejam executados através de uma divisão de tempo do processador em intervalos curtos. Os sistemas de multiprogramação ou multitarefa são uma evolução dos programas de monoprogramação. Eles possibilitam, por exemplo, que enquanto um programa esteja em operação de leitura outros possam ser executados. b)Qual é a diferença entre o modo núcleo (também chamado supervisor, protegido ou privilegiado) e o modo usuário? Por que essa diferença é importante para um sistema operacional? Grande parte das CPUs modernas providenciam dois modos de execução, o kernel e o usuário. A CPU pode executar cada instrução na sua lista de instruções e usar todo o poder do hardware quando executando o modo kernel. Porém só pode utilizar um conjunto de instruções e pequena capacidade quando executa o modo usuário. Tendo os dois modos permite programadores a negarem aos usuários acessos vitais da cpu. c)Como funciona uma chamada de sistema? Primeiro se empilha os parâmetros passados pela função, há então uma chamada real para a rotina de biblioteca, onde se chama todas as rotinas. Coloca-se o número da chamada de sistema em um lugar onde o sistema operacional espera, como um registro. Seguida de uma execução em um endereço fixo dentro do kernel. Acontece um despache para o tratador correto da chamada de sistema, onde é tratado. Então acontece o retorno do controle para a rotina de biblioteca no espaço usuário, o retorno usual da chamada de rotina, e finalmente a limpeza da pilha, podendo haver incremento do ponteiro da pilha para remover os parâmetros empilhados antes da chamada. d) Porque o acesso a serviços do sistema operacional é feito através de chamadas de sistemas e não por chamadas a subrotinas? Em outros termos, qual a diferença entre uma chamada de sistema e uma chamada de subrotina para efeitos de implementação de um sistema operacional? Enquanto as chamadas de subrotinas são transferências para procedimentos normais do programa, as chamadas de sistema transferem a execução para o sistema operacional. Para o programador assembly (linguagem de montagem), as chamadas de sistema são bastante visíveis. Por exemplo, o conhecido "INT 21H" no MSDOS. Em uma linguagem de alto nível, elas ficam escondidas dentro da biblioteca utilizada pelo compilador 3 – Descreva o que acontece com processos I/O bound com relação aos processos CPU-bound, em cada uma das seguintes políticas de escalonamento: (a) FCFS O processador é alocado seguindo a ordem de chegada dos processos à fila de processos prontos. O processo que tem a CPU não a libera até que acabe sua execução ou até que fique bloqueada por uma operação de E/S. Porém, o algoritmo tende a dar prioridade aos processos com muita carga de CPU. (b) Round Robin. É semelhante ao FCFS, porém a fila passa a ser circular de forma que um processo só utiliza a CPU por um determinado período de tempo determinado quantum. Descreva como os processos (I/O bound e CPU bound) são escalonados uns em relação aos outros. Classifique esses algoritmos em ordem de favorecimento, determinando quais desses algoritmos favorecem mais e quais favorecem menos os processos I/O bound. 4 – Os três principais estados de um processo são: ready, running e blocked. Descreva quais eventos fazem um processo mudar de estado. Descreva todas as situações possíveis envolvendo esses três estados. A transição 1 ocorre quando o sistema operacional descobre que um processo não pode continuar agora. Em alguns sistemas o processo pode executar uma chamada de sistema, como em pause, para entrar em um estado bloqueado. Em outros, incluindo UNIX, quando um processo lê de um pipe ou de um arquivo especial (por exemplo, um terminal) e não há uma entrada disponível, o processo é automaticamente bloqueado. As transições 2 e 3 são causadas pelo escalonador de processos, uma parte do sistema operacional, sem o processo nem saber a respeito delas. A transição 2 ocorre quando o escalonador decide que o processo em andamento foi executado por tempo suficiente, e é o momento de deixar outro processo ter algum tempo de CPU. A transição 3 ocorre quando todos os outros processos tiveram sua parcela justa e está na hora de o primeiro processo chegar à CPU para ser executado novamente. A transição 4 se verifica quando o evento externo pelo qual um processo estava esperando (como a cheada de alguma entrada) acontece. Se nenhum outro processo estiver sendo executado naquele instante, a transição 3 será desencadeada e o processo começará a ser executado. Caso contrário, ele talvez tenha de esperar no estado de pronto por um intervalo curto até que a CPU esteja disponível e chegue sua vez. 5 – No contexto de gerenciamento de processos, no que consiste o problema de inversão de prioridades? Exemplifique. Que tipo de soluções existem para esse tipo de problema? A inversão de prioridades ocorre quando uma tarefa de alta prioridade é impedida de executar por causa de uma tarefa de baixa prioridade. Uma solução elegante para o problema da inversão de prioridades é obtida através de um protocolo de herança de prioridade [Sha et al., 1990]. O protocolo de herança de prioridade mais simples consiste em aumentar temporariamente a prioridade da tarefa tb que detém o recurso de uso exclusivo R. Caso esse recurso seja requisitado por uma tarefa de maior prioridade ta , a tarefa tb “herda” temporariamente a prioridade de ta, para que possa executar e liberar o recurso R mais rapidamente. Assim que liberar o recurso, tb retorna à sua prioridade anterior
Compartilhar