Prévia do material em texto
Disciplina Administração de Sistemas Operacionais Unidade 1 Processos e Threads Aula 1 Gerencia de processos Introdução da aula A arquitetura de um sistema operacional envolve uma série de componentes e recursos que permitem a comunicação entre os aplicativos em sua estrutura. Cada programa em execução representa um processo e podemos de�nir sua execução como uma entidade que representa uma unidade básica a ser implementada no sistema. Sempre que um programa é executado, todas as instruções que foram desenvolvidas para permitir a sua execução, são lidas de forma sequencial, realizando as operações e os escalonamentos. Por isso, nesta aula você irá reconhecer conceitos básicos sobre a de�nição de um processo e qual a sua função em um sistema operacional, compreendendo qual a importância do núcleo do Disciplina Administração de Sistemas Operacionais sistema e das de�nições sobre multiprocessamento, multitarefas e multiprocessos. Ao �nal, será capaz de compreender como os processos são úteis em um sistema, além de ser capaz de descrever como ocorre o uso de recursos por parte do sistema e dos programas executados pelos usuários. Vamos lá? Funções de um processo e multiprocessamento Nos primórdios da tecnologia, quando surgiram os primeiros computadores, um único processador fazia parte da arquitetura desses equipamentos, contendo uma Unidade Central de Processamento (CPU) composta de um núcleo (kernel), entregando com isso um menor desempenho quando comparamos com as tecnologias atuais. Todavia, um núcleo pode ser de�nido como um componente que registra e excuta instruções de armazenamento de dados, enquanto a CPU é capaz de executar essas instruções, com um único propósito: resposta por meio de aplicações e softwares, como visto na Figura 1. Disciplina Administração de Sistemas Operacionais Figura 1 | Núcleo conectando aplicações - Fonte: Wikiwand. Além dos processadores e do núcleo, o sistema operacional trabalha com controladores de disco, teclados e grá�cos, em que cada um deles executa um número limitado de instruções e não autuam com processos, sendo gerenciados a �m de enviar informações para o núcleo sobre as próximas tarefas e monitorar os status (SILBERSCHATZ; GAGNE; GALVIN, 2012; TANENBAUM; BOS, 2014). De forma adicional, o controlador de disco recebe uma sequência de requisições do núcleo e controla a �la de solicitações, por meio do agendamento de tarefas no disco. Com a evolução da tecnologia, di�cilmente um sistema operacional utiliza um único processador ou núcleo. Sendo assim, computadores modernos, dispositivos móveis a servidores, introduziram os sistemas multiprocessadores. Sistemas multiprocessadores são de�nidos pelo uso de dois (ou mais) processadores, no qual cada um deles, possui uma CPU de núcleo único. Nesse caso, houve atualizações nos barramentos (utilizados para permitir a conexão de componentes), que permitem que os processadores compartilhem informações com outros componentes como a memória e os dispositivos periféricos (SIQUEIRA, 2016). Com o surgimento dos sistemas multiprocessadores, como vantagem se observou um aumento na taxa de transferência de informações, permitindo que múltiplos trabalhos possam ser realizados, consumindo um menor tempo do sistema. Entre os sistemas multiprocessadores mais comuns, estão os que utilizam o multiprocessamento simétrico (SMP). Nesse modo de operação, cada processador da CPU realiza as tarefas de forma simultânea, incluindo funções exercidas pelo sistema operacional e os processos que são direcionados pelo usuário mediante um conjunto próprio de registros e cache (ou seja, memória temporária implementada para Disciplina Administração de Sistemas Operacionais apoiar as tarefas, com acessos mais rápidos ao conteúdo, com foco no desempenho das tarefas (SILBERSCHATZ; GAGNE; GALVIN, 2012). Apesar disso, alguns recursos são compartilhados entre os processadores como a memória física do barramento. Mesmo assim, muitos processos podem ser executados por cada CPU ao mesmo tempo. Ainda assim, existem algumas limitações como em casos de falha, em que a inatividade de uma das CPUs pode causar sobrecarga para as demais, causando problemas de desempenho e in�uenciando negativamente nos resultados. Assim como as demais funcionalidades, o conceito de multiprocessador também evoluiu e com o passar do tempo, surgiram os sistemas multi-core, nos quais vários núcleos de computação residem em um chip único e podem agregar maior e�ciência pelo fato da agilidade que a comunicação entre chips permite. Sobre as vantagens do multi-core, Silva (2016) a�rma que o uso de chips que utilizam vários núcleos, in�uencia signi�cativamente no consumo de energia, em comparação com os chips single-core, o que é importante para dispositivos móveis e laptops, que consideram a autonomia da bateria um ponto importante. Praticamente todos os sistemas operacionais modernos – incluindo Windows, Mac OS e Linux, bem como sistemas móveis Android e iOS – suportam sistemas SMP multi-core, e os sistemas operacionais evoluem cada vez mais visando melhor aproveitamento de seus recursos. Videoaula: Funções de um processo e multiprocessamento Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Nesta aula, você irá conhecer os conceitos básicos sobre o bloco de controle de processos (em inglês: Process Control Block ou PCB). Iremos falar sobre quais são as informações tratadas pelo PCB em relação à execução de um processo, analisando sua estrutura básica de funcionamento. Multitarefas em sistemas operacionais Disciplina Administração de Sistemas Operacionais Quando falamos de um sistema com multiprocessamento, devemos considerar outras características importantes, uma delas está diretamente relacionada com a multiprogramação, que é quando há a capacidade de executar vários programas, mantendo não somente a CPU, mas os dispositivos de E/S ocupados em tempo integral. A multiprogramação otimiza a utilização da CPU e permite que os usuários possam realizar todas as suas tarefas. Para compreender como isso funciona, imagine que um sistema operacional sem multiprogramação, todo programa que esteja em execução é denominado processo e que diversos processos podem ser executados simultaneamente na memória. Sendo assim, o sistema escolhe e executa os processos e eventualmente os demais precisam esperar. Os processos em espera são denominados tarefas e a CPU �ca inativa até que um processo seja �nalizado para o outro iniciar (TANENBAUM; BOS, 2014). Já em um sistema multiprogramado isso não acontece e vários processos podem ser executados (Figura 2): Disciplina Administração de Sistemas Operacionais Figura 2 | Sistema operacional multitarefas e multiprocessos - Fonte: elaborada pela autora. Se um usuário estivesse utilizando um processador de texto e precisasse utilizar a agenda, o primeiro processo era bloqueado até que o segundo pudesse ser executado. Ambos continuavam existindo, mas somente um deles poderia ser acessado (Figura 3). Ou seja, os processos seguem sendo alternados. É aí que entra o conceito de multitarefa. Uma tarefa é um conjunto de instruções e o termo multitarefa pode ser caracterizado como uma extensão da multiprogramação, executada logicamente. Parece difícil imaginar que um sistema monotarefa já tenha existido, porém nos primórdios da computação, apenas uma tarefa podia ser executada por vez, até que o nível de paralelização de processos que existe atualmente fosse alcançado. Disciplina Administração de Sistemas Operacionais Figura 3 | Sistema com um único núcleo - Fonte: elaborada pela autora. Pode haver uma certa confusão entre os termos apresentados até aqui, mas basta pensar na multitarefa como a capacidade de um sistema operacional de executar mais de uma tarefa ao mesmo tempo (como o próprio nome diz) em uma máquina com processador único, diferentedo multiprocessamento no qual mais de uma CPU é utilizada. O tempo de resposta se torna mais rápido e os processos de E/S (entrada/saída) podem ser interativos, enviados para o usuário por meio de recursos como mouse, teclado ou tela (ARPACI-DUSSEAU; ARPACI-DUSSEAU, 2015). Um sistema multitarefas precisa lidar com a prioridade na execução dos programas para que possa de�nir como os recursos serão utilizados para atender ao que está sendo executado em determinado momento. Se a capacidade de multitarefa do sistema nota que um processo pode ser parcialmente interrompido ou pausado para atender as necessidades de outro processo, o estado do processo é salvo e outro iniciado, intercalando a execução. Finalmente, a execução de vários processos requer a limitação da capacidade do sistema em in�uenciar em todos os seus estágios, incluindo agendamento, armazenamento e gerenciamento de memória. Em um sistema multitarefa, o sistema operacional deve garantir um tempo de resposta razoável. A forma mais comum de fazer isso é a memória virtual, que é uma tecnologia que permite a execução de processos utilizando o disco (TANENBAUM; BOS, 2014). Um processo é um conjunto de recursos utilizados por uma ou mais tarefas e as tarefas fazem uso dos recursos por meio dos processos. As tarefas de um mesmo processo costumam trocar informações e o núcleo do sistema é responsável por isolar os contextos de execução de diversas tarefas. Disciplina Administração de Sistemas Operacionais Videoaula: Multitarefas em sistemas operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá! Nesta videoaula, iremos complementar nosso conhecimento, reconhecendo o ciclo de vida das tarefas. Você irá compreender o estado de transição de uma tarefa e o que cada um deles representa na arquitetura de um sistema operacional multitarefas e de que forma é possível consultar essas informações por meio da interface do sistema. Escalonamento de processos O objetivo da multiprogramação é ter algum processo em execução, o tempo todo, para maximizar a utilização da CPU e daí surge o conceito de escalonamento de processos, em que o principal objetivo é compartilhar o tempo de execução do qual o sistema disponibiliza, e alternar Disciplina Administração de Sistemas Operacionais as funções do núcleo da CPU entre os processos, considerando a frequência com que os usuários podem interagir com cada programa enquanto estão em execução. Como ferramenta auxiliar, o escalonamento, também denominado agendador de processos serve para monitorar e selecionar quais os processos estão disponíveis, considerando até mesmo selecionar um conjunto de processos disponíveis e executá-los no núcleo (Figura 4). Figura 4 | Escalonamento de processos - Fonte: Reinecke e Conrado ([s. d.]). Cada núcleo da CPU pode executar um processo de cada vez. Claro que para um sistema de um único núcleo, nunca existirá mais de um processo em execução, mas considerando que os sistemas modernos atuam com diversos núcleos, esse não é um cenário possível. No entanto, ainda pode ocorrer o fato de haver mais processos do que núcleos, e neste caso, os processos em excesso terão que esperar até que um núcleo seja liberado. O número de processos atualmente na memória é conhecido como o grau de multiprogramação de�nido pelo sistema operacional (TANENBAUM; BOS, 2014). Durante sua vida útil, um processo migra entre a �la pronta e várias �las de espera, por isso em sistemas operacionais o escalonador mapeia os processos que estão na �la pronta e aloca um núcleo da CPU a um deles. De acordo com Zambiasi (20--), o escalonamento de�ne os seguintes fatores: Utilização da CPU: no qual o processamento deve ocorrer na maior parte do tempo, sempre executando um processo. Throughput: o sistema operacional garante que um determinado número de processos seja executado dentro de um período determinado. Disciplina Administração de Sistemas Operacionais Tempo de turnaround: deve ser considerado o tempo que um processo consome desde que inicia até a �nalização. Isso envolve alocação da memória, o tempo de espera que os processos levam até estarem prontos e o processamento das operações E/S. Tempo de resposta: caracteriza o intervalo entre a pedido do sistema e a resposta produzida pelos processos. Alguns sistemas operacionais têm uma forma intermediária de escalonamento, denominada swapping, cujo propósito é que às vezes pode ser vantajoso remover um processo da memória (e da contenção ativa para a CPU) e assim reduzir o grau de multiprogramação. Além das �las nos quais os processos �cam em espera para serem escalonados, o sistema também inclui outras �las que consideram eventos como o término do processo, a interrupção ou até mesmo quando determinado evento está sendo aguardado para que seja possível concluir uma solicitação de E/S (SILBERSCHATZ; GAGNE; GALVIN, 2012). Como um exemplo prático, considere que o processo faça uma solicitação de E/S para um dispositivo de armazenamento, o disco, que por sua vez apresenta uma resposta mais lenta do que o processador. Nesse caso, o processo terá que aguardar a disponibilidade dos recursos de E/S para que a comunicação seja efetivada. Aqui considera-se que o processo está na �la, aguardando uma ocorrência de um evento especí�co. Quando a resposta retorna, o processo é realocado para a �la de executado ou pronto (ARPACI-DUSSEAU; ARPACI-DUSSEAU, 2015). O escalonamento de processos regras estabelecidas para de�nir a prioridade de cada processo e garantir que o sistema operacional funcione de forma sincronizada. Videoaula: Escalonamento de processos Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, aluno! Nesta aula, você irá compreender sobre os tipos de escalonadores, compreendendo os conceitos de cada uma das �las e sobre como ocorre a criação de um processo. Estudo de caso Disciplina Administração de Sistemas Operacionais Quando um sistema operacional permite a execução de múltiplos programas simultaneamente, é considerado uma plataforma multitarefa e tem de lidar com os processos que concorrem utilizando principalmente sua capacidade de processamento do hardware. Então, é necessário de�nir e gerenciar os recursos de processamento de maneira adequada, o que pode tornar o multiprocessamento, outra característica essencial para os sistemas operacionais modernos, que operam priorizando demandas e realizando-as de forma a gerar um bom desempenho às aplicações. Imagine que uma empresa do ramo de atendimento ao cliente, trabalha principalmente com o sistema operacional Windows em suas estações para realizar tarefas em diversos setores. Você é um analista de suporte e recebe uma dúvida do usuário, em que ele relata que apesar de o computador estar executando diversos programas, não apresenta travamentos e que ele notou que existem mais de 100 processos ativos no sistema operacional. Ele questiona como isso é possível. Você então analista e inicia o gerenciador de tarefas no qual presencia a seguinte situação: Existem 11 aplicativos apenas sendo executados (tarefas), enquanto existem 101 processos em segundo plano. Podemos analisar ambas as informações nas �guras a seguir: https://pt.wikipedia.org/wiki/Hardware Disciplina Administração de Sistemas Operacionais Figura 5 | Aplicativos ativos no sistema - Fonte: captura de tela do gerenciador de tarefas. Veja os processos em segundo plano na Figura 6: Figura 6 | Processos em segundo plano - Fonte: captura de tela do gerenciador de tarefas. Disciplina Administração de Sistemas Operacionais Tendo como base o que foi proposto, de�na como você, sendo um administrador de Sistemas Operacionais recém-contratado de uma grande empresa que gerencia e vendeSistemas Operativos para outras empresas no mercado, explicaria os seguintes pontos ao usuário em relação às tarefas que encontrou no sistema ao executar o gerenciador: O fato do percentil de consumo da memória ser maior que o percentil de uso do processador e do disco. Em que �la estão os aplicativos que aparecem no topo do gerenciador e em que �la estão sendo tratados os processos que aparecem em segundo plano (qual o motivo de estarem sendo tratados dessa forma), como isso está ligado com a função de multiprocessamento do sistema operacional. Como é possível que mais de um aplicativo esteja sendo executado ao mesmo tempo sem que os demais estejam em segundo plano assim como os demais processos. De�na sua resposta em poucas linhas e com uma análise dos fatos propostos, podendo dividir em três blocos distintos esta tarefa. Resolução do estudo de caso Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. O fato de a % de consumo da memória ser maior que a % de uso do processador e do disco. Em sistemas multiprocessadores, o processador é capaz de realizar multiplas tarefas de forma simultânea, mas em alguns casos, algumas de suas funções são direcionadas no sistema operacional para outros componentes internos como a memória RAM, que funciona como recurso temporário para apoiar na execução das tarefas, liberando o processados em casos nas quais as informações podem ser mantidas em cache e não precisam estarem atualizando o tempo todo, tornando o acesso ao conteúdo estático mais rápido e melhorando o desempenho das tarefas. Dessa forma o processador e seus núcleos somente são acionados quando uma não ativa é necessária. Em que �la estão os aplicativos que aparecem no topo do gerenciador e em que �la estão sendo tratados os processos que aparecem em segundo plano (qual o motivo de estarem sendo tratados dessa forma), como isso está ligado com a função de multiprocessamento do sistema operacional. Os aplicativos que aparecem no topo da tela estão em execução, enquanto os processos que estão em segundo plano estão nas �la ‘Pronto’ ou ‘Bloqueado’, em que podem estar Disciplina Administração de Sistemas Operacionais respectivamente prontos para serem executados a qualquer momento ou esperando um evento especí�co para que possam ser executados em conjunto com outro processo. Lembrando que um processo passa por todos os estados em seu ciclo de vida. Como é possível que mais de um aplicativo esteja sendo executado ao mesmo tempo sem que os demais estejam em segundo plano assim como os demais processos. Os aplicativos estão sendo executados, e por isso estão alocados na �la ‘em execução’, pelo fato de o sistema operacional Windows, utililizado pelo usuário ser multitarefa. Podemos notar que no momento diversos serviços estão sendo utilizados como navegador, editor de texto, aplicativos de comunicação. Essa função permite que o usuário possa navegar na Internet e anotar infomações no editor de texto, sem que uma das atividades precise ser pausada, o que se tornaria inviável para as necessidades que compreendem o uso dos computadores atualmente. Saiba mais O vídeo traz conceitos importantes sobre o conceito de multiprocessadores, apresentando informações signi�cativas sobre a semântica de memória e os tipos de multiprocessadores e suas categorias: UMA, NUMA, COMA. FREITAS. Multiprocessadores. Disponível em: https://www.youtube.com/watch? v=BwB8K84YRQw. Acesso em 21 out. 2021. _______ https://www.youtube.com/watch?v=BwB8K84YRQw https://www.youtube.com/watch?v=BwB8K84YRQw Disciplina Administração de Sistemas Operacionais Figura | Síntese da aula - Fonte: Pixabay; elaborada pela autora. Referências Disciplina Administração de Sistemas Operacionais ABUALROB, M. Throughput vs turnaround time vs waiting time vs response time. 8 Bit Avenue, [s. d.]. Disponível em: https://www.8bitavenue.com/throughput-vs-turnaround-time-vs-waiting-time- vs-response-time. Acesso em: 4. fev. 2022. ARPACI-DUSSEAU, R. H.; ARPACI-DUSSEAU, A. C. Operating systems: three easy pieces. Madison: Arpaci-Dusseau Books, 2015. SILBERSCHATZ, A.; GAGNE, G.; GALVIN, P. B. Operating system concepts. 9. ed. Danvers: Wiley, 2012. SILVA, M. da. Comparação de desempenho e e�ciência energética entre as arquiteturas de processador ARM Cortex A57 e Intel x86 para micros servidores. 2016. Curso de Engenharia da Computação, Centro Universitário Univates, Lajeado. Disponível em: https://www.univates.br/bdu/bitstream/10737/1444/1/2016MateusdaSilva.pdf. Acesso em 27 out. 2021. SIQUEIRA, F. de. 2016. Estudo de caso Unix vs Windows. Disponível em: https://sites.google.com/site/proffernandosiqueiraso/aulas/12-estudo-de-caso-unix-vs-windows. Acesso em: 27 out. 2021. TANENBAUM, A. S.; BOS, H. Modern operating system. 4. ed. Upper Saddle River: Prentice Hall, 2014. ZAMBASI, S. P. Gerência do processador (escalonamento de processos). Disponível em: https://www.gsigma.ufsc.br/~popov/aulas/so1/cap8so.html. Acesso em: 20 out. 2021. WIKIWAND. Núcleo. Disponível em: https://www.wikiwand.com/pt/N%C3%BAcleo. Acesso em: 20 out. 2021. Aula 2 Conceitos básicos de threads Introdução da aula https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.8bitavenue.com%2Fthroughput-vs-turnaround-time-vs-waiting-time-vs-response-time&data=04%7C01%7Cpatricia.mota%40kroton.com.br%7C601e985d2d194e3cf2ff08d9e83dda6f%7Ca50e7b768ea5492cbf1797d652fc3ce9%7C0%7C0%7C637796174651026813%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=q0ZbIVbIJPwmYvgJcNPLufv5ihrxNOGqCXfPPqSY5VM%3D&reserved=0 https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.8bitavenue.com%2Fthroughput-vs-turnaround-time-vs-waiting-time-vs-response-time&data=04%7C01%7Cpatricia.mota%40kroton.com.br%7C601e985d2d194e3cf2ff08d9e83dda6f%7Ca50e7b768ea5492cbf1797d652fc3ce9%7C0%7C0%7C637796174651026813%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=q0ZbIVbIJPwmYvgJcNPLufv5ihrxNOGqCXfPPqSY5VM%3D&reserved=0 https://www.univates.br/bdu/bitstream/10737/1444/1/2016MateusdaSilva.pdf https://sites.google.com/site/proffernandosiqueiraso/aulas/12-estudo-de-caso-unix-vs-windows https://www.gsigma.ufsc.br/~popov/aulas/so1/cap8so.html https://www.wikiwand.com/pt/N%C3%BAcleo Disciplina Administração de Sistemas Operacionais O sistema operacional precisa ser capaz de identi�car processos e executar tarefas constantemente, nem sempre sendo de conhecimento do usuário todas as atividades que tramitam por trás de sua estrutura. Os threads são de�nidos como processos simpli�cados, por isso representam a unidade básica do processador central de um programa. Além disso, quando um sistema executa múltiplos threads, é possível ter maior desempenho na execução das tarefas, no qual o mecanismo de threads permite que processos sejam executados de forma sequencial, mesmo que as chamadas do sistema possam gerenciá-los e bloqueá-los quando necessário. Veremos que os threads operam de forma semelhante a processos e são classi�cadas de acordo com seus estados, suas características e funcionalidades. Nesta aula, vamos compreender o conceito de threads, o processo de multithreading e analisar vantagens e desvantagens acerca da sua função em sistemas operacional. Conceitos básicos de threads Disciplina Administração de Sistemas Operacionais Um sistema operacional é composto de diferentes componentes, enquanto um processo representa uma entidade própria que basicamente é utilizada no contexto de escalonamento compartilhando a mesma estrutura de dados entre os processos pai e �lhos, um thread, de acordo com Scheffer (2007), é a unidade básica de utilização de uma Unidade Central de Processamento (CPU). Dessa forma, quando falamos sobre a estrutura básica de um thread, podemos considerar que é composta por uma estrutura quepermite a organização das tarefas e pode ser de�nida da seguinte forma (SILBERSHATZ, GALVIN, GAGNE, 2013): ID para identi�cação do thread. Contador de programa que especi�ca a próxima instrução a ser executada. Conjunto de registradores que fornecem cache das informações para a memória principal. Pilha, estrutura de dados ordenada. Existem outros componentes envolvidos na operação de um thread, que faz o compartilhamento de sua seção de código, dados e outros recursos do sistema operacional com outros threads. Nesse caso, ao contrários dos processos denominados pai e �lhos, a nomenclatura para threads que compartilham recursos é threads irmãs. Para que possamos compreender como tudo é orquestrado, considere apenas que um processo é um programa capaz de executar apenas um thread por vez. Dessa forma, se o usuário estiver trabalhando em uma planilha dentro do sistema, é correto dizer que um único thread de instrução está sendo executado, por isso, se o usuário precisar digitar valores e ao mesmo tempo, veri�car a ortogra�a do texto que foi inserido simultaneamente, não será possível, ou seja, não é possível executar duas tarefas dentro do mesmo processo (SILBERSHATZ, GALVIN, GAGNE, 2013). Disciplina Administração de Sistemas Operacionais Os threads desempenham diferentes papeis dentro do sistema operacional, entre elas estão as chamadas de procedimentos que são executados remotamente, denominadas RCPs (Radio Co- Processor. As RCPs permitem a comunicação entre os processos, basicamente da mesma forma que são executadas as chamadas de sistema tradicionais voltadas para os processos (SILBERSHATZ, GALVIN, GAGNE, 2013). Fica simples compreender a funcionalidade de um thread, quando consideramos as seguintes etapas: Um thread encaminha uma solicitação de leitura por meio do sistema. Após a solicitação, o thread �ca bloqueado até que os dados estejam disponíveis. Um processo que utiliza um único thread, não pode executá-lo enquanto o disco está sendo acessado. Lembre-se: uma tarefa por vez! Sendo assim, suspender um processo ocasiona como consequência a suspensão de todos os threads que estejam atreladas a ele, considerando que eles compartilham o mesmo espaço de endereçamento, o processo não é capaz de suspender somente parte da tarefa. Considerando a necessidade de uso do processamento computacional atualmente, praticamente todos os sistemas operacionais modernos permitem que um processo tenha múltiplos threads de execução e seja capaz de permitir a execução simultânea de diversas tarefas. Videoaula: Conceitos básicos de threads Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Nesta videoaula iremos estudar sobre as categorias em que os threads são classi�cados: modo kernel, modo usuário e modo híbrido. Você irá compreender as vantagens e desvantagens de cada uma das operações, comparando a diferença entre elas e reforçando a importância de threads no sistema operacional. Conceitos de múltiplas threads e vantagens Disciplina Administração de Sistemas Operacionais Atualmente é praticamente impossível que somente um thread possa atender às necessidades de quem utiliza um sistema operacional, a limitação no uso de funcionalidades não de�ne a forma como o usuário utiliza as ferramentas disponíveis no mercado. Por isso, sistemas multiprocessadores podem ter sua operação simpli�cada por meio do uso de threads, de multihread! Por isso, a maioria das aplicações de software executadas em computadores modernos: multihread. Sobre isso, quando uma aplicação é implementada, isso ocorre considerando um processo separado por diversos threads de controle. Para simpli�car, ele cita o uso de um navegador de internet como um exemplo real: O usuário realiza acesso à um site com diversos recursos de visualização, sendo assim ao mesmo tempo que ele precisa visualizar as imagens e textos que fazem parte da página acessada, também é necessário acessar dados armazenados na rede. Assim duas threads podem compartilhar essas funções. (SILBERSHATZ, GALVIN, GAGNE, 2013) As aplicações precisam de fato permitir que o usuário tenha �exibilidade para acessar os utilitários, um processador de texto por exemplo, não é somente projetado para digitar, mas também para exibir elementos, realizar correção ortográ�ca, receber instruções por meio de dispositivos de E/S (entrada e saída) e outras tarefas que podem ser executadas em segundo plano e para isso é necessário reconhecer a importância de um sistema multihread. O processador de texto é o processo e tudo que está sendo executado de forma simultânea são os threads atribuídas ao processo. Disciplina Administração de Sistemas Operacionais O conceito de multihread, de acordo com Bill (2021), está diretamente ligado com o processamento em sistemas multicore, considerando que diversas tarefas podem ser executadas em paralelo e os núcleos trazem maior desempenho para esse processo. Em um sistema operacional genérico, podemos considerar que um servidor multihread funciona da seguinte forma: Figura 1 | Comparação de processos com único e múltiplos threads - Fonte: Silbershatz; Galvin e Gagne (2013). Aqui, um thread depende da execução de seu código, coleta de dados e a forma como a execução dos arquivos é realizada. Os registradores armazenam informações de forma temporária e a thread é processada. Já em um sistema com múltiplos threads, esse processo ocorre mais de uma vez, simultaneamente, considerando as mesmas condições, mas no mesmo processo. Sistemas UNIX utilizam uma certa fatia da memória livre do sistema para gerenciar as interrupções, o armazenamento de informações importantes e as instruções que devem ser seguidas para que o ambiente alcance um melhor desempenho. Já na Figura 2 podemos analisar a arquitetura de um servidor multihread: Disciplina Administração de Sistemas Operacionais Figura 2 | Sistema de servidor multithread - Fonte: Silbershatz; Galvin e Gagne (2013). Podemos analisar que sempre que o cliente solicita ao servidor que uma funcionalidade seja executada, um novo thread é criado e o servidor retorna à requisição, permitindo a execução de determinada tarefa. Isso pode ocorrer repetidas vezes, de acordo com a capacidade de processamento do sistema operacional e do núcleo. Os benefícios da programação com múltiplos threads podem ser divididos em quatro categorias principais: capacidade de resposta, compartilhamento de recursos, economia e escalabilidade. Além disso, aplicações podem alavancar as capacidades de processamento e uma única aplicação pode ser executada diversas vezes para tarefas semelhantes. Podemos concluir que a maioria dos sistemas operacionais multiprocessadores são multithreaded, o que permite facilitar processos desde o gerenciamento de dispositivos, gerenciamento da memória ou a manipulação de tarefas sem que isso cause exaustivas interrupções. Videoaula: Conceitos de múltiplas threads e vantagens Disciplina Administração de Sistemas Operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Nesta videoaula iremos analisar detalhadamente os benefícios de multihread aplicado aos sistemas operacionais, compreendendo as principais categorias que envolvem capacidade de resposta, compartilhamento de recursos, economia e escalabilidade. Dessa forma, poderemos compreender a importância da arquitetura de sistemas modernos e sua funcionalidade baseada em recursos lógicos, processos e tarefas. Desvantagens no uso de múltiplas threads Apesar de os sistemas que trabalham com multihread serem uma evolução em termos de processamento de informações e execução de processos, assim como qualquer tecnologia, também existem desvantagens, e neste caso, a principaldelas ao executar vários threads de forma simultânea está ligada à complexidade do ambiente. Sendo assim, existe um receio sobre o fato de os threads acessando os recursos ao mesmo tempo causarem corrompimento nos Disciplina Administração de Sistemas Operacionais dados, ocasionados pela sua interação. É importante lembrar que os threads estão relacionados com processos e qualquer ação que envolva a sincronização incorreta, pode causar problemas relacionadas com a prioridade das tarefas. Ao dividir um programa em vários processos, os threads podem ter sua funcionalidade caracterizada por vantagens e desvantagens atribuídas à forma como são aplicadas ao sistema operacional, justamente pela interação entre eles e recursos necessários. Na Figura 3, podemos notar como um processo pode ser executado com três threads compartilhando o mesmo ambiente de compartilhamento. Figura 3 | Compartilhamento entre threads - Fonte: adaptada de Machado e Maia ([2014, p. 3]). Apesar de trazer diversos benefícios relacionados com o processo de desenvolvimento mais fácil, criação de programas em módulos e testes de ambiente, o trabalho multihread se torna mais complicado. É necessário analisar a execução multithread, pois algumas outras desvantagens podem ser consideradas, como o uso de um ambiente multithread que pode causar interferência entre threads que compartilham recursos de hardware entre si, em casos em que a utilização desses recursos sobrecarregue a capacidade. Além disso, pode existir uma perda de performance, devido à frequência mais lenta e/ou estágios de pipeline adicionais necessários para acomodar o hardware de comutação de thread, ainda mais considerando que são necessárias múltiplas alterações no sistema operacional. Outra desvantagem é a di�culdade no gerenciamento de concorrência entre os threads em execução no sistema operacional. Para resolver esses problemas podemos de�nir dois tipos de multihread (MARQUES, 2015): Multithread preemptiva: permite o controle dos processos executados por meio do processador, isso evita travamentos aos programas. Esse método aplica uma forma de Disciplina Administração de Sistemas Operacionais interromper o programa temporariamente sem que seja necessário grande esforço, o que permite que seja retomado posteriormente. Multihread cooperativa: permite executar mais de um programa, porém o programa em primeiro plano controla a capacidade de processamento. Quando se busca desempenho e e�ciência, o uso de multihread é o melhor caminho, principalmente quando se trata de informações em tempo real: jogos on-line, comunicação síncrona, execução de áudio e vídeo ao mesmo tempo. Essas atividades com o uso de um único thread seriam inviáveis por exigir que recursos sejam executados simultaneamente. No entanto, Ribeiro (2012) a�rma que diferente do que ocorre em um ambiente single thread, é necessário tratar de múltiplas variáveis e ter o conhecimento necessário para garantir um bom resultado na execução de processos. A comunicação entre tarefas é simpli�cada quando existe implementação baseada em múltiplas threads, ainda mais considerando que as tarefas compartilham o espaço de endereçamento de memória e caracterizam um processo como um todo que engloba os threads, eliminando a necessidade de restrições ou gerando problemas que possam in�uenciar negativamente na comunicação entre processos providos pelos sistemas operacionais. São poucas as desvantagens que podem ser atribuídas ao uso de multihread, porém é necessário ter cuidado na forma como o sistema é executado, mantendo atenção a qualquer alerta de problemas relacionados à sua funcionalidade. Videoaula: Desvantagens no uso de múltiplas threads Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Nesta videoaula iremos ir mais afundo no conceito de threads e conhecer os conceitos que envolvem outros modelos de execução: SuperThreading e Hyper-threading. Iremos caracterizar cada uma das tecnologias, comparando com o Multithreading em sistemas operacionais, e também como o Windows representa o Hyper-threading em sua arquitetura de funcionamento. Estudo de caso Disciplina Administração de Sistemas Operacionais Atualmente a maioria dos processos são automatizados e a tecnologia permite as organizações, agilizar e automatizar os serviços, diversas tarefas precisam ser executadas para garantir as funcionalidades do sistema e suportar as dezenas de aplicações compatíveis com o sistema. Os usuários geralmente não possuem conhecimento na estrutura do sistema operacional, porém alimentam a necessidades de consumir os recursos de hardware oferecidos para processar informações. Podemos chamar um pequeno programa de thread, mas somente a execução de um thread não é necessária para atender as necessidades atuais que envolvem a utilização de um sistema operacional. Cada thread que trabalha como um subsistema e permite segmentar diversas tarefas dentro de um mesmo processo, utilizando não somente o processamento em comum, mas também os recursos de memória. Para aplicar o conhecimento adquirido nesta aula analise o seguinte cenário. Você é um desenvolvedor contratado por uma grande empresa de tecnologia e está criando uma aplicação de comunicação interna que será executada em sistemas operacionais Microsoft Windows, essa aplicação precisa atender a algumas necessidades quando for utilizada pelos usuários, que envolve as seguintes tarefas: Capturar as mensagens enviadas por todos os usuários do setor administrativo de forma simultânea, sem perder ou corromper qualquer informação e retransmiti-las em tempo real para os demais usuários que compartilham informações. Para isso, cada usuário possui a aplicação instalada em seu computador e precisa acompanhar a comunicação com alto desempenho. Entre essas mensagens, são recebidos imagens e vídeos que necessitam ser carregados em segundo plano e carregados automaticamente. O aplicativo deve permitir que sejam enviados áudios e que os usuários possam também realizar ligações e chamadas de voz por meio do Disciplina Administração de Sistemas Operacionais aplicativo. Além disso, qualquer outra aplicação que esteja sendo executada no sistema não deve interferir na execução dessas tarefas. Para resolver esta tarefa, descreva como um ambiente multihread pode garantir que todas essas funcionalidades sejam atendidas e discorra, em um texto simples, sobre como estes processos poderiam ser prejudicados em um ambiente em que um único thread fosse executada por vez. Resolução do estudo de caso Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Em um sistema operacional Windows, as versões modernas carregam de forma nativa as funções multihread, e por isso um sistema de tratamento de mensagens que precisa executar diversos threads em um mesmo processo, irá funcionar de forma e�ciente. Ao utilizar o aplicativo, será o usuário capaz de capturar e�cientemente uma série de mensagens de forma simultânea, mesmo que isso ocorra em conversas diferentes representando múltiplas threads. Mesmo que o usuário esteja executando no mesmo sistema, outros processos pesados, as mensagens não serão perdidas considerando que o processamento de captura e processamentos paralelos estarão segmentados em threads diferentes. Em sistemas single thread, ocorreriam travamentos nos recebimentos de mensagens e o usuário não seria capaz de receber uma mensagem e enviar um áudio simultaneamente, uma vez que seria necessário aguardar uma tarefa ser �nalizada e liberar recursos para que o processo pudesse conduzir novas instruções. Saiba mais Disciplina Administração de Sistemas Operacionais NI.COM. Diferenças entre multithreading e multitasking para programadores.2020. Disponível em: https://www.ni.com/pt-br/support/documentation/supplemental/07/differences-between- multithreading-and-multitasking-for-programm.html. Acesso em: 2 nov. 2021. O artigo traz uma abordagem sobre as diferenças de multithreading e multitasking, para que possamos compreender a relação do processamento que atende o sistema operacional através de um ou mais núcleos e a forma como as tarefas são executadas de forma simultânea por meio do gerenciamento dos recursos de hardware. BALTAR. Núcleos x Threads – Entenda as diferenças. Disponível em: https://www.youtube.com/watch?v=oiJvAPdFnnA. Acesso em: 3 nov. 2021. Assista o vídeo que esclarece os conceitos de núcleos e threads à nível de sistemas operacionais. Apresentando conceitos sobre os componentes e recursos utilizados para o processamento de informações. _______ https://www.ni.com/pt-br/support/documentation/supplemental/07/differences-between-multithreading-and-multitasking-for-programm.html https://www.ni.com/pt-br/support/documentation/supplemental/07/differences-between-multithreading-and-multitasking-for-programm.html https://www.youtube.com/watch?v=oiJvAPdFnnA Disciplina Administração de Sistemas Operacionais Figura | Modelos de multithreading - Fonte: adaptada de Jandl Júnior (2004). Referências Disciplina Administração de Sistemas Operacionais ABUALROB, M. Throughput vs turnaround time vs waiting time vs response time. 8 Bit Avenue, [s. d.]. Disponível em: https://www.8bitavenue.com/throughput-vs-turnaround-time-vs-waiting-time- vs-response-time. Acesso em: 4. fev. 2022. BILL. Threads e threading. 2021. Disponível em: https://docs.microsoft.com/pt- br/dotnet/standard/threading/threads-and-threading. Acesso em: 2 nov. 2021. JANDL JÚNIOR, P. Notas sobre sistemas operacionais. 2004. Disponível em: https://docente.ifrn.edu.br/rodrigotertulino/livros/notas-sobre-sistemas-operacionais. Acesso em: 2 nov. 2021. MACHADO, F. B.; MAIA, L. P. Arquitetura de Sistemas Operacionais. Complementado por Sidney Lucena. UniRio, [2014]. Disponível em: https://slideplayer.com.br/slide/345667. Acesso em: 4. fev. 2022. MARQUES, V. Tipos de sistemas operativos. 2015. Disponível em: https://vascomarquesfcp.wixsite.com/tipos-de-so/blank-cjg9. Acesso em: 3 nov. 2021. RIBEIRO, L. Programação assíncrona (multithreading) em .NET com C#. 2012. Disponível em: https://www.devmedia.com.br/programacao-assincrona-multithreading-em-net-com- csharp/23357. Acesso em: 3 nov. 2021. SCHEFFER, R. Uma visão sobre Threads. Campo Dig., Campo Mourão, v. 2, n. 1,p. 7-12, jan/jun. 2007. Disponível em: https://revista2.grupointegrado.br/revista/index.php/campodigital/article/download/311/145. Acesso em: 2 nov. 2021. SILBERSHATZ, A.; GALVIN, P. B., GAGNE, G. Fundamentos de sistemas operacionais. Rio de janeiro: LCT. 9. ed., 2013. Aula 3 Funcionalidade de processos e theads Introdução da aula https://www.8bitavenue.com/throughput-vs-turnaround-time-vs-waiting-time-vs-response-time https://www.8bitavenue.com/throughput-vs-turnaround-time-vs-waiting-time-vs-response-time https://docs.microsoft.com/pt-br/dotnet/standard/threading/threads-and-threading https://docs.microsoft.com/pt-br/dotnet/standard/threading/threads-and-threading https://docente.ifrn.edu.br/rodrigotertulino/livros/notas-sobre-sistemas-operacionais https://slideplayer.com.br/slide/345667 https://vascomarquesfcp.wixsite.com/tipos-de-so/blank-cjg9 https://www.devmedia.com.br/programacao-assincrona-multithreading-em-net-com-csharp/23357 https://www.devmedia.com.br/programacao-assincrona-multithreading-em-net-com-csharp/23357 https://revista2.grupointegrado.br/revista/index.php/campodigital/article/download/311/145 Disciplina Administração de Sistemas Operacionais Olá, estudante! Uma das formas de compreendermos o funcionamento de uma thread é exercer a prática da análise inicial de um processo. Os sistemas, em sua maioria, acabam baseando-se em computadores que disponibilizam somente um processador, o qual realiza diversas atividades de forma simultânea, ou seja, diferentes processos compartilham o uso da CPU, levando a um tempo extensivo para execução. Sendo assim, ao longo desta aula, debateremos sobre os estados de threads, a comunicação entre processos em sistemas operacionais Linux e o modelo de implementação de threads. É muito importante a sua concentração neste momento de autoestudo para que, juntos, possamos atingir os principais objetivos da disciplina. Bons estudos! Estados de threads Disciplina Administração de Sistemas Operacionais Quando um processo é iniciado, observa-se o seu alto custo naquilo que se refere à utilização de memória e comportamento. Além disso, o mecanismo de troca de mensagens caracteriza-se por ser mais lento e com elevado nível de complexidade em comparação a um único programa que acessa uma base de dados própria. É importante mencionar que uma possível solução a ser adotada está relacionada ao uso das threads (linhas de execução). Por de�nição, thread é um subprocesso inerente a um processo, que possibilita dividir a sua área de dados com o programa ou até mesmo threads. O começo de uma thread apresenta uma velocidade superior do que um processo, além do fato de haver o acesso à sua área, que atua como um programa único. A implementação das threads na Java Virtual Machine (JVM), por exemplo, segue duas abordagens básicas (Figura 1): Disciplina Administração de Sistemas Operacionais Figura 1 | Implementação de threads - Fonte: elaborada pelo autor. Vale ressaltar que as threads formadas por mecanismos nativos do Sistema Operacional caracterizam-se por sua maior velocidade. Por sua vez, a implementação do JVM apresenta uma independência completa da plataforma. Em ambas as situações, a implementação ocorre por meio do uso de uma parte do tempo. A Figura 2, a seguir, apresenta um paralelismo virtual, que simboliza a execução das três threads. Disciplina Administração de Sistemas Operacionais Figura 2 | Paralelismo virtual - Fonte: Jeveaux [s. p., s. d.]. De acordo com Silberschatz, Galvin e Gagne (2008, p. 105), ao observarmos a execução de um thread, é preciso levar em consideração os seus estados, conforme se observa na Figura 3, a seguir: Disciplina Administração de Sistemas Operacionais Figura 3 | Estados de uma thread - Fonte: Jeveaux [s. p., s. d.]. Ao ser criada, a thread está inserida em seu estado novo: isto indica quando a área é alocada para ela por meio do operador new. No momento em que é desenvolvida, a thread passa a ser registrada em uma JVM, para que ocorra a sua execução. Quando ativada, a thread se encontra no estado executável. Vale mencionar que o método start() origina o processo de ativação. A JVM ou o S.O. determinam o tempo de sua execução, portanto, é válido frisar que um thread executável não está, necessariamente, sendo executada. A desativação indica que a thread está em estado bloqueado. Para iniciar o processo de desativação de um thread, é preciso que uma das quatro operações (Figura 4) a seguir ocorra efetivamente: Disciplina Administração de Sistemas Operacionais Figura 4 | Quatro operações - Fonte: elaborada pelo autor. O estado bloqueado pode retornar ao estado executável, sendo preciso que uma das operações a seguir aconteça em oposição a algumas atividades observadas na Figura 4, como: O retorno após o tempo especi�cado, caso a thread esteja adormecida, por exemplo. O retorno por meio do método resume (), na hipótese de haver suspensão da thread. A volta através do método notify (), caso a thread se encontre em estado de espera. A volta depois da conclusão da operação de I/O. É importante observar que a thread estará inserida em estado encerrado quando a sua execução também terminar. Certamente, isto ocorre graças ao encerramento do método run(), ou por conta da chamada explícita do método stop(). Sendo assim, como você pode notar, existe uma maneira de entender e analisar o funcionamento de uma thread, que é realizar a prática da avaliação de um processo no seu início. Em sua maioria, os sistemaspautam-se nos computadores, que disponibilizam apenas um processador, o qual executa inúmeras atividades de forma simultânea. Videoaula: Estados de threads Este conteúdo é um vídeo! Disciplina Administração de Sistemas Operacionais Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Abordaremos quais são os aspectos mais relevantes dos Estados de Threads, tratando dos seus preceitos fundamentais. Trataremos da inserção de uma thread por meio de uma programação, observando as classes para a sua implementação e discutindo os métodos e a melhor utilização das threads ao longo da sua execução. Comunicação entre processos em Sistemas Operacionais Linux Quando observamos um sistema operacional, é preciso visualizar a comunicação existente entre os processos. Tratando especi�camente do Sistema Linux, devemos observar que o uso das técnicas e dos métodos disponibilizados pela comunicação entre processos, ou o inter-process communication (IPC), atende à necessidade existente de troca das informações dos processos que são executados pelos sistemas operacionais. De acordo com Alves (2008, p. 4), a ideia de comunicação de processos não se limita ao meio de comunicação do sistema operacional ou até mesmo do próprio computador; isto se justi�ca pelo fato de a origem e a destinação da comunicação estarem separadas por distâncias quilométricas, ligadas somente por meio de redes. Determinados métodos não possibilitam esta Disciplina Administração de Sistemas Operacionais troca de informações, usando somente as redes, pois, neste caso, o escopo de comunicação local acaba sendo aceitável. A comunicação entre processos está condicionada ao uso adequado dos comandos pertencentes ao Sistema Linux. Um destes comandos é o top, que se caracteriza por apresentar os processos em execução no sistema, além de ser um instrumento relevante direcionado para um administrador do sistema. É um comando muito adotado para estabelecer um monitoramento da carga do sistema, além de ser interativo, possibilitando que diversos comandos estejam disponíveis quando ele estiver em execução. Por sua vez, o comando ps(), em Linux, possibilita adquirir informações referentes ao estado dos processos que estão sendo realizados no momento, de modo que tais informações são observadas na saída padrão do sistema. Trata-se de um mecanismo importante, destinado ao administrador do sistema, que, com ele, pode adquirir uma gama de informações para entender o que está acontecendo com a máquina em um determinado período. Dentro deste contexto, podemos entender o conceito de shell, que é o programa que viabiliza, em um modo texto, a interação do usuário com o sistema. Há diversos modelos de shell, cujas funcionalidades podem ser observadas no modelo a seguir: Figura 5 | Modelos de Shell - Fonte: elaborada pelo autor. O modelo Bourne shell (sh) é o mais antigo, sendo encontrado em, praticamente, todos os sistemas, devido à sua procura nas mais variadas operações administrativas. O C shell (csh) caracteriza-se por apresentar uma sintaxe mais simplista e facilitada. É considerado como o shell default do sistema Solaris. Disciplina Administração de Sistemas Operacionais O Korn shell (ksh) acaba juntando os aspectos principais dos modelos citados anteriormente. Uma das suas utilizações ocorre em IBM e HP. Já o Bash shell (bash) é uma extensão do sh, sendo usado como padrão nas máquinas Linux. No Shell, os comandos podem ser demonstrados por meio da utilização do método IPC, denominado Pipe. Segundo Alves (2008, p. 9), é um canal que une dois processos dentro das suas extremidades. Tal recurso possibilita que ocorra o tráfego das informações de um processo ao outro, porém, com a condição de fazê-lo somente em um único direcionamento. Os pipes caracterizam-se por possibilitarem que informações sejam remetidas de um processo a outro, assegurando um nível de comunicação mais elevado. É importante frisar que algumas usabilidades estão inseridas na rotina de diversos pro�ssionais que adotam o sistema Linux como padrão. Em outras palavras, é possível veri�car que o caractere pipe (‘’/’’) pode ser visto como um recurso que informa ao shell que um canal de comunicação será estabelecido entre os dois processos (comandos). Videoaula: Comunicação entre processos em Sistemas Operacionais Linux Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Abordaremos quais são os aspectos mais relevantes da comunicação entre processos de Sistemas Operacionais Linux, tratando dos seus preceitos fundamentais. Visualizaremos o IPCDump, que funciona como um rastreador de comunicação entre os processos presentes no Sistema Linux. Serão discutidos os detalhes e os recursos desta importante ferramenta de depuração. Tipos de implementação de threads Disciplina Administração de Sistemas Operacionais O núcleo do sistema operacional tem a função de gerenciar as threads que estão inseridas nos processos estabelecidos no espaço do usuário. Certamente, este gerenciamento pode ser executado de diversas maneiras, de acordo com a implementação de threads adequada. Mas, quais são estas implementações? O primeiro modelo que podemos observar está relacionado ao nível de usuário, ou modelo N:1. Os processos sequenciais eram suportados pelos sistemas operacionais mais antigos, cabendo aos desenvolvedores de aplicações solucionarem estes problemas a partir da construção de bibliotecas, com a função de modi�car e recuperar os registradores de CPU no processo. Tais bibliotecas permitem que diversas threads sejam lançadas por meio de uma aplicação, de acordo com a sua demanda, entretanto, o núcleo realizará o gerenciamento de um �uxo de execução dos processos de forma individualizada. Segundo Maziero (2019, p. 60), esta implementação de threads é chamada de modelo de Threads N:1, já que N threads estarão inseridas em um processo, sendo mapeadas em uma única thread no núcleo, conforme se observa na �gura a seguir: Disciplina Administração de Sistemas Operacionais Figura 6 | Modelo de Threads N:1 - Fonte: Maziero (2019, p. 60). É um modelo muito procurado por conta da leveza e da implementação facilitada. Cabe destacar que o nível de gerenciamento imposto ao núcleo é limitado e independe da quantidade de threads dentro da aplicação, já que o núcleo visualiza somente uma thread. Certamente, isto viabiliza o desenvolvimento de aplicações que demandam uma quantidade maior de threads, como os grandes sistemas, por exemplo. Por sua vez, o modelo de Threads N:1 apresenta problemas, que podem ser visualizados na Figura 7, a seguir: Disciplina Administração de Sistemas Operacionais Figura 7 | Modelo de Threads N:1 - Fonte: Maziero (2019, p. 60). O segundo modelo que podemos observar está relacionado ao nível de kernel, ou modelo 1:1. De acordo com Maziero (2019, p. 60), a cada thread de usuário pode ser associada uma thread correspondente no núcleo, o que acaba descartando a necessidade de bibliotecas de threads. Tal implementação é chamada de Modelo de Threads 1:1 (conforme se observa na Figura 8), muito presente em sistemas operacionais como o Windows e a maioria dos UNIXes. Disciplina Administração de Sistemas Operacionais Figura 8 | Modelo de Threads 1:1 - Fonte: Maziero (2019, p. 60). Uma das vantagens deste o modelo está na resolução de problemas: se, porventura, uma thread de usuário demandar uma operação bloqueante, será suspensa apenas sua thread de núcleo correspondente, não impactando as demais threads do processo. Trata-se de um modelo adaptado para situações mais usuais, porém, é pouco escalável, pois o desenvolvimento de várias threads impossibilita aplicações multitarefas. Por �m, chegamos ao modelo N:M, que se trata de um modelo híbrido adotado para aresolução das questões que envolvem a escalabilidade da abordagem 1:1, agregando características dos modelos anteriores. De acordo com Maziero (2019, p. 61), a biblioteca gerencia uma série de N threads de usuário, que é mapeada em M < N threads no núcleo, conforme pode ser observado na Figura 9 a seguir: Disciplina Administração de Sistemas Operacionais Figura 9 | Modelo de Threads N:M - Fonte: Maziero (2019, p. 61). Você vai notar, caro estudante, que este modelo consegue aliar as vantagens de uma interatividade mais elevada do modelo 1:1 ao nível de escalabilidade maior do modelo N:1. Por sua vez, a gerência das threads, com seu nível elevado de complexidade na implementação e maior custo, quando comparados ao modelo 1:1, pode ser vista como uma das desvantagens deste modelo. Videoaula: Tipos de implementação de threads Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Abordaremos quais são os aspectos mais relevantes aos tipos de implementação das threads, tratando dos seus preceitos fundamentais. Visualizaremos, também, um exemplo de como a implementação de uma thread ocorre no Java, ressaltando quais as suas operações principais, além de enfatizar quais são os processos de criação e ativação. Disciplina Administração de Sistemas Operacionais Estudo de caso Melhorando a comunicação dos processos Imagine uma empresa do ramo de tecnologia que oferta serviços referentes à comunicação dos processos das pequenas empresas clientes que atuam no setor. Nessa empresa, o Linux foi adotado como o sistema operacional principal e cabe a você, na condição de consultor, a função de observar o uso adequado das técnicas e dos métodos de comunicação. Certo dia, uma empresa cliente resolve solicitar uma consultoria, pois necessita solucionar uma questão crucial: ela deseja estabelecer um padrão de comunicação entre os seus processos, entretanto, tem di�culdade de inserir os comandos adequados. Ao realizar uma análise inicial, você se depara com algumas questões fundamentais. A primeira observação está no fato de que o sistema adotado pelo cliente precisa de comandos que auxiliem o administrador do sistema e que analisem os estados dos processos. O segundo aspecto visualizado aponta para a inexistência de um método capaz de remeter informações de um processo para o outro, de maneira e�caz. Sendo assim, indique quais os comandos adequados para atender às necessidades do sistema da empresa cliente e veri�que a possibilidade de haver algum programa capaz de facilitar a troca de informações entre os processos executados no sistema. Resolução do estudo de caso Disciplina Administração de Sistemas Operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Para a solução deste Estudo de Caso, é preciso considerar duas condições fundamentais: 1. Necessidade de comandos para viabilizar a comunicação dos processos no Linux. 2. Inexistência de métodos capazes de facilitar a troca de informações. O estudo exigiu que você buscasse no conteúdo estudado os instrumentos necessários para a solução destas questões. Solução 1: Você pode adotar um sistema de comunicação entre processos condicionando-o ao uso adequado dos comandos que pertencem ao Sistema Linux. A consultoria pode indicar a introdução do comando “top”, que disponibiliza os processos que estão em execução no sistema, além de ser uma ferramenta importante para o administrador do sistema. Outro comando que pode ser adotado será o “ps()”, que permite a aquisição de informações que tratam do estados em que os processos se encontram no momento. Solução 2: É possível introduzir um método de troca de informações entre os processos por meio da implementação de um programa denominado “shell”, que viabiliza, em um modo texto, a interação do usuário com o sistema. A partir daí, é possível adotar um método denominado “pipes”, permitindo que informações sejam enviadas de um processo a outro, além de garantir um nível de comunicação mais elevado. Saiba mais Disciplina Administração de Sistemas Operacionais Normalmente, os sistemas operacionais mais tradicionais caracterizam-se por processos que apresentam, em um espaço de endereçamento, uma única thread utilizada no controle. Dentro deste contexto, é adequado se obter diversas threads de controle inseridas no mesmo espaço de endereçamento; mas, você sabe quais as principais funcionalidades das threads? Para tratar sobre esse assunto, sugerimos a leitura da reportagem O que são Threads e para que servem em um processador?, na qual se debate o conceito referente às linhas de execução, discutindo de que maneira os processadores realizam multitarefas: https://www.techtudo.com.br/noticias/2019/01/o-que-sao-threads-e-para-que-servem-em-um- processador.ghtml. _______ Síntese de Aprendizagem Os Estados de Threads podem ser observados de diversas formas: ao ser criada, a thread está inserida em seu estado novo. Quando for ativada, a thread se encontrará no estado executável. A desativação indica que a thread está em estado bloqueado. É importante observar que a thread estará inserida em estado encerrado quando a sua execução também terminar. A ideia de comunicação de processos não se limita ao meio de comunicação do sistema operacional ou até mesmo do próprio computador: isto se justi�ca pelo fato de a origem e a destinação da comunicação estarem separadas por distâncias quilométricas, ligadas somente por meio de redes. O núcleo do sistema operacional tem a função de gerenciar as threads que estão inseridas nos processos estabelecidos no espaço do usuário. Certamente, este gerenciamento pode ser executado de diversas maneiras, de acordo com a implementação de threads adequada. A �gura a seguir sintetiza os conceitos que foram aprendidos ao longo da aula. https://www.techtudo.com.br/noticias/2019/01/o-que-sao-threads-e-para-que-servem-em-um-processador.ghtml https://www.techtudo.com.br/noticias/2019/01/o-que-sao-threads-e-para-que-servem-em-um-processador.ghtml Disciplina Administração de Sistemas Operacionais Figura | Síntese da aula - Fonte: elaborada pelo autor. Referências Disciplina Administração de Sistemas Operacionais ALVES, M. M. Sockets Linux. Rio de Janeiro: Brasport, 2008. JEVEAUX, P. C. M. Utilizando Threads - parte 1. DevMedia, [s. d.]. Disponível em: https://www.devmedia.com.br/utilizando-threads-parte-1/4459. Acesso em: 20 jan. 2022. MAZIERO, C. A. Sistemas operacionais: conceitos e mecanismos. Curitiba: DINF - UFPR, 2019. SILBERSCHATZ, A.; GALVIN, P.; GAGNE, G. Sistemas Operacionais com Java. 7. ed. Rio de Janeiro: Editora Campus, 2008 Aula 4 Processos na prática Introdução da aula https://www.devmedia.com.br/utilizando-threads-parte-1/4459 Disciplina Administração de Sistemas Operacionais A comunicação entre processos é fundamental dentro de um sistema operacional. Para isto, é necessário o uso de diversos mecanismos de implementação. É comum observar que os dados podem ser compartilhados entre os aplicativos. Sendo assim, ao longo desta aula, debateremos sobre a comunicação realizada entre os processos dentro do Sistema Windows, os mecanismos de IPC adotados e a funcionalidade do gerenciamento de tarefas para solucionar problemas com os processos. É muito importante a sua concentração neste momento de autoestudo para que possamos atingir os principais objetivos da disciplina. Comunicação em processos no sistema Windows (Conceitos Iniciais) Disciplina Administração de Sistemas Operacionais Ao nos depararmos com o Windows, notamos que se trata de um sistema operacional que disponibiliza mecanismos com o objetivo de viabilizar o compartilhamento de dados entre os aplicativos, além da comunicação adotada. De forma coletiva, é possívelveri�car que as atividades habilitadas através destes mecanismos, segundo Alves (2008, p. 3), são chamadas de IPC ou Comunicação entre processos. Quando observamos o IPC, devemos notar que estes mecanismos são inseridos de duas formas distintas e com funcionalidades diferentes: algumas formas de IPC visam facilitar a divisão da mão de obra entre os diversos processos especializados. Por sua vez, existem outros modelos de IPC que buscam simpli�car a divisão da mão de obra entre os computadores inseridos na rede. Geralmente, o IPC categorizado (Figura 1) pode ser adotado como: Disciplina Administração de Sistemas Operacionais Figura 1 | IPC CATEGORIZADO - Fonte: elaborada pelo autor. É importante deixar claro que um servidor pode ser entendido como um aplicativo ou até mesmo um processo que busca responder à demanda do cliente. Já o cliente é visto como um aplicativo ou processo que demanda um serviço proveniente de outro aplicativo ou processo. Aplicativos podem atuar das duas formas, a depender da circunstância apresentada. Mas como é possível observar essa situação do ponto de vista prático? Imagine que uma organização empresarial utilize um aplicativo de processamento de palavras. Este pode atuar de diversas formas, dentre elas, na função de um cliente quando o próprio aplicativo solicita uma tabela sintetizada de custos, que está inserida em um aplicativo de planilha, o qual se encontra na função de servidor. Entretanto, o aplicativo de planilha pode agir como um cliente quando demanda os últimos níveis de inventário pertencentes a um aplicativo de controle de inventário de maneira automatizada. A partir do momento em que o aplicativo extrair vantagens do IPC, é preciso selecionar qual metodologia IPC disponível deverá ser adotada. É possível que um aplicativo adote os mecanismos, desde que ele apresente capacidade de comunicação com os demais aplicativos que se encontram em execução em outros dispositivos (computadores) dentro de uma rede ou existir su�ciência para o aplicativo estabelecer uma comunicação apenas com aplicativos no computador local. Devemos fazer perguntas como: O aplicativo é, de fato, capaz de estabelecer uma comunicação com aplicativos inseridos em outros computadores com sistemas operacionais distintos (como 16 bits Windows ou UNIX)? Disciplina Administração de Sistemas Operacionais O usuário do aplicativo pode selecionar os outros aplicativos com os quais ele estabelece uma comunicação ou pode buscar, de maneira implícita, os seus parceiros de responsabilidade? Cabe ao aplicativo estabelecer um nível de comunicação com diversos aplicativos distintos de forma geral ou seus atributos de comunicação se restringem a uma série limitada de interações com outros aplicativos especí�cos? A performance pode ser considerada como um fator crítico do aplicativo? O aplicativo deve ser GUI ou console? Certamente a resposta para todos estes todos estes questionamentos são essenciais para determinar se um aplicativo consegue ou não se bene�ciar ao utilizar um ou diversos mecanismos de IPC. Videoaula: Comunicação em processos no sistema Windows (Conceitos Iniciais) Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Abordaremos, de forma abrangente, quais são os aspectos considerados mais relevantes da Comunicação entre Processos no Sistema Windows. Trataremos dos seus preceitos fundamentais, visualizaremos como a área de transferência pode ser utilizada para o IPC no sentido de compartilhar dados entre aplicativos e discutiremos o seu melhor formato. Comunicação em processos no sistema Linux Disciplina Administração de Sistemas Operacionais Métodos e técnicas são essenciais para condicionar a troca de informações existente entre os processos que serão executados dentro de um sistema operacional. É importante frisar que a comunicação entre processos não se limita ao meio de comunicação do próprio computador, mas, sim, através do uso de uma rede, por exemplo. Especi�camente tratando do sistema Linux, observaremos um conjunto de métodos que são adotados para viabilizar a comunicação entre processos ou IPC (Inter Process Comunication). Um desses métodos pode ser denominado de Sinais. De acordo com Alves (2008, p. 4), ele é considerado como o mais simplista e primitivo no sentido de permitir que um processo receba uma mensagem. Contudo, o método sinal não envia informações da maneira tradicional, mas como um meio de comunicação de alguma ação direcionada ao processo. Sinais são interruptores de softwares, que, segundo Alves (2008, p. 5), têm a responsabilidade na comunicação ao processador da ocorrência de algum evento, em que o seu trajeto de processamento natural precise ser interrompido devido a alguma necessidade ou problema que venham a acontecer. Vale frisar que há uma série de sinais aos quais é atribuída uma ação padronizada que o processo sofre se este não disponibilizar tratamento quando o evento ocorrer. A �gura a seguir traz um conjunto de ações padrão utilizadas pelo método sinal: Disciplina Administração de Sistemas Operacionais Figura 2 | Ações padronizadas utilizando o método sinal - Fonte: elaborada pelo autor. Outro método muito utilizado no sistema Linux é o Pipe, que, de acordo com Alves (2008, p. 9), pode ser traduzido com um canal capaz de realizar a interligação entre dois processos que se encontram em suas extremidades. Tal recurso possibilita que as informações sejam transportadas de um processo ao outro, mas seguindo um único direcionamento. Os Pipes se diferenciam dos Sinais no sentido de permitir que os dados ou informações sejam remetidas de um processo a outro, assegurando um nível de comunicação mais elevado. Contudo, como ele é aplicado efetivamente dentro do sistema Linux? O caractere pipe (“/”) é utilizado como um instrumento que informa o Shell sobre a necessidade de estabelecer um canal de comunicação entre dois comandos. Cabe ao comando LS, por exemplo, a função de remeter as informações da sua saída padronizada (STDout) até a entrada padrão pertencente ao comando Grep, ou seja, cabe ao comando LS disponibilizar uma listagem e, ao Grep, executar uma busca pela entrada “Meu Arquivo”, retornando o resultado através da saída padronizada. Segundo Alves (2008, p. 10) o método Pipe indica que os processos envolvidos na comunicação precisam estabelecer uma relação entre si, ou seja, uma hierarquização do tipo “pai” e “�lho”. Não há possibilidade de trafegar informações por meio de processos que não estabelecem qualquer relação, pois o método não disponibiliza um endereçamento para que dois processos diferentes e sem qualquer ligação estabeleçam comunicação. A utilização mais rotineira desta técnica está relacionada à comunicação entre processos “pai” que desenvolvem processos “�lho” adotando o sistema FOLK(). O processo será duplicado e dará continuidade ao seu �uxo de execução através do ponto em que a chamada do sistema foi realizada: isso indica que o Pipe criado pelo processo pai também Disciplina Administração de Sistemas Operacionais permanece criado para o processo �lho. Videoaula: Comunicação em processos no sistema Linux Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Abordaremos, de forma abrangente, quais são os aspectos considerados mais relevantes da Comunicação entre Processos no Sistema Linux. Trataremos sobre outros mecanismos de IPC que são suportados por este sistema, visualizaremos especi�camente como o método FIFO auxilia na resolução de limitações observadas no método PIPE em relação à comunicação entre processos. Processos em sistemas operacionais e gerenciamento de tarefas Disciplina Administração de Sistemas Operacionais Todo sistema operacional é composto, dentreoutros componentes, por uma série de processos executados. Certamente, um processo apresenta um conjunto de falhas no momento da execução e precisa de um gerenciamento das suas tarefas. Mas o que é um processo? De acordo com Tanenbaum (2016, p. 60), processo pode ser visto como uma instância de um programa em execução, uma série de informações essenciais para que os programas estabeleçam uma concorrência entre si, além de ser um ambiente onde o programa é executado. É importante citar que, quando um processo é trocado por outro, há uma mudança de contexto, em que cada processo pode se dividir em três partes, conforme se observa na �gura a seguir: Figura 3 | Contexto do processo - Fonte: elaborada pelo autor. O contexto de hardware é uma etapa do processo em que se arquiva o conteúdo dos registradores gerais de uma CPU, além dos seus registradores mais especí�cos. O contexto de software indica as especi�cidades dos recursos disponíveis que serão alocados dentro de um processo. O espaço de endereçamento é a fase do processo que trata da área de memória que ele possui para o arquivamento das instruções e dados direcionados à sua execução. Diante disso, é natural que, em algum momento, o usuário do sistema tenha fechado um programa, solicitado uma nova execução, sem que ele tenha aberto, ou, até mesmo, tenha recebido algum tipo de informação de que uma determinada instância já se encontra em execução. Sendo assim, o que pode ser feito quando esses processos apresentam problemas? É possível resolver essas questões através do Gerenciador de Tarefas e �nalizar o aplicativo em questão. O Gerenciador de Tarefas consegue �nalizar diversas execuções consideradas inúteis, tornando o computador mais célere com menos tarefas simultâneas. Para acessar o Gerenciador de Disciplina Administração de Sistemas Operacionais Tarefas, é preciso combinar Ctrl+Alt+Del. Através de uma janela, é preciso acessar a aba “Processos”, conforme se visualiza na �gura a seguir: Figura 4 | Gerenciador de tarefas do Windows - Fonte: Captura de tela do Gerenciador de Tarefas do Windows. É possível observar que, a princípio, a lista de processos pode não ser muito extensa, pelo fato de que o Gerenciador de Tarefas estabelece uma �ltragem em alguns processos por padrão. Para obter a visualização completa desta relação, é preciso clicar no botão “Mostrar Processos de todos os usuários.” Devemos frisar que o gerenciador de tarefas é formado por um conjunto de guias que facilitam a execução de atividades, conforme se visualiza na �gura a seguir: Disciplina Administração de Sistemas Operacionais Figura 5 | Guias do gerenciamento de tarefas - Fonte: elaborada pelo autor. O Guia Processos demonstra a execução de aplicativos e planos ocorridas no segundo plano; a guia performance demonstra os grá�cos e detalhes das principais medições de desempenho de um computador; a guia referente ao Histórico de Aplicativo demonstra o total de recursos utilizados pelos aplicativos individuais; a guia Inicialização (Startup) altera a funcionalidade da guia startup no MsCon�g. Existem ainda outros guias voltados à resolução de outras questões mais especí�cas, como a guia Usuários, que exibe os processos que estão em execução em cada sessão; o monitor de sistema, que disponibiliza os recursos utilizados pelos componentes principais do sistema. Por �m, podemos visualizar a guia detalhes e serviços, que apresenta informações idênticas àquelas que estão no gerenciador de tarefas antigo. Sendo assim, vemos a importância do gerenciador de tarefas, principalmente na resolução de problemas e na execução de processo. Videoaula: Processos em sistemas operacionais e gerenciamento de tarefas Disciplina Administração de Sistemas Operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Abordaremos os aspectos considerados mais relevantes dos problemas que envolvem processos e a importância do gerenciamento de tarefas. Trataremos sobre seu funcionamento no Windows 10 e o Sistema Linux e visualizaremos, de forma mais especí�ca, quais são os principais aspectos e funcionalidades dentro do Sistema Operacional. Estudo de caso Implantando Guias de Gerenciamento Uma empresa do ramo de tecnologia oferece serviços referentes ao gerenciamento de tarefas no Windows para pequenas empresas clientes que atuam no setor. Diante deste contexto, você, na condição de consultor, tem por função observar o uso adequado das técnicas e dos métodos de gerenciamento. Em determinado dia, uma empresa cliente resolve solicitar uma consultoria, pois necessita solucionar uma questão crucial: veri�car se as guias de Gerenciamento de Tarefas estão Disciplina Administração de Sistemas Operacionais executando as suas atividades de maneira adequada, mas a organização tem di�culdade de inserir essas guias por conta própria. Ao realizar uma análise inicial, você se depara com algumas questões fundamentais. A primeira observação está no fato de que a aba “Processos” se encontra inacessível e sem a listagem básica das atividades que estão sendo executadas. O segundo aspecto é a guia Startup manter a mesma funcionalidade no MsCon�g, sem qualquer tipo de alteração. Sendo assim, indique os comandos necessários para acessar a aba “processos” de forma adequada, veri�que a possibilidade de visualização dos processos em execução e a alteração da guia Startup e estabeleça qual é o procedimento que deve ser realizado. Resolução do estudo de caso Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Para a solução do Estudo de caso, é preciso considerar duas condições fundamentais: 1. Necessidade de comandos para viabilizar a aba “Processos”. 2. Visualizar processos em execução e alterar a Guia “Startup”. O estudo exigiu que você buscasse, no conteúdo estudado, os instrumentos necessários para a solução dessas questões. Solução 1 O Gerenciador de Tarefas tem a capacidade de �nalização em várias execuções vistas como desnecessárias, o que traz maior rapidez ao computador, que opera menos atividades simultâneas. Cabe a você, consultor, acessar o Gerenciador de Tarefas com a combinação das teclas Ctrl+Alt+Del. Uma janela se abrirá. O próximo passo é acessar a aba “Processos”. O consultor notará que, nesta aba, estão dispostas as listas dos processos em execução, mas é possível visualizar que a lista de processos não é muito grande, a priori, pelo fato de o Gerenciador de Tarefas �ltrar determinados processos por um método padronizado. Isso só é possível através do botão “Mostrar Processos de todos os usuários.” Solução 2 As guias do Gerenciamento de tarefas têm, basicamente, duas funcionalidades: veri�car as causas e apresentar soluções. O consultor, do ponto de vista da veri�cação, vai observar o Guia Processos como o meio capaz de apresentar a execução de aplicativos e planos realizados no segundo plano. Para solucionar a questão da alteração de funcionalidade, cabe ao consultor acessar a guia Inicialização (Startup), que tem por �nalidade alterar a funcionalidade da guia startup no MsCon�g. Disciplina Administração de Sistemas Operacionais Saiba mais Normalmente, a comunicação entre processos (IPC) é de�nida como um conjunto de mecanismos que possibilitam a troca entre processos. O IPC, auxilia, por exemplo, o programador na organização de tarefas entre os mais diversos processos. Contudo, você sabe por que a comunicação entre processos é tão importante? Para tratar sobre esse assunto, deixamos a sugestão de assistir à aula Sistemas Operacionais: Comunicação entre processos, na qual será debatido como os processos de fato estabelecem meios de se comunicar e a sequência adequada quando houver interligação entre eles. UNIVESP. Sistemas Operacionais –Aula 08 – Comunicação entre Processos. YouTube, 2017. Disponível em: https://www.youtube.com/watch?v=uPMaNFlBXzI. Acesso em: 27 jan. 2022. _______ Síntese de Aprendizagem Algumas formas de IPC visam facilitar a divisão da mão de obra entre os diversos processos especializados. Por sua vez, existem outros modelos de IPC que buscam simpli�car a divisão da mão de obra entre os computadores inseridos na rede. Um dos pontos fundamentais da comunicação de processos é veri�car quais mecanismos de IPC são suportados pelo sistema Windows. Certamente, existe uma gama de métodos com este objetivo, mas é necessário enfatizar os mais relevantes. o que pode ser feito quando esses processos apresentam problemas? É possível resolver essas questões através do Gerenciador de Tarefas e �nalizar o aplicativo problemático. As �guras a seguir sintetizam os conceitos que foram aprendidos ao longo da Unidade. https://www.youtube.com/watch?v=uPMaNFlBXzI Disciplina Administração de Sistemas Operacionais Figura | Síntese dos conteúdos abordados na aula - Fonte: elaborada pelo autor. Referências Disciplina Administração de Sistemas Operacionais ALVES, M. M. Sockets Linux. Rio de Janeiro: Brasport, 2008 MICROSOFT DOCS. Comunicação entre Processos. Disponível em: https://docs.microsoft.com/pt-br/windows/win32/ipc/interprocess- communications#:~:text=O%20Windows%20sistema%20operacional%20fornece,IPC%20(comuni ca%C3%A7%C3%A3o%20entre%20processos). Acesso em 27 jan. 2022. TANENBAUM, A. S. Sistemas operacionais modernos. 4. ed. São Paulo: Pearson Education do Brasil, 2016. , Unidade 2 Gerenciamento de Arquivos e Sistema de Diretórios Aula 1 Conceitos de gerenciamento de arquivos e sistemas de diretórios Introdução da aula Olá, estudante! https://docs.microsoft.com/pt-br/windows/win32/ipc/interprocess-communications#:~:text=O%20Windows%20sistema%20operacional%20fornece,IPC%20(comunica%C3%A7%C3%A3o%20entre%20processos) https://docs.microsoft.com/pt-br/windows/win32/ipc/interprocess-communications#:~:text=O%20Windows%20sistema%20operacional%20fornece,IPC%20(comunica%C3%A7%C3%A3o%20entre%20processos) https://docs.microsoft.com/pt-br/windows/win32/ipc/interprocess-communications#:~:text=O%20Windows%20sistema%20operacional%20fornece,IPC%20(comunica%C3%A7%C3%A3o%20entre%20processos) Disciplina Administração de Sistemas Operacionais Nesta aula você estudará conceitos muito importantes de gerenciamento de arquivos, funcionalidade dos diretórios em um sistema operacional e também terá a oportunidade de conhecer a estrutura destes mesmos arquivos. É possível que você já saiba a função dos Sistemas Operacionais (SO), mas caso não se lembre, uma das principais funções é administrar todos os processos de um sistema, se os dados ou arquivos gerados serão gravados, se terão permissão de leitura e modi�cação, qual usuário terá acesso a esse arquivo ou diretório, etc. Esse método organizacional é chamado de gerenciamento de arquivos e sua importância é ímpar para a boa estruturação e funcionamento dos diretórios e arquivos do sistema. As funções do gerenciador de arquivos não param por aqui, você pode imaginar o que seria da tecnologia atual sem este sistema ou sem pro�ssionais capacitados para utilizá-los? Bons estudos! Gerenciamento de arquivos, diretórios e suas funcionalidades Você tem ideia de quanta informação você sozinho gerou hoje? É sabido que a quantidade de informação gerada na atualidade é enorme. Segundo a revista Exame em seis segundos são gerados 9,1 mil terabytes de dados no mundo (EXAME, 2021). Como organizar toda essa informação e utilizá-la da melhor maneira possível é uma grande incógnita e um dos pontos mais estudados no nosso tempo. Naturalmente essas informações geradas não são mais guardadas anotadas em cadernetas de papel, são, pelo contrário, agrupadas de maneira lógica e relacionadas entre si, posteriormente armazenadas digitalmente e denominadas de arquivo (MAZIERO, 2019). Disciplina Administração de Sistemas Operacionais Assim sendo, dizemos que um arquivo é uma repartição de armazenamento de dados organizados e agrupados logicamente, que podem ser trabalhados, nomeados de acordo com as especi�cações de cada sistema operacional, lidos, armazenados, gravados e apagados, podendo ir desde um pequeno escrito com poucos bits, programas e/ou códigos executáveis, softwares, músicas, até a extensas gravações de mídia com centenas de bytes. Cada arquivo é caracterizado por um nome e pela extensão do arquivo. Extensão nada mais é que a designação do formato do arquivo. Por exemplo: Um arquivo salvo no programa Power Point possui a extensão .ppt, e na Figura 1 e 2 a seguir você pode ver que foi iniciada uma apresentação chamada Apresentação1.ppt. Figura 1 | Apresentação inicial - Fonte: captura de tela do Power Point Disciplina Administração de Sistemas Operacionais Figura 2 | Propriedades - Fonte: captura de tela do Power Point. Da mesma forma um arquivo salvo no PDF (Portable Document Format) terá sua extensão .pdf. Um sistema de armazenamento pode possuir centenas de milhares desses arquivos gerados e gravados por seus usuários, para possibilitar a organização mais fácil e célere destes, os arquivos correlacionados são sincronizados e agrupados de maneira lógica em disposições denominadas DIRETÓRIOS, ou também chamado de PASTAS. Esses mesmos diretórios também são agrupados em diretórios e arquivos, criando assim uma organização hierárquica, que parte de um diretório inicial: no sistema operacional Windows os diretórios são divididos em drives e cada drive tem seu diretório raiz. Já no sistema operacional Linux todos os diretórios partem de um primeiro diretório, chamado diretório raiz (DIOLINUX, 2011). A organização de todos esses arquivos e diretórios (pastas) é realizada por meio do gerenciador de arquivos. Na Figura 3 podemos ver um exemplo de um gerenciador de arquivos do Windows. Disciplina Administração de Sistemas Operacionais Figura 3 | Gerenciador de arquivos Windows - Fonte: Flickr. O gerenciador de arquivos ou gestor de �cheiros é composto por softwares e são utilizados para gerenciar e auxiliar na gestão eletrônica dos arquivos e diretórios em todos os sistemas operacionais. Nos sistemas operacionais o gerenciamento de arquivos é de extrema importância, sua função engloba toda a organização de arquivos, pastas e diretórios, dentre suas utilidades, a criação, exclusão e manipulação de arquivos, mapeamento da utilização da memória do computador pelo arquivo, controlar os espaços alocados pelos arquivos e diretórios, entre outras. Videoaula: Gerenciamento de arquivos, diretórios e suas funcionalidades Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Serão abordados outros formatos de arquivos de extensão em que uma extensão é a designação do formato do arquivo, e está relacionada com a forma que o arquivo será armazenado no Disciplina Administração de Sistemas Operacionais computador, como ele será lido e qual software será utilizado para tal acontecimento. No vídeo você verá sobre os formatos: txt, doc, jpeg, png. Mp3 Diretórios e arquivos do Linux Vamos abordar sobre o sistema Linux. Caso você não saiba muito sobre ele, o Linux é um Sistema Operacional de software, contou com a colaboração de milhares de desenvolvedores. Naturalmente para aqueles que utilizam o Sistema Operacional Windows, à primeira vista o uso do Linux pode causar estranhamento, e alguns diferenças são bem visíveis, como é o caso dos diretórios. No Windows, só para você se recordar, os diretórios são divididos em drivers, e em cada driver existe o diretório raiz, aquele principal de onde dispõem todos os outros, lembra? Já no Linux existe o diretório raiz (diretório root). Todos os demais diretórios estarão neste diretório raiz, da mesma forma que todos os dados do sistema. O diretório raiz no Linux é de�nidopela barra direta “/”. Para acessar o root do terminal, basta digitar cd /. O sistema hierárquico utilizado por este SO é o Filesystem Hierarchy Standard (FHS) – padrão para sistemas de arquivos hierárquicos, nada mais são que boas práticas (porque não são obrigatórias, mas muito respeitadas pela comunidade) para organizar os arquivos no sistema (RODRIGUES, 2019). Existem alguns diretórios muito importantes no Linux que se encontram dentro do root, tal como: Diretório /bin Este diretório pode ser manipulado por qualquer usuário do sistema, no qual se encontram arquivos executáveis, outros comandos importantes do sistema e programas já executados. Disciplina Administração de Sistemas Operacionais Uma variação da /bin é a /sbin. Porém, neste caso, somente um superusuário tem acesso a esse diretório e pode rodar certos programas, o superusuário é entendido como o usuário root do sistema (RODRIGUES, 2019). Esses super programas que só podem ser rodados pelo super usuários são programas como por exemplo o mkfs, que é um comando utilizado para formatar um dispositivo de armazenamento, também utilitários para administração do sistema, entre outros. Diretório/home É onde �cam os arquivos especí�cos do usuário, os arquivos pessoas, vídeos, imagens, documentos. Contém pastas de todos os usuários criados no sistema. Toda vez que um novo utilizador for adicionado ao sistema é criado um arquivo para este usuário no diretório /home. Por exemplo, se você for adicionado a um SO Linux, será criado um arquivo para você, onde serão armazenados todos os seus �cheiros de dados e con�gurações especí�cas (LEAL, 2021). /home/aluno Diretório /boot Neste diretório é onde se encontram os arquivos necessários para iniciar o sistema. Para acessar este diretório no terminal basta digitar cd/boot/ (LEAL, 2021). Diretório /etc No diretório /etc estão armazenados os arquivos de con�guração do sistema como um todo. Os especí�cos de cada usuário se encontram no diretório /home. Videoaula: Diretórios e arquivos do Linux Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Neste vídeo você verá alguns dos principais comandos do Linux. cd #Muda o diretório, é utilizado para navegar nas pastas. Ex.: cd /home/aluno/desktop - Acessa a área de trabalho do aluno da disciplina. pwd #mostra o caminho da pasta onde o usuário se encontra. who #mostra na tela o usuário que está navegando. Arquivos e diretórios no Windows Disciplina Administração de Sistemas Operacionais Antes da interface grá�ca surgir, os comandos eram introduzidos pelo teclado no computador no shell do sistema, aquela tela preta. Hoje em dia, mesmo havendo uma interface grá�ca muito interessante e dinâmica ainda é possível acessar o mesmo sistema shell, prompt de comando, nos sistemas operacionais, utilizando os mesmos comandos de diretório e con�guração de arquivos anteriormente utilizados, basta digitar cmd na pesquisa que a prompt de comando irá abrir. Como vimos anteriormente, os arquivos e diretórios são nomeados, e essa nomeação ocorre para facilitar o gerenciamento e a organização dos arquivos, para o próprio usuário os encontrar quando necessário, entre outras utilizações. A nomeação é composta por nome do arquivo somado ao nome do diretório e diz que o arquivo possui nome completo, essa nomeação completa é importante principalmente para a organização hierárquica do sistema, é possível existirem vários arquivos com o mesmo nome em um sistema computacional, mas cada um em um diretório distinto (SCHNEIDER, 2013). No Windows existem alguns caracteres especiais que não podem ser utilizados para nomear arquivos, principalmente por serem utilizados para realizar a junção do nome comum do arquivo ao diretório (SCHNEIDER, 2013). No Sistema Operacional Windows é utilizada a barra invertida “\” para separar o nome comum do nome do diretório. Por exemplo: C:\ users\professora\AuladeAdministracaodeSO\Diretorios1 Podemos entender que o arquivo anteriormente citado é um arquivo chamado Diretorios1 que se encontra no diretório AuladeAdministracaodeSO que se encontra no diretório professora que se encontra no diretório user que está no driver raiz C. Alguns diretórios fazem parte do computador e não devem ser modi�cados, como é o caso do diretório C:\windows\system32. Disciplina Administração de Sistemas Operacionais Neste diretório se encontra uma parcela signi�cativa de componentes do Sistema Operacional que caso sejam alterados podem prejudicar fortemente o funcionamento da máquina, como no caso dos executáveis que se encontram instalados neste diretório. Alguns deles estão diretamente relacionados à comunicação do usuário com drivers de hardwares e a utilitários do próprio sistema. Em caso de exclusão desses executáveis o computador poderia �car até mesmo inoperante (POZZEBOM, 2014). No diretório c:\windows\temp �cam os arquivos temporários (conhecido como “foo �les”) que são criados pelo Sistema Operacional durante a sua execução ou conclusão de atividade, podem �car acumulados milhares de bytes que foram anteriormente utilizados, mas estão sem serventia no momento. O usuário normalmente não interage com esta pasta, mas pode apagar seu conteúdo sem prejuízo, liberando espaço no disco rígido da máquina (SCOLA, 2018). Videoaula: Arquivos e diretórios no Windows Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Neste vídeo será abordado os nomes possíveis das pastas, arquivos e diretórios no Windows. Existem alguns caracteres que não podem ser utilizados. São eles: ´ “ “ / | \ * : ? Uma dica muito interessante para você não esquecer quais são esses caracteres proibidos é lembrar da frase: o natal cairá no S Á B A D O ? Bons estudos! Estudo de caso Disciplina Administração de Sistemas Operacionais Recentemente você foi contratado para trabalhar em uma empresa de tecnologia conceituada no mercado, e, por ser um analista com muito conhecimento e boa vontade, �cou responsável pela recepção dos novos funcionários do setor de Análise de Sistemas Operacionais. Ficou de�nido que você encontrará com os novos funcionários a cada três dias, fará explanações importantes sobre os sistemas operacionais utilizados (Windows e Linux) e tirará eventuais dúvidas dos novatos.Monte apresentações didáticas aos novos funcionários, resumos dos três blocos das aulas em forma de apresentação e também de relatório para ser entregue ao seu superior na empresa. Primeiramente conceitue o gerenciamento de arquivos, a funcionalidade dos diretórios e a estrutura desses componentes em um sistema operacional, utilize essa primeira parte para abrir seu relatório, aproveite também para fazer um breve resumo e uma explicação da funcionalidade prática dos diretórios. Após isso, apresente os principais diretórios e arquivos de con�gurações no Linux e também no Windows. Lembre-se de que a boa condução dessas apresentações fará com que �xe o conhecimento adquirido. Resolução do estudo de caso Disciplina Administração de Sistemas Operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. O primeiro ponto para a realização do estudo de caso é fazer uma breve explanação sobre a diferença entre os arquivos e diretórios. Lembre-se que você é o analista sênior da empresa, o mais experiente na área por isso foi chamado para recepcionar os novos funcionários. Deixe a aula bem didática para seus novos funcionários, e dê vários exemplos para que não restem dúvidas. Para complementar a aula explique sobre os diretórios e arquivos do Windows. Você podeaproveitar o conhecimento adquirido sobre alguns dos diretórios do Windows e acrescente à sua aula desse dia. Não se esqueça de assistir ao vídeo da aula para acrescentar quais são os caracteres que não devem ser utilizados para nomear os arquivos. Os principais comandos no Linux são importantes para programar no shell do SO Linux. Lembre os novos funcionários que é melhor que eles não se aproximem do diretório system32 se não tiverem certeza de como lidar com este diretório, explique o motivo para este importante conselho. Saiba mais Disciplina Administração de Sistemas Operacionais Olá! Um dos grandes problemas da memória dos nossos computadores e smartphones são os arquivos duplicados. Muitas vezes nós mesmos os salvamos com nomes distintos sem ver que já existia um arquivo com o mesmo conteúdo, ou ainda com as atividades compartilhadas vários usuários com acesso ao mesmo conteúdo, os arquivos são duplicados, triplicados ou mais, não é mesmo? Pensando nisso o Google Drive irá aprimorará seus serviços para evitar redundâncias. Con�ra mais informações no site CanalTech. ALMENARA, I. Google drive quer acabar com arquivos duplicados em suas pastas. 2021. Disponível em: https://canaltech.com.br/apps/google-drive-quer-acabar-com-arquivos- duplicados-em-suas-pastas-203880/. Acesso em: 24 dez. 2021. _______ https://canaltech.com.br/apps/google-drive-quer-acabar-com-arquivos-duplicados-em-suas-pastas-203880/ https://canaltech.com.br/apps/google-drive-quer-acabar-com-arquivos-duplicados-em-suas-pastas-203880/ Disciplina Administração de Sistemas Operacionais Figura 4 | Síntese visual do conteúdo - Fonte: elaborada pela autora. Referências Disciplina Administração de Sistemas Operacionais ALMENARA, I. Google Drive quer acabar com arquivos duplicados em suas pastas. 2021. Disponível em: https://canaltech.com.br/apps/google-drive-quer-acabar-com-arquivos- duplicados-em-suas-pastas-203880/. Acesso em: 24 dez. 2021. DIOLINUX. Entendendo os principais diretórios Linux. 2011. Disponível em: https://diolinux.com.br/sistemas-operacionais/os-diretorios-do-linux.html. Acesso em: 23 dez. 2021. EXAME. Temos mais dados do que nunca. Como usá-los a nosso favor? 2021. Disponível em: https://exame.com/carreira/dados-uso-favor/ Acesso em: 23 dez. 2021. FONSECA, W. As principais extensões de arquivos! 2009. Disponível em: https://www.tecmundo.com.br/internet/1444-as-principais-extensoes-de-arquivos-.htm. Acesso em: 24 dez. 2021. LEAL, W. Linux essencial. 2. ed. Editora. Porto Alegre, 2021. MAZIERO, C. O conceito de arquivo. Sistemas operacionais: conceitos e mecanismos. 2019. Disponível em: http://wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-22.pdf. Acesso em: 23 dez. 2021. POZZEBOM, R. Saiba o que é System 32 e por que nunca devemos removê-la. 2014. Disponível em: https://www.o�cinadanet.com.br/post/12855--saiba-o-que-e-system-32-e-por-que-nunca- devemos-remove-la. Acesso em: 28 dez. 2021. RODRIGUES, E. FHS – Hierarquia e função das pastas no Linux (/sbin, /bin, /usr, /root, etc…). 2019. Disponível em: https://www.gnulinuxbrasil.com.br/2019/09/25/fhs-hierarquia-e-funcao- das-pastas-no-linux-sbin-bin-usr-root-etc/. Acesso em: 24 dez. 2021. SCHNEIDER, B. Arquivos e diretórios. 2013. Disponível em: https://bruno.dac.u�a.br/aulas/arquivos-e-diretorios.html. Acesso em: 1 fev. 2022. SCOLA, Á. Windows 10: apague os arquivos temporários de forma automática todos os dias. 2018. Disponível em: https://olhardigital.com.br/2018/12/27/dicas-e-tutoriais/windows-10- apague-os-arquivos-temporarios-de-forma-automatica-todos-os-dias/. Acesso em: 28 dez. 2021. Aula 2 Gerenciamento de arquivos no Linux Introdução da aula https://canaltech.com.br/apps/google-drive-quer-acabar-com-arquivos-duplicados-em-suas-pastas-203880/ https://canaltech.com.br/apps/google-drive-quer-acabar-com-arquivos-duplicados-em-suas-pastas-203880/ https://diolinux.com.br/sistemas-operacionais/os-diretorios-do-linux.html https://www.tecmundo.com.br/internet/1444-as-principais-extensoes-de-arquivos-.htm http://wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-22.pdf https://www.oficinadanet.com.br/post/12855--saiba-o-que-e-system-32-e-por-que-nunca-devemos-remove-la https://www.oficinadanet.com.br/post/12855--saiba-o-que-e-system-32-e-por-que-nunca-devemos-remove-la https://www.gnulinuxbrasil.com.br/2019/09/25/fhs-hierarquia-e-funcao-das-pastas-no-linux-sbin-bin-usr-root-etc/ https://www.gnulinuxbrasil.com.br/2019/09/25/fhs-hierarquia-e-funcao-das-pastas-no-linux-sbin-bin-usr-root-etc/ https://bruno.dac.ufla.br/aulas/arquivos-e-diretorios.html https://olhardigital.com.br/2018/12/27/dicas-e-tutoriais/windows-10-apague-os-arquivos-temporarios-de-forma-automatica-todos-os-dias/ https://olhardigital.com.br/2018/12/27/dicas-e-tutoriais/windows-10-apague-os-arquivos-temporarios-de-forma-automatica-todos-os-dias/ Disciplina Administração de Sistemas Operacionais Olá, como vai? Nesta aula, você terá maior contato com o Sistema Operacional Linux. Possivelmente, você já tem conhecimento do que são os arquivos e os diretórios, que, em um computador, existem muitos, e que a organização e a lida com essas pastas são de extrema importância para qualquer administrador e/ou usuário. Então, você irá conhecer os principais comandos no terminal para gerenciamento desses arquivos e diretórios, bem como verá os comandos para acessar, alterar, visualizar ou mesmo executar arquivos, desde que possua permissão, claro. Mas a�nal, o que são as permissões? E quanto às permissões especiais, você já ouviu falar? São aquelas que somente o superusuário (root) pode liberar ou bloquear. Diante disso, não se esqueça de se manter sempre atualizado; na área tecnológica, novas informações são geradas a cada segundo. Gerência de arquivos e diretórios no Linux Disciplina Administração de Sistemas Operacionais Caro estudante, quando o assunto é sistemas operacionais, uma das primeiras coisas que vêm à mente é o conceito de pastas e arquivos, a�nal, eles são a base da interação entre os sistemas e o usuário. Nos sistemas Linux, os arquivos são considerados uma sequência de bytes gravados no disco, e cada byte tem seu endereço correspondente ao início ou �m do arquivo agrupado por blocos. Por exemplo: o sistema pode agrupar os bytes em blocos de 512 bytes (SILBERSCHATZ; GALVIN; GAGNE, 2014), mas como os blocos têm um tamanho de�nido e invariável, não é possível que “sobrem” bytes sem ser utilizados. Em um arquivo de 1949 bytes com blocos de 512 bytes, por exemplo, seriam necessários 4 blocos, totalizando 2048 bytes, restando 99 bytes não utilizados, e isso é o que chamamos de fragmentação interna. Outra questão importante em relação à gerência de arquivos diz respeito aos arquivos em sistemas que permitem o compartilhamento, havendo a possibilidade de mais de um usuário acessar o mesmo arquivo ao mesmo tempo, e é por isso que são utilizados os controles de permissão e segurança, mas isso nós veremos mais adiante. Nos casos de compartilhamento de arquivos existem as chamadas semânticas de consistência. Elas ditam quando as alterações em um arquivo devem ser re�etidas para outros usuários. No Linux, há uma semântica que diz que todas as alterações de escrita em um arquivo devem ser re�etidas, imediatamente, para outros usuários que tenham o arquivo aberto ao mesmo tempo (SILBERSCHATZ; GALVIN; GAGNE, 2014). O conceito de arquivos é muito importante, mas outro igualmente importante e diretamente relacionado a ele é o dos diretórios. Talvez, você mesmo, em seu computador ou em serviços de armazenamento em nuvem, tenha centenas ou milhares de arquivos de diversos tipos, somando vários Gigabytes, e isso é muito comum, uma vez que, hoje em dia, a quantidade de informação gerada é imensa. Disciplina Administração de Sistemas Operacionais Organizar vários arquivos pode ser um problema, logo, para isso servem os diretórios, que podem ser de dois tipos: de nível único ou de dois níveis. Nos de nível único, todos os arquivos �cam no mesmo diretório paratodos os usuários, podendo gerar problemas de nomes de arquivos, principalmente quando estes são abundantes (LEITE, 2016), por isso, também existe a estrutura de diretórios de dois níveis, em que cada usuário tem seu próprio diretório de arquivos. Um usuário no Linux pode usar diversos comandos para manipular arquivos e diretórios por meio do terminal. Geralmente, são utilizados digitando-se o comando seguido do nome do arquivo ou diretório a ser manipulado, sendo possível adicionar �ags ou con�gurações opcionais entre o comando e o nome do alvo. Para os diretórios, existem os seguintes comandos: mkdir: cria um ou mais diretórios. rmdir: deleta um ou mais diretórios. Algumas possíveis �ags são: -f: força a realização da operação sem perguntas de segurança. -R: para recursivo. Aplica a operação ao diretório e ao seu conteúdo (RIBEIRO, 2019). Faz-se importante salientar que existem outros muitos comandos e �ags para manipular arquivos e cujo conhecimento é de extrema importância, e uma das formas mais proveitosas para facilitar a aprendizagem é praticando, então, mãos à obra! Videoaula: Gerência de arquivos e diretórios no Linux Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Neste vídeo, você verá comandos importantes no Linux: cp, rm, touch e mv. Para arquivos, temos: touch: cria arquivos. cp [arquivo] [destino]: O comando cp copia arquivos para outros diretórios ou para outros arquivos. rm: o comando rm deleta arquivos. mv [arquivo] [destino]: o comando mv move arquivos. Disciplina Administração de Sistemas Operacionais Bons estudos! Controle de permissões em arquivos e diretórios no Linux Prezado estudante, nos sistemas operacionais, como em tudo na vida, existem regras ou normas de boas condutas que precisam ser seguidas para o bom funcionamento do sistema. Agora, você verá as permissões no Linux e como elas funcionam. As permissões fazem parte dos sistemas Linux, e sem a sua utilização, a mais simples das atividades — a leitura (visualização de arquivos) — não pode acontecer. Além disso, sem as permissões, não é possível realizar alterações, execuções, listas, diretórios, ter acesso a arquivos ou mesmo listar seu próprio conteúdo (MATHEUS, 2017). De forma geral, entende-se que as permissões são utilizadas para proteger um usuário de outros e vice-versa. No sistema operacional Linux, ao se criar um arquivo ou um diretório, três permissões são concedidas a ele de forma automática e separadas em três: O usuário que criou o arquivo é o usuário dono; ele é quem pode determinar qual usuário tem acesso ao arquivo criado e quais permissões (leitura, escrita e/ou execução) esse usuário possui. O grupo dono do arquivo, composto por outros usuários. Outros usuários que não participam do grupo dono. As permissões concedidas também são três, a saber: Disciplina Administração de Sistemas Operacionais Leitura (r, read): nessa permissão, está liberada a visualização de um arquivo ou diretório. Escrita (w, write): nessa permissão, é possível alterar o que está contido em um arquivo ou diretório. Execução (x, execute): nessa opção, é permitido executar o arquivo ou, ainda, se for um diretório, o mesmo pode ser acessado, bem como os comandos utilizados e executados. Ao digitarmos uma linha de comando (�ag de arquivo ou diretório) com informações sobre um arquivo, temos alguns dados importantes no código que são relacionados às permissões, acompanhe: - rw – r - - - - - 1 Thais ProfessoradeADMdeSO dez 27 21:58 aula.txt Ao analisar a sequência, note que o arquivo “aula.txt” apresenta como permissão a sequência: - rw – r - - - - - Após a sequência, as palavras que aparecem é: “Thais” (que é a usuária dona do arquivo) e “ProfessoradeADMdeSO” (que é o grupo ao qual pertence o arquivo). As permissões disponibilizadas ao usuário dono e ao grupo, conforme vimos anteriormente, são: r: leitura. w: escrita, alteração do arquivo ou do conteúdo do diretório. x: execução. - (hífen): signi�ca que o arquivo em questão é um arquivo comum. Se em vez do “-” aparecer um “d” no começo da sequência, signi�ca que o arquivo também é um diretório. Para que compreenda melhor a linha de comando, vamos dividir em quatro partes as permissões: O primeiro caractere “-” deixa claro que o arquivo se trata de um arquivo regular de texto e não de um diretório, pois, caso fosse um diretório, o caractere seria um “d”. O segundo grupo de caracteres é constituído pelas permissões rw- e indica as permissões o que o usuário dono do arquivo possui. Logo, a usuária “Thais” pode ler (r) e escrever, (w) mas não pode executar o arquivo (-). O terceiro grupo de caracteres se refere ao grupo de usuários que podem ser de�nidos como os alunos da disciplina de ADM de SO, e esses alunos somente podem ler o conteúdo, não podem escrever/alterar nada e nem executar o arquivo, pois a permissão é r- -. Por �m, o último grupo de caracteres indica as permissões dadas aos outros usuários do sistema, aqueles que não fazem parte do grupo do arquivo em questão, e esses usuários, nesse exemplo, não possuem nenhuma permissão, nem mesmo para ler o arquivo ---. Videoaula: Controle de permissões em arquivos e diretórios no Linux Este conteúdo é um vídeo! Disciplina Administração de Sistemas Operacionais Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Uma coisa interessante é que existem certas permissões que só podem ser fornecidas pelo super usuário — o root —, pois ele possui todas as permissões no sistema. Para resolver esse problema, o Linux utiliza as permissões especiais, que são elas: O SUID, o SGID e o sticky bit. Bons estudos! Funcionamento do gerenciador de pacotes no Linux Os pacotes são as peças que formam todas as distribuições Linux e podem conter programas, bibliotecas de sistema ou mesmo coisas como papéis de parede e ícones, alguns programas grandes são divididos em vários pacotes para que você possa instalar apenas as partes que lhe interessam, �cando com um sistema mais enxuto. (MONQUEIRO, 2011, [s. p.]) No Linux, os programas executáveis são compostos por bibliotecas, programas, documentações, linhas de código, traduções, arquivos e tantas outras informações. Dessa forma, é possível Disciplina Administração de Sistemas Operacionais constatar que, para instalar esses programas ou mesmo desinstalá-los, é necessária muita força de vontade, uma vez que se trata de um trabalho oneroso, no entanto, é por esse motivo que os programas são organizados em pacotes. Em palavras similares às do Morimoto, dizemos que os pacotes são arquivos que contêm informações e arquivos binários de execução (PERIN, 2020). Para auxiliar nessas questões do sistema, o gerenciador de pacotes é acionado, e ele nada mais é do que um software do sistema operacional que cuida da instalação, distribuição, atualização e desinstalação de programas disponibilizados no formato de pacote correspondente. Cada uma das cinco principais vertentes de distribuição LINUX (Debian, RedHat, Fedora, CentOS e Suse) possui seu gerenciador de pacotes, e um dos mais conhecidos, talvez por conta da distribuição Linux na qual ele é utilizado (Ubuntu / Debian), é o apt, que signi�ca Advanced Package Tool, sendo o gerenciador de pacotes padrão no Ubuntu versão 16.04 LTS. Com ele, é possível instalar, por meio do terminal, qualquer software presente nos repositórios con�gurados na distribuição Debian ou Ubuntu. O seu uso se dá segundo a seguinte forma: apt opções comando pacote Vamos, agora, ver alguns exemplos práticos de sua utilização. Antes de fazer alguma instalação de pacote ou upgrade, é recomendado rodar o seguinte comando: Apt update: esse comando baixa informações de todas as fontes con�guradas e pacotes. Depois,podemos instalar um novo pacote. Apt install excel: nesse exemplo, estamos instalando o software de edição Excel. Podemos, agora, removê-lo da seguinte maneira. Apt remove excel: dessa forma, será realizada a desinstalação simples do pacote. Para realizar uma remoção total, bem como de todos os seus arquivos extras de con�guração, é necessário usar o purge. Apt purge excel: se eu não sei o nome do pacote que quero instalar, como posso achá-lo? Para isso serve o comando search do apt, que faz uma busca por palavras nos repositórios disponíveis. Apt search áudio: outro comando muito útil é o list. Com ele, são listados todos os pacotes nos repositórios con�gurados. Apt list: antes da instalação de um pacote, é bom saber algumas informações sobre ele, para isso, temos o comando show, que mostra informação de um pacote (PRACIANO, 2016). Apt show excel: esses são alguns dos comandos do gerenciador de pacotes. Você deve ter notado que esse sistema é um meio primordial para a boa utilização, manipulação, instalação, atualização e distribuição dos pacotes. Ainda com os recursos bem utilizados do Apt, é possível gerenciar os pacotes e softwares em sistemas operacionais baseados no Linux. Videoaula: Funcionamento do gerenciador de pacotes no Linux Disciplina Administração de Sistemas Operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Aqui, você verá outras funcionalidades possíveis do comando apt, como o apt autoremove, que tem como função remover, da sua máquina, pacotes de outras bibliotecas instaladas no seu sistema, bem como o apt --purge autoremove. Como você já viu, o apt purge realiza uma limpeza total dos arquivos extras da con�guração; na mesma linha, o purge autoremove remove versões antigas e não utilizadas do kernel. Bons estudos! Estudo de caso Você foi contratado como analista júnior de sistemas operacionais de uma grande rede de mercados, mas nas férias do analista sênior, você acabou assumindo seus encargos e precisou veri�car se os pedidos estavam corretos para serem enviados ao fornecedor no próximo dia. Ao realizar as análises, você percebeu que, no diretório compras, o arquivo com as frutas (frutas.txt) e a quantidade delas que deveria ser comprada não estavam inclusos. Em seguida, ao Disciplina Administração de Sistemas Operacionais tentar copiar o arquivo para o diretório, você notou que não havia permissão para realizar tal feito, logo, diante da situação, notou que era preciso usar as permissões especiais para liberar seu acesso e conseguir fazer a modi�cação necessária no diretório. Ao veri�car os arquivos do computador, encontrou, em um arquivo.txt, senhas que pareciam estar relacionadas ao seu trabalho. O analista sênior, por sua vez, con�rmou que a senha se tratava do superusuário sudo, dessa forma, foi possível realizar a tarefa solicitada. Sendo assim, elabore um plano de ação com os códigos que serão utilizados para se obter a permissão especial e adicionar o arquivo faltante ao diretório necessário. Deixe-o anotado em forma de relatório e entregue ao analista sênior quando retornar das férias, como forma de update para que esse problema não ocorra novamente. Resolução do estudo de caso Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Você está na pasta "mercado", que contém o arquivo frutas.txt e o diretório "compras", e precisa copiar o arquivo frutas.txt para o diretório compras, mas você não tem permissão para acessar e modi�car esse diretório, pois é preciso, em primeiro lugar, mudar a permissão da pasta de destino usando o superusuário, a �m de que todos tenham permissão de escrita na pasta e você possa realizar o que lhe foi pedido. O código de resolução �ca da forma a seguir: sudo chmod a+w compras # a permissão dada é para escrever no diretório. cp frutas.txt /compras # copiando o arquivo frutas.txt para o diretório compras. Saiba mais Disciplina Administração de Sistemas Operacionais A segurança cibernética é um assunto sempre em voga. Para os pro�ssionais da área tecnológica, a quantidade de informação gerada e o armazenamento dela se torna, cada vez mais, o calcanhar de Aquiles. Pensando nisso, o uso das tecnologias de armazenamento na nuvem tem sido mais frequente, mas será que é possível conciliar segurança e trabalho em nuvem? Na reportagem 5 expectativas para o mercado de cibersegurança em 2022, você pode saber mais sobre esse assunto que tanto nos interessa. OLIVEIRA, M. 5 expectativas para o mercado de cibersegurança em 2022. 2021. Disponível em: https://privacytech.com.br/protecao-de-dados/5-expectativas-para-o-mercado-de- ciberseguranca-em-2022,408206.jhtml. Acesso em: 9 fev. 2022. _______ https://privacytech.com.br/protecao-de-dados/5-expectativas-para-o-mercado-de-ciberseguranca-em-2022,408206.jhtml https://privacytech.com.br/protecao-de-dados/5-expectativas-para-o-mercado-de-ciberseguranca-em-2022,408206.jhtml Disciplina Administração de Sistemas Operacionais Fonte: elaborado pela autora. Referências Disciplina Administração de Sistemas Operacionais LEITE, A. Sistemas operacionais: sistema de arquivos. 2016. Disponível em: http://docente.ifsc.edu.br/alex.forghieri/MaterialDidatico/Sistemas%20Operacionais/Material%2 0das%20aulas/06%20-%2024-06-2016/Sistema%20De%20Arquivos.pdf. Acesso em: 9 fev. 2022. MATHEUS, Y. Entendendo as permissões do Linux. 2017. Disponível em: https://www.alura.com.br/artigos/entendendo-as-permissoes-no-linux. Acesso em: 9 fev. 2022. MONQUEIRO, J. C. O que são pacotes, a�nal? 2011. Disponível em: https://www.hardware.com.br/artigos/instalando-aplicativos-linux/pacotes.html. Acesso em: 9 fev. 2022. OLIVEIRA, M. 5 expectativas para o mercado de cibersegurança em 2022. 2021. Disponível em: https://privacytech.com.br/protecao-de-dados/5-expectativas-para-o-mercado-de- ciberseguranca-em-2022,408206.jhtml. Acesso em: 9 fev. 2022. PERIN, E. Gerenciamento de pacotes no Linux (rpm, yum, apt-get, dpkg). 2020. Disponível em: https://oktopus.cloud/blog/gerenciamento-de-pacotes-no-linux-rpm-yum-apt-get-dpkg. Acesso em: 9 fev. 2022. PRACIANO, E. 10 exemplos de uso do comando APT no Debian e Ubuntu. 2016. Disponível em: https://elias.praciano.com/2016/04/10-exemplos-de-uso-do-comando-apt-no-debian-e-ubuntu/. Acesso em: 9 fev. 2022. RIBEIRO, U. Gerenciamento de arquivos no Linus. 2019. Disponível em: https://www.certi�cacaolinux.com.br/gerenciamento-de-arquivos-no-linux/. Acesso em: 9 fev. 2022. SILBERSCHATZ, A. G.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas operacionais. 6. ed. Rio de Janeiro: Editora LTC, 2004. Aula 3 Gerenciamento de arquivos no Windows Introdução da aula http://docente.ifsc.edu.br/alex.forghieri/MaterialDidatico/Sistemas%20Operacionais/Material%20das%20aulas/06%20-%2024-06-2016/Sistema%20De%20Arquivos.pdf http://docente.ifsc.edu.br/alex.forghieri/MaterialDidatico/Sistemas%20Operacionais/Material%20das%20aulas/06%20-%2024-06-2016/Sistema%20De%20Arquivos.pdf https://www.alura.com.br/artigos/entendendo-as-permissoes-no-linux https://www.hardware.com.br/artigos/instalando-aplicativos-linux/pacotes.html https://privacytech.com.br/protecao-de-dados/5-expectativas-para-o-mercado-de-ciberseguranca-em-2022,408206.jhtml https://privacytech.com.br/protecao-de-dados/5-expectativas-para-o-mercado-de-ciberseguranca-em-2022,408206.jhtml https://oktopus.cloud/blog/gerenciamento-de-pacotes-no-linux-rpm-yum-apt-get-dpkg https://elias.praciano.com/2016/04/10-exemplos-de-uso-do-comando-apt-no-debian-e-ubuntu/ https://www.certificacaolinux.com.br/gerenciamento-de-arquivos-no-linux/ Disciplina Administração de Sistemas Operacionais Olá, estudante! Dentro de um ambiente corporativo ou até mesmo em nosso cotidiano, é extremamenteimportante a introdução de um modelo organizacional dos arquivos e das pastas presentes nos dispositivos computacionais utilizados para dinamizar as tarefas a serem executadas. Sendo assim, ao longo desta aula iremos observar quais são os aspectos fundamentais da gerência de arquivos, veri�car as permissões atribuídas aos diretórios, além de discutir sobre o gerenciamento de memória e suas características. É muito importante a sua disciplina neste momento de autoestudo para que, juntos, possamos atingir os principais objetivos da disciplina. Agora é com você, bons estudos! Gerenciamento de arquivos e gerenciador de arquivos do Windows: explorador de arquivos Disciplina Administração de Sistemas Operacionais Ao nos questionarmos sobre o funcionamento de um sistema operacional é preciso considerar que a recuperação e armazenamento de informações são inerentes a quase todos os programas e processos executados. Neste cenário é importante tratar do “gerenciador de arquivos” que, de acordo com Brookshear (2013, p. 88), serve para coordenar a utilização de recursos de armazenamento em massa inseridos em uma máquina. Neste contexto é fundamental entender o conceito de arquivos e seus aspectos. Em geral, arquivos podem ser entendidos como a maneira que o sistema operacional possibilita o processo de gravação, leitura e armazenamento de dados, representando uma série de informações relacionadas de maneira lógica. Existe uma diversidade de dispositivos físicos utilizados para armazenar tais arquivos. O modelo de dispositivo nos quais os arquivos são alocados precisa ser isolado do sistema operacional, ao ponto de estabelecer um nível de independência entre o meio de armazenamento e os arquivos que serão efetivamente manipulados. A nomenclatura é essencial para que um arquivo seja identi�cado pelo sistema operacional, considerando que cada sistema possui normas particulares para de�nir nomes de arquivos. Quanto à organização dos arquivos, é preciso observar como os dados estão armazenados internamente, pois no momento em que um arquivo é criado, o programa que o desenvolve estabelece a estrutura que será utilizada. Segundo Tanenbaum e Woodhull (2009, p. 448), a Figura 1 simboliza uma sequência não estruturada de bytes, uma das formas de se estruturar um arquivo. Disciplina Administração de Sistemas Operacionais Figura 1 | Sequência não estruturada de bytes - Fonte: elaborada pelo autor. Determinados sistemas operacionais adotam diversas organizações (sequencial, relativa ou indexada) no qual cada arquivo adota algum tipo ao qual o sistema suporta. Nestas organizações os dados são dispostos em registros que possuem tamanho �xo ou variável. A Figura 2 traz um exemplo de organização indexada. Disciplina Administração de Sistemas Operacionais Figura 2 | Organização indexada - Fonte: elaborada pelo autor. Diante deste contexto existe um questionamento de quais são as ferramentas essenciais para um sistema operacional. Uma destas ferramentas é o Windows Explorer, que funciona como um gerenciador geral de pastas, arquivos e programas de um computador, conforme se observa na Figura 3. Disciplina Administração de Sistemas Operacionais Figura 3 | Explorador de arquivos Windows 10 - Fonte: captura de tela do explorador de arquivos. A partir do Windows 10, essa ferramenta adquiriu uma nova nomenclatura: Explorador de Arquivos, contando com um novo layout e recursos como a reprodução de áudio e vídeo, conforme Figura 4. Disciplina Administração de Sistemas Operacionais Figura 4 | Maneiras de acessar o windows explorer - Fonte: elaborada pelo autor. Vale frisar que algumas ações são executadas dentro de um explorador de arquivos, por exemplo: Abertura de documentos, como arquivos de texto ou vídeos. Abrir programas, como um editor de fotos instalado no computador. Pesquisar arquivos ou pastas especí�cas. Realização de ações diversas, como recorte ou cópia de arquivos, assim como a criação de atalhos. Um ponto importante no momento em que você, caro estudante, começar a mensurar o Windows Explorer é a situação dele parar de funcionar. Quando isto ocorrer é preciso seguir o seguinte procedimento: Levar o cursor até a barra de tarefas. Acionar a barra de tarefas e clicar com o botão direito, o gerenciador de tarefas. Após este procedimento, uma série de abas serão abertas. Clicar na guia “Processos", selecionar Explore.exe e �nalizar. Posteriormente clicar em Aplicativos > nova tarefa. Abrirá uma nova janela em que será digitado explore.exe> ok. Após isso o problema relacionado ao não funcionamento do Windows Explorer será resolvido. Como você pode notar, o Windows 10 proporciona uma interface leve e de fácil manuseio. Disciplina Administração de Sistemas Operacionais Videoaula: Gerenciamento de arquivos e gerenciador de arquivos do Windows (explorador de arquivos) Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Abordaremos os aspectos fundamentais que tratam do gerenciador de arquivos por meio da proteção de acesso, quando houver o compartilhamento dos arquivos entre os diversos usuários. Evidenciaremos também quais são os principais mecanismos adotados na proteção de acesso, aplicados ao sistema operacional Windows. Identi�cando as permissões do Windows Um aspecto importante dentro de um sistema operacional está relacionado ao “controle de permissões” destinadas aos arquivos e diretórios. Tratando especi�camente do Windows, Disciplina Administração de Sistemas Operacionais observaremos a oferta de dois conjuntos de permissões adotados para limitar o acesso a arquivos e pastas. As permissões NTFS e de compartilhamento. As permissões NTFS são inseridas a todas pastas e arquivos alocados dentro de um volume formatado com o sistema de arquivos NTFS. De maneira padronizada, é importante frisar que tais permissões são provenientes de uma “pasta raiz” direcionada para os arquivos e para as subpastas, que se encontram em um nível abaixo dela. Independente do acesso à pasta ou ao arquivo ocorrer remotamente ou ser local, tais permissões irão efetivamente entrar vigor e que, em um nível mais básico, disponibilizará acesso de leitura, gravação, modi�cação, entre outros aspectos, conforme se observa na Figura 5: Figura 5 | Propriedades de disco local (C:) - Fonte: captura de tela de Propriedades de Disco Local (C:). Um ponto importante a ser destacado é o fato de que existe uma série de permissões avançadas NTFS, responsáveis pela divisão dos níveis de acesso básico, transformando-os em con�gurações com maior grau de granularidade. Estas permissões podem variar a depender do modelo de objeto ao qual são inseridas. A Figura 6 apresenta como alterar estas permissões dentro do Disco Local (C:) do Windows 10: Disciplina Administração de Sistemas Operacionais Figura 6 | Entrada de permissão de disco local (C:) - Fonte: captura de tela de Propriedades de Disco Local (C:). No que se refere às permissões de compartilhamento é possível compreender que nelas são inseridas apenas as pastas compartilhadas. Importante mencionar que elas entrarão em vigor no momento em que uma pasta compartilhada for acessada a partir de uma máquina remota ou por meio de uma rede. Você irá notar que as permissões de compartilhamento apresentam um nível mais reduzido de granularidade, se comparados com as permissões NTFS, disponibilizando acesso de Leitura, Modi�cação e Controle total, conforme se observa na Figura 7: Disciplina Administração de Sistemas Operacionais Figura 7 | Permissões para users - Fonte: elaborada pelo autor. A maneira como as permissões NTFS e de compartilhamento se combinam para estabelecer um nível de acesso é o fator mais importante a ser considerado. Sendo assim, o nível de acesso de um usuário a um arquivo especí�co são as seguintes: Havendo o acesso aos locais de arquivos, somente as permissõesNTFS serão adotadas para estabelecer o nível de acesso do usuário. De acordo com Baddini e Valle Júnior (2016, p. 6) caso de o arquivo ser acessado através de um compartilhamento, é facultado o direito de utilizar as permissões NTFS ou de compartilhamento, desde que seja adotada aquela mais restritiva. As permissões individuais pertencentes a um usuário acabam funcionando em combinação com as permissões dos grupos onde o usuário faz parte. Considere que as permissões que são atribuídas de maneira direta a um arquivo especí�co ou até mesmo a alguma pasta possuem precedência sobre as permissões provenientes de uma pasta principal. Já as permissões de negação explícitas apresentam uma precedência que impera sobre as permissões explícitas. Entretanto, as permissões explícitas possuem precedência inseridas sobre as negações herdadas. Importante ressaltar que os dois conjuntos de permissões podem ser atribuídos em uma janela Propriedades, pertencentes a um arquivo ou pasta. Desta maneira as permissões NTFS são atribuídas na guia Segurança da janela Propriedades. Por sua vez as permissões de compartilhamento serão atribuídas na guia Compartilhamento. Disciplina Administração de Sistemas Operacionais Videoaula: Identi�cando as permissões do Windows Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Abordaremos os aspectos fundamentais que tratam das permissões que são inerentes aos arquivos e diretórios em um sistema operacional Windows. Trataremos, de forma mais destacada, como obter as permissões de administrador para arquivos ou pastas pertencentes ao Windows 11, observando os seus comandos e funcionalidades principais. Modos de gerenciamento de memória e suas características, endereçamento simbólico, relativo e físico Quando tratamos de gerenciamento de memória é preciso levar em consideração que se trata de uma tarefa executada por uma parte do sistema operacional, responsável por controlar o uso da memória. De acordo com Coulouris (2013, p. 284) existem diversas técnicas de gerenciamento Disciplina Administração de Sistemas Operacionais de memória, dentro de um sistema operacional, responsáveis pela cópia e pelo compartilhamento de dados de modo e�ciente. Sendo assim, cabe ao sistema operacional: Veri�car quais são áreas de memória estão sendo utilizadas, ou não. Inserir memória para o processo no momento adequado. Liberar a memória quando o processo for concluído. Gerenciar a troca entre os principais memória e o disco. Suportar todos os processos quando a memória principal não é su�ciente. Em termos gerais os sistemas responsáveis pelo gerenciamento de memória são subdivididos em duas classes: a primeira classe trata daqueles que movimentam programas (processos) do disco em direção à memória principal ou vice-versa. A segunda classe trata daqueles que trabalham apenas na memória. É possível notar que existe uma organização hierárquica da memória. Sendo assim, �ca evidente que o armazenamento de dados acontece em diversos níveis e dispositivos, dentro de um sistema computacional. Isto ocorre devido a quatro fatores essenciais, conforme se visualiza na Figura 8: Figura 8 | Fatores que in�uenciam no armazenamento de dados - Fonte: elaborada pelo autor. O que se deseja alcançar com estes fatores? Certamente o responsável por projetar um sistema operacional vai ter condições de estabelecer a quantidade adequada de cada tipo de memória para viabilizar este sistema e torná-lo mais e�ciente. Na Figura 9 é possível veri�car essa hierarquia da organização da memória. Disciplina Administração de Sistemas Operacionais Figura 9 | Organização da memória em níveis - Fonte: elaborada pelo autor. Armazenamento Interno: indica as posições de memória disponibilizadas internamente ao processador para possibilitar ou acelerar a sua operação. Armazenamento Primário: indica as posições de memória interna acessíveis de forma direta pelo processador. Armazenamento Secundário: indica as posições de memória externa que precisam ser direcionadas para o Armazenamento Primário, no momento anterior ao seu uso. Dentro deste contexto é importante frisar que, em um ambiente multiprogramado, um dos processos mais relevantes é a tradução de endereços. Vale frisar que a etapa inicial indica que os endereços armazenados, dentro de um programa fonte, são simbólicos. Sendo assim é preciso ressaltar a importância dos compiladores no sentido de gerar endereços relocáveis direcionados aos endereços simbólicos. Posteriormente estes endereços serão transformados em endereços lógicos mediante o uso de um linker ou loader. A etapa seguinte consiste na tradução dos endereços lógicos, utilizados pelos processos, para endereços físicos. Este processo pode ser observado na Figura 10. Disciplina Administração de Sistemas Operacionais Figura 10 | Tipos de endereçamento - Fonte: Leite (2021). Vale frisar que o mapeamento consiste no mecanismo de tradução do endereço virtual (lógico) para endereço físico. Considerando os sistemas atuais, este mecanismo é realizado por meio de um hardware (Memory-Managment Unit), auxiliado pelo Sistema Operacional, indicando que o programa realizado no seu contexto precisa estar inserido no espaço de endereçamento real, o que permitiria a sua execução ou referenciação. Portanto, como é possível notar, a memória pode ser entendida como um recurso fundamental e que precisa ser gerido com cuidado. Existe um consenso de que mesmo com um aumento na capacidade de memória que se encontra disponível nos sistemas computacionais, há uma demanda extensa e contínua por parte dos desenvolvedores de software, por mais memória, para que seus programas possam ser alocados e executados. Videoaula: Modos de gerenciamento de memória e suas características, endereçamento simbólico, relativo e físico Disciplina Administração de Sistemas Operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Abordaremos os aspectos fundamentais que tratam do gerenciamento de memória e os aspectos inerentes aos endereçamentos dentro de um sistema computacional. Trataremos, de forma mais destacada, da importância do uso de compiladores e da linguagem Assembly, como instrumentos responsáveis por direcionar os endereços relocáveis aos simbólicos. Estudo de caso Uma empresa líder de mercado em serviços relacionados com a tecnologia da informação, tem como uma das suas principais características disponibilizar soluções ligadas ao gerenciamento de arquivos e diretório de grandes corporações. Porém, em um determinado dia, diante de um ataque cibernético promovido por hackers, os dados dos clientes desta empresa acabaram sendo vazados, trazendo uma série de transtornos e prejuízos �nanceiros para a organização. Imagine que você é um dos colaboradores e foi convocado para a seguinte missão: veri�car as causas deste vazamento de dados, além de propor soluções para recuperar os dados com maior Disciplina Administração de Sistemas Operacionais celeridade. Importante mencionar que a parte de negociação com os hackers �cou sob a responsabilidade de outros colaboradores. De imediato você percebe que na empresa já existiam erros em seu processo de armazenamento de dados devido ao uso reduzido de ferramentas de alocação, denominadas de “�tas” de backup, essenciais para que este processo ocorra. Simultaneamente, observou-se que a manipulação dos dados disponíveis não ocorria obedecendo uma sequência lógica. Posteriormente você notou que houve uma duplicação, ou seja, uma espécie de clonagem daquelas permissões com maior nível de granularidade, que se encontravam disponíveis na rede ou eram manipuladas de forma remota. Por �m, você consegue veri�car que o sistema operacionalnão consegue executar de maneira e�ciente, as suas unções em relação ao controle do uso de memória, que começa desde a veri�cação de áreas que utilizam memória até o momento de suporte, quando o uso de memória for insu�ciente. Você então, diante dos problemas encontrados, resolve elaborar um plano de ação objetivando sanar estas questões e oferecer subsídios su�cientes para que os demais colaboradores consigam proteger e recuperar os dados vazados. Sendo assim, elabore um plano de ação descritivo, apontando quais as medidas a serem tomadas para solucionar cada um dos problemas encontrados dentro da organização e indique quais as medidas preventivas poderão ser adotadas para evitar que este tipo de transtorno volte a ocorrer. Resolução do estudo de caso Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Para a solução deste estudo de caso é preciso considerar três questões fundamentais: 1. As falhas no armazenamento de dados. 2. Os erros nas permissões com maior granularidade 3. Sistema Operacional inoperante O estudo exigiu que você buscasse no conteúdo estudado os instrumentos necessários para a solução destas questões. Solução 1: Os erros observados no armazenamento de dados são solucionados pela criação de arquivos, que são os instrumentos adotados pelo sistema operacional que permite gravar, ler e alocar dados adotando uma sequência lógica. É preciso manter a ideia da existência de uma série de dispositivos físicos utilizados. Disciplina Administração de Sistemas Operacionais As permissões de arquivos e pasta precisam ser melhor monitoradas, principalmente as permissões de compartilhamento (acessível a todos) pois elas permitem manipulações e controles em rede ou de maneira remota, com maior nível se comparadas com a NTFS. Diante de um Sistema Operacional inoperante a terceira ação consiste na ampliação do processo de gerenciamento de memória. Importante frisar que todo gerenciamento requer uma organização hierárquica, em que as memórias são dispostas em níveis: interno, primário ou secundário. Em um ataque cibernético todos estes níveis normalmente são atingidos. Uma das formas de solucionar o problema é controlar este acesso e veri�car a velocidade/custo do byte em relação à capacidade tempo/adesão. Solução 2 Medidas preventivas a serem tomadas para evitar problemas deste porte Maior rigidez com senhas: importante se certi�car de não estar sendo observado ao digitar as suas senhas de acesso. Isto inclui o não fornecimento a terceiros, além de se certi�car de fechar a sua sessão ao acessar sites que requeiram o uso de senhas. Contratar serviços especializados e backup: o serviço de backup assegura recuperação das informações presentes nos arquivos, e proteção, de maneira mais simples, automatizada e centralizada para evitar os custos com hardware e software, por exemplo. Antivírus com maior capacidade de proteção: ter um sistema antivírus corporativo é uma solução para reduzir riscos e melhorar a segurança e a integridade dos dados da empresa. Saiba mais Disciplina Administração de Sistemas Operacionais Atualmente, o gerenciamento de conteúdo ocorre na nuvem, cada vez com maior intensidade. Desta maneira, é comum o surgimento de novas funcionalidades direcionados aos sistemas capazes de escanear, de maneira profunda, os arquivos no momento em que eles são enviados para a identi�cação de malwares. Mas que funcionalidades são estas e quais são as suas vantagens no gerenciamento de arquivos, de uma maneira geral? Sugiro a leitura da reportagem que trata do Box Shield, que software de gerenciamento de arquivos, utiliza a Deep Learnig para impedir que dados sejam vazados. _______ Síntese da Aprendizagem O Gerenciador de Arquivos serve para coordenar a utilização de recursos de armazenamento em massa inseridos em uma máquina Tratando especi�camente do Windows, observaremos a oferta de dois conjuntos de permissões adotados para limitar o acesso a arquivos e pastas: as permissões NTFS e de compartilhamento. O Gerenciamento de Memória, dentro de um sistema operacional, é responsável pela cópia e pelo compartilhamento de dados de modo e�ciente. A �gura a seguir sintetiza os conceitos que foram aprendidos. Figura 11 | Conceitos estudados - Fonte: elaborada pelo autor. Referências Disciplina Administração de Sistemas Operacionais BADDINI, F. C.; VALLE JÚNIOR, R. Implantação e gerenciamento de redes com Microsoft Windows 10 Pro. 1. ed. Erica. São Paulo. 2016, p. 6. BROOKSHEAR, J. G. Ciência da computação: uma visão abrangente. 11. ed. Bookman. Porto Alegre. 2013, p. 88. LEITE, A. Sistemas operacionais. Gerência de memória. Universidade Vale do São Francisco. Disponível em: http://www.univasf.edu.br/~andreza.leite/aulas/SO/Memoria1.pdf. Acesso em: 24 out. 2021. COULOURIS, G. Sistemas distribuídos: conceitos e projeto. 5. ed. Bookman. Porto Alegre. 2013, p. 284. TANENBAUM, A. S.; WOODHULL, A. S. Sistemas operacionais: projeto implementação. 3. ed. Bookman. Porto Alegre. 2013, p. 448. Aula 4 Gerenciamento na prática Introdução da aula http://www.univasf.edu.br/~andreza.leite/aulas/SO/Memoria1.pdf Disciplina Administração de Sistemas Operacionais Olá, estudante! Quando tratamos de endereçamento devemos levar em consideração um aspecto importante: o Gerenciamento de “bloatware”, que simboliza os softwares que utilizam uma quantidade excessiva de memória. Sendo assim um método bastante utilizado é conhecido como “memória virtual”, que consiste na ideia de que cada programa possua um espaço próprio de endereçamento e se subdivida em blocos denominados de pastas. Ao longo da aula as técnicas de paginação, segmentação e substituição de páginas e quais as suas aplicações no que se refere ao gerenciamento de memória. É muito importante a sua atenção neste momento de autoestudo para que, juntos, possamos atingir os principais objetivos da disciplina. Bons estudos! Entendendo sobre paginação Disciplina Administração de Sistemas Operacionais Em um sistema de memória virtual trataremos de uma técnica chamada de “paginação”, que lida com um modelo de gerenciamento de memória, no qual um computador arquiva e recupera dados de um armazenamento secundário para utilizar na memória principal. Para Silberschatz, Galvin e Gane (2000, p. 189) trata-se de um esquema que possibilita ao espaço de endereçamento físico de um processo não contíguo. Saiba que, independentemente do computador utilizado, uma série de endereços de memória são referenciados por programas. Para Tanenbaum & Bos (2013, p. 135) os endereços podem ser criados por meio de diversas formas (indexação, os registradores bases ou registradores de segmento). Tais endereços, quando gerados por computadores são denominadas de virtuais, formando um endereçamento virtual. Um detalhe importante é o fato de que um endereçamento virtual, ao ser utilizado e alocado no Memory Management Unit (MMU) consegue mapear os endereços virtuais nos endereços de memória física, conforme se observa na Figura 1: Disciplina Administração de Sistemas Operacionais Figura 1 | Função do MMU - Fonte: Tanenbaum & Bos (2013, p. 135). O espaço de endereçamento virtual pode ser visto como unidades de tamanho �xo ao qual denominamos de páginas. Neste contexto, Tanenbaum & Bos (2013, p. 135) vão indicar que as unidades relacionadas à memória física são chamadas de quadro de páginas. Normalmente as páginas e o quadro de páginas apresentam o mesmo tamanho. Pense, por exemplo, que temos um mapeamento no qual um computador cria endereços de 16 bits, entre 0 e 64 K – 1, levando em consideração que tais endereços são virtuais. Entretanto, este computador possui uma quantidade limitada de memória física. isto indica que os programas não podem ser plenamente carregados na memória, apesar de ser escrito. Portanto, segundo Tanenbaum & Bos (2013, p. 135) uma cópia completa da imagem donúcleo pertencente a um programa com limite de até 64 KB, precisa estar inserido em um disco, porém, de tal forma que as partes consigam ser carregadas no momento oportuno, conforme se visualiza na Figura 2: Disciplina Administração de Sistemas Operacionais Figura 2 | Tabela de páginas - Fonte: Tanenbaum & Bos (2013, p. 136) Contendo 64 KB de espaço de endereçamento virtual e 32 KB de memória física pode resultar basicamente em páginas virtuais e oito quadros de páginas. Outro aspecto importante é o fato de que as transferências entre o disco e a memória RAM ocorrerão sempre dentro das páginas inteiras. De acordo com a preferência do sistema operacional. É possível visualizar que diversos processadores servirão de suporte para diversos tamanhos de página, que podem ser combinadas entre si. As notações que podemos observar são as seguintes: Série ente 0 K – 4 K = Endereços virtuais ou físicos entre 0 e 4095 Série entre 4 k – 8 k = Endereços virtuais ou físicos entre 4096 e 8191. Sendo assim: 1. A instrução MOV REG, 0 será direcionado para a MMU, pois ela detecta que tal endereço virtual estará localizado na página 0 (0 a 4095) que equivale ao quadro de página 2 (8192 a 12287). 2. Similarmente a instrução MOV REG, 8192 será transformada em MOV REG, 24576, já que o endereço virtual (Página 2) será mapeado em 24576 (Quadro Página Física 6). Para tanto, a técnica de mapeamento que páginas virtuais em quadros de páginas, por meio da con�guração inerente à MMU, acaba não resolvendo a questão referente ao fato de que o endereçamento virtual é maior que a memória física. Disciplina Administração de Sistemas Operacionais Videoaula: Entendendo sobre paginação Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Abordaremos os aspectos fundamentais que tratam do uso da paginação e as suas diversas funcionalidades. Trataremos, de forma mais destacada, na inserção das Tabelas de Páginas Comuns, das páginas que envolvem memórias grandes (Multinível e Inversas), além da aceleração da paginação, observando os seus comandos e funcionalidades principais. Aspectos de segmentação Há um consenso sobre a unidimensionalidade presente na memória virtual, já que os endereços virtuais partem do valor 0 (zero) até alcançar um endereçamento em seu nível máximo, de maneira sequencial. Do ponto de vista prático é mais vantajoso se obter diversos espaços de endereços do que obter apenas um. Para Tanenbaum & Bos (2013, p.166) um compilador pode Disciplina Administração de Sistemas Operacionais apresentar diversas tabelas desenvolvidas (veja a Figura 3), em tempo de compilação, incluindo provavelmente: Figura 3 | Ciclo de tabelas - Fonte: elaborada pelo autor. É preciso deixar claro que, se considerarmos este exemplo, as quatro primeiras tabelas irão crescer na medida em que houver o prosseguimento da compilação. Já a última tabela (Pilha) pode apresentar diversas oscilações durante a compilação. Saiba, caro estudante, que dentro de uma memória unidimensional, estas tabelas poderiam ser adicionadas em áreas contíguas do espaço de endereçamento virtual, conforme se visualiza na Figura 4: Disciplina Administração de Sistemas Operacionais Figura 4 | Tabela de espaços de endereçamento - Fonte: Tanenbaum & Bos (2013, p. 166). Agora vamos pensar juntos e avaliar a seguinte possibilidade: um programa disponibiliza uma quantidade mais elevada de variáveis, mas mantém um número normal do restante. Isto certamente indicaria que a região do espaço de endereçamento alocada para a tabela de símbolos se esgote, porém, disponibilizando muitos espaços nas demais tabelas. Sabendo que é necessário de�nir qual o papel do programador e da memória virtual, a solução mais direta e generalista é disponibilizar espaços de endereçamento completamente independentes, ao qual denominados de segmentos. Importante mencionar que o comprimento de cada segmento ocorre no intervalo que começa com o valor 0 (zero) até atingir o valor máximo, podendo mudar de direção ao longo da sua execução. Havendo a necessidade, em um determinado segmento, de ceder mais espaço de endereçamento para o crescimento de uma pilha, certamente é possível tê-lo já que não existe nenhum fator que impeça de criar um espaço de endereçamento. Sendo assim, para determinar que um endereço seja inserido nessa memória, de forma segmentada ou bidimensional, cabe ao programa disponibilizar um endereço que seja subdividido em duas partes: um número de segmento e um endereço inserido no segmento. Além disso, cada segmento forma um espaço de endereçamento separado, indicando que cada segmento pode crescer ou decrescer de forma independente, sem interferir no desempenho dos outros, conforme se visualiza na Figura 5: Disciplina Administração de Sistemas Operacionais Figura 5 | Memória segmentada - Fonte: Tanenbaum & Bos (2013, p. 167). De acordo com Tanenbaum & Bos (2013, p.167) um segmento representa uma entidade lógica utilizada pelo programador. Ele pode disponibilizar uma rotina, uma série de variáveis ou até mesmo, um arranjo, mas normalmente de maneira distinta entre eles. Outro aspecto importante é o fato da segmentação simpli�ca o compartilhamento de dados ou rotinas entre os diversos processos. Para Oliveira, Carissimi e Toscani (2010, p.169) um dos fatores atrativos inerentes à segmentação está na sua facilidade em compartilhar memória. Pense, por exemplo, em uma biblioteca compartilhada através de um sistema segmentado, que acaba possibilitando a execução de múltiplos processos que seriam impossíveis em outros tipos de sistema. Videoaula: Aspectos de segmentação Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Disciplina Administração de Sistemas Operacionais Abordaremos os aspectos fundamentais que tratam do uso da segmentação e suas diversas funcionalidades. Trataremos, de forma mais destacada, da implementação da segmentação pura, além das segmentações que envolvem algum nível de paginação, como ocorre no MULTICS e o Intel X86, observando os seus comandos e funcionalidades principais. Conceitos sobre substituição de páginas Imagine que em um sistema operacional falte uma página: O que pode ser feito? Bem, caso isto ocorra é natural que o sistema selecione uma página para que seja excluída da memória, cujo objetivo é liberar espaço para a página chegante. Caso a página excluída tenha sofrido alguma alteração no momento em que estava na memória certamente ela será reescrita para o disco com o objetivo de atualizar uma cópia nele. Porém, se esta alteração não ocorrer perceberemos que a cópia do disco já se encontra atualizada, portanto, não há a necessidade de reescrevê-la. Um detalhe importante é que a página lida realiza a sobrescrita na página que está sendo excluída. Claro que existe a possibilidade de uma página ser selecionada de modo aleatório para ser descartada a cada falta de página, porém a performance do sistema será mais efetiva caso for escolhida uma página com pouco uso, ou seja, que não é utilizada com maior intensidade. Certamente se uma página com maior intensidade de uso for excluída, haverá um processo de retorno imediato, gerando custos maiores. De acordo com Oliveira, Carissimi e Toscani (2010, p.187) a determinação da página que será substituída é realizada por meio dos “Algoritmos de Substituição de Páginas“. Os mais importantes podem ser vistos na Tabela 1: Disciplina Administração de Sistemas Operacionais Tabela 1 | Algoritmos de substituição de páginas - Fonte: Tanenbaum & Bos (2013, p.153). A questão que envolve a Substituição de Páginas pode ocorrer nas mais diversas áreas de um projeto computacional. Vamos imaginar, por exemplo, que um percentual signi�cativo de computadorespossui caches de memória em blocos, que variam entre 32 a 64 bytes. Normalmente quando a cache está cheia, um bloco é selecionado ou excluído, tal qual ocorre na substituição de páginas, menos quando houver uma escala de tempo menor. Segundo Tanenbaum & Bos (2013, p.144), existe uma explicação que justi�ca a escalada tempo ser mais curta: isto ocorre quando as ausências dos blocos são atendidas a partir da memória principal sem atrasos graças ao tempo de busca e à latência rotacional ocorrida no disco. Outro aspecto pode ser observado em um servidor Web. Ao manter determinada quantidade de páginas utilizadas intensamente na sua cache de memória. Porém, quando ela se encontra cheia, uma nova página passa a ser referenciada. Ao tratarmos das páginas de memória virtual as considerações são similares às páginas WEB, exceto pelo fato de as páginas WEB nunca sofrerem alterações na cache. Importante citar que em um sistema de memória virtual, as páginas inerentes à memória principal podem ser sujas ou limpas. Sendo assim é valido ressaltar que quando uma página é removida da memória, ela pode representar uma das páginas inerentes ao próprio processo ou pertencer a outro posicionamento. Este é o motivo a ser analisado sobre os algoritmos de substituição de páginas. Videoaula: Conceitos sobre substituição de páginas Disciplina Administração de Sistemas Operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Abordaremos quais são os aspectos fundamentais que tratam dos algoritmos da Substituição de Páginas e as suas diversas funcionalidades. Trataremos, de forma mais destacada, dos principais algoritmos adotados e as suas manipulações na remoção, divisão e controle das páginas analisando os seus comandos e funcionalidades principais. Estudo de caso Uma empresa especializada em serviços WEB, decidiu por implementar técnicas de gerenciamento de memória de uma forma mais prática. De tal maneira, a empresa procura se especializar em sistemas que tratam especi�camente da manutenção das memórias virtuais. Imagine que você é um consultor contratado por essa organização e resolve atender um chamado de um cliente. O primeiro aspecto, de imediato, trata dos problemas no armazenamento secundário de dados direcionados à memória principal. O segundo aspecto está relacionado ao uso de endereços de memória baseados nos programas, que precisam ser criados e organizados dentro do sistema. Durante este processo de análise, ao utilizar um endereçamento virtual, é visível a percepção de que a memória é unidimensional. Por Disciplina Administração de Sistemas Operacionais �m, observou-se que o processo de substituição de páginas adotava um algoritmo que gerava custos elevados de aplicação. Sendo assim, faça um relatório que indique uma forma de solucionar a questão do armazenamento secundário de dados. Aponte o tipo de endereço de memória é mais adequado, quando criados por computadores e informe onde eles serão arquivados, levando em consideração a unidimensionalidade, analise a melhor decisão a ser tomada em relação aos espaços de endereços e por último, aponte o algoritmo adequado para a questão da substituição, considerando a hipótese de redução de custo. Resolução do estudo de caso Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Para a solução deste estudo de caso é preciso considerar quatro questões fundamentais: 1. O armazenamento secundário de dados. 2. Endereço de memória. 3. Unidimensionalidade. 4. Algoritmo. O estudo exigiu que você buscasse no conteúdo estudado os instrumentos necessários para a solução destas questões. Solução 1 A questão do armazenamento está relacionada ao gerenciamento de memória virtual. Sendo assim, a solução que você pode encontrar para esta questão está associada a técnica de paginação, que tratava do modelo de gerenciamento de memória no qual um computador vai cuidar do arquivamento e da restauração dos pertencentes a um armazenamento secundário que será adotado na memória principal. Solução 2 Sabendo que os endereços são gerados por meio da Indexação ou dos registradores, por exemplo, cabe a você, na função de consultor, veri�car se tais endereços são provenientes dos computadores. Con�rmando isto o classi�caremos como virtuais. Por meio destes endereços alocados no MMU será possível estabelecer um mapeamento deles nos endereços de memória física, Sistema 3 Existe a unidimensionalidade na memória virtual. Você veri�cará que é mais bené�co adquirir espaços variados de endereços do que manter somente um. Isto se justi�ca pelo fato de que um Disciplina Administração de Sistemas Operacionais compilador disponibiliza várias tabelas em tempo de compilação. Sistema 4 Diante da lista de possibilidades de algoritmos presentes na Substituição de Páginas, é notório que o Conjunto de Trabalho se apresenta como o mais custoso. Sendo assim uma alternativa que você pode sugerir é a adoção do algoritmo WSClock. Resumo visual Síntese da Aprendizagem A paginação se refere a um modelo de gerenciamento de memória no qual um computador arquiva e recupera dados de um armazenamento secundário para utilizar na memória principal. A segmentação simpli�ca o compartilhamento de dados ou rotinas entre os diversos processos. A substituição de páginas ocorre no momento em que acontece uma falta de página onde o sistema operacional necessita escolher uma página para retirar da memória objetivando abrir espaço para a que está chegando. O quadro a seguir sintetiza os conceitos que foram aprendidos ao longo da unidade de estudo. Disciplina Administração de Sistemas Operacionais Referências Disciplina Administração de Sistemas Operacionais OLIVEIRA, R. S. de.; CARISSIMI, Al. da S.; TOSCANI, S. S. Sistemas operacionais. Bookman. Instituto de Informática da UFRGS. Porto Alegre. 2010, p. 323. SILBERSCHATZ, A.; GALVIN, P.; GAGNE, G. Sistemas operacionais. Editora Campus, 2000, 303 p. TANENBAUM, A. S.; WOODHULL, A. S. Sistemas operacionais: projeto e implementação. 3. ed. Bookman. Porto Alegre. 2013, 448 p. , Unidade 3 Gerenciamento de Memória: Alocação e Memória Virtual Aula 1 Conceitos de gerenciamento de memória Introdução da aula Olá, estudante! Existe um consenso de que a memória é um importante recurso dentro de um sistema operacional, entretanto, como o seu gerenciamento é realizado de fato? Diante de um grau de Disciplina Administração de Sistemas Operacionais capacidade cada vez mais elevado da memória disponível, os programas desenvolvidos atualmente demandam mais memória para serem armazenados e executados. É por conta desta demanda que o gerenciamento é fundamental para que os processos do Sistema Operacional sejam realizados. Sendo assim, ao longo desta aula iremos observar os principais aspectos referentes ao gerenciamento de memória principalmente naquilo que se refere às regiões de memória física, endereçamento virtual, principais processos, as práticas de swapping e memória virtual. É muito importante a sua concentração neste momento de autoestudo para que, juntos, possamos atingir os principais objetivos da disciplina. Bons estudos!! Aspectos das regiões de memória e endereço virtual O gerenciamento de memória, conceituando de maneira bem objetiva, é a atividade executada por um setor do Sistema Operacional que exerce controle sobre a utilização da memória. Diante deste conceito você, caro estudante, pode estar se questionando: quais são as funções de um gerenciamento de memória? Este procedimento visa inserir memória quando os processos necessitarem ou desalocá-las no momento em que os processos forem realizados. Além disso, cabe ao gerenciamento de memória administrar o swapping existente entre a memória principal e odisco, no momento em Disciplina Administração de Sistemas Operacionais que se perceber que esta memória se demonstra insu�ciente para suportar todos os processos. Entretanto, uma das funções mais importante do gerenciamento é identi�car quais as regiões da memória estão sendo utilizadas e quais estão ociosas, na prática. Para compreendermos como isto ocorre é preciso considerar uma série de mecanismos que são adotados para alocar a memória direcionada à execução dos processos, conforme se visualiza na esquematização da Figura 1 a seguir: Figura 1 | Alocação de memória - Fonte: elaborada pelo autor. Importante frisar que, de imediato, o espaço lógico observado será inferior ao espaço físico, ou seja, o processo a ser executado consegue ser inserido na memória. Certamente isso nos levará a um segundo questionamento: como o espaço de endereçamento lógico (virtual) pode ser dimensionado para um processo? É a partir daqui que observaremos a importância das regiões de uma memória física. É preciso entender que o espaço de endereço virtual é o número máximo de espaço disponível utilizado em uma aplicação, que varia a depender da arquitetura e do sistema operacional inserido. Isso normalmente ocorre porque cabe à arquitetura estabelecer a quantidade de bits disponíveis para propósitos de endereçamento. Lembrando que o sistema operacional também interfere no espaço de endereço virtual pois a forma como este foi implementado pode inserir limites adicionais, em uma quantidade maior ou menor se comparados às quantidades impostas pela arquitetura. Um processo, considerado como um conceito essencial dentro de um sistema operacional, é composto por quatro regiões (segmentos) de memória, conforme se observa na Figura 2 a seguir: Disciplina Administração de Sistemas Operacionais Figura 2 | Regiões (segmentos) de memória - Fonte: elaborada pelo autor. De acordo com Cassimiri (2010, p. 300) a região de código (texto), como a própria nomenclatura indica, caracteriza-se por apresentar o código que será executado; por sua vez a região dos dados disponibiliza todas as variáveis globais, tanto as inicializadas quanto as não inicializadas; a região de memória denominada de pilha se destaca pelo fato de ser o local em que são criadas as variáveis locais, dentre outros aspectos; e por �m, a região Heap, que tem a função de alocar porções de memória de maneira dinâmica. Um ponto relevante a ser discutido é o fato de que os espaços são dimensionados utilizando-se critérios distintos, a depender da região de memória utilizada. Observando as regiões de código e dados, observa-se que ambos são dimensionados baseados nas informações do próprio executável, enquanto que o segmento de pilha e heap são pré-reservados, ou seja, a pilha passa por uma pré-alocação dentro da área pré-reservada e o heap é a diferença entre o tamanho total de processo, subtraído da área de código, dados e pilha, conforme se visualiza na Figura 3 a seguir: Disciplina Administração de Sistemas Operacionais Figura 3 | Execução das regiões (segmentos) de memória - Fonte: Instituto de informática (UFRGS). Videoaula: Aspectos das regiões de memória e endereço virtual Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Abordaremos as características que tratam dos aspectos das regiões de memória e do endereço virtual ao observar, de maneira mais destacada, de que forma ocorre a organização da memória. A ideia é veri�car com maior nível de detalhamento sobre os quatro segmentos de memória, utilizando uma linguagem de programação C. Bons estudos! Entendendo sobre gerenciamento de memória e processos Disciplina Administração de Sistemas Operacionais Um aspecto que deve ser levado em consideração é o fato de que os programas estão cada vez mais rápidos em relação às memórias, apesar da quantidade de memória disponível nos computadores pessoais, de uma forma geral, estarem em crescimento constante. Prova disso é o fato de que o computador pessoal na década de 2020, em média, dispõe de uma capacidade de memória muito superior aos computadores fabricados nos anos anteriores (entre 1995 a 2000), por exemplo, e mesmo assim se depara com programas que demandam cada vez mais uma capacidade de memória maior. Diante deste contexto, Tanenbaum e Bos (2016, p.125) citam a Lei de Parkinson, no quais os programas normalmente tendem a se elevar com o objetivo de preencher a memória disponível para contê-los. Sendo assim é possível notar que os Sistemas Operacionais vão criar abstrações a partir da memória e irão gerenciá-los. Você irá perceber que existe aqui um dilema: programadores buscam por um tipo de memória privada, geralmente rápida, extensa, volátil e com baixo custo. A questão a ser respondida aqui é por que não barateá-la, já que a tecnologia não disponibiliza isto em grande escala? Enquanto este questionamento não é resolvido a ideia da hierarquia de memórias vem sendo cada vez mais difundida, em que os computadores apresentam alguns megabytes de memória cache volátil e rápida, com um elevado custo; gigabytes de memória principal volátil, porém a custos e velocidades medianas; por �m temos os terabytes de armazenamento em disco a custos e velocidades reduzidas, armazenado, por exemplo, em disco no estado sólido ou os magnéticos não voláteis, como os dispositivos USB. Desta forma é possível a�rmar que o campo do sistema operacional que gerencia uma parte da hierarquia de memórias é denominado de gerenciador de memória, cujas funcionalidades podem ser sintetizadas na Figura 4 a seguir: Disciplina Administração de Sistemas Operacionais Figura 4 | Funcionalidades do gerenciador de memória - Fonte: Tanenbaum e Bos (2016, p. 125). Importante frisar que existe uma diversidade de modelos de gerenciamento de memória, a depender do seu grau de so�sticação. Considere que os Sistemas de Gerenciamento de Memória, podem ser divididos basicamente em duas classes: A classe mais so�sticada, característica por transitar os processos entre a memória principal e o disco (troca de processos e paginação), ao longo da execução. É preciso deixar claro que uma gerência de memória indica a seguinte situação: para cada processo deverá haver o provimento de uma região de memória que seja autônoma, própria e independente dos demais processos. Certamente as consequências disso serão positivas, pois trarão mais segurança e estabilidade ao sistema. Cabe ao gerenciamento também a função de alocar memória aos processos e se, porventura, a memória RAM for insu�ciente para que os processos sejam executados, o sistema operacional pode elevá-la solicitando espaço disponível em memória de massa. A classe mais simples, que não realiza a troca de processos e nem de paginação. A gerência de memória cache está atrelada a um hardware, indicando a relevância em se estudar o modelo da memória principal. De acordo com Tanenbaum e Bos (2016, p. 125) a abstração de memória mais simples é não ter abstração alguma, assim como ocorria com os primeiros computadores de grande porte, no qual cada programa via apenas a memória física. Disciplina Administração de Sistemas Operacionais É fundamental, do ponto de vista mais simples ou so�sticado, entender como ocorre o gerenciamento de memória e principalmente a execução dos processos inerentes a ela. Videoaula: Entendendo sobre gerenciamento de memória e processos Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Abordaremos os aspectos do gerenciamento de memória e dos processos observando um modelo de gerenciamento de memória sem abstração. A ideia é veri�car, com maior nível de detalhamento, sobre os sistemas Monousuários (Monoprogramação) sem as trocas de processosou uso da Paginação, além da execução de Múltiplos Programas sem abstração. Aspectos da abstração da memória, espaço de endereçamento, swapping e memória virtual Disciplina Administração de Sistemas Operacionais Ao observarmos os aspectos da memória física de maneira mais generalista é possível notar que a exposição da memória física a processos apresenta uma série de desvantagens relevantes. Mas qual a explicação para isto? De acordo com Tanenbaum e Bos (2016, p. 125) a primeira desvantagem é a possibilidade de o sistema parar por conta de algum acidente ou de forma intencional devido a sua vulnerabilidade, tanto para endereçar cada byte de memória quanto para derrubar o sistema, mesmo que apenas um programa do usuário (aplicação) esteja executando. A segunda desvantagem está relacionada à di�culdade de se executar múltiplos programas de forma simultânea: normalmente os computadores pessoais apresentam diversos programas abertos de forma simultânea em que um deles mantém o foco atual, porém os demais serão reativados clicando em um mouse. Situações como esta são difíceis de ocorrer quando não há abstração da memória física, portanto uma solução precisa ser encontrada. A permissão para que múltiplas aplicações estejam na memória simultaneamente sem interferir umas com as outras, necessita da solução de duas questões básicas: a proteção e realocação. Segundo Tanenbaum e Bos (2016, p. 128) a solução mais adequada é criar uma abstração nova para a memória ao qual denomina-se de espaço de endereçamento, que se caracteriza por desenvolver uma espécie de memória abstrata para abrigar os programas, da mesma fora que processo gera uma espécie de CPU abstrata para executá-los. Importante ressaltar que o espaço de endereçamento simboliza também uma série de endereços ao qual um processo pode utilizar para endereçar a memória, em que cada processo apresente o seu próprio endereçamento independente dos demais que pertencem aos outros processos. Como você pode notar a execução dos processos é fundamental no gerenciamento de memória. Tanenbaum e Bos (2016, p. 130) explicitam que, na prática, o montante total de RAM solicitado Disciplina Administração de Sistemas Operacionais por todos os processos é geralmente bem superior ao que efetivamente pode ser inserido na memória. Certamente vai indicar que todos os processos executados em tempo integral, irão exigir um montante signi�cativo de memória, o que é inviável se ela for insu�ciente. Algumas abordagens gerais foram criadas, ao longo dos anos, com o intuito de lidar com a sobrecarga de memória. Das que podemos destacar, está aquela considerada a mais simplista: o swapping (troca de processos), que de acordo com Tanenbaum e Bos (2016, p. 130) tem por funcionalidade trazer cada processo de maneira total, executá-lo por um período, para posteriormente retorná-lo ao disco. Todo este procedimento pode ser visualizado na Figura 5 a seguir: Figura 5 | Swapping (troca de processos) - Fonte: Tanenbaum e Bos (2016, p. 130). Existe uma necessidade de manipular programas extensos demais para caber na memória, assim como há uma necessidade da utilização de sistemas que possam suportar múltiplos programas executando em simultâneo. Tal método é denominado de memória virtual, cuja função principal é fazer com que cada programa apresente o seu próprio espaço de endereçamento, que serão divididos em páginas. Importante mencionar que o fato de o endereçamento virtual não estabelecer um relacionamento direto com os endereços reais, faz com que os programas se referenciam nos endereços virtuais, ou seja, a estruturação dos dados não se limitará ao tamanho da memória física disponibilizada. Sendo assim, é fundamental entender que o sistema operacional tem papel importante na utilização de memória, principalmente quando consideramos a memória secundária como extensão da memória principal. Disciplina Administração de Sistemas Operacionais Videoaula: Aspectos da abstração da memória, espaço de endereçamento, swapping e memória virtual Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Abordaremos os aspectos que tratam da abstração de memória e das técnicas de gerenciamento da memória. Observaremos, de forma mais destacada, uma destas técnicas: o gerenciamento de memória livre, veri�cando as duas maneiras de se rastrear o uso de memória, que são os mapas de bits e as listas livres. Estudo de caso Uma empresa do ramo de tecnologia da informação se destaca pelo fato de dispor de computadores corporativos com elevada capacidade de armazenamento de memória. Porém, Disciplina Administração de Sistemas Operacionais em um determinado dia, você, na condição de consultor interno, percebeu que o gerenciamento de memória realizado até aquele momento era de�citário principalmente em relação à identi�cação das regiões da memória que efetivamente estavam sendo utilizadas. Posteriormente você notou que o sistema de gerenciamento a ser realizado deveria considerar que o trânsito dos processos entre a memória principal e o disco. Por �m, você consegue veri�car que a memória estava sobrecarregada e precisava de uma solução mais simplista. Diante dos problemas encontrados, você resolve elaborar um plano de ação objetivando sanar estas questões e oferecer subsídios su�cientes para que o sistema de gerenciamento de memória seja efetivamente implantado. Sendo assim, elabore um projeto apontando quais as regiões de memória podem ser utilizadas, suas respectivas características e indique quais as medidas que podem ser tomadas para evitar a sobrecarga de memória nos computadores. Resolução do estudo de caso Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Para a solução deste estudo de caso é preciso considerar três questões fundamentais: 1. Problemas na identi�cação das regiões da memória. 2. Uma classe que considera a transição dos processos da memória e o disco. 3. Sobrecarga de memória. O estudo exigiu que você buscasse no conteúdo estudado os instrumentos necessários para a solução destas questões. Solução 1 A memória é subdividida em quatro regiões (segmentos): Código, Dados, Pilhas e Heap. Todas as regiões podem ser utilizadas pela organização empresarial, com maior ou menor intensidade, a depender das necessidades da organização. O segmento Código pode utilizado no momento em que o código será executado; o segmento Dados apresenta todas as variáveis globais, inicializadas ou não; o segmento Pilha indica onde variáveis locais são criadas. O segmento Heap tem a função de arquivar partes de memória de forma dinâmica. Solução 2 A empresa pode adotar uma metodologia de gerenciamento de memória de forma mais so�sticada, considerando o trânsito dos processos entre a memória principal e o disco, ao longo da execução. É possível utilizar a paginação ou a troca de processos (Swapping). Por ser mais simples de implantar, o Swapping acabou sendo a escolhida, pelo fato de trazer cada processo Disciplina Administração de Sistemas Operacionais de maneira total, executá-lo por um determinado momento, para posteriormente retorná-lo ao disco. Saiba mais Atualmente os recursos de memória RAM têm sido disponibilizados para os mais diferentes dispositivos. Sendo assim é comum que as empresas do ramo de tecnologia estabeleçam algum nível de competitividade entre para disponibilizar serviços e produtos que atuem na chamada “fronteira tecnológica”. Mas que funcionalidades são estas e quais são as suas vantagens no gerenciamento de memória, de uma maneira geral? Sugerimos a leitura da reportagem que trata do uso da memória virtual RAM Plus disponibilizada em celulares Galaxy Samsung. Link: https://tecnoblog.net/noticias/2021/10/04/samsung-leva-4-gb-de-memoria-virtual-ram-plus-a-mais-celulares-galaxy/ _______ Síntese da aprendizagem Os segmentos: Código, Dados, Pilhas e Heap, auxiliam na subdivisão da memória física desde a execução de um código até o arquivamento de etapas da memória. O gerenciador de memória atua controlando as partes que serão utilizadas, alocando a memória para os processos e liberando com estes forem �nalizados. O swapping (troca de processos), tem por funcionalidade trazer cada processo de maneira total, executá-lo por um período, para posteriormente retorná-lo ao disco. A seguir, ilustramos os conceitos que foram aprendidos ao longo da aula. https://tecnoblog.net/noticias/2021/10/04/samsung-leva-4-gb-de-memoria-virtual-ram-plus-a-mais-celulares-galaxy/ https://tecnoblog.net/noticias/2021/10/04/samsung-leva-4-gb-de-memoria-virtual-ram-plus-a-mais-celulares-galaxy/ Disciplina Administração de Sistemas Operacionais Figura 6 | Regiões de memória virtual - Fonte: elaborada pelo autor. Figura 7 | Gerenciador de memória - Fonte: Song ([s. d., s. p.]). Disciplina Administração de Sistemas Operacionais Figura 8 | Swapping - Fonte: Song ([s. d., s. p.]). Referências Disciplina Administração de Sistemas Operacionais INSTITUTO DE INFORMÁTICA - UFRGS. Sistemas operacionais. Disponível em: http://www.inf.ufrgs.br/~asc/sisop/pdf/aula18.pdf. Acesso em: 17 dez. 2021. CARISSIMI, R. O.; TOSCANI, A. S. Sistemas operacionais. 4. ed. Editora Bookman, 2010. SONG, S. W. Memória virtual – paginação e segmentação. MAC0344 - Arquitetura de Computadores. IME/USP, [s. d.]. Disponível em: https://www.ime.usp.br/~song/mac344/slides07- virtual-memory.pdf. Acesso em: 7 fev. 2022. TANENBAUM, A. S.; BOS, H. Sistemas operacionais modernos. 4. ed. – São Paulo: Pearson Education do Brasil, 2016. Aula 2 Alocação de memória virtual Introdução da aula Olá, estudante! Quando tratamos de memória virtual o que vem a sua cabeça? Além de serem arquivos de paginação, a memória virtual é um espaço reservado no momento em que o sistema operacional é instalado no computador. Sendo assim, ao longo desta aula iremos observar os principais aspectos referentes à alocação de memória virtual principalmente naquilo que se refere à Unidade de Gerência de Memória (MMU), à introdução de uma tabela de mapeamento e à política http://www.inf.ufrgs.br/~asc/sisop/pdf/aula18.pdf https://www.ime.usp.br/~song/mac344/slides07-virtual-memory.pdf https://www.ime.usp.br/~song/mac344/slides07-virtual-memory.pdf Disciplina Administração de Sistemas Operacionais adotada na busca de páginas. É muito importante a sua concentração neste momento de auto estudo para que, juntos, possamos atingir os principais objetivos da disciplina. Bons estudos!! Conceituando a Memory Management Unit (MMU) Dentro do contexto que envolve os sistemas operacionais certamente veri�caremos que a gerência que envolve a utilização da memória pode ser considerada como fundamental, principalmente dentro das organizações empresariais. Os computadores seguem uma hierarquia de memória ao adotar uma combinação entre memórias voláteis e não voláteis, cabendo ao sistema operacional coordenar a utilização desta memória por meio do gerenciamento. Uma das funções do gerenciador é controlar efetivamente as partes das memórias aproveitadas ou não. Cabe também ao gerenciamento liberar espaços de memória no instante da �nalização do processo, além da alocação do espaço quando estes processos estão sendo executados. De acordo com Carissimi (2009, p. 154) a Memory Management Unit (MMU) ou Unidade de Gerência pode ser conceituada basicamente como um módulo de hardware que tem a responsabilidade de realizar o processo de mapeamento entre endereços virtuais e físicos, lembrando que a execução de um programa não necessita da sua inserção em espaços contíguos da memória principal. Geralmente a MMU se caracteriza por traduzir números de páginas virtuais para páginas físicas por meio de um cache chamado de Translation Lookaside Buffer (TLB), conforme se visualiza na �gura mais adiante. Este cache é formado por uma pequena quantidade de entradas, em que Disciplina Administração de Sistemas Operacionais cada entrada vai conter informações referentes a uma página (um bit con�gurado, o código de proteções, o quadro de página física ou número da página virtual). Importante mencionar que o TLB é consultado para localizar uma determinada página. Caso encontramos o “TLB hit” será obtido o número do bloco correspondente, o que é extremamente viável, se observarmos o princípio da localidade. Se porventura a parte da Tabela de Páginas inserida no TLB não conter a página almejada (TLB miss), é possível que parte desta tabela seja acessado na memória. Por �m, se a tabela não for encontrada na memória vai ocorrer uma interrupção (page fault) além de trazer a entrada almejada na tabela, ao mesmo tempo que uma parte dela será atualizada na memória física. A �gura a seguir traz a composição e as funcionalidades do MMU, demonstrando o mecanismo de tradução dos endereços. Figura 1 | Funcionalidades do MMU (tradução de endereços) - Fonte: elaborada pelo autor. Um ponto importante a ser discutido indica que, após a tradução, o endereço real poderá ser adotado possibilitando a memória principal ser efetivamente acessada. O mecanismo de tradução tem a responsabilidade de: 1. Atuar na manutenção das tabelas de mapeamento caracterizadas pela exclusividade direcionadas o processo de forma individualizada. 2. Estabelecer um relacionamento entre os endereços virtuais de um processo com as posições observadas na memória real. Geralmente os programas necessitam de uma compilação para que possam ser efetivamente executados dentro do sistema. Diversas ações (alocação de memória, código executável, Disciplina Administração de Sistemas Operacionais geração do código objeto, entre outros) acontecem entre o momento em que o programa é compilado e a sua efetiva execução. Videoaula: Conceituando a Memory Management Unit (MMU) Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Abordaremos quais os aspectos mais relevantes da Unidade de Gerência de Memória (MMU), onde trataremos dos seus preceitos fundamentais. Trataremos do gerenciamento direcionando os conceitos para os iniciantes na área de programação, onde será discutida as ideias principais referentes ao Back End para este público especí�co. Criando uma tabela de mapeamento Disciplina Administração de Sistemas Operacionais Quando tratamos do mecanismo de tradução é preciso observar, de fato, as suas características de maneira mais ampla. Direcionadas a cada processo, uma das suas funcionalidades é estabelecer as tabelas de forma exclusiva, mantendo um relacionamento direto entre os endereços virtuais do processo e as suas respectivas posições inerentes à memória real. A �gura a seguir traz o panorama geral do funcionamento da tabela e de suas respectivas relações: Figura 2 | Tabela de mapeamento - Fonte: elaborada pelo autor. Antes é preciso entender conceitualmente que mapeamento, de acordo com Zhirkov (2018, p. 30), trata da correspondência entre entidades, como a memória física e os arquivos, por exemplo, e as regiões de memória virtual. O momento em que o carregador consegue preencher o espaço de endereçamento do processo ou quando um processo solicita páginas a um sistema operacional, podem ser considerados como exemplos de mapeamento de memória Trata-se de uma estruturação de dados constituída para processos de forma individualizada. No momento em que um processo se encontra na fase de execução, é função do sistema utilizar uma tabela visando traduzir de seus endereços virtuais. Caso outro processo seja realizado, cabe ao sistema estabelecer uma relação de referência com a tabela de mapeamento presente no novo processo. Importante mencionar que o registrador é o responsável pela troca destas tabelas, indicando o posicionamentoinicial da tabela corrente, ao qual ocorrerá a atualização do registrador no momento em que houver uma alteração de contexto. Importante você observar, caro estudante, que o mecanismo adotado é extremamente relevante pois permite que o mapeamento ocorra em diversas células na memória principal. Se porventura este mapeamento ocorresse em cada célula dentro da memória principal, observaríamos um Disciplina Administração de Sistemas Operacionais espaço extenso ocupado pelas tabelas se no espaço de endereçamento virtualizado de um processo individualizado, o que tornaria a implementação do mecanismo extremamente inviável. Por conta desta situação, as tabelas acabam mapeando os blocos de dados, levando em consideração o tamanho, pois este determina a quantidade de entradas que estão inseridas nas tabelas de mapeamento. Sendo assim, quanto maior o bloco, haverá menos entradas nas tabelas de mapeamento. Quais as consequências desta relação? Estas tabelas certamente irão ocupar um espaço menor de memória. Dentro deste contexto é possível conceituar sobre a memória virtual por paginação: trata-se de uma técnica de gerenciamento de memória no qual o espaço de endereçamento virtual e real são segmentados em blocos de dimensões idênticas, ao qual chamamos de páginas de espaço virtual e de espaço real, respectivamente. Importante frisar que cada processo se caracteriza por apresentar a sua tabela de páginas. Além disso cada página virtual pertencente ao processo disponibiliza uma entrada na tabela (ETP), normalmente munida de informações referentes ao mapeamento que possibilitam ao sistema veri�car a página real correspondente. Videoaula: Criando uma tabela de mapeamento Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Abordaremos os conceitos mais relevantes sobre a tabela de mapeamento, em que trataremos dos seus aspectos mais fundamentais. Trataremos especi�camente sobre os tipos de mapeamento (direto, associativo e associativo por conjunto) de informações da memória principal dentro da memória cache, observando sua aplicação na arquitetura de computadores. Implantando as políticas de busca de páginas Disciplina Administração de Sistemas Operacionais Como podemos visualizar o mecanismo utilizado na memória virtual possibilita que um determinado programa, independente do seu código se encontre residente completamente dentro da memória principal, seja executado. Importante mencionar que a política adotada na busca de páginas estabelece o instante em que uma página será carregada e direcionada para a memória. Sendo assim é possível a�rmar que há basicamente duas estratégias visando este objetivo: a paginação por demanda e a paginação antecipada. Vamos observar cada uma delas. Considere que, o carregamento do disco direcionado para a memória de um determinado programa executável. De acordo com Silberschatz, Galvin e Gagne (2008, p. 244) uma alternativa viável seria carregar o programa completo dentro da memória física no instante que fosse executado. Entretanto, esta técnica apresenta um problema: há a chance de haver a necessidade inicial de ter um programa inteiro inserido na memória. Uma possibilidade que pode ser adotada é carregar inicialmente somente as páginas segundo a sua necessidade. Tal técnica é denominada de paginação por demanda. Disciplina Administração de Sistemas Operacionais Figura 3 | Paginação por demanda - Fonte: elaborada pelo autor. É possível observar que a (demand paging) as páginas referentes aos processos são deslocadas da memória do tipo secundária e direcionadas para a principal somente quando houver referenciação. Considerar somente as páginas que realmente necessárias à realização do programa para a memória considerada principal, este mecanismo acaba sendo o mais adequado. Sendo assim é possível considerar a possibilidade das partes que não foram realizadas pelo programa nunca sejam carregadas e direcionadas para a memória. A paginação antecipada (anticipatory paging ou prepaging), se caracteriza pelo fato de o sistema carregar a página referenciada e as demais páginas independentes ou não serem necessárias ao processo durante o seu processamento para a memória principal. Pode haver uma relevante redução de tempo em tratar de uma série de páginas da memória secundária, ao invés de carregar uma única vez, considerando que o programa está arquivado, de maneira sequencial, no disco. Por sua vez, o sistema terá, dentre outros aspectos, ocupado a memória principal de modo desnecessário, na hipótese de o processo não requerer páginas carregadas de modo antecipado. Disciplina Administração de Sistemas Operacionais Figura 4 | Paginação antecipada - Fonte: elaborada pelo autor. Momento do desenvolvimento de um processo ou no surgimento de um page fault: é possível considerar que este é o instante em que a técnica de paginação antecipada pode ser adotada. No instante em que um processo é desenvolvido, várias páginas do programa, inseridas na memória secundária, precisam ser efetivamente carregadas para a memória principal, gerando um número extensivo de page faults e diversas operações de leitura em disco. Normalmente a taxa de paginação apresenta uma tendência de retração, assim que as páginas são carregadas e direcionadas para a memória. Quando o sistema carregar uma série de páginas, a taxa de paginação do processo deverá reduzir de imediato e se estabilizar ao longo de um período de tempo. Adotando a mesma linha de pensamento, o sistema poderá carregar para a memória sempre que houver um page fault, as páginas adicionais, visando evitar operações de leitura em disco e novos page faults, de forma sucessiva. Videoaula: Implantando as políticas de busca de páginas Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Disciplina Administração de Sistemas Operacionais Abordaremos quais os aspectos mais relevantes das políticas de buscas de páginas, em que trataremos dos conceitos referentes à paginação por demanda e a paginação antecipada. Trataremos especi�camente as principais técnicas de memória (paginação e segmentação) discutindo os seus aspectos e as aplicações mais relevantes. Estudo de caso Uma empresa do ramo de tecnologia se destaca no mercado por oferecer serviços de alocação de memória, ao qual ela lidera. Você é consultor desta organização, atua na área de tradução de endereços de memória e acaba sendo requisitado para uma missão especí�ca: implantar uma unidade de gerenciamento de memória (MMU) em uma empresa cliente. Ao realizar uma análise inicial do sistema operacional você se depara com algumas questões fundamentais. A primeira observação está no fato da MMU analisada não estar conseguindo traduzir o número de páginas virtuais para as páginas físicas O segundo aspecto visualizado aponta a inexistência de um mecanismo de tradução a ser adotado, ou seja, não há uma metodologia de�nida para aplicação que demonstre as funcionalidades e a composição da unidade de gerência. O terceiro aspecto está relacionado ao mapeamento de memória implantado, observando qual o espaço de endereçamento virtual será observado. Sendo assim, indique qual o método adequado para condicionar a MMU na tradução de páginas, execute o mecanismo de tradução que poderá ser implantado no sistema operacional da empresa e desenvolva uma tabela de mapeamento que consiga sintetizar a organização da memória a ser utilizada. Disciplina Administração de Sistemas Operacionais Resolução do estudo de caso Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Para a solução deste Estudo decaso é preciso considerar três condições fundamentais: 1. Problemas sobre o método que condicione a MMU na tradução de páginas. 2. O mecanismo de tradução que poderá ser implantado 3. Desenvolvimento de uma tabela de mapeamento. O estudo exigiu que você buscasse no conteúdo estudado os instrumentos necessários para a solução destas questões. Solução 1 A empresa cliente utiliza o MMU para a tradução dos números de páginas virtuais para páginas físicas. Para que isso ocorra você pode utilizar um cache (Translation Lookaside Buffer (TLB) constituído por uma restrita quantidade de entradas. Cada entrada vai disponibilizar informações referentes a uma página. Solução 2 É preciso traduzir os endereços para que a memória principal seja efetivamente acessada. Neste contexto é preciso que você adote um mecanismo de tradução que vise atender duas demandas imediatas: agir na manutenção das tabelas de mapeamento e estabelecer um relacionamento entre os endereços virtuais e físicos. Solução 3 Outra ação importante no gerenciamento de memória da empresa cliente é a utilização de uma tabela de mapeamento. Sabendo que mapeamento trata da correspondência entre entidades e regiões de memória virtual, a tabela de mapeamento visando traduzir de seus endereços virtuais. Saiba mais Disciplina Administração de Sistemas Operacionais A alocação de memória, quando bem executada, auxilia no gerenciamento, na implementação de tabelas de mapeamento e na implementação de política das buscas das páginas. Mas um detalhe pode ser questionado: o que fazer quando este procedimento apresenta vulnerabilidades em seu sistema operacional? Para entender mais sobre este assunto sugerimos a leitura da reportagem que trata de uma das grandes vulnerabilidades que afetam o sistema operacional, o que pode abrir caminhos para ataques de hackers. Link: https://www.maistecnologia.com/falha-da-blackberry-qnx-deixou-carros-e-dispositivos- medicos-vulneraveis-a-ataques/ _______ Síntese de Aprendizagem A MMU (Memory Management Unit) ou Unidade de Gerência pode ser conceituado basicamente como um módulo de hardware que tem a responsabilidade de realizar o processo de mapeamento entre endereços virtuais e físicos. A tabela de mapeamento é uma estruturação de dados constituída para processos de forma individualizada. A paginação por demanda as páginas referentes aos processos são deslocadas da memória do tipo secundária e direcionadas para a principal somente quando houver referenciação A paginação antecipada se caracteriza pelo fato de o sistema carregar a página referenciada e as demais páginas independentes ou não serem necessárias ao processo durante o seu processamento para a memória principal. A seguir, ilustramos os conceitos que foram aprendidos ao longo da aula. https://www.maistecnologia.com/falha-da-blackberry-qnx-deixou-carros-e-dispositivos-medicos-vulneraveis-a-ataques/ https://www.maistecnologia.com/falha-da-blackberry-qnx-deixou-carros-e-dispositivos-medicos-vulneraveis-a-ataques/ Disciplina Administração de Sistemas Operacionais Figura 5 | MMU (Memory Management Unit) ou Unidade de Gerência - Fonte: Wikimedia Commons. Figura 6 | Tabela de mapeamento - Fonte: elaborada pelo autor. Disciplina Administração de Sistemas Operacionais Figura 7 | Paginação por Demanda e antecipada - Fonte: Gava Junior ([s. d., s. p.]). Referências Disciplina Administração de Sistemas Operacionais GAVA JUNIOR, D. Sistemas operacionais: gerenciamento de memória virtual. FATEC, [s. d.]. Disponível em: https://slidetodoc.com/sistemas-operacionais-gerenciamento-de-memria-virtual- sistemas-operacionais/. Acesso em: 7 fev. 2022. LAINE, J. M. Gerência de Memória. Disponível em: http://professor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/17785/material/AULA%20 13%20-%20Gerncia%20de%20Memria.pdf. Acesso em: 22 dez. 2021. SILBERSCHATZ, A.; GALVIN, P. & GAGNE, G. Sistemas operacionais. Editora Campus, 2000, 303 p. TANENBAUM, A. S. Modern operating systems. [S. l.: s. n.], 2008. ZHIRKOV, I. Programação em baixo nível: c, asembly e execução de programas na arquitetura intel 64. Editora Novatec. 2018. Aula 3 Gerenciamento de memória no Linux Introdução da aula Olá, estudante! O Sistema Linux, da mesma forma que ocorre no sistema Windows ou Mac OS, permite a execução de programas em um computador e demais dispositivos. Além disso, o fato de esse sistema ser de código aberto permite que ele seja livremente alterado e disseminado. Sendo https://slidetodoc.com/sistemas-operacionais-gerenciamento-de-memria-virtual-sistemas-operacionais/ https://slidetodoc.com/sistemas-operacionais-gerenciamento-de-memria-virtual-sistemas-operacionais/ http://professor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/17785/material/AULA%2013%20-%20Gerncia%20de%20Memria.pdf http://professor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/17785/material/AULA%2013%20-%20Gerncia%20de%20Memria.pdf Disciplina Administração de Sistemas Operacionais assim, ao longo desta aula, vamos debater sobre o gerenciamento de memória no Linux por meio das áreas segmentadas (texto, dados e pilhas), os comandos de gerenciamento e o uso prático do HTOP. Para tanto, é muito importante a sua concentração neste momento de autoestudo , a �m de que, juntos, possamos atingir os principais objetivos da disciplina. Bons estudos! Entendendo o gerenciamento de memória Linux Quanto ao Sistema Linux, precisamos, de imediato, entender o seu conceito principal e suas funcionalidades. Para Silberschatz, Galvin e Gagne (2015), o Linux pode ser entendido como um sistema operacional que se caracteriza por ser multiprogramado livre, tido como uma variação do sistema UNIX. Vale ressaltarmos que o LINUX é o núcleo (Kernel) do sistema operacional. Independentemente da versão do LINUX, o gerenciamento de memória adotado apresentará aspectos bastante semelhantes entre si. Para se ter uma ideia, os principais componentes que constituem um gerenciamento de memória estão relacionados a dois aspectos básicos: 1. Liberação e alocação de memória física. 2. Manipulação de memória virtual. Quanto às alocações de memória ocorridas no Linux, é possível a�rmar que elas ocorrem por meio de drivers, no momento da inicialização, ou por meio do alocador de páginas, depois da inicialização. Vale frisarmos que alguns alocadores de páginas são adotados por sistemas de memória virtual, conforme observamos na �gura a seguir: Disciplina Administração de Sistemas Operacionais Figura 1 | Alocador de páginas - Fonte: elaborada pelo autor. De acordo com o Silberschatz, Galvin e Gagne (2015), é possível a�rmar que o kmalloc() pode ser de�nido como um o alocador de tamanho variável; por sua vez, o slabs é visto como um alocador de memória voltado a estruturas de dados pertencentes ao sistema; por �m, tem-se o cache de páginas, que é adotado para arquivar, em cache, as páginas que pertencem aos arquivos. Quando observamos o sistema Linux, naquilo que trata da manipulação da memória virtual, é possível visualizar os seus respectivos espaços de endereçamento referentes aos processos executados. Tais espaços podem ser divididos, basicamente, em três segmentos, conforme a �gura a seguir: Disciplina Administração de Sistemas Operacionais Figura 2 | Segmentação dos espaços de endereçamentos - Fonte: elaborada pelo autor. O segmento Texto está ligado à área em que se localiza o chamado “código executável”, pertencente aos programas por meio de instruções de máquina e que se caracteriza por ser uma região protegida contra gravações. É importante frisarmos que essa segmentação é estática e pode ser disseminada em uma diversidade de processos, adotando um modelo de memória compartilhada. Trata-se de uma segmentação que envolve os dados, que arquiva elementos fundamentais para a execução e está relacionada às variáveis pertencentes aos programas (numéricos, strings e vetores). Uma das características da área de dados é o dinamismo, fazendo como ela seja elevada ou retraída ao longo do processo de execução do programa.Por �m, temos, na área de Pilhas, que são responsáveis por arquivar informações de controle do ambiente do processo, um “system call”, por exemplo. Trata-se de uma área que aumenta de forma dinâmica, partindo do endereçamento mais elevado para o mais baixo, ou seja, ela começa no topo do espaço de endereçamento pertencente à memória virtual e segue no sentido do menor valor atribuído ao endereçamento dentro do Sistema Linux. Sendo assim, �ca evidente a importância em se determinar quais as regiões mais importantes dentro do Sistema Linux para que a segmentação ocorra de maneira adequada. Videoaula: Entendendo o gerenciamento de memória Linux Disciplina Administração de Sistemas Operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Abordaremos, de forma abrangente, quais são os aspectos considerados mais relevantes do gerenciamento de memória Linux, em que trataremos dos seus preceitos fundamentais, bem como visualizaremos como o Kernel Linux 5.16-rc8 auxilia, de fato, no processo de gerenciamento de memória, evidenciando os seus aspectos ligados à segurança, aos processadores e aos grá�cos. Comando de gerenciamento do Linux Quando se trata de gerência de memória, processamentos e operações dentro do sistema Linux, é preciso considerar os comandos mais importantes utilizados para a execução desses processos. Observaremos, a seguir, um conjunto de chaves, consideradas as mais importantes dentro do sistema Linux, e suas respectivas funções. Bem, um comando de gerenciamento bastante útil é o comando free, no sentindo de monitorar o uso da memória do sistema. De acordo com Mota Filho (2012), esse comando se caracteriza por apresentar espaços livres e que são ocupados na memória virtual (RAM +Swap). Outro aspecto Disciplina Administração de Sistemas Operacionais importante é o fato de esse comando ser disponibilizado por meio das suas respectivas opções: caso isso não ocorra, as informações disponíveis serão expostas em forma de kilobytes, o que torna a leitura dos valores mais complexa. Sendo assim, é normal inserir algumas “opções”, conforme observamos no quadro a seguir: Quadro 1 | Opções do comando - Fonte: adaptado de Mota Filho (2012). Outro comando importante é o memstat, que, segundo Mota Filho (2012), é responsável por apresentar a utilização da memória por parte dos distintos processos, sendo visto como fundamental para se veri�car qual processo está consumindo memória de maneira mais exagerada. Um ponto importante a ser destacado é o fato de o comando memstat listar todos os processos considerados acessíveis e executáveis, além das bibliotecas que são compartilhadas e que usam memória virtual. Tal lista será obtida de forma completa se esse comando for executado como um “root”, o que possibilitará o acesso de dados de todos os processos em execução. Por sua vez, o comando pmap visa a exibir um mapa de utilização de memória por um ou diversos processos, ou seja, demonstra, de maneira detalhada, como um processo usa a memória, bem como outros processos dos quais ele estabeleça algum nível de dependência, conforme vemos no quadro a seguir: Disciplina Administração de Sistemas Operacionais Quadro 2 | Exemplo de pmap - Fonte: adaptado de Mota Filho (2012). Dentro desse contexto, o comando top tem por característica demonstrar os processos que se encontram em execução no sistema. Podemos considerá-lo como um dos principais instrumentos utilizados pelos administradores de sistema e para monitorar a carga do sistema. Certamente, é visto como um comando com alto nível de interatividade, ou seja, outros comandos estarão disponíveis no instante em que ele estiver sendo executado. Por �m, podemos frisar a importância do comando HTOP dentro do Sistema Linux, no sentido de considerá-lo como uma evolução do comando top, pois traz uma interface mais intuitiva e com maior dinamismo, conforme a �gura a seguir: Disciplina Administração de Sistemas Operacionais Figura 3 | Comando HTOP - Fonte: elaborada pelo autor. Faz-se importante mencionar que o HTOP possui um nível de re�namento em seu OUTPUT se comparado como o comando top, mas é extremamente útil naquilo que diz respeito à auditoria do sistema. Videoaula: Comando de gerenciamento do Linux Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Abordaremos, de forma abrangente, quais os aspectos considerados mais relevantes dos comandos do gerenciamento do Linux, em que trataremos dos seus preceitos fundamentais, bem como visualizaremos como o comando Linux vmstat, utilizado no processo de gerenciamento, auxilia na execução do sistema, abordando quais as suas opções, sintaxes e principais aspectos. Disciplina Administração de Sistemas Operacionais Gerenciamento de memória por meio do comando HTOP O monitoramento de um servidor ou de um Desktop dentro do sistema Linux, normalmente, exige um nível mais acurado de observação. Dentro desse contexto, é possível observar a importância do comando HTOP, sendo fundamental no sentido de auxiliar na interpretação dos parâmetros utilizados, das cores e, principalmente, das informações disponibilizadas dentro do gerenciamento de uma forma geral. De acordo com Almagro (2015, p. 11), o comando HTOP pode ser de�nido como um aplicativo de modo de texto direcionado para o monitoramento do sistema “full time” (tempo real), similar ao comando TOP, além de ser visto como um visualizador de processos. Esse comando se caracteriza pela maior atração, intuitividade, simplicidade e por disponibilizar uma listagem completa dos processos que se encontram em execução. Para se ter uma ideia de como essa ferramenta de fato funciona, é preciso compreender o seu processo de instalação e execução dentro do Linux. O início da ferramenta exige a execução do comando htop, em que é possível observar uma tela apresentando saídas mais coloridas e dinâmicas, conforme a �gura a seguir: Disciplina Administração de Sistemas Operacionais Figura 4 | Tela com comando HTOP - Fonte: elaborada pelo autor. A princípio, é possível visualizar, no topo da tela, a barra principal, em que são disponibilizadas as informações sobre CPU, Memória e Load Average. A CPU vai trazer informações referentes aos processos, pedidos de interrupção ou tempo de espera do sistema; a memória trará menos indicadores, porém vai indicar o buffer das páginas e as páginas que se encontram em cache, por exemplo; por �m, é possível visualizar o Load Average, que indica a média da quantidade de processos que se encontram no estado de interrupção ou execução. Outro aspecto importante a ser observado na execução do comando HTOP está diretamente relacionado aos seus processos. Vamos descrevê-los com mais detalhes no quadro a seguir: Disciplina Administração de Sistemas Operacionais Quadro 3 | Processos de execução do comando HTOP - Fonte: elaborado pelo autor. Outro aspecto importante a ser debatido é o fato de que os processos podem ser cancelados; para isso, é preciso selecionar o processo utilizando teclas de seta, em seguida, pressionar a tecla F9, posteriormente, a tecla Enter e, por �m, o sinal “encerrar”. Toda essa visão permitirá, ao usuário, a compreensão total dos processos que estão consumindo ou executando recursos dentro do seu sistema. A saída do comando HTOP ocorre ao pressionar a tecla F10 ou Ctrl +C. Videoaula: Gerenciamento de memória por meio do comando HTOP Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Abordaremos, de forma abrangente, quais são os aspectos consideradosmais relevantes do HTOP no gerenciamento do Linux, em que trataremos dos seus preceitos fundamentais, bem como visualizaremos os principais recursos do HTOP para viabilizar o processo de monitoramento do Sistema Linux, evidenciando seus principais aspectos dentro do sistema. Disciplina Administração de Sistemas Operacionais Estudo de caso Aplicando comandos de gerenciamento de memória Uma empresa do ramo de tecnologia se destaca no mercado por oferecer serviços de gerenciamento de memória, principalmente para sistemas de código aberto, como o Linux, que exerce domínio no mercado. Você, por sua vez, ocupa a função de consultor técnico dessa organização, atuando no setor de controle de comandos para os processos de gerenciamento, mas acabou sendo requisitado para uma missão especí�ca: melhorar os processos internos da empresa por meio de um gerenciamento de memória do sistema Linux. Ao realizar uma análise inicial do sistema, você acabou se deparando com algumas questões essenciais. A primeira observação está relacionada ao fato de que o espaço de endereçamento não disponibiliza uma segmentação adequada das áreas; o segundo aspecto indica que os comandos de gerenciamento do Linux precisam listar todos os processos disponíveis e que irão utilizar a memória por um ou diversos processos; e o terceiro fator está relacionado à necessidade de um monitoramento do sistema em tempo real Sendo assim, a partir da sua função de consultor, descreva quais segmentações podem ser inseridas no espaço de endereçamento, quais comandos são adequados para atender a essa demanda do Sistema Linux e, por último, diante dos diagnósticos observados, informe qual a ferramenta necessária para efetuar o monitoramento do sistema Linux. Resolução do estudo de caso Disciplina Administração de Sistemas Operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Para a solução do Estudo de caso, é preciso considerar três condições fundamentais: 1. A segmentação das regiões inerentes ao sistema. 2. Os comandos de gerenciamento de memória no LINUX. 3. As especi�cidades do comando HTOP. O estudo exigiu que você buscasse, no conteúdo estudado, os instrumentos necessários para a solução dessas questões. Solução 1 A empresa pode adotar até três modelos de segmentação em relação ao espaço de endereçamento dentro do seu próprio sistema: o primeiro é o segmento Texto, que está ligado à área em que se localiza o “código executável” pertencente aos programas por meio de instruções de máquina; a segunda segmentação envolve os dados, arquivando elementos fundamentais para a execução, e está relacionada às variáveis pertencentes aos programas; e a área de Pilhas, que serão responsáveis por arquivar informações de controle do ambiente do processo, como um “system call”, por exemplo. Solução 2 A organização pode adotar um conjunto de comandos que auxiliem na execução dos processos no sistema Linux. Para resolver as demandas solicitadas, é preciso adotar o comando memstat, que é responsável por listar todos os processos acessíveis e executáveis, além do comando pmap, que a visa exibir um mapa de utilização de memória por um ou diversos processos. Solução 3 Você, na condição de consultor, vai indicar o comando HTOP, por se tratar de um aplicativo de modo de texto direcionado para o monitoramento do sistema “full time” (tempo real) similar ao comando TOP, além de ser visto como um visualizador de processos. Saiba mais Disciplina Administração de Sistemas Operacionais O sistema Linux se caracteriza pela diversidade de comandos utilizados para a execução dos seus processos. Recentemente, o sistema disponibilizou um aplicativo denominado OTPClient, visando ao gerenciamento de tokens, mas como obter esse aplicativo? Bem, deixamos à disposição o link da reportagem intitulada Guia passo a passo para instalar o gerenciador OTPClient no Linux, que demonstra como baixar esse aplicativo e como ele irá atuar gerenciando tokens modelo TOTP e HOTP. Link: https://sempreupdate.com.br/guia-passo-a-passo-para-instalar-o-gerenciador-otpclient-no- linux/. Acesso em: 10 fev. 2022. _______ Síntese de aprendizagem Quando observamos o sistema Linux, naquilo que trata da manipulação da memória virtual, vemos os seus respectivos espaços de endereçamento referentes aos processos executados. Tais espaços podem ser divididos, basicamente, em três segmentos: texto, dados e pilhas. Quando se trata de gerência de memória, processamentos e operações dentro do sistema Linux, é preciso considerar os comandos mais importantes utilizados para a execução desses processos. O comando HTOP pode ser de�nido como um aplicativo de modo de texto direcionado para o monitoramento do sistema “full time” (tempo real), similar ao comando TOP, além de ser visto como um visualizador de processos. A �gura a seguir sintetiza os conceitos que foram aprendidos ao longo da unidade: https://sempreupdate.com.br/guia-passo-a-passo-para-instalar-o-gerenciador-otpclient-no-linux/ https://sempreupdate.com.br/guia-passo-a-passo-para-instalar-o-gerenciador-otpclient-no-linux/ Disciplina Administração de Sistemas Operacionais Fonte: elaborada pelo autor. Referências Disciplina Administração de Sistemas Operacionais ALMAGRO, D. S. Administracion y auditoria de los servicios de mensajeira eletrônica. Málaga: IC Editorial, 2015. MOTA FILHO, J. E. Descobrindo o Linux: entenda o sistema operacional GNU/Linux. 3. ed. São Paulo: Novatec Editora, 2012. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas operacionais. 9. ed. Rio de Janeiro: Editora LTC, 2015. Aula 4 Gerenciamento de memória no Windows Introdução da aula Olá, estudante! Gerenciar a memória de um computador é vital para o uso e�ciente dos recursos de hardware disponibilizados ao sistema operacional na execução de tarefas. Esse gerenciamento é feito de forma automática pelos componentes do sistema operacional, logo, os recursos físicos são administrados para que sempre estejam disponíveis ao uso dos programas com maior prioridade. Apesar de o processo de gerência acontecer normalmente, sem a intervenção humana, um administrador de sistemas deve conhecer o comportamento do sistema operacional, para Disciplina Administração de Sistemas Operacionais otimizar o uso da memória física, que é um componente caro, do ponto de vista �nanceiro, e também escasso em termos de capacidade quando comparamos com outros tipos de memorias (não voláteis), como HDs e pen drivers. Nesta aula, abordaremos a gestão da memória em sistemas operacionais Windows, sob o aspecto do seu funcionamento geral. Entretanto, é importante que você aprofunde seus conhecimentos a respeito das especi�cidades e con�gurações das diferentes versões do Windows. Como funciona a gerência de memória no Windows Os sistemas são desenvolvidos para que os softwares não ocupem muito espaço de memória, visando otimizar o uso de hardware. Apesar de o custo e a capacidade de fabricação dos componentes eletrônicos terem melhorado ao longo do tempo, a demanda dos sistemas por mais capacidade computacional também cresceu. Geralmente, os programas são escritos em blocos, para que possibilitem o armazenamento em memórias secundárias, não voláteis, tais como discos, �tas ou memórias �ash. Isso é possível, pois o sistema operacional (SO) mantém na memória principal (memória RAM) apenas os blocos de código que serão executados no processo. Logo, os algoritmos de gerência de memória precisam utilizar métodos para otimizar o uso do hardware, priorizando os programas mais importantes. Para que não faltem recursos, o SO faz a gestão da memória física através de uma espécie de interface de referência, conhecida como memória virtual. Utiliza os conceitos de swapping, discutidos nas aulas anteriores, para gerenciar o que está alocado na memória física e o que está na memória virtual (MACHADO, 2011).Disciplina Administração de Sistemas Operacionais A memória virtual é utilizada para endereçar todos os processos que deverão ser executados na memória física (memória real). O gerenciador de memória utiliza o método de paging (em português paginação) para administrar o espaço físico e o virtual. Se a memória física não for su�ciente para lidar com determinado processo, o gerenciador de memória irá sequenciar as Threads (pequenas partes ou passos do processo), para que aguardem até que exista uma área livre na memória física, que possua o tamanho adequado. Esse processo acontece repetidamente e automaticamente, até que a tarefa seja �nalizada ou que o processo seja interrompido e os recursos sejam liberados para uso de novos processos (SINHA, 2015). Figura 1 | Relação entre as memórias virtual e física - Fonte: adaptada de Sinha (2015). Conforme apresentado na Figura 1, o SO realiza a interface entre todos os processos em sua memória virtual, mapeando o endereço físico onde estão gravados no hardware, ou seja, a memória física, não sendo possível que um programa acesse diretamente o endereçamento físico, acessa apenas o endereço virtual. Esse conceito é fundamental, pois garante que os processos funcionem independente do hardware por trás de sua execução. No Windows, a paginação pode acontecer de duas formas (SINHA, 2015): Paginação de disco: ocorre quando o disco é utilizado para estender a memória RAM. O gerenciador de memória reserva um espaço criando um arquivo de paginação, utilizado quando não existir memória física su�ciente para executar os processos. Esse tipo de paginação introduz um alto consumo de CPU e pode deixar os processos ainda mais lentos, esse efeito é conhecido como thrashing. Paginação por demanda: somente as Threads especí�cas das tarefas que serão utilizadas imediatamente nos processos em execução serão carregadas na memória RAM, as demais Disciplina Administração de Sistemas Operacionais Threads, que geralmente �cam em segundo plano, não são carregadas do disco para a memória principal até que sejam necessárias. O Windows implementa o gerenciamento de memória virtual através de um conjunto de serviços, que mapeiam os arquivos na memória, fornecendo suporte a uma grande área de memória e de forma subjacente suporta o gerenciamento da memória cache. Cada processo de 32 bits criado no Windows possui seu próprio endereço virtual, o que permite manipular 4 Gigabytes de memória, no entanto, cada processo de 64 bits possui espaço para endereçamento virtual de 8 Terabytes (SCHOFIELD, 2021). Videoaula: Como funciona a gerência de memória no Windows Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Neste vídeo, você irá conhecer os conceitos básicos sobre o gerenciamento de memória no Windows. Iremos aprender como calcular o tamanho de memória utilizado por um conjunto de trabalho em um processo no Windows e identi�car quanto de memória física e virtual estão disponíveis no Windows através do Gerenciador de Tarefas. Por que gerenciar a memória Disciplina Administração de Sistemas Operacionais O gerenciamento da memória é essencial para qualquer sistema operacional moderno, pois com o uso contínuo da virtualização e a constante necessidade de otimização de recurso, cada vez mais os aplicativos demandam a necessidade do uso de memória, isso gera a constante necessidade de compartilhamento dos recursos, através dos métodos que discutimos na seção anterior. Caso a memória não seja corretamente administrada, faltarão recursos para aplicações importantes e que realizam a carga de trabalho mais importante, sejam computadores servidores ou desktops. De acordo com Kerner (2019), as técnicas de gerenciamento de memória evitam erros que podem levar a instabilidade e falhas no SO e aplicativos. Ainda de acordo com o autor, o gerenciamento da memória maximiza a disponibilidade de memória para os programas, permite a reutilização da memória e a recuperação dos dados que não estão em uso e também ajudam a estender a memória física disponível em casos de recursos limitados. Comumente, os administradores de sistemas recebem reclamações de seus usuários, que solicitam a ampliação dos recursos de seus computadores pessoais (desktops). Todavia, nem sempre é possível ampliar a memória RAM, seja pela falta de pentes de memória ou slots de expansão. Apesar disso, antes mesmo de decretarmos que um hardware precisa ser ampliado ou substituído, é necessário primeiro analisar o uso da memória. Essa prática visa identi�car como o recurso está sendo compartilhado entre os processos residentes no sistema operacional. O monitor de recursos do Windows pode ser utilizado para diagnosticar a disponibilidade de recursos de disco, CPU e memória. A ferramenta nativa no Windows fornece uma visão de uso dos recursos e quanto cada aplicações consome de memória. Podemos obter estatísticas de uso, exportar os logs, visualizar grá�cos, analisar em tempo real ou habilitar a coleta de informações em determinado período. No monitor, também podemos con�gurar alertas para que o sistema operacional noti�que o administrador quando determinados limites de uso (em inglês, triggers) forem alcançados, e assim por diante (ASSAF, 2021). Disciplina Administração de Sistemas Operacionais A Figura 2 a seguir mostra a aba do monitor de recursos, onde são apresentadas as informações sobre o uso de memória de cada processo residente no SO. Na parte inferior da aba, podemos veri�car um resumo dos dados relacionados ao uso da memória com os rótulos: i) memória reservada para hardware; ii) memória em uso; iii) memória modi�cada; iv) memória em espera; e v) memória livre. No lado direito da aba são exibidos grá�cos do consumo da memória física em uso, a quantidade de carga de memória que está comprometida e as falhas graves no uso da memória. Figura 2 | Monitor de recursos do Windows - Fonte: captura de tela do monitor de recursos do Windows. O monitor de recursos é uma ferramenta poderosa, para que o administrador de sistemas Windows consiga identi�car falhas e �nalizar processos que, apesar de não estarem mais em uso, estejam consumindo recursos em vão. Ainda podemos executar uma análise mais detalhada através de �ltros de processos, etc. (GUSSO, 2020). Munido dessas informações, você, enquanto pro�ssional, poderá tomar ações de contorno e mitigação de problemas, como a exclusão de determinados processos da inicialização do computador e até mesmo a remoção de programas não utilizados ou indesejados, como Spywares, Malwares, vírus, entre outros. Videoaula: Por que gerenciar a memória Este conteúdo é um vídeo! Disciplina Administração de Sistemas Operacionais Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Neste vídeo, vamos explorar o monitor de recursos do Windows. Discutiremos como analisar os processos que estão em execução no sistema operacional. Além disso, vamos aprender onde obter mais informações sobre o processo em execução e como �nalizar um processo sem uso que está consumindo muito recurso de memória. Principais ferramentas para gerenciamento de memória Se o sistema operacional está apresentando problemas como travamento, lentidão ou está instável, um dos primeiros pontos a serem investigados é justamente a memória física. Essa veri�cação faz parte da rotina de um administrador de sistemas experiente. Existem diversas formas de avaliar o uso da memória física e virtual, para determinar se o sistema operacional possui algum parâmetro equivocado, se existe um programa indesejado consumindo todos os recursos ou se de fato existe um problema na memória física. De forma nativa, o Windows possibilita executar o gerenciamento da memória física e virtual, para isso o administrador do sistema operacionaldeve abrir o prompt de comando do Windows (MS-DOS) e utilizar o utilitário MEM, conforme podemos ver na Figura 3. O comando exibe as informações referente às áreas de memória que estão em uso, assim como as áreas livres. Além Disciplina Administração de Sistemas Operacionais disso, mostra quais programas estão carregados na memória do subsistema do Windows, o MS- DOS (GUEDES, 2021). Figura 3 | Resultado do comando MEM - Fonte: captura de tela do prompt de comando do Windows. Na Figura 3, o resultado do comando MEM é exibido na tela do prompt de comandos, podemos veri�car o tamanho total da memória física instalada e disponível para uso dos sistemas. Também podemos veri�car outros itens, como a memória estendida e superior. O comando possibilita a exibição de várias informações sobre como o sistema operacional está utilizando os recursos de memória disponível. Ainda a respeito do uso da memória, podemos utilizar o as opções (MURDOCK, [199-?]): /p – exibe o status dos programas. /c – exibe os programas que estão na memória convencional e superior, classi�cando-os de acordo com o uso de memória. /d – exibe as informações sobre a quantidade de memória livre, tanto para a memória convencional quanto para a superior. Caso exista a suspeita de um problema na memória física (RAM), pode-se utilizar a ferramenta de diagnóstico de memória do Windows, que está disponível nas versões mais atuais do Windows, a partir do Windows 7 (HOFFMAN, 2021). Para executar a ferramenta de diagnósticos de memória, abra a caixa “Executar”, localizada no menu iniciar do SO, ou pressione as teclas Windows + R. Na caixa Executar digite o comando “mdsched.exe” e a ferramenta de diagnósticos abrirá. Na ferramenta selecione a primeira opção: “Reiniciar agora e veri�car se há problemas”, conforme apresentado na Figura 4. Disciplina Administração de Sistemas Operacionais Figura 4 | Diagnóstico de memória do Windows - Fonte: captura de tela do diagnóstico de memória do Windows. O computador será reiniciado e a ferramenta de diagnósticos de memória do Windows iniciará antes do sistema operacional, conforme a Figura 5. Espere o diagnóstico �nalizar e deixe o sistema operacional inicializar normalmente. Disciplina Administração de Sistemas Operacionais Figura 5 | Execução do diagnóstico de memória - Fonte: captura de tela do diagnóstico de memória do Windows. Para visualizar o resultado do teste, entre no visualizador de eventos do Windows localizado em Painel de controle > Ferramentas administrativas do Windows > Visualizador de eventos. Dentro do visualizador de eventos entre em Log do Windows > Sistema e depois cliquem “Localizar”. Na caixa de pesquisa digite “memoryDiagnostic”, conforme demonstrado na Figura 6. Para �ltrar os eventos exibidos no centro da janela, clique em “Localizar Próxima”, o diagnóstico de memória será localizado e você poderá visualizar o resultado do teste, conforme o exemplo na Figura 7. Disciplina Administração de Sistemas Operacionais Figura 6 | Localizando o relatório do diagnóstico de memória - Fonte: captura de tela do visualizador de eventos do Windows. A Figura 7 mostra um exemplo do resultado do diagnóstico de memória, para o exemplo não foram encontrados erros. Disciplina Administração de Sistemas Operacionais Figura 7 | Relatório do diagnóstico de memória - Fonte: captura de tela do diagnóstico de memória do Windows. Conforme aprendemos, o Windows disponibiliza ferramentas que possibilitam analisar erros sistêmicos e físicos, associados ao recurso de memória de um computador. Conhecer e manipular as ferramentas disponíveis no sistema operacional é uma competência esperada pelas organizações de um bom administrador de sistemas operacionais. Videoaula: Principais ferramentas para gerenciamento de memória Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Neste vídeo, vamos explorar uma ferramenta ainda mais completa para diagnosticar erros de memória, o MenTest86. Vamos utilizá-la para analisar a memória física do computador com o intuito de identi�car possíveis problemas de hardware. Estudo de caso Disciplina Administração de Sistemas Operacionais A inanição de recursos, também conhecida por seu termo em inglês como Starvation, pode causar a de�ciência e o mau funcionamento nos sistemas computacionais. Assim como os seres humanos, que podem ter uma desnutrição quando não se alimentam adequadamente, os sistemas operacionais podem falhar e em casos mais severos serem corrompidos. Contudo, diferente dos seres humanos, um sistema operacional pode ser reinstalado após a correção de um problema de hardware ou software. A inanição de recursos em um SO ocorre quando um programa de baixa prioridade está solicitando um recurso, porém o SO não pode atendê-lo, pois um programa com maior prioridade está consumindo todos os recursos por um tempo muito longo. Você, como recém-contratado de uma empresa de tecnologia, analisou o sistema operacional dos principais servidores e depois de algumas horas identi�cou que, após uma mudança na con�guração na solução de antivírus centralizada da empresa, o agente do antivírus dos servidores passou a consumir mais recursos do que o habitual, causando uma lentidão generalizada nos serviços em rede. Diante desse cenário, apresente quais ações foram tomadas para identi�car o consumo excessivo de recursos de memória e aponte quais as possíveis ações de contorno e solução do problema. Resolução do estudo de caso Este conteúdo é um vídeo! Disciplina Administração de Sistemas Operacionais Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Para solucionar o estudo de caso apresentado, é preciso considerar a mudança na con�guração do serviço de antivírus centralizado, que indica que a alteração de alguma con�guração no serviço está demandando muito mais recursos computacionais do que o disponível atualmente nos servidores da empresa. Na prática, é comum que uma mudança de con�guração em componentes do sistema ou aplicativos impacte de forma negativa em outros serviços adjacentes, quanto mais serviços integrados ao sistema operacional existirem, mais complexo será o gerenciamento do SO e de seus recursos, em especial a gestão do uso da memória. O estudo de caso apresentado exigiu que você buscasse dentro do conteúdo abordado os instrumentos necessários para resolver as duas questões centrais levantadas. Solução do item 1: Para identi�car o consumo excessivo de memória do antivírus, o administrador do sistema operacional pode utilizar o monitor de recursos do Windows para monitorar o uso em tempo real da memória para cada um dos aplicativos em execução. Através do monitor de recursos o administrador conseguirá veri�car que o agente do antivírus é o processo que está consumindo a maior quantidade de memória, em detrimento dos demais processos. Cabe salientar que o antivírus por ser um componente de segurança, geralmente tem prioridade de execução sobre os demais processos, não sendo recomendado que o administrador diminua a prioridade do antivírus, pois isso pode deixar o sistema operacional vulnerável às ameaças cibernéticas. Solução do item 2: Como medida de contorno inicial, você pode �nalizar a execução do processo de varredura, análise em tempo real ou qualquer outro processo que o antivírus estiver executando de forma indiscriminada. Após a remediação inicial, o administrador deverá, juntamente com a equipe responsável pela mudança, efetuar o processo de rollback (traduzindo do inglês, retrocesso) das con�gurações anteriores ou aplicar a correção adequada, buscando um equilíbrio entre a necessidade da con�guração e a operação dos sistemas. Saiba mais Disciplina Administração de Sistemas Operacionais Aumentar a memória virtualdo sistema operacional Windows só é indicado quando a memória física de um computador for realmente muito limitada, a ponto de não permitir a execução de um processo grande ou de vários processos de forma simultânea (SINHA, 2015). Alguns softwares podem auxiliar um administrador de sistemas na identi�cação de processos que podem ser liberados da memória principal do computador, de forma automática, quando os recursos estiverem limitados, um exemplo desse tipo de ferramenta é o Wise Memory Optimizer, disponível para download em: http://www.wisecleaner.com/wise-memory-optimizer.html. _______ http://www.wisecleaner.com/wise-memory-optimizer.html Disciplina Administração de Sistemas Operacionais Figura 8 | Síntese conceitual - Fonte: elaborada pelo autor. Referências Disciplina Administração de Sistemas Operacionais ASSAF, W. et al. Monitorar o uso da memória - SQL Server. Microsoft.com. 2021. Disponível em: https://docs.microsoft.com/pt-br/sql/relational-databases/performance-monitor/monitor- memory-usage?view=sql-server-ver15. Acesso em: 8 jan. 2022. GUEDES, K. Lista completa de comandos do MS-DOS. TopGadget. 2021. Disponível em: https://www.topgadget.com.br/howto/tech/lista-completa-de-comandos-do-ms-dos.htm. Acesso em: 11 jan. 2022. GUSSO, L. Como usar o Monitor de Recursos (resmon) do Windows 10. Pro�ssionais TI. 2020. Disponível em: https://www.pro�ssionaisti.com.br/como-utilizar-o-monitor-de-recursos-resmon- do-windows-10/. Acesso em: 9 jan. 2022. HOFFMAN, C. How to Test Your Computer’s RAM for Problems. How-To Geek. 2021. Disponível em: https://www.howtogeek.com/260813/how-to-test-your-computers-ram-for-problems/. Acesso em: 11 jan. 2022. KERNER, S. M. What is Memory Management? ESF, Enterprise Storage Forum. 2019. disponível em: https://www.enterprisestorageforum.com/hardware/memory-management/. Acesso em: 9 jan. 2022. MACHADO, F. B.; MAIA, L. P. Arquitetura de Sistemas Operacionais. 4. ed. Editora LTC, 2011. MURDOCK, E. E. Command: MEM. Csulb.edu. [199-?]. Disponível em: https://home.csulb.edu/~murdock/mem.html. Acesso em: 11 jan. 2022. SCHOFIELD, M. Espaço de Endereço Virtual (Gerenciamento de Memória) - Win32 apps. Microsoft.com., 2021. Disponível em: https://docs.microsoft.com/pt- br/windows/win32/memory/virtual-address-space. Acesso em: 7 jan. 2022. SINHA, S. Physical and Virtual Memory in Windows 10. Microsoft.com. 2015. Disponível em: https://answers.microsoft.com/en-us/windows/forum/all/physical-and-virtual-memory-in- windows-10/e36fb5bc-9ac8-49af-951c-e7d39b979938. Acesso em: 7 jan. 2022. , Unidade 4 Virtualização e Conteinerização Aula 1 Conceitos básicos de virtualização Introdução da aula https://docs.microsoft.com/pt-br/sql/relational-databases/performance-monitor/monitor-memory-usage?view=sql-server-ver15 https://docs.microsoft.com/pt-br/sql/relational-databases/performance-monitor/monitor-memory-usage?view=sql-server-ver15 https://www.topgadget.com.br/howto/tech/lista-completa-de-comandos-do-ms-dos.htm https://www.profissionaisti.com.br/como-utilizar-o-monitor-de-recursos-resmon-do-windows-10/ https://www.profissionaisti.com.br/como-utilizar-o-monitor-de-recursos-resmon-do-windows-10/ https://www.howtogeek.com/260813/how-to-test-your-computers-ram-for-problems/ https://www.enterprisestorageforum.com/hardware/memory-management/ https://home.csulb.edu/~murdock/mem.html https://docs.microsoft.com/pt-br/windows/win32/memory/virtual-address-space https://docs.microsoft.com/pt-br/windows/win32/memory/virtual-address-space https://answers.microsoft.com/en-us/windows/forum/all/physical-and-virtual-memory-in-windows-10/e36fb5bc-9ac8-49af-951c-e7d39b979938 https://answers.microsoft.com/en-us/windows/forum/all/physical-and-virtual-memory-in-windows-10/e36fb5bc-9ac8-49af-951c-e7d39b979938 Disciplina Administração de Sistemas Operacionais A virtualização se tornou uma abordagem indispensável em computação atual, pois permite que uma única máquina física possa hospedar vários computadores virtuais. Os computadores virtualizados são segmentados pela camada de software. Assim, os desenvolvedores podem executar múltiplos sistemas operacionais independentes em um mesmo hardware. Quando aplicamos corretamente as diversas técnicas de virtualização, um administrador de sistemas operacionais pode diminuir os requisitos de hardware e aumentar a capacidade disponível de uma máquina. Essa redução do desperdício de processamento – ou a melhor distribuição de recursos – elimina custos �nanceiros associados a aquisição e manutenção de hardware de servidores que seriam subutilizados. Nesta unidade, vamos conhecer os conceitos de virtualização, aprenderemos a identi�car os tipos de virtualização e a reconhecer os principais desa�os de ambientes virtualizados. Utilize os conceitos que serão abordados para aprofundar os seus estudos, pois um pro�ssional que atua com a virtualização de sistemas operacionais é altamente requisitado no mercado de trabalho. Conceitos de virtualização Disciplina Administração de Sistemas Operacionais Desde a época dos Mainframes da IBM, na década de 60, a virtualização exerce um papel fundamental na computação, se revelando como uma forma e�ciente de reduzir a carga de trabalho de um computador individual. Com o avanço da tecnologia, a virtualização pode ser utilizada para resolver diversos problemas computacionais que as empresas modernas enfrentam, desde a expansão de seus centros de dados até a redução de custos (BACA, 2021). Uma máquina virtual (em inglês Virtual Machine - VM), nada mais é do que uma máquina emulada dentro de um sistema operacional, ou seja, dentro de uma máquina física. Portanto, cada instancia de virtualização é uma VM. Cada uma opera como se fosse um próprio computador, com uma alocação de processador, memória e armazenamento reservados no hardware físico. Cada VM possui também o seu próprio sistema operacional, com seus aplicativos independentes, tanto da máquina física que as hospedam quanto das demais instancias de VMs. A coordenação das máquinas virtuais é feita através de um software de orquestração chamado de hypervisor. Esse orquestrador tem a função de interagir com o hardware do sistema operacional que hospeda o VM (POWELL, 2021). No contexto da virtualização, existem também os contêineres, que são semelhantes às VMs, mas funcionam de forma diferente, pois permitem a execução de aplicativos em um ambiente isolado, o que, por sua vez, possibilita empilhar múltiplos contêineres em uma mesma máquina, como se fossem computadores separados. Entretanto, os contêineres não são máquinas completas e independentes como as VMs. São, na realidade, um processo isolado que compartilha o mesmo kernel – geralmente em Linux – que o do sistema operacional do host. Além disso, compartilham bibliotecas e outros arquivos de sistema necessários para a execução dos programas que são executados dentro de cada contêiner. Esses contêineres podem, inclusive, possuir uma con�guração de rede de forma a ser expostos ao ambiente de rede, assim como uma máquina virtual. Disciplina Administração de Sistemas Operacionais Em termos gerais, eles são projetados para executar apenas um único programa. Sendo assim, o programa em execução �ca isolado dos demais contêineres ou do computador físico. Isso otimiza ainda mais os recursos computacionais de hardware, pois cada contêiner não emula uma VM completa com sistema operacional e hardware virtualizado (BACA, 2021). A seguir, podemos visualizar a organização de uma VM e um Contêiner na Figura 1. Figura 1 | Virtualização de Máquina e Contêiner - Fonte: adaptado de Gomes (2016). Podemos perceber que a utilização de um contêiner economiza o uso de um sistema operacional dedicado à aplicação. Os dois métodos de virtualização funcionam em camadas distintas. Eles não são concorrentes, pois cada um possibilita um uso diferenciado, além de níveis de isolamento e segurança diferentes. Uma VM possibilita a criação de uma infraestrutura de sistema operacional virtualizado dedicado, enquanto o contêiner nãoproporciona a visão de um sistema operacional inteiro, mas apresenta um processo em execução compartilhando o núcleo do sistema operacional (kernel) compartilhado com todos os contêineres (GOMES, 2016). Videoaula: Conceitos de virtualização Este conteúdo é um vídeo! Disciplina Administração de Sistemas Operacionais Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Nesta aula, discutiremos o conceito de virtualização e suas indicações de uso. Entenderemos como a virtualização permite o uso de vários sistemas operacionais dentro de um único computador. Veremos como a virtualização pode facilitar o trabalho de um administrador de sistemas operacionais, otimizando o uso dos recursos computacionais de uma organização. Além dos conceitos de virtualização, abordaremos quais são as soluções de virtualização (Hypervisor) mais utilizadas, tanto para �ns pessoais quanto empresariais. Tipos de virtualização Dadas as constantes evoluções das tecnologias informacionais, o conceito da virtualização foi ampliado com o passar dos anos. Sua aplicação está cada vez mais difundida em todas as áreas da computação. A virtualização é um motor que impulsiona e possibilita a existência da computação em nuvem (em inglês, Cloud Computing) como a conhecemos hoje (RIVERA, 2021). A seguir, são apresentados os principais tipos de virtualização existentes no âmbito da computação (DINAKAR, 2019; BISHT, 2021): Virtualização de aplicativos Disciplina Administração de Sistemas Operacionais Neste método, as funções de um servidor são virtualizadas e entregues para o dispositivo de usuários. Geralmente, os usuários podem utilizar a aplicação virtualizada diretamente de seus computadores, através da internet. A virtualização de aplicativos é geralmente utilizada quando é necessário obter a mobilidade dos aplicativos. Virtualização de desktop Trata-se da virtualização de uma área de trabalho de um computador, separada do dispositivo que o usuário utiliza para acessá-la. Também é conhecido como “infraestrutura de Desktop virtual” (em inglês, Virtual Desktop Infrastructure - VDI). Entre os seus benefícios, estão a possibilidade de o usuário acessar todos os seus documentos particulares em qualquer computador de uma rede, desde que essa VDI esteja disponível de forma online. Em ambientes corporativos, pode economizar taxas de licenciamento e facilitar a atualização de softwares. Virtualização de rede Reúne todos os equipamentos físicos de uma rede em um recurso único, que é baseado em software. Essa virtualização permite dividir a largura de banda disponível entre os canais de comunicação, possibilitando a sua gestão em tempo real. Virtualização de armazenamento Permite compilar diferentes discos rígidos em um único disco virtualizado, de forma conveniente e barata. O armazenamento virtual, permite espelhar os diferentes discos, proporcionando uma visão única, o que facilita a recuperação de desastres, pois os dados estão sempre sendo replicados e transferidas entre os locais de disco. A gestão dos discos virtuais, geralmente, é feita por um sistema centralizado online que facilita a sincronização dos arquivos entre os vários dispositivos de disco. Virtualização de servidor Nesse método, o servidor físico é dividido em vários servidores virtuais, alterando a quantidade de sistemas e dividindo os recursos de hardware conforme a necessidade de cada aplicação. Cada sistema pode operar seu próprio sistema operacional isoladamente. O método facilita a migração dos serviços, reduz o consumo de energia, o custo de infraestrutura e assim por diante. Virtualização de dados Dados coletados de várias fontes são gerenciados em um local central único. Sem detalhes sobre essas informações, por exemplo, como os dados são coletados, armazenados e formatados. Os dados são organizados logicamente para que sua visualização virtualizada, permita que os interessados possam acessá-los por meio de serviços em de nuvem online. A virtualização busca não somente a redução de custos, mas também da dependência de hardwares, economia de energia, etc. A virtualização permite o compartilhamento de um mesmo hardware com diversos clientes dos provedores, sem que eles nem mesmo percebam (BISHT, 2021). Conforme vimos nesta seção, a virtualização pode ser provisionada de diversas formas, �gurando desde a virtualização de aplicações, desktops, redes, armazenamento, servidores e dados. Cabe reforçar que a virtualização de armazenamento não pode ser confundida com a virtualização de dados, pois possuem ferramentas e �nalidades distintas. Não se esqueça de estudar um pouco mais a respeito dos tipos de virtualização existentes, pois a conceituação adequada das soluções ajuda na tomada de decisão e no melhor uso dos tipos de virtualização. Disciplina Administração de Sistemas Operacionais Videoaula: Tipos de virtualização Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Nesta aula, nos aprofundaremos nos tipos de virtualização. Vamos conhecer alguns exemplos práticos de serviços existentes para os principais tipos que discorremos neste bloco, e como eles podem auxiliar um administrador de sistemas operacionais a resolver problemas que podem surgir ao longo de seu exercício pro�ssional. Desa�os da Virtualização A virtualização, normalmente, é encarada como virtualização de hardware, e, conforme discutimos nos blocos anteriores, viabiliza a entrega de soluções de serviços de infraestrutura de computação em nuvem, também conhecido como Infraestrutura como serviço (em inglês Infrastructure as a service – IaaS), na computação em nuvem. As tecnologias de virtualização Disciplina Administração de Sistemas Operacionais possibilitam a criação de ambientes virtuais, não somente para execução de aplicativos, mas também para armazenamento e rede (BISHT, 2021). Conforme apresentado até aqui, existem muitas vantagens na virtualização. Além deles, ainda podemos citar a possibilidade de escalabilidade rápida e fácil, menor tempo de inatividade e melhor funcionalidade geral quando comparados com sistemas tradicionais baseados apenas em hardware. Contudo, o gerenciamento da virtualização possui alguns desa�os que as empresas precisam superar, tais como (BRUSH; KIRSCH, 2021): Distribuição de recursos Cabe ao administrador equalizar os recursos de hardware de acordo com as necessidades de cada serviço, levando em consideração a relevância e consumo de cada um deles. Uma boa gestão dos recursos físicos atribuídos a cada virtualização pode ser um diferencial na mitigação de problemas futuros, principalmente a provedores de serviços. Expansão das VMs O administrador do sistema operacional pode criar quantas VMs, forem necessárias para o funcionamento da empresa. Porém, isso deve ser feito com critério, pois exagerar na criação de VMs pode gerar di�culdade de distribuição de recursos e gastos desnecessários. As empresas devem evitar o espalhamento (em inglês, spawl) de VMs, adicionando novas VMs apenas quando for necessário. Essa prática visa a redução da complexidade do ambiente computacional, que pode se tornar uma verdadeira miscelânia complexa de administrar. Compatibilidade com versões anteriores Praticamente todas as empresas possuem sistemas antigos (legados), que podem não funcionar adequadamente com soluções virtualizadas. Monitoramento de desempenho As soluções virtualizadas não possibilitam o mesmo tipo de monitoramento executado nos hardwares, como os mainframes e discos. Portanto, o monitoramento do hardware base deve atender a benchmarks (modelos de referências) especí�cos para monitorar o desempenho das soluções virtualizadas. Cópia de segurança Como os dispositivos de armazenamento de dados não são físicos, as atualizações de software podem di�cultaro acesso aos dados pelos métodos de cópia de segurança (backup). Algumas ferramentas que implementam o backup podem facilitar esse processo, permitindo que os backups sejam mantidos em um só lugar, o que facilita o rastreamento e acesso. Segurança Os sistemas virtuais podem ser comprometidos quando os usuários não utilizam as melhores práticas de segurança da informação, tais como senhas fracas, download de ameaças, e assim por diante. Entretanto, em alguns casos, o isolamento de cada VM pelo sistema pode limitar alguns problemas de segurança, o que pode ajudá-los a manter os sistemas virtuais mais seguros do que outros. Conformidade de licenciamento O administrador dos sistemas operacionais, precisa ter cuidado quando cria ambientes virtuais novos, pois o licenciamento dos softwares deve estar em conformidade com cada fabricante de software, que pode variar, dependendo de suas políticas de licenciamento. Para minimizar erros e surpresas quando se deseja migrar serviços físicos para virtualizados, podemos executar uma prova de conceitos – PoC (em inglês, Proof of Concept). Podemos Disciplina Administração de Sistemas Operacionais executar a migração de um serviço físico para a modalidade virtual e aferir se a estratégia adotada é adequada. Isso possibilita a realização de ajustes visando ampliar as chances de sucesso. Todos esses aspectos devem ser observados pelos pro�ssionais de tecnologia, que objetivam garantir um bom processo de virtualização, garantindo que o ambiente migrado seja con�gurado corretamente e, consequentemente, atenda às necessidades da organização. Videoaula: Desa�os da Virtualização Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Nesta aula, aprenderemos como o conceito de virtualização está intimamente ligado com a computação em nuvem. Discutiremos alguns conceitos a respeito da segurança necessária em um ambiente virtualizado, necessários para garantir o bom funcionamento de um ambiente virtualizado. Estudo de caso Disciplina Administração de Sistemas Operacionais Imagine que você trabalha para uma empresa de médio porte, provedora de serviços computacionais para clientes de pequenos negócios. Nessa organização, há serviços de hospedagem de sites, e-mail comercial, registro de domínios na internet, administração de e-mail marketing, campanhas publicitárias digitais e assim por diante. O seu superior imediato resolveu iniciar um comitê técnico para estudar a virtualização de serviços, com o objetivo de identi�car os passos que serão necessários para virtualizar todo o centro de dados em que você trabalha como administrador de sistemas. Essa virtualização visa expandir os negócios da empresa para utilização de serviços de nuvem de grandes provedores e, em longo prazo, pretende tornar o centro de dados da empresa em um pequeno provedor de serviços, em que os clientes poderão realizar a locação de máquinas virtuais, contêineres ou utilizar serviços de aplicativos. Diante do cenário apresentado, indique como proceder para de�nir os passos para realizar a virtualização dos serviços existentes e aponte possíveis soluções para garantir que os passos escolhidos sejam bem-sucedidos, através de um relatório simples. Resolução do estudo de caso Disciplina Administração de Sistemas Operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Para solucionar o estudo de caso apresentado, é preciso considerar os objetivos �nais da virtualização, que é, em resumo, a integração dos serviços atuais com serviços em nuvem de grandes provedores. Além disso, a virtualização possibilita que a empresa se torne também um provedor de serviços virtualizados em nuvem para atender demandas de pequenas empresas. Para resolver esse Estudo de Caso, você precisará se apropriar dos conhecimentos estudados nesta aula, pois os passos da virtualização envolverão os conceitos abordados, além de conhecimentos adicionais relacionados às melhores práticas do uso da virtualização. Antes de iniciar o processo de virtualização, é preciso de�nir com clareza todos os objetivos da empresa. Você pode elaborar algumas questões para auxiliar o processo de decisão. Seguem alguns exemplos de questões pertinentes: 1. Como a virtualização pode melhorar o negócio? 2. Quais são as tecnologias de virtualização existentes? 3. Qual é a relação de custo/benefício de cada uma das soluções? 4. Qual é a melhor solução de tecnologia para os serviços existentes na minha empresa? 5. Quais serviços são os melhores candidatos para iniciar o processo de virtualização? �. Qual plataforma possui maior aderência e suporte? A virtualização deve ser planejada, assim como qualquer outro projeto dentro da área de TI. Sua implementação precisa ser estruturada com base nesses critérios que você levantou no estudo inicial. Após estudar as tecnologias e de�nir os passos de implementação, é recomendado que você faça uma prova de conceitos, conhecido como PoC (do inglês, Proof Of Concept). Nela, você deve realizar a virtualização de um serviço menor oferecido pela empresa, que represente as principais características de infraestrutura. Essa PoC evidencia se o processo de�nido pode seguir conforme projetado, ou se demandará ajustes/modi�cações. Após realizar a PoC, veri�que todas as lições aprendidas para melhorar os passos de virtualização. A ideia é que o resultado desses passos gere um processo que poderá ser seguido para migrar os demais os serviços residentes no centro de dados da empresa. Saiba mais Disciplina Administração de Sistemas Operacionais A facilidade e rapidez do provisionamento de máquinas virtuais são novos desa�os que podem gerar problemas de segurança, conforme discutimos nesta aula. Um administrador deve cuidar das atualizações de segurança dos sistemas operacionais e softwares instalados nas VMs, da mesma forma que cuidaria dos servidores físicos. É importante que as organizações criem boas práticas na administração do seu parque de máquinas virtuais para que sempre estejam atualizadas e em conformidade com as políticas de segurança da informação estabelecidas, evitando ser alvo de hackers. Um administrador de sistemas operacionais deve observar as documentações e guias de boas práticas disponibilizadas pelos fabricantes, os benchmarks. Para conhecer o guia de administração de máquinas virtuais da WMware, um dos principais fabricantes de solução de virtualização, acesse o site do fabricante, VMWARE. Administração de máquinas virtuais do vSphere. São Paulo: VMware Brasil, 2020. Disponível em: https://docs.vmware.com/br/VMware-vSphere/7.0/vsphere-esxi-vcenter-server- 701-virtual-machine-admin-guide.pdf. Acesso em: 27 jan. 2022. _______ https://docs.vmware.com/br/VMware-vSphere/7.0/vsphere-esxi-vcenter-server-701-virtual-machine-admin-guide.pdf https://docs.vmware.com/br/VMware-vSphere/7.0/vsphere-esxi-vcenter-server-701-virtual-machine-admin-guide.pdf Disciplina Administração de Sistemas Operacionais Figura 2 | Síntese dos conteúdos da aula - Fonte: elaborada pelo autor. Referências Disciplina Administração de Sistemas Operacionais BACA, S. Virtualization for Newbies: Five Types of Virtualization. Global Knowledge, 2021. Disponível em: https://www.globalknowledge.com/us-en/resources/resource- library/articles/virtualization-for-newbies-�ve-types-of-virtualization/#gref. Acesso em: 27 jan. 2022. BISHT, N. Virtualization In Cloud Computing and Types. GeeksforGeeks, 2021. Disponível em: https://www.geeksforgeeks.org/virtualization-cloud-computing-types/. Acesso em: 27 jan. 2022. BRUSH, K.; KIRSCH, B. Virtualization. SearchServerVirtualization, 2021. Disponível em: https://searchservervirtualization.techtarget.com/de�nition/virtualization. Acesso em: 27 jan. 2022.DINAKAR, K. R. A survey on virtualization and attacks on virtual machine monitor (VMM). International Research Journal of Engineering and Technology, v. 6, n. 3, p. 6558-6563, 2019. GOMES, R. Container versus máquina virtual. iMasters, 2016. Disponível em: https://imasters.com.br/devsecops/container-versus-maquina-virtual. Acesso em: 27 jan. 2022. POWELL, R. Top 6 bene�ts of virtualization. Circleci, 2021. Disponível em: https://circleci.com/blog/top-6-bene�ts-of-virtualization/. Acesso em: 27 jan. 2022. RIVERA, A. Virtualization vs. Cloud Computing: What’s the Difference? Business News Daily, 2021. Disponível em: https://www.businessnewsdaily.com/5791-virtualization-vs-cloud-computing.html. Acesso em: 27 jan. 2022. Aula 2 Aplicação da virtualização Introdução da aula https://www.globalknowledge.com/us-en/resources/resource-library/articles/virtualization-for-newbies-five-types-of-virtualization/#gref https://www.globalknowledge.com/us-en/resources/resource-library/articles/virtualization-for-newbies-five-types-of-virtualization/#gref https://www.geeksforgeeks.org/virtualization-cloud-computing-types/ https://searchservervirtualization.techtarget.com/definition/virtualization https://imasters.com.br/devsecops/container-versus-maquina-virtual https://circleci.com/blog/top-6-benefits-of-virtualization/ https://www.businessnewsdaily.com/5791-virtualization-vs-cloud-computing.html Disciplina Administração de Sistemas Operacionais Olá, estudante! A virtualização como a conhecemos atualmente permite-nos abstrair, para a camada de software, itens que nem mesmo imaginaríamos anteriormente, e são exemplos disso a virtualização de armazenamento e as redes. Apesar do processo de virtualização ser antigo, �gurando desde a década de 1960 pela IBM, seu conceito não parou, pelo contrário, foi se expandindo em diferentes contextos da computação. Ela possibilita a existência da computação em nuvem como a conhecemos e auxilia a implementação de sistemas distribuídos. Nesta aula, vamos aprender a diferenciar as vantagens, desvantagens e implicações do uso da virtualização, bem como reconhecer as máquinas, discutindo o funcionamento das máquinas virtuais completas e a paravirtualização. Além disso, descreveremos a aplicação da virtualização nos sistemas distribuídos, discutindo como a virtualização auxilia esses sistemas. Frente a isso, é fortemente recomendado que aprofunde o seu conhecimento nas particularidades da virtualização, pois isso será um diferencial no exercício pro�ssional. Virtualizar realmente vale a pena? Disciplina Administração de Sistemas Operacionais Assim como na maioria das soluções tecnológicas, existem implicações no uso da virtualização, vantagens e desvantagens que podem contribuir para a sua implantação ou inviabilizá-la. Conforme discorremos anteriormente, a migração para um ambiente virtual precisa ser planejada para aumentar as chances de sucesso. Nesta seção, vamos discutir as vantagens, as desvantagens e as implicações do uso de ambientes e soluções virtualizadas. A virtualização não exige componentes de hardware físicos especí�cos; normalmente, podem ser implementados em quaisquer hardwares de prateleira (servidores comuns). Quando executamos a virtualização utilizando serviços em nuvem, podemos ter custos ainda mais previsíveis e utilizar novos serviços em investimento �xo de compra de hardware. A manutenção de servidores virtualizados também é um ponto positivo, pois os hardwares não precisam ser atualizados com tanta frequência, e quando existe a necessidade de manutenção, podemos, facilmente, trocar o servidor virtual de hardware físico, minimizando paradas sistêmicas. Os serviços virtuais podem ser provisionados mais rapidamente, pois não é necessário instalar o sistema operacional do zero, e você pode trabalhar com imagens pré-instaladas ou VM’s templates (do inglês, modelos), bem como possibilitam o ganho de e�ciência energética, pois otimizam o uso do hardware, dispensando o desperdício de consumo de energia (GAIL, 2017). Entre as desvantagens da virtualização está a di�culdade que um sistema operacional virtualizado pode ter ao acessar um hardware diretamente, tais como dispositivos USB’s, placas dedicadas etc., pois, algumas vezes, não são reconhecidos pelo sistema operacional virtualizado (GHANNOUM; RODRIGUES, 2018). O monitoramento também pode ser mais complexo do que em ambientes físicos, logo, as soluções que oferecem o monitoramento adequado demandam maiores investimentos �nanceiros (THOMPSON, 2015). Apesar de otimizar o uso dos recursos de hardware e os custos em médio e longo prazo serem considerados baixos, os custos de implementação em curto prazo podem ser muito elevados, o que con�gura uma desvantagem. Disciplina Administração de Sistemas Operacionais Provavelmente, será necessário adquirir novos hardwares com maior poder computacional para economizar espaço e energia nos datacenters (centros de dados); além disso, nem todas as aplicações ou servidores funcionam plenamente ou são passiveis de execução em um ambiente virtualizado, o que pode exigir a necessidade de se manter um sistema híbrido. A segurança dos dados também é uma preocupação, pois as chances de sofrer violações de dados ao utilizar ambientes virtualizados é de vinte e cinco porcento, de acordo com o Instituto Ponemon (GAIL, 2017). A principal implicação do uso de virtualização é o que acontecerá com a distribuição dos recursos. O balanceamento do dimensionamento de recurso físicos para cada máquina virtual é um desa�o, pois nem sempre é possível determinar quantas máquinas virtuais podem ser executadas por processador sem que exista prejuízo na qualidade dos serviços. É necessário manter o controle sobre a disponibilidade dos recursos virtualizados, sendo preciso entender quais os impactos da indisponibilidade dos componentes que controlam a virtualização nos negócios da organização e como será feita a gestão das VM’s para minimizar problemas que impactam a continuidade do negócio. Apesar de permitir uma rápida expansão, pode não ser fácil escalar na velocidade necessária ou pode ser que a virtualização implique crescer mais do que o necessário inicialmente (GAIL, 2017). A Figura 1 a seguir apresenta a análise SWOT (do inglês, strengths, weaknesses, opportunities e threats) realizada para o uso da virtualização. Nela, estão sintetizadas suas forças, fraquezas, oportunidades e ameaças. Figura 1 | Análise SWOT virtualização - Fonte: elaborada pelo autor. Disciplina Administração de Sistemas Operacionais Evidentemente, a virtualização não é a solução de todos os problemas computacionais e nem todos os casos são indicados ou passíveis de serem migrados para soluções virtualizadas; cabe ao administrador de sistemas operacionais analisar a necessidade da organização e de�nir qual é o melhor caminho, logo, quanto maior for o conhecimento técnico, maior será a assertividade da solução de�nida pelo pro�ssional. Videoaula: Virtualizar realmente vale a pena? Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Nesta aula, discutiremos o que é um plano de continuidade de negócios de TI e como a virtualização pode auxiliar nesse processo fundamental aos ambientes críticos. Além disso, você vai conhecer como a virtualização pode facilitar o processo de recuperação de desastres em ambientes computacionais. Tipos de máquinas virtuais Disciplina Administração de Sistemas Operacionais O Hypervisor ou monitor de máquina virtual (VMM, do inglês, virtual machine manager) é a ferramenta que possibilita o uso de um hardware virtualizado para instalação dos sistemas operacionais virtualizados. O Hypervisor pode trabalhar com a virtualização total de um hardware (em inglês, full virtualization) ou com a virtualização parcial (em inglês, paravirtualization). A Figura 2 a seguir apresenta a arquitetura da virtualizaçãode servidores. Disciplina Administração de Sistemas Operacionais Figura 2 | Tipos de virtualização de servidores - Fonte: adaptada de Rodrigues (2016). A virtualização completa corresponde ao primeiro modelo de virtualização desenvolvido pela IBM. Nela, o Hypervisor fornece uma réplica da máquina física para cada máquina virtualizada e, com isso, não existe a necessidade de modi�car o kernel do sistema operacional convidado (virtualizado) para que o sistema operacional saiba que está sendo executado em um hardware virtual. Dessa forma, o sistema operacional convidado desconhece que trabalha sobre um ambiente virtualizado e, consequentemente, não tem acesso direto aos dispositivos de hardware físico (RODRIGUES, 2016). A virtualização completa possibilita a independência total do hardware que está instalado, facilitando a migração das máquinas virtuais instaladas nessa modalidade, e se apresenta como um método seguro, pois, nessa modalidade, o isolamento existe entre o sistema virtualizado e o hospedeiro (host). Por outro lado, apresenta um pior desempenho, pois a camada do Hypervisor adiciona uma camada a mais para ser processada e o acesso ao hardware é mais complexo, dada a di�culdade de emular o funcionamento dos dispositivos de E/S – entrada e saída (RODRIGUES, 2016). Já a paravirtualização não implementa o isolamento completo entre a máquina virtual e o hardware físico; o isolamento é apenas parcial, então, o sistema operacional convidado (em inglês, guest) precisa ser modi�cado para que seja possível executá-lo sobre o Hypervisor. Essa modi�cação é feita no nível do kernel (núcleo) do sistema operacional virtualizado. As hipercalls (em português, hiper chamadas) são modi�cadas no lugar das instruções que seriam virtuais, para que se comuniquem com o hardware em vez da camada do Hypervisor (RODRIGUES, 2016). Nessa modalidade, o sistema operacional do convidado tem acesso direto a alguns hardwares físicos, e essa interação direta com o hardware é, muitas vezes, bené�ca, pois pode reduzir a Disciplina Administração de Sistemas Operacionais sobrecarga de processamento direto sobre o Hypervisor, assim, tende a evitar o desperdício de processamento (MATTOS, 2008). A paravirtualização apresenta um melhor desempenho, conforme discutimos, e, obviamente, melhora as questões associadas ao acesso de dispositivos de E/S. Outra vantagem da abordagem é que as máquinas virtuais não precisam que os drivers sejam instalados em seu sistema, pois utilizam os drivers dos dispositivos contidos no sistema operacional de um dos hóspedes, conhecido como hóspede privilegiado (NATÁRIO, 2011). Entretanto, esse método possui um maior custo de manutenção, pois, além de exigir a modi�cação do kernel dos sistemas operacionais, será necessária uma maior competência técnica dos pro�ssionais envolvidos em sua manutenção. A migração das máquinas virtuais é outro ponto de atenção, pois, uma vez que o kernel do sistema operacional foi modi�cado, a mudança de hardware ou plataforma precisa ser compatível com as modi�cações feitas no sistema operacional (RODRIGUES, 2016). A virtualização passou a ser uma necessidade nas empresas, logo, é importante que o administrador de sistemas operacionais virtualizados se aproprie dos conceitos correlatos à virtualização e suas tecnologias, para decidir, de forma assertiva, qual modelo de virtualização é mais indicado para seu cenário. Videoaula: Tipos de máquinas virtuais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Nesta aula, vamos conhecer as arquiteturas existentes para a implementação de soluções de virtualização, do ponto de vista de sua abrangência, e saber quando usar arquiteturas pequenas, médias e grandes, bem como as boas práticas e as tecnologias/soluções envolvidas. Virtualização e a computação distribuída Disciplina Administração de Sistemas Operacionais O avanço da tecnologia e o aumento da necessidade da execução do processamento simultâneo (paralelo) de tarefas de usuários/sistemas culminou na necessidade da descentralização do processamento das informações. Os recursos compartilhados com os usuários, grupos e organizações somados ao grande volume de dados exigem cada vez mais das infraestruturas e dos recursos disponíveis. Essa descentralização do processamento é um fenômeno conhecido como computação distribuída, e quando pensamos em seu conceito, percebemos que seu objetivo possui uma sinergia com a virtualização. Da mesma forma que utilizamos a computação distribuída na forma física, podemos nos bene�ciar da virtualização distribuída. A virtualização distribuída permite o compartilhamento mais transparente dos recursos computacionais por muitos clientes, que, muitas vezes, não estão cientes uns dos outros, nem mesmo imaginam o poder computacional disponível sob a perspectiva da distribuição dos recursos computacionais. Um grande ambiente distribuído pode ser composto pela junção de diversos sistemas menores, em diferentes níveis e localização, ou seja, podemos agregar novos recursos em diferentes localizações para aumentar o desempenho de uma rede virtual distribuída (KAUL; GUPTA; KAUR, 2015). Segundo Kaul, Gupta e Kaur (2015), cada nível fornece uma direção única para se criar um sistema distribuído mais con�ável, robusto, econômico e e�ciente. Isso signi�ca que a computação distribuída pode implementar a técnica de virtualização em muitos níveis para ampliar o seu desempenho. Obviamente, quanto mais níveis são implementados, maior é a di�culdade de gerência dos componentes envolvidos, além das outras implicações que já abordamos (KAUL; GUPTA; KAUR, 2015). A seguir, apresentaremos alguns exemplos de integração entre os conceitos de virtualização e como funcionam no âmbito dos sistemas distribuídos e vice-versa (KAUL; GUPTA; KAUR, 2015): Disciplina Administração de Sistemas Operacionais Virtualização de aplicações em sistemas distribuídos: é caracterizado quando várias organizações ou usuários compartilham o acesso ou a mesma infraestrutura de aplicativo virtualizado, podendo reduzir custos de softwares e infraestrutura. O principal ponto de atenção é justamente a segurança necessária para manter o isolamento entre os usuários. Computação compartilhada em virtualização: é caracterizada quando vários centros de dados (em inglês, datacenters) conectados estão disponíveis para o uso. A virtualização pode alocar os recursos de forma mais e�ciente, para disponibilizar recursos para vários clientes, e a principal preocupação nesse caso é executar uma boa gestão dos recursos. Computação em grid (em português, grade) em virtualização: consiste no compartilhamento transparente dos recursos computacionais do servidor entre grupos dentro ou fora de uma organização para o seu processamento, utilizando servidores virtualizados. As grids tradicionais suportam aplicativos transacionais com alto desempenho, utilizando recursos distribuídos de hardware e software compartilhado. As grids de dados compartilham acesso fácil a dados distribuídos, e a maior preocupação é a manutenção e a consistência dos metadados espalhados pelas grids. Além desses conceitos, também temos os servidores virtuais, as máquinas virtuais, as redes de armazenamento e as utilidades de redes (backups, migração de dados, expansão de armazenagem), que já discorremos anteriormente, que pedem soluções tecnológicas empregadas na computação distribuída. Ainda de acordo com Kaul, Gupta e Kaur (2015), a virtualização, quando utilizada na computação distribuída, �exibiliza e proporciona a escalabilidade, portabilidade e a redução de custos. De fato, existem desa�os que precisam ser superados na implementação de sistemas virtuais distribuídos, destacando-se: a segurança, a privacidade, o gerenciamento da rede, a consistência dos dados, o gerenciamento dos usuários, a manutenção e o funcionamento adequado dos serviçoscompartilhados entre os mais diferentes grupos de usuários ou organizações. Entretanto, um bom pro�ssional que trabalha com a virtualização de serviços precisa estar apto e municiado de todo o conhecimento possível para lidar com todos esses desa�os da melhor forma possível, pois a descentralização do processamento associada à virtualização é um caminho sem volta. Videoaula: Virtualização e a computação distribuída Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Disciplina Administração de Sistemas Operacionais Nesta aula, vamos discutir os tipos de escalonamento possíveis para ambientes virtualizados e quando cada um deles é indicado, bem como conhecer o recurso de DRS (em inglês, distributed resource scheduler) para alocação automática de recursos em servidores virtualizados com a solução de virtualização da VMware. Estudo de caso Imagine que você trabalha em uma empresa de marketing de porte médio como responsável pela gestão dos sistemas operacionais e da infraestrutura de conectividade da empresa. Após uma discussão com sua equipe e gestores, chegaram ao consenso de que os servidores físicos da empresa devem ser migrados para a virtualização. A empresa tem a necessidade de ampliar a capacidade dos diferentes serviços oferecidos a seus clientes em determinadas épocas, motivada por campanhas de marketing e ações demandadas pelos seus clientes. Os serviços de marketing que são virtualizados não necessitam de alta disponibilidade, pois são campanhas direcionadas e sazonais, logo, o mais importante é possuir a �exibilidade no dimensionamento dos recursos entre os serviços. Diante desse cenário, indique quais foram os motivadores para a decisão de virtualizar os servidores físicos da empresa e determine qual arquitetura de virtualização é mais adequada para a empresa, tendo em vista a otimização de recursos e custos. Resolução do estudo de caso Disciplina Administração de Sistemas Operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Para solucionar o Estudo de caso, você precisa conhecer os tipos de abrangência (tamanhos) de arquitetura existentes para serviços virtualizados (pequena, média e grande). Além disso, é preciso consolidar os conceitos discutidos nesta aula, sendo eles fundamentais para se decidir quais modelos de virtualização e tecnologias adjacentes devem se empregados em cada situação. Observando atentamente o cenário proposto, podemos veri�car que a arquitetura escolhida deve contemplar recursos que possibilitem a alteração fácil de recursos entre as máquinas virtuais e que não é necessário redundância de serviços. Solução Toda arquitetura de virtualização precisará de recursos físicos de processamento, armazenamento, memória, rede e dos softwares para execução da virtualização. Além desses requisitos, outros também podem ser necessários, tais como a redundância, para evitar indisponibilidade; backups, para recuperação de desastres, e assim por diante. Podemos inferir, dado o cenário apresentado, que a empresa decidiu migrar seus serviços de físicos para virtuais, pois a virtualização permite �exibilizar o aumento e a diminuição de recursos conforme a necessidade de execução de suas demandas, executando o escalonamento vertical ou horizontal. Quando falamos sobre a abrangência da arquitetura virtualizada, veri�camos que uma arquitetura pequena não comportaria os serviços mais pro�ssionais, pois é limitada em termos do uso de recursos computacionais e não possibilitaria o escalonamento de recursos ou a migração da virtualização de forma automatizada. Já uma arquitetura grande forneceria recursos avançados, com alta disponibilidade e redundância, que, provavelmente, não seriam utilizados em sua plenitude, o que caracterizaria o desperdício de investimentos a uma empresa de médio porte. Sendo assim, uma arquitetura média é a mais indicada para o cenário apresentado, pois permite o uso de múltiplos servidores, possibilitando escalonar o trabalho de forma horizontal e vertical, bem como migrar as máquinas virtuais entre os computadores hospedeiros (hosts físicos), o que facilita o escalonamento de recursos conforme a demanda de seus clientes. Saiba mais Disciplina Administração de Sistemas Operacionais Um snapshot (traduzido do inglês, instantâneo) é um recurso implementado pelos hypervisors que permite tirar uma imagem da máquina virtual, ou seja, uma foto do sistema operacional virtualizado. Essa captura tem como objetivo salvar o estado atual de uma máquina virtual de forma tal que o administrador dos sistemas consiga retornar para o estado do sistema operacional no momento em que o snapshot foi criado. Esse recurso pode ser utilizado para realizar o rollback (em português, reversão) de modi�cações efetuadas no sistema, mas apesar de muito útil, não deve ser utilizado como solução de backup, pois os arquivos de snapshot podem ser corrompidos com facilidade. Além disso, quando são criados snapshots em excesso, eles podem deixar o sistema virtualizado muito lento; o ideal, é que o administrador de sistemas operacionais consulte as melhores práticas indicadas por cada fabricante e utilize o recurso adequadamente (GUIROTTO, 2013). Acesse os links a seguir para veri�car a documentação o�cial dos fabricantes Microsoft, Oracle e VMware para uma boa utilização dos snapshots: Microsoft https://docs.microsoft.com/pt-br/virtualization/hyper-v-on-windows/user-guide/checkpoints. Oracle https://kb.vmware.com/s/article/1015180?lang=pt_PT. VMware https://docs.oracle.com/en/virtualization/virtualbox/6.0/user/snapshots.html. _______ https://docs.microsoft.com/pt-br/virtualization/hyper-v-on-windows/user-guide/checkpoints https://kb.vmware.com/s/article/1015180?lang=pt_PT https://docs.oracle.com/en/virtualization/virtualbox/6.0/user/snapshots.html Disciplina Administração de Sistemas Operacionais Referências Disciplina Administração de Sistemas Operacionais GAIL, L. 14 advantages and disadvantages of virtualization. 2017. Disponível em: https://vittana.org/14-advantages-and-disadvantages-of-virtualization. Acesso em: 10 fev. 2022. GHANNOUM, R. G.; RODRIGUES, F. B. Virtualização de servidores: vantagens e desvantagens. Revista Mirante, Anápolis, v. 11, n. 6, 2018. Disponível em: https://www.revista.ueg.br/index.php/mirante/article/view/7612. Acesso em: 10 fev. 2022. GUIROTTO, T. Utilizando snapshots em máquinas virtuais hyper-V – arquitetura. 2013. Disponível em: https://social.technet.microsoft.com/wiki/pt-br/contents/articles/15505.utilizando- snapshots-em-maquinas-virtuais-hyper-v-arquitetura.aspx. Acesso em: 10 fev. 2022. KAUL, A.; GUPTA, M.; KAUR, K. Using virtualization for distributed computing. International Journal of Advances in Electronics and Computer Science, v. 2, n. 7, p. 37-39, jul. 2015. Disponível em: http://www.iraj.in/journal/journal_�le/journal_pdf/12-161-143617620637-39.pdf. Acesso em: 10 fev. 2022. MATTOS, D. M. F. Vantagens e desvantagens. 2008. Disponível em: https://www.gta.ufrj.br/grad/08_1/virtual/VantagenseDesvantagens.html. Acesso em: 10 fev. 2022. NATÁRIO, R. Paravirtualização explicada. 2011. Disponível em: https://redes-e- servidores.blogspot.com/2011/11/para-e-um-pre�xo-de-origem-grega- que.html#:~:text=O%20projecto%20open%20source%20Xen,dispositivo%20personalizados%20no %20SO%20h%C3%B3spede. Acesso em: 10 fev. 2022. RODRIGUES, A. Virtualização completa e paravirtualização. 2016. Disponível em: https://www.portalgsti.com.br/2016/11/virtualizacao-completa-e-paravirtualizacao.html. Acesso em: 10 fev. 2022. THOMPSON, M. Virtualização e segurança: superando os riscos. 2015. Disponível em: https://imasters.com.br/devsecops/virtualizacao-e-seguranca-superando-os-riscos. Acesso em: 10fev. 2022. Aula 3 Instalação e con�guração de máquinas virtuais Introdução da aula https://vittana.org/14-advantages-and-disadvantages-of-virtualization https://www.revista.ueg.br/index.php/mirante/article/view/7612 https://social.technet.microsoft.com/wiki/pt-br/contents/articles/15505.utilizando-snapshots-em-maquinas-virtuais-hyper-v-arquitetura.aspx https://social.technet.microsoft.com/wiki/pt-br/contents/articles/15505.utilizando-snapshots-em-maquinas-virtuais-hyper-v-arquitetura.aspx http://www.iraj.in/journal/journal_file/journal_pdf/12-161-143617620637-39.pdf https://www.gta.ufrj.br/grad/08_1/virtual/VantagenseDesvantagens.html https://redes-e-servidores.blogspot.com/2011/11/para-e-um-prefixo-de-origem-grega-que.html#:~:text=O%20projecto%20open%20source%20Xen,dispositivo%20personalizados%20no%20SO%20h%C3%B3spede https://redes-e-servidores.blogspot.com/2011/11/para-e-um-prefixo-de-origem-grega-que.html#:~:text=O%20projecto%20open%20source%20Xen,dispositivo%20personalizados%20no%20SO%20h%C3%B3spede https://redes-e-servidores.blogspot.com/2011/11/para-e-um-prefixo-de-origem-grega-que.html#:~:text=O%20projecto%20open%20source%20Xen,dispositivo%20personalizados%20no%20SO%20h%C3%B3spede https://redes-e-servidores.blogspot.com/2011/11/para-e-um-prefixo-de-origem-grega-que.html#:~:text=O%20projecto%20open%20source%20Xen,dispositivo%20personalizados%20no%20SO%20h%C3%B3spede https://www.portalgsti.com.br/2016/11/virtualizacao-completa-e-paravirtualizacao.html https://imasters.com.br/devsecops/virtualizacao-e-seguranca-superando-os-riscos Disciplina Administração de Sistemas Operacionais Olá, estudante! Com o avanço da tecnologia, a virtualização tornou-se o elemento central de um datacenter. Antigamente era comum que um servidor fosse utilizado apenas para hospedar determinado serviço, mas com as máquinas virtuais, isso �cou no passado. A virtualização resolveu problemas como a subutilização dos recursos computacionais, aposentando o desperdiço do poder computacional e otimizando os ambientes de rede. Outro fato é a importância da virtualização em relação à continuidade do negócio e os ambientes de alta disponibilidade, planos de desastres e facilidade na recuperação de falhas, tornando-se uma ferramenta essencial que envolve diversos componentes no mesmo ambiente como Sistema Operacional, bibliotecas e aplicações de forma independente e isolada. Nesta aula, vamos explorar aspectos de instalação e con�guração de soluções de virtualização, compreendendo também os conceitos básicos sobre suas variações como a virtualização total e a paravirtualização, abordando sobre suas principais vantagens. Instalação de máquinas virtuais Disciplina Administração de Sistemas Operacionais Um hipervisor é uma plataforma básica utilizada para a criação de máquinas virtuais e entre suas principais tarefas está o escalonamento de tarefas, o gerenciamento de memória e até mesmo o monitoramento e a manutenção dos estados de uma máquina virtual. Os hipervisors podem ser classi�cados de acordo com Veras e Carissimi (2015), em dois tipos: Tipo I (bare metal, nativo ou supervisor): a virtualização é diretamente executada no hardware do servidor, por isso é realizado tanto o controle do acesso ao hardware como do sistema operacional convidado. Esse tipo de hipervisor também é denominado nativo e é capaz de compartilhar o hardware entre as máquinas virtuais, dando a visão de serem independentes. Alguns exemplos de softwares do tipo I são: VMware ESX Server, Microsoft Hyper-V e Xen Server. Tipo II (hospedado): já esse tipo de aplicativo fornece um ambiente de execução para outros aplicativos e é executado no sistema operacional nativo, da mesma forma que um processo. Exemplos: VMware player, Virtualbox e Virtual PC. O Tipo II traz mais facilidade de instalação, por isso vamos analisar como é possível instalar um ambiente virtual utilizando o Virtualbox, hipervisor gratuito e de código aberto idealizado pela Oracle. Ao acessar a interface do VirtualBox, será possível criar uma máquina (Figura 1). Note que também é possível transferir uma máquina que já exista por meio da opção ‘Importar’. Disciplina Administração de Sistemas Operacionais Figura 1 | Gerenciador Virtualbox - Fonte: captura de tela do Oracle VM VirtualBox Gerenciador. Depois disso, é possível escolher o Sistema Operacional a ser instalado e o diretório de armazenamento, conforme Figura 2: Disciplina Administração de Sistemas Operacionais Figura 2 | Sistema Operacional - Fonte: captura de tela do Oracle VM VirtualBox Gerenciador. O próximo passo é a con�guração do disco (Figura 3). Uma máquina virtual utiliza os mesmos recursos que uma máquina física e tem acesso aos recursos de hardware instalados por meio da camada lógica. Figura 3 | Armazenamento - Fonte: captura de tela do Oracle VM VirtualBox Gerenciador. Dinamicamente alocado: o disco vai expandindo de acordo com a necessidade de armazenamento do sistema. Tamanho �xo: o disco não tem o tamanho alterado, a não ser que isso seja feito manualmente. Quanto ao processamento, é possível utilizar mais de um núcleo, de acordo com o hardware que está sendo espelhado (Figura 4): Disciplina Administração de Sistemas Operacionais Figura 4 | Processamento - Fonte: captura de tela do Oracle VM VirtualBox Gerenciador. Com a evolução da tecnologia, processadores grá�cos (GPU’s) vêm sendo cada vez mais utilizados como uma solução de hardware para acelerar aplicações computacionalmente intensivas e críticas, em que as placas instaladas em barramentos, podem ser alcançadas pelas máquinas virtuais por meio de drivers ou acesso direto pelo kernel, trazendo maior poder aos ambientes virtuais (LOTTI e PRADO, 2011). Para que seja possível instalar um sistema operacional, é necessário o uso de uma mídia de instalação, por isso um arquivo de extensão .ISO deve estar disponível na máquina para que permita a continuidade do processo (Figura 5): Disciplina Administração de Sistemas Operacionais Figura 5 | BOOT (Inicialização do sistema) - Fonte: captura de tela do Oracle VM VirtualBox Gerenciador. A virtualização traz vantagens importantes como a possibilidade de redução do consumo de energia dos servidores e da refrigeração, provendo menores custos, pois um servidor à plena carga e outro sem carga consomem praticamente a mesma quantidade de energia. Porém outros pontos sobre a virtualização são muito relevantes e envolvem principalmente sua capacidade de recuperação de desastres, por simpli�car a construção de um ambiente de alta disponibilidade e fácil gerenciamento. Videoaula: Instalação de máquinas virtuais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Na virtualização, os softwares são segmentados em três categorias que de�nem os mecanismos de operação e gerenciamento das máquinas virtuais, classi�cados em diferentes níveis: nível em Disciplina Administração de Sistemas Operacionais hardware, nível do sistema operacional e nível da linguagem de programação. Vamos analisar cada um deles nessa videoaula! Con�guração de máquinas virtuais As con�gurações de máquinas virtuais são semelhantes mesmo que para soluções criadas por diferentes fabricantes. No bloco anterior, durante a criação de uma máquina virtual, foi possível reconhecer como é realizada a con�guração de alguns dos principais componentes: disco e processador. O VMWare tornou-se um dos softwares de virtualização compatíveis com arquiteturas x86 mais utilizados no mercado e de acordo com Mattos (2008), atendem demandas de ambientes desktop até ambientes mais complexos fornecendo: Gerenciamento. Automação. Infraestrutura virtual. A partir de agora, vamos analisar algumas con�gurações disponibilizadas no VMWare Workstation. Os recursos que podem ser con�gurados à nível de hardware são (Figura 6): Disciplina Administração de Sistemas OperacionaisFigura 6 | Gerenciador Vmware - Fonte: Almeida (2012). Note que qualquer recurso pode ser alterado, as con�gurações das máquinas virtuais fogem dos ambientes engessados de uma infraestrutura tradicional. E, da mesma forma como os recursos de processamento e armazenamento são importantes, o controle de memória representa um fator crítico para o Sistema Operacional convidado. A Figura 7 ilustra como o recurso de memória pode ser facilmente gerenciado. Além disso, os parâmetros são analisados pela própria aplicação, informando sobre a recomendação de memória, para manter o bom funcionamento da máquina virtual. Disciplina Administração de Sistemas Operacionais Figura 7 | Con�gurações de memória - Fonte: Almeida (2012). As con�gurações de armazenamento permitem também a manutenção do dispositivo virtual, veja como Almeida (2012) aborda sobre os utilitários disponíveis para otimizar o disco no VMWare (Figura 8): Disciplina Administração de Sistemas Operacionais Figura 8 | Con�gurações de memória - Fonte: Almeida (2012). Cada um dos utilitários destacados, assume a seguinte função: Desfragmentar: opção da própria VMWare para desfragmentar o disco virtual, ou seja, agrupar os dados e liberar espaço no disco, otimizando o armazenamento. Expandir: para caso seja necessário a expansão do hard disk virtual. Também é possível limitar até onde a máquina virtual pode expandir o disco e escolher o modo dinâmico. Compactar: utilizado para compactar o hard disk virtual, desalocando espaço e limitando a sua capacidade quando não for mais necessária. Todavia, não devemos esquecer da necessidade de interligar uma máquina virtual com os dispositivos da rede para que os usuários tenham acesso aos serviços e em alguns casos, permitir que o servidor esteja interligado com a Internet. Para isso, é necessário con�gurar os adaptadores de rede que permitem diferentes modos de operação, conforme ilustra a Figura 9: Disciplina Administração de Sistemas Operacionais Figura 9 | Con�gurações de rede - Fonte: Almeida (2012). As con�gurações de rede permitem diversas modalidades de interconexão entre o sistema hospedeiro e o sistema convidado, Almeida (2012) aponta-os da seguinte forma: Não conectado: por padrão quando ainda não tem interface de rede atribuía. Bridged: nesse modo é como se a interface da máquina virtual estivesse diretamente conectada com a rede física, permitindo o acesso à placa de rede como se fosse real. NAT: para máquinas virtuais que precisam acessar a Internet, esse modo permite o uso do mesmo IP para permitir a comunicação. Host-only: compartilha a rede somente conectando-se à uma rede privada (VPN) com o sistema real, sem ser vista pela rede. Custom: cria uma interface especial para a máquina virtual. Na criação de uma máquina virtual devemos considerar os requisitos necessários para o funcionamento do sistema operacional, possibilitando que as demandas sejam atendidas de maneira adequada. Apesar de a virtualização trazer diversas vantagens, o administrador precisa ter o conhecimento para gerenciar os recursos virtuais como se fossem parte do datacenter. Videoaula: Con�guração de máquinas virtuais Disciplina Administração de Sistemas Operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Já conhecemos as con�gurações básicas de uma máquina virtual operando com softwares como Virtualbox e VMWare, por isso nesta aula, vamos nos aprofundar um pouco mais sobre con�gurações especí�cas que podem ser realizadas para customizar uma máquina virtual baseada em VMWare Workstation. Vamos lá?! Virtualização total e paravirtualização A virtualização é um campo amplo que envolve diferentes formas de implementação e consequentemente cada uma delas representa diferentes vantagens e desvantagens para o ambiente de rede. A simplicidade na con�guração dos hipervisores pode tornar-se imediatamente complexa quando falamos da virtualização completa e da paravirtualização, por isso neste bloco vamos conceituá-los. Virtualização completa: esse modo de aplicação realiza toda a abstração do sistema físico para executar os recursos no sistema operacional convidado (SO), por isso não é necessário realizar Disciplina Administração de Sistemas Operacionais alterações diretamente no SO convidado em nas aplicações hospedadas (VERAS; CARISSIMI, 2015). Uma das principais vantagens nesse modelo é a migração de máquinas entre servidores já que os recursos virtuais não dependem do físico e funcionam de forma independente. Já a desvantagem se dá pelo fato de o desempenho ser baixo, uma vez que hipervisor precisa veri�car todas as instruções antes de executar. É possível visualizar uma infraestrutura de virtualização completa na Figura 10: Figura 10 | Virtualização completa - Fonte: Veras e Carissimi (2015). Basicamente, a �gura mostra que a virtualização total fornece uma réplica do hardware e a partir daí a execução da máquina visitante é permitida, sem modi�car o sistema hospedeiro, sobre o monitor de máquina virtual (VMM). Paravirtualização: a paravirtualização surgiu principalmente como uma alternativa para resolver os problemas que envolvem o baixo desempenho da virtualização total. Para Veras e Carissimi (2015), a subutilização ainda era um problema apesar de ter minimizado as ocorrências de um ambiente totalmente físico, conforme Figura 11. Disciplina Administração de Sistemas Operacionais Figura 11 | Paravirtualização - Fonte: Veras e Carissimi (2015). A paravirtualização funciona por meio de hipercalls, quando uma instrução sensível é executada, o SO convidado tem a assistência de um compilador inteligente que atua na substituição de instruções de SO não virtualizado, trazendo maior desempenho ao ambiebiete. Vamos analisar o Quadro 1 para comparar as tecnologias e suas características, de acordo com Rodrigues (2016) conforme mostra o quadro a seguir: Disciplina Administração de Sistemas Operacionais Quadro 1 | Virtualização total e paravirtualização - Fonte: adaptada de Rodrigues (2016). Para compreender qual o melhor caminho ao escolher a forma como a paravirtualização será aplicada, seja para substituir ou otimizar a utilização de uma infraestrutura de TI tradicional, é necessário medir as vantagens e desvantagens. Isso porque, ao considerar a paravirtualização, sabemos que ela representa um melhor desempenho, porém, isso pode variar de acordo com os diferentes aspectos técnicos e com as diferentes cargas de trabalho. Já a virtualização total traz maior facilidade e menor complexidade por trás de sua operação, tornando o gerenciamento simpli�cado. Videoaula: Virtualização total e paravirtualização Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! O ambiente virtualizado vem sendo bastante adotado em redes de diversas complexidades e até mesmo em ambientes de nuvem, mas, será que a virtualização realmente é adequada para Disciplina Administração de Sistemas Operacionais qualquer cenário? Nesta aula, vamos falar sobre pontos importantes que devem ser considerados em uma análise de implementação da virtualização! Estudo de caso O mercado de TI aumenta cada vez mais, tratando de demandas por meio do uso da virtualização, otimizando o uso do hardware e permitindo que o administrador de rede possa gerenciar todos os serviços de forma centralizada, pela plataforma de gerenciamento virtual. Em uma interface semelhante à da �gura a seguir, podemos analisar o gerenciamento dos recursos, reiniciar as máquinas quando necessário e alocar recursos quando estiverem no gargalo: Disciplina Administração de Sistemas Operacionais Figura 12 | Alocação máquina virtual - Fonte: elaborada pela autora. Para que possamoscompreender a importância da virtualização na otimização dos serviços, considere o seguinte cenário (não esqueça de revisar também os itens do Saiba mais, antes de iniciar!). Você é um administrador de TI em uma empresa de desenvolvimento de software, a qual está aplicando algumas melhorias em sua infraestrutura e alterando os serviços do seu datacenter com servidores físicos para máquinas virtualizadas, garantindo que todos os serviços oferecidos possam ser gerenciados no mesmo ambiente, e com isso otimizando o uso do seu datacenter. Você irá necessitar utilizar da virtualização, para instalar diversos servidores virtuais em um mesmo físico. A tarefa consiste em instalar os seguintes serviços: servidor de banco de dados; servidor de aplicação: os usuários devem acessar de fora da rede; e-mail; �le server; e um servidor de impressão: deve disponibilizar as impressoras. Entretanto o gerente de TI estabeleceu alguns requisitos: Os servidores devem funcionar de maneira independente. A solução implementada deve ser de baixo custo. Você pode utilizar apenas um servidor disponível com os seguintes hardwares: 1. Memória RAM 32 GB. 2. Processador Intel Xenon com 4 núcleos. 3. HD SATA de 2 TB de espaço. Esses recursos precisam ser replicados para que possam ser alocados conforme necessidade para cada servidor. Disciplina Administração de Sistemas Operacionais As VMM precisam estar compartilhando a interface de rede e comunicando-se umas com as outras dentro da rede, além de que os usuários que utilizam computadores conectados na rede precisam acessar os serviços. Considerando essas informações, você necessita de�nir se para esse cenário seria adequado aplicar uma virtualização total ou uma paravirtualização. Analisando este mesmo contexto para a implementação e a quantidade de servidores a ser executados, o ideal seria utilizar VMWare e Virtual Box. Será importante garantir a simplicidade na operação, considerando as questões levantadas sobre o hardware. Além disso, após a implementação, você nota que os usuários não estavam conseguindo acessar os serviços e percebe que todas as interfaces estavam con�guradas como “not attaché”. Discorra, por meio de um texto explicativo, sobre as práticas que você adotaria nesse contexto. Resolução do estudo de caso Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. A virtualização permite uma série de combinações e facilita o gerenciamento de ambiente de rede, porém é necessário adaptar os recursos de rede e hardware em ambientes em que existe a necessidade de hospedar diversos serviços de maneira isolada. Se nesse cenário é ideal o uso de virtualização ou paravirtualização. Garantir simplicidade na operação, considerando as questões levantadas sobre o hardware. Nesse caso, o ideal seria optar pela virtualização total, no qual o sistema operacional hospedeiro não precisa ser alterado para criação das máquinas virtuais e alterações que compreendem a instalação e as con�gurações dos sistemas convidados. A virtualização total traz maior simplicidade e permite replicar o hardware real para o ambiente virtualizado. Considerando o tipo de implementação e a quantidade de servidores a ser executados, deve escolher entre VMWare e Virtual Box. Conforme estudamos, o VMWare tem um comportamento melhor em ambientes nos quais múltiplos servidores e grandes cargas de trabalho precisam ser executados, por isso seria o ideal para este cenário, no qual diversos serviços serão alocados no mesmo hardware. Disciplina Administração de Sistemas Operacionais Além disso, após a implementação, você percebeu que os usuários não estavam conseguindo acessar os serviços e percebeu que todas as interfaces estavam con�guradas como ‘Não conectado’. O modo “Não conectado”, signi�ca que nem um modo foi escolhido ainda. Por isso no nosso cenário, será necessário aplicar o modo NAT, para o servidor de aplicação e banco de dados por exemplo, pois o modo permite que o servidor acesse a Internet e esteja disponível para acessos externos. Para os demais servidores, o modo adequado seria Bridge, para que os serviços (impressão, �le service, e-mail) estejam visíveis aos usuários e possam imprimir em diversos departamentos, acessar os documentos, transferir os arquivos e acessar as caixas de e-mail, permitindo ao administrador con�gurar cada uma delas, apontando para o servidor correto. A con�guração de máquinas virtuais exige análise de cada serviço para que a comunicação com a rede e a alocação correta de hardware possa atender às expectativas e trazer os resultados esperados. Saiba mais Para instalar uma máquina virtual, é necessário estar atento ao sistema hospedeiro que está sendo utilizado para instalação do sistema convidado, por isso no site do VirtualBox, é possível encontrar as versões mais atuais para os diferentes ambientes para qual é compatível. Oracle. Download VirtuaBox 6.1. Disponível em: https://www.virtualbox.org/. Acesso em: 9 nov. 2021. https://www.virtualbox.org/ Disciplina Administração de Sistemas Operacionais O link traz comparações importantes sobre o uso do VMWare e do Virtual box, além de apontar vantagens na utilização de cada um deles. CEMIM. 2018. Máquinas virtuais: Vmware ou Virtualbox. Disponível em: https://redelan.wordpress.com/2018/04/04/maquinas-virtuais-vmware-ou-virtualbox. Acesso em: 9 nov. 2021. _______ A seguir, iremos revisar os conceitos-chaves, respectivamente, em um sistema real, paravirtualização e virtualização total: Figura 13 | Revisão dos conteúdos da aula - Fonte: elaborada pela autora. Agora, iremos analisar de forma detalhada as con�gurações de rede e as diferenças em cada um dos modos: https://redelan.wordpress.com/2018/04/04/maquinas-virtuais-vmware-ou-virtualbox Disciplina Administração de Sistemas Operacionais Quadro 2 | Con�gurações de rede - Para: adaptado de Almeida (2012). Referências Disciplina Administração de Sistemas Operacionais ALMEIDA, R. Con�gurando uma máquina virtual no VMWare. 2012. Disponível em: https://www.devmedia.com.br/con�gurando-uma-maquina-virtual-no-vmware- workstation/25541. Acesso em: 10 nov. 2021. LOTTI, L. P.; PRADO, A. B. Sistemas virtualizados – uma visão geral. 2011. Disponível em: https://www.ic.unicamp.br/~ducatte/mo401/1s2011/T2/Artigos/G09_012096_931544-t2.pdf. Acesso em 10 nov. 2021. MATTOS, D. Virtualização: VMWare e Xen. 2008. Disponível em: https://www.gta.ufrj.br/grad/08_1/virtual/artigo.pdf. Acesso em: 10 nov. 2021. RODRIGUES, A. 2016. Virtualização completa e paravirtualização. Disponível em: https://www.portalgsti.com.br/2016/11/virtualizacao-completa-e-paravirtualizacao.html. Acesso em: 10 nov. 2021. VERAS, M.; CARISSIMI, A. Virtualização de servidores. Rio de Janeiro: Escola superior de redes. 2015. Aula 4 Conctêiners para sistemas operacionais Introdução da aula https://www.devmedia.com.br/configurando-uma-maquina-virtual-no-vmware-workstation/25541 https://www.devmedia.com.br/configurando-uma-maquina-virtual-no-vmware-workstation/25541 https://www.ic.unicamp.br/~ducatte/mo401/1s2011/T2/Artigos/G09_012096_931544-t2.pdf https://www.gta.ufrj.br/grad/08_1/virtual/artigo.pdf https://www.portalgsti.com.br/2016/11/virtualizacao-completa-e-paravirtualizacao.html Disciplina Administração de Sistemas Operacionais Da mesma forma que a virtualização é capaz de resolver problemas relacionados com a subutilização de recursos em servidores físicos, a clusterização age de forma reversa, revertendo problemas referente à falta de recursos. Todo hardware tem suas limitações, e o mesmo serviço geralmente deve ser compartilhado por vários computadores, caso contrário, �cará muito lotado. Essas soluções podem ser direcionadas especi�camente ao grupo que executa o balanceamento de carga: CPU, armazenamento ou utilização de rede. Nesta aula, iremos analisar as diferenças entre a aplicação de virtualização e ouso de contêineres no ambiente de nuvem, compreendendo a importância de cada um deles. Virtualização e contêineres A busca por maior escalabilidade, redução de custos indiretos e padronização de implantações de software em diferentes máquinas e plataformas tem crescido muito no ambiente organizacional, principalmente porque nos encontramos em uma era digital. Para atingir esses objetivos, a utilização de contêineres e Virtual Machine - Máquina Virtual (VMs) são duas das principais abordagens que podem ser utilizadas. Veremos do que tratam basicamente cada uma dessas abordagens. Virtualização A virtualização pode ser de�nida como a representação de recursos físicos de computação, utilizados de forma simulada por meio do software. Essa camada especial de software é instalada em máquinas físicas ativas, transformando recursos físicos de computação em virtuais, sendo utilizadas pelos usuários para atender às suas necessidades computacionais. Disciplina Administração de Sistemas Operacionais De forma mais detalhada, a virtualização é responsável por fornecer um nível de abstração lógica, que envolve o sistema operacional, outros sistemas e o software de aplicativo, ou seja, os softwares instalados pelo usuário, evitando a necessidade de vinculação a um conjunto especí�co de hardware, sendo tudo instalado no ambiente operacional lógico criado pela virtualização. Os hipervisores (hypervisor) são as camadas de software leves responsáveis pela interação entre as VMs e os computadores físicos. Além disso, eles também podem separar as VMs umas das outras, alocando processadores, memória e armazenamento entre elas. Para �ns desta seção, abordaremos a virtualização de Sistema Operacional (SO), em que o SO principal de um desktop é movido para um ambiente virtual. Dessa forma, o computador que o usuário utiliza permanece em sua mesa, no entanto, o SO encontra-se hospedado em um servidor em outro lugar. O que normalmente ocorre é a existência de uma versão do SO no servidor e suas cópias são fornecidas ao usuário individual, nos quais os usuários podem modi�car o sistema operacional, sem que afete os demais usuários, conforme observado na Figura 1: Figura 1 | Arquitetura máquina virtual - Fonte: Microsoft. Na Figura 1 é apresentado a arquitetura de uma VM, nos quais são executados sistemas operacionais completos, incluindo o próprio kernel. Contêineres Os contêineres podem ser considerados como uma forma mais leve e ágil de lidar com a virtualização, isso porque eles não utilizam um hipervisor, de modo que sejam capazes de provisionar recursos e disponibilidade mais rapidamente para novos aplicativos. Disciplina Administração de Sistemas Operacionais A conteinerização realiza o empacotamento de tudo que é necessário para executar um aplicativo ou microsserviço, incluindo as bibliotecas de tempo de execução necessárias – sem a necessidade de gerar uma máquina virtual inteira. O contêiner engloba todo o código, suas dependências, além do próprio SO. Dessa forma, os aplicativos podem ser executados em quase qualquer lugar (desktop, infraestrutura tradicional ou nuvem). Os contêineres utilizam uma forma de virtualização de SO, ou seja, eles usam os recursos do sistema host para isolar os processos e controlar seus acessos a CPUs, memória e armazenamento, restringindo o acesso do contêiner a esses recursos físicos, para que um único contêiner não possa consumir todos os recursos físicos de um host, vide a Figura 2: Figura 2 | Arquitetura contêiner - Fonte: traduzida de Microsoft. A Figura 2 apresenta a arquitetura de um contêiner, que possui o kernel do sistema operacional do host como base e contém somente aplicativos e algumas Application Programming Interface - Interface de Programação de Aplicativos (APIs) e serviços leves do sistema operacional executados no modo de usuário. Videoaula: Virtualização e contêineres Este conteúdo é um vídeo! Disciplina Administração de Sistemas Operacionais Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! A virtualização trouxe diversos benefícios para os ambientes informatizados, resolvendo problemas de subutilização e trazendo um melhor aproveitamento dos recursos. Porém, ainda existiam alguns desa�os e a conteinerização surgiu com o objetivo de facilitar a alocação de recursos e resolver problemas que a virtualização não solucionou. Nesta aula, vamos analisar como isso é possível. Diferença entre virtualizações e contêineres As máquinas virtuais (VM – Virtual Machine) e os contêineres são complementares e semelhantes, melhorando a e�ciência de TI (Tecnologia da Informação), portabilidade de aplicativos e aprimoram o desenvolvimento. Entretanto, é fundamental compreender a diferença entre eles. Na virtualização, o hipervisor é responsável por virtualizar o hardware físico, em que cada máquina virtual contém um sistema operacional guest (convidado), uma cópia virtual do hardware para execução do Sistema Operacional (SO) e um aplicativo com suas bibliotecas e dependências associadas. Cabe destacar que VMs que possuem sistemas operacionais Disciplina Administração de Sistemas Operacionais diferentes podem coexistir no mesmo servidor físico, por exemplo, uma VM Linux pode ser executada próximo a uma VM Microsoft Windows. Os contêineres não virtualizam o hardware subjacente, mas sim o sistema operacional, de forma que cada contêiner tenha somente o aplicativo e suas bibliotecas e dependências. Contêineres são pequenos, ágeis e portáteis porque não precisam incluir um SO guest em todas as instâncias, podendo aproveitar os recursos do sistema operacional host. Tanto as máquinas virtuais quanto os contêineres permitem melhor utilização de CPU, memória e máquinas físicas por parte dos desenvolvedores. No entanto, os contêineres também permitem as arquiteturas de microsserviço, onde os componentes do aplicativo podem ser implantados e dimensionados de forma mais granular, sendo uma boa opção para dimensionamento de um aplicativo monolítico inteiro, clonando todo o aplicativo em várias máquinas, conforme Figura 3: Figura 3 | Dimensionamento aplicativo monolítico - Fonte: Britch (2017, p. 51). Com a virtualização é possível executar diversos sistemas operacionais no hardware de um único servidor físico, já a conteinerização permite a implementação de vários aplicativos fazendo uso de um mesmo sistema operacional em uma única máquina virtual ou em um servidor. As máquinas virtuais suportam aplicativos que exigem a funcionalidade total de um sistema operacional quando se deseja implantar diversos aplicativos em um servidor, ou quando se tem uma grande variedade de sistemas operacionais para gerenciamento. Quando a prioridade é a redução do número de servidores utilizados para vários aplicativos, os contêineres são a melhor escolha. Para tarefas com ciclo de vida mais curtos, os contêineres são os mais adequados, devido ao seu rápido tempo de con�guração, sendo ideais para tarefas que duram poucas horas. Já as Disciplina Administração de Sistemas Operacionais máquinas virtuais têm um ciclo de vida mais longo do que os contêineres, sendo mais utilizadas por longos períodos de tempo. Para que as organizações decidam qual o melhor caminho a seguir deve ser analisado o tamanho das operações e seus �uxos de trabalho. Além disso, a cultura da TI e os conjuntos de habilidades da equipe também são importantes na escolha, devendo ser considerados objetivos �nais e casos imediatos de uso. É importante ressaltar que tanto a conteinerização, quanto a virtualização pode ser escolhida dentro da estratégia de TI da organização, funcionando em conjunto. Os contêineres e as máquinas virtuais continuarão a desempenhar um papel importante. Os contêineres podem ser executados em máquinas virtuais, consentindo o aproveitamento de suas ferramentas existentes para automação, backup e monitoramento, por parte das organizações.Os contêineres em máquinas virtuais permitem que a TI use equipes existentes com experiência em máquinas virtuais para gerenciar ambientes em contêineres. Como as empresas esperam alavancar o poder de sua infraestrutura (ou nuvem) de novas maneiras para suportar aplicações pesadas e cargas de trabalho de rede, as máquinas virtuais terão novos casos de uso. Videoaula: Diferença entre virtualizações e contêineres Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá, estudante! Nesta videoaula iremos analisar alguns benefícios da conteinerização, mas também iremos falar de algumas desvantagens que devem servir como pontos de atenção, antes que este recurso seja adotado. Conhecendo os pontos positivos do uso do contêiner, �ca mais fácil compreender se a implementação vale a pena para a infraestrutura! Exemplos da aplicação de recursos de virtualização e contêineres para os sistemas operacionais Disciplina Administração de Sistemas Operacionais Antes de optar pela aplicação de máquinas virtuais (VM – Virtual Machine) e contêineres é importante conhecer os prós e contras de cada uma dessas tecnologias. Observe a Tabela 1: Tabela 1 | Prós e contras - Fonte: VMWare (2021). Disciplina Administração de Sistemas Operacionais Os contêineres empacotam e rodam uma aplicação e suas dependências de forma isolada, previsível e repetível. As máquinas virtuais também podem exercer tal função, no entanto levam mais tempo para criar, con�gurar, enviar e executar. Para melhor compreensão, podemos apresentar um exemplo de aplicação de contêiner e VM. O contêiner pode ser utilizado no desenvolvimento de softwares. Por exemplo, eles podem ser usados como forma de mover um aplicativo do desenvolvimento para o teste da seguinte forma: o desenvolvedor escreve o código, após isso envia o aplicativo para a equipe de teste como uma imagem de contêiner, de modo que a equipe consiga executar a imagem do contêiner e testar o aplicativo, sem a necessidade de seguir uma sequência complexa de etapas, con�gurar servidor ou criar uma máquina virtual. Dessa forma a imagem do aplicativo é apenas executada e pode ser feito o teste. Para isso, pode ser utilizada uma ferramenta que fornece recursos para criação de contêineres virtuais isoladamente do sistema operacional host. A ferramenta mais utilizada é o Docker. Assim, criando uma imagem Docker do aplicativo (conforme Figura 4), ela poderá ser executada em ambientes diferentes, mantendo a paridade entre eles. Figura 4 | Funcionamento Docker - Fonte: traduzida de Anil (2021). Já as máquinas virtuais também podem ser utilizadas para auxiliar desenvolvedores a testar novos aplicativos. No entanto, para testar em diferentes ambientes, devem ser con�guradas diferentes VMs e instaladas as aplicações de forma completa em cada um dos ambientes e testá-las. A vantagem é que assim a aplicação em teste não precisa ser executada diretamente no sistema operacional host, de modo que, caso cause algum problema não afete o sistema por inteiro. Disciplina Administração de Sistemas Operacionais A verdade é que tanto VMs quanto contêineres são importantes para o ambiente digital em constante crescimento, cada uma com suas vantagens e, a escolha pela adoção de uma delas deve ser feita com base nas necessidades de cada organização e ambiente. Videoaula: Exemplos da aplicação de recursos de virtualização e contêineres para os sistemas operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Olá! A aplicação de contêiner é ideal para o gerenciamento de aplicações e pode ser bené�co para diversos cenários e serviços que precisam ser suportados pela tecnologia. Por isso, nesta videoaula, iremos analisar alguns casos em que a conteinerização pode ser implementada. Estudo de caso Disciplina Administração de Sistemas Operacionais Em uma empresa de tecnologia a qual cuida de vários projetos importantes para outras empresas virtuais de e-commerce, necessita implementar um novo projeto, criando um site de vendas para um parceiro que está crescendo no mercado e pretende ter uma maior visibilidade no mercado. Um dos programadores recebeu a missão de trabalhar nesse projeto para desenvolver a versão móvel do aplicativo de compras e recebeu um notebook com um sistema operacional Linux e com con�gurações especí�cas para suas funções cotidianas. Você foi contratado como o administrador de rede, responsável pela con�guração dos ativos e descobriu que o ambiente de desenvolvimento possui o java, sublime, e o visual studio instalados, mas estas versões não atendem à necessidade do programador e necessitariam de atualizações, o que demandariam algum tempo. O ambiente de produção já está rodando com todas as versões corretas. Para tanto, você precisa evitar qualquer problema na implantação, bem como no desenvolvimento da aplicação. Para isso você deve aplicar a virtualização ou conteinerização, descrevendo sobre qual solução você acredita que seja a ideal para este caso que o uso da tecnologia escolhida precisa permitir a portabilidade do ambiente, caso sejam necessários outros programadores atuando no projeto, e também que a utilização dos aplicativos não deve ser in�uenciada pelo uso do sistema operacional. Descreva por meio de um pequeno relatório qual o melhor caminho para solucionar esse cenário. Resolução do estudo de caso Disciplina Administração de Sistemas Operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. A conteinerização é a tecnologia ideal para este cenário e irá contribuir para o ambiente, sendo capaz de evitar qualquer tipo de incompatibilidade entre o ambiente de desenvolvimento e o servidor utilizado para a implantação do sistema em produção. O código fonte poderá ser portabilizado junto com as aplicações sempre que necessário para diferentes sistemas operacionais. Como neste caso, a prioridade são as aplicações e não o sistema operacional, a virtualização não será necessária, diminuindo o custo envolvido com a necessidade do hardware. Os próximos programadores que irão atuar no projeto para desenvolver as funcionalidades do aplicativo, poderão transferir a imagem do seu container Linux criado e armazenar no seu dispositivo, incluindo todas as bibliotecas necessárias para rodar o sistema. Ao �nal os dois containers poderão ser integrados, dando origem ao ambiente de produção. Olá, estudante! Clique Aqui! E acesse o roteiro de aula prática da U1, aula 3. Clique Aqui! E acesse o roteiro de aula prática da U2, aula 2. Clique Aqui! E acesse o roteiro de aula prática da U3, aula 3. Clique Aqui! E acesse o roteiro de aula prática da U4, aula 4. Saiba mais https://cm-kls-content.s3.amazonaws.com/AMPLI/RAP/ADMINISTRACAO_DE_SISTEMAS_OPERACIONAIS/RAP_U1.3.pdf https://cm-kls-content.s3.amazonaws.com/AMPLI/RAP/ADMINISTRACAO_DE_SISTEMAS_OPERACIONAIS/RAP_U2.2.pdf https://cm-kls-content.s3.amazonaws.com/AMPLI/RAP/ADMINISTRACAO_DE_SISTEMAS_OPERACIONAIS/RAP_U3.3.pdf https://cm-kls-content.s3.amazonaws.com/AMPLI/RAP/ADMINISTRACAO_DE_SISTEMAS_OPERACIONAIS/RAP_U4.4.pdf Disciplina Administração de Sistemas Operacionais Esse conteúdo, traz informações sobre os serviços de containers e virtualização oferecidos pela Red Hat, trazendo informações sobre as soluções, além de dicas de como escolher a melhor opção. Containers x máquinas virtuais. Disponível em: https://www.redhat.com/pt- br/topics/containers/containers-vs-vms. Acesso em: 26 nov. 2021. _______ https://www.redhat.com/pt-br/topics/containers/containers-vs-vms https://www.redhat.com/pt-br/topics/containers/containers-vs-vmsDisciplina Administração de Sistemas Operacionais Figura 5 | Diferença entre virtualização e conteinerização - Fonte: elaborada pela autora. Referências Disciplina Administração de Sistemas Operacionais ANIL, N. Implantar aplicativos monolíticos em contêineres. Disponível em: https://docs.microsoft.com/pt-br/dotnet/architecture/microservices/architect-microservice- container-applications/containerize-monolithic-applications. Acesso em: 2 dez. 2021. BHOWMIK, S. Cloud computing. India: Cambridge University Press, 2017. BRITCH, D. Enterprise Application Patterns Using Xamaring.Forms. Disponível em: https://raw.githubusercontent.com/dotnet-architecture/eBooks/main/current/xamarin- forms/Enterprise-Application-Patterns-using-XamarinForms.pdf. Acesso em: 2 dez. 2021. DONOHUE, T. Guide to Containers: why and how to use them. Disponível em: https://www.tutorialworks.com/containers. Acesso em: 24 nov. 2021. IBM CLOUD TEAM. Containers vs. Virtual Machines (VMs): what’s the difference? Disponível em: https://www.ibm.com/cloud/blog/containers-vs-vms. Acesso em: 23 nov. 2021. MICROSOFT. Contêineres vs. máquinas virtuais. Disponível em: https://docs.microsoft.com/pt- br/virtualization/windowscontainers/about/containers-vs-vm. Acesso em: 23 nov. 2021. STRONG, A. Containerization vs. Virtualization: what’s the difference? Disponível em: https://www.burwood.com/blog-archive/containerization-vs-virtualization. Acesso em: 23 nov. 2021. https://docs.microsoft.com/pt-br/dotnet/architecture/microservices/architect-microservice-container-applications/containerize-monolithic-applications https://docs.microsoft.com/pt-br/dotnet/architecture/microservices/architect-microservice-container-applications/containerize-monolithic-applications https://raw.githubusercontent.com/dotnet-architecture/eBooks/main/current/xamarin-forms/Enterprise-Application-Patterns-using-XamarinForms.pdf https://raw.githubusercontent.com/dotnet-architecture/eBooks/main/current/xamarin-forms/Enterprise-Application-Patterns-using-XamarinForms.pdf https://www.tutorialworks.com/containers https://www.ibm.com/cloud/blog/containers-vs-vms https://docs.microsoft.com/pt-br/virtualization/windowscontainers/about/containers-vs-vm https://docs.microsoft.com/pt-br/virtualization/windowscontainers/about/containers-vs-vm https://www.burwood.com/blog-archive/containerization-vs-virtualization