• Nenhum resultado encontrado

Sistemas Operacionais Processos e Threads. Thiago Leite

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas Operacionais Processos e Threads. Thiago Leite"

Copied!
78
0
0

Texto

(1)

Sistemas Operacionais

Processos e Threads

Thiago Leite

(2)

Processos e Threads

• Processo

• Programa em execução

• Todo processo é um programa?

• Mais: o programa é apenas parte do estado.

• Menos: programas podem gerar vários

(3)

Processos e Threads

• Abstração de processo

• permite execução de múltiplas tarefas

(multiprogramação)

(4)

Processos e Threads

• Cada processo possui um espaço de

endereçamento

• recursos de auxílio ao processo

• O processo e seu respectivo espaço de

(5)

Processos e Threads

• Espaço de endereçamento • Programa executável • Dados do programa • Registradores • Arquivos abertos • Alarmes pendentes

(6)

Processos e Threads

Segmentos de um processo Unix • Pilha

• conjunto de instruções de uma sub-rotina • Heap

• extensão da memória

BSS (Block Memory Starting with Symbol) variáveis não inicializadas

• Data

• variáveis inicializadas • Texto

(7)

Processo Unix

(8)

Processos e Threads

• Multiprogramação

• vários processos em memória

• vários fluxos de execução

• processos desconhecem o momento que serão

executados

(9)

Multiprogramação

(10)

Processos e Threads

• Sistema operacional lida com a Tabela de

Processos

(11)

Processos e Threads

• Árvore de Processos

• Pode criar um ou mais processos filhos

• Processos filhos também podem criar processos

(12)

Árvore de Processos

(13)

Processos e Threads

• Hierarquias de processos

• Em Unix todos os processos compõe uma árvore com a raíz o INIT

(14)

Processos e Threads

• Chamadas de sistema de gestão de processos

• criação e término de processos

• requisitar mais memória ou esperar o término de

(15)

Processos e Threads

• Momentos em que os processos geralmente são

criados

• Início do sistema

• Execução de uma chamada de sistema de

criação

• Requisição do usuário

(16)

Processos e Threads

• Processos podem ser criados em

• Foreground

(17)

Processos e Threads

• Processos em Foreground

• processos sujeitos a interação do usuário

• usualmente processos do terminal de comandos

(18)

Processos e Threads

• Processos em Background

• daemons em Unix

• Disk And Execution MONitor

(19)

Processos e Threads

• Fluxo de dados para processos em Unix

• entrada padrão

• saída normal

• saída com erro

Processo entrada

(20)

Processos e Threads

• Término de processo

• Saída normal (voluntário)

• Saída por erro (voluntário)

• Erro fatal (involuntário)

(21)

Processos e Threads

• Comunicação entre processos

• processo envia saída para entrada de outro

processo

• dois processos solicitando o mesmo recurso

• um processo depende de outro para realizar

(22)

Pipe Unix

(23)

Processos e Threads

• Processos em Unix

• PID (Process IDentifier)

• identificação de um processo

• número utilizado para manipular os processos

(24)

Processos e Threads

• Processos em Unix

• Possui um UID (User IDentifier) associado

• Vários UIDs podem pertencer a um GID

(Group IDentification)

• Sistemas baseados em Unix possuem um UID

(25)

Processos e Threads

• Outros elementos de processos em Unix

Ambiente de execução (Ex: PATH)

• Diretório de trabalho

Instruções do programa

• Registradores e Pilha de instruções

Heap (alocação de memória dinâmica)

• Descritores de arquivos

• Ações de sinais

Bibliotecas compartilhadas

