Buscar

Introdução a Sistemas Operacionais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Revisão para prova SO. 
 
Introdução. 
 
1 - Como seria utilizar um computador sem sistemas operacional? Qual suas duas 
principais funções? 
Não funcionaria. Pois sem um intermediário entre os usuários e os componentes de 
hardware, não haveria como utilizar os recursos disponíveis para aplicações, que por sinal 
não existiria sem o sistema operacional. Sistema Operacional possibilita o uso eficiente e 
controlado dos recursos de hardware e implementam políticas e estruturas de software de 
modo a assegurar um melhor desempenho do sistema de computação. 
 
2- Quais as principais dificuldades que um programador teria no desenvolvimento de 
uma aplicação em um ambiente sem sistema operacional? 
A maior dificuldade que o programador teria seria em programar em linguagem de 
máquina, já que o hardware não possui ambiente programável. O programador teria que 
programar todo os componentes de hardware: vídeo, teclado, mouse, placa de rede, disco 
rígido. Cada tarefa que a aplicação fosse fazer teria que ser detalhada num nível muito 
baixo para que o computador funcione. 
 
3 - Explique o conceito de máquina virtual. Qual a grande vantagem de utilizar esse 
conceito? 
Máquina virtual é o nome dado a uma máquina, implementada através de software, 
no qual podemos criar diversas máquinas virtuais independentes e isoladas, onde cada 
máquina oferece um cópia virtual do hardware, incluindo modos de acesso, interrupções, 
dispositivos de E/S, etc. e seu próprio SO como se fosse um computador real, mas 
utilizando dos mesmos recursos de hardware da máquina real na qual foi instalada. 
 
 
4 - Defina o conceito de uma máquina de camadas. 
Separação das funções por camadas onde uma camada somente pode 
chamar uma rotina da camada imediatamente abaixo. 
 
5 - Quais os tipos de sistemas operacionais existentes? 
Sistemas monoprogramáveis, sistemas multiprogramáveis s sistemas com vários 
processadores 
 
6 - Por que dizemos que existe subutilização de recursos em sistemas 
monoprogramáveis? 
Porque em sistemas monoprogramáveis somente é possível a execução de um 
programa por vez. Como um programa não utiliza todos os recursos do sistema totalmente 
ao longo da sua execução, existe ociosidade e, consequentemente, subutilização de alguns 
recursos. 
 
7 - Qual a grande diferença entre sistemas monoprogramáveis e multiprogramáveis? 
Os sistemas monoprogramáveis se caracterizam por permitir que o processador, a 
memória e os periféricos permaneçam exclusivamente dedicados à execução de um único 
programa. Nos sistemas multiprogramáveis ou multitarefa, os recursos computacionais são 
compartilhados entre os diversos usuários e aplicações. Enquanto em sistemas 
monoprogramáveis existe apenas um programa utilizando os recursos disponíveis, nos 
multiprogramáveis várias aplicações compartilham esses mesmos recursos. 
 
8 - Quais as grandes vantagens dos sistemas multiprogramáveis? 
As vantagens são: redução do tempo de resposta das aplicações processadas no 
ambiente e de custos, a partir do compartilhamento dos diversos recursos do sistema entre 
as diferentes aplicações. 
 
9 - Um sistema monousuário pode ser um sistema multiprogramável? Dê um 
exemplo. 
Sim, pois um único usuário executa diversas aplicações concorrentemente em um 
SO. Ex: Windows 7. 
 
10 - Quais são os tipos de sistemas multiprogramáveis? 
Sistemas batch, sistemas de tempo compartilhado e sistemas de tempo real. 
 
11 - O que caracteriza o processamento batch? Quais aplicações podem se 
processadas nesse tipo de ambiente? 
A principal característica é a de não exigir a interação do usuário com a aplicação. 
Alguns exemplos de aplicações originalmente processadas em batch são programas 
envolvendo cálculos numéricos, compilações, ordenações, backups e todos aqueles onde 
não é necessária a interação com o usuário. 
 
