Você está na página 1de 11

LISTA DE EXERCÍCIOS

EXERCÍCIOS DOS CONTEÚDOS DE AULA

AULA 1
1. Como seria a utilização do computador sem um sistema operacional ? Quais são as duas principais funções ?

R.: O usuário teria de conhecer a estrutura do sistema e hardware profundamente e sua operação seria lenta e com
grandes chances de ocorrerem erros.

2. Quais as principais dificuldades que um programador teria no desenvolvimento de uma aplicação em um ambiente
sem o sistema operacional ?

R.:Ele teria que se preocupar não só com o desenvolvimento da aplicação, mas tudo o que envolva ela. Teria que incluir
todos os componentes de hardware e E/S na programação; ter um conhecimento profundo em relação ao funcionamento
do computador e cada tarefa que a aplicação fosse fazer, teria que ser detalhada num nível muito profundo para que o
computador funcionasse.

3. Explique o conceito de máquina virtual. Qual a grande vantagem de utilizar esse conceito?

R.:Com a máquina virtual, pode se criar um segundo ambiente utilizando um outro sistema operacional além do qual
você já possui em seu computador. A vantagem é poder experimentar outros sistemas operacionais sem a necessidade de
novos computadores, sem alteração no sistema operacional já instalado.

4. Defina o conceito de máquina em camadas?

R.:O computador pode ser visualizado como uma máquina de camadas, possuindo tantos níveis quanto forem necessários
para adequar o usuário às suas diversas aplicações. Quando o usuário está trabalhando em um desses níveis, não
necessita saber da existência das outras camadas. Com isso a interação entre usuário e computador apresenta-se mais
simples, confiável e eficiente.

5. Quais os tipos de sistema operacionais existentes?

R.:Sistemas monoprogramáveis/monotarefa, Sistemas Multiprogramáveis/multitarefa e Sistemas com Múltiplos


Processadores.

6. Por que dizemos que existe uma subutilização de recursos em sistema monoprogramáveis?

Por executarmos apenas um programa de cada vez, assim fazendo com que outros recursos do computador fiquem sem
ser utilizados ou aproveitados para outros programas.

7. Qual a grande diferença entre sistemas monoprogramaveis e sistemas multiprogramaveis ?

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 os mesmos recursos.

8. Quais as vantagens dos sistemas multiprogramaveis?

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 monousuario pode ser um sistemamultiprogramavel? De um exemplo:


Sim, um usuário pode mexer com o sistema executando diversas aplicações concorrentemente. Por exemplo o MS-DOS.

10. Quais são os tipos de sistemas multiprogramaveis ?

Sistemas batch, sistemas de tempo compartilhado e sistemas de tempo real.

11. O que caracteriza o processamento em batch ? Quais os tipos de aplicações podem ser processadas neste tipo de
ambiente?

Ele roda sem interface com o usuário. Todas as entradas e saídas de dados da aplicação são implementadas por algum
tipo de memória secundária, geralmente arquivos em disco. 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. Como funcionam os sistemas de tempo compartilhado? Quais as vantagens em utiliza-los?

Os sistemas de tempo compartilhado (time-sharing) permitem que diversos programas sejam executados a partir da
divisão do tempo do processador em pequenos intervalos, denominados fatia de tempo (time-slice). A vantagem na sua
utilização é possibilitar para cada usuário um ambiente de trabalho próprio, dando a impressão de que todo o sistema está
dedicado, exclusivamente, a ele.

13. Qual a grande diferença entre sistemas de tempo compartilhado e tempo real ? Quais aplicações são indicadas para
tempo real ?

Os sistemas de tempo compartilhado permitem que diversos programas sejam executados a partir da divisão do tempo do
processador em pequenos intervalos. Já um sistema de tempo real, é um sistema que executa as informações recebidas
rapidamente evitando assim um possível problema gerado pelo atraso da execução de uma ação. Como exemplo de
aplicação em tempo real, posso citar o sistema de injeção do carro.

14. O que são sistemas com múltiplos processadores e quais as vantagens em utilizá-los?

São sistemas que trabalham com um ou mais unidades centrais de processamento (UCP) trabalhando juntos. A vantagem
é que ao possuir um sistema com múltiplos processadores, eles dividem a execução de programas entre si, tornando tudo
mais rápido e estável.

