PROCESSOS NO SISTEMA OPERACIONAL LINUX
Tipo de documento:Projeto
Área de estudo:Tecnologia da informação
Através deste trabalho vamos entender com mais detalhes como um processo é criado, e como ele se desenvolve. Para a realização da pesquisa de cunho bibliográfico, foram analisados diversos trabalhos de referência na área, buscando trazer um conteúdo com linguagem clara, não puramente técnica. As análises dos estudos foram de cunho qualitativo, ou seja, foram interpretados os sentidos das principais ideias que iam de encontro ao propósito da pesquisa. Estudar e compreender os Sistemas Operacionais e suas minúcias, é extremamente relevante para a compreensão da arquitetura de computadores e sistemas operacionais. Através deste estudo, é possível, compreender o diálogo mais entre o hardware e o software, possibilitando ao discente, aprendizados essenciais para a sua área de atuação. Estes, por sua vez, são executados, através do compartilhamento do uso dos seguintes componentes: processador, memória e dispositivos de entrada e saída.
Bovet e Cesati (2005, p. explicam que, Um processo é geralmente definido como uma instância de um programa em execução; portanto, se 16 usuários estão executando o vi1 de uma só vez, há 16 processos separados (embora possam compartilhar o mesmo código executável). Os processos são freqüentemente chamados de tarefas a serem lidas no código-fonte do Linux. BOVET E CESATI, 2005, p. De maneira mais técnica, Bovet e Cesati (2005), trazem o conhecimento de que um programa é identificado pelo seu ID do processo (PID) e pelo ID do processo pai (PPID). Portanto, os processos podem ser categorizados em: processos pai, caracterizados como processos que criam outros processos durante o tempo de execução, e processos filhos, processos que são criados por outros processos durante o tempo de execução.
Bovet e Cesati (2005) explicam ainda que o Linux usa processos leves para oferecer melhor suporte a aplicativos multithread. Basicamente, dois processos leves podem compartilhar alguns recursos, como o espaço de endereço, os arquivos abertos e assim por diante. Sempre que um deles modifica um recurso compartilhado, o outro vê imediatamente a alteração. Já o TASK_UNINTERRUPTIBLE, é importante sob específicas em que um processo deve aguardar até que um determinado evento ocorra sem ser interrompido. CARACTERÍSTICAS DOS PROCESSOS Os sistemas operacionais Linux, dependem da criação do processo para atender às solicitações do usuário. Por exemplo, o shell, gerenciador de processos Linux, cria um novo processo que executa outra cópia do mesmo sempre que o usuário digita um comando. Os sistemas Linux tradicionais tratam todos os processos da mesma maneira: os recursos pertencentes ao processo pai são duplicados no processo filho.
Essa abordagem torna a criação do processo muito lenta e ineficiente, porque requer a cópia de todo o espaço de endereço do processo pai. PROCESSOS NA PRÁTICA Para compreendermos melhor o funcionamento dos processos na prática, veremos a seguir alguns comandos que facilitam uma visualização geral dos processos. Para isso, foi instalada no Windows uma máquina virtual através do software Oracle VM Virtual Box, utilizando o Sistema Operacional Ubuntu descrito na Figura 2, baseado em Linux. Figura 2- Sistema Operacional Ubuntu instalada Máquina Virtual Fonte: Próprio autor Sabemos que quanto mais programas estão em execução, mais o sistema irá requerer poder de processamento de dados. Na figura 3, temos o navegador Firefox com duas abas abertas, e um vídeo em execução.
Figura 3-Aplicativo Firefox ativado consumindo CPU Fonte: Próprio autor Utilizando a interface de comando Terminal do Ubuntu, acessada através da opção aplicativo no lado inferior esquerdo da figura 3 acima, poderemos com o comando “ps au” verificar o quanto a aplicação exige do processador, bem como os processos utilizados na execução da aplicação, dentre outros dados do interesse da pesquisa. Masseto (2020) apresenta a criação de processos através de um pequeno programa com o único objetivo de exigir processamento contínuo de dados no computador, culminando na criação de mais processos, desta maneira será possível caracterizar os processos criados. Figura 6-Código criado para provocar trabalho intenso da CPU Fonte: Sistemas Operacionais - Criação de Processos no Linux3 O código em questão, digitado no editor de texto “Vim”, por Masseto, apenas ficará contando números de 0 a 100000, o que exigirá certo tempo e processamento por parte do computador.
Complementando o código descrito acima, é possível criar um outro código. Este, será o criador de processos, no qual será possível utilizar a ferramenta fork(), cuja utilidade é exatamente a de criação de processos. Figura 7-Código criado para provocar trabalho intenso da CPU Fonte: Sistemas Operacionais - Criação de Processos no Linux4 É possível observar ainda que o nosso código foi descrito com o uso do comando Void, que designa a criação de funções que não dão resposta na declaração return. Caso retorne um valor diferente de 0, teremos então o processo pai. Figura 8- Implementação da função fork() Fonte: Sistemas Operacionais - Criação de Processos no Linux5 Observa-se aqui que a variável “pid” receberá o resultado da função fork().
Figura 9- Código compilado mostrando os processos pais e filho Fonte: Sistemas Operacionais - Criação de Processos no Linux6 Ajustando-se o código e compilando-se os dados, foi possível verificar que o programa criado, retornou dois processos: o processo pai cujo código identificador é o 7071 e um processo filho. Figura 10 -Visualização dos processos em execução na máquina através do comando "ps au" Fonte: Sistemas Operacionais - Criação de Processos no Linux7 Utilizando-se o comando “ps au” foi possível perceber que assim como nos dois exemplos anteriores, os processos pai e filho foram listados, manifestando-se na antepenúltima e penúltima linhas do código, demonstrando assim, a hierarquia entre os processos. CONSIDERAÇÕES FINAIS O presente trabalho apresentou um pouco a respeito do gerenciamento de processos no Sistema Operacional Ubuntu, com base em Linux.
org/operating%20system%20/linux/Understanding%20Linux%20Kernel. pdf>. Acesso em: 11 jun. FAINA, L. F. Disponível em: <http://www. inf. ufes. br/~rgomes/so_fichiers/aula2. pdf>. h09m12s). Disponível em: <https://www. youtube. com/watch?v=0uNttSDoGIo&t=1591s>. Acesso em: 20 jun. escolalinux. com. br/blog/kernel-do-linux-o-que-e-e-para-que-serve>. Acesso em 14 jun. SWARM. ifsp. edu. br/~marcio. andrey/images/Introducao-Processo. pdf>.
1085 R$ para obter acesso e baixar trabalho pronto
Apenas no StudyBank
Modelo original
Para download
Documentos semelhantes