AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 786041
Accepted
Parsa99
Parsa99
Asked: 2024-11-03 18:59:34 +0800 CST2024-11-03 18:59:34 +0800 CST 2024-11-03 18:59:34 +0800 CST

Processo em tempo real vs Afinidade de processo

  • 772
A recompensa expira em 3 dias . Respostas a esta pergunta são elegíveis para uma recompensa de reputação de +100 . Parsa99 está procurando uma resposta de uma fonte confiável .

Pelo que entendi, um processo em tempo real significa que o processo obterá a CPU assim que precisar. O kernel é responsável por essa tarefa com seu mecanismo de agendamento interno.

Por outro lado, a afinidade de processo significa que o processo terá uma CPU dedicada para si mesmo e não será gerenciado pelo agendador do kernel. Então, se entendi corretamente, é ainda melhor do que ser um processo em tempo real. É como programar para um Arduino, mas apenas com uma CPU muito mais rápida. Além disso, no meu entendimento para afinidade de processo, precisamos de pelo menos uma CPU dual core e devemos deixar pelo menos uma CPU para o próprio sistema operacional. Então, com a ajuda da afinidade de processo, um programa que foi escrito para um Arduino pode ser portado para uma placa Linux como o Raspberry Pi Zero 2 W (que tem uma CPU quad-core) e teria todos os benefícios de um microcontrolador apenas com uma CPU mais rápida.

Meu entendimento está correto?

kernel
  • 1 1 respostas
  • 80 Views

1 respostas

  • Voted
  1. Best Answer
    tukan
    2024-11-06T18:32:35+08:002024-11-06T18:32:35+08:00

    Acho que você está misturando dois conceitos que têm significados diferentes do que você descreveu. Eles têm fluxos de trabalho de uso diferentes. Tudo se resume ao que você realmente precisa

    Em tempo real

    O tempo real , no Linux, presumo, é projetado para fornecer comportamento previsível e determinístico para qualquer aplicativo sensível ao tempo.

    Nos processos comuns do Linux, estão usando um agendador que tem diferentes prioridades e compartilhamento de tempo. Eles podem ser influenciados, por exemplo nice. O Linux em tempo real garante que as tarefas críticas de tempo recebam atenção imediata e sejam executadas dentro de certas restrições de tempo.

    Afinidade da CPU

    A afinidade do processador na verdade vincula um processo a um(s) processador(es) específico(s). É por isso que também é chamado de CPU pinning.

    Imagine ter uma máquina com 128 processadores. Por que você gostaria de fixar um processo em um determinado processador? O principal motivo para a afinidade da CPU é evitar falhas de cache, o que causa problemas de latência. Com 128 processadores, isso pode ser um problema real que pode tornar a tarefa que você estaria fazendo mais lenta.

    Responder

    Então, com a ajuda da afinidade de processo, um programa escrito para um Arduino pode ser portado para uma placa Linux como a Raspberry Pi Zero 2 W (que tem uma CPU quad-core) e teria todos os benefícios de um microcontrolador, mas com uma CPU mais rápida.

    Para responder à sua pergunta, a afinidade do processador é para otimizar o desempenho do cache , o que melhora a latência, mas não garante nenhum comportamento determinístico para aplicativos de tempo crítico. Por outro lado, o kernel em tempo real deve garantir um comportamento determinístico.

    Depende de que tipo de aplicação estamos falando. Se você precisa que ela se comporte de forma determinística , ou seja, que você sempre terá uma resposta dentro de um certo período de tempo, então use a implementação Linux em tempo real .

    Se você precisar evitar perdas de cache, você pode tentar a afinidade da CPU .

    • 0

relate perguntas

  • Como /proc/net/wireless é um "clone" de /proc/net/dev?

  • Danos no kernel do Linux Mint

  • Como os desenvolvedores do kernel Linux lidam com seu trabalho com milhões de linhas de código? É um método? [fechado]

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

  • Acesse o sistema de arquivos como usuário root

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve