Anda di halaman 1dari 14

Sistemas Operacionais

Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto

Gerencia de Processos

4.1 Introduo aos Processos


Gerenciamento de Processos Processo -Definio: uma abstrao do sistema operacional para representar as informaes necessrias na execuo de um programa (definio tradicional do UNIX); - um programa em execuo;

Conceitos relacionados:

programa - esttico; job - programa batch em execuo; tarefa (task) - unidade atmica de computao; thread - processo leve (compartilha cdigo). Por que se usar processo ?
Simplicidade: permite vrias operaes independentes em um sistema; permite a decomposio de um processo em muitos; Velocidade: se um processo bloqueia executa outro permitindo mais eficincia ao processador Segurana: permite associar diferentes direitos para cada processos

4.2 Alguns Tipos de Processo

Interativos (Foreground): processos que necessitam de interao com o usurio; Batch / Segundo Plano (Background - &): processos que no necessitam de interao com o usurio; Daemons: Processos que executam constantemente em segundo plano e esto sempre disponveis; Normalmente realizam servios do sistema.

4.3 Execuo de Processos


possvel a execuo de vrios processos tanto em monoprocessadores como multiprocessadores; Pseudoparalelismo (utilizando o time-sharing): -permite que sistemas monoprocessados executem vrios processos em um determinado intervalo de tempo; -UCP ao longo do tempo trabalha com vrios processos diferentes; - Em determinado instante apenas um processo detm a UCP; - Ocorre uma rpida comutao entre processos.

4.4 Paralelismo & Escalonador

Paralelismo: Em sistemas multiprocessados processos executam simultaneamente;mesmo assim, normalmente empregado o time-sharing para permitir um uso mais eficiente dos processadores. Escalonador Decide a ordem e o tempo da execuo de cada processo; Permite que vrios processos compartilhem uma UCP; Existem vrios algoritmos; Deve priorizar processos com muita E/S (I/O-bound) sobre processos com muito processamento (CPU-bound).

4.5 Implementao de Processos


Tabela de Processos: Armazena informaes que variam de um processo para outro; Existe uma entrada na tabela por processo; Cada entrada chamada de PCB (Process Control Block) ou bloco de controle de processo; Informaes contidas na PCB: estado do processo: determina como o processo se encontra no sistema. Um dentre os cinco estados apresentados (varia de um SO para outro); contador de programas (PC); (Contador de programa um registrador de uma Unidade Central de Processamento que indica qual a posio atual na seqncia de execuo de um computador. Contador de programa um registrador de uma Unidade Central de Processamento que indica qual a posio atual na seqncia de execuo de um computador. ) Registradores da UCP: outros registradores que no o PC; Informaes para escalonamento; Informaes para gerncia de memria; Informaes para contabilizao; status de E/S: arquivos em uso, dispositivos utilizados, etc.

Criao do Processo

MS-DOS: criao ocorre na carga do programa, processo suspenso quando ocorre uma interrupo (monoprogramado); UNIX: criao feita atravs da chamada de sistema fork: Processo criado chamado de filho (children); Origina uma hierarquia de processos (tree); Duas possibilidades em termos de execuo:

processo pai executa concorrentemente ao filho; processo pai espera at o(s) filho(s) terminarem, usa chamada de sistema wait endereamento: processo filho uma duplicao do processo pai; processo filho tem um programa carregado nele utilizando a chamada de sistema execve.

Duas possibilidades em termos de espao de


Terminao
Executa ltima instruo ou chama exit; Pode enviar dados para o pai via wait; Um processo pode causar a terminao de outro (via chamada de sistemas abort). Normalmente somente o pai a utiliza; Razes para o processo filho ser terminado: processo filho excedeu recursos alocados; tarefa solicitada ao processo filho no mais necessria; No UNIX caso o processo pai termine, todos os processos filhos so automaticamente encerrados.

Comunicao de processos
Fundamentos Muitas vezes, podemos ter processos trabalhando juntos na soluo de um problema e, portanto, Utilizando recursos comuns, como uma posio de memria comum ou um arquivo onde cada Processo pode ler e escrever. O que pode acontecer na prtica? Situao Spool de impresso (fila de documentos a serem impressos) Variveis compartilhadas: ? in ? aponta para a prxima entrada livre no spool onde o prximo arquivo a ser impresso ser armazenado ? out ? aponta para o nome do prximo arquivo a ser impresso. Um processo 1 l o valor de in (por exemplo 2) e interrompido. Um outro processo 2 vai usar o spool e tambm l o valor de in = 2, envia seu arquivo para impresso e segue com sua execuo. Antes de o arquivo ser impresso, o controle retorna para o processo 1 que submete seu arquivo a ser impresso para a posio que ele tinha lido de in (na ocasio 2). Assim, este ltimo arquivo sobrescreve a anterior enviado pelo processo 2.

Regies Crticas

O problema : como evitar as condies de corrida? A questo chave para evitar problemas em situaes onde existe compartilhamento de recursos (memria, arquivo, etc) evitar que mais de um processo acesse o dado compartilhado ao mesmo tempo => geralmente, consideraremos 2 processos apenas. Excluso mtua de execuo: uma forma encontrada para se ter certeza de que se um processo estiver usando uma varivel ou um arquivo compartilhados, os demais sero impedidos de fazer a mesma coisa. Regio crtica ou seo crtica: a parte do programa cujo processamento pode levar ocorrncia de condies de corrida. Apesar dessa soluo aparentar ser suficiente, ela acaba dificultando a cooperao de processos paralelos que utilizem dados compartilhados na soluo de um problema. Assim, devemos fazer algumas outras consideraes: 1. Dois ou mais processos no podem estar simultaneamente dentro de suas regies crticas correspondentes. 2. Nenhuma considerao pode ser feita a respeito da velocidade relativa dos processos, ou a respeito do nmero de processadores do sistema. 3.Nenhum processo que esteja rodando fora de sua regio crtica pode bloquear a execuo de outro processo. 4. Nenhum processo pode ser obrigado a esperar indefinidamente para entrar em sua regio crtica.

Sincronizao dos Processos


A sincronizao dos processos o mecanismo que controla a ordem de execuo das tarefas T0 e T1 . Cooperao A cooperao existente entre o processo revela-se quando, para que um processo , termine alguma tarefa primeiro. A cooperao entre as tarefas A e B necessrio, quando B precisa aguardar que A conclua alguma atividade especfica antes que ela prossiga a execuo [SEB 00]. o caso de uma linha de montagem num ambiente fabril: para que o segundo funcionrio possa executar o seu trabalho tem de esperar que o seu colega faa a parte que lhe compete. Uma forma de sincronizao por cooperao usado para representar este tipo de sincronizao, o problema chamado produtor - consumidor que originou no desenvolvimento de sistemas operacionais. Onde uma unidade de programa produz algum valor de dados ou de recurso e a outra usa[SEB 00]. Os dados produzidos normalmente so colocados em um buffer "memria temporria" pela unidade produtora e removido pela unidade consumidora.

Competio

Ocorre quando quando ambas requerem o uso de algum recurso que no pode ser usado simultaneamente. Especificamente, se a tarefa A precisar acessar a localizao de um dado compartilhado x enquanto B est acessando x, a tarefa A deve guardar que a B conclua seu processamento em x, independentemente de qual seja esse processamento. Por exemplo, consideremos um processo P1 que acessa ao disco para leitura. Terminado o seu tempo de CPU, ele suspende a sua atividade, dando lugar a um outro processo, P2, que necessita ir escrever em outra posio. Quando a P1, volta atribudo um novo tempo de processador, e este vai recomear a sua leitura no local onde se encontra a cabea. Dado que este foi movimentado por P2, os dados que sero lidos, podero no ser os corretos. Este situao s poderia ser resolvida se o disco fosse reservado para cada processo at que este o libertasse e terminasse sua atuao. Este cenrio retrata um caso particular da competio por um recurso, Excluso Mtua ou, simplesmente, Mutex, onde apenas se pode permitir o acesso individual ao recurso em questo. Para que a competio por um recurso decorra sem qualquer problema so, normalmente, usados semforos que permitem, ou no, o acesso de um ou mais processos a seo crtica. A sincronizao por competio impede que duas tarefas acessem uma estrutura de dados compartilhados exatamente ao mesmo tempo [SEB 00]. Para proporcionar a sincronizao por competio, deve ser garantido acesso mutuamente exclusivo aos dados compartilhados. Durante a execuo de um programa, pode ser necessrio que mais de um processo acesse o mesmo recurso. No entanto, se esse acesso for simultneo, e a concorrncia, no for bem controlada, pode conduzir a inconsistncias.

Comunicao entre processos


O processo de Comunicao ocorre quando o emissor (ou codificador) emite uma mensagem (ou sinal) ao receptor (ou decodificador), atravs de um canal (ou meio). O receptor interpretar a mensagem que pode ter chegado at ele com algum tipo de barreira (rudo, bloqueio, filtragem) e, a partir da, dar o feedback ou resposta, completando o processo de comunicao.

Anda mungkin juga menyukai