SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Processos
        
  Introdução
  Conceito de Processo
                              Escalonamento de Processo
                              Operações em Processos
                              Threads




Eduardo Nicola F. Zagari
                          2
       Processos - Introdução
  Um sistema operacional executa uma variedade de programas:
                  Sistemas Batch – jobs
                  Sistemas time-sharing – programas 
        processo
                
 de usuários ou tasks (tarefas)
           Processo
                  programa em execução

                                                     somente um programa era executado
           Primeiros sistemas computacionais
        em cada momento (dominando todos
                                                     os recursos)

                                                     vários programas executando
                            Sistemas atuais
         concorrentemente (multiprogramação),
                                                     exigindo maior controle e
                                                     compartimentalização dos vários
                                                     programas



Eduardo Nicola F. Zagari
                       3
                       Processos - Introdução
  Processo é mais do que o código do programa: 
                       contador de programa (PC), 
                       registradores do processador, 
                       pilha (parâmetros de subrotinas, endereço de retorno, variáveis
                            temporárias), 
                       variáveis globais


                                 Programa (passivo) x Processo (ativo)


               Vários processos podem estar associados a um único programa




Eduardo Nicola F. Zagari
                          4
                        Processos - Introdução
  Em um SO com multiprogramação, um processo, du-
                     rante sua existência, passa por uma série de estados
                  Basicamente, os estados de um processo são:
                         novo: o processo é criado
                         em execução/rodando: se está associado a um
                            processador que está executando suas instruções
                         pronto para execução: se o processo aguarda sua vez
                            para executar (processador indisponível)
                         bloqueado/espera: se o processo aguarda que ocorra
                            algum evento para continuar a executar (término de E/S,
                            recepção de sinal)
                         término: o processo terminou sua execução




Eduardo Nicola F. Zagari
                            5
                        Processos - Introdução
  Desde o instante que um processo é iniciado, o seu estado
                   passa pelas seguintes transições:
                     1. uma CPU fica disponível para o processo, que passa do estado de
                        pronto para o de execução
                     2. o processo necessita de algo que não está disponível para
                        continuar a ser executado, assim, passa de em execução para
                        bloqueado, aguardando a satisfação de sua necessidade
                     3. a necessidade do processo é satisfeita, podendo então passar de
                        bloqueado/espera para pronto para execução
                     4. o uso da CPU exclusivamente por um só processo deve ser evitado,
                        para isso pode existir um tempo máximo em exe-cução contínua,
                        após o qual o processo passa de em execução para pronto,
                        permitindo que outro processo use a CPU




Eduardo Nicola F. Zagari
                         6
                       Processos - Introdução
novo
                                         escalonado
             início
                                pronto                 execução

                                         interrupção
                       E/S ou evento                      espera por E/
                                                          S ou evento fim
                                         bloqueado

                                                                   término


Eduardo Nicola F. Zagari
                    7
                   Processos - Introdução
  BCP representa o processo no SO, mantendo a informação
                    associada com cada um:
                        estado do processo: pronto, bloqueado, em execução, ...
                        PC: endereço da próxima instrução
                        registradores da CPU: variam em no e tipo dependendo da
                            arquitetura
                        informação de escalonamento da CPU: prioridade, ponteiro para
                            fila de escalonamento, etc
                        informação de gerência de memória: registradores base e limite
                            de memória, tab. de páginas e/ou tab. de segmentos
                        informação sobre recursos: quantidade de CPU usada, limite de
                            tempo de uso, no processo, no do job
                        informação de estado de E/S: lista de dispositivos alocados, lista
                            de arquivos abertos, ...


Eduardo Nicola F. Zagari
                               8
                     Processos - Introdução
PID
                               Estado do processo
                                      PC
                                 Registradores
                              Limites de memória
                            Lista de arquivos abertos

                                            .
                                            .
                                            .




Eduardo Nicola F. Zagari
              9
               Processos - Introdução
