Buscar

Lista - 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

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

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ê viu 3, do total de 8 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

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

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ê viu 6, do total de 8 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

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

Prévia do material em texto

1) Defina o que é um Sistema Operacional, descrevendo suas principais funções. 
 
Programa ou conjunto de programas que tem o intuito de deixar a utilização mais 
simples e transparente aos seus usuários. Controlando e organizando o uso dos 
recursos do computador. Interface básica entre usuário e hardware do computador. 
 
2) Quais os objetivos de um SO? 
 
Os objetivos são a conveniência, eficiência e possibilidade de atualização. Além disso 
a abstração de recursos e a gerencia de recursos. O Sistema Operacional controla o 
hardware e seu uso entre os vários programas aplicativos para os diversos usuários. 
 
3) O que é Shell? Quais os tipos? 
 
SHELL – programa do computador que mostra os serviços de um sistema operacional 
a um usuário ou outros programas (camada mais externa do SO) 
 
São três tipos: 
 • Intepretadores de comandos -cmd 
• Interfaces gráficas de usuários -Windows 
• Interface touchscreen - celular 
 
4) Qual o propósito de chamadas de sistema? 
 
É a maneira programática com que um programa requisita um serviço do sistema 
operacional. São funções especiais que gerenciam as rotinas do sistema operacional 
que ocorrem no modo kernel. 
 
5) O que é multiprogramação? Cite duas razões para se ter multiprogramação? 
 
Desenvolvimento de técnicas de gerenciamento de recursos no SO 
Evitar ociosidade do processador 
Dividir a memória em várias partes, com uma tarefa diferente para cada partição. 
Num sistema multiprogramado a CPU está sempre apta a compartilhar o seu tempo 
entre os vários programas e os diferentes dispositivos periféricos que necessitam da 
sua atenção. 
 
6) Cite alguns tipos de chamadas de sistema, com exemplos de serviços. 
 
Controle e Gestão de processos – Criar e finalizar processos, carregar e executar. 
Gerenciamento de arquivos – Criar e excluir arquivos, abrir e fechar, ler e escrever. 
Gestão de memória – Alocar/liberar/modificar áreas da memória. 
 
7) Quais são os modos de operação do SO? Quando ocorre a mudança entre esses modos? 
 
Existem 2 modos de operação, o modo usuário e o modo kernel. A alteração ocorre 
quando alguma aplicação no modo usuário realiza uma chamada de sistema e por meio 
de uma trap o S.O entra em modo kernel para realizar o processo. 
Usuário: Acesso limitado ao processador e memória. somente um subconjunto das 
instruções do CPU e registradores estão disponíveis. instruções como RESET e IN/OUT 
são proibidas 
Kernel: Acesso irrestrito ao hardware. todas funcionalidades do CPU estão 
disponíveis: todos os recursos internos (registradores e portas de E/S) e áreas de 
memória podem ser acessados. 
8) Qual a diferença entre uma interrupção e uma instrução trap? 
 
Uma interrupção acontece por mais motivos que uma instrução trap. Podendo ser pela 
execução de um programa, como uma divisão por 0. Falha de Hardware, como 
oscilação na energia. E/S gerado por um controlador para sinalizar finalização de uma 
operação ou para sinalizar condições de erros. Enquanto a instrução trap é uma 
instrução que causa uma interrupção de forma planejada, mudando o modo do 
processador e desviando o processamento para uma rotina específica do SO 
 
9) Quais as vantagens e desvantagens da abordagem em camadas no design da estrutura 
do SO? 
 
A abordagem por camadas divide o SO em vários níveis, onde a camada inferior é o 
hardware e a mais superior é a interface do usuário. Isso traz algumas vantagens na 
simplicidade da construção e debugging, entretanto definir as funcionalidades de cada 
camada é difícil e pouco eficiente. 
 
10) Qual a principal vantagem da abordagem microkernel no design da estrutura de um 
SO? Como os programas de usuário e serviços do sistema interagem em uma 
arquitetura microkernel? Qual a desvantagem dessa abordagem? 
 
A principal vantagem é facilitar a extensão do SO (todos os novos serviços são 
adicionados no espaço do usuário e portanto, não requer modificação do kernel), além 
disso a segurança e confiabilidade (serviços executados como processos de usuário e 
não do kernel; se um serviço falha o resto do SO permanece intocado). 
 
Principal função do microkernel: comunicar entre os programas e os vários serviços 
que também estão rodando no nível de usuário Resultado: Kernel menor 
 
Interagem separando o sistema operacional em pequenos e bem definidos módulos 
em que apenas um (o microkernel) roda em modo kernel e os outros módulos rodam 
no modo usuário. Retirar do núcleo todo o código de alto nível (abstrações de recursos) 
deixando no núcleo somente o código de baixo nível necessário para interagir com o 
hardware e criar abstrações básicas. 
 
A desvantagem é o aumento do overhead de funções de sistema. 
 
11) Quais as principais vantagens de utilizar módulos de kernel carregáveis? 
 
O Kernel tem um conjunto de componentes principais e vincula serviços adicionais por 
meio de módulos. Quando a funcionalidade fornecida por um módulo de kernel não é 
mais necessária, ele pode ser desvinculado, liberando memória e outros recursos. 
 
12) Como se dá o processamento de uma interrupção de HW? Qual a relação entre 
interrupção e multiprogramação? 
 
Mecanismo pelo qual os módulos (E/S, memória) podem interromper sequenciamento 
normal do processador para sinalizar a ocorrência de um evento. 
 
Sem interrupções – “polling”: Verificações periódicas dos dispositivos periféricos 
Com interrupções - O CPU não precisa esperar a conclusão de cada operação solicitada 
a um dispositivo 
 
A interrupção é o mecanismo que torna possível a implementação da concorrência 
(possibilidade do processador executar várias tarefas ao mesmo tempo) nos 
computadores, sendo o fundamento básico dos sistemas multiprogramados. 
 
13) Qual a diferença entre processos CPU-bound e I/O-bound? Quais são os problemas que 
podem ocorrer caso o sistema tenha muitos processos CPU-bound ou muitos processos 
I/O-bound? 
 
CPU - Maior parte do tempo em estado de execução. 
I/O-bound (E/S) - Maior parte do tempo em estado de bloqueado 
 
Se for muitos processos CPU, o processador irá passar muito tempo processando 
informações, sem espaço de tempo para a entrada e saída. Ou ao contrário, pode ter 
muito tempo dedicado a E/S e o processador fica ocioso. 
 
14) Explique por que a tarefa do escalonador de processos é importante para o desempenho 
da CPU. 
 
Num sistema multiprogramado, o CPU alterna entre processos de forma muito rápida 
(milissegundos). Dessa forma, o tempo destinado e a fila que os processos recebem 
devem ser as que melhores ficam organizadas para o melhor funcionamento do sistema, 
para a não ocorrência de deadlock, starvation e também ociosidade. Ele determina o 
fluxo de execução (trecho de código) que é executado pela CPU. 
 
15) Diferencie “Condição de Corrida” de “Exclusão Mútua”. 
 
Corrida: Ocorre quando múltiplos processos ou threads escrevem e lêem dados de 
forma que o resultado final depende da ordem de execução das instruções dos 
processos. 
a = 1 e b = 2 
p1 = a = a + b 
p2 = b = b + a 
 
Exclusão: Requerimento de que quando um processo está em uma região crítica (que 
faz o acesso a um recurso compartilhado), nenhum outro processo pode estar na região 
crítica solicitando acesso ao recurso ao mesmo tempo. 
 
16) Porque uma troca de contexto entre threads é menos “custosa” do que uma troca de 
contexto entre processos. 
 
Threads paralelas podem compartilhar o espaço de endereçamento e os dados entre 
elas. Além disso, os threads são menores que os processos e o espaço para elas já está 
alocado. 
 
 
17) O que diferencia uma thread de um processo? 
 
Processo – pai 
Thread – filha 
 
Um thread é a entidade dentro de um processo que pode ser agendado para execução. 
Todos os threads de um processo compartilham seu espaço de endereço virtual e 
recursos do sistema. 
 
Thread é uma abstração que permite que uma aplicação execute mais de um trecho de 
código simultaneamente. 
Processos permitem ao SO executar maisde uma aplicação ao mesmo tempo. 
 
Processos estão associados somente à propriedade de recursos. 
Threads estão associadas às atividades de execução (ou seja, threads constituem as 
unidades de escalonamento em sistemas multithreading). 
 
18) Quais as vantagens de utilizar multithreading ao invés de múltiplos processos? 
 
Threads paralelas podem compartilhar o espaço de endereçamento e os dados entre 
elas, comunicação e troca de contexto mais rápida. Importante para algumas aplicações 
(processos são separados). Threads do tipo CPU-bound e I/O bound permitem realizar 
as tarefas em paralelo tendo um ganho em performance (aplicação mais rápida). 
 
19) Precisamos garantir que dois ou mais processos não entrem juntos na região crítica. 
Explique o motivo e defina o conceito de “região crítica”. 
 
As vezes um processo tem de acessar uma memória compartilhada ou arquivos, ou 
realizar outras tarefas críticas que podem levar a corridas. Essa parte do programa onde 
a memória compartilhada é acessada é chamada de região crítica ou seção crítica. 
Corridas são ruins e devem ser evitadas. Xô corrida 
 
Região Crítica é a área de um código ou recurso compartilhado que depende 
expressivamente que o acesso à mesma seja realizado de maneira sequencial. 
 
20) Qual a relação entre programa, processo e thread? 
 
geral um programa gera um executável que pode ser chamado diretamente ou através 
de outros executáveis. Programa é uma sequência de instruções codificadas (escritas) a 
serem executadas pelo computador. Thread é uma sequência de instruções sendo 
executadas. Propositalmente não falarei de processo aqui. 
 
 
Um programa gera processos, esses processos por sua vez precisam ser divididos para 
que exista o paralelismo, o que nos leva as threads. 
 
21) O que é PCB (Process Control Block ou Bloco de Controle)? Qual o seu conteúdo típico? 
 
É uma estrutura de dados no núcleo do sistema operacional que serve para armazenar 
a informação necessária para tratar um determinado processo. Como o PCB contém 
informações críticas do processo ele deve ficar armazenado em uma área da memória 
protegida do acesso de usuários. Em alguns sistemas operacionais o PCB é alocado no 
início da pilha do núcleo do processo, já que é uma localização convenientemente 
protegida. 
 
Geralmente as informações contidas em um PCB incluem: 
 
Identificador do processo (PID) 
Registradores da CPU (incluindo o contador de programa) 
O espaço de endereçamento do processo 
A prioridade do processo 
O status do processo 
Informações sobre o escalonamento de processo 
Informações de entrada/saída (dispositivos de hardware ligados ao processo, arquivos 
abertos, etc.) 
O ponteiro para o próximo PCB 
 
22) O que significa um processo sofrer preempção? 
 
Retirar um recurso “à força” de um processo (CPU) 
 
23) O custo (e conseqüentemente o tempo) de criação de uma thread (seja ela uma thread 
de usuário ou uma thread de kernel) é menor que o custo de criação de um processo. 
Por quê? 
 
Porque os threads são mais fáceis de gerenciar do que processos, pois elas não possuem 
recursos próprios: o processo é que tem. 
 
24) Um processo é caracterizado por ser um “programa em execução”. Durante sua 
existência no sistema, um processo pode assumir basicamente cinco estados. Cite quais 
são esses estados e descreve os eventos que fazem com que um processo mude de um 
estado para o outro. 
 
Execução – Está em execução 
Pronto – esperando pra executar 
Bloqueado – espera de algum evento externo para continuar 
Novo – recém criado e não carregado pelo SO 
Saída - processo que foi liberado da lista dos processos em execução pelo SO ou porque 
foi parado ou abortado. 
 Vazio -> Novo = um novo processo é criado para executar um programa 
Novo -> Pronto = quando o SO está preparado para executar mais um processo 
adicional; quando o processo é carregado para a memória (alguns sistemas tem 
limitação do número de processos em execução) 
Pronto -> Execução = o escalonador do SO seleciona o processo para executar. 
Execução -> Exit = o processo atual em execução é finalizado pelo SO se o processo indica 
que finalizou ou se é abortado por algum erro. 
Execução -> Pronto = o processo atual em execução atingiu o tempo máximo de 
execução e o escalonador escolhe outro processo. 
Execução -> Bloqueado = o processo está esperando uma entrada de dados que foi 
solicitada 
Bloqueado -> Pronto = quando o evento (ou recurso) que estava sendo esperado 
acontece e pode voltar para ser executado. 
25) Uma boa solução de Exclusão Mútua deve satisfazer quais condições? Explique 
resumidamente. 
 
1. Dois processos jamais podem estar simultaneamente dentro de suas regiões críticas. 
2. Nenhuma suposição pode ser feita a respeito de velocidades ou do número de CPUs. 
3. Nenhum processo executando fora de sua região crítica pode bloquear qualquer 
processo. 
4. Nenhum processo deve ser obrigado a esperar eternamente para entrar em sua 
região crítica 
 
26) Por que desabilitar interrupções pode não ser uma boa ideia para garantir exclusão 
mútua? Justifique sua resposta. 
 
Essa abordagem é pouco atraente, pois não é prudente dar aos processos de usuário o 
poder de desligar interrupções. E se um deles desligasse uma interrupção e nunca mais 
a ligasse de volta? Isso poderia ser o fim do sistema. Além disso, se o sistema é um 
multiprocessador (com duas ou mais CPUs), desabilitar interrupções afeta somente a 
CPU que executou a instrução disable. As outras continuarão executando e podem 
acessar a memória compartilhada. 
É conveniente para o próprio núcleo desabilitar interrupções por algumas instruções 
enquanto está atualizando variáveis ou especialmente listas. Se uma interrupção 
acontece enquanto a lista de processos prontos está, por exemplo, no estado 
inconsistente, condições de corrida podem ocorrer. A conclusão é: desabilitar 
interrupções é muitas vezes uma técnica útil dentro do próprio sistema operacional, 
mas não é apropriada como um mecanismo de exclusão mútua geral para processos de 
usuário. 
 
27) Por que é importante sincronizar processos em um sistema? 
 
Sincronizar processos envolve o uso de técnicas que fazem o controle de acesso aos 
dados compartilhados, de forma a evitar condições de corrida. 
 
28) Explique o conceito de “Deadlock” e “Starvation”. 
 
DeadLock: Deadlock, no contexto de sistemas operacionais, refere-se a uma situação 
em que ocorre um impasse, e dois ou mais processos ficam impedidos de continuar suas 
execuções - ou seja, ficam bloqueados, esperando uns pelos outros. 
Para muitas aplicações, um processo precisa de acesso exclusivo a não somente um 
recurso, mas a vários. Suponha, por exemplo, que dois processos queiram cada um 
gravar um documento escaneado em um disco Blu- -ray. O processo A solicita permissão 
para usar o scanner e ela lhe é concedida. O processo B é programado diferentemente 
e solicita o gravador Blu-ray primeiro e ele também lhe é concedido. Agora A pede pelo 
gravador Blu-ray, mas a solicitação é suspensa até que B o libere. Infelizmente, em vez 
de liberar o gravador Blu-ray, B pede pelo scanner. A essa altura ambos os processos 
estão bloqueados e assim permanecerão para sempre. Essa situação é chamada de 
impasse (deadlock). 
 
Starvation: Em um sistema dinâmico, solicitações para recursos acontecem o tempo 
todo. Alguma política é necessária para tomar uma decisão sobre quem recebe qual 
recurso e quando. Essa política, embora aparentemente razoável, pode levar a alguns 
processos nunca serem servidos, embora não estejam em situação de impasse. 
Starvation é quando um processo não consegue ser executado, de forma alguma, pois 
sempre existem processos de prioridade maior para serem executados, de forma que o 
processo "faminto" nunca consiga tempo de processamento. 
 
29) Explique o conceito de “busy waiting” ou espera ocupada. Qual o seu problema?Enquanto um processo está esperando para entrar na seção crítica, consome tempo de 
CPU. Ociosidade de CPU. As tarefas que aguardam o acesso a uma seção crítica ficam 
testando continuamente uma condição, consumindo tempo de processador 
sem necessidade 
 
30) Quais são os principais problemas relacionados ao acesso concorrente de recursos 
pelos processos (ou threads)? 
Gera condições de corrida, processos de exclusão múltipla. 
Gera injustiça: não há garantia de ordem no acesso à seção crítica; dependendo 
da duração de quantum e da política de escalonamento, uma tarefa pode 
entrar e sair da seção crítica várias vezes, antes que outras tarefas consigam 
acessá-la. 
Gera dependência: tarefas desejando acessar a seção crítica podem ser 
impedidas de fazê-lo por tarefas que não têm interesse na seção crítica 
naquele momento.

Outros materiais