Baixe o app para aproveitar ainda mais
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)
Compartilhar