SO ListaExercicios1 Isabela Lucas

Fazer download em docx, pdf ou txt
Fazer download em docx, pdf ou txt
Você está na página 1de 4

Sistemas Operacionais

Prof. Alencar Melo Jr. / 1º Semestre 2021

Tecnologia em Análise e Desenvolvimento de Sistemas

IFSP – Câmpus Campinas


1º Lista de Exercícios

Instruções (atenção!):

o Responda às questões na ordem proposta.


o Para responder, utilize principalmente o material das aulas e os livros recomendados (Arquitetura de
Sistemas Operacionais/Machado & Maia e Sistemas Operacionais Modernos/Tanenbaum).
o Esta lista será uma das atividades consideradas para compor a nota do primeiro bimestre.
o Trabalho pode ser feito em grupo de 2 até componentes.
o Um dos critérios de avaliação será a análise e a reflexão dos autores ao produzir as respostas. Leia, entenda
e escreva com suas palavras, faça paráfrases!
o Após responder, passe o corretor ortográfico e gere uma versão PDF de sua lista.
o Passe seu documento pelo software de prevenção de plágio CopySpider, que poderá ser baixado
gratuitamente pelo link www.copyspider.com.br. Configure o CopySpider para executar no modo detalhado.
Salve o relatório emitido pelo CopySpider (arquivo .html).
o Compacte a versão PDF da lista e o relatório do CopySpider em um único arquivo, com o nome a seguir,
fazendo as devidas substituições de NOME1 e NOME2:
SO_ListaExercicios1_NOME1_NOME2.zip
o Data de entrega: até 13/05/2021.
o Capricho e seguir todas as instruções estabelecidas fazem parte da nota!

Nome Prontuário

Isabela Yuaso Shimizu. CP3009203

Lucas Eduardo Paduam De Souza. CP3009432

Capítulo 1:
1) Quais as vantagens dos sistemas multiprogramáveis? Quais são os tipos de sistemas multiprogramáveis?
Resposta: A principal vantagem dos sistemas multiprogramáveis é o compartilhamento de recursos entre as
aplicações, como por exemplo a divisão da CPU em várias "CPUs" virtuais conforme a necessidade. Os tipos
de sistemas multiprogramáveis são: Batch, Tempo compartilhado e Tempo real.

2) O que caracteriza o processamento batch? Que tipo de aplicações são melhor processadas nesse tipo de
ambiente?
Resposta: O processamento Batch pode ser entendido como um processamento em lote. As aplicações mais
viáveis para processamento Batch são aquelas que não dependem de uma interação do usuário como por
exemplo um processamento de cálculos ou um backup.

3) Como funcionam os sistemas de tempo compartilhado? Quais as vantagens em utilizá-los?


Resposta: Nos sistemas de tempo compartilhado vários terminais são acoplados em uma única CPU
dividindo o tempo de processamento em partes iguais para cada usuário. Este “pedaço” de tempo deve ser
rápido de modo a atender todos os terminais dando a impressão de que cada usuário possui uma máquina
específica. A vantagem desse sistema é proporcionar um ambiente computacional on-line com interação a
um baixo custo.

4) Qual a grande diferença entre sistemas multiprocessadores fortemente acoplados e fracamente acoplados?
Resposta: Em sistemas fortemente acoplados todos os processadores têm acesso a uma memória principal
comum enquanto os fracamente acoplados possuem uma memória para cada processador.

Capítulo 2:
5) Como a técnica do pipelining melhora o desempenho dos sistemas computacionais?
Resposta: A técnica do pipelining é similar a uma linha de montagem. Isso permite que o processador
execute mais de uma instrução de forma paralela, em diferentes estágios. Ou seja, cada um dos estágios é
responsável por uma atividade, fazendo com que o tempo total para executar as instruções seja menor.

6) Estabeleça uma comparação entre compiladores e interpretadores.


Resposta: Ambos são tradutores. Porém, o compilador traduz (compila) um programa fonte, que é uma
linguagem de alto padrão, para um módulo objeto que quando compilado gera um arquivo executável e
interpretado pelo computador. Já o interpretador, não gera um módulo objeto pois o programa traduz
apenas o que está sendo utilizado no momento, e sendo assim, cada vez que é executado o programa é
necessário uma nova tradução e interpretação.

7) Quais as funções do linker?


Resposta: Quando há diversos módulos objetos gerados por um compilador e se quer gerar um programa
executável único, essa ação pode ser feita através do programa linker. Para essa ação ser completada com
sucesso, o linker precisa resolver todos os elementos que existem entre os módulos antes de gerar um único
arquivo executável.

8) Quais as funções do loader? Explique as diferenças entre loader absoluto e relocável.


Resposta: O loader tem a função de carregar o programa executável (gerado pelo linker), na memória
principal para assim seja executado na RAM. O loader absoluto está amarrado a determinados endereços da
RAM, pois só pode ser carregado em uma posição específica da memória. E o loader relocável, pode ser
carregado em diversos locais da RAM, tornando- se mais flexível do que o absoluto.

Capítulo 3:
9) Dê exemplos de eventos que geram exceções.
Resposta: Exceções são geradas por uma determinada execução dentro de um processo, os principais
exemplos são as divisões por zero, overflow.

10) Dê exemplos de eventos que geram interrupções.