12 - Quais as vantagens de sistemas de tempo compartilhado? Quais as vantagens 
em utilizá-los? 
Já respondida na 8. 
 
 
13 - Qual a grande diferença entre sistemas de tempo compartilhado e tempo real? 
Quais aplicações são indicadas para sistemas em tempo real? 
Nos de tempo Compartilhados temos o fator tempo de resposta já nos sistemas de 
tempo real, os tempos de resposta devem estar dentro de limites rígidos. Aplicações de 
controle de processos, como no monitoramento de refinarias de petróleo, controle de 
tráfego aéreo em geral onde é preciso uma grande precisão de cálculos. 
 
14 - O que são sistemas com múltiplos processadores e quais as vantagens em 
utilizá-los? 
Os sistemas com múltiplos processadores possuem duas ou mais UCPs interligadas 
e trabalhando em conjunto. A vantagem deste tipo de sistema é permitir que vários 
programas sejam executados ao mesmo tempo ou que um mesmo programa seja 
subdividido em partes para serem executadas simultaneamente em mais de um 
processador. 
 
15 - Qual a grande diferença entre sistemas fortemente acoplados e fracamente 
acoplados? 
Nos sistemas fortemente acoplados existem vários processadores compartilhando 
uma única memória física e dispositivos de I/O, sendo gerenciados por apenas um sistema 
operacional. Os sistemas fracamente acoplados possuem dois ou mais sistemas 
computacionais conectados através de linhas de comunicação. Cada sistema funciona de 
forma independente, possuindo seu próprio sistema operacional e gerenciando seus 
próprios recursos, como UCP, memória e dispositivos deI/O. 
 
16 - O que é um sistema SNP? Qual a diferença para um sistema NUPA? 
Nos sistemas SMP, o tempo de acesso à memória principal pelos diversos 
processadores é uniforme. Nos sistemas NUMA, existem diversos conjuntos de 
processadores e memória principal interconectados, onde o tempo de acesso à memória 
principal varia em função da sua localização física. 
 
17 - O que é um sistema fracamente acoplado? Qual a diferença entre sistemas 
operacionais em rede e sistemas distribuídos? 
Os sistemas fracamente acoplados possuem dois ou mais sistemas computacionais 
conectados através de linhas de comunicação. Cada sistema funciona de forma 
independente,possuindo seu próprio sistema operacional e gerenciando seus próprios 
recursos, como UCP,memória e dispositivos de I/O. Os sistemas operacionais de rede 
permitem que um host compartilhe seus recursos, como uma impressora ou diretório, com 
os demais hosts da rede enquanto que nos sistemas distribuídos, o sistema operacional 
esconde os detalhes dos hosts individuais e passa a tratá-los como um conjunto único, 
como se fosse um sistema fortemente acoplado. 
 
18 - Qual os benefícios de um sistema com múltiplos processadores em um 
computador pessoal? 
A experiência do usuário será maximizada já que ele conseguirá utilizar várias 
aplicações ao mesmo tempo sem perder usabilidade do sistema operacional. Cada 
aplicação será dividida entre os processadores. 
 
19 - Qual seria o sistema operacional indicado para o uso em um servidor de 
aplicações em um ambiente corporativo? 
Servidor de aplicação. 
 
20 - Qual seria o sistema operacional indicado para executar uma aplicação que 
manipula grande volume de dados e necessita de um baixo tempo de resposta? 
Sistema em tempo real. 
 
 
 
 
 
 
Concorrência. 
 
1 - O que é concorrência e como esse sistema está presente em sistemas 
operacionais multiprogramáveis? 
Concorrência é o princípio básico para projeto e implementação dos sistemas 
operacionais multiprogramáveis onde é possível o processador executar instruções 
em paralelo com operações de E/S. Isso possibilita a utilização concorrente da UCP 
por diversos programas sendo implementada de maneira que, quando um programa 
perde o uso do processador e depois retorna para continuar o processamento, seu 
estado deve ser idêntico ao do momento em que foi interrompido. O programa deverá 
continuarsua execução exatamente na instrução seguinte àquela em que havia parado, 
aparentando ao usuário que nada aconteceu. 
 
2 - Por que o mecanismo de interrupção é fundamental para implementação da 
multiprogramação? 
Porque é em função desse mecanismo que o sistema operacional sincroniza 
a execução de todas as suas rotinas e dos programas dos usuários, além de 
controlar dispositivos. 
 
