Fundamentos de Sistemas Operacionais e Gerenciamento de Disco
Classificado em Computação
Escrito em em português com um tamanho de 16,24 KB
Conceitos Fundamentais de Sistemas Operacionais
1. Qual a Principal Vantagem de Multitarefa ou Multiprogramação?
A multiprogramação faz uso eficiente da CPU, sobrepondo as demandas por processamento e operações de E/S solicitadas por diversos usuários. Ela tenta aumentar a utilização da CPU, havendo sempre algo para ser executado.
2. Problemas de Segurança em Ambientes Multitarefa e Multiusuário
Em ambientes de multitarefas e multiusuários, vários usuários compartilham o sistema simultaneamente. Essa situação pode resultar em diversos problemas de segurança, como:
- Roubo ou cópia de programas ou dados.
- Uso indevido de recursos do sistema (CPU, memória, disco, etc.) sem autorização devida.
- Interrupção da execução de processos de outros usuários.
3. Características dos Processos Interativos e Batch
Processos Interativos:
- Compostos por muitas transações curtas, em que os resultados da próxima transação podem ser imprevisíveis.
- O tempo de resposta deve ser pequeno, pois o usuário submete a tarefa e espera o resultado.
- Exemplos: sistemas de manutenção de cadastros, sistemas de comércio eletrônico, transações bancárias, etc.
Processos Batch:
- Tarefas são agrupadas e executadas no computador por um operador ou agendamento automático.
- Adequado para executar grandes tarefas, com poucas interações.
- Exemplos: agendamento de vacinas de softwares, antivírus, etc.
4. Diferença entre Interrupção de Hardware e Trap
Uma interrupção é uma mudança de fluxo dentro do sistema gerada pelo hardware. Após o tratamento de uma interrupção, o controle é retornado ao contexto interrompido no programa. Uma interrupção de hardware pode ser usada para sinalizar o término de uma operação de E/S, a fim de evitar a necessidade de o processador verificar o dispositivo.
Uma Trap é uma interrupção gerada pelo software, podendo ser usada para chamar uma rotina do sistema operacional ou tratar erros no programa (ex.: divisão por zero).
5. Para que Tipos de Operações o DMA é Útil?
DMA (Direct Memory Access) é útil para transferir grandes quantidades de dados entre a memória e os dispositivos. Ele elimina a necessidade de envolver a CPU na transferência, permitindo que a operação termine mais rapidamente e a CPU realize outras tarefas simultaneamente (multitarefa).
6. Qual a Finalidade da Camada de Microcódigo?
Microcódigo é um conjunto de instruções internas gravadas no processador, responsável por "dividir" a instrução, já em baixo nível, em diversas instruções executadas diretamente pelos circuitos do chip.
7. O que é um Sistema Operacional (SO)?
Sistema Operacional é um software que atua como interface entre os programas em execução e o hardware do computador, fornecendo um ambiente eficiente e seguro.
8. Qual a Diferença entre Utilitários e Aplicativos?
- Utilitários: Estão rodando acima do SO, ou seja, necessitam do SO.
- Aplicativos: Preocupados com a realização de tarefas do usuário.
9. O que é Chamada de Sistema (API)?
É um desvio que um programa faz para pedir uma informação para o sistema operacional, um mecanismo usado pelo programa para requisitar um serviço do sistema operacional, ou mais especificamente, do kernel do SO.
Exemplo: Para imprimir um documento, o aplicativo precisa apenas informar em que ponto de memória o documento se encontra e qual é seu tamanho. O Windows se encarrega da impressão usando o driver adequado para a impressora em uso.
10. O que é Multitarefas?
É a principal característica que uma CPU tem: realizar diversas tarefas simultaneamente.
11. O que é Processo Batch?
Processo em lote, rotinas que você escreve e armazena para executar.
12. O que é um Sistema de Arquivos?
São rotinas que definem como os dados estão estruturados dentro do sistema.
13. Programas e Processos
Programas:
- Conjuntos de instruções para solucionar um problema.
- Alto nível: deve haver conversão para linguagem de máquina.
- Baixo nível: pode ser executado no hardware.
- Entidade passiva, não consome recursos de hardware.
Processos:
- É o ambiente criado pelo SO para executar os programas.
- Espaço de endereçamento protegido em memória, bloco de controle de processo, tempo de processador e recursos de E/S.
14. O que é Overhead?
O SO utiliza parte dos recursos de hardware para executar o gerenciamento (UCP, memória, E/S).
15. O que Significa Shell?
Shell é uma interface do usuário, um interpretador.
16. O que é um Registro de um Arquivo?
É uma informação lógica.
17. O que é o Diretório?
É uma estrutura de dados utilizada para organizar logicamente os diversos arquivos contidos no disco, contendo informações como localização física, nome, organização e demais atributos.
Exemplos de Caminho de Acesso:
- Absoluto:
/VAR/LOG
- Relativo:
CD VAR
- Acesso Direto
Gerenciamento de Memória
1. Migração de Dados: Disco Magnético, Memória Principal, Cache, Registrador
A migração de dados ocorre do disco magnético para a memória principal, depois para o cache e, finalmente, para o registrador.
2. Compartilhamento da Memória
Alocação Contígua Simples:
- Desperdício de memória caso não ocupe toda a memória.
- O tamanho da memória disponível limita o tamanho máximo do processo.
Particionamento:
- Essa modalidade limita a quantidade de processos simultâneos.
- Partições estáticas ou dinâmicas.
Segmentação:
- Segmentos são rotinas de programas ou do SO.
- O tamanho dos segmentos depende da lógica do programa.
Paginação:
- São blocos dos programas ou do SO.
- Todas têm o mesmo tamanho.
3. VFS (Virtual File System)
VFS é a camada do núcleo que trata de todas as chamadas de sistema relacionadas a um sistema de arquivos, provendo uma interface genérica para diversos tipos de sistemas de arquivos.
4. Spooling
Spooling é uma área de armazenamento de arquivos.
5. Spool como Buffer
Spool é um buffer, uma área de armazenamento temporário que mantém saídas para um dispositivo.
6. Swapping
Swapping é a movimentação de todo o programa entre as memórias principal e auxiliar.
7. Formatação Lógica
É o processo que cria o sistema de arquivos, em que o sistema operacional armazena as estruturas de dados iniciais, incluindo mapeamento dos espaços alocados e livres e um diretório vazio inicial.
Processo de Inicialização (Boot)
1. Explique o Processo Power-On Self-Test (POST)
POST é um teste ativado pela BIOS que fornece informações sobre o hardware. É utilizado como ferramenta de diagnóstico, executando uma série de verificações na placa-mãe, tais como CPU, memória, teclado, slots PCI. Adicionalmente, podem ser realizados testes na fonte de alimentação, cooling, etc.
2. O que Significa MBR? Para que Serve Essa Estrutura?
MBR (Master Boot Record) é o primeiro setor do disco (cilindro 0) ou LBA. É o ponto de inicialização consistente que o disco sempre utiliza quando a BIOS inicializa a máquina. Ele procura no MBR por instruções e informações sobre o disco e como inicializar o SO.
Finalidades das Principais Informações Existentes no MBR:
- Tabela de Partição: Contém informações sobre as partições primárias do disco (início e término, se é ativa ou não e qual é o sistema de arquivos).
- Partição Ativa: Indica que pode ser utilizada para carga do SO.
- Master Boot Code (Bootstrap): É um pequeno programa que a BIOS carrega e executa para o início do processo IPL. Esse programa, evidentemente, transfere o controle para um programa de armazenamento em qualquer partição ativa.
3. Qual a Finalidade do Processo de Particionamento de Discos?
Para que um disco seja utilizado, ele deve ser particionado. Particionamento é um processo de divisão do espaço do disco em partes, para receberem diferentes informações, sistemas operacionais ou serem utilizadas por diferentes usuários. Somente uma partição ativa, por vez, pode ser utilizada no IPL.
Exemplo: HD 500 GB
- 1ª partição primária: 200 GB para Windows (C:)
- 2ª partição estendida: 300 GB para se criar 2 volumes lógicos:
- 200 GB para dados (D:)
- 100 GB para jogos (E:)
4. Explique por que Não é Possível Haver Mais de 4 Partições Primárias Nessas Unidades?
As informações sobre as partições primárias do disco estão localizadas na tabela de partições mestre, que reside no MBR. Essa tabela ocupa somente 64 bytes dos 512 bytes totais desse setor (12,5%), sendo que cada entrada dessa tabela (que descreve uma partição) ocupa 16 bytes. Portanto, não é possível descrever mais de 4 partições primárias na tabela de partições.
Usualmente, pode-se definir 3 partições primárias e 1 partição estendida na tabela de partições. Múltiplas unidades lógicas podem ser criadas em uma única partição primária estendida.
5. O que Significa VBR?
Cada partição lógica do disco tem um setor de boot do volume, chamado VBR (Volume Boot Record). Esse setor não pode ser confundido com MBR, que controla todo o disco físico, porém é muito similar conceitualmente.
Componentes do VBR:
- Disk Parameter Block: É uma tabela que contém informações específicas sobre o volume (partição), tais como tamanho, número de setores na partição, nome do volume, número de setores por Cluster, etc.
- Volume Boot Code: É um código específico para o sistema operacional utilizado no volume, que testa e inicia o IPL. Dependendo do SO, essa estrutura pode se estender por vários setores adjacentes (ex.: no Windows Vista esse código se estende por 9 setores, totalizando 4.136 bytes).
6. Conceitue Boot Managers
Para manter 2 ou mais SOs instalados no mesmo computador, utiliza-se um "gerenciador de boot", que é um programa utilizado na inicialização. O Boot Manager se insere no processo IPL, muitas vezes configurando uma partição especial e definindo-a como "ativa". Quando o computador é ligado, o código nessa partição é executado, analisando as partições primárias do disco, exibindo uma lista de SOs instalados e solicitando uma ação do usuário para especificar o sistema a ser inicializado. Conforme a especificação do usuário, ele marca a partição como "ativa" e continua o IPL a partir desse ponto. A maioria dos SOs atuais possui algum tipo de Boot Manager, sendo que sua operação pode variar de um para o outro.
7. Explique Quais são os Problemas do Vírus de MBR?
Vírus de Boot é um tipo especial de vírus que infecta o primeiro setor de um disco flexível ou rígido (MBR), sendo comum ser contraído por intermédio de discos flexíveis contaminados e utilizados para boot. É potencialmente prejudicial, pois pode executar seu código com o processador em modo supervisor, antes da carga completa do SO. A reparação do setor de boot é uma forma de desinfectar o sistema; entretanto, o mais aconselhável é a utilização de um software antivírus.
Vírus de Boot Famosos: PING_PONG, STONED, Jerusalem, Brain, etc.
Tópicos Diversos em Sistemas Computacionais
1. Por que um Computador, para Executar uma Tarefa Útil, Não Necessita Obrigatoriamente de um Sistema Operacional?
O hardware precisa de um software para funcionar. Entretanto, esse software não precisa ser um Sistema Operacional!
2. Explique o que são Mnemônicos? Dê um Exemplo Relativo a um Processador de Arquitetura X86
É um método para decorar fórmulas e números por frases, palavras ou desenhos.
Exemplo: 0x80
é a instrução assembly utilizada para invocar chamadas de sistema no Linux, executando em uma arquitetura de processador x86. Essa instrução provoca uma interrupção de software (trap), normalmente com o processador em modo restrito, fazendo com que o processador entre temporariamente em modo supervisor e ative o vetor de interrupções para localizar e executar a rotina de serviço correspondente.
3. Por que a Execução de um Sistema Operacional em um Computador Melhora seu Nível de Segurança?
O processo não tem direitos de acesso privilegiado ao hardware, não podendo executar operações que possam comprometê-lo:
- Gravar dados em um setor reservado do disco.
- Acessar instruções e dados na memória de outro processo.
- Alocar o processador para uso exclusivo.
O sistema operacional gerencia o compartilhamento e acesso seguro dos recursos de hardware, evitando assim que seja danificado.
4. O que Significa Execução em "Modo Usuário"? Quais as Vantagens?
(A resposta para esta pergunta não foi fornecida no texto original.)
5. O que Significa DMA? Qual a Principal Vantagem para Arquiteturas Computacionais?
O DMA é uma característica essencial dos computadores modernos. Normalmente, o único componente que acessa a memória RAM da máquina é o processador. O recurso DMA permite que outro componente também acesse a memória RAM diretamente, como discos rígidos, o que aumenta o desempenho.
6. Qual a Relação entre o Sistema Operacional e a Portabilidade de Programas?
(A resposta para esta pergunta não foi fornecida no texto original.)
Cálculos de Disco
Considere um disco rígido com as seguintes características:
- 500 bytes por setor
- 2.000 setores por trilha
- 160 GB de capacidade total
- 8 cabeças de leitura e gravação
Com base nessas informações, calcule:
a) A Quantidade de Cilindros que a Unidade Possui
1 MB por trilha = 160.000 trilhas
160.000 / 8 = 20.000 cilindros
b) A Quantidade de Cabeças de Leitura e Gravação
8 cabeças.
c) Quantos Bytes Podem ser Armazenados em 2 Cilindros
160 GB / 20.000 cilindros = 8 MB por cilindro.
8 MB * 2 = 16 MB
d) A Taxa de Transferência com o Disco Girando a 5.000 RPM
t_latência = 80 ms
t_seek = 80 / 2 = 40 ms
e) O Tempo de Latência Médio com o Disco Girando a 2.500 RPM
t_transfer = 130 ms
t_acesso = 80 + 40 + 130 = 250 ms
taxa de transfer = 1 MB / 250 ms = 4 MB/s
Fórmulas Úteis:
- t_acesso = t_seek + t_latência + t_transferência
- taxa de transfer = bytes transferidos / t_acesso
Dados para Cálculos:
- Tempo de Latência: É o tempo de latência médio com o disco girando a 5.000 RPM, que é de 80 ms.
- Tempo de Busca (Seek): É o tempo de busca médio, que é igual à metade do tempo de latência médio.
- Tempo de Transferência: É o tempo despendido na transmissão dos dados (leitura ou gravação), que, em nosso caso, é necessário um tempo de 130 ms para transferência de 1 MByte de dados.
Para facilitar os cálculos, considere:
- 1 KByte = 1.000 bytes
- 1 MByte = 1.000 KBytes
- 1 GByte = 1.000 MBytes