Resposta: Interrupções geradas pelos dispositivos de I/O como por exemplo, após o dispositivo realizar a
leitura de dados de um disco e armazenar os dados em seu buffer interno a mesma realiza uma interrupção
na CPU para informar a necessidade da CPU copiar os dados na memória RAM, em casos em que o
dispositivo de I/O possui um DMA a interrupção é causada apenas para avisar que os dados estão
disponíveis na memória RAM. Outro exemplo é a interrupção de processos realizada através de comandos
de software.

11) Explique o mecanismo de funcionamento das interrupções, detalhando todas as etapas: inicie com a
ocorrência do evento externo e vá até concluir a execução da rotina de atendimento da interrupção e
retornar o fluxo de execução.
Resposta: Após o dispositivo de I/O realizar a leitura de dados de um disco e armazenar os dados em seu
buffer interno a mesma realiza uma interrupção na CPU para informar a necessidade da CPU copiar os dados
na memória RAM, neste momento a CPU para o processo que está sendo executado e inicia a rotina de
tratamento deste caso de interrupção que consiste em buscar a informação no buffer do dispositivo de I/O,
ler e copiar os dados na memória RAM. Terminada a execução da rotina a CPU retorna para o fluxo de
execução anterior do ponto onde a interrupção ocorreu isto porque estes dados foram armazenados nos
registradores e após a execução da rotina de tratamentos os mesmos são recuperados.

12) Qual a vantagem da Entrada/Saída controlada por interrupção em comparação com a técnica de polling?
Resposta: Na técnica de polling é necessário definir um tempo onde a CPU para o que está fazendo e verifica
se algum processo de entrada e saída já está finalizado para que a mesma possa executar a próxima ação
necessária, na técnica polling é possível um pouco de paralelismo porém é um método onde se encontra
problemas como a parada da CPU para verificação de um processo que ainda não está finalizado ou a
“demora” da CPU para descobrir que um processo já está finalizado e aguardando uma ação, o que não
ocorre com a interrupção pois assim que um processo de I/O é finalizado a CPU é interrompida para
execução da rotina de tratamento evitando verificações desnecessárias ou a demora em descobrir um
processo já finalizado.

13) Explique como a técnica de bufferização consegue aumentar o desempenho e a concorrência em um sistema
computacional.
Resposta: Como a bufferização compensa a falta de compatibilidade na velocidade dos dispositivos, um
dispositivo mais rápido, como a CPU, não precisa reduzir sua velocidade para se adequar a um dispositivo
mais lento ganhando em desempenho pois a CPU continua operando em sua capacidade máxima, desta
forma aumenta também a concorrência pois como os dados já estão armazenados no buffer o dispositivo
fica livre para executar novos processos.

14) A técnica de bufferização pode provocar a perda de dados em determinadas situações? Explique.
Resposta: Sim, como o buffer faz parte da memória RAM, no caso de perda de energia com os dados ainda
no buffer os dados serão perdidos pois a memória RAM é uma memória volátil, ou seja, não guarda os dados
permanentemente.

Capítulo 4:
15) O que é o núcleo do SO e quais são suas principais funções?
Resposta: O núcleo do sistema operacional é sua parte principal. Para o usuário conseguir acessá-lo é feito
de forma indireta, através de aplicativos ou utilitários, uma vez que ele de forma majoritária está localizado
na memória RAM após o boot (processo de inicialização do sistema) . As principais funções podem ser dadas
por: Tratar interrupções e execuções ( mecanismos de sinalização e sincronização de eventos). Gerenciar a
memória, o sistema de arquivos, e os dispositivos de entrada e saída. Pela criação e eliminação,
sincronização e comunicação, e escalonamento e controle dos processos e threads.

16) Detalhe as etapas envolvidas numa chamada ao sistema (system call), explicando como funciona a mudança
de modos de acesso.
Resposta: Dentro de um programa do usuário, há uma chamada ao sistema (system call), que quando
iniciada vai salvar o contexto dos registradores. Após isso alterar o modo do processador de modo usuário
para modo kernel, para que sejam executadas instruções privilegiadas de modo indireto. Quando esse passo
for concluído, é rodado a rotina do sistema, ou seja, o código da system call de forma privilegiada. Quando
finalizado esse processo, é alterado o modo do processador para usuário novamente e há a restauração do
contexto dos registradores.

17) Comparando projetos de SOs, compare as arquiteturas monolítica e de camadas. Quais as vantagens e
desvantagens de cada arquitetura?
Resposta: A vantagem da arquitetura monolítica na teoria seria o bom desempenho, porém pela alta
complexidade demanda o trabalho de muitas pessoas o que torna isso mais uma desvantagem que uma
vantagem em si. E a vantagem da arquitetura de camadas é a facilidade para o desenvolvimento,
manutenção e depuração. A desvantagem da arquitetura monolítica pode ser dada pelo difícil
desenvolvimento e manutenção. E a desvantagem da arquitetura de camadas é o seu desempenho, uma vez
que para cada camada o modo de acesso precisa ser alterado.

18) Por que o Wine não é considerado um emulador?


Resposta: O próprio nome do wine diz que ele não é um emulador (Wine Is Not an Emulator). Pois é a
implementação da API Windows (conjunto de system calls) para o ambiente Linux, ou seja, um processo de
mapeamento fazendo com que toda chamada de outro processo na API do Windows seja mapeada na API
Linux. Isso faz com que um aplicativo nativo do Windows seja rodado em um ambiente Linux, porém há uma
compatibilidade limitada.
BOM TRABALHO!!

Você também pode gostar