Sistemas Operacionais
Processos
Processos
Conceito:
Processos é todo programa carregado na
memória do computador para execução + o
ambiente onde ele é executado.
Ele é uma entidade abstrata, formada pelos
recursos de hardware e pela execução das
instruções referentes a um algoritmo sendo
executado pelo processador.
Processos
Todos os computadores são capazes de fazer
várias coisas ao mesmo tempo.
Executar um programa, ler dados do disco exibir
mensagens na tela
Tudo sendo executado “ao mesmo tempo”
Esse mecanismo de trocas rápidas é chamado de
multiprogramação
Processos
Em um ambiente multiprogramado a CPU
salta de programa em programa.
Cada programa tem uma porção de tempo
para ser executado.
Em um segundo a CPU pode trabalhar em vários
programas
Falsa ilusão de paralelismo
Processos
Algoritmo:
Um algoritmo é uma sequência finita de
instruções bem definidas e não ambíguas,
cada uma das quais pode ser executada num
período de tempo finito.
Um
algoritmo
não
representa
necessariamente
um
programa
de
computador, mas sim os passos necessários
para realizar uma tarefa.
Processos
Algoritmo:
Processos
Algoritmo:
Função "SomaDeValores"
variável:
SOMA,A,B: inteiro
inicio
Escreva("Digite um numero")
Leia(A)
escreva("digite outro numero")
leia(B) Soma <- A + B
escreva(SOMA)
fim
Processos
Um processo em execução utiliza os
dispositivos abaixo, como disco, memória,
processador
Processador
Unidade de
Controle
Unidade
Lógica
Aritmética
Dispositivos de entrada e
saída
Registra-dores
Memória
Principal
Vídeo
Teclado
Barramento
Disco
Processos
Programa x Processo
O programa é o algoritmo que expressa
uma notação adequada, expressa em um
conjunto organizado de instruções em
linguagem natural ou codificada
O processo é uma atividade desempenhada
pela CPU de ler o algoritmo, buscar os dados
e executá-los segundo o algoritmo ordena.
Processos
Componentes:
Código executável
Registradores
Pilha
Dispositivos alocados
Etc.
Processos
Características:
Tempo de execução não constante
Escalonamento
BCP (Bloco de Controle de Processo)
Estrutura de dados que contém importantes
informações sobre os processos
Estado
Situação característica na execução de processos
Processos
Estados do Processo:
Novo
Criação do contexto do processo
Pronto
Processo apto a ser escalonado e receber o contexto de
um processador
Em execução
Processo com controle de um processador
Em espera
Processo quando um evento externo ocorrer
Encerrado
Desalocados os recursos e eliminado o contexto
Processos
Cada programa a ser executado é trazido do
disco para a memória principal, de onde os
dados serão passados para os registradores
no processador.
Processos
BCP é uma estrutura de dados que
contém importantes informações sobre
os processos.
Ponteiro
Estado do Processo
Nome do Processo
Prioridade do Processo
Registradores
Limites de Memória
Lista de Arqvs. Abertos
Processos
Chaveamento (troca) de contexto
Quando a posse da CPU é atribuida a outro
processo (escalonamento), o sistema salva o
estado do processo antigo e carrega o estado
do processo novo.
O tempo de troca de contexto chama-se
sobrecarga
O sistema não realiza trabalho útil enquanto realiza
chaveamento
Operação cara (+ ou – 10% do tempo da CPU)
Processos
O S.O. gerencia os processos através das
system calls que realizam operações como
criação, eliminação, sincronização, suspensão
de processos, dentre outros.
Processos
Criação de Processos:
É necessário algum modo de criar e finalizar
processos durante a operação e quando for
preciso.
Os eventos de criação são:
Início do sistema.
Execução de uma chamada ao sistema de criação
deprocesso por um processo já em execução.
Requisição do usuário para criar um novo
processo
Início de um job programado
Processos
Criação de Processos:
Muitas vezes um processo em execução cria
um outro processo para auxiliar na tarefa
desempenhada.
• Exemplo
–Recebe dados e processar
Processos
Criação de Processos:
Em sistemas interativos os usuários podem
iniciar a criação de um processo
Digitando uma linha de comando
Clicando em um ícone.
Processos
Criação de Processos:
Tecnicamente, um novo processo é criado por
um processo existente executando uma
chamada ao sistema de criação de processo.
system calls:
Unix: fork
Win32: CreateProcess
Processos
Criação de Processos:
Quando um SO é carregado, em geral criamse vários processos.
Processos em primeiro plano
Processos em segundo plano
Comandos para vizualização de processos:
No windows Ctrl+Alt+Del
linux/unix o comando ps
Execução do comando ps
Execução do Ctrl+Alt+Del
Processos
Finalização de Processos:
Todo processo, depois de iniciado, terá que
ser finalizado.
A finalização pode ser:
Saída normal (voluntária)
Unix: exit
Windows: ExitProcess
Saída por erro (voluntária)
divisão por zero
Processos
Finalização de Processos:
A finalização pode ser:
Erro fatal (involuntário)
Compilar um programa que não existe
javac teste.java
Cancelamento por outro processo
No Unix: kill
No Windows: TerminateProcess
Processos
Próxima Aula:
Escalonamento de Processos
Obrigado