P0                   SO                      P1
    executando                   interrupção ou chamada de sistema

                                  salva contexto em BCP0
                                             .                                     ocioso
                                             .
                                             .
                                 carrega contexto de BCP1

      ocioso                     interrupção ou chamada de sistema            executando


                                  salva contexto em BCP1
                                             .                                      ocioso
                                             .
                                             .
                                 carrega contexto de BCP0

    executando

Eduardo Nicola F. Zagari
                     10
                    Processos - Introdução
  Objetivo da multiprogramação: maximizar utilização da CPU
               Filas de escalonamento:
                       fila de pronto: lista ligada com todos os processos no estado de
                            pronto (organizada segundo uma política de seleção)
                       filas de dispositivos: listas dos processos que fizeram requisição de
                            E/S e aguardam a liberação do dispositivo
               Em seu ciclo de vida, o processo migra de uma fila para outra
                   (ação do escalonador)




Eduardo Nicola F. Zagari
                             11
                          Processos - Introdução
BCP7                            BCP2
                                        início               PID                             PID
                              Fila de
                              pronto                     registradores                   registradores
                                         fim
                                                                 .
                                                                 .                            .
                                                                                              .
                                                                 .                            .
        Fita                início
        magnética
                             fim
                                           BCP3                             BCP14                           BCP6
                            início          PID                              PID                             PID
        Unidade
        de disco 0                      registradores                    registradores                   registradores
                             fim
                                               .
                                               .                              .
                                                                              .                               .
                                                                                                              .
                                               .                              .                               .
                                                           BCP5
                                                            PID
        Unidade             início
                                                        registradores
        terminal 0
                             fim
                                                             .
                                                             .
                                                             .

Eduardo Nicola F. Zagari
                                    12
                                    Processos - Introdução
fila de pronto                                 CPU


                            E/S             fila de E/S      requisição de E/S

                                                                time slice
                                                                expirado

                                    filho        executa
                                  termina         filho            fork

                                                  ocorre      aguarda uma
                                               interrupção     interrupção

Eduardo Nicola F. Zagari
                          13
                 Processos - Introdução
  Escalonador age sobre a fila de processos prontos de maneira a
                   escolher qual é o próximo a ser executado
               Escalonador de CPU (ou escalonador de curto prazo): seleciona
                   qual processo deve ser o próximo a ser executado e aloca a
                   CPU para ele.
                       Executado freqüentemente (milisegundos)
                       Deve ser rápido
               Escalonador de job (ou escalonador de médio prazo): seleciona
                   qual processo deve ser trazido para a fila de pronto. 
                       Executado pouco freqüentemente (segundos, minutos)
                       Pode ser lento
                       Controla o grau de multiprogramação




Eduardo Nicola F. Zagari
                        14
                     Processos - Introdução
  Processos podem ser descrito de acordo com o tipo de
                   processamento que executam:
                       CPU-bound (ligado à CPU): passa a maior parte do tempo no
                            estado fazendo cálculos (em execução) e realiza poucas
                            operações de E/S (aplicações matemáticas e científicas)
                              Poucas e longas ʻrajadasʼ de uso de CPU
                       I/O-bound (ligado à E/S): passa a maior parte do tempo no estado
                            bloqueado, pois realiza muitas operações de E/S (aplicações
                            comerciais e interativas)
                              Muitas e curtas ʻrajadasʼ de uso de CPU



          I/O                                               I/O

        CPU                                                 CPU

                                            tempo                                   tempo

Eduardo Nicola F. Zagari
                             15
                      Processos - Introdução
  Quando a posse da CPU é atribuída a outro processo, o sistema
                   deve salvar o estado do processo antigo e carregar o estado do
                   processo novo
               O tempo de troca de contexto é uma sobrecarga
                       O sistema não realiza trabalho útil enquanto realiza o chaveamento
               O tempo depende do hardware




