Baixe o app para aproveitar ainda mais
Prévia do material em texto
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ CURSO TÉCNICO EM INFORMÁTICA ADEILSON RIBEIRO DOS SANTOS SISTEMA OPERACIONAL LINUX ESCALONAMENTO DE PROCESSOS GERENCIAMENTO DE MEMÓRIA SISTEMA DE ARQUIVOS Paragominas - PA 2016 ADEILSON RIBEIRO DOS SANTOS (M1) SISTEMA OPERACIONAL LINUX ESCALONAMENTO DE PROCESSOS GERENCIAMENTO DE MEMÓRIA SISTEMA DE ARQUIVOS Trabalho apresentado ao Curso Técnico em Informática do IFPA - Instituto Federal de Educação, Ciência e Tecnologia, para a disciplina Sistemas Operacionais. Prof. Tarcísio Lemos Monteiro Carvalho Paragominas - PA 2016 Sistema Operacional Linux Linux é um sistema operacional tipo Unix que foi desenvolvido por Linus Torvalds inspirado no sistema Minix, que é uma versão simplificada do Unix, e que por fim veio do sistema Multics. O Linux é um exemplo de desenvolvimento com código aberto e de software livre. O seu código fonte está disponível sob licença GPL para qualquer pessoa utilizar, estudar, modificar e distribuir livremente. Um sistema Linux é capaz de funcionar em um grande número de arquiteturas computacionais. É utilizado em supercomputadores, computadores pessoais e até em aparelhos celulares. Escalonamento de Processos O escalonador Linux é baseado em time-sharing, ou seja, atua na divisão do tempo de processador entre os processos. Scheduler é o programa encarregado de agendar os processos, isto é, ele deve escolher o próximo processo que vai rodar, deve decidir quando o tempo de um processo terminou, o que fazer com um processo quando ele requisita I/O e assim por diante. Ele é chamado de vários pontos do programa, como após colocar o processo corrente em uma fila de espera, no final de uma chamada de sistema ou qualquer outro momento em que se faz necessário escalonar os processos. Ao ser chamado, o scheduler tem uma sequência de ações que devem ser tomadas para que seu trabalho possa ser feito. Essas ações se dividem em: Kernel Work: o scheduler deve realizar uma série de rotinas especifícas do kernel, e deve tratar da fila de esperas de tarefas do scheduler. Seleção de processo: o scheduler deve escolher o processo que irá rodar. A prioridade é o meio pelo qual ele escolhe. Troca de processos: o scheduler salva as condições que o processo atual apresenta (contexto específico do processo) e carrega o contexto do novo processo que irá rodar. Em ambientes multiprocesados (SMP - Simultaneous Multi Processing), cada processador tem um scheduler para tratar separadamente quais processos irão rodar nele. Dessa forma, cada processo guarda informação sobre o processador atual e o último processador em que rodou. Processos que já tenham rodado em um processador tem preferência em relação aqueles que não tenham rodado ali ainda. Essa implementação permite um ligeiro acréscimo de ganho no desempenho do sistema. O escalonador possui 140 níveis de prioridade (quanto menor o número, maior é a prioridade). Prioridades de 1 a 100 são para processos de tempo real; de 101 a 140 para os demais processos de usuário (interativos ou não interativos). Nos níveis de prioridade 101 a 140, os processos recebem fatias de tempo de 20 ms. Os processos de tempo real podem ser FIFO ou Round Robin, e possuem uma prioridade estática. Processos FIFO executam até voluntariamente liberarem a CPU (o nível de prioridade é mantido e não são preemptivos). Processos Round Robin recebem fatias de tempo. Quando todos terminam suas fatias, é dada outra fatia e eles continuam rodando no mesmo nível de prioridade. A prioridade dos processos de usuário é a soma de sua prioridade básica (valor de seu nice) e seu bonus dinâmico, que varia de +5 a –5. Thread de migração Em cada processador roda uma thread de migração, cuja função é movimentar processos de um processador para outro. Como existe uma ready list por processador, a idéia é evitar que processadores fiquem ociosos enquanto outros estão sobrecarregados. A thread de migração é chamada periodicamente, a cada tick do relógio, e também explicitamente quando o sistema fica desbalanceado. Gerenciamento de Memória “No Linux a memória funciona da seguinte maneira, processos que estão em execução têm prioridade na memória, quando termina um processo e se tiver espaço na memória, ficam resíduos desse processo na memória para uma futura volta desse processo ser mais rápida. Caso essa memória RAM esteja lotada com processos que estão em execução, aí começa a utilização da memória SWAP (troca)”. (LIMA, 2007) A memória virtual do Linux é paginada, ou seja, é possível que sejam executados programas que tenham o tamanho maior que a própria memoria física do computador. É como se o sistema operacional assumisse a responsabilidade de manter em sua memória e sustentasse os programas em execução, deixando o resto no HD. Só que a utilização da memória virtual torna o computador mais lento, mas faz com ele que aparente ter mais memória RAM do que tem de fato. Ou seja, quanto mais memória é requisitada, o Linux passa a transferir arquivos não usados há algum tempo, da memória RAM à memória virtual, também chamada de swap, liberando, assim, memória física para os aplicativos. Em suma, o que acontece é que o Linux utiliza a energia ociosa (que não está sendo aproveitada) para cache, a fim de agilizar os processos solicitados pelo usuário naquele determinado momento. Durante esse período de ociosidade da energia, o sistema toma para si essa memória, mas logo que o usuário necessite do recurso, o Linux libera imediatamente. É possível afirmar, então, que o Linux gerencia a energia e a memória de forma muito inteligente, pois ao invés de deixá-la “sem fazer nada” utiliza para agilizar outros processos. Sistema de arquivos Atualmente, uma importante característica dos atuais sistemas de arquivos é o journaling. Sistemas de arquivos que possuem essa característica são preferidos em detrimento aos que não possuem. Journaling é um recurso que permite recuperar um sistema após um desastre no disco (ex.: quando um disco está sujo) em uma velocidade muito maior que nos sistemas de arquivos sem journaling. Segue abaixo uma breve descrição sobre os sistemas de arquivos mais comuns disponíveis para o Linux: EXT2 - O sistema de arquivos ext2 é conhecido como "Second Extended FileSystem". Foi desenvolvido para ser mais "eficiente" que o sistema de arquivos "Minix", seu antecessor. O Minix era muito utilizado nas primeiras versões do Linux, e foi utilizado por muitos anos. O sistema de arquivos ext2 não possui journaling e foi substituído pelo ext3. EXT3 - O sistema de arquivos ext3 é uma versão do ext2 com suporte a journaling. Portanto, o ext3 tem as mesmas características do ext2, mas com suporte journaling. Essa característica foi uma evolução e tornou o ext3 um sistema de arquivos muito estável e robusto. Como no ext3 só foi adicionado o suporte a journaling, podemos converter um sistema de arquivos ext2 para ext3, adicionado suporte a journaling, e também podemos converter um sistema de arquivos ext3 para ext2, removendo o suporte a journaling. EXT4 - O ext4 trouxe, de acordo com seus desenvolvedores, alguns recursos que não existiam no ext3, mantendo alguns que a versão anterior já possuía. Na verdade são recursos que estavam tentando implantar na versão 3 do extFS (ext3), porém, devido a alguns problemas na implementação, lançaram essa nova versão com as características descritas abaixo. O Ext4 apresenta inúmeros novosaprimoramentos quanto a desempenho, escalabilidade e confiabilidade. Mais especificamente, o ext4 suporta sistemas de arquivos de 1 exabyte. Tem uma performance considerada muito boa, principalmente para o seu uso em máquinas de grande porte, como é o caso de várias máquinas de empresas. O EXT4 supera a capacidade de armazenamento do EXT3. O novo sistema de Journaling do EXT4 melhora a quantidade de arquivos e processos suportados pelo linux. Apresentando várias vantagens do gênero em relação ao EX3. Graças a alocação tardia, existe uma considerável redução de fragmentação, por ele melhorar nas decisões do sistema sobre o arquivo levando em consideração o tamanho do mesmo. O Ext4 usa checksums no jornal para melhorar a confiabilidade, já que o jornal é um dos arquivos mais utilizados do disco. Esta característica tem um lado benéfico, que pode evitar com segurança um disco I / O esperar durante o processo diário, melhorando o desempenho ligeiramente. O melhoramento na capacidade de armazenamento: O EXT4 tem aumento na capacidade de suportar maior quantidade de atividades, maiores arquivos e maior quantidade de pastas. Compatibilidade com Versões anteriores: o sistema de arquivos do EXT4 é compatível com as versões EXT3 e EXT2 o que ajuda muito no desempenho. Apresenta riscos de ocorrência de perda de dados: Isso ocorre pelo uso da alocação tardia, que ajuda na redução da fragmentação e na decisão do que ocorrerá com o arquivo pelo seu tamanho. REISERFS - O sistema de arquivos ReiserFS foi criado recentemente. Mas atualmente quase todas as distribuições Linux o suportam. Sua performance é muito boa, principalmente para um número muito grande de arquivos pequenos. ReiserFS também possui suporte a journaling. XFS - O sistema de arquivos XFS também possui suporte a journaling. Foi desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado o código fonte. O XFS é considerado um dos melhores sistemas de arquivos para banco de dados, pois é muito rápido na gravação. XFS utiliza muitos recursos de cache com memória RAM, e para utilizar XFS é recomendado utilizar sistemas que possuem redundância de energia. SWAP - SWAP é um espaço reservado para troca de dados com a memória RAM. Em alguns lugares ele não é mencionado como um Sistema de Arquivos. VFAT - O sistema de arquivos VFAT é também conhecido como FAT32 (M$ Windows). O sistema de arquivos VFAT não possui suporte a journaling. É utilizado normalmente para transferir dados entre sistemas M$ Windows e o Linux instalados no mesmo disco, pois pode ser lido e escrito por ambos os sistemas operacionais. O sistema de arquivos VFAT está longe de ser um sistema de arquivos utilizado para Sistemas Linux, exceto para compartilhamento/compatibilidade entre o M$ Windows e Linux. Se você utilizar VFAT no Linux, esteja certo de perder alguns atributos, tais como: permissão de execução, links simbólicos, entre outras coisas. Ambos os sistemas de arquivos ext3 e ReiserFS são maduros o bastante para serem utilizados como padrão no Linux. Esses dois são os mais utilizados pelas distribuições Linux. Referências https://www.vivaolinux.com.br/artigo/Estudo-sobre-os-tipos-de-gerenciamento-do- SO-Linux?pagina=1 http://escalonamentoprocessos.blogspot.com.br/2010/10/escalonador-linux.html http://www.portaleducacao.com.br/informatica/artigos/47774/gerenciamento-de- memoria-do-linux http://sorocodigos.ning.com/profiles/blogs/sistema-de-arquivos-suportado-pelo- linux https://www.vivaolinux.com.br/artigo/Linux-Sistema-de-arquivos
Compartilhar