0
Processos
        
  Introdução
  Conceito de Processo
                              Escalonamento de Processo
                              Operações ...
  Um sistema operacional executa uma variedade de programas:
                  Sistemas Batch – jobs
                  ...
  Processo é mais do que o código do programa: 
                       contador de programa (PC), 
                     ...
  Em um SO com multiprogramação, um processo, du-
                     rante sua existência, passa por uma série de estad...
  Desde o instante que um processo é iniciado, o seu estado
                   passa pelas seguintes transições:
        ...
novo
                                         escalonado
             início
                                pronto       ...
  BCP representa o processo no SO, mantendo a informação
                    associada com cada um:
                     ...
PID
                               Estado do processo
                                      PC
                           ...
P0                   SO                      P1
    executando                   interrupção ou chamada de sistema

      ...
  Objetivo da multiprogramação: maximizar utilização da CPU
               Filas de escalonamento:
                     ...
BCP7                            BCP2
                                        início               PID                     ...
fila de pronto                                 CPU


                            E/S             fila de E/S      requisiç...
  Escalonador age sobre a fila de processos prontos de maneira a
                   escolher qual é o próximo a ser execut...
  Processos podem ser descrito de acordo com o tipo de
                   processamento que executam:
                   ...
  Quando a posse da CPU é atribuída a outro processo, o sistema
                   deve salvar o estado do processo antig...
  Um processo (dito Processo Pai) pode criar novos processos
                   (ditos Processos Filhos) via chamada de s...
  Espaço de endereçamento do novo processo
                       Processo filho é uma cópia do processo pai
            ...
#include <stdio.h>	
                            #include <unistd.h>	
                            int main(int argc, char *...
Eduardo Nicola F. Zagari
   20
   Processos - Introdução
  Processo executa sua última instrução e pede ao SO para
                   terminá-lo (exit)
                       Da...
  Uma thread (ou lightweight process, isto é, um processo leve) é
                   a unidade básica de utilização da CP...
  Em um processo multithread, enquanto uma thread servidora
                    está bloqueada e esperando, uma segunda t...
  Threads podem ser:
                       Suportadas pelo Kernel (Mach, OS/2, WinXP/200, Linux 2.6).
                 ...
Eduardo Nicola F. Zagari
   25
   Processos - Introdução
Upcoming SlideShare
Loading in...5
×

SO-02 Processos

6,460

Published on

Conceitos sobre Processos (Sistemas Operacionais)

Published in: Technology, Business
1 Comment
3 Likes
Statistics
Notes
  • show de bola, estou num curso técnico e vai ser de grande ajuda. abraço e parabens.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
6,460
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
395
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "SO-02 Processos"

  1. 1. Processos Introdução
  2. 2.   Conceito de Processo   Escalonamento de Processo   Operações em Processos   Threads Eduardo Nicola F. Zagari 2 Processos - Introdução
  3. 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. 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. 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. 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. 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. 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. 9. PID Estado do processo PC Registradores Limites de memória Lista de arquivos abertos . . . Eduardo Nicola F. Zagari 9 Processos - Introdução
  10. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 20. Eduardo Nicola F. Zagari 20 Processos - Introdução
  21. 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. 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. 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. 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. 25. Eduardo Nicola F. Zagari 25 Processos - Introdução
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×