15. Qual a grande diferença entre sistemas fortemente acoplados e fracamente acoplados?

Os sistemas fortemente acoplados se utilizam de vários processadores, que são gerenciados por um único sistema
operacional, que compartilha memória e dispositivos de entrada e saída. Os sistemas fracamente acoplados são
caracterizados pelo uso de dois ou mais sistemas operacionais, conectados através de linhas de comunicação.

16. O que é um sistema SMP ? Qual a diferença entre um sistema assimétrico?

Em SMP, os processadores compartilham a mesma memória, podendo ter cachês separados. No assimétrico, somente um
processador pode executar o serviço do sistema operacional, como realizar operações de entrada e saída.

17. O que e um sistema fracamente acoplado ? Qual a Diferença entre sistemas operacionais de redes e sistemas
operacionais distribuídos?

Os sistemas fracamente acoplados são caracterizados pelo uso de dois ou mais sistemas operacionais, conectados através
de linhas de comunicação. Os sistemas operacionais de rede permitem o compartilhamento de recursos como a
impressora. Já nos sistemas distribuídos, ele esconde esses hosts como se fossem únicos dele, simulando um sistema
fortemente acoplado.

18. Quais os benefícios com um sistema com múltiplos Processadores em um computador pessoal?

A vantagem é que ao possuir um sistema com múltiplos processadores, eles dividem a execução de programas entre si,
tornando o sistema mais rápido e estável.

19. Qual seria o tipo de sistema operacional recomendável Para uso de servidor de aplicações em um ambiente
corporativo?

O Linux é o mais recomendado.


20. Qual seria o tipo de sistema operacional recomendável para executar uma aplicação que manipula grande volume

de dados e necessita de um baixo tempo de processamento?

Solaris, baseado no Unix.

AULA 2

1. Quais são as unidades funcionais de um Sistema Computacional?

Processador (UCP), dispositivos de E/S e memória principal.

2. Quais os componentes de um processador e quais são suas funções ?

Unidade Lógica e Aritmética (ULA) - Executa as operações básicas (soma, subtração, multiplicação, divisão e
comparações lógicas). Além de executar funções aritméticas, deve ser capaz de determinar se uma quantidade é menor
ou maior que outra. Podendo executar funções lógicas com letras e com números.

Unidade de Controle (UC) - Responsável por gerar todos os sinais que controlam as operações no exterior da CPU.

Registradores - Guardam dados para o uso imediato e são compostos por memórias ultra rápidas.

3. Como a memória de um computador e organizada?

A memória é composta por unidades de acesso chamadas células, sendo cada célula composta por um determinado
número de bits. Atualmente, a grande maioria dos computadores utiliza o Byte (8 bits) como tamanho de célula .

4. Descreva os ciclos de leitura e gravação da memória principal:

Operação de Leitura
A UCP armazena no MAR o endereço da célula da célula a ser lida;

A UCP gera um sinal de controle para a que memória principal indicando que uma operação de leitura deve ser realizada;

O conteúdo da(s) célula(s), identificada(s) pelo endereço contido no MAR, é transferido para o MBR;
O conteúdo do MBR é transferido para um registrador da UCP.
Operação de Gravação
A UCP armazena no MAR o endereço que será gravada;
A UCP armazena no MBR a informação, que deverá ser gravada;

A UCP gera um sinal de controle para a memória principal, indicando que uma operação de gravação deve ser realizada;
A informação contida no MBR é transferida para a célula de memória endereçada pelo MAR.

5. Qual o número máximo de celulas endereçadas em arquiteturas com MAR de 16, 32, 64 bits ?

O número de células endereçadas na memória principal é limitado pelo tamanho do MAR. No caso de o registrador
possuir n bits, a memória poderá no máximo endereçar 2n células, isto é, do endereço 0 ao endereço (2n-1). exemplo:
16bits = 32 células de 0 a 31.

6. O que são memórias voláteis e não voláteis ?

Memórias voláteis são aquelas que precisam de energia para manter os dados, como a memória principal(RAM). E as
não voláteis são aquelas que mesmo sem energia, conseguem manter os dados salvos, como é o caso do HD.

7. Conceitue memória cache e apresente as principais vantagens do seu uso:

A memória cache é uma memória volátil de alta velocidade, porém com pequena capacidade de armazenamento. O
tempo de acesso a um dado nela contido é muito melhor do que se este dado estivesse na memória principal. O propósito
do uso da memória cache é minimizar a disparidade existente entre a velocidade com que o processador executa
instruções e a velocidade com que dados são acessados na memória principal.

8. Qual a importância do princípio da localidade na eficiência da memória cache?

Um gerenciamento adequado da memória local ou da memória cache associado a um código que faça uso mais intensivo
de dados localizados, e portanto, passíveis de serem mantidos na memória local, favorece a melhoria de desempenho na
medida em que provoca uma reutilização maior de dados que estão nas memórias rápidas. A otimização da localidade de
dados é baseada em transformação de programa direcionada à melhoria da localidade. Resumindo: Uma memória rápida
em conjunto com uma boa informação de localização de dados é muito mais eficiente do que uma que não tenha um bom
sistema de localização.

9. Quais os benefícios de uma arquitetura de memória cache com multiplos níveis ?

Para o cache quanto maior a capacidade, maior a probabilidade de encontrar nele uma cópia do dado que se procura. Por
outro lado, quanto maior o cache, maior a latência, pois mais tempo se leva para encontrar alguma coisa que nele esteja
armazenada. Asolução foi hierarquizar o cache. Criou-se então dois níveis de cache, ambos no interior da UCP, o
primeiro um cache pequeno, rapidíssimo, latência curta devido ao menor tamanho, bem junto ao âmago da UCP e o
segundo, entre o primeiro e o mundo exterior, um cache bem maior, portanto aumentando a probabilidade de encontrar
nele uma cópia do dado desejado, porém de maior latência.

10. Qual a diferença entre memória principal e memória secundária ?

A memória principal é a memória RAM no qual todos os processos passam por ela, ela faz a troca de informações com a
CPU e quando desligamos nosso computador perdemos tudo.

Memória secundaria (HD,CD-ROM,DISQUETE) que armazena dados, e quando desligamos nosso computador os dados
ficam guardados prontos para o acesso novamente.

11. Diferencie as funções básicas dos dispositivos de entrada e saída?

Os dispositivos de entrada são os que inserem informações em um computador a partir de uma fonte externa. Exemplo:
teclado, mouse, microfone, scanner e telas sensíveis ao toque.

Já os dispositivos de saída são os aparelhos usados por um computador para comunicar informações. Estas em formato
utilizável ao usuário. Exemplo: monitores de vídeo, alto-falantes, caixas de som, sensores, óculos de realidade
aumentada e impressoras.

12. Caracterize os barramentos processador-memória, E/S e backplane ?

Os barramentos Processador - Memória são de curta extensão e alta velocidade para que seja otimizada a transferência de
informação entre processadores e memórias. Os barramentos de E/S possuem maior extensão, são mais lentos e
permitem a conexão de diferentes dispositivos.Enquanto o barramento de backplane tem a função de integrar os dois
barramentos.

13. Como a técnica de Pipelining melhora o desempenho dos sistemas computacionais?

Deixando que o processador execute múltiplas instruções paralelamente em níveis diferentes.

14. Compare as arquiteturas de processadores RISC e CISC:

RISC – Reduced Instruction Set Computer: Possui poucas instruções de máquina que são executadas diretamente pelo
hardware

CISC – Complex Instruction Set Computer : Possui instruções mais Complex Instruction Set Computer : Possui
instruções maisComplexas e são interpretadas por microprogramas. O número de registradores e pequeno e qualquer
programa dode referênciar sua memória principal.

15. Conceitue a técnica de benchmark e como é sua realização:

O Benchmark permite uma análise de desempenho comparativa entre sistemas computacionais. Neste método, um
conjunto de programas é executado em cada sistema avaliado, e o tempo de execução é comparado. A escolha dos
programas deve ser criteriosa para refletir os diferentes tipos de aplicação.
16. Porque o código objeto gerado pelo tradutor ainda não pode ser executado?

Pois ele fica esperando por algumas sub-rotinas externas, pois o tradutor não pode associar o programa principal às sub-
rotinas chamadas. Esta função é desempenhada através dolinker.

17. Porque a execução de programas interpretados é mais lenta do que programas compilados?

Como não existe a geração de um código executável, as instruções de um programa devemser traduzidas toda vez que
este for executado. Um exemplo é o java que passa pela VM antes de ser executada pois antes tem que ser interpretada e
compilada.

18. Quais as funções do linker?

Resolver todas as referencias simbólicas existentes entre os módulos de um programa e reservar memória para a sua
execução.

19. Qual a principal função do loader?

É o responsável por carregar na memória principal o programa que será executado em função do código gerado pelo
linker.

20. Quais as facilidades oferecidas pelo depurador?

O depurador oferece ao usuário recursos como acompanhar a execução de um programa instrução por instrução;
possibilitar a alteração e visualização do conteúdo de variáveis; implementar pontos de parada dentro do programa
(breakpoint), de forma que, durante a execução, o programa pare nesses pontos e especificar que, toda vez que o
conteúdo de uma variável for modificado, o programa envie uma mensagem (watchpoint).

AULA 3

1. O que é concorrência e como este conceito está presente nos 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á continuar sua

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 a implementação da miltiprogramaçã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, nestecaso, 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 mecanismode exceção:

Divisão de um numero por zero, ocorrência de overflow em uma operação aritmética, erro de endereçamento e outras.

6. Qual a vantagem da E/S controlada por interrupçãocomparada com a técnica de spooling?

A operação de E/S controlada por interrupção é mais eficiente que a controlada por programa(spoolings), já que elimina
a necessidade de o processador esperar pelo termino da operação além de permitir que várias operações de E/S sejam
executadas simultaneamente.

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

10. Em um sistema multiprogramável, seus usuários utilizam o mesmo editor de texto (200kb)compilador(300 KB),
software de correio eletrônico (200 Kb) euma aplicação corporativa (500 kb). Caso o sistemanão implemente reetrância,
qual o espaço de memóriaprincipal ocupado pelos programas quando 10 usuáriosestiverem utilizando todas as
aplicaçõessimultaneamente ? Qual o espaço liberado quando osistema implementa reetrância em todas as aplicações?

Sem reentrância, cada usuário teria sua cópia do código na memória totalizando 10x a soma de todos os programas em
execução(12.000 Kb). Caso a reentrância seja implementada, apenas uma cópia do código seria necessária na memória
principal (1.200 Kb). Assim, um total de 10.800 Kb seriam liberados da memória principal.

AULA 4
l. O que é o núcleo do sistema e quais são as suas principaisfunções?

Em relação ao assunto de Sistemas Operacionais (SO), o núcleo do sistema é o conjunto de rotinas que oferece serviços e
aplicações, alémdo próprio sistema operacional.

As principais funções do núcleo são: suporte a redes locais e distribuídas, contabilização do uso dosistema, auditoria e
segurança do sistema, 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 dosprocessos e threads, gerência de memória,
gerência do sistema de arquivos, etc.

2. 0 que são instruções privilegiadas e não privilegiadas? Qual arelação dessas instruções com os modos de acesso?
Instruções Privilegiadas - São instruções executadas pelo SO ou sob sua supervisão, elas podem causar problemas de
segurança e integridade ao sistema.

Instruções Não-Privilegiadas - Instruções que não oferecem risco ao sistema, podendo ser executadas pelo SO e pelos
aplicativos. O modo de acesso é o meio pelo qual essas instruções são executadas.Existem dois modos:

Modo usuário executa instruções não-privilegiadas, tendo um acesso menor ao conjunto de instruções;

Modo kernel pode executar todas as instruções.

3. Explique como funciona a mudança de modos de acesso e dêum exemplo de como um programa faz uso desse
mecanismo:

A mudança de modos de acesso ocorre no momento da carga do sistema (boot), o sistema operacional inicia em modo
kernel. Após estar carregado em memória, o sistema operacional permite que os programas de usuários sejam carregados
apenas em modo usuário. Se ocorrer qualquer tipo de interrupção de um programa que estiver em modo usuário, o modo
de acesso é alterado para o modo kernel “privilegiado”. Com isso a rotina de tratamento é executada em modo kernel. Ao
final de toda rotina de tratamento, há uma instrução específica que, antes de retornar para o programa do usuário, altera o
modo de acesso para modo usuário.

