DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Propaganda
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
BACHARELADO EM INFORMÁTICA
SISTEMAS OPERACIONAIS I
20 SEM/05
Teste 1 – Unidade I
DURAÇÃO: 50 MINUTOS
Aluno: ________________________________________________ Escore: __________
1a Questão (40)
Assinale a resposta que considerar mais correta.
1. A diferença entre reentrância e recursividade:
A) Está na forma como ambas operam – reentrância serve diversos processos enquanto recursividade se limita a um único processo.
B) A diferença é apenas conceitual. Na prática, ambas possibilitam que, em tempo de execução, uma mesma rotina possa chamar-se repetidamente a si mesma.
C) Reentrância tem a ver com a possibilidade de se executar concorrentemente duas ou mais
instâncias de um mesmo processo enquanto recursividade tem a ver com a repetição de um
mesmo bloco de instruções.
D) Reentrância é a possibilidade de um mesmo trecho de código ser compartilhado por múltiplos usuários em um mesmo período de tempo. Recursividade é a capacidade de uma rotina
poder chamar-se repetidamente a si própria.
E) Reentrância está diretamente ligada a multiprogramação e representa a possibilidade de um
mesmo processo dar repetidas entradas na memória principal para ser executado. Recursividade é um conceito lógico, onde o programador cria ciclos recursivos no fluxo de controle
do seu programa.
2. A adoção de diferentes modos de execução em um ambiente computacional, por exemplo, modo
usuário e modo Kernel, tem por objetivo:
A) Não misturar os processos pertencentes ao Sistema Operacional com os processos submetidos pelos usuários.
B) Facilitar a identificação, o controle e o gerenciamento dos processos pertencentes aos usuários.
C) Garantir o acesso correto e organizado aos diferentes recursos disponíveis, fazendo com que
os mesmos só possam ser alcançados no modo Kernel.
D) Promover a correta utilização dos recursos disponíveis aos usuários e executar tarefas repetitivas de forma eficiente e rápida.
E) Proteger o espaço de endereçamento do Sistema Operacional que assim não poderá ser acessado por qualquer programa de usuário que sempre rodará no modo usuário.
3. Considerando as possíveis formas de construção de uma instrução de máquina, geralmente denominadas de máquinas de zero, um, dois e três endereços, pode-se dizer que:
A) As máquinas de zero endereços tomam por base o uso de uma estrutura de pilha; as de um
endereço fazem uso intenso de um registrador chamado acumulador e as de dois endereços
usam um dos endereços de operando como entrada e como saída.
B) De todas as possíveis formas de construção da instrução de máquina, aquela que apresenta
maior flexibilidade e desempenho na execução é a máquina de três endereços.
C) De todas as possíveis formas de construção da instrução de máquina, aquela que apresenta
maior flexibilidade e desempenho na execução é a máquina de zero endereços.
D) As máquinas de zero endereços são pouco flexíveis, porém são extremamente rápidas, sendo por isto muito indicadas para serem usadas juntamente com sistemas operacionais de
tempo real.
E) As máquinas de um e dois endereços surgiram com a geração dos microprocessadores e sistemas operacionais mono-usuários, hoje muito em voga na microinformática.
4. Dado o código assembly abaixo, para máquinas de um endereço, identifique a expressão equivalente:
01
02
03
04
05
06
A)
B)
C)
D)
E)
LOAD
MUL
STORE
LOAD
SUB
STORE
E
F
T
D
T
T
07
08
09
10
11
LOAD
MUL
ADD
DIV
STORE
B
C
A
T
X
X = (D – E * F) / (B * C + A)
X = (B * C + A) / (D – E * F)
X = (A + B * C) / (E * F – D)
X = (A + B * C) / (D – E * F)
X = (E * F - D) / (B * C + A)
5. O processo de digitalização:
A) Consiste na conversão de caracteres e símbolos em códigos binários de tamanho fixo.
B) Implica necessariamente numa perda de informação contida no fenômeno analógico.
C) Depende exclusivamente da taxa de amostragem utilizada na captura do sinal analógico.
D) É de fundamental importância para sistemas que operem com leitura de sensores.
E) Pode provocar perda de informação, dependendo da taxa de amostragem e de binarização.
6. A Tabela de Interrupções:
A) É uma estrutura de dados mantida nos endereços mais baixos de memória que tem por objetivo conter o endereço do dispositivo que tenha solicitado uma interrupção.
B) É uma área de memória onde o sistema operacional armazena as diferentes rotinas de tratamento de interrupção que sejam suportadas.
C) É uma área no início da memória onde o sistema salva os dados de todas as interrupções enquanto estiverem pendentes. A área é liberada assim que a interrupção for atendida.
D) É uma estrutura de dados que nos atuais computadores pode ser mantida em qualquer lugar
da memória, que tem por objetivo conter o endereço das diferentes RTIs existentes.
E) É uma estrutura de dados mantida pelo sistema operacional com um histórico de todas as interrupções tratadas pelo sistema durante a sessão corrente de processamento.
7. TRAP:
A) É um tipo de interrupção síncrona que é gerada em decorrência de possíveis erros encontrados na execução de um código qualquer.
B) É uma rotina do sistema operacional que trata de interrupções assíncronas geradas por dispositivos conectados ao computador por intermédio da interface USB.
C) É uma rotina do SO chamada “armadilha”, tradução literal do nome, onde caem todos os
processos que gerem algum tipo de exceção durante sua execução.
D) É uma rotina reentrante do SO que trata das interrupções do tipo síncrona e que admite múltiplos níveis de interrupção.
E) É uma interrupção do tipo assíncrona que é gerada não por dispositivos, mas pelos próprios
processos sempre que os mesmos incorrerem em algum erro de execução.
8. Suponha que um processador vetorial faça uso de uma estrutura de pipeline uniforme (todos os
estágios consomem o mesmo tempo) para acelerar operações aritméticas. Sabendo que o pipeline opera em uma freqüência de clock de 80 Mega Hertz e que uma série de 15 instruções (sem
qualquer tipo de dependência ou desvio) ao serem submetidas ao pipeline foram executadas em
250ns, calcule o número provável de estágios deste pipeline:
A) 4
B) 5
C) 6
D) 8
E) 10
9. Em um certo computador, o processador realiza acessos de leitura à memória sempre no formato de 64 bits, mas na escrita podem ser nos formatos de 64, 32, 16 ou 8 bits. Nessas condições, o
número mínimo de linhas de controle enviadas pelo processador à memória para especificar o
tipo de acesso (leitura ou escrita) e o formato envolvido, deve ser de:
A) 2
B) 3
C) 5
D) 6
E) 10
10. No que diz respeito aos sistemas multiprogramados, pode-se afirmar que:
A) Tendem a aumentar o throughput do sistema, mas não necessariamente, aumentam o desempenho individual dos processos.
B) Suportam vários processos distintos em memória usando de forma exclusiva o uso da CPU e
dos demais recursos do sistema.
C) Tendem a reduzir o throughput do sistema, mas, em contrapartida, aumentam o desempenho
individual dos processos.
D) Suportam um certo grau de paralelismo (de granularidade grossa) quando dotados de um esquema de pipeline.
E) Podem suportar sistemas dos tipos: batch, time-sharing, tempo real, cliente servidor e execução paralela de fluxos de dados.
2a Questão (30)
Considere o trecho de pseudo-código abaixo:
:
Enquanto Não for Fim-de-Arquivo
Execute tarefas preparatórias
Leia próximo registro
Verifique enquadramento do funcionário
Calcule suas vantagens pecuniárias
Calcule a lista de descontos
Prepare registro no layout do holerite
Grave registro para impressão do holerite
Realize mais algumas operações aritméticas
Limpe algumas variáveis utilizadas
Fim-Enquanto
:
Assumindo que o programa seja executado em um ambiente onde as operações de E/S possam ser
dos tipos: programada ou com interrupção, verifique os fluxos de execução abaixo e responda às
perguntas.
1
I/O Program
Início do Loop
2
6
I/O Command
Lê Registro
3
I/O Program
8
I/O Command
7
I/O End
Grava Registro
4
Interrupt Handler
9
End
Fim do Loop
5
1. O fluxo de execução do programa abrangendo apenas a primeira passagem pelo ciclo do loop e
considerando a técnica de E/S programada é dada pela alternativa:
A) 2 – 8 – 3 – 9 – 8 – 4 – 9 – 5
B) 1 – 2 – 6 – 7 – 3 – 6 – 7 – 4
C) 1 – 2 – 6 – 3 – 7 – 6 – 4 – 7
D) 1 – 6 – 2 – 7 – 3 – 6 – 4 – 7
E) Nenhuma das alternativas acima: _______________________________________________
2. Caso a técnica de E/S seja por interrupção, informe qual seria o fluxo de execução para o mesmo caso da pergunta anterior:
R: 1 – 2 – 8 – 3a – 9 – 3b – 8 – 4a – 9 – 4b
3. Ainda considerando o mesmo caso descrito no item 2, como ficaria o fluxo de execução caso o
tempo de execução do trecho 3 do programa seja menor que o tempo de resposta final do dispositivo de E/S?
R: 1 – 2 – 8 – 3 – CPU IDLE – 9 – 8 – 4a – 9 – 4b
4. Suponha que a técnica de E/S adotada seja por interrupção, que o arquivo de dados tenha 100
registros no total e que o tempo de execução de cada um dos seguintes trechos de código seja: 1
– 10 u.t.; 2 – 5 u.t.; 3 – 15 u.t.; 4 – 10 u.t.; 5 – 100 u.t.; 6 – 20 u.t.; 7 – 25 u.t.; 8 – 15 u.t. e 9 – 5
u.t.. Nestas condições, calcule o tempo que será efetivamente gasto na execução apenas do trecho correspondente ao Loop do programa.
Considerando que o dispositivo responde antes da conclusão dos trechos 3 e 4
Fluxo de execução de um Loop – FE1 = 2 (5 u.t.) + 8 (15 u.t.) + 3a (5 u.t) + 9 (5 u.t.) + 3b (10
u.t.) + 8 (15 u.t.) + 4a (5 u.t.) + 9 (5 u.t.) + 4b (5 u.t.) = 70 u.t.
100 registros Î FE100 = 7000 u.t.
Resposta:
7000 u.t.
4a Questão (30)
Suponha que você encontre a memória do seu computador carregada com os seguintes trechos de
código:
Endereços
Código
Trecho de Código
1200
1600
if N > 0
N Å N – 1;
Call Proc 3
Procedure Proc3
Call Proc1
Main Program
4000
4500
6000
6100
Call Proc 2
Procedure Proc1
6350
Call Proc 2
7300
7350
Procedure Proc2
NÅ1
Call Proc 3
Considere que todas as chamadas a rotinas são sem passagem de parâmetros, com exceção da chamada a rotina três que passa o valor de “N” como parâmetro.
1. Assumindo que a pilha está inicialmente vazia, complete a figura abaixo informando os valores
a serem carregados e/ou retirados da pilha a medida que o programa principal vai sendo executado. Destaque o evento e o correspondente conteúdo da pilha.
•
Estado
Inicial
•
4501
Call
Proc1
•
6101
4501
Call
Proc2
•
N=1
7351
6101
4501
Call
Proc3
•
N=0
1601
7351
6101
4501
Call
Proc3
•
7351
6101
4501
Return
Proc3
•
6101
4501
Return
Proc3
•
4501
Return
Proc2
•
6351
4501
Call
Proc2
•
N=1
7351
6351
4501
Call
Proc3
•
N=0
1601
7351
6351
4501
Call
Proc3
•
7351
6351
4501
Return
Proc3
•
6351
4501
Return
Proc3
•
4501
Return
Proc2
•
Return
Proc1
2. Enumere os trechos de código que podem estar usando da técnica de recursividade.
R: Procedure 3
3. Na sua opinião alguma destas rotinas (procedures) poderia ser do tipo reentrante? Enumere e
justifique sua resposta.
R: Qualquer das Procedures, uma vez que não se tem conhecimento das rotinas que compõem
nem o endereçamento completo do código executável do usuário.
4. Na sua opinião como devem ser tratados os dados nas rotinas reentrantes e nas recursivas de
forma a preservar a integridade dos mesmos?
R: São tratados como instâncias independentes. Na reentrância para não misturar dados de processos chamadores distintos e na recursividade, para não misturar instâncias distintas do ciclo de
execução.
5. Na sua opinião haveria algum impedimento para uma rotina reentrante também ser recursiva?
Justifique.
R: Em teoria nenhum. Nada impede que uma rotina reentrante faça uso da técnica de recursividade para resolver o problema a que se destina.
Download