Prévia do material em texto
FACULDADE ANHANGUERA RELATÓRIO DE AULA PRÁTICA ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS São Paulo 2024 Dênis Minervino Bezerra RA: 3568914901 FACULDADE ANHANGUERA Relatório da matéria Administração de Sistemas Operacionais Trabalho entrega no AVA da Faculdade Anhanguera, como parte das exigências para da matéria de Administração de Sistemas Operacionais. São Paulo, 10 de maio de 2024. São Paulo 2024 Introdução Nesta série de aulas práticas, fui introduzido aos fundamentos essenciais dos sistemas operacionais Linux. Os quatro objetivos em separado visaram fornecer uma compreensão abrangente dos conceitos-chave relacionados à funcionalidade de processos e threads, gerenciamento de arquivos e diretórios, gerenciamento de memória e virtualização/contêineres. Cada objetivo foi estruturado para abordar diferentes aspectos do funcionamento e da administração de sistemas Linux, capacitando com habilidades práticas e teóricas cruciais para o trabalho com sistemas operacionais nos dias de hoje. SUMÁRIO DESENVOLVIMENTO ATIVIDADE 1 5 APRENDIZADO ATIVIDADE 1 7 DESENVOLVIMENTO ATIVIDADE 2 7 APRENDIZADO ATIVIDADE 2 10 DESENVOLVIMENTO ATIVIDADE 3 10 APRENDIZADO ATIVIDADE 3 13 DESENVOLVIMENTO ATIVIDADE 4 14 APRENDIZADO ATIVIDADE 4 15 CONCLUSÃO 16 DESENVOLVIMENTO ATIVIDADE 1 Nesta parte da aula, fui introduzido aos conceitos fundamentais de processos e threads, componentes essenciais dos sistemas operacionais. Ao entender as diferentes implementações de threads, como o nível de kernel e nível de usuário, adquiri uma compreensão sólida das diversas maneiras pelas quais os sistemas operacionais lidam com a execução concorrente de tarefas. A demonstração prática da comunicação entre processos utilizando comandos no shell permitiu-me experimentar diretamente como os processos podem trocar informações e colaborar para realizar tarefas complexas. Fui capaz de aplicar esse conhecimento para desenvolver soluções eficientes para problemas de programação e administração de sistemas. Ao explorar ferramentas como "top" e "ps" para monitorar processos e threads, desenvolvi habilidades de diagnóstico, aprendendo a identificar e analisar o comportamento do sistema em tempo real. Essa habilidade é crucial para otimizar o desempenho do sistema e solucionar problemas de forma eficaz. Além disso, a discussão sobre os estados de threads e seu significado proporcionou-me uma compreensão mais profunda de como os processos e threads interagem e evoluem ao longo do tempo. Essa compreensão é essencial para o desenvolvimento de software robusto e para a administração eficaz de sistemas operacionais. APRENDIZADOS ATIVIDADE 1 Em resumo, nesta parte da aula, adquiri uma compreensão abrangente dos conceitos de processos e threads, bem como das ferramentas e técnicas utilizadas para monitorá-los e gerenciá-los em sistemas operacionais Linux. Essas habilidades são fundamentais para qualquer profissional de TI que trabalhe com sistemas operacionais e desenvolvimento de software. DESENVOLVIMENTO ATIVIDADE 2 Nesta etapa, adquiri habilidades para gerenciar arquivos e diretórios no ambiente Linux. Entendi o funcionamento do gerenciador de pacotes no Linux e aprendi a controlar permissões em arquivos e diretórios. Entendi as diferenças entre as arquiteturas de sistemas Linux para obter uma compreensão mais ampla do ecossistema Linux. Durante a demonstração dos comandos de gerenciamento de arquivos e diretórios, pude observar diretamente como realizar tarefas básicas de manipulação de arquivos e pastas no ambiente Linux. O entendimento do funcionamento do gerenciador de pacotes no Linux foi crucial para minha familiarização com o processo de instalação, atualização e remoção de software no sistema operacional. Ao executar comandos de gerenciamento de pacotes, como apt-get e dpkg, pude realizar operações com sucesso, garantindo que os pacotes fossem instalados corretamente e que meu sistema permanecesse atualizado. Isso me deu confiança para gerenciar eficientemente o software em meu ambiente Linux. Com relação às permissões de arquivos e diretórios, compreendi a importância de atribuir permissões adequadas para garantir a segurança e integridade dos dados. Expliquei as diferenças entre permissões de leitura, gravação e execução, bem como a distinção entre proprietários, grupos e outros usuários. Além disso, discuti as diferenças entre as arquiteturas Linux, como distribuições baseadas em Debian, como o Ubuntu, e distribuições baseadas em Red Hat, como o CentOS. Essa compreensão das diferenças arquiteturais me permitiu ter uma visão mais ampla do ecossistema Linux e entender melhor as nuances entre as diferentes distribuições. APRENDIZADOS ATIVIDADE 2 Adquiri habilidades práticas para gerenciar arquivos e diretórios no ambiente Linux, utilizando o gerenciador de pacotes para instalar e atualizar software, além de controlar permissões para garantir a segurança dos dados. Compreendi as diferenças entre as arquiteturas de sistemas Linux, o que me proporcionou uma visão mais profunda do funcionamento do sistema operacional. Em resumo, esta parte da aula foi fundamental para minha jornada de aprendizado em gerenciamento de arquivos e diretórios no Linux, proporcionando-me as habilidades e o conhecimento necessários para administrar eficientemente sistemas baseados em Linux. DESENVOLVIMENTO ATIVIDADE 3 Aqui, fui apresentado ao conceito de gerenciamento de memória no sistema operacional Linux. Explorei o uso prático da ferramenta HTOP para monitorar o uso de memória e aprendi comandos importantes para o gerenciamento de memória. Compreendi a divisão da memória em texto, dados e pilha, além de comparar as diferenças entre arquiteturas de sistemas operacionais. Instalação e execução do HTOP para monitorar o uso de memória: Primeiramente, realizei a instalação do HTOP, uma ferramenta poderosa para monitoramento em tempo real do sistema. Com a execução bem-sucedida do HTOP, fui capaz de visualizar e analisar detalhadamente o uso de memória do meu sistema, incluindo o consumo por processos individuais. Exploração das informações do HTOP: Ao explorar as diferentes seções e informações fornecidas pelo HTOP, como uso de CPU, memória e threads, ganhei uma compreensão mais profunda do comportamento do meu sistema e identifiquei possíveis gargalos de desempenho. Execução e compreensão dos comandos de gerenciamento de memória: Aprendi a utilizar comandos importantes para o gerenciamento de memória, como "free", "vmstat" e "swapoff". Com esses comandos, pude monitorar o uso de memória, verificar a utilização da memória virtual e até mesmo desativar a troca de memória. Realizei um resumo detalhado sobre a divisão da memória em texto, dados e pilha, destacando a função de cada uma dessas áreas no contexto do sistema operacional. Para facilitar a compreensão, criei um possível diagrama ilustrativo que mostrava a organização dessas áreas na memória. · Área de Texto: A área de texto da memória é onde o código do programa é armazenado. Isso inclui o código executável do programa, como instruções de máquina e constantes literais. O conteúdo dessa área é somente leitura e permanece inalterado durante a execução do programa. · Área de Dados: A área de dados armazena as variáveis globais e estáticas do programa, bem como os segmentos de dados dinâmicos, como o heap. Variáveis globais e estáticas têm uma vida útil prolongada e são alocadas durante a execução do programa. O heap é usado para alocação dinâmica de memória e é gerenciado pelo programador. · Área de Pilha: A área de pilha é usada para armazenar dados locais e contexto de execução de funções. Cada chamada de função cria um novo quadro de pilha, que contém parâmetros de função, variáveis locais e o endereço de retorno da função. A pilha cresce e diminui à medida que as funções são chamadas e retornam, seguindo uma estrutura de dados do tipo LIFO (Last-In, First-Out).Explorei as diferenças entre as arquiteturas x86 e ARM em termos de gerenciamento de memória, destacando suas características distintas e como elas influenciam o desempenho e a eficiência dos sistemas. APRENDIZADOS ATIVIDADE 3 Desenvolvi um entendimento sólido no que diz respeito a gerenciamento de memória no sistema operacional Linux, utilizando ferramentas práticas e comandos do sistema para monitorar e otimizar o uso de memória. Fui capaz de distinguir entre as diferentes áreas de memória e compreender como as arquiteturas de sistemas operacionais afetam o gerenciamento de memória, preparando-me para enfrentar desafios relacionados à eficiência de recursos em ambientes reais. Essa parte da aula foi fundamental para aprimorar minha compreensão do gerenciamento de memória em sistemas operacionais Linux e me equipou com as habilidades necessárias para monitorar, diagnosticar e otimizar o uso de memória em ambientes reais. DESENVOLVIMENTO ATIVIDADE 4 Na última parte da aula, entendi os conceitos de virtualização e contêineres em sistemas operacionais. Diferenciei virtualização de contêineres e entendi suas respectivas aplicações. Demonstrei exemplos práticos de implementação de virtualização e contêineres e comparei as arquiteturas de virtualização e contêineres para obter uma compreensão abrangente dessas tecnologias. Comecei configurando um ambiente de virtualização usando uma máquina virtual (VM). Escolhi uma plataforma de virtualização, como VirtualBox, e criei uma VM com as especificações necessárias para minha tarefa. Dentro da VM, executei uma tarefa específica, como a instalação de um sistema operacional ou a configuração de um servidor web. Durante todo o processo, documentei cada etapa, incluindo configurações, comandos utilizados e quaisquer problemas encontrados. Em seguida, configurei um ambiente de contêineres utilizando o Docker, uma plataforma de código aberto para desenvolvimento, envio e execução de aplicativos em contêineres. Instalei o Docker no meu sistema e familiarizei-me com seus conceitos básicos. Com o Docker configurado, executei um contêiner contendo uma aplicação simples, de um servidor web. APRENDIZADOS ATIVIDADE 4 Fui capaz de discernir claramente entre virtualização e contêineres, compreendendo as vantagens e aplicações de cada tecnologia. Adquiri habilidades práticas para implementar ambientes virtualizados e de contêineres, utilizando exemplos práticos para solidificar meu entendimento. A comparação entre as arquiteturas de virtualização e contêineres permitiu-me tomar decisões informadas ao selecionar a melhor abordagem para casos de uso específicos. Essa parte da aula foi muito relevante para aprimorar minha compreensão das tecnologias de virtualização e contêineres e sua aplicabilidade em ambientes de desenvolvimento e produção. Ao configurar ambientes práticos e documentar cada etapa do processo, adquiri habilidades valiosas que poderei aplicar em futuros projetos e trabalhos. CONCLUSÃO Esta jornada de aprendizado proporcionou uma visão abrangente dos principais conceitos e práticas fundamentais em sistemas operacionais Linux. Ao longo das aulas práticas, explorei os fundamentos do gerenciamento de processos e threads, aprendi técnicas essenciais para o gerenciamento de arquivos e diretórios, aprofundei-me no gerenciamento de memória e explorei as tecnologias emergentes de virtualização e contêineres. Cada objetivo e aprendizado ofereceu uma oportunidade única de desenvolver habilidades práticas e teóricas, essenciais para lidar com ambientes Linux em contextos profissionais e acadêmicos. A compreensão dos diferentes tipos de threads, a habilidade de monitorar e gerenciar processos, e a capacidade de controlar permissões em arquivos e diretórios foram apenas alguns dos muitos aspectos que explorei e dominamos. Além disso, o entendimento do gerenciamento de memória e a habilidade de identificar e solucionar problemas relacionados à alocação de recursos foram aspectos cruciais que aprimoraram minha capacidade de administrar eficientemente sistemas operacionais Linux. Ao abordar virtualização e contêineres, fui exposto a tecnologias inovadoras que estão moldando o panorama da computação em nuvem e da infraestrutura de TI moderna. A criação de ambientes virtuais e a execução de contêineres não apenas ampliaram meu conhecimento técnico, mas também me prepararam para enfrentar desafios e oportunidades futuras neste campo em constante evolução. Por fim, a preparação de documentos e apresentações destacando as diferenças entre virtualização e contêineres consolidou meu aprendizado, permitindo-me comunicar efetivamente conceitos complexos para outros e promovendo uma compreensão mais profunda dessas tecnologias. Em suma, esta série de aulas práticas não apenas expandiu meu conhecimento em sistemas operacionais Linux, mas também fortaleceu minhas habilidades práticas e me equipou com ferramentas essenciais para enfrentar os desafios do mundo real. 8 image1.png image2.png image3.png image4.png image5.png image6.png image7.png image8.png image9.png image10.png image11.png image12.png image13.png image14.png image15.png