Sistemas Operacionais - 04 - Processos

Embed Size (px)

DESCRIPTION

Sistemas Operacionais - 04 - Processos

Citation preview

  • 1. Modelo de Processos Gerenciamento Sistemas Operacionais Prof. Mauro Duarte

2. 29/04/14 Se o computador possui apenas um processador, ento teremos um pseudoparalelismo: Introduo: 3. 29/04/14 Teremos um paralelismo real quanto o computador possuir mais de um processador: 4. 29/04/14 Modelo de Processos 5. 29/04/14 Modelo de processos: Todos os programas rodando no computador so organizados como um conjunto de processos sequnciais O SO tambm , em geral, organizado como um conjunto de processos (Linux) Cada processo possui um contexto, necessrio correta execuo do processo e que contm: O contador de programa (PC), que controla o fluxo de informaes do processo, e outros registradores do CPU Outras informaes, como o mapeamento do espao de endereamento 6. 29/04/14 Modelo de processos: O modelo de processo facilita o entendimento de multiprogramao: O modelo de processos sequncias, e o fato de os registradores do processador serem salvos no contexto do processo, nos permite visualizar cada processo do sistema rodando exclusivamente em um processador virtual, cujos valores dos registradores so iguais aos valores salvos no contexto do processo. 7. 29/04/14 Modelo de processos: A distino entre um programa e um processo: Um programa um conjunto de instrues para executar uma tarefa Um processo uma atividade em execuo, e possui um programa, uma entrada, uma sada, um contexto e um estado 8. 29/04/14 Criao de Processos 9. 29/04/14 Criao de processos: Um SO deve garantir a existncia de todos os processos necessrios s aplicaes executadas pelos usurios. Com isso, o SO deve fornecer um meio para a criao e o trmino de um processo. 10. 29/04/14 Em geral, um processo pode ser criado em decorrncia de um dos seguinte eventos: Quando o SO iniciado Quando um processo cria outro processo Quando um usurio cria um novo processo para executar um programa Quando um usurio submete um trabalho a um sistema em lote, sendo que o processo executar esse trabalho Criao de processos: 11. 29/04/14 Os processos criados podem ser de dois tipos: Em primeiro plano (foreground): em geral interage com o usurio para poder executar sua tarefa Em segundo plano (background): no interage com o usurio mas pode executar sua tarefa Um daemon um processo em background que recebe requisies de outros processos para tratar de suas tarefas especficas. Criao de processos: 12. 29/04/14 Quando um usurio estiver usando o interpretador de comandos e digitar um comando: Os comandos sem & no final sero executados em foreground Os comando com & no final sero executados em background Criao de processos: 13. 29/04/14 Vrios processos (em geral, daemons) so criados ao inicializar o SO: 14. 29/04/14 A criao de processos por outro processo: Facilita a implementao de uma tarefa que pode ser dividida em tarefas menores. Neste caso, um processo ser criado para executar cada uma das tarefas menores. Em geral, estes processos devero interagir uns com os outros para que a tarefa original seja executada. Criao de processos: 15. 29/04/14 Nos SO's que seguem o padro POSIX, um processo cria outro por meio de uma chamada fork ao sistema: Cria um processo filho que uma cpia exata do processo pai O processo filho dever executar uma outra chamada ao sistema, a execve, para poder executar um outro programa A chamada ao sistema retorna, ao processo pai, o PID do filho, e ao processo filho, o valor 0 (zero) Criao de processos: 16. 29/04/14 Trmino de Processos 17. 29/04/14 Trmino voluntrio: Um processo dever existir somente enquanto estiver executando a tarefa implementada por um programa. Os seguintes eventos podem causar o trmino de um processo: Quando terminou voluntariamente sua execuo. Quando foi terminado pelo SO. Quando foi terminado por um outro processo. Quando um processo terminal voluntariamente, ou executou a sua tarefa, ou no conseguiu execut-la devido a um erro. 18. 29/04/14 Nos sistemas que seguem o padro POSIX, a chamada ao sistema para terminar um processo e a exit: A chamada possui um parmetro que o processo pode usar para informar se a tarefa foi executada com sucesso. Por exemplo a chamada exit(0) informa ao interpretador que a tarefa foi executada com sucesso. Chamada exit: 19. 29/04/14 O segundo caso ocorre corre quanto quando a execuo de um processo gera um erro reportado pelo processador do computador, como: Um erro aritmtico, como uma diviso por zero. Uma tentativa de executar uma instruo privilegiada, que somente pode ser executada no modo supervisor. Uma tentativa de acessar uma regio da memria fora do espao de endereamento do processo. Trmino pelo SO: 20. 29/04/14 Ao invs de ser terminado quando o primeiro evento ocorrer, o processo pode usar o mecanismo de sinais do sistema operacional: O sistema operacional envia um sinal especfico ao processo para tratar cada um dos erros. O processo devera definir um procedimento para cada um dos sinais que o processo deseja tratar. Os erros no tratados pelo processo iro gerar uma ao padro que a de determinar a execuo do processo. Tratamento de sinais: 21. 29/04/14 Trmino por parte de outro processo: O ltimo evento que termina um processo gerado pela chamada ao sistema kill, executada por algum outro processo: O processo que executou a chamada dever ter autorizao para terminar o processo. A tarefa que o processo estava executando no ser terminada corretamente. Em geral, quando um processo termina sua execuo, todos os seus descendentes tambm terminal sua execuo. 22. 29/04/14 Para saber mais: pgs 50-56