Buscar

Lista-Exercicio-Corrigido-sistemas operacionais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

9LISTA DE EXERCÍCIOS – SISTEMAS 
OPERACIONAIS. 
1) Cite algumas funções do Sistema Operacional e relate como seria a operação dos computadores sem 
o uso deles. 
Gerência do processador, Gerência da memória, Gerência de E/S, Sistema de arquivos, Gerência de 
segurança, Usabilidade, etc... 
O computador não teria os gráficos, as imagens, recursos e os gerenciamentos em que ele gerencia os 
hardwares do computador. Desta forma, não teríamos operacionalidade no equipamento, resultando em 
uma máquina sem ações. 
2) Comente sobre os sistemas operacionais mais usados no mercado, destacando características dos 
mesmo. 
RESPOSTA LIVRE DO ALUNO. COMO RESUMO DE ENTENDIMENTO SOBRE OS S.O 
3) O que é núcleo do Sistema Operacional? 
O kernel é formado por um conjunto de rotinas que oferecem serviços aos usuários, às suas aplicações, 
e também ao próprio sistema, além de outros recursos que possam permitir a execução de outras tarefas 
quando solicitadas. 
É importante não confundir o núcleo do sistema com aplicações, utilitários ou interpretador de comandos 
que acompanham o sistema operacional. 
Desta forma, O kernel é responsável pela ligação entre os aplicativos e o processamento realizado a nível 
de dados (a nível de hardware), mas NÃO fornece uma interface para o usuário usar os serviços do 
sistema operacional. 
 
4) Quais são as principais funções do núcleo dos sistemas operacionais? 
 - criação e eliminação de processos e threads; 
 - sincronização e comunicação entre processos e threads; 
 - escalonamento e controle dos processos e threads; 
 - gerência de memória; 
 - gerência do sistema de arquivos; 
 - gerência dos dispositivos de E/S; 
 - suporte a redes locais e distribuídas; 
 - contabilização do uso do sistema; 
 - auditoria e segurança do sistema 
 - interação direta com o hardware, aceitando a linguagem compreensível de máquina. 
 
5) O que é um interpretador de comandos shell? Quais tarefas é possível realizar com ele? 
De maneira genérica, é um programa que intermedeia o contato entre o usuário e o computador. É a 
interface que o usuário utiliza para fazer a ponte com e o sistema operacional (kernel). Dentro o 
interpretador de comandos podemos executar linha de código e/ou comando para realizar ações do S.O. 
Exemplo: criar arquivos, gerenciar os processos e threads, diretórios, configurar hardwares, gerenciar 
acesso a rede, verificar segurança, etc... 
6) O que é uma arquitetura Microkernel? 
O nome dado a uma arquitetura de núcleo de um sistema operativo cujas funcionalidades são quase 
todas executadas fora do núcleo, em oposição a um núcleo monolítico, onde os processos se comunicam 
com um núcleo mínimo, usando o mínimo possível o "espaço do sistema". Evita uso desnecessário de 
esforço computacional para operação que não demandam tanto recurso. 
7) O que é uma System Calls ? Represente o funcionamento dela (Layout). 
As chamadas de sistemas são funções (interfaces  aplicação) usadas pelos aplicativos para solicitar a 
execução de algum serviço ao kernel do sistema operacional, ou seja, uma forma do shell solicitar ao 
kernel uma funcionalidade. Essas chamadas são realizadas através de aplicativos que permitem executar 
funções diretamente ligadas ao sistema operacional, como por exemplo, ajuste ou leitura do horário do 
sistema, acesso, leitura e gravação de arquivos no disco, entre outros (as funções de configurações e 
acesso são feitas através da chamadas de sistemas). As systems calls podem ser entendidas como uma 
porta de entrada para o acesso ao núcleo do sistema operacional e a seus serviços. Sempre que um 
usuário ou aplicação desejar algum serviço do sistema, é realizada uma chamada para suas rotinas 
através de uma system call (chamada de sistema). Por isso, as chamadas de sistemas são instruções 
com maior privilégio quando comparadas às outras instruções. 
Elas se dividem em: 
 Chamadas de sistemas para gerenciamento de processos. 
 Chamadas de sistemas para gerenciamento de diretórios. 
 Chamadas de sistemas para gerenciamento de arquivos. 
 Chamadas de sistemas restantes. 
 
