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