Sistema de comunicação entre processos (filas de mensagens, pipes ou memória

(26)

Informações sobre Processos

(27)

Processos e Threads

• A Tabela de Processos em sistemas Unix-like

usualmente é representada por /proc

• Em Linux procfs é um sistema de arquivos virtual

(28)

Tabela de Processos

(29)

Processos e Threads

• Significado de alguns elementos de /proc

• cmdline - comando e opções associados ao processo

• cwd - diretório de trabalho do processo.

• environ - variáveis de ambiente criadas pelo processo

• exe - executável do processo

• fd - descritores de arquivos utilizados

(30)

Ciclo de vida de um processo

(31)

Processos e Threads

• Estados principais de um processo

Em execução (realmente usando a CPU)

Pronto (executável; esperando seu momento)

(32)

Ciclo de vida de um processo

(33)

Processos e Threads

• O momento das interrupções depende do tipo de

sistema a adotar

• Preemptivo (processos podem ser interrompidos

sem consentimento)

• Não-preemptivo (processos que decidem o

(34)

Processos e Threads

• Sistema preemptivo

• Escalonador (invisível ao processo)

• Interrupções

• Inicialização

(35)

Processos e Threads

• Escalonador

• Utiliza a Tabela de Processos

• Manipulador de processos (process handler)

• Salvar registradores

• Alterar ponteiro da pilha

(36)

Processos e Threads

• Escalonamento

1. Hardware guarda contador de programa atual 2. Hardware carrega o novo contador de programa 3. Rotinas Assembly salvam os registradores

4. Rotinas Assembly carregam novos registradores 5. Serviço de interrupção em C carrega os buffers

6. Escalonador decide quem será o próximo a executar

(37)

Processos e Threads

• Principais métodos de escalonamento

• FIFO (First-In-First-Out) ou FCFS (First-Come-First-Served) • primeiro a chegar em pronto é o primeiro a ser executado

• SJF (Shortest Jog First), SPN (Shortest Process Next) e SRT (Shortest Remaning

Time)

• menor tarefa será executada primeiro • Por prioridade

• processos são associados a prioridades. Processos com prioridades iguais

obedecem ao FIFO.

• Round-Robin ou circular

(38)

9.2 / SCHEDULING ALGORITHMS 415 First-come-first served (FCFS) 0 5 10 15 20 0 5 10 15 20 A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E Round-robin (RR), q ! 1 Round-robin (RR), q ! 4 Shortest process next (SPN) Shortest remaining time (SRT) Highest response ratio next (HRRN) Feedback q ! 1 Feedback q ! 2i

Figure 9.5 A Comparison of Scheduling Policies

The normalized turnaround time for process Y is way out of line compared to the other processes: the total time that it is in the system is 100 times the required process-ing time. This will happen whenever a short process arrives just after a long process. On the other hand, even in this extreme example, long processes do not fare poorly. Process Z has a turnaround time that is almost double that of Y, but its normalized residence time is under 2.0.

(39)

Algoritmo de tarefa mais curta (SJF)

(40)

9.2 / SCHEDULING ALGORITHMS 415 First-come-first served (FCFS) 0 5 10 15 20 0 5 10 15 20 A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E Round-robin (RR), q ! 1 Round-robin (RR), q ! 4 Shortest process next (SPN) Shortest remaining time (SRT) Highest response ratio next (HRRN) Feedback q ! 1 Feedback q ! 2i

Figure 9.5 A Comparison of Scheduling Policies

The normalized turnaround time for process Y is way out of line compared to the other processes: the total time that it is in the system is 100 times the required process-ing time. This will happen whenever a short process arrives just after a long process. On the other hand, even in this extreme example, long processes do not fare poorly. Process Z has a turnaround time that is almost double that of Y, but its normalized residence time is under 2.0.

M09_STAL6329_06_SE_C09.QXD 2/21/08 9:32 PM Page 415

(41)

Algoritmo por Prioridade

(42)

Exemplo de Escalonamento por

Prioridade

Processos de menor prioridade apenas serão escalonados se não houver outros processos de maior prioridade

Processo B possui maior prioridade de execução

(43)

Algoritmo Round-Robin ou Circular

(44)

9.2 / SCHEDULING ALGORITHMS 415 First-come-first served (FCFS) 0 5 10 15 20 0 5 10 15 20 A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E Round-robin (RR), q ! 1 Round-robin (RR), q ! 4 Shortest process next (SPN) Shortest remaining time (SRT) Highest response ratio next (HRRN) Feedback q ! 1 Feedback q ! 2i

Figure 9.5 A Comparison of Scheduling Policies

The normalized turnaround time for process Y is way out of line compared to the other processes: the total time that it is in the system is 100 times the required process-ing time. This will happen whenever a short process arrives just after a long process. On the other hand, even in this extreme example, long processes do not fare poorly. Process Z has a turnaround time that is almost double that of Y, but its normalized residence time is under 2.0.

M09_STAL6329_06_SE_C09.QXD 2/21/08 9:32 PM Page 415

Escalonamento Round-Robin

com diferentes tempos de preempção

(45)

Processos e Threads

• Métodos compostos de escalonamento

• Fila Múltipla (Multilevel Queue)

• divide a fila de prontos em várias filas separadas, com

base em alguma propriedade do processo. Cada fila possui seu próprio algoritmo de escalonamento

• Fila Múltipla com Realimentação (Multilevel Feedback

Queue)

• identifica dinamicamente o comportamento de cada

(46)

Algoritmo Fila Múltipla

(47)

Escalonador com Fila Múltipla

(48)

Processos e Threads

• Tipos de processos • CPU Bound

• Uso intensivo da CPU

• Poucas operações de Entrada/Saída

• Pode monopolizar a CPU dependendo do tipo de algoritmo de

escalonamento utilizado

• I/O Bound

• Orientado a Entrada/Saída

(49)

Cenários de uso da CPU

(50)

Processos e Threads

• Threads

• “Miniprocessos”

• Múltiplas atividades simultâneas

• Compartilhamento do espaço de endereçamento

(51)

Vida e Morte

(52)

Processos e Threads

• Exemplo do uso de Threads

• Editor WYSIWYG (What You See Is What You Get)

• Edição e resultado simultâneo

• O Microsoft Word e BrOffice.org são exemplos

(53)

Editor de texto com três Threads

(54)

Servidor Web Multithread

(55)

Processos e Threads

• Condições de corrida

• processos que compartilham dados

• ex: spool de impressão

• dois processos acessam a mesma região e

ocasionalmente entrem em conflito

• ex: dois processos acham o mesmo espaço

(56)

Condição de corrida

(57)

Processos e Threads

• Exclusão mútua

• apenas um processo poderá acessar

determinado recurso por vez

• o código de um processo que faz uso de recurso

(58)

Processos e Threads

• Condições para acesso a dados compartilhados

• dois processos nunca podem estar

simultaneamente em suas regiões críticas

• nenhum processo fora de sua região crítica

poderá bloquear outro processo

• nenhum processo deverá esperar eternamente

(59)

Condição de corrida

(60)

Processos e Threads

• Espera ociosa

• espera para que um processo deixe sua região

crítica e possa realizar o mesmo

(61)

Processos e Threads

• Semáforos

• proposto por Edsger Dijkstra em 1965

• utilizada em sistemas multiprogramados

(62)

Processos e Threads

• Operações sobre semáforos são atômicas

• inicialização

• operação wait

(63)

Processos e Threads

• Inicialização de semáforo

• recebe valor inteiro indicando quantos

(64)

Processos e Threads

• Operação wait em semáforos

• decrementa o valor do semáforo

• se esse possuir valor 0, esse é colocado em

(65)

Processos e Threads

• Operação signal em semáforos

• se houver um processo em espera ociosa, esse

é acordado

• se não houver processo em espera ociosa, o

(66)

Processos e Threads

(67)

Processos e Threads

• Mutex

• tipo mais simples de semáforo

• semáforo binário, onde o recurso está disponível

(68)

Condição de corrida

(69)

Revisão

• Processo • Concorrência • Multiprogramação • Espaço de endereçamento • Tabela de processos • Imagem do núcleo • Árvore de processos • Subprocessos

• Chamadas de sistema (system calls) • Criação de processos • Foreground • Background • PID • Processos em Unix • UID • GID • ps • kill • Término de processo • Shell Unix • Hierarquias de processos

• Comunicação entre processos

• Estados de um processo • Diagrama de estados de processo • Estados de um processo em Unix • Escalonador • Manipulador de processos • Algoritmos de Escalonamento

• Otimização do uso da CPU

(70)

Laboratório

• Comandos Bash Shell

ls - listar o conteúdo de um diretório ou

informações sobre um arquivo $ ls

cd - navegar entre diretórios

(71)

Laboratório

• Comandos Bash Shell

cat - exibe e concatena arquivos

$ cat arquivo1 arquivo2

grep - filtra uma entrada por uma string

(72)

Laboratório

Comandos Bash Shell

echo - imprime uma mensagem

$ echo “Ola Mundo”

rm - remove arquivos do sistema

(73)

Laboratório

• Comandos Bash Shell

sudo - solicitar execução em modo Super

Usuário

$ sudo comando

su - autenticar-se como Super Usuário

(74)

Laboratório

Uso do pipe ( | ) em Bash Shell

(75)

Laboratório

• Comandos Bash Shell

; - finalização de um comando

comando1 ; comando2

\ - continuação de um mesmo comando em

várias linhas comando \

(76)

Laboratório

• Redirecionamento de entradas e saídas em Bash Shell

< - entrada padrão comando < arquivo_com_argumentos • > ou >> - saída padrão comando > arquivo_saida • 2> ou 2>> - saída de erro comando 2>> arquivo_erro_apendice

2>&1 - saída padrão e de erros

(77)

Laboratório

• Comandos em Bash Shell

& - execução de um comando em segundo plano (background)

comando &

jobs - apresenta comandos em background

[1]+ Running comando &

fg - traz processo novamente para o foreground

fg 1

bg - leva um processo para background

(78)

Laboratório

• Comandos em Bash Shell

ps - obtém informações sobre os processos do

sistema ps aux

kill - envia um sinal para um determinado PID

Referências

Documentos relacionados

Essa configuração do porão foi pensada talvez como alternativa de transição entre a situação de hoje e a alternativa a, ou como opção que não prescinde de um aumento no número

As variáveis peso, estatura e circunferência da cintura apresentaram valores médios superiores aos homens em relação as mulheres, sendo o inverso observado para índice

Estima-se que a diversidade de espécies na Mata Atlântica e no Brasil seja muito maior e o baixo número de táxons conhecidos se dá por falta de identificação ao

 Inclusão: Incluir é uma relação direta entre dois casos de usos, implicando que o comportamento do caso de uso incluído é.. inserido no comportamento do caso de

- Declaração amigável - Declaração de amor - Declaração de frequência - Declaração de guerra - Declaração de presença - Declaração de rendimentos - Declaração de

auxiliar na criação de KPI’s. Fonte: Elaborado pela autora com base nos Quadros de 1 a 10 dessa dissertação.. O Quadro 13 apresenta os resultados trabalhados e que possuem

A tabela 25 apresenta os resultados brutos desta avaliação em relação à característica busca e a tabela 26 exibe o resultado ponderado para esta característica.. A tabela 27

salvaguardam de erros manifestos na submissão das ordens e que poderão tomar a.. 4 forma de rejeição da ordem ou desencadear os mecanismos de interrupção da