Virtualização, gerenciamento de memória e estrutura do sistema operacional
Por: SonSolimar • 17/12/2018 • 1.661 Palavras (7 Páginas) • 378 Visualizações
...
- Best-fit: Escolhe a melhor partição, onde o programa deixa o menor espaço sem utilização.
- Worst-fit: Escolhe a pior partição, onde o programa deixa o maior espaço sem utilização.
- First-fit: Escolhe a primeira partição livre, de tamanho suficiente para carregar o programa.
Estrutura do Sistema Operacional
O Sistema operacional deve garantir a confiabilidade nos dados dos usuários e na concorrência de execução dos programas, como também, deve garantir a integridade do Sistema operacional, onde o mesmo é formado por rotinas (procedimentos) que oferecem serviços aos usuários e aplicações, o conjunto de rotinas é chamado de núcleo do sistema ou kernel.
Kernel: Faz a gerência de memória, do sistema de arquivos, faz o escalonamento e controle dos processos, sincroniza e comunica entre os processos, cria ou elimina processos, executa tratamento de interrupções, faz operações de entrada e saída, contabilização e segurança do sistema. Não há uma ordem pré-definida para execução concorrente dessas rotinas por meio eventos assíncronos.
Modo de acesso: Instruções privilegiadas (modo kernel ou supervisor), tem o poder de comprometer o sistema, onde pode ter o acesso ao conjunto total de instruções do processador. Instruções não-privilegiadas (modo usuário) não oferecem perigo ao sistema, onde uma aplicação só pode executar instruções não-privilegiadas, tendo acesso a um número reduzido de instruções.
System Call: É o mecanismo de proteção do núcleo e de acesso aos seus serviços, são como portas de entrada para se ter acesso as rotinas do Sistema operacional, onde o próprio mecanismo verifica se a aplicação possui privilégios nessários. Tipos de system call em diferentes Sistemas operacionais, Unix(system call), OpenVMS(system services), MS Windows(Application Program Interface(API)).
Arquitetura Kernel: Os primeiros Sistemas operacionais foram desenvolvidos em assembly, os atuais são escritos em C/C++ Unix e Windows, linguagem de alto nível podendo ser facilmente alterado em outra arquitetura de hardware, sua desvantagem, perca de desempenho.
Arquitetura monolítica: Formada por vários módulos que são compilados separadamente e depois linkados formando um único programa executável, onde os módulos podem interagir livremente. Prós, simplicidade e bom desempenho. Contras, desenvolvimento e manutenção difíceis.
Sistemas monolíticos: É escrito como uma coleção de processos, onde cada processo pode fazer chamada para outro, não há estruturação visível, os System Calls são requisitados através de pilhas e registradores e de uma chamada de sistema especial chamada TRAP ao kernel.
Sistemas em camadas: O sistema é dividido em níveis sobrepostos, as camadas do conjunto de funções, só poderá ser usada pelas camadas superiores. Prós, facilita a manutenção e depuração, cria uma hierarquia de modo de acesso. Contras, desempenho, tanto em Unix quanto em Windows.
Divisão de camadas
5 – operador;
4 – programas do usuário;
3 – gerência de dispositivos de I/O;
2 – comunicação processo-operador;
1 – gerência de memória e tambor magnético;
0 – alocação do processador e implementação da multiprogramação;
As camadas podem ser divididas em anéis, da mais externa a mais interna, Usuário, supervisor, executivo e kernel.
Máquina virtual: Cria um nível intermediário entre o hardware e o sistema operacional denominado de gerência de máquinas virtuais, VM’s são independentes e cada Vm pode possuir seu próprio Sistema operacional. Prós, há um isolamento total entre Vms criando grande segurança entre elas. Contras, estruturas bastante complexas, a necessidade de compartilhar e gerenciar recursos do hardware entre as diversas vm’s.
Microkernel: Consiste em tornar o núcleo do Sistema operacional o mais simples possível, os serviços são disponibilizados através de processos, responsáveis por um conjunto específico de funções. O solicitante é chamado de cliente e a Request de servidor, sendo a principal função do núcleo fazer essa troca de cliente e servidor. Prós, flexibilidade e portabilidade. Contra, difícil implementação.
Virtualização
Hypervisor: componente responsável pela máquina virtual, monitora, define o tipo de virtualização, além de ser o mediador entre os dispositivos virtuais e o hardware.
Tipo 1 “bare-metal”: Nativa, é o próprio Sistema operacional, substitui o sistema operacional da máquina, tem o controle total do processador e o resto do Hardware. Exemplos, VMware ESXi, Xen, KVM, Hyper-V.
Tipo 2 “hosted”: Hospedeira, instalado acima do Sistema Operacional, tem controle limitado sobre o hardware, o sistema convidado acessa diretamente o anfitrião, essa otimização é implementada pelo hypervisor. Exemplos, VMware Player, Fusion Workstation, Virtual box.
- Emulação: Um emulador simula uma máquina de características distintas do computador sobre qual o emulador opera, através de software, traduzindo todas as instruções para instruções do sistema hospedeiro.
- Abstração: Simplifica o uso, forma mais simples de prover alguns recursos específicos de hardware para um software.
- Virtualização: Replica o recurso, provê um conjunto completo de recursos, é a forma de dividir os recursos de um computador em vários ambientes de execução.
Virtualização de Hardware: exporta o sistema físico como uma abstração do hardware.
Virtualização de sistema operacional: exporta um sistema operacional como abstração de um sistema específico.
Virtualização de linguagem de programação: a camada exporta uma abstração para a execução de programas escritos para esta virtualização.
Componentes de sistemas de computadores: Hardware, Sistema operacional e Aplicações.
Aplicações: Macintosh Power Pc, Windows e Linux: X86.
Técnicas
...