Buscar

Aula06-Introd A Processo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Tecnólogo em Análise e Desenvolvimento de Sistemas
Sistemas Operacionais
Prof. Daniel Menezes
Tecnólogo em Análise e Desenvolvimento de Sistemas
Sistemas Operacionais
Professor Daniel Menezes
Sistemas Operacionais
GERENCIAMENTO DE PROCESSOS
INTRODUÇÃO
Fatos Importantes 
Processos são uma das mais antigas e importantes abstrações que os sistemas operacionais proporcionam. Eles dão suporte à possibilidade de haver operações (pseudo) concorrentes mesmo quando há apenas uma CPU disponível, transformando uma única CPU em múltiplas CPUs virtuais. Sem a abstração de processo, a computação moderna não poderia existir. 
Todos os computadores modernos frequentemente realizam várias tarefas ao mesmo tempo. As pessoas acostumadas a trabalhar com computadores talvez não estejam totalmente cientes desse fato, então alguns exemplos podem esclarecer este ponto. Primeiro, considere um servidor da web, em que solicitações de páginas da web chegam de toda parte. 
Quando uma solicitação chega, o servidor confere para ver se a página requisitada está em cache. Se estiver, ela é enviada de volta; se não, uma solicitação de acesso ao disco é iniciada para buscá-la. No entanto, do ponto de vista da CPU, as solicitações de acesso ao disco levam uma eternidade. Enquanto espera que uma solicitação de acesso ao disco seja concluída 
considere um PC de usuário. Quando o sistema é inicializado, muitos processos são secretamente iniciados, quase sempre desconhecidos para o usuário. Por exemplo, um processo pode ser inicializado para esperar pela chegada de e-mails. Outro pode ser executado em prol do programa antivírus para conferir periodicamente se há novas definições de vírus disponíveis. 
.
Além disso, processos explícitos de usuários podem ser executados, imprimindo arquivos e salvando as fotos do usuário em um pen-drive, tudo isso enquanto o usuário está navegando na Web. Toda essa atividade tem de ser gerenciada, e um sistema de multiprogramação que dê suporte a múltiplos processos é muito útil nesse caso
Em qualquer sistema de multiprogramação, a CPU muda de um processo para outro rapidamente, executando cada um por dezenas ou centenas de milissegundos. Enquanto, estritamente falando, em qualquer dado instante a CPU está executando apenas um processo, no curso de 1s ela pode trabalhar em vários deles, dando a ilusão do paralelismo. Às vezes, as pessoas falam em pseudoparalelismo neste contexto, para diferenciar do verdadeiro paralelismo de hardware dos sistemas multiprocessadores (que têm duas ou mais CPUs compartilhando a mesma memória física). Ter controle sobre múltiplas atividades em paralelo é algo difícil para as pessoas realizarem. 
Relembrando 
O que é um processo ?
um processo é uma instância de um programa de computador que está sendo executada. Ele contem o código do programa e sua atividade atual. Dependendo do sistema operacional (SO), um processo pode ser feito de várias linhas de execução que executam instruções concorrentemente.
Roteiro
Introdução
Processo – Conceito
Estado do Processo
Criação/Novo
Pronto
Execução
Espera
Concluído
PCB (Bloco de Controle de Processo)
Introdução
Os primeiros sistemas computadorizados permitiam que apenas um programa fosse executado de cada vez.
Introdução
Esse programa tinha controle total do sistema e tinha acesso a todos os recursos do sistema.
Em contraste, sistemas computadorizados dos dias atuais permitem que vários programas sejam carregados na memória e executados concorrentemente.
Introdução
Essa evolução exigiu controle mais rígido e maior compartimentalização dos diversos programas.
Essas necessidades resultaram na noção de um Processo, (programa em execução.)
Introdução
Um processo é a unidade de trabalho em um sistema moderno de tempo compartilhado.
Unidade de Trabalho – programa.
Introdução
Um sistema, portanto, consiste em uma coleção de processos:
Processos do sistema operacional executando código do sistema.
Processos do usuário - executando código do usuário.
Introdução
Potencialmente, todos esses processos podem ser executados de forma concorrente.
Com a CPU alternando entre os processos, o sistema operacional pode tornar o computador mais produtivo.
Processo - Conceito
E um programa em execução, incluindo os valores correntes do controlador de programa, registradores e variáveis.
O conceito de processo ´e dinâmico, em contraposição ao conceito de programa, que ´e estático.
Processo - Conceito
Nem sempre um programa equivale a apenas um processo.
Em sistemas que permitem reentrância, o código de um programa pode gerar vários processos. (simutaneidade)
Processo - Conceito
Caracterizado por programas em execução. 
Cada processo possui:
Programa (instruções que serão executadas); 
Espaço de endereço de memória (mínimo e máximo);
Contextos de software: atributos.
Processo - Conceito
O Sistema Operacional gerencia todos os processos a partir do uso do: 
Bloco de Controle de Processos – BCP
Processo - Conceito
Basicamente, um processo possui três segmentos
Texto: código do(s) programa(s);
Dados: as variáveis;
Pilha de execução: controla a execução do processo. 
Processo - Contexto
Table PCB
Bloco de Controle do Processo
Cada processo é representado no sistema operacional por um bloco de controle de processo. 
PCB - Process Control Block - também conhecido como bloco de controle de tarefa.
Bloco de Controle do Processo
No sistema, cada processo será representado por seu resumo, que consiste no BCP, também conhecido por Bloco de Controle de Programa ou Descritor de Processo.
O BCP consiste de uma estrutura de dados contendo informações importantes sobre o processo.
Bloco de Controle do Processo
A identificação do processo;
O estado do processo;
A prioridade do processo;
Ponteiros para a localização do processo na memória ou no disco;
Contador de programa;
Area de salvamento dos registradores, etc
Registradores da CPU.
lnformação de escalonamento de CPU.
Bloco de Controle do Processo
Bloco de Controle de Processo
Bloco de Controle do Processo
Bloco de Controle do Processo
Bloco de Controle do Processo
Tabela de Processos:
Cada processo possui uma entrada;
Cada entrada possui um ponteiro para o BCP ou descritor do processo;
BCP possui todas as informações do processo - Contextos de hardware, software, endereço de memória. 
Bloco de Controle do Processo
À medida que os processos entram no sistema, são colocados em uma fila de jobs.
Essa fila consiste em todos os processos do sistema.
Bloco de Controle de Processos
Essa fila geralmente é armazenada como uma Lista Encadeada.
Um cabeçalho de fila de processos prontos contém ponteiros ao primeiro e Último PCBs na lista.
Bloco de Controle de Processos
Bloco de Controle do Processo
Bloco de Controle do Processo
Estado do Processo
Quando um processo é executado, ele mudade estado.
O estado de um processo é definido, em parte, pela atividade corrente do processo.
Estado do Processo
Um processo pode estar em um dos seguintes estados:
Criação/Novo.
Pronto.
Em execução
Em espera.
Concluído.
Estado do Processo
Um processo pode estar em um dos seguintes estados:
Novo - O processo está sendo criado, passa a fazer parte dos processos prontos a serem executados.
CRIAÇÃO/NOVO
PRONTO
ESPERA
EXECUÇÃO
CONCLUÍDO
Estado do Processo
Um processo pode estar em um dos seguintes estados:
Pronto - O SO escolhe (através de critérios e algoritmos próprios) o processo que será executado na CPU. 
CRIAÇÃO/NOVO
PRONTO
ESPERA
EXECUÇÃO
CONCLUÍDO
Estado do Processo
Um processo pode estar em um dos seguintes estados:
Execução - Trata da execução em si do processo (pode passar para o estado de espera quando aguarda operação de E/S ou em caso de suspensão do processo). 
CRIAÇÃO/NOVO
PRONTO
ESPERA
EXECUÇÃO
CONCLUÍDO
Estado do Processo
Um processopode estar em um dos seguintes estados:
Espera - Um processo em espera passa para pronto quando a operação solicitada ou recurso esperado é concedido. 
CRIAÇÃO/NOVO
PRONTO
ESPERA
EXECUÇÃO
CONCLUÍDO
Estado do Processo
Um processo pode estar em um dos seguintes estados:
EsperaProntoExecução  
CRIAÇÃO/NOVO
PRONTO
ESPERA
EXECUÇÃO
CONCLUÍDO
Estado do Processo
Um processo pode estar em um dos seguintes estados:
Execução - O processo em execução passa para o estado de terminado quando o processo finaliza sua execução.
CRIAÇÃO/NOVO
PRONTO
ESPERA
EXECUÇÃO
CONCLUÍDO
Estado do Processo
Um processo pode estar em um dos seguintes estados:
Concluído - finaliza a execução do processo.
CRIAÇÃO/NOVO
PRONTO
ESPERA
EXECUÇÃO
CONCLUÍDO
Threads
O modelo de processo discutido até agora sugere que um processo é um programa que executa apenas um thread.
Quando um processo está executando um programa de processamento de texto, um único thread de instruções está sendo executado. 
Threads
Esse thread de controle único permite que o processo execute apenas uma tarefa de cada vez.
Assim não é possível digitar caracteres e executar o corretor ortográfico dentro do mêsmo processo.
Threads
Boa parte dos SO’s modernos partem do conceito de processo para permitir que um processo tenha múltiplos threads de execução e, assim, esempenhe mais de uma tarefa de cada vez.
Esse recurso é particularmente benéfico em sistemas multicores, em que múltiplos threads podem ser
 executados em paralelo.
Threads
Em um sistema que suporte threads, o PCB é expandido de modo a incluir informações para cada thread.
Também são necessárias outras alterações no sistema como um todo para que ele suporte threads. 	
Scheduling (escalonar) de Processos
O objetivo da multiprogramação é ter processos em execução o tempo todo, para maximizar a utilização de CPU.
O objetivo do tempo compartilhado é alternar a CPU entre processos de forma tão frequente que os usuários possam interagir com cada programa durante sua execução. 
Scheduling de Processos
Para um sistema uniprocessador, nunca haverá mais de um processo em execução.
Se houver mais processos, os demais terão de esperar até que a CPU esteja liberada e possa ser reescalonada.
Filas de Scheduling
 Diagrama mostrando a alternância da CPU entre processos
Schedulers (escalonador)
Para fins de scheduling, o sistema operacional deve selecionar processos das filas, de alguma forma. 
O processo de seleção é executado pelo scheduler apropriado (algoritmos específicos).
Relembrando 
O que é Processo 
Escalonamento de Processo
Estado de um Processo ?
Qual a diferença entre sistema de tempo compartilhado e de tempo real?
Técnicas de escalonamento de processos
Com o surgimento dos sistemas multiprogramáveis, a gerência do processador tornou-se uma das atividades mais importantes em um SO. A partir do momento em que diversos processos podem estar no estado de pronto, critérios devem ser estabelecidos para determinar qual processo será escolhido para fazer uso do processador. Os critérios utilizados para essa seleção compõem a chamada política de escalonamento, que é a base da gerência do processador e da multiprogramação em um SO.
Funções Básicas
A política de escalonamento de um SO tem diversas funções básicas, como:
 Manter o processador ocupado a maior parte do tempo;
 Balancear o uso da UCP entre processos;
 Privilegiar a execução de aplicações críticas;
 Maximizar o throughput do sistema;
 Oferecer tempos de resposta razoáveis para usuários interativos.
A rotina do SO que tem como principal função implementar os critérios da política de escalonamento é denominada escalonador (scheduler).
A rotina conhecida como dispatcher é responsável pela troca de contexto dos processos após o escalonador determinar qual processo deve fazer uso do processador e o tempo gasto na troca é denominado latência do dispatcher. 
Critérios de Escalonamento
 Utilização do Processador: é desejável que o processador permaneça a
maior parte do tempo ocupado.
 Throughput: representa o número de processos executados em um determinado instante de tempo.
 Tempo de Processador / Tempo de UCP: é o tempo que um processo leva no estado de execução durante o seu processamento.
 Tempo de Espera: é o tempo total que um processo permanece na fila de pronto durante seu processamento, aguardando para ser executado.
 Tempo de Turnaround: é o tempo que um processo leva desde a sua criação até seu término. 
Critérios de Escalonamento
 Tempo de Resposta: é o tempo decorrido entre uma requisição ao sistema ou à aplicação e o instante em que a resposta é exibida.
De maneira geral, qualquer política de escalonamento busca otimizar a utilização do processador e o throughput, enquanto tenta diminuir os tempos
de turnaround, espera e resposta.
Apesar disso, as funções que uma política de escalonamento deve possuir são muitas vezes conflitantes.
Dependendo do tipo do sistema operacional, um critério pode ter maior importância do que outros. 
Escalonamentos Não-Preemptivos e Preemptivos
As políticas de escalonamento podem ser classificadas segundo a possibilidade de o sistema operacional interromper o processo em execução e substituí-lo por um outro (preempção).
Escalonamento não-preemptivo: quando um processo está em execução nenhum evento externo pode ocasionar a perda do uso do processador.
Escalonamento preemptivo: o sistema operacional pode interromper um processo em execução e passá-lo para o estado de pronto, com o objetivo de alocar outro processo na UCP com prioridade maior do que o anterior.
Atualmente, a maioria dos SOs implementa políticas de escalonamento preemptivas. 
Escalonamento First-In-First-Out (FIFO scheduling)
Também conhecido como first-come-first-served (FCFS scheduling) 
Escalonamento First-In-First-Out (FIFO scheduling 
Escalonamento First-In-First-Out (FIFO scheduling)
Apesar de simples, o escalonamento FIFO apresenta algumas deficiências:
 Impossibilidade de prever-se quando um processo terá a sua execução iniciada, já que isso varia em função do tempo de execução dos demais processos na fila de pronto;
 Processos CPU-bound levam vantagem no uso do processador sobre processos I/O-bound.
O escalonamento FIFO é do tipo não-preemptivo e foi inicialmente implementado em sistemas monoprogramáveis com processamento batch.
Atualmente, sistemas de tempo compartilhado utilizam FIFO com variações. 
Escalonamento Shortest-Job-First (SJF scheduling)
Também conhecido como shortest-process-next (SPN scheduling) 
Escalonamento Shortest-Job-First (SJF scheduling)
Esta implementação foi utilizada nos primeiros sistemas operacionais com processamento exclusivamente batch.
Uma maneira de implementar o escalonamento SJF em sistemas interativos foi considerar o comportamento do processo neste ambiente.
Um problema existente nesta implementação é não ser possível ao SO saber quanto tempo um processo irá permanecer utilizando a UCP na próxima vez
em que for escalonado.
Na sua concepção inicial, o escalonamento SJF é não-preemptivo 
Escalonamento Shortest-Job-First (SJF scheduling)
Vantagem sobre o FIFO: redução do tempo médio de turnaround dos
processos, porém no SJF é possível haver starvation para processos com
tempo de processador muito longo ou do tipo CPU-bound.
Uma implementação do escalonamento SJF com preempção é conhecida
como escalonamento shortest-remaining-time (SRT scheduling).
8.7 Escalonamento Cooperativo
Um processo em execução pode voluntariamente liberar o processador,
retornando à fila de pronto e possibilitando que um novo processo seja
escalonado, permitindo assim uma melhor distribuição no uso do
processador. 
Escalonamento Circular
A principal vantagem do escalonamento circular é não permitir que um processo monopolize a UCP, sendo o tempo máximo alocado continuamente
igual à fatia de tempo definida no sistema.
Um problema presente nesta política é que processos CPU-boundsão beneficiados no uso do processador em relação aos processos I/O-bound, o que provoca um balanceamento desigual no uso do processador.
Um refinamento do escalonamento circular, que busca reduzir esse problema, é conhecido como escalonamento circular virtual 
Escalonamento por Prioridades
É um escalonamento do tipo preemptivo realizado com base em um valor associado a cada processo denominado prioridade de execução.
A perda do uso do processador só ocorrerá no caso de uma mudança voluntária para o estado de espera ou quando um processo de prioridade maior passa para o estado de pronto (preempção por prioridade).
A rotina de escalonamento deve reavaliar as prioridades dos processos no estado de pronto, para verificar se há processos com maior prioridade do que
o processo em execução. 
Escalonamento por Prioridades
O escalonamento por prioridades também pode ser implementado de uma maneira não-preemptiva.
A prioridade de execução é uma característica do contexto de software de um processo, e pode ser classificada como estática e dinâmica.
Um dos principais problemas do escalonamento circular é o starvation. Uma solução para esse problema é a técnica de aging.
O escalonamento por prioridades possibilita diferenciar os processos segundo critérios de importância. 
Escalonamento Circular com Prioridades
Implementa o conceito de fatia de tempo e de prioridade de execução associada a cada processo.
Um processo permanece no estado de execução até que termine seu processamento, voluntariamente passe para o estado de espera ou sofra uma preempção por tempo ou prioridade.
A vantagem deste tipo de escalonamento é permitir o melhor balanceamento no uso do processador em sistemas de tempo compartilhado.
Possui duas variações: circular com prioridades estáticas e circular com prioridades dinâmicas. 
Escalonamento por Múltiplas Filas
Neste tipo de escalonamento, os processos são associados às filas em função de características próprias, como importância para a aplicação, tipo de processamento ou área de memória necessária.
A principal vantagem de múltiplas filas é a possibilidade da convivência de mecanismos de escalonamento distintos em um mesmo sistema operacional.
Além disso, neste mecanismo o processo não possui prioridade, ficando essa característica associada à fila. O processo sofre preempção caso um outro processo entre em uma fila de maior prioridade.
Desvantagem: no caso de um processo alterar seu comportamento no decorrer do tempo, não poderá ser redirecionado para outra fila 
Escalonamento por Múltiplas Filas com Realimentação
Neste tipo de escalonamento, os processos podem trocar de filas durante o seu processamento.
Vantagem: permitir ao SO identificar dinamicamente o comportamento de cada processo, direcionando-o para filas com prioridade de execução e mecanismo de escalonamento mais adequados.
O escalonamento de um processo em uma fila ocorre apenas quando todas as outras filas de prioridades mais altas estiverem vazias.
Problemas: complexidade de implementação; mudança de comportamento de um processo CPU-bound para I/O-bound pode comprometer seu tempo
de resposta. 
Política de Escalonamento em Sistemas de Tempo
Compartilhado
Em geral, sistemas de tempo compartilhado caracterizam-se pelo processamento interativo, no qual os usuários interagem com as aplicações
exigindo tempos de respostas baixos.
A escolha de uma política de escalonamento para atingir esse propósito deve levar em consideração o compartilhamento dos recursos de forma equitativa para possibilitar o uso balanceado da UCP entre os processos.
Atualmente, a maioria dos sistemas operacionais de tempo compartilhado utiliza o escalonamento circular com prioridades dinâmicas 
Qual a diferença entre sistema de tempo compartilhado e de tempo real?
Enquanto em sistemas de tempo compartilhado o tempo de resposta pode variar sem comprometer as aplicações em execução, nos sistemas de tempo real os tempos de resposta devem estar dentro de limites rígidos, que devem ser obedecidos, caso contrário poderão ocorrer problemas irreparáveis.
Política de Escalonamento em Sistemas de Tempo Real
Algumas aplicações específicas exigem respostas imediatas para a execução de terminadas tarefas. Nesse caso, a aplicação deve ser executada em sistemas de tempo real.
O escalonamento em sistemas de tempo real deve levar em consideração a importância relativa de cada tarefa na aplicação.
Em função disso, o escalonamento por prioridades é o mais adequado para sistemas de tempo real. Não deve existir o conceito de fatia de tempo, e a prioridade de cada processo deve ser estática 
DÚVIDAS?
SISTEMA OPERACIONAL
ATIVIDADE
SISTEMA OPERACIONAL
Exercícios
1) Defina o que é processo e quais os estados que o mesmo pode assumir?
2) Basicamente um processo possui três Segmentos, descreva quais são ?
3) Explique o que é BCB e quais informações são armazenadas em sua tabela.
4) Qual a diferença entre sistema de tempo compartilhado e de tempo real?
um processo é uma instância de um programa de computador que está sendo executada. Ele contem o código do programa e sua atividade atual. Dependendo do sistema operacional (SO), um processo pode ser feito de várias linhas de execução que executam instruções concorrentemente
2) Texto (codigos dos programasDados (variaveis) Pilha de execução 
3) Estrutura de dados contendo informações importantes sobre o processo.
Apresentação em Grupo 
 Sistemas Operacionais 
1. Windows 
2. Linux
3. Unix
4. Mac Os 
5. Solaris 
6. OneUi
7. Android
8. Windows Phone
Apresentaram 3 Equipes 1. Windows 2. Unix e 7. Android
Atividade em Grupo 
Pilares para Defesa 
Boot 
Estrutura de Arquivos
...........

Continue navegando