3 - Explique o mecanismo de funcionamento das interrupções. 
Uma interrupção é sempre gerada por algum evento externo ao programa e, neste 
caso, independe da instrução que está sendo executada. Ao final da execução de 
cada instrução, a unidade de controle verifica a ocorrência de algum tipo de 
interrupção. Neste caso, o programa em execução é interrompido e o controle 
desviado para uma rotina responsável por tratar o evento ocorrido, denominada rotina 
de tratamento de interrupção. Para que o programa possa posteriormente voltar a ser 
executado, é necessário que, no momento da interrupção, um conjunto de 
informações sobre a sua execução seja preservado. Essas informações consistem no 
conteúdo de registradores, que deverão ser restaurados para a continuação do programa. 
 
4 - O que são eventos síncronos e assíncronos? Como estes eventos estão 
relacionados ao mecanismo de interrupção e exceção? 
Evento síncronos são resultados direto da execução do programa corrente. 
Tais eventos são previsíveis e, por definição, só podem ocorrer um único de cada 
vez. Eventos assíncronos não são relacionados à instrução do programa corrente. 
Esses eventos, por serem imprevisíveis, podem ocorrer múltiplas vezes, como no 
caso de diversos dispositivos de E/S informarem ao processador que estão prontos 
para receber ou transmitir dados. Uma interrupção é um evento assíncrono enquanto 
uma exceção é um evento síncrono. 
 
5 - Dê exemplos de eventos associados ao mecanismo de exceção. 
Uma instrução que gere a situação de overflow ou uma divisão por zero. 
 
 
 
 
6 - Qual a vantagem da E/S controlada por interrupção comparada com a técnica de 
polling? 
Na E/S controlada por interrupção, as operações de E/S podem ser realizadas de 
uma forma mais eficiente. Em vez de o sistema periodicamente verificar o estado de uma 
operação pendente como na técnica de polling, o próprio controlador interrompe o 
processador para avisar do término da operação. Com esse mecanismo, o processador, 
após a execução de um comando de leitura ou gravação, permanece livre para o 
processamento de outras tarefas 
 
7 - O que é DMA e qual a vantagem desta técnica? 
A técnica de DMA permite que um bloco de dados seja transferido entre a memória 
principal e dispositivos de E/S, sem a intervenção do processador, exceto no início e no final 
da transferência. Quando o sistema deseja ler ou gravar um bloco de dados, o processador 
informa ao controlador sua localização, o dispositivo de E/S, a posição inicial da memória de 
onde os dados serão lidos ou gravados e o tamanho do bloco. Com estas informações, o 
controlador realiza a transferência entre o periférico e a memória principal, e o processador 
é somente interrompido no final da operação. 
 
8 - Como a técnica de buffering permite aumentar a concorrência em um sistema 
computacional? 
Como o buffering permite minimizar o problema da disparidade da velocidade de 
processamento existente entre o processador e os dispositivos de E/S, esta técnica permite 
manter, na maior parte do tempo, processador e dispositivos de E/S ocupados. 
 
9 - Explique o mecanismo de spooling de impressão​. 
No momento em que um comando de impressão é executado, as informações que 
serão impressas são gravadas antes em um arquivo em disco, conhecido como arquivo de 
spool, liberando imediatamente o programa para outras atividades. Posteriormente, o 
sistema operacional encarrega-se em direcionar o conteúdo do arquivo de spool para a 
impressora. 
 
Estrutura do sistema operacional 
 
1. O que é o núcleo do sistema e quais são suas principais funções? 
É o conjunto de rotinas que oferece serviços aos usuário s, suas aplicações, 
além do próprio sistema operacional. As principais f unções do núcleo encontradas na 
maioria dos sistemas comerciais são: tratamento de interrupções e exceções; criação 
e eliminação de processos e threads; sincronização e comunicação entre processos e 
threads; escalonamento e controle dos processos e threads; gerência de memória; 
gerência do sistema de arquivos; gerência de dispositivos de E/S; suporte à r edes 
locais e distribuídas; contabilização do uso do sistema; auditoria e segurança do sistema. 
 
