210 likes | 316 Views
PRINCÍPIOS DE SISTEMA OPERACIONAL. Um sistema operacional é uma camada de software que atua entre o hardware e os diversos aplicativos existentes em um sistema computacional, executando diversas atividades, de modo a garantir a disponibilidade de recursos entre todos os programas em execução.
E N D
PRINCÍPIOS DE SISTEMA OPERACIONAL Um sistema operacional é uma camada de software que atua entre o hardware e os diversos aplicativos existentes em um sistema computacional, executando diversas atividades, de modo a garantir a disponibilidade de recursos entre todos os programas em execução. Prof. Helder Cleber Almeida Pereira
GERENCIADOR DE PROCESSADOR E PROCESSOS Prof. Helder Cleber Almeida Pereira
GERENCIAMENTO DO PROCESSADOR • Um processo é uma entidade ativa que requer um conjunto de recursos, como processador e registradores especiais, para exercer sua função; • Em se tratando de sistema operacional um processo é um programa em estado e execução; • Um único processador pode ser compartilhado por vários programas ou processos, se, e apenas se, o sistema operacional tiver um critério de escalonamento; • O gerenciador da CPU é a combinação de dois subgerenciadores: um responsável pelo escalonamento de programas e outro, pelo escalonamento de processos. Eles recebem o nome de Escalonador de Programas e Escalonador de Processos; Prof. Helder Cleber Almeida Pereira
GERENCIAMENTO DO PROCESSADOR • O início de cada programa é determinado pelo Escalonador de Programas de acordo com os critérios. Depois que um programa é selecionado para execução, o Escalonador de Processos determina quando deve começar a execução de cada passo, ou conjunto de passos – uma decisão que também obedece a certos critérios; • O escalonador de programas é responsável por encadear os programas para a execução. Os programas dependendo da sua natureza pode exigir mais operações de E/S e outros mais operações de CPU. Por isso é importante que o escalonador de programas ache um equilíbrio; Prof. Helder Cleber Almeida Pereira
GERENCIAMENTO DO PROCESSADOR ESTADOS DE PROGRAMA E PROCESSOS • Á medida que um programa se movimenta pelo sistema, ele está sempre em um de cinco estados diferentes (ou pelo menos três): NOVO, PRONTO, EM EXECUÇÃO, EM ESPERA ou TERMINADO; • Quando um programa é aceito pelo sistema ele é colocado numa fila e encontra no estado NOVO, nesse estado, estão estudando as necessidades de CPU, dispositivos de E/S e etc; • Um programa saí do estado de NOVO para PRONTO, quando está pronto para execução mas espera a CPU; • O estado EM EXECUÇÃO é auto explicativo; • O estado EM ESPERA, significa que um programa não pode continuar porque espera algum recurso específico lhe seja alocado; • o estado TERMINADO - é quando o programa é enviado de volta para o usuário; Prof. Helder Cleber Almeida Pereira
GERENCIAMENTO DO PROCESSADOR BLOCO DE CONTROLE DE PROCESSOS (BCP) • Cada processo no sistema é representado por uma estrutura de dados, denominada Bloco de Controle de Processo (BCP), que funciona a maneira de um passaporte. O BCP contém informações básicas a respeito de um programa: o que ele é, aonde está indo, até onde o seu processamento já foi concluído, onde ele está armazenado e o quanto já foi gasto em termos de utilização de recursos e etc; (BCP) E FILAS • Cada acesso por parte dos processos para cada recurso (cpu, hd, impressão e etc) do sistema computacional, existe uma fila que o processo precisa enfrentar; Prof. Helder Cleber Almeida Pereira
GERENCIAMENTO DO PROCESSADOR (BCP) E FILAS • Em um ambiente de multitarefa, o número de processos a executar normalmente excede a capacidade do sistema para processá-los simultaneamente. Antes de escaloná-los, o sistema operacional precisa resolver três limitações: (1) o número de recursos (unidades de disco, impressoras, unidades de fita, etc); (2) alguns recursos, uma vez alocados, não podem ser mais compartilhados por outros programas (como as impressoras); e (3) alguns recursos necessitam da intervenção de um operador, ou seja, não podem ser realocados automaticamente entre um programa e outro (como a unidade de fita); Prof. Helder Cleber Almeida Pereira
GERENCIAMENTO DO PROCESSADOR CRITÉRIOS PARA ESCALONAMENTO DE PROCESSOS • As filas utilizam os BCPs para monitorar os programas da mesma maneira que um oficial de imigração utiliza passaportes para monitorar visitantes estrangeiros. O BCP contém todas as informações a respeito do programa que o sistema operacional necessita para processá-lo. À medida que o programa transita pelo sistema, seu progresso é registrado no BCP ; Prof. Helder Cleber Almeida Pereira
GERENCIAMENTO DO PROCESSADOR CRITÉRIOS PARA ESCALONAMENTO DE PROCESSOS • Devido a processos que ocupam por muito tempo a CPU, o Escalonador de Processos, muitas vezes utiliza um mecanismo de cronometragem que periodicamente interrompe processos em execução quando um intervalo de tempo predeterminado se esgota. Quando isso acontece o escalonador suspende toda a atividade do programa em execução naquele momento e recoloca-o na fila PRONTO para que possa ser retomando mais tarde. A CPU é então alocada a um outro programa, o qual fica em execução até que uma das três coisas aconteça: seu tempo se esgota, um comando de E/S é emitido ou o programa termina. Em seguida o programa é transferido para a fila de PRONTO para fila EM ESPERA ou para fila TERMINADO, respectivamente. Em um ambiente de multiprogramação uma solicitação de E/S é chamada de espera natural (ela permite que o processador seja alocado a um outro programa); Prof. Helder Cleber Almeida Pereira
GERENCIAMENTO DO PROCESSADOR CRITÉRIOS PARA ESCALONAMENTO DE PROCESSOS • Uma estratégia de escalonamento que interrompe a execução de um programa e transfere a CPU para outro recebe o nome de critério preemptivo de escalonamento (é amplamente utilizado nos ambientes de tempo compartilhado). Naturalmente, a alternativa é um critério não-preemptivo de escalonamento, o qual não permite interrupções externas a tarefa. Nesse caso, quando um programa se apodera da CPU e começa a ser executado, ele permanece ininterruptamente no estado EM EXECUÇÃO até que um comando de E/S (espera natural) seja emitido ou que o programa termine (execução feita aos laços infinitos, os quais são interrompidos por ambos os critérios, preemptivos e não-preemptivos); Prof. Helder Cleber Almeida Pereira
GERENCIAMENTO DO PROCESSADOR ALGORÍTMOS DE ESCALONAMENTO DE PROCESSOS • Primeiro a chegar, primeiro a ser atendido (PCPA) – é um algorítmo de escalonamento não preemptivo, esse algorítmo funciona bem para sistemas operacionais em lotes, mas é inaceitável para sistemas interativos. Nesse esquema cada programa é executada de ponta a ponta, ou seja os programas são executados literalmente de maneira seqüencial; • Programa menor primeiro (MP) – é um algorítmo de escalonamento não preemptivo, que lida com os programas de acordo com a extensão dos seus ciclos de CPU. Não pode ser implementado em sistemas interativos; • Escalonamento por prioridade – é um algorítmo de escalonamento não preemptivo, que dá preferência de execução a uns programas em relação a outros. É um dos algorítmos de escalonamento mais comuns sem sistemas em lotes. A prioridade pode ser atribuída por um administrador ou por um gerenciador de CPU; Prof. Helder Cleber Almeida Pereira
GERENCIAMENTO DO PROCESSADOR ALGORÍTMOS DE ESCALONAMENTO DE PROCESSOS • Menor tempo restante (MRT) – é a versão preemptiva do algorítmo MP. Esse algorítmo não pode ser implementado em sistemas interativos, pois requer conhecimento prévio do tempo de uso da CPU; • Rodízio (Round – Robin) – é um algoritmo preemptivo de escalonamento de processos amplamente utilizado nos sistemas interativos, já que é fácil de se implementar e não se baseia nas características dos programas, mas em uma fatia de tempo reservada a cada programa de forma a garantir que a CPU seja eqüitativamente compartilhada por todos os processos ativos, e não monopolizada por um único programa. Essa fatia de tempo é chamada quantum de tempo; Prof. Helder Cleber Almeida Pereira
GERENCIAMENTO DO PROCESSADOR ALGORÍTMOS DE ESCALONAMENTO DE PROCESSOS - RODÍZIO • Os programas são colocadas na fila PRONTO de acordo com o esquema primeiro a chegar, primeiro a ser atendido. Em seguida, o Escalonador de Processos seleciona o primeiro programa na fila, ajusta o timer de acordo como quantum de tempo e aloca a CPU ao programa. Se o processamento não tiver terminado antes de expirar o quantum de tempo, o programa é preterido e encadeado ao final da fila PRONTO, e suas informações são armazenadas no BCP; • Quando o ciclo de CPU de um programa é menor do que o quantum de tempo, uma de duas ações podem ocorrer: (1) se for o último ciclo de CPU do programa e o processamento tiver terminado, todos os recursos alocados a ele são liberados e o programa terminado volta ao usuário, ou (2) se o ciclo de CPU foi interrompido por uma requisição de E/S, as devidas informações são armazenadas no BCP e o programa é encadeado ao final da fila de E/S. Mais tarde, quando a requisição de E/S já tiver sido atendida, o programa retorna para o final da fila PRONTO e espera pela alocação da CPU ; Prof. Helder Cleber Almeida Pereira
GERENCIAMENTO DO PROCESSADOR ALGORÍTMOS DE ESCALONAMENTO DE PROCESSOS - RODÍZIO • A eficiência do rodízio depende do tamanho do quantum de tempo em relação ao tamanho médio dos ciclos de CPU. Se o quantum for grande demais, isto é, se for maior do que a maioria dos ciclos da CPU, o algoritmo se reduz ao esquema PCPA. Se for pequeno demais, a quantidade de mudança de contexto atrasa o processamento dos programas e a sobrecarga é significativamente majorada; Prof. Helder Cleber Almeida Pereira
GERENCIAMENTO DE PROCESSOS POUCOS RECURSOS MUITO PROCESSOS • Na ausência de uma sincronização de processos, duas situações extremas podem acontecer: impasse(deadlock) e abandono; • Um impasse é mais letal que o abandono, pois pode derrubar o sistema inteiro; Prof. Helder Cleber Almeida Pereira
R1 R1 P –processo R - recurso P1 P1 P2 P1 R1 R2 GERENCIAMENTO DE PROCESSOS Exemplificação de um impasse (deadlock) • P1 requisita R1 e conseque; Quando alocou R1, P1 requisita também R2, só que R2 já está alocado a P2, ao mesmo tempo P2 requer R1, que já está alocado a P1. • O deadlock ocorre com um conjunto de processos e recursos não-preemptíveis, onde um ou mais processos desse conjunto está aguardando a liberação de um recurso por um outro processo que, por sua vez, aguarda a liberação de outro recurso alocado ou dependente do primeiro processo. Prof. Helder Cleber Almeida Pereira
IMPASSE Um impasse normalmente ocorre quando recursos não-passíveis de compartilhamento ou preempção (como arquivos, impressoras ou unidades de fita) são alocados a programas que eventualmente, solicitam outros recursos não-passíveis de compartilhamento ou preempção monopolizados por outros programas. Os impasses todavia não se limitam a arquivos, impressoras e unidades de fita. Também pode acontecer com recursos compartilháveis, como discos e base de dados ; Prof. Helder Cleber Almeida Pereira
GERENCIAMENTO DE PROCESSOS Exemplificação de um impasse P1 requisita e obtém a unidade de fita; P2 requisita e obtém a impressora; P3 requisita e obtém a plotadora; P1 requisita a impressora, mas ela está bloqueada; P2 requisita a plotadora, mas ele está bloqueada; P3 requisita a unidade de fita, mas ela está bloqueada; Como nos exemplos anteriores, nenhum dos três programas pode continuar porque todos estão à espera de um dispositivo bloqueado . Prof. Helder Cleber Almeida Pereira
INFORMAÇÃO ADICIONAL Thread – técnica onde um processo pode efetuar varias operações concorrentemente ou simultaneamente através das chamadas "Linhas de execução". Neste caso, o processo é dividido no numero de Threads sem que haja necessidade de ser criado um outro.; Threads compartilham o processador da mesma maneira que um processo. Por exemplo, enquanto uma Thread espera por uma operação de I/O, outra Thread pode ser executada. Cada Thread tem seu próprio conjunto de registradores mas todas elas compartilham o mesmo espaço de endereçamento pois lembre-se que o processo é um só. Prof. Helder Cleber Almeida Pereira
PALAVRAS CHAVES • PROCESSO • ESCALONAMENTO • ESCALONADOR DE PROGRAMAS X ESCALONADOR DE PROCESSOS • ESTADOS DE UM PROCESSO: NOVO, PRONTO, EM EXECUÇÃO, EM ESPERA, TERMINADO • BCP • FILAS • PREEMPTIVO • ALGORÍTMOS DE ESCALONAMENTO: PCPA, MP, ESCALONAMENTO DE PRIORIDADE, MTR, RODÍZIO • QUANTUM • IMPASSE • ABANDONO • DEADLOCK • THREADS Prof. Helder Cleber Almeida Pereira