8) Funções como ajustes de data e hora do SO, gravação de arquivos, abertura do painel de controle, se 
refere a qual mecanismo programático solicitado ao núcleo do SO? 
System Call (Chamadas de Sistemas) 
OBS: Todo SO para fazer funcionalidades junto ao hardware, necessita das System Calls. 
 
9) Qual a diferença entre sistemas de multitarefas e multiprocessadores? 
Multiprocessadores é o uso de duas ou mais CPUs (processadores) em um único sistema de 
computador. OSe refere à capacidade de um sistema suportar mais de um processador em um 
único SO. Como existem vários processadores disponíveis, temos vários processos sendo 
executados ao mesmo tempo (distribuição e paralelismo). Esses multiprocessadores 
compartilham o barramento do computador, a memória e os dispositivos periféricos também. 
Multitarefa Como o próprio nome sugere, multitarefa se refere à execução de várias tarefas 
(digamos, processos, programas, threads, etc.) ao mesmo tempo. Nos sistemas operacionais 
modernos, podemos tocar música MP3, editar documentos no Microsoft Word, navegar no 
Google Chrome tudo simultaneamente, isso é feito por meio de multitarefa. 
Multitarefa se refere ao SO que faz execução de várias tarefas (digamos, processos, 
programas, threads, etc.) ao mesmo tempo (paralelismo). Nos sistemas operacionais 
modernos, podemos tocar música, editar documentos no Microsoft Word, navegar no Google 
Chrome tudo simultaneamente, isso é feito por meio de multitarefa. 
Multitarefa é uma extensão lógica da multiprogramação. A principal maneira pela qual a 
multitarefa difere da multiprogramação é que a multiprogramação funciona unicamente no 
conceito de troca de contexto, enquanto a multitarefa se baseia no compartilhamento de tempo 
juntamente com o conceito de troca de contexto. 
 
 
 
10) Diferencie instruções privilegiadas das não-privilegiadas. 
Instruções privilegiadas são ligadas a um dispositivo de hardware. Essa restrição garante que 
apenas softwares altamente confiáveis acessem os dispositivos, garantindo proteção de acesso 
não autorizado e reduzindo o risco ao sistema, ou seja, influenciam na operacionalidade do S.O. 
As instruções não- privilegiadas são aquelas que não modificam a alocação ou o estado de 
recursos compartilhados por vários processos simultâneos, tais como processadores, memória 
principal e registradores especiais, etc... Essas não causam risco na operacionalidade do S.O. 
11) Defina o conceito de Shell Script no Linux: 
É uma linguagem de script usada em vários sistemas operacionais, executada pelo o interpretador de 
comandos. Exemplo: de interpretador de comandos é o bash, usado na grande maioria das 
distribuições GNU/Linux. 
12) Se fossemos criar uma pasta no Linux com o nome de calin, no terminal, qual a linha de comando 
que seria usada? 
mkdir calin 
OBS: para apagar usamos rmdir e para acessar usamos cd. 
13) Qual a função do comando chmod no Linux? 
Alterar a permissão de um arquivo (leitura + escrita + execução) 
14) Qual dos comando abaixo é usado para listar os arquivos de um diretório no Linux: 
a) mkdir b) rmdir c) cd xd) ls e) pwd 
15) O que é um processo? Qual a relação entre um “programa” e um processo? 
A relação é que um processo é uma abstração utilizada para representar um programa em 
execução, ou seja, é uma instância de um programa em execução. Um processo contém toda 
informação necessária para completar uma computação. Programas podem gerar vários 
processos. Um programa torna-se num processo quando qualquer ficheiro executável é 
carregado na memória. 
16) Como funciona o algoritmo de escalonamento por prioridades e quais os processos que costumam 
ter prioridades? 
Quando o escalonador necessita escolher qual o próximo processo a entrar em execução, ele faz uma 
avaliação das prioridades dos processos que estão no estadode PRONTO e seleciona o que maior 
prioridade, que no caso SÃO OS PROCESSOS QUE REALIZAM MUITAS OPERAÇÕES DE E/S. 
17) O que são sistemas de Multiprogramação? 
É o sistema que possui uma técnica de dividir a memória principal em vária partes, com cada tarefa sendo 
executada em cada partição de memória, cujas tarefas são trocadas a todo instante pela CPU, implicando 
em um falso paralelismo. 
18) Qual a diferença entre processo e threads? 
JOB  evoluímos para o conceito de PROCESSO (Multiprogramação e Multitarefas  Processo)  os 
processos passaram a ser divididos em fragmentos  esses fragmentos são os THREADS (Multitarefa e 
Multiprocessadores)  os Threads são resultados da computação paralela e distribuída. 
Threads são linhas de execução concorrentes dentro de um processo  ou seja um processo gera várias 
threads que irão disputar processamento. Podemos ter várias threads por processo. A única forma de 
aumentarmos o desempenho de um sistema que executa várias threads é fazer clusterização  adicionar 
mais unidades de processadores. As threads são a evolução no processo de execução e devem ser 
utilizadas por programadores, principalmente em processo que necessitam de alto recurso 
computacional. 
19) Um thread pode se dividir em outro threads? Justifique: 
 
20) Fazendo uma analogia aos protocolos de redes, em especifico, o protocolo IP e TCP, o que podemos 
destacar no uso dos S.O. 
Todos os SO (Linux, Windows, Mac, etc...) suportam os protocolos TCP e IP, como protocolos 
de do modelo de acesso a internet (modelo TCP/IP), porém fazem uso de navegadores para 
camada de aplicação. 
21) Defina o conceito de exclusão mútua e relacione este conceito com o uso de semáforos. 
ESTÁ RESPOSTA ESTÁ NO OBS DE EXLUSÃO MÚTUA 
22) O Linux é um sistema de código aberto. O que isso traz de vantagens e desvantagens. Cite pelo 
menos uma de cada. 
23) Defina o conceito de Multithreads. 
As multithreads é a existência de várias threads, que fazem parte do mesmo processo, sendo executados 
em paralelo. É quando temos um processo que foi dividido em threads, porém mesmo assim continua 
com dificuldades para ser finalizado. Assim dividimos a threads em outras fragmentos menores 
(multithreads). 
24) Quais as vantagens e desvantagens de um sistema operacional com estrutura monolítica? 
25) Quais são os principais estados em que um processo pode se encontrar? 
Os principais estados em que um processo pode se encontrar são: novo, pronto, executando, bloqueado 
ou suspenso e terminado. 
 
OBS SOBRE EXCLUSÃO MÚTUA. 
Usada para evitar que processos ou threads leiam e escrevam dados compartilhados ao mesmo tempo; 
Se um processo ou thread estiver usando uma variável ou arquivo, o outro processo ou thread está excluído do 
uso(exclusão mútua), isto é, garantia de acesso exclusivo a um recurso. 
É uma técnica eficiente que evita o problema de acesso simultâneo de mais de uma processo a um recurso. 
Essa variável utilizada para o bloqueio de processos (uso da exclusão mútua) é chamada de SEMÁFORO. A 
Exclusão mútua é criada para resolver a disputa a uma região crítica, e dispõem de linguagens de alto nível que 
através de monitores, permitem que apenas um processo utilize seus recursos por vez. 
Para implementar exclusão mútua precisamos de programas  programas se faz em linguagens! 
 
OBS SOBRE CONDIÇÃO DE CORRIDA. 
Condição de corrida ocorre em programas de computador quando diferentes processos ou threads em execução 
dependem de um estado compartilhado, e o resultado depende do escalonamento dos processos. 
Condição de Corrida  gera competição de processos  escalonador entra em ação para escolher o processo  
após a escolha temos uma exclusão mútua  o controle dessa exclusão é feita pelo semáforo. 
A condição de corrida garante que somente um processo pode ser executado por vez, usando a lógica da 
exclusão mútua. 
EXEMPLOS DE EXECUÇÃO DE COMANDOS 
a) mkdir calin  cria um diretório com o nome de calin 
b) rmdir calin  apaga a pasta calin 
c) chmod u+x calin  muda a permissão do arquivo calin que passa a ser executado  ou seja virou um Script 
feito proprietário. 
d) ls  lista o conteúdo de um diretório  que geralmente são arquivos. 
e) ls –al  mostra os arquivos ocultos (a) e o tamanho deles (l) 
f) pwd  mostra o diretório local 
g) rm –rf lista  a pasta lista sendo excluída somente se tiver algum arquivo dentro. 
h) mv teste.txt teste1.txt  como temos dois arquivos seguidos ele apenas renomeia 
i) mv teste.txt /tmp  movendo o arquivo teste.txt para a pasta /tmp. 
 
OBS SOBRE PROCESSO 
Processo pode ser definido como um programa em execução com várias informações que podem gerar 
concorrência. Essa concorrência pode ser no contexto de software e hardware. 
Contexto de Software  endereçamento de memória 
Contexto Hardware  armazena o conteúdo de registradores e status de CPU para troca de processo.

Outros materiais