2. O que são instruções privilegiadas e não privilegiadas? Qual a relação dessas 
instruções com os modos de acesso? 
Instruções privilegiadas são instruções que só devem ser executadas pelo sistema 
operacional ou sob sua supervisão, impedindo, assim, a ocorrência de problemas de 
segurança e integridade do sistema. As instruções não -privilegiadas não oferecem 
risco ao sistema. Quando o processador trabalha no modo usuário, uma aplicação só 
pode executar instruções não -privilegiadas, tendo acesso a um número reduzido de 
instruções, enquanto no modo kernel ou supervisor a aplicação pode ter acesso ao 
conjunto total de instruções do processador. 
 
3. Explique como funciona a mudança de modos de acesso e dê um exemplo de como 
um programa faz uso desse mecanismo. 
 Sempre que um programa necessita executar uma instrução privilegiada, a 
solicitação deve ser realizada através de uma chamada a uma system call, que 
altera o modo de acesso do processador do modo usuário para o modo kernel. Ao 
término da execução da rotina do sistema, o modo de acesso retorna para o modo usuário. 
 
4. Como o kernel do sistema operacional pode ser protegido pelo mecanismo de 
modos de acesso? 
Através do modo usuário. Neste modo, todos os comandos não privilegiados podem 
ser executados. Todos os aplicativos são executados no modo usuário, e enviam as 
instruções para o modo kernel que avaliam a segurança e garantia da execução protegida 
de cada "system call". 
Este forma de chamadas identifica se o aplicativo possui permissão para executar o 
comando. 
 
5. Por que as rotinas do sistema operacional possuem instruções privilegiadas? 
Como é o sistema operacional que controla tudo, apenas ele tem o poder de dizer o 
que está certo ou errado. Assim ele mesmo é responsável por qualquer situação de risco 
para o hardware ou software. Usar o modo kernel, o sistema pode administrar a memória de 
forma transparente, e também deve saber a hora de cada evento acontecer. No modo 
kernel, ações delicadas são realizadas e é seguro ao máximo para não falhar. 
 
para gerenciar uma memória, liberar o espaço de memória utilizado por um aplicativo, não 
deve ser uma tarefa realizada pela programação do programador, mas sim pela observação 
do sistema operacional. operações deste tipo, são delicadas e devem ser executadas com 
segurança. para evitar erros e intenções maliciosas, apenas o sistema operacional 
consegue fazer isso, e só realmente faz se estiver seguro. 
 
 
6. O que é uma system calls e qual sua importância para a segurança do sistema? 
System call é uma chamada do sistema, como sua própria tradução indica. em uma 
chamada ao sistema, o sistema operacional recebe um comando e possíveis parâmetros. 
como resposta, recebe um outro código, que pode indicar sucesso, falha ou até mesmo o 
resultado do próprio comando. 
No processo de receber o comando, o sistema identifica o aplicativo que fez a chamada e 
verificar a sua permissãopara execução do comando. dada a permissão executa e retorna 
o resultado. 
 
 
7 - Quais das instruções a seguir devem ser executadas apenas pelo modo kernel? 
Desabilitar todas as interrupções, consultar data e hora do sistema, alterar a data e 
hora do sistema, alterar as informações residentes no núcleo do sistema, somar duas 
variáveis declaradas dentro de um programa, realizar um desvio para uma instrução 
dentro do próprio programa e acessar diretamente posições no disco. 
 
Desabilitar todas as interrupções, alterar a data e hora do sistema, 
realizar um desvio para uma instrução dentro do programa e acessar 
diretamente posições do disco 
 
8 - Pesquise comandos disponíveis em linguagens de controle de sistemas 
operacionais. 
 
9 - Explique o processo de ativação (boot) do sistema operacional. 
Quando o computador é ligado, não existe nada na memória, então o primeiro 
programa a ser chamado, é chamado boot, que fica gravado na memória rom. 
Este programa chama um programa que testa a existência dos recursos mínimos 
para inicializar o sistema e se comunicar com o hardware. este sistema se chama post 
(power on self test), que identifica possíveis erros do hardware, como falta de memória, 
teclado etc. Se tudo estiver ok, é verificado a existência de algum sistema operacional 
instalado em algum dispositivo. Quando encontrado ele chama procura por um espaço 
chamado boot sector, que contém as informações iniciais para carregar o sistema 
operacional na memória. 
 
 
10 - Compare as arquiteturas monolítica e de camadas. Quais as vantagens e 
desvantagens de cada arquitetura? 
A primeira, é composta por módulos que se comunicam livremente e a segunda é 
arquitetada em camadas, classificando as funções em cada uma destas camadas. 
A arquitetura monolítica funcionou muito bem até o sistema operacional se tornar 
complexo. Como foi evoluindo muito rápido, também se tornou complexo e de difícil 
manutenção. 
 
