Administração de Sistemas Operacionais 1 -Windows Processos Curso Técnico em Redes de Computadores Prof. Emerson Felipe Módulo 2
O QUE É UM PROCESSO?
Definições Processo É um programa em execução Programa Código fonte que possui instruções a serem seguidas, e que ao serem executadas é chamada de processo.
Processo Um processo é composto de: Espaço de endereçamento texto (código binário) ; dados (variáveis); pilha; Entrada na tabela de processos
Criação e término de processos Principais eventos que levam a criação de processos: Início do sistema; Execução de uma chamada de sistema de criação de processo por um processo em execução; Uma requisição do usuário para criar um novo processo; Principais eventos que levam ao término de processos: Saída normal (voluntária); Saída por erro (voluntária); Erro fatal (involuntária); Cancelamento por um outro processo (involuntário).
Hierarquia de processos Em uma hierarquia de processos o primeiro processo é chamado de processo pai esse pode criar outros processos chamados de processos filhos que também podem criar outros processos que também são chamados de processos filhos. • Esse tipo de hierarquia de processos é utilizado pelo sistema operacional UNIX; • O Windows não possui hierarquia de processos, para ele todos os processos criados são iguais.
Estado dos processos Possíveis estados de processos: • Em execução; • Bloqueado; • Pronto. Transições válidas: • Pronto -> Em execução; • Em execução -> Pronto; • Em execução -> Bloqueado; • Bloqueado -> Pronto.
THREADS
Threads Os threads são processos leves que trabalham dentro de um processo comum, com o objetivo de colaborar na execução deste. Um processo pode possuir um ou mais threads e essa quantidade pode variar de programa para programa, ou conforme as solicitações realizadas pelo usuário para o programa. O thread ocupa o mesmo espaço de endereçamento e entrada na tabela de processos correspondente ao processo a quem pertence.
Threads A figura (a) apresenta três processos cada um com um thread. A figura (b) mostra um processo com três threads.
ESCALONAMENTO
Escalonamento Parte do S.O. que processo executará e quando; Para realizar o agendamento dos processos ele utiliza um algoritmo de agendamento; Cada processo é único e imprevisível e isso dificulta o trabalho do agendador/escalonador; Há várias formas de escalonar um processo, aqui daremos ênfase ao escalonamento por prioridade.
Escalonamento Escalonamento por prioridade: A cada processo é atribuída uma prioridade, e o processo com maior prioridade recebe permissão para executar; O S.O. deve definir quem atribuir prioridade, ele ou o usuário; Deve-se existir mecanismos que impeçam um processo de alta prioridade execute, indefinidamente sem dar chances para processos de menor prioridade.
Escalonamento A figura apresenta o escalonamento por prioridade.
MÁQUINAS VIRTUAIS
Máquinas Virtuais Um S.O de tempo compartilhado oferece multiprogramação e uma máquina estendida com uma interface mais amigável; A idéia é separar completamente essas duas funções Fornece a multiprogramação; Deixa a máquina estendida para cada S.O. Cada máquina virtual oferecida pelo S.O. não é uma máquina estendida, e sim vários hardwares básicos idênticos ao hardware no qual o próprio S.O. roda, incluindo o modo kernel/Usuário, E/S, instruções, etc. Em cada máquina virtual pode-se rodar qualquer sistema operacional compatível com o hardware oferecido;
Máquinas Virtuais A máquina virtual é um computador fictício que simula uma máquina real, onde a sua memória e seu processador são virtualizados. Exemplo: Virtual PC, VMware, VirtualBox, entre outros.
DÚVIDAS