RESUMO SIMPLES SOBRE TAXONOMIA DE FLYNN: SIMD
Por: pedrofontes19 • 27/3/2017 • Resenha • 780 Palavras (4 Páginas) • 904 Visualizações
Processos e Threads
Processos
O conceito mais central que se pode ter em um sistema operacional é o processo, que de uma forma simplificada nada mais é, do que uma abstração de um programa em execução.
Mas para entendermos todo o modelo de processos e como ele se comporta frente Sistema Operacional, precisamos ter em mente alguns conceitos como a Multiprogramação:
“ A Multiprogramação é nome dado a características de um ou mais programas serem executados ao mesmo tempo na memória. ”
Mas na realidade, o que acontece é que o tempo da CPU é compartilhado entre os processos em execução, ou seja, há um chaveamento entre os todos os processos que estão na memória, criando a ilusão de que as aplicações ocorrem de forma simultânea. A esta ilusão, dá-se o nome de pseudo-paralelismo. Para executar ao mesmo tempo é preciso ter multiprocessamento.
Em vista o conceito de multiprogramação, vamos analisar o ciclo de vida de um processo, desde de sua criação, os seus estados e o término desses processos.
- Criação de processos
Em sistemas mais simples, ou sistemas projetados para executar apenas uma única aplicação (como controlador de forno de micro-ondas), pode ser possível que todos processos sejam executados quando o sistema é ligado. Mas nos sistemas de propósito geral, é necessário algum mecanismo de criar e terminar processos durante as suas operações, quando for preciso. Vamos ver alguns desses tópicos.
- Início do Sistema
Quando um sistema operacional é carregado, em geral criam-se vários processos. Alguns deles chamados de foreground, que são processos que interagem com usuários e realizam tarefas para eles. Outros são processos background, que não são associados ao usuário, mas realizam funções especificas. Processos que ficam em background (plano de fundo) são conhecidos como daemons.
- Execução de uma chamada de sistema de criação de processo por um processo em execução
Muitas vezes, um processo em execução fará chamadas de sistema (system calls) para criar um ou mais novos processos para ajudá-lo em seu trabalho. Ou seja, dois ou mais processos iram se relacionar e interagir em prol da execução de uma tarefa, lembrando que suas interações serão de maneira independente.
- Uma requisição do usuário para criar um novo processo
Em sistemas interativos os usuários podem inicializar um programa digitando um comando ou clicando duas vezes em um ícone. Cada uma dessas ações inicia um novo processo.
- Início de uma tarefa em lote
Executados em computadores de grande porte. Usuários podem submeter tarefas em lote para o sistema.
- Término de processos
Depois de criado e, um processo ele começa e excuta suas tarefas. Mas nem tudo é para sempre, nem mesmo os processos. O seu término se dá em razão de algumas das seguintes condições:
- Saída normal (voluntária)
Quando os processos terminam, após realizar todo seu trabalho.
- Saída por erro (voluntária)
Muitas das vezes ocasionada por erros do programa. Entre os vários problemas estão a execução de uma instrução ilegal, à referência a memória inexistente ou a divisão por zero.
- Erro fatal (involuntário)
O término é ocasionado quando o processo descobre um erro fatal. Como exemplo compilar um programa foo.c e esse arquivo não existe.
- Cancelamento por um outro processo (involuntário)
Quando um processo faz chamada no sistema dizendo ao SO para cancelar outro processo.
- Estados de processos
[pic 1]
Executando – em execução ( realmente usando a CPU naquele instante).
Pronto – executável; temporariamente parado para dar lugar a outro processo.
...