11 - Quais as vantagens do modelo de máquina virtual? 
Permite executar uma instrução sobre um computador virtual, desta forma não 
prejudica o hardware real. Sendo que uma computador real pode conter várias máquinas 
virtuais, qualquer comando não prejudica as outras máquinas virtuais, apenas a que está 
em execução. 
 
Processos 
 
1. Defina o conceito de processo. 
Um processo pode ser definido como o ambiente onde um programa é 
executado. Este ambiente, além das informações sobre a execução, possui também 
o quanto de recursos do sistema cada programa pode utilizar, como o espaço de 
endereçamento, tempo de processador e área em disco. 
 
2. Por que o conceito de processo é tão importante projeto de sistemas 
multiprogramáveis? 
Através de processos, um programa pode alocar recursos, compartilhar dados, 
trocar informações e sincronizar sua execução. Nos sistemas multiprogramáveis os 
processos são executados concorrentemente, compartilhando o uso do processador, 
memória principal, dispositivos de E/S dentre outros recursos. 
 
3. É possível que um programa execute no contexto de um processo e não execute no 
contexto de outro? Por quê? 
Sim, pois a execução de um programa pode necessitar de recursos do sistema que 
um processo pode possuir enquanto outro não. 
 
4. Quais partes compõem um processo? 
Um processo é formado por três partes, conhecidas como contexto de 
hardware, contexto de software e espaço de endereçamento, que juntos mantêm 
todas as informações necessárias à execução de um programa. 
 
 5. O que é o contexto de hardware de um processo? como é a implementação da 
troca de contexto ? 
Quando um processo está em execução, o seu contexto de hardware está 
armazenado nos registradores do processador. No momento em que o processo 
perde a utilização da UCP, o sistema salva as informações no contexto de hardware 
do processo. O sistema operacional gerencia a mudança de contexto, base para a 
implementação da concorrência, que consiste em salvar o conteúdo dos registradores do 
processo que está deixando a UCP e carregá-lo com os valores referentes ao do novo 
processo que será executado. Se resume em substituir o contexto de hardware de um 
processo pelo outro. 
 
6. Qual a função do contexto de software? Exemplifique cada grupo de informação. 
No contexto de software de um processo são especificados limite s e 
características dos recursos que podem ser alocados pelo processo, como o número 
máximo de arquivos abertos simultaneamente, prioridade de execução e tamanho do 
buffer para operações de E/S. É composto por três grupos de informações sobre o 
processo: Identificação, quotas e privilégios. Identificação: Cada processo criado pelo 
sistema recebe uma identificação única (PID) representada por um número. Quotas: As 
quotas são os limites de cada recurso do sistema que o processo pode alocar. 
(número máximo de arquivos abertos, número máximo de operações de E/S, etc.) 
Privilégios: Os privilégios definem as ações que um processo pode fazer em relação 
a ele mesmo, aos demais processos e ao sistema operacional. 
 
7. O que é o espaço de endereçamento de um processo? 
O espaço de endereçamento é a área da memória pertencente ao processo 
onde instruções e dados do programa são armazenados para execução. 
 
8. Como o sistema operacional implementa o conceito de processo? Qual a estrutura 
de dados índice para organizar os diversos processos na mem principal? 
 O processo é implementado pelo sistema operacional através de uma estrutura de 
dados chamada bloco de controle do processo (Process Control Block — PCB). A partir do 
PCB, o sistema operacional mantém todas as informações sobre o contexto de 
hardware, contexto de software e espaço de endereçamento de cada processo. 
 
9. Defina os cinco estados possíveis de um processo. 
 Criação: A criação de um processo ocorre a partir do momento em que o sistema 
