Programando um computadorUm programa é uma seqüência de instruções ao computador. Quando o programador de software (uma pessoa que escreve programas para serem executados em um computador) desenvolve um programa, este é convertido em uma longa lista de instruções que são executadas pelo sistema de computador.
Em sistemas operacionais nós falamos mais de um processo do que de um programa. Nos sistemas operacionais modernos, só uma porção de um programa é carregada em cada instante. O resto do programa espera numa unidade de disco até que se precise do mesmo. Isso economiza espaço de memória.
Os programas no computador são executados por processadores. Um processador é um chip no computador que executa instruções de programa. Processadores executam milhões de instruções por segundo.
Um ProcessoUm processo ou tarefa é uma porção de um programa em alguma fase de execução. Um programa pode consistir de várias tarefas, cada uma com funcionamento próprio ou como uma unidade (talvez se comunicando entre si periodicamente).
A Thread (fileira, linha)Uma thread é uma parte separada de um processo. Um processo pode consistir de várias threads cada uma das quais sendo executada separadamente. Por exemplo, uma thread poderia tratar refresh e gráficos na tela, outra thread trataria impressão, outra thread trataria o mouse e o teclado. Isso dá bom tempo de resposta em programas complexos. Windows NT é um exemplo de um sistema operacional que suporta multi-thread.
Sistemas operacionais de Multi-processoAlguns sistemas executam só um único processo, outros sistemas executam múltiplos processos de cada vez. A maioria dos computadores é baseada num único processador, e um processador pode executar só uma instrução de cada vez. Assim, como é possível um único processador executar processos múltiplos? A resposta mais imediata é que ele não faz desse modo. O processador do computador executa um processo por um período pequeno de tempo, e então muda para o próximo processo e assim por diante. Como o processador executa milhões de instruções por segundo, isso dá a impressão de muitos processos serem executados ao mesmo tempo.
Em um sistema de computador que suporta mais de um processo de cada vez, algum mecanismo deve ser usado para intercalar de uma tarefa para outra. Há dois métodos principais usados para fazer essa troca:
Escalonamento por Cooperação indica que uma tarefa que está sendo executada atualmente deixará voluntariamente em algum momento o processador e permitirá que outros processos sejam executados.
Escalonamento Preemptivo significa que uma tarefa corrente será interrompida (forçou a se render) e o processador se dedica a outro processo em estado de espera.
- O problema da mudança por cooperação é que um processo poderia demorar e assim negar a execução de outros processos e poderia resultar em nenhum trabalho ser feito. Um exemplo de um sistema de cooperação é o Windows 3.1
- O escalonamento preemptivo é melhor. Dá mais respostas a todos os processos e ajuda a prevenir (ou reduz o número de ocorrências de) contra o medo de máquinas travadas. Windows NT é um exemplo de tal sistema operacional.
Nota: Só para programas de 32bits em Windows 95 há escalonamento preemptivo. Programas de 16bits ainda são escalonados cooperativamente, o que significa que ainda é fácil para um programa de 16bits travar um computador Windows.
Contexto de TrocaQuando o processador muda de um processo a outro, o seu estado (o processador registra e associa os dados) deve ser salvo, pois algum tempo depois, será reiniciado o processo e continuará como se nunca fora interrompido. Uma vez esse estado tenha sido salvo, o próximo processo em espera é ativado. Isso envolve carga nos registradores do processador e na memória, com todos os dados previamente salvos, e reiniciando na instrução que seria executada quando houve a última interrupção.
O ato de mudar de um processo a outro é chamado troca de contexto. Um período de tempo que um processo execute antes de ser trocado é chamado de time slice ou período de quantum.
Ter Dez 03, 2013 8:02 am por wwedenis121
» DdTank Explosion online 24h
Ter Dez 18, 2012 12:28 am por XvOlKs
» DDTankBR :)
Seg Nov 05, 2012 1:25 pm por hasuh
» ddtank pirata chines
Dom Out 28, 2012 1:03 pm por kennedynho
» Doação Habbo
Qui Out 11, 2012 10:16 am por rickelmyn
» Habbo Etiquetas
Qui Ago 09, 2012 2:19 pm por Niak
» DDTank Chinês zx758
Qua Ago 08, 2012 5:36 pm por hedkatana
» DDtank Of Mitology
Seg Ago 06, 2012 7:03 pm por diegoserra
» DDtank Expert
Seg Ago 06, 2012 6:59 pm por diegoserra