4. Como o kernel do sistema operacional pode ser protegido pelomecanismo de modos de acesso?

Através do modo de acesso de uma aplicação determinado por um conjunto de bits localizado no registrador de status do
processador ou PSW. Através desse registrador, o hardwareverifica se a instrução pode ou não ser executada pela
aplicação, possibilitando proteger o kernel do sistema operacional de um acesso indevido.

5. Porque as rotinas do sistema operacional possuem instruçõesprivilegiadas?

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 ohardware 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 simpela
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ó faz realmente se estiver
seguro.

6. 0 que é uma system call e qual sua importância para a segurançado sistema? Como as system calls são utilizadas por
umprograma?

system call é umachamada 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 verifica a sua permissão para execução do comando.dada a permissão executa e retorna o
resultado. O mecanismo de ativação e comunicação entre o programa e o sistema operacional é semelhante ao
mecanismo implementado quando um programa chama uma subrotina.

7. Quais das instruções a seguir devem ser executas apenas em modo kernel?Desabilitar todas as interrupções, consultar
a data e a hora do sistema,alterar a data e hora do sistema, alterar informações residentes nonúcleo do sistema, somar
duas variáveis declaradas dentro doprograma, realizar um desvio para uma instrução dentro do diretóriodo 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:

•Ms-dos
Md – cria uma pasta
Dir- lista diretórios
Cd – entra em um diretório
•Unix
Ls- listaconteúdos e diretórios
Rm- remove algum arquivo, passando o parâmetro -r é possível remover um diretório
Cat- concatena e imprime arquivos
>- aponta a saída de um programa para outro dispositivo ou arquivo
|- concatena um comando a outro
Touch- altera a data de modificação de um arquivo

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 asvantagens 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.

Em 1968 foi programado o primeiro sistema operacional em camadas implementando este conceito. E como vantagem,
este sistema consegue isolar as funções do sistema operacional e cria uma hierarquia dos modos de acesso. isso é
segurança.

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.

12. Como funciona o modelo cliente-servidor na arquiteturamicrokemel? Quais as vantagens e desvantagens dessa
arquitetura?

Funciona como um sistema de chamadas cliente-servidor. o cliente, que pode ser um usuário ou recurso do sistema, faz
uma chamada e o sistema verifica a possibilidade de execução ou não do comando.

Como vantagem, o sistema desabilita e recusa as chamadas comprometedoras e disponibiliza mais recursos para as que
possuem.

Como desvantagem, o sistema têm problemas com acesso a certas partes diretas do hardware, que seriam necessárias.

13. Porque a utilização da programação orientada a objetos é um caminho natural para o projeto de sistemas
operacionais?

Por que a vida é orientada a objetos. O hardware e o software também serão. Em outras palavras, todas as coisas podem
ser representadas através de objetos e suas propriedades, atributos, família, tipo, escala, recurso etc. Através deste tipo de
programação é possível simplificar os módulos programáveis e reutilizar os recursos existentes.

AULA 5
1. Defina o conceito de processo:

Um processo é um programa em execução. 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 no 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 do 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?

Contexto de hardware, contexto de software e espaço de endereçamento.

5. O que é contexto de hardware e como é a implementação da troca de contexto?

Armazena o conteúdo dos registradores gerais da UCP, além dos registradores de uso específico como program counter
(PC), stack pointer (SP) e registrador de status. 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.

6. Qual a função do contexto de software? Explique cada grupo de informação:

No contexto de software são especificados características e limites 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. O contexto de software é composto por três grupos de informações sobre o processo:

Identificação: Cada processo criado pelo sistema recebe uma identificação única PID (Process Identification);

Quotas: As cotas são limites de cada recurso só sistema que um processo pode alocar;

Privilégios: Os privilégios ou direitos 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 é espaço de endereçamento de processo?

É a área de memória pertencente ao processo onde as instruções e dados do programa são armazenados para execução.
Cada processo possui seu próprio espaço de endereçamento, que deve ser devidamente protegido do acesso dos demais
processos.

8. Como o sistema operacional implementa o conceito de processo? Qual a estrutura de dados indicada para locar
diversos processos na memória 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:

Estado de Execução: processo que está sendo processado pela UCP no momento.

Estado de Pronto: processo que aguarda para ser executado.

Estado de Espera: processo que aguarda por algum evento ou recurso para prosseguir processamento.

Estado de Criação: processo cujo PCB já foi criado, porém ainda não teve seu processamento iniciado.
Estado de Terminado: processo que não pode ter mais nenhum programa executado no seu contexto, porém o sistema
operacional mantém suas informações de controle presentes na memória.

10. De um exemplo que apresente todas as mudanças de um estado de um processo

juntamente com o evento associado a cada mudança:

Enquanto um processo é criado, seu estado é considerado "Não Submetido” ou “Novo"; Quando carregado na memória e
aguardando liberação da CPU, fica “Pronto”; em ação, muda para "Executando"; quando depende da ocorrência de
algum evento, vira "Esperando"; quando não mais necessário, o processo é "Terminado". Isso ocorre quando abrimos um
arquivo .doc, por exemplo: abre um “novo” processo (editor de texto) carrega as informações do texto “pronto”; CPU
processa o arquivo e entra em “espera” para liberar dispositivos de E/S; Tudo ok, programa é executado e podemos
utilizar. Ao terminar, fechamos o programa e o processo “termina”.

11. Diferencie processos multhtreads, subprocessos e processos independentes:

Processos independentes não têm vínculo com os processos criadores. A criação de um processo independente exige a
alocação de um PCB, possuindo contextos de hardware, contexto de software e espaço de endereçamento próprios.
Subprocessos são processos criados dentro de uma estrutura hierárquica. Caso um processo pai deixe de existir, os
subprocessos subordinados são automaticamente eliminados. Semelhante aos processos independentes, subprocessos
possuem seu próprio PCB. Além da dependência hierárquica entre processos e subprocessos, uma outra característica
neste tipo de implementação é que subprocessos podem compartilhar quotas com o processo pai. Neste caso, quando um
subprocesso é criado, o processo pai cede parte de suas quotas ao processo filho. Processos multithreads suportam
múltiplos threads, cada qual associado a uma parte do código da aplicação. Neste caso não é necessário haver diversos
processos para a implementação da concorrência. Threads compartilham o processador da mesma maneira que um
processo, ou seja, enquanto um thread espera por uma operação de E/S, outro thread pode ser executado.

12. Explique a Diferença de processos foreground e background?

Um processo foreground é aquele que permite a comunicação direta do usuário com o processo durante o seu
processamento. Neste caso, tanto o canal de entrada quanto o de saída estão associados a um terminal com teclado,
mouse e monitor, permitindo, assim, a interação com o usuário. Um processo background é aquele onde não existe a
comunicação com o usuário durante o seu processamento. Neste caso, os canais de E/S não estão associados a nenhum
dispositivo de E/S interativo, mas em geral a arquivos de E/S.

13. Qual a relação entre processo e arquitetura microkernel?

A arquitetura microkernel baseia-se na utilização de processos em modo usuário para executar diversas funções relativas
ao sistema operacional, como gerência de memória e escalonamento.

14. De exemplos de aplicações CPU-bound e IO-Bound?

CPU-bound: Esse tipo de processo realiza poucas operações de leitura e gravação e é encontrado em aplicações
cientificas e de muito cálculo. Por exemplo um processo que executa um programa de inversão de matriz é cpu-bound.
Após ler alguns poucos dados, ele precisa apenas de processador.

IO-Bound: Este tipo de processo é encontrado principalmente em aplicações comerciais, que se baseiam em leitura,
processamento e gravação.Os processos interativos também são bons exemplos de processos I/O-bound, pela forma de
comunicação entre o usuário e o sistema, normalmente lenta, devido à utilização de

terminais.

15. Justifique com um exemplo a frase: “o sinal está para o processo assim como as

interrupções e exceções estão para o sistema operacional”?

Quando ocorre uma divisão por zero, por exemplo, o sistema operacional é notificado do problema através de uma
exceção. Por sua vez, o sistema deve notificar ao processo que gerou o problema através de um sinal.

16. Explique como a eliminação de um processo utiliza o mecanismo de sinais:


Quando um processo é eliminado, o sistema ativa o sinal associado a este evento. O processo somente será excluído do
sistema quando for selecionado para execução. Neste caso, é possível que o processo demore algum período de até ser
eliminado de fato.