Prévia do material em texto
NOME: EMYLLY SABRINA DE SÁ
PROFESSOR: Cícero Woshingnton Saraiva Leite SEMESTRE: 2020.1
CURSO: Sistemas de Informação TURMA: 1
DISCIPLINA: Sistemas Operacionais AV: AV1
DATA: 25/03/2020 TIPO: 1 NOTA:
1) Diferencie threads no processo e threads no
núcleo. Cite justificativas, vantagens, desvantagens
se necessário.
O modelo de processo é baseado em dois
conceitos independente (agrupamento de
recursos e execução). Às linhas de execução de
um thread compõe a execução de um processo,
qualquer processo deve possuir thread. Pois ela
permite que ocorram múltiplas execuções no
mesmo ambiente, com alto grau de
independência uma da outra. Compartilha o
mesmo espaço de endereçamento que pertence
ao processo, sendo assim o S.O. precisa criar
mecanismos para não haver competição no uso
dos recursos. (espaço de endereçamento).
Threads no núcleo: o núcleo conhece o thread,
pode tirar CPU de um thread, há interrupção de
relógio. Às chamadas de sistema são iguais e
gerenciadas pelo S.O., os threads bloqueados
não bloqueiam o processo, as chamadas são
mais demoradas, o núcleo tem uma tabela que
controla todos os threads no sistema.
2) Se você fosse o responsável por um projeto de
sistema operacional e tivesse que determinar o
funcionamento do escalonador, qual(is) algoritmo(s)
escolheria para um sistema desktop? E para um
servidor? Justifique.
Escolheria um algoritmo para sistemas
interativos por causa das prioridades para o
usuário, separação dos processos (complexos e
comuns), múltiplas filas processadas de
maneiras diferentes, escalonamento garantido
(ideia – definir metas a cumprir/prioriza
processos fora de meta). Parar um servidor
usaria um algoritmo de escalonamento para
sistemas em lote (SRTN) por ser uma evolução
do SJF e por ter um tempo de espera menor
quanto ao tempo de término.
3) Desenhe um esquema que representa os
estados de um processo e as ações que acontecem
ao mudar de um estado para outro.
4) Marque V ou F:
(F) Mutexes são barreiras para número par de
processos.
(V) Semáforos aceitam operações de up() e down().
(V) Desabilitar interrupções é uma solução que
deve ser utilizada apenas por rotinas do próprio SO.
(F) Barreiras usam mensagens que bloqueiam o
processo requisitante até que a resposta chegue.
(V) TLS consiste em manipular uma variável de
trava com uma operação indivisível (um ciclo de
processador apenas).
5) Sabendo que a fórmula que define a
multiprogramação é dada por 1-pn, onde p é a fração
de tempo ocioso e n é o número de processos iguais,
qual o grau de multiprogramação para um sistema
com p=0,3 e n=4?
O grau é 99,19%
6) Sobre região crítica marque V ou F:
(V) Um processo que executa sua região crítica não
pode ser bloqueado por outro.
(F) Um processo completamente fora de sua região
crítica pode bloquear outro.
(V) Um processo que executa sua região crítica
pode acessar variáveis compartilhadas se as regras
de exclusão mútuas foram devidamente cumpridas.
7) Verifique o código a seguir.
void producer (void) {
int item;
while (TRUE) {
up($mutex)
produce_item(&item)
enter_item(&item)
down(&mutex)}
Considerando que existe um semáforo (mutex) e
que vários processos produtores podem estar
executando ao mesmo tempo. Considerando ainda
que o mutex foi inicializado com 0, comente os
problemas desse código.
O (producer) (item) precisa estar antes do up
e necessariamente não precisava está na região
critica. E é recomendável iniciar por 1 e fazer o down
assim que entrar na região crítica e só no final fazer
up novamente.
8) Marque um X para as características
relacionadas ao algoritmo circular (fatia de tempo):
(X) pseudoparalelismo.
( ) ideal para sistemas em lote.
(X) garantia de igualdade a longo prazo tanto para
processos CPU/bound quanto IO/bound.
No estado EXECUTANDO, um processo pode fazer
chamada de sistema. Até a chamada de sistema ser
atendida o processo não pode continuar sua execução.
Ele fica BLOQUEADO e só volta a disputar o processador
após a conclusão da chamada. Enquanto espera pelo
término da chamada de sistema, o processo está no
estado de bloqueado.
9) Observe os comandos time e dd em uma única
linha sublinhada abaixo e a respectiva saída.
time dd if=/dev/zero of=./apagar.dat
count=1000000 bs=1024
1000000+0 registros de entrada
1000000+0 registros de saída
1024000000 bytes (1,0 GB, 977 MiB)
copiados, 4,06709 s, 252 MB/s
real 0m6,715s
user 0m0,342s
sys 0m2,266s
Sabendo que o arquivo apagar.dat criado pelo dd
foi salvo em um disco mecânico e que o comando
time contabilizou os tempos relacionados à criação
do referido arquivo. Sabendo também que as três
últimas linhas são as medições do comando time e
que user significa tempo de execução em modo
usuário e sys tempo de execução em modo núcleo
responda:
a) Por qual motivo a soma dos tempos user e sys
não é equivalente ao tempo real?
Porque o tempo real foi superior a 3 segundos,
e o restante do tempo ele passou ocioso.
b) Por qual motivo o tempo sys é maior que o
tempo user?
Por que é trabalho do sistema operacional
10) Relacione as colunas:
(1) lote
(2) interativo
(2) Loteria
(1) SJF
(2) Fração justa
(1) SRTN
(2) Round-robin
(2) Prioridades
(1) FCFS (FIFO)