0% acharam este documento útil (0 voto)
13 visualizações51 páginas

Processos e Threads em Sistemas Operacionais

O documento discute processos e threads em sistemas operacionais. Explica que um processo é uma atividade computacional que utiliza recursos para executar um programa. Processos podem ser criados, mudar de estado entre execução, pronto e bloqueado, e serem eliminados. Threads permitem a execução paralela dentro de um mesmo processo.

Enviado por

mensageirocs
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
13 visualizações51 páginas

Processos e Threads em Sistemas Operacionais

O documento discute processos e threads em sistemas operacionais. Explica que um processo é uma atividade computacional que utiliza recursos para executar um programa. Processos podem ser criados, mudar de estado entre execução, pronto e bloqueado, e serem eliminados. Threads permitem a execução paralela dentro de um mesmo processo.

Enviado por

mensageirocs
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Processos e Threads

Prof. Fernando F. de Carvalho

Processos e Threads
Conceito Processos concorrentes Estrutura do processo Estados do processo Mudanas de estado de processo Criao e eliminao de processos Processos independentes, subprocessos Threads e Multithreads
2

Processo
a base para implementao de um sistema multiprogramvel. O processador projetado apenas para executar instrues, no sendo capaz de distinguir qual programa se encontra em execuo. A gerncia de um ambiente multiprogramvel uma funo exclusiva do sistema operacional, que deve controlar a execuo dos diversos programas e o uso concorrente do processador. Para isto ser executado, um programa deve estar sempre associado a um processo.

Conceito de Processo
Um processo computacional pode ser entendido como uma atividade que ocorre em meio computacional, possuindo um objetivo definido, tendo durao finita e utilizando uma quantidade limitada de recursos computacionais.

Conceito de Processo
O termo processo (process) muitas vezes substitudo pelo termo tarefa (task) e pode assumir um dos seguintes significados: um programa em execuo, ou parte dele; uma atividade assncrona; o esprito ativo de um procedimento; uma entidade que pode utilizar um processador ou uma unidade que pode ser despachada para execuo.
* os processos computacionais podem ser divididos em sub-processos
5

Criao de Processo
Subdiviso de um processo Como cada processo precisa de recursos para ser executado e concludo, a ocorrncia de processos significa a utilizao de recursos do computador.

Criao de Processo
Processos podem criar novos processos. O processo criador chamado de processo-pai (parent process), enquanto os processos criados so denominados de processos filhos (child process).

Subdiviso de um Processo
Cada processo precisa de recursos do computador para ser executado e concludo. Pode-se dividir os processos em dois tipos: Processos seqenciais Processos Paralelos Processos seqenciais So aqueles que ocorrem um de cada vez, como seqncia de eventos, todos recursos computacionais podem ser usados de forma exclusiva, pois no h disputa por recursos.

Diagrama exemplo de processos seqenciais

a ociosidade dos diversos recursos computacionais muito alta, sugerindo que sua utilizao pouco efetiva
8

Subdiviso de um Processo
Processos Paralelos Os processos paralelos so aqueles que, durante um certo intervalo de tempo, ocorrem simultaneamente. Onde dois ou mais processos passem, a partir de um dado momento, a disputar o uso de um recurso computacional particular.

Diagrama-exemplo de processos paralelos


9

Processo Paralelos
Os processos paralelos so classificados como:
Independentes - utilizam recursos completamente distintos, no se envolvendo em disputas com outros processos. Concorrentes - pretendem utilizar um mesmo recurso, dependem de uma ao do sistema operacional para definir a ordem na qual os processos usaro o recurso. Cooperantes - dois ou mais processos utilizam em conjunto um mesmo recurso para completarem uma dada tarefa.
10

Processos Concorrentes
Nos sistemas multiprogramveis, os processos so executados concorrentemente, compartilhando, dentre outros recursos, o uso do processador, da memria principal e dos dispositivos de E/S. Nos sistemas com mltiplos processadores, no s existe a concorrncia de processos pelo uso do processador, como tambm a execuo simultnea de processos nos diferentes processadores.

11

Estrutura do processo
Em um sistema multiusurio, cada usurio associado a um processo. Para que a troca de programas ocorra sem problemas, necessrio que todas as informaes do programa interrompido sejam guardadas para que, quando este retornar a ser executado, no lhe falte nenhuma informao necessria continuao do processamento. A execuo de um mesmo programa pode variar, em funo dos recursos disponveis. A falta de recursos pode impedir a execuo com sucesso de um programa. Caso o programa, por exemplo, necessite utilizar uma rea em disco superior ao seu limite, o sistema operacional ir interromper sua execuo por falta de recursos disponveis.
12

Estrutura do processo
Um processo formado por trs parte: contexto de hardware, contexto de software e espao de endereamento, que juntos mantm todas as informaes necessrias execuo de um programa.

Contexto de Hardware
Programa

Contexto de Software

Espao de Endereamento

13

Contexto de Hardware
Quando um processo est em execuo, o seu contexto de hardware est armazenado nos registradores do processador. Os processos se revezam na utilizao da CPU, podendo ser interrompidos e posteriormente restaurados.

14

Contexto de Software
So especificadas caractersticas e limites dos recursos que podem ser alocados pelo processo, como o nmero mximo de arquivos abertos simultaneamente, prioridade de execuo e tamanho do buffer para operaes de E/S.

15

Espao de Endereamento
a rea de memria pertencente ao processo onde as instrues e os dados do programa so armazenados para execuo. Cada processo possui seu prprio espao de endereamento, que deve ser devidamente protegido do acesso dos demais processos.
16

Bloco de Controle do Processo - PCB


O processo implementado pelo sistema operacional atravs de uma estrutura de dados chamada bloco de controle do processo PCB. A partir do PCB, o sistema operacional mantm todas as informaes sobre o contexto de hardware, contexto de software e espao de endereamento de cada processo.
Ponteiros Estado do processo Nmero do processo Prioridade do processo Registradores Limites de memria Lista de arquivos abertos

17

Bloco de Controle do Processo - PCB


Geralmente o PCB contm as seguintes informaes:
identificao do processo (PID);

estado corrente do processo; ponteiro para o processo pai (parent process); lista de ponteiros para os processos filho (child processes); prioridade do processo; lista de ponteiros para as regies alocadas de memria; informaes sobre horrio de incio, tempo utilizado do processador; estatsticas sobre uso de memria e perifricos; cpia do contedo do contador de programa (program counter); cpia do contedo dos registradores do processador; identificador do processador sendo utilizado; informaes sobre diretrios raiz e de trabalho; informaes sobre arquivos em uso; permisses e direitos.
18

Bloco de Controle do Processo - PCB

Organizao de uma tabela de processos


19

Estados do processo
Um processo ativo pode encontrar-se em trs diferentes estados:
Execuo (Running)
Quando est sendo processado pela CPU.

Pronto (Ready)
Quando aguarda apenas para ser executado.

Bloqueado (Blocked)
Quando aguarda por algum evento externo ou por algum recurso para prosseguir seu processamento.

20

Mudanas de estado de processo


Pronto Execuo
Aps a criao de um processo, o sistema o coloca em uma lista de processos no estado de pronto, onde aguarda por uma oportunidade para ser executado.

Execuo

Bloqueado

Um processo em execuo passa o estado de bloqueado por eventos gerados pelo prprio processo, como uma operao de E/S, ou por eventos externos.

Bloqueado
Execuo

Pronto

Um processo no estado de bloqueado passa para o estado de pronto quando a operao solicitada atendida ou o recurso esperado concedido.

Pronto

Um processo em execuo passa para o estado de pronto por eventos gerados pelo sistema, como o termino da fatia de tempo(Quantun) que o processo possui para sua execuo. Nesse caso, o processo volta para fila de pronto, onde aguarda por uma nova oportunidade para continuar seu processamento.
21

Criao, mudanas de estado e trmino do processo

22

Criao de processos
Criao
Um processo dito no estado de criao quando o sistema operacional j criou um novo PCB, porm ainda no pode coloc-lo na lista de processos do estado de pronto. Alguns sistemas operacionais limitam o nmero de processos ativos em funo dos recursos disponveis ou de desempenho. Esta limitao pode ocasionar que processos criados permaneam no estado de criao at que possam passar para ativos.
23

Eliminao de processos
Terminado
Um processo no estado de terminado no poder ter mais nenhum programa executado no seu contexto, porm o sistema operacional ainda mantm suas informaes de controle presentes em memria. Um processo neste estado no mais considerado ativo, mas como o PCB ainda existe, o sistema operacional pode recuperar informaes sobre a contabilizao de uso de recursos do processo, como o tempo total do processador. Aps as informaes serem extradas, o processo pode deixar de existir.
24

Transies em estados
Entre os trs estados bsicos existem quatro transies possveis: Despachar (Dispatch), Esgotamento (TimeRunOut), Bloqueio (Block) e Reativar (Awake). Alm destas quatros transies existe outras duas correspondentes a Criao (Create) e Finalizao (Terminate) do processo.

25

Transies em estados

Tabela 2.1: Operaes de transio de estado dos processos

26

Processos independentes
O uso de processos independentes a maneira mais simples de implementar a concorrncia em sistemas multiprogramveis. Neste caso no existe vnculo do processo criado com o seu criador. A criao de um processo independente exige a alocao de um PCB, possuindo contextos de hardware, contextos de software e espao de endereamento.
27

Operaes sobre Processos


criao (create) destruio (destroy) suspenso (suspend ou wait) retomada (resume) troca de prioridade bloqueio (block) ativao (activate) execuo (execute ou dispatch) comunicao inter-processo
28

Operaes sobre Processos


A criao de um processo envolve operaes particulares: identificao do processo (determinao do PID) insero do processo na lista de processos conhecidos do sistema determinao da prioridade inicial do processo criao do PCB alocao inicial dos recursos necessrios insero do processo na lista de processos conhecidos do sistema determinao da prioridade inicial do processo criao do PCB alocao inicial dos recursos necessrios
29

Subprocessos
So processos criados dentro de uma estrutura hierrquica. Neste modo, o processo criador denominado processo pai, enquanto o novo processo chamado de subprocesso ou processo filho. O subprocesso pode criar outras estrutura de subprocessos. Uma caracterstica desta implementao a dependncia existente entre o processo criador e o subprocesso. Caso um processo pai deixe de existir, os subprocessos subordinados so automaticamente eliminados. Semelhante aos processos independentes, subprocessos possuem seu prprio PCB.
30

Processos independentes e subprocessos


O uso deste processos no desenvolvimento de aplicaes concorrentes demanda consumo de diversos recursos do sistema. Sempre que um novo processo criado, o sistema deve alocar recursos (contexto de hardware, contexto de software e espao de endereo), consumindo tempo da CPU neste trabalho. No momento do trmino dos processos, o sistema operacional tambm perde tempo para desalocar recursos previamente alocados. Outro problema a comunicao e sincronizao entre processos, considerada pouco eficiente, visto que cada processo possui seu prprio espao de endereamento.
31

Escalonador
Num sistema em tempo repartido a entidade que coordena a utilizao do processador por parte dos processos o escalonador (scheduler). O Scheduler uma funo, que se utiliza de um temporizador (timer) do sistema para efetuar a diviso de processamento (diviso de tempo). Regularmente, a cada intervalo de tempo fixo ou varivel, este temporizador dispara uma interrupo (um mecanismo especial de chamada de rotinas) que ativa uma rotina do escalonador do sistema. O processador empilha o program counter e tambm o contedo dos registradores do processador.

32

Escalonador

Representao do escalonamento de processos

33

Funes do ncleo de sistema operacional


Todas as operaes que envolvem os processos so controladas por uma parte do sistema operacional denominada ncleo (core ou kernel). O ncleo de um sistema operacional deve conter rotinas com as seguintes funes: gerenciamento de interrupes manipulao de processos (criao, destruio, suspenso, retomada,etc.) manipulao dos PCBs (Process Control Blocks) troca de estados dos processos (execuo, timerunout e ativao) 34

Funes do ncleo de sistema operacional


intercomunicao de processos sincronizao de processos gerenciamento de memria gerenciamento de dispositivos de E/S suporte a um ou mais sistemas de arquivos suporte `a funes de administrao do sistema
35

Competio por recurso


Quando dois ou mais processos em execuo paralela solicitem a utilizao de um mesmo recurso simultaneamente. O recurso pode ser compartilhado, porm pode ser exigido o uso individual e organizado de recurso. A exigncia de uso individual ou o compartilhamento caracterizam duas situaes: o cdigo reentrante e as regies crticas
36

Competio por recurso Regies Crticas


Quando um dado recurso computacional s pode ser utilizado por um nico processo de cada vez. Podendo ser uma rotina de software especial ou um dispositivo de hardware.

Representao de uma regio crtica

37

Competio por recurso Cdigo reentrante


Quando uma rotina pode ser utilizada simultaneamente por uma quantidade qualquer de processos, dizemos que esta rotina um bloco de cdigo reentrante ou cdigo pblico. Situao desejvel Compartilhamento benfico Aumentando a eficincia

Representao de cdigo reentrante

38

Deadlocks
Em sistema multiprogramado, o termo deadlock, ou seja, bloqueio perptuo ou impasse, significa um evento que jamais ir ocorrer [DEI92, TAN92,SGG01]. Um conjunto de processos esta num bloqueio perpetuo quando cada processo do conjunto esta esperando por um evento que apenas outro processo do conjunto pode causar. [TAN92, p. 242]

39

Deadlocks

Representao de um deadlock

40

Condies para ocorrncia de deadlocks


Processos exigem controle exclusivo dos recursos(excluso mtua). Os processos mantm alocados recursos enquanto solicitam novos recursos (condio de espera por recurso) Os recursos no podem ser retirados dos processos que os mantm alocados enquanto estes processos no finalizam seu uso (condio de ausncia de preemptividade). Forma-se uma cadeia circular de processos, onde cada processo solicita um recurso alocado pelo prximo processo na cadeia (condio de espera circular).
41

tratamento dos bloqueios perptuos,


Ignorar o problema (algoritmo da avestruz) Deteco e recuperao dos deadlocks Preveno dinmica Preveno estrutural

42

Recuperao de deadlocks
Recuperao atravs de preempo Recuperao atravs de operaes de rollback Recuperao atravss de eliminao de processos

43

Preveno de deadlocks
Um processo s pode solicitar um recurso se liberar o recurso que detm. Um processo que tm negado o pedido de recurso adicional deve liberar o recursos que atualmente detm. Se a solicitao de recursos ocorrer em ordem linear ascendente, a espera circular no consegue se formar.
44

Threads (processos leves)


um fluxo de controle dentro de um processo. Um processo com multithreads contm diversos fluxos de controle diferentes dentro do mesmo espao de endereamento. Em sistemas operacionais tradicionais, cada processo tem um espao de endereamento e um nico thread de controle. Frequentemente desejvel ter mltiplos threads de controle no mesmo espao de endereamento executando quase que em paralelo (a CPU altera rapidamente entre os threads), como se eles fossem processos separados (exceto para espaos de endereamento compartilhados).
45

Processos thread e multithreads


Um processo tradicional tem um nico thread de controle. Se o processo possui mltiplos threads de controle, ele pode realizar mais do que uma tarefa a cada momento.

46

Vantagens dos Multithreads


Permite que mltiplas execues ocorram no mesmo ambiente do processo com um grau maior de independncia uma da outra. As vantagens da gerao de multithreads incluem o aumento da capacidade de respostas para o usurio, o comportamento de recursos dentro do processo, economia e a habilidade de tirar vantagem de arquiteturas com multiprocessadores. No h proteo entre multithreads, pois, eles devem cooperarem entre si. Em muitos sistemas criar um thread cem vezes mais rpido do que criar um processo [Tanenbaum,pg.63].
47

Estrutura do thread
Contador de programa que mantm o controle de qual instruo ele deve executar em seguida. Registradores que contm suas variveis atuais de trabalho Pilha que traz a histria de execuo, com uma estrutura para cada procedimento chamado, mas ainda no retornado.

48

Processo com chamadas a duas subrotinas assncronas

Neste processo os trs threads so executados concorrentemente.


49

Exerccio de Fixao
Defina o conceito de processo. Por que o conceito de processo to importante no projeto de sistemas multiprogramveis? Quais partes compem um processo? Comente cada uma delas. Defina os cinco estados possveis de um processo, incluindo o inicial e o final. D um exemplo que apresente todas as mudanas de estado de um processo, juntamente com o evento associado a cada mudana. Quais as principais funes do nucleo de um sistema operacional o que e quais as vantagens dos processos paralelos?
50

Exerccio de Fixao
Os processos paralelos so classificados como Independentes, concorrentes e cooperantes, explique cada um deles. Quais os componentes que definem a estrutura de um processo? O que PCB e qual a sua funo para o sistema operacional? Descreva com detalhes sobre funo do Escalonador. Diferencie processos multithreads, subprocessos e processos independentes. Quais os quatros benefcios da programao com multithreads?
51

Common questions

Com tecnologia de IA

As estratégias de recuperação de deadlocks incluem a preempção de recursos, rollback de operações e eliminação de processos. Para prevenção, abordagens incluem a proibição da retenção e solicitação simultânea de recursos; outra técnica impede a formação de espera circular solicitando recursos em ordem linear ascendente . Ignorar o deadlock é uma tática conhecida como algoritmo da avestruz, usada em cenários onde a ocorrência de deadlocks é pouco provável ou seu impacto é mínimo .

Processos independentes não possuem vínculo com o processo criador, o que os torna adequados para implementar concorrência sem dependências hierárquicas. Já os subprocessos são criados dentro de uma estrutura hierárquica onde o processo criador é o processo pai e o novo processo é chamado de subprocesso, ou processo filho. A existência de subprocessos depende do processo pai, e eles são automaticamente eliminados quando o processo pai deixa de existir .

A falta de recursos, como áreas de disco insuficientes, pode interromper a execução de um processo com sucesso. O sistema operacional pode interromper a execução de processos que ultrapassam limites de recursos e reavaliar a alocação de recursos para dar suporte às necessidades dos processos ativos .

A utilização de multithreads permite múltiplas execuções no mesmo ambiente de processo, aumentando a capacidade de resposta ao usuário e tirando vantagem de arquiteturas de multiprocessadores. Cada thread compartilha o mesmo espaço de endereçamento, permitindo uma execução mais eficiente, pois é mais rápido criar um thread do que um novo processo . No entanto, isso requer que subsistemas cooperem, visto que não há proteção entre multithreads .

Entre os três estados básicos - Execução, Pronto e Bloqueado - há quatro transições: Despachar (do estado Pronto para Execução), Esgotamento (do estado Execução de volta para Pronto), Bloqueio (do estado Execução para Bloqueado devido a uma operação de E/S ou outro evento) e Reativar (do estado Bloqueado para Pronto quando o evento ou recurso esperado se concretiza).

O escalonador coordena a utilização do processador entre os processos, dividindo o tempo de processamento de forma que cada processo tenha uma oportunidade justa de uso. Utiliza um temporizador para disparar interrupções regulares que sinalizam a necessidade de mudança de contexto entre processos, assegurando que recursos do sistema sejam atribuídos de maneira eficiente .

O Process Control Block (PCB) é crucial para o controle de processos, pois o sistema operacional usa o PCB para manter todas as informações sobre o contexto de hardware, contexto de software e espaço de endereçamento de cada processo. Normalmente, o PCB armazena informações como a identificação do processo (PID), estado, prioridade, ponteiro para processos pai e filho, limites de memória, estatísticas de uso de recursos, e cópia do conteúdo dos registradores .

Os três principais componentes que definem a estrutura de um processo são o contexto de hardware, o contexto de software e o espaço de endereçamento. O contexto de hardware armazena informações nos registradores do processador durante a execução de um processo . O contexto de software especifica características e limites dos recursos que podem ser alocados pelo processo, como o número máximo de arquivos abertos e prioridade de execução . O espaço de endereçamento é a área de memória onde as instruções e dados do programa são armazenados, garantindo que cada processo possua um espaço próprio e protegido .

Processos seqüenciais ocorrem um de cada vez em forma de seqüência de eventos, utilizando todos os recursos computacionais de maneira exclusiva e levando a alta ociosidade. Em contrapartida, processos paralelos acontecem simultaneamente, competindo pelo uso de determinados recursos, levando o sistema operacional a decidir a ordem de uso desses recursos .

No ambiente multiprocessador, além da concorrência pelo uso do processador, os processos também são executados simultaneamente em diferentes processadores. O sistema operacional gerencia esta operação coordenando o uso do processador, memória principal e dispositivos de E/S. Ele deve garantir que cada processo seja devidamente alocado aos recursos necessários, de forma que a execução seja eficiente e sem conflitos .

Você também pode gostar