Eduardo Nicola F. Zagari
                         16
                        Processos - Introdução
  Um processo (dito Processo Pai) pode criar novos processos
                   (ditos Processos Filhos) via chamada de sistema
                       Um processo filho, por sua vez, pode criar outros processos,
                        formando uma árvore de processos
                       usuário pode solicitar a criação a um shell, que entende o pedido do
                        usuário através de uma linguagem dita de controle (textual, gráfica,
                        por eventos)
               Compartilhamento de Recursos (memória, arquivos, dispositivos
                   de E/S)
                       Pai e filho compartilham todos os recursos
                       Filho compartilha um subconjunto dos recursos do pai
                       Pai e filho não compartilham recursos
               Execução
                       Pai e filho executam concorrentemente
                       Pai espera até o término do filho


Eduardo Nicola F. Zagari
                          17
                       Processos - Introdução
  Espaço de endereçamento do novo processo
                       Processo filho é uma cópia do processo pai
                       Processo filho tem um programa carregado nele
               Exemplo de chamadas de sistema do UNIX
                       fork(): cria um novo processo
                       exec(): usado depois de um fork() para substituir o espaço de
                            memória do processo por um novo programa
                                  main() {
                                         int pid;
                                         pid = fork();
                                         if (pid < 0) {
                                                 /* fork failure */
                                         } else if (pid > 0) {
                                                 /* parent code */
                                         } else {
                                                 /* child code */
                                      }

Eduardo Nicola F. Zagari
                           18
                     Processos - Introdução
#include <stdio.h>	
                            #include <unistd.h>	
                            int main(int argc, char *argv[])	
                            {	
                            int pid;	
                            	 /* fork another process */	
                            	 pid = fork();	
                            	 if (pid < 0) { /* error occurred */	
                            	 	      fprintf(stderr, "Fork Failed");	
                            	 	      exit(-1);	
                            	 }	
                            	 else if (pid == 0) { /* child process */	
                            	 	      execlp("/bin/ls","ls",NULL);	
                            	 }	
                            	 else { /* parent process */	
                            	 	      /* parent will wait for the child
                               to complete */	
                            	 	      wait(NULL);	
                            	 	      printf("Child Complete");	
                            	 	      exit(0);	
                            	 }	
Eduardo Nicola F. Zagari
   }	            19
                       Processos - Introdução
Eduardo Nicola F. Zagari
   20
   Processos - Introdução
  Processo executa sua última instrução e pede ao SO para
                   terminá-lo (exit)
                       Dados de saída do filho para o pai (via wait)
                       exit(): todos os recursos do processo são liberados pelo SO
               Um processo pai pode terminar a execução de um processo filho
                   via chamada de sistema 
                       Filho excedeu os recursos alocados
                       A tarefa atribuída ao filho não é mais necessária
                       Se o pai está terminando
                             Alguns sistemas operacionais não permitem que o filho continue
                              se o pai terminou
                               –  Todos os filhos terminam – terminação em cascata




Eduardo Nicola F. Zagari
                           21
                      Processos - Introdução
  Uma thread (ou lightweight process, isto é, um processo leve) é
                   a unidade básica de utilização da CPU. Ela consiste de:
                       Contador de programa (PC)
                       Conjunto de registradores 
                       Espaço de pilha
               Uma thread compartilha com suas threads parceiras suas:
                       Seção de código
                       Seção de dados
                       Recursos do sistema operacional
                     Coletivamente conhecidas como uma tarefa (processo).
               Um processo tradicional (ou heavyweight process) é igual a uma
                   tarefa com uma única thread
               As threads operam como processos: estado/criam outras
                   threads, etc


Eduardo Nicola F. Zagari
                         22
                        Processos - Introdução
  Em um processo multithread, enquanto uma thread servidora
                    está bloqueada e esperando, uma segunda thread do mesmo
                    processo pode executar.
                        A cooperação de múltiplas threads de um mesmo processo
                            confere a ele melhor desempenho (redução do tempo de troca de
                            contexto).
                        Aplicações que requerem o compartilhamento de um buffer
                            comum (i.e., produtor-consumidor) se beneficiam da utilização de
                            threads.
                 Threads provêem um mecanismo que permite a processos
                    seqüenciais fazerem chamadas de sistema bloqueantes
                    enquanto também alcançam paralelismo.




Eduardo Nicola F. Zagari
                            23
                       Processos - Introdução
  Threads podem ser:
                       Suportadas pelo Kernel (Mach, OS/2, WinXP/200, Linux 2.6).
                       Nível de usuário, suportadas acima do kernel, via uma biblioteca de
                            funções (Project Andrew da CMU, POSIX (Linux 2.4), Java, Win32).
                       Abordagem híbrida, que implementa ambas (Solaris 2).




Eduardo Nicola F. Zagari
                            24
                       Processos - Introdução
Eduardo Nicola F. Zagari
   25
   Processos - Introdução

Mais conteúdo relacionado

Mais procurados

Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento camila_seixas
 
Cap05 processos e threads
Cap05   processos e threadsCap05   processos e threads
Cap05 processos e threadsfernandao777
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processosTalles Nascimento Rodrigues
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsPedro De Almeida
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senaiCarlos Melo
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUAlexandre Duarte
 
Fso parte iii
Fso parte iiiFso parte iii
Fso parte iiipaulocsm
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processosvini_campos
 
Gerencia de processo by "slideplayer.com.br"
Gerencia de processo by "slideplayer.com.br"Gerencia de processo by "slideplayer.com.br"
Gerencia de processo by "slideplayer.com.br"Erickson Carvalho Vaz
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Cristiano Pires Martins
 
Algoritimos de Escalonamento
Algoritimos de EscalonamentoAlgoritimos de Escalonamento
Algoritimos de EscalonamentoJunior Cesar
 
Sistemas operacionais processos
Sistemas operacionais processosSistemas operacionais processos
Sistemas operacionais processosCarlos Melo
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinMarcos Castro
 
Escalonamento em 3 níveis e Escalonamento por alternância circular
Escalonamento em 3 níveis e Escalonamento por alternância circularEscalonamento em 3 níveis e Escalonamento por alternância circular
Escalonamento em 3 níveis e Escalonamento por alternância circularEmmanuel Saes
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no WindowsFee Kosta
 

Mais procurados (20)

Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento
 
Cap05 processos e threads
Cap05   processos e threadsCap05   processos e threads
Cap05 processos e threads
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senai
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPU
 
Fso parte iii
Fso parte iiiFso parte iii
Fso parte iii
 
Conceito de processos
Conceito de processosConceito de processos
Conceito de processos
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 
Gerencia de processo by "slideplayer.com.br"
Gerencia de processo by "slideplayer.com.br"Gerencia de processo by "slideplayer.com.br"
Gerencia de processo by "slideplayer.com.br"
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1
 
Algoritimos de Escalonamento
Algoritimos de EscalonamentoAlgoritimos de Escalonamento
Algoritimos de Escalonamento
 
Sistemas operacionais processos
Sistemas operacionais processosSistemas operacionais processos
Sistemas operacionais processos
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round Robin
 
Escalonamento em 3 níveis e Escalonamento por alternância circular
Escalonamento em 3 níveis e Escalonamento por alternância circularEscalonamento em 3 níveis e Escalonamento por alternância circular
Escalonamento em 3 níveis e Escalonamento por alternância circular
 
Unix - Sistema Operacional
Unix - Sistema OperacionalUnix - Sistema Operacional
Unix - Sistema Operacional
 
Processos
ProcessosProcessos
Processos
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no Windows
 

Destaque

Sistema Operativos
Sistema OperativosSistema Operativos
Sistema Operativosguestcd9192
 
SO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de ProcessosSO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de ProcessosEduardo Nicola F. Zagari
 
SO-07 Gerenciamento de Memória: Memória Virtual
SO-07 Gerenciamento de Memória: Memória VirtualSO-07 Gerenciamento de Memória: Memória Virtual
SO-07 Gerenciamento de Memória: Memória VirtualEduardo Nicola F. Zagari
 
Sistemas Operacionais 10 comunicação entre processos
Sistemas Operacionais 10   comunicação entre processosSistemas Operacionais 10   comunicação entre processos
Sistemas Operacionais 10 comunicação entre processosMauro Duarte
 
Sistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoSistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoLuiz Arthur
 

Destaque (8)

SO-10 Entrada e Saída: Software
SO-10 Entrada e Saída: SoftwareSO-10 Entrada e Saída: Software
SO-10 Entrada e Saída: Software
 
Sistema Operativos
Sistema OperativosSistema Operativos
Sistema Operativos
 
Gabarito ano2004
Gabarito ano2004Gabarito ano2004
Gabarito ano2004
 
SO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de ProcessosSO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de Processos
 
Pseudoparalelismo
PseudoparalelismoPseudoparalelismo
Pseudoparalelismo
 
SO-07 Gerenciamento de Memória: Memória Virtual
SO-07 Gerenciamento de Memória: Memória VirtualSO-07 Gerenciamento de Memória: Memória Virtual
SO-07 Gerenciamento de Memória: Memória Virtual
 
Sistemas Operacionais 10 comunicação entre processos
Sistemas Operacionais 10   comunicação entre processosSistemas Operacionais 10   comunicação entre processos
Sistemas Operacionais 10 comunicação entre processos
 
Sistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoSistemas Operacionais - Introducao
Sistemas Operacionais - Introducao
 

Semelhante a SO-02 Processos

SO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas OperacionaisSO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas OperacionaisEduardo Nicola F. Zagari
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSilvano Oliveira
 
2 organização do sistema operativo - sistemas operativos
2   organização do sistema operativo - sistemas operativos2   organização do sistema operativo - sistemas operativos
2 organização do sistema operativo - sistemas operativosMaria194536
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional Rodrigo Rodrigues
 
Escalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPEscalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPRafael Moreira
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisIsaac Vieira
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrênciaPaulo Fonseca
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Leinylson Fontinele
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: IntroduçãoAlexandre Duarte
 
Paper pxe 23 03 20004
Paper pxe 23 03 20004Paper pxe 23 03 20004
Paper pxe 23 03 20004Rui Gomes
 
Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Joicy Souza
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3Universal.org.mx
 

Semelhante a SO-02 Processos (20)

SO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas OperacionaisSO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas Operacionais
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
 
Atps sistemas operacionais
Atps sistemas operacionaisAtps sistemas operacionais
Atps sistemas operacionais
 
gabarito.pdf
gabarito.pdfgabarito.pdf
gabarito.pdf
 
2 organização do sistema operativo - sistemas operativos
2   organização do sistema operativo - sistemas operativos2   organização do sistema operativo - sistemas operativos
2 organização do sistema operativo - sistemas operativos
 
Aula3so
Aula3soAula3so
Aula3so
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
 
Escalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPEscalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SP
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Processos+threads.2pp
Processos+threads.2ppProcessos+threads.2pp
Processos+threads.2pp
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrência
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
ICC-07 Softwares - Introdução
ICC-07 Softwares - IntroduçãoICC-07 Softwares - Introdução
ICC-07 Softwares - Introdução
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
 
Paper pxe 23 03 20004
Paper pxe 23 03 20004Paper pxe 23 03 20004
Paper pxe 23 03 20004
 
Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Questões de Sistemas Operacionais
Questões de Sistemas Operacionais
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3
 
SQLInternalOps - SQLOS
SQLInternalOps - SQLOSSQLInternalOps - SQLOS
SQLInternalOps - SQLOS
 

Mais de Eduardo Nicola F. Zagari

Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasEduardo Nicola F. Zagari
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSEduardo Nicola F. Zagari
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxEduardo Nicola F. Zagari
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealEduardo Nicola F. Zagari
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Eduardo Nicola F. Zagari
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Eduardo Nicola F. Zagari
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Eduardo Nicola F. Zagari
 
Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyEduardo Nicola F. Zagari
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadeEduardo Nicola F. Zagari
 
Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorEduardo Nicola F. Zagari
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonEduardo Nicola F. Zagari
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodEduardo Nicola F. Zagari
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryEduardo Nicola F. Zagari
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelEduardo Nicola F. Zagari
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCEduardo Nicola F. Zagari
 

Mais de Eduardo Nicola F. Zagari (20)

Classificação de Documentos
Classificação de DocumentosClassificação de Documentos
Classificação de Documentos
 
Uma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDBUma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDB
 
Introdução à Linguagem Ruby
Introdução à Linguagem RubyIntrodução à Linguagem Ruby
Introdução à Linguagem Ruby
 
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes Linux
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo Real
 
Módulo de Estudos em Tempo Real
Módulo de Estudos em Tempo RealMódulo de Estudos em Tempo Real
Módulo de Estudos em Tempo Real
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
 
Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - Proxy
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - Facade
 
Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - Adaptador
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - Singleton
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory Method
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract Factory
 
Padrões-07 - Padrões Criacionais
Padrões-07 - Padrões CriacionaisPadrões-07 - Padrões Criacionais
Padrões-07 - Padrões Criacionais
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVC
 

SO-02 Processos

  • 1. Processos Introdução
  • 2.   Conceito de Processo   Escalonamento de Processo   Operações em Processos   Threads Eduardo Nicola F. Zagari 2 Processos - Introdução
  • 3.   Um sistema operacional executa uma variedade de programas:   Sistemas Batch – jobs   Sistemas time-sharing – programas processo de usuários ou tasks (tarefas)   Processo   programa em execução somente um programa era executado Primeiros sistemas computacionais em cada momento (dominando todos os recursos) vários programas executando Sistemas atuais concorrentemente (multiprogramação), exigindo maior controle e compartimentalização dos vários programas Eduardo Nicola F. Zagari 3 Processos - Introdução
  • 4.   Processo é mais do que o código do programa:   contador de programa (PC),   registradores do processador,   pilha (parâmetros de subrotinas, endereço de retorno, variáveis temporárias),   variáveis globais Programa (passivo) x Processo (ativo)   Vários processos podem estar associados a um único programa Eduardo Nicola F. Zagari 4 Processos - Introdução
  • 5.   Em um SO com multiprogramação, um processo, du- rante sua existência, passa por uma série de estados   Basicamente, os estados de um processo são:   novo: o processo é criado   em execução/rodando: se está associado a um processador que está executando suas instruções   pronto para execução: se o processo aguarda sua vez para executar (processador indisponível)   bloqueado/espera: se o processo aguarda que ocorra algum evento para continuar a executar (término de E/S, recepção de sinal)   término: o processo terminou sua execução Eduardo Nicola F. Zagari 5 Processos - Introdução
  • 6.   Desde o instante que um processo é iniciado, o seu estado passa pelas seguintes transições: 1. uma CPU fica disponível para o processo, que passa do estado de pronto para o de execução 2. o processo necessita de algo que não está disponível para continuar a ser executado, assim, passa de em execução para bloqueado, aguardando a satisfação de sua necessidade 3. a necessidade do processo é satisfeita, podendo então passar de bloqueado/espera para pronto para execução 4. o uso da CPU exclusivamente por um só processo deve ser evitado, para isso pode existir um tempo máximo em exe-cução contínua, após o qual o processo passa de em execução para pronto, permitindo que outro processo use a CPU Eduardo Nicola F. Zagari 6 Processos - Introdução
  • 7. novo escalonado início pronto execução interrupção E/S ou evento espera por E/ S ou evento fim bloqueado término Eduardo Nicola F. Zagari 7 Processos - Introdução
  • 8.   BCP representa o processo no SO, mantendo a informação associada com cada um:   estado do processo: pronto, bloqueado, em execução, ...   PC: endereço da próxima instrução   registradores da CPU: variam em no e tipo dependendo da arquitetura   informação de escalonamento da CPU: prioridade, ponteiro para fila de escalonamento, etc   informação de gerência de memória: registradores base e limite de memória, tab. de páginas e/ou tab. de segmentos   informação sobre recursos: quantidade de CPU usada, limite de tempo de uso, no processo, no do job   informação de estado de E/S: lista de dispositivos alocados, lista de arquivos abertos, ... Eduardo Nicola F. Zagari 8 Processos - Introdução
  • 9. PID Estado do processo PC Registradores Limites de memória Lista de arquivos abertos . . . Eduardo Nicola F. Zagari 9 Processos - Introdução
  • 10. P0 SO P1 executando interrupção ou chamada de sistema salva contexto em BCP0 . ocioso . . carrega contexto de BCP1 ocioso interrupção ou chamada de sistema executando salva contexto em BCP1 . ocioso . . carrega contexto de BCP0 executando Eduardo Nicola F. Zagari 10 Processos - Introdução
  • 11.   Objetivo da multiprogramação: maximizar utilização da CPU   Filas de escalonamento:   fila de pronto: lista ligada com todos os processos no estado de pronto (organizada segundo uma política de seleção)   filas de dispositivos: listas dos processos que fizeram requisição de E/S e aguardam a liberação do dispositivo   Em seu ciclo de vida, o processo migra de uma fila para outra (ação do escalonador) Eduardo Nicola F. Zagari 11 Processos - Introdução
  • 12. BCP7 BCP2 início PID PID Fila de pronto registradores registradores fim . . . . . . Fita início magnética fim BCP3 BCP14 BCP6 início PID PID PID Unidade de disco 0 registradores registradores registradores fim . . . . . . . . . BCP5 PID Unidade início registradores terminal 0 fim . . . Eduardo Nicola F. Zagari 12 Processos - Introdução
  • 13. fila de pronto CPU E/S fila de E/S requisição de E/S time slice expirado filho executa termina filho fork ocorre aguarda uma interrupção interrupção Eduardo Nicola F. Zagari 13 Processos - Introdução
  • 14.   Escalonador age sobre a fila de processos prontos de maneira a escolher qual é o próximo a ser executado   Escalonador de CPU (ou escalonador de curto prazo): seleciona qual processo deve ser o próximo a ser executado e aloca a CPU para ele.   Executado freqüentemente (milisegundos)   Deve ser rápido   Escalonador de job (ou escalonador de médio prazo): seleciona qual processo deve ser trazido para a fila de pronto.   Executado pouco freqüentemente (segundos, minutos)   Pode ser lento   Controla o grau de multiprogramação Eduardo Nicola F. Zagari 14 Processos - Introdução
  • 15.   Processos podem ser descrito de acordo com o tipo de processamento que executam:   CPU-bound (ligado à CPU): passa a maior parte do tempo no estado fazendo cálculos (em execução) e realiza poucas operações de E/S (aplicações matemáticas e científicas)  Poucas e longas ʻrajadasʼ de uso de CPU   I/O-bound (ligado à E/S): passa a maior parte do tempo no estado bloqueado, pois realiza muitas operações de E/S (aplicações comerciais e interativas)  Muitas e curtas ʻrajadasʼ de uso de CPU I/O I/O CPU CPU tempo tempo Eduardo Nicola F. Zagari 15 Processos - Introdução
  • 16.   Quando a posse da CPU é atribuída a outro processo, o sistema deve salvar o estado do processo antigo e carregar o estado do processo novo   O tempo de troca de contexto é uma sobrecarga   O sistema não realiza trabalho útil enquanto realiza o chaveamento   O tempo depende do hardware Eduardo Nicola F. Zagari 16 Processos - Introdução
  • 17.   Um processo (dito Processo Pai) pode criar novos processos (ditos Processos Filhos) via chamada de sistema   Um processo filho, por sua vez, pode criar outros processos, formando uma árvore de processos   usuário pode solicitar a criação a um shell, que entende o pedido do usuário através de uma linguagem dita de controle (textual, gráfica, por eventos)   Compartilhamento de Recursos (memória, arquivos, dispositivos de E/S)   Pai e filho compartilham todos os recursos   Filho compartilha um subconjunto dos recursos do pai   Pai e filho não compartilham recursos   Execução   Pai e filho executam concorrentemente   Pai espera até o término do filho Eduardo Nicola F. Zagari 17 Processos - Introdução
  • 18.   Espaço de endereçamento do novo processo   Processo filho é uma cópia do processo pai   Processo filho tem um programa carregado nele   Exemplo de chamadas de sistema do UNIX   fork(): cria um novo processo   exec(): usado depois de um fork() para substituir o espaço de memória do processo por um novo programa main() { int pid; pid = fork(); if (pid < 0) { /* fork failure */ } else if (pid > 0) { /* parent code */ } else { /* child code */ } Eduardo Nicola F. Zagari 18 Processos - Introdução
  • 19. #include <stdio.h> #include <unistd.h> int main(int argc, char *argv[]) { int pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1); } else if (pid == 0) { /* child process */ execlp("/bin/ls","ls",NULL); } else { /* parent process */ /* parent will wait for the child to complete */ wait(NULL); printf("Child Complete"); exit(0); } Eduardo Nicola F. Zagari } 19 Processos - Introdução
  • 20. Eduardo Nicola F. Zagari 20 Processos - Introdução
  • 21.   Processo executa sua última instrução e pede ao SO para terminá-lo (exit)   Dados de saída do filho para o pai (via wait)   exit(): todos os recursos do processo são liberados pelo SO   Um processo pai pode terminar a execução de um processo filho via chamada de sistema   Filho excedeu os recursos alocados   A tarefa atribuída ao filho não é mais necessária   Se o pai está terminando  Alguns sistemas operacionais não permitem que o filho continue se o pai terminou –  Todos os filhos terminam – terminação em cascata Eduardo Nicola F. Zagari 21 Processos - Introdução
  • 22.   Uma thread (ou lightweight process, isto é, um processo leve) é a unidade básica de utilização da CPU. Ela consiste de:   Contador de programa (PC)   Conjunto de registradores   Espaço de pilha   Uma thread compartilha com suas threads parceiras suas:   Seção de código   Seção de dados   Recursos do sistema operacional Coletivamente conhecidas como uma tarefa (processo).   Um processo tradicional (ou heavyweight process) é igual a uma tarefa com uma única thread   As threads operam como processos: estado/criam outras threads, etc Eduardo Nicola F. Zagari 22 Processos - Introdução
  • 23.   Em um processo multithread, enquanto uma thread servidora está bloqueada e esperando, uma segunda thread do mesmo processo pode executar.   A cooperação de múltiplas threads de um mesmo processo confere a ele melhor desempenho (redução do tempo de troca de contexto).   Aplicações que requerem o compartilhamento de um buffer comum (i.e., produtor-consumidor) se beneficiam da utilização de threads.   Threads provêem um mecanismo que permite a processos seqüenciais fazerem chamadas de sistema bloqueantes enquanto também alcançam paralelismo. Eduardo Nicola F. Zagari 23 Processos - Introdução
  • 24.   Threads podem ser:   Suportadas pelo Kernel (Mach, OS/2, WinXP/200, Linux 2.6).   Nível de usuário, suportadas acima do kernel, via uma biblioteca de funções (Project Andrew da CMU, POSIX (Linux 2.4), Java, Win32).   Abordagem híbrida, que implementa ambas (Solaris 2). Eduardo Nicola F. Zagari 24 Processos - Introdução
  • 25. Eduardo Nicola F. Zagari 25 Processos - Introdução