operacional adiciona um novo PCB à sua estrutura e aloca um espaço de 
endereçamento na memória para uso. 
Execução: Quando está sendo processado pela UCP. 
Pronto: Quando aguarda apenas para ser executado. 
Espera: Quando está aguardando por um evento externo ou por algum recurso para 
prosseguir seu processamento. 
Término: Não poderá ter mais nenhum programa executando no seu contexto, porém 
o S.O ainda mantém suas informações de controle presentes em memória 
 
12. Explique a diferença entre processos foreground e background. 
Foreground: É aquele que permite a comunicação direta de usuário com o 
processo durante o seu processamento. Background: Não existe a comunicação com o 
usuário durante o seu processamento. 
 
13. Qual a relação entre processo e arquitetura microkernel? 
A arquitetura microkernel implementa o uso intensivo de processos que 
disponibilizam serviços para processos das aplicações e do próprio sistema operacional. 
 
14. Dê exemplos de aplicações CPU-bound e I/O-bound. 
CPU-bound: É encontrado em aplicações científicas que efetuem muitos cálculos. 
I/O-bound: É encontrado em aplicações comerciais, que se baseiam em leitura, 
processamento e gravação. 
 
Threads 
 
1 - Como uma aplicação pode implementar concorrência em um ambiente 
Monothread? 
A aplicação deve implementar a concorrência através do uso de Múltiplos processos 
independentes ou subprocessos, permitindo dividir uma aplicação em partes que podem 
trabalhar de forma concorrente. 
 
2 - Quais os problemas de aplicações concorrentes desenvolvidas em ambiente 
Monothread? 
O uso de múltiplos processos e subprocessos geram gastos de recursos do sistema, 
consumindo tempo deprocessamento e espaço na memória Principal, tanto para alocar ou 
desalocar recursos. Cada processo tem endereçamento diferente, isso significa que a 
comunicação entre esses processos se torna muito lenta e difícil de se programar, nesse 
caso usa-se técnicas muito complicadas como semáforos,pipes, sinais, memória 
compartilhada ou troca de mensagens. 
 
3 - O que é um ambiente Multithread e quais as vantagens de sua utilização? 
A ideia do ambiente Multithread é trabalhar de forma concorrente dentro do mesmo 
processo, dividindo as tarefas em várias tarefas menores chamadas de thread ou 
sub-rotinas. 
O thread é tratado pelo processador como um processo. A vantagem é a minimização de 
recursos do sistema, e ganho de desempenho uma vez que os processos demandam muito 
tempo com a criação, troca e eliminação de processos. Os threads trabalhar de forma 
cooperativa e Utilizam o mesmo espaço de endereçamento. Isso torna o acesso às 
informações mais rápida e simples, pois evita mudança de modo de acesso e permissão de 
acesso. 
 
4 - Explique a diferença entre unidade de alocação de recursos e unidade de 
escalonamento. 
Com a unidade de alocação de recursos o processador seleciona um processo para 
execução e com a unidade de escalonamento permite a execução de threads. 
 
5 - Quais as vantagens e desvantagens do compartilhamento do espaço de 
endereçamento entre Threads de um mesmo processo? 
A vantagem é permitir o compartilhamento de dados entre os threads de maneira 
mais rápida e eficiente. 
 
9 - Compare os pacotes de threads em modo usuário e modo kernel? 
Threads em modo usuário (TMU) são implementados pela aplicação e não pelo 
sistema operacional. Para isso, deve existir uma biblioteca de rotinas que possibilita à 
aplicação realizar tarefas como criação/eliminação de threads, troca de mensagens entre 
threads e uma política de escalonamento. Neste modo, o sistema operacional não sabe da 
existência de múltiplos threads, sendo responsabilidade exclusiva da aplicação gerenciar e 
sincronizar os diversos threads existentes. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Sincronização 
 
1 - Defina o que é uma aplicação concorrente e dê um exemplo de sua utilização. 
 É a sincronização e comunicação entre os processos. Muitas vezes os processos 
concorrentes devem comunicar entre si. Está comunicação pode ser implementada através 
de memória compartilhada e a troca de mensagens. 
 
2 - Considere uma aplicação que utilize uma matriz na memória principal para a 
comunicação entre vários processos concorrentes. Que tipo de problema pode 
ocorrer quando dois ou mais processos acessam uma mesma posição da matriz? 
Analisando os exemplos conclui-se que em qualquer situação, onde dois ou mais 
processos compartilham um mesmo recurso, devem existir mecanismos de controle para 
evitar estes tipos de problemas, conhecidos como race conditions (condições de corrida). 
 
3 - O que é exclusão mútua e como é implementada? 
É a solução para evitar problemas de compartilhamento, impedindo que dois ou mais 
processos acessem um mesmo recurso simultaneamente, assim enquanto um processo 
estiver acessando um recurso, os demais que queiram acessá los deverão esperar pelo 
término da utilização do recurso. São implementadas através de protocolos de E/S. 
 
5 - O que é starvation e como podemos solucionar esse problema? 
Starvation é uma espera indefinida. Um processo fora da sua região crítica impede 
que outros processos utilizem o recurso compartilhado. Soluções de hardware: 
Desabilitação de interrupções; Soluções de software: Algoritmo de Dekker; Algoritmo de 
Peterson; Algoritmo para exclusão mútua entre N processos. 
 
6 - Qual o problema com a solução que desabilita as interrupções para implementar a 
exclusão mútua? 
A multiprogramação pode ficar seriamente comprometida, já a concorrência tem 
como base o uso de interrupções; Se o processo “esquecer” de habilitar as interrupções, o 
sistema ficaria seriamente comprometido; Em sistemas multiprocessados esta solução 
torna-se ineficiente devido ao tempo de propagação de um processador para os outros da 
desabilitação/habilitação das interrupções. 
 
7 - O que é espera ocupada e qual o seu problema? 
Na espera ocupada, toda vez que um processo não consegue entrar em sua região 
crítica, por já existir outro processo acessando o recurso, o processo permanece em 
looping, testando uma condição, até que lhe seja permitido o acesso. Dessa forma, o 
processo em looping consome tempo do processador desnecessariamente, podendo 
ocasionar problemas ao desempenho do sistema. 
 
8 - Explique o que é sincronização condicional e dê um exemplo de sua utilização. 
Sincronização condicional é uma situação onde o acesso ao recurso compartilhado 
exige a sincronização de processos vinculada a uma condição de acesso. Um recurso pode 
não se encontrar pronto para uso devido a uma condição específica. Nesse caso, o 
processo que deseja acessá-lo deverá permanecer bloqueado até que o recurso fique 
disponível. Um exemplo clássico desse tipo de sincronização é a comunicação entre dois 
processos através de operações de gravação e leitura em um buffer. 
 
9 - Explique o que são semáforos e dê dois exemplos de sua utilização: um para a 
solução da exclusão mútua e outro para a sincronização condicional. 
Um semáforo é uma variável inteira, não negativa, que só pode ser manipulada por duas 
instruções: DOWN e UP. 
 
 
13. O que é deadlock, quais as condições para obtê-lo e quais as soluções possíveis? 
Deadlock é a situação em que um processo aguarda por um recurso que nunca estará 
disponível ou um evento que não ocorrerá. Para que ocorra a situação de deadlock, quatro 
condições são necessárias simultaneamente: exclusão mútua: cada recurso só pode estar 
alocado a um único processo em um determinado instante; 
espera por recurso: um processo, além dos recursos já alocados, pode estar esperando por 
outros recursos; 
não-preempção: um recurso não pode ser liberado de um processo só porque outros 
processos desejam o mesmo recurso; 
espera circular: um processo pode ter de esperar por um recurso alocado a outro processo 
e vice-versa. 
Para prevenir a ocorrência de deadlocks, é preciso garantir que uma das quatro condições 
apresentadas, necessárias para sua existência, nunca se satisfaça. A prevenção de 
deadlocks evitando-se a ocorrência de qualquer uma das quatro 
condições é bastante limitada e, por isso, na prática não é utilizada. Uma solução conhecida 
como Algoritmo do Banqueiro (implementada com a presença das quatro condições) 
também possui várias limitações. A maior delas é a necessidade de um número fixo de 
processos ativos e de recursos disponíveis no sistema. Essa limitação impede que a 
solução seja implementada na prática, pois é muito difícil prever o número de usuários no 
sistema e o número de recursos disponíveis.

Continue navegando