Estou achando difícil diferenciar claramente entre Multiprogramação e Multitarefa.
Minha fonte principal é a Wikipedia , mas o artigo do WP parece estar um pouco em desacordo com algumas fontes menos respeitáveis (como meu professor universitário).
Enquanto eu leio o WP, a multiprogramação é uma maneira rudimentar de aumentar a taxa de transferência da CPU, alternando o contexto quando um processo aguarda a E / S.
A multiprogramação não garante que um programa seja executado em tempo hábil. De fato, o primeiro programa pode muito bem ser executado por horas sem precisar acessar um periférico.
O compartilhamento de tempo cooperativo , sinônimo de multitarefa cooperativa , é uma melhoria na multiprogramação (com a qual não é sinônimo). O contexto da CPU alterna regularmente para dar a impressão de execução simultânea, mas os processos ainda precisam ser gerados - e programas mal projetados podem passar fome pelo resto do sistema.
A multitarefa preemptiva assume um controle mais agressivo do agendamento, priorizando alguns processos em detrimento de outros, etc.
- Esta visão geral está correta? Caso contrário, é porque o WP está incorreto ou porque eu li o WP errado?
- Por que algumas fontes parecem conflitar entre multiprogramação e multitarefa?