Escolar Documentos
Profissional Documentos
Cultura Documentos
AULA 05 Processos
Atravs da execuo simultnea de vrios programas, a multiprogramao torna mais eficiente o aproveitamento dos recursos do computador, tais como: tempo do processador, espao de memria, etc. Na realidade a execuo feita de forma concorrente (mquinas monoprocessadas). Em um sistema multiprogramado vrios programas so mantidos na memria ao mesmo tempo. O que acontece em um sistema multiprogramado quando uma chamada de sistema solicitada por algum processo? Basicamente, o escalonador interrompe o processo que executou a chamada de sistema e escolhe outro da fila de apto para utilizar a CPU. Os seguintes conceitos so necessrios para implementar o conceito de multiprogramao: processos, interrupo e proteo entre processos. Nesta nota de aula iremos discutir estes temas e apresentar detalhes sobre as entidades denominadas processos.
Processos
Em sistema operacional conveniente diferenciar um programa de sua execuo. Assim, podemos dizer que: Programa: uma entidade esttica e permanente composto por uma seqncia de instrues: passivo sob o ponto de vista do sistema operacional. Processo: uma entidade dinmica e efmera, que altera seu estado a medida que avana sua execuo. Assim, o processo uma abstrao que representa um programa em execuo. Um processo composto por: programa, dados, contexto (valores).
Ciclos de um processo
So vrias as razes para que um processo seja criado e/ou destrudo. O momento e a forma como isso acontece pode depender do sistema operacional considerado. Por exemplo: Criao de Processos: ? Momento da execuo ? Chamadas de sistemas ? Podem ser associados a uma sesso de trabalho, exemplo: login + senha _ shell (processo)
Sistemas Operacionais Finalizao de Processos: ? Trmino da execuo ? Chamadas de sistemas ? Por outros processos Os processos podem executar programas de usurios ou rotinas de sistema (daemons). Basicamente, os processos apresentam dois ciclos de operao: 1. Ciclo de processador: tempo que ocupa a CPU executando algum programa. 2. Ciclo de entrada e sada: tempo em espera pela concluso de um evento (E/S). O primeiro ciclo sempre de processador, pois para entrar em um ciclo de E/S necessariamente preciso executar pelo menos uma instruo. As trocas de ciclos podem acontecer atravs: 1. Chamada de sistema (CPU ? E/S) 2. Interrupo (CPU ? E/S ou E/S ? CPU) 3. Ocorrncia de evento (E/S ? CPU) Dessa forma, os processos podem ser classificados de acordo com taxa de utilizao da CPU ou E/S em: 1. Processos CPU bound: Ciclo de processador >> ciclo de E/S Exemplo: processo que faz multiplicao de matrizes. 2. Processos I/O bound: Ciclo de E/S >> ciclo de processador Exemplo: processo que faz cpia de arquivos ou um processo de Banco de Dados.
Sistemas Operacionais
Estados de um processo
Inicialmente, aps ser criado o processo necessita entrar em ciclo de processador para comear a execuo das instrues que compem o programa. No entanto, devemos entender que vrios processos so criados e todos iro disputar o uso da CPU. Neste caso, o que o SO deve fazer? ? Criar uma fila com os processos aptos a disputar o uso do processador: Fila de Aptos (ready queue). ? Gerenciar o escalonamento atravs de polticas implementadas pelo SO para que todos possam ser executados.
Sistemas Operacionais
Criao de Processos
Os processos podem ser criados atravs das seguintes aes: ? Inicializao de um programa ? Logon de usurios ? Processo criado para execuo de um determinado servio do SO ? Chamadas de sistemas, como o fork no Linux
Trmino de processos
Os processos podem ser finalizados pelas seguintes aes: ? Final de execuo (normal)
Sistemas Operacionais ? Situaes anormais: Exceder tempo limite de espera, Falta de memria, Erros de proteo (Ex. escrita em arquivo read-only, acesso a reas de memria no autorizadas), Erros aritmticos (Ex. diviso por zero, overflow, underflow) ? Erro em perifricos de E/S ? Execuo de instrues invlidas (Ex. tentativa de executar rea de dados, instrues privilegiadas) ? Interveno do sistema operacional ? Ex. ocorrncia de blocagens (deadlocks) ? Log off de usurios
Modelo de 5 Estados
Este modelo cria novos estados de forma a representar diferentes momentos de execuo dos processos. Estados do diagrama: ? Executando (Running) ? Apto (Ready) ? Bloqueado (Blocked) ? Criao (New) ? Destruio (Exit)
Sistemas Operacionais
Processos suspensos
1. Processador mais rpido que operaes de E/S Possibilidade de todos processos estarem bloqueados esperando por E/S 2. Liberar memria ocupada por estes processos Transferidos para o disco (swap) 3. Estado bloqueado assume duas situaes: Bloqueado com processo em memria Bloqueado com processo no disco 4. Necessidade de novos estados Bloqueado, suspenso (Blocked, suspend) Apto, suspenso (Ready, suspend)
Sistemas Operacionais Solicitao do usurio Comportamento tpico de depuradores Temporizao: Processo deve ter sua interrupo interrompida por um certo perodo de tempo Processo suspende outro processo Ex. Sincronizao
Sistemas Operacionais
Sistemas Operacionais
Proteo de perifricos
Como processos usurios realizam operaes de E/S j que estas so instrues privilegiadas? Ou ainda, como os processos solicitam servios para o SO? Resposta: Atravs de Chamadas de sistema ? Normalmente baseada em interrupes de software ? Aciona a rotina de tratamento de interrupo 1. Identifica servio requisitado 2. Verifica validade dos parmetros 3. Executa o servio 4. Retorna ao processo do usurio
Sistemas Operacionais
Exercicios
1. Defina o conceito de processo e explique quais partes o compe. 2. Como uma aplicao pode implementar concorrncia em um ambiente monothread? 3. Como o SO implementa o conceito de processo? Quais as estruturas de dados indicada para organizar os diversos processos na memria principal? 4. Explique as diferenas entre processos foreground, background, cpu-bound e i/o-bound. D exemplos de cada um. 5. Por que no faz sentido manter a lista de processos bloqueados em ordem de prioridade? 6. Comente sobre as funes do escalonador e do dispatcher. 7. Apresente situaes reais presentes na execuo dos processos que justifiquem cada uma das transies apresentadas no diagrama de estados mais completo dos processos.
Bibliografia
OLIVEIRA, R. S.; CARISSIMI, A. S. e TOSCANI, S. S. Sistemas Operacionais. Sagra Luzzatto, Porto Alegre, 2001. (Cap. 2)
10