SISTEMAS OPERACIONAIS
Conteúdo Introdução ao S.O Gerenciamento de processos. Gerenciamento de memória. Dispositivos de Entrada/Saída. Sistemas de arquivos.
Gerenciamento de processos
Processos Um processo é tudo aquilo que o processador executa. E a entidade pela qual a utilização da memória de um programa, tempo de processador e recursos de E/S podem ser gerenciados e monitorados pelo sistema operacional. O processo pode ser visto como a abstração de um programa em execução.
Processos Exemplo João vai fazer um bolo. Ele vai utilizar uma receita para saber quais ingredientes e saber como preparar tudo. Quem é o processador? Quem é o programa? Quem é o processo?
Processos Todo software executável em um computador moderno, até mesmo o sistema operacional, é organizado em processos. Os sistemas atuais permitem ao usuário a chaveamento de vários processos. Esse chaveamento nos dá a sensação de que os programas são executados paralelamente.
Troca de processos Como funciona a troca de processos? Salvar o conteúdo atual dos registradores da CPU referentes a um processo que esta deixando o processador. Carregar os registradores com o conteúdo do processo que esta ganhando a CPU.
Troca de processos
Processos Principais eventos que levam à criação de processos inicialização do sistema execução de chamada ao sistema de criação de processos solicitação do usuário para criar um novo processo
Processos Condições que levam ao término de processos saída normal (voluntária) saída por erro (voluntária) erro fatal (involuntário) cancelamento por um outro processo (involuntário)
Estados do processo O processador não pode ser ocupado por todos os processos ao mesmo tempo. Existe uma competição entre os processos para entrar em execução. O sistema operacional deve controlar essa competição.
Estados do processo Pronto (aguardando na fila de processos) Execução (esta no processador) Bloqueado (aguardando E/S)
S.O. Noções de processos. Bloco de controle de processo: Representa o processo no sistema operacional, mantendo a informação associada com cada um. Constitui-se de uma área de memória reservada ao processo e que mantêm suas informações, tais como: PID (número identificador do processo) Estado do processo (rodando, bloqueado, etc...) PC (endereço da próxima instrução) Registradores da CPU Informações de gerenciamento de memória (limite, utilizado, etc...) Etc...
S.O. Noções de processos. Bloco de controle de processo:
S.O. Noções de processos. Representação da imagem do processo O processo é representado por uma imagem : Seu segmento de código (o que ele vai fazer) Seu espaço de endereçamento (onde, na memória, ele vai fazer alguma coisa) Seu contexto (o que ele precisa para fazer alguma coisa) Parte da imagem está sob a responsabilidade do usuário; parte dele só é gerenciada em modo protegido (pelo Sis. Operacional)
S.O. Noções de processos. Relacionamento entre processos Sem relacionamento (Caso mais simples): os processos são independentes. Grupo de processos Compartilhamento de recursos Baseados em hierarquia de processos: Um processo pai cria processos filhos; Os filhos podem executar o mesmo código, ou trocá-lo; Obtem-se uma árvore de processos. Implica na definição da semântica de termino de um processo: Só o processo morre; Toda sua descendência morre.
S.O. Noções de processos. Na vida, os processos se separam em duas categorias: Enquanto executam, os processos apresentam dois tipos de comportamento: Ou usam a CPU - Cálculo, operações sobre a memória e/ou registradores Ou fazem Entrada/saída (liberam a CPU) Escrita na tela, entrada teclado, som, vídeo, rede, disco Fala-se de processos CPU-bound e processos I/O- bound Na vida real: difícil definir qual processo é CPU/IO bound!
S.O. Noções de processos. Ciclo de vida troca de estado Os processos evoluem: Criado -> em vida -> morto Durante a vida, passam de uso de CPU e a uso de E/S (e reciprocamente), via chamada de sistema, interrupção, ou por causa de um evento. Ao ser criado, um processo estará pronto para usar a CPU. O que acontece se a CPU não está disponível? O que acontece se processos estão sendo criados simultaneamente? Precisa-se manter uma lista de processos prontos!
S.O. Noções de processos. Ao executar, o processo pode querer fazer E/S: O que acontece se o recurso de E/S está sendo ocupado? É preciso de uma fila de processos bloqueados Após ter executado, o processo passa a ser encerrado. Em resumo: Cinco estados (criado, pronto, executando, bloqueado, encerrado)
S.O. Noções de processos. Estados de processo Criado: processo novo, sem utilizar a cpu ainda. Pronto: Contexto carregado e esperando o uso de cpu Executando: Instrução em uso da cpu pertence ao processo em execução Bloqueado: aguardando evento (E/S, sinal, etc...) Encerrado: processo terminado.
S.O. Noções de processos.
S.O. Noções de processos. Mais um estado : Suspenso Dois problemas principais para gerar os recursos: A CPU é muito mais rápida do que a memória; A memória é de tamanho finito. Precisa-se, então, poupar a memória. Processos bloqueados que estão na memória podem ser transferidos para o disco (swap) até sua E/S ser acabada. Processos prontos podem também ser descarregados para o disco.
S.O. Noções de processos. Mais um estado : Suspenso Chega-se a mais dois estados: Bloqueado > suspenso. Pronto > suspenso.
Subprocessos Uma aplicação pode ser dividida em partes que trabalham concorrentemente. Consiste em particionar o processo gerado para controlar a aplicação (processo pai) em outros subprocessos subordinados a este que são chamados de processos filhos, ou apenas subprocessos
Subprocessos
Subprocessos Conforme aumenta-se a utilização de subprocessos, há um desperdício de tempo para criar e destruir estes. Para resolver este problema, criou-se o conceito de threads.
Threads São consideradas processos mais leves. Enquanto os processos são usados para agrupar recursos, as threads são as entidades escalonadas para a execução na CPU. Um processo possui pelo menos uma thread (linha de controle).
Threads
Exemplo Threads Aplicação: Processador de textos Uso: 3 threads Interação com o usuário (teclado) Formatação de texto Gravando o documento
Exemplo Threads