You are on page 1of 2

Sistemas Operacionais - Lista 01

1) O que é um sistema operacional? Quais são suas principais funções?

O Sistema operacional esconde o hardware do usuário, assim fica mais seguro e uniforme.
Controla os recursos da máquina, como processadores, armazenamento, dispositivos de
entrada e saída e dados da máquina e seus periféricos. Ele protege as camadas superiores do
sistema computacional, isolando o hardware delas, ou seja, responsável pela comunicação
entre o hardware e os demais softwares.

2) Defina:

(a) Processo: é um programa em execução.

(b) Sistemas monoprogramados: enquanto cuida de um job, a CPU fica ociosa durante
operações de E/S.

(c) Sistemas multiprogramados: o tempo do processador é compartilhado entre as


aplicações em execução, e a execução das tarefas passa rapidamente de uma para a
outra, criando a ilusão de que as aplicações ocorrem de forma conjunta.

3) Por que dizemos que existe uma subutilização de recursos em sistemas monoprogamados?

Porque em sistemas monoprogramáveis somente é possível a execução de um programa por


vez. Como um programa não utiliza todos os recursos do sistema totalmente ao longo da sua
execução, existe ociosidade e, consequentemente, subutilização de alguns recursos.

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

Os sistemas de tempo compartilhado (time‐sharing) dividem o poder computacional do


computador entre os usuários ao mesmo tempo, utilizando‐se de terminais de vídeos e
possuem arquitetura complexa. Possuem a vantagem de não precisar adquirir diversas
máquinas reais, já que se pode utilizar terminais para acessos desses usuários.

5) Sabemos que um processo é diferente de um programa. Que características diferenciam um


processo de um programa?

Um processo é um programa em execução. Um programa é um arquivo em disco. Vários


processos podem estar associados a um único programa. Cada processo tem sua região de
memória associada a ele.

6) Quais são os estados de um processo e o que pode levar processos a entrar como também
sair de cada estado?

Os estados de um processo são: novo, execução/rodando, pronto, bloqueado/espera e


término. Desde o instante em que um processo é iniciado, o seu estado passa pelas seguintes
transações: 1-uma CPU fica disponível para o processo, que passa do estado de pronto para o
de execução. 2-o processo necessita de algo que não está disponível para continuar a ser
executado, assim, passa de em execução para bloqueado, aguardando a satisfação de sua
necessidade.3-a necessidade do processo é satisfeita, podendo então passar de
bloqueado/espera para pronto para execução.4-o uso da CPU exclusivamente por um só
processo de ser evitado, para isso pode existir um tempo máximo em execução continua, após
o qual o processo passa de em execução para pronto, permitindo que outro processo use a
CPU.

7) Qual o papel dos escalonadores em um sistema operacional?

Responsável por decidir o momento em que cada processo obterá a CPU, de forma preemptiva
ou não-preemptiva.

8) Defina contexto e troca de contexto. Quando a troca de contexto é necessária? Por quê?

Para que a troca de programas ocorra sem problemas, é necessário que todas as informações
do programa interrompido sejam armazenadas para que, quando o programa retorne à
execução possa continuar exatamente de onde parou. A troca de um processo por outro,
comandada pelo Sistema Operacional, é denominada troca de contexto. Que consiste em
salvar o conteúdo (que é o contexto) dos registradores do processo que será executado.

9) Defina o que é uma aplicação concorrente. Quais as formas de se implementar aplicações


concorrentes.

Quando dois processos ou mais competem pelo uso da CPU. A utilização concorrente da CPU
deve ser implementada de maneira que, quando um programa perde o uso do processador e
depois retorna para continuar sua execução, seu estado deverá ser idêntico ao do momento
em que foi interrompido. O programa deverá executar a instrução seguinte à última instrução
executada, aparentando ao usuário que nada aconteceu.

10) O que é uma thread e quais as vantagens e desvantagens em sua utilização?

Pequeno programa que trabalha como um subsistema, sendo uma forma de um processo se
autodividir em duas ou mais tarefas. Uma das vantagens de usar threads, é no seu
desenvolvimento, visto que torna possível elaborar e criar o programa em módulos.
Principalmente, elas não deixam o processo parado, pois quando um deles está aguardando
uma determinada tarefa, o outro pode estar trabalhando. No entanto, ao dividir demais em
threads, o trabalho fica mais complexo, justamente por causa da interação que ocorre entre
eles. Dependendo de como faz seu algoritmo e a quantidade de threads criadas nele, pode
gerar essa dependência, deixando o processo mais lento.

You might also like