SlideShare uma empresa Scribd logo
1 de 17
ADMINISTRAÇÃO DE
SERVIÇOS DE REDE
Processos e Threads
Por: Celestino Pempe, 2019
Resumo
■ Saber oque sao e como funcionam os Processos do sistema
■ Saber oque sao e como funcionam os Threds do sistema
■ Saber como funciona a intercomunicação de processos
Processo
■ Um processo é basicamente um programa em
execução. A execução de um processo deve
progredir de forma seqüencial.
■ Um processo é definido como uma entidade que
representa a unidade básica de trabalho a ser
implementada no sistema.
■ Em termos simples, escrevemos nossos programas
de computador em um arquivo de texto e, quando
executamos este programa, ele se torna um
processo que executa todas as tarefas
mencionadas no programa.
■ Quando um programa é carregado na memória e
se torna um processo, ele pode ser dividido em
quatro seções: pilha, heap, texto e dados. A
imagem a seguir mostra um layout simplificado de
um processo dentro da memória principal
Componente e Descrição do Processo
■ Pilha (Stack)
– O processo Stack contém os dados temporários, como parâmetros de método
/ função, endereço de retorno e variáveis locais.
■ Pilha (Heap)
– Isso é dinamicamente alocado memória para um processo durante seu tempo
de execução.
■ Texto (Text)
– Isso inclui a atividade atual representada pelo valor do Contador de Programa
e o conteúdo dos registradores do processador.
■ Dados (Data)
– Esta seção contém as variáveis globais e estáticas.
Programa
■ Um programa é um pedaço de código que pode ser uma única linha ou milhões de
linhas. Um programa de computador é geralmente escrito por um programador de
computador em uma linguagem de programação. Por exemplo, aqui está um
programa simples escrito em linguagem de programação C.
■ Um programa de computador é uma coleção de instruções que executa uma tarefa
específica quando executada por um computador. Quando comparamos um programa
com um processo, podemos concluir que um processo é uma instância dinâmica de
um programa de computador.
■ Uma parte de um programa de computador que executa uma tarefa bem definida é
conhecida como um algoritmo. Uma coleção de programas de computador,
bibliotecas e dados relacionados são chamados de software.
Ciclo de Vida do Processo
■ Quando um processo é executado, ele passa por diferentes estados. Esses estágios podem diferir em sistemas operacionais
diferentes e os nomes desses estados também não são padronizados.
■ Em geral, um processo pode ter um dos cinco estados a seguir de cada vez.
■ Começar (start)
– Este é o estado inicial quando um processo é iniciado / criado pela primeira vez.
■ Pronto (ready)
– O processo está aguardando para ser atribuído a um processador. Os processos prontos estão aguardando que o
processador seja alocado para eles pelo sistema operacional para que possam ser executados. O processo pode
entrar nesse estado após o estado Start ou durante a execução, mas interrompido pelo agendador para atribuir
CPU a algum outro processo.
■ Executar(Running)
– Uma vez que o processo tenha sido atribuído a um processador pelo agendador do SO, o estado do processo é
configurado para execução e o processador executa suas instruções.
■ Esperando(Waiting)
– O processo é movido para o estado de espera se precisar aguardar por um recurso, como aguardar a entrada do
usuário ou aguardar a disponibilização de um arquivo.
■ Terminado ou Sair(Terminating or exit)
– Quando o processo termina sua execução, ou é finalizado pelo sistema operacional, ele é movido para o estado
finalado, onde ele aguarda para ser removido da memória principal.
Bloco de controle de processo (PCB)
■ Um bloco de controle de processo é uma estrutura de dados mantida pelo sistema
operacional para cada processo. O PCB é identificado por um ID de processo inteiro (PID).
Um PCB mantém todas as informações necessárias para acompanhar um processo
conforme listado abaixo
■ Estado do processo (Process State)
– O estado atual do processo, ou seja, se está pronto, em execução, em espera ou o
que for.
■ Privilégios do processo
– Isso é necessário para permitir / não permitir o acesso aos recursos do sistema.
■ ID do processo
– Identificação exclusiva para cada um dos processos no sistema operacional.
■ Ponteiro
– Um ponteiro para o processo pai.
■ Contador de programas
– Contador de Programa é um ponteiro para o endereço da próxima instrução a ser
executada para este processo.
Bloco de controle de processo (PCB)
■ Registros da CPU
– Vários registradores da CPU onde o processo precisa ser armazenado para
execução no estado de execução.
■ Informações de agendamento de CPU
– Prioridade de processo e outras informações de agendamento que são
necessárias para agendar o processo.
■ Informações de gerenciamento de memória
– Isso inclui as informações da tabela de páginas, limites de memória, tabela de
segmentos, dependendo da memória usada pelo sistema operacional.
■ Informação contábil
– Isso inclui a quantidade de CPU usada para a execução do processo, limites de
tempo, ID de execução, etc.
■ Informações de status de IO
– Isso inclui uma lista de dispositivos de E / S alocados para o processo.
Ciclo de Vida do Processo
Thread
■ Um thread é um fluxo de execução através do código de processo, com seu próprio
contador de programa que controla quais instruções executar em seguida, registros do
sistema que mantêm suas variáveis de trabalho atuais e uma pilha que contém o
histórico de execução.
■ Um thread compartilha com seus peer threads poucas informações como segmento de
código, segmento de dados e arquivos abertos. Quando um encadeamento altera um
item de memória de segmento de código, todos os outros encadeamentos o veem.
Um segmento também é chamado de processo leve. Os threads fornecem uma
maneira de melhorar o desempenho do aplicativo por meio do paralelismo. Threads
representam uma abordagem de software para melhorar o desempenho do sistema
operacional, reduzindo o segmento de sobrecarga é equivalente a um processo
clássico.
■ Cada thread pertence exatamente a um processo e nenhum thread pode existir fora
de um processo. Cada thread representa um fluxo separado de controle. Threads
foram utilizados com sucesso na implementação de servidores de rede e servidor web.
Eles também fornecem uma base adequada para execução paralela de aplicativos em
multiprocessadores de memória compartilhada. A figura a seguir mostra o
funcionamento de um processo single-threaded e multithread.
Thread
Diferença entre Processo e Thread
■ Processo
– O processo é pesado ou consome muitos recursos.
– A comutação de processos precisa de interação com o sistema
operacional.
– Em vários ambientes de processamento, cada processo executa o mesmo
código, mas possui seus próprios recursos de memória e arquivo.
– Se um processo for bloqueado, nenhum outro processo poderá ser
executado até que o primeiro processo seja desbloqueado.
– Múltiplos processos sem o uso de threads usam mais recursos.
– Em vários processos, cada processo opera independentemente dos outros.
Diferença entre Processo e Thread
■ Thread
– Thread é leve, tendo menos recursos do que um processo.
– Comutação de thread não precisa interagir com o sistema operacional.
– Todos os threads podem compartilhar o mesmo conjunto de arquivos
abertos, processos filhos.
– Enquanto um thread está bloqueado e aguardando, um segundo thread na
mesma tarefa pode ser executado.
– Vários processos encadeados usam menos recursos.
– Um thread pode ler, gravar ou alterar os dados de outro thread.
Vantagens do Thread
■ Threads minimizam o tempo de troca de contexto.
■ O uso de encadeamentos fornece simultaneidade dentro de um processo.
■ Comunicação eficiente.
■ É mais econômico criar e inserir threads de comutação.
■ Os threads permitem a utilização de arquiteturas multiprocessadas para uma
maior escala e eficiência.
Tipos de Thread
■ Threads são implementados seguindo duas maneiras
– Threads de nível de usuário - Threads gerenciados pelo usuário.
– Threads de Nível do Kernel - Threads gerenciados pelo Sistema
Operacional que atuam no kernel, um núcleo do sistema operacional.
Comunicação entre processos
■ Existem dois tipos de processos: Independente e Cooperativo. Um processo
independente não é afetado pela execução de outros processos, enquanto um
processo de cooperação pode ser afetado por outros processos de execução.
■ Você pode pensar que esses processos, que estão sendo executados de forma
independente, seriam executados de maneira muito eficiente. Mas, na realidade, há
muitas situações em que a natureza cooperativa de um processo pode ser utilizada
para aumentar a velocidade, a conveniência e a modularidade computacionais.
■ A comunicação entre processos (IPC) é um mecanismo que permite que os processos
se comuniquem entre si e sincronizem suas ações. A comunicação entre esses
processos pode ser vista como um método de cooperação entre eles.
Os processos podem se comunicar entre si de duas maneiras: Memória
Compartilhada e Análise de Mensagens.
■Obrigado

Mais conteúdo relacionado

Semelhante a Lecture 4-Processos e Threads pt mz.pptx

Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisJocelma Rios
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: IntroduçãoAlexandre Duarte
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacionalMichael Soto
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoFrederico Madeira
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Fso parte iii
Fso parte iiiFso parte iii
Fso parte iiipaulocsm
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional Rodrigo Rodrigues
 
Sistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºanoSistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºanoHus Juky
 
Programação Concorrente - Introdução
Programação Concorrente - IntroduçãoProgramação Concorrente - Introdução
Programação Concorrente - IntroduçãoFabio Moura Pereira
 
2010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula12010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula1Universal.org.mx
 
Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Joicy Souza
 
7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memóriaMaria194536
 
Introducao a Sistemas Operacionais
Introducao a Sistemas OperacionaisIntroducao a Sistemas Operacionais
Introducao a Sistemas OperacionaisIsaac Vieira
 
Execução de programas
Execução de programasExecução de programas
Execução de programasMattheusAnd07
 

Semelhante a Lecture 4-Processos e Threads pt mz.pptx (20)

Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas Operacionais
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de Código
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Fso parte iii
Fso parte iiiFso parte iii
Fso parte iii
 
Aula3so
Aula3soAula3so
Aula3so
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
 
Sistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºanoSistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºano
 
gabarito.pdf
gabarito.pdfgabarito.pdf
gabarito.pdf
 
Sistema Operativo 2
Sistema Operativo 2Sistema Operativo 2
Sistema Operativo 2
 
Programação Concorrente - Introdução
Programação Concorrente - IntroduçãoProgramação Concorrente - Introdução
Programação Concorrente - Introdução
 
2010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula12010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula1
 
Curso openmp
Curso openmpCurso openmp
Curso openmp
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Conceito de processos
Conceito de processosConceito de processos
Conceito de processos
 
Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Questões de Sistemas Operacionais
Questões de Sistemas Operacionais
 
7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória
 
Introducao a Sistemas Operacionais
Introducao a Sistemas OperacionaisIntroducao a Sistemas Operacionais
Introducao a Sistemas Operacionais
 
Execução de programas
Execução de programasExecução de programas
Execução de programas
 

Lecture 4-Processos e Threads pt mz.pptx

  • 1. ADMINISTRAÇÃO DE SERVIÇOS DE REDE Processos e Threads Por: Celestino Pempe, 2019
  • 2. Resumo ■ Saber oque sao e como funcionam os Processos do sistema ■ Saber oque sao e como funcionam os Threds do sistema ■ Saber como funciona a intercomunicação de processos
  • 3. Processo ■ Um processo é basicamente um programa em execução. A execução de um processo deve progredir de forma seqüencial. ■ Um processo é definido como uma entidade que representa a unidade básica de trabalho a ser implementada no sistema. ■ Em termos simples, escrevemos nossos programas de computador em um arquivo de texto e, quando executamos este programa, ele se torna um processo que executa todas as tarefas mencionadas no programa. ■ Quando um programa é carregado na memória e se torna um processo, ele pode ser dividido em quatro seções: pilha, heap, texto e dados. A imagem a seguir mostra um layout simplificado de um processo dentro da memória principal
  • 4. Componente e Descrição do Processo ■ Pilha (Stack) – O processo Stack contém os dados temporários, como parâmetros de método / função, endereço de retorno e variáveis locais. ■ Pilha (Heap) – Isso é dinamicamente alocado memória para um processo durante seu tempo de execução. ■ Texto (Text) – Isso inclui a atividade atual representada pelo valor do Contador de Programa e o conteúdo dos registradores do processador. ■ Dados (Data) – Esta seção contém as variáveis globais e estáticas.
  • 5. Programa ■ Um programa é um pedaço de código que pode ser uma única linha ou milhões de linhas. Um programa de computador é geralmente escrito por um programador de computador em uma linguagem de programação. Por exemplo, aqui está um programa simples escrito em linguagem de programação C. ■ Um programa de computador é uma coleção de instruções que executa uma tarefa específica quando executada por um computador. Quando comparamos um programa com um processo, podemos concluir que um processo é uma instância dinâmica de um programa de computador. ■ Uma parte de um programa de computador que executa uma tarefa bem definida é conhecida como um algoritmo. Uma coleção de programas de computador, bibliotecas e dados relacionados são chamados de software.
  • 6. Ciclo de Vida do Processo ■ Quando um processo é executado, ele passa por diferentes estados. Esses estágios podem diferir em sistemas operacionais diferentes e os nomes desses estados também não são padronizados. ■ Em geral, um processo pode ter um dos cinco estados a seguir de cada vez. ■ Começar (start) – Este é o estado inicial quando um processo é iniciado / criado pela primeira vez. ■ Pronto (ready) – O processo está aguardando para ser atribuído a um processador. Os processos prontos estão aguardando que o processador seja alocado para eles pelo sistema operacional para que possam ser executados. O processo pode entrar nesse estado após o estado Start ou durante a execução, mas interrompido pelo agendador para atribuir CPU a algum outro processo. ■ Executar(Running) – Uma vez que o processo tenha sido atribuído a um processador pelo agendador do SO, o estado do processo é configurado para execução e o processador executa suas instruções. ■ Esperando(Waiting) – O processo é movido para o estado de espera se precisar aguardar por um recurso, como aguardar a entrada do usuário ou aguardar a disponibilização de um arquivo. ■ Terminado ou Sair(Terminating or exit) – Quando o processo termina sua execução, ou é finalizado pelo sistema operacional, ele é movido para o estado finalado, onde ele aguarda para ser removido da memória principal.
  • 7. Bloco de controle de processo (PCB) ■ Um bloco de controle de processo é uma estrutura de dados mantida pelo sistema operacional para cada processo. O PCB é identificado por um ID de processo inteiro (PID). Um PCB mantém todas as informações necessárias para acompanhar um processo conforme listado abaixo ■ Estado do processo (Process State) – O estado atual do processo, ou seja, se está pronto, em execução, em espera ou o que for. ■ Privilégios do processo – Isso é necessário para permitir / não permitir o acesso aos recursos do sistema. ■ ID do processo – Identificação exclusiva para cada um dos processos no sistema operacional. ■ Ponteiro – Um ponteiro para o processo pai. ■ Contador de programas – Contador de Programa é um ponteiro para o endereço da próxima instrução a ser executada para este processo.
  • 8. Bloco de controle de processo (PCB) ■ Registros da CPU – Vários registradores da CPU onde o processo precisa ser armazenado para execução no estado de execução. ■ Informações de agendamento de CPU – Prioridade de processo e outras informações de agendamento que são necessárias para agendar o processo. ■ Informações de gerenciamento de memória – Isso inclui as informações da tabela de páginas, limites de memória, tabela de segmentos, dependendo da memória usada pelo sistema operacional. ■ Informação contábil – Isso inclui a quantidade de CPU usada para a execução do processo, limites de tempo, ID de execução, etc. ■ Informações de status de IO – Isso inclui uma lista de dispositivos de E / S alocados para o processo.
  • 9. Ciclo de Vida do Processo
  • 10. Thread ■ Um thread é um fluxo de execução através do código de processo, com seu próprio contador de programa que controla quais instruções executar em seguida, registros do sistema que mantêm suas variáveis de trabalho atuais e uma pilha que contém o histórico de execução. ■ Um thread compartilha com seus peer threads poucas informações como segmento de código, segmento de dados e arquivos abertos. Quando um encadeamento altera um item de memória de segmento de código, todos os outros encadeamentos o veem. Um segmento também é chamado de processo leve. Os threads fornecem uma maneira de melhorar o desempenho do aplicativo por meio do paralelismo. Threads representam uma abordagem de software para melhorar o desempenho do sistema operacional, reduzindo o segmento de sobrecarga é equivalente a um processo clássico. ■ Cada thread pertence exatamente a um processo e nenhum thread pode existir fora de um processo. Cada thread representa um fluxo separado de controle. Threads foram utilizados com sucesso na implementação de servidores de rede e servidor web. Eles também fornecem uma base adequada para execução paralela de aplicativos em multiprocessadores de memória compartilhada. A figura a seguir mostra o funcionamento de um processo single-threaded e multithread.
  • 12. Diferença entre Processo e Thread ■ Processo – O processo é pesado ou consome muitos recursos. – A comutação de processos precisa de interação com o sistema operacional. – Em vários ambientes de processamento, cada processo executa o mesmo código, mas possui seus próprios recursos de memória e arquivo. – Se um processo for bloqueado, nenhum outro processo poderá ser executado até que o primeiro processo seja desbloqueado. – Múltiplos processos sem o uso de threads usam mais recursos. – Em vários processos, cada processo opera independentemente dos outros.
  • 13. Diferença entre Processo e Thread ■ Thread – Thread é leve, tendo menos recursos do que um processo. – Comutação de thread não precisa interagir com o sistema operacional. – Todos os threads podem compartilhar o mesmo conjunto de arquivos abertos, processos filhos. – Enquanto um thread está bloqueado e aguardando, um segundo thread na mesma tarefa pode ser executado. – Vários processos encadeados usam menos recursos. – Um thread pode ler, gravar ou alterar os dados de outro thread.
  • 14. Vantagens do Thread ■ Threads minimizam o tempo de troca de contexto. ■ O uso de encadeamentos fornece simultaneidade dentro de um processo. ■ Comunicação eficiente. ■ É mais econômico criar e inserir threads de comutação. ■ Os threads permitem a utilização de arquiteturas multiprocessadas para uma maior escala e eficiência.
  • 15. Tipos de Thread ■ Threads são implementados seguindo duas maneiras – Threads de nível de usuário - Threads gerenciados pelo usuário. – Threads de Nível do Kernel - Threads gerenciados pelo Sistema Operacional que atuam no kernel, um núcleo do sistema operacional.
  • 16. Comunicação entre processos ■ Existem dois tipos de processos: Independente e Cooperativo. Um processo independente não é afetado pela execução de outros processos, enquanto um processo de cooperação pode ser afetado por outros processos de execução. ■ Você pode pensar que esses processos, que estão sendo executados de forma independente, seriam executados de maneira muito eficiente. Mas, na realidade, há muitas situações em que a natureza cooperativa de um processo pode ser utilizada para aumentar a velocidade, a conveniência e a modularidade computacionais. ■ A comunicação entre processos (IPC) é um mecanismo que permite que os processos se comuniquem entre si e sincronizem suas ações. A comunicação entre esses processos pode ser vista como um método de cooperação entre eles. Os processos podem se comunicar entre si de duas maneiras: Memória Compartilhada e Análise de Mensagens.