Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
so definicao controle do processamento, gerenciamento de memoria, dispositivos de entrada e saida... efetua o gerenciamento dos componentes fisicos do computador, também como uma base para os programas aplicativos. exemplo salvar um pequeno texto monoprogramáveis / monotarefa --- um programa executado por vez somente um usuario multiprogramáveis / multitarefa --- vários programas em execucao ao mesmo tempo, eles dividem cpu, memoria, entrada eles podem utilizar um usuário ou mais aula 2 sistemas multiprogramáveis / multitarefa sistemas batch --- nao tem interação do usuario, vc agenda e ele executa. ex. backup sistemas de tempo compartilhado --- mainframe, varios terminais que efetuam o acesso... o processamento é realizado no computador central, ele possui um tempo de processamento e é dividido p os terminais... sistemas de tempo real --- os recursos tem suas prioridades, se chega um processo com prioridade maior, ele para a execução atual e inicia o novo... ele é mto rigido na execução das prioridades. ex: monitor cardíaco, sistemas aéreos. sistemas com múltiplos processadores: sistemas fortemente acoplados -- unico computador, 2 ou mais cpu's compatilhando a memoria principal + E/S sistemas simétricos - unico computador, 2 ou mais cpu's compatilhando a memoria principal + E/S sistemas assimétricos - unico computador, 1 cpu's master(gerenciamento dos recursos com os demais processadores) e a slave sistemas fracamente acoplados -- computadores em rede, exemplo... cada um tem seu proprio cpu, memoria, e/s sistemas operacionais de rede - visao real de onde estao os recursos (varios recursos) sistemas operacionais distribuidos - arquivos na nuvem (voce nao sabe realmente onde o arquivo se encontra na internet) interrupções: sistema operacional funciona basicamente com interrupções exemplo: conectar smartphone no computador acontece o tempo todo executando um programa de planilha, conecta pendrive, placa e/s envia uma interrupçaõ para o processador processador para execucao do programa e desvia para tratamento de interrupcao rotina de tratamento é executada, atualizando estruturas do sistema operacional e exibindo uma mensagem ao usuário informando da conexao do pen-drive finalizando a rotina de tratamento da interrupção do processador retorna a execução do programa interrompido anteriormente é tao rapido que nao percebe a interrupção... conceitos de concorrência... sistema monoprogramável executa - espera - executa - espera se executar o segundo programa, vc para o primeiro... sistema multiprogramável programa A - executa - espera - executa - espera programa B - espera - executa - espera - executa compartilhamento de cpu, memoria entre os programa que estão sendo executados no processador. sistema operacional é feito de rotinas modo usuario e modo kernel kernel é um conjunto de rotinas do so que acessa o processador modo de acesso usuario e modo kernel modo kernel tratamento de interrupções criar e eliminar processsos escalonamento gerencimaneto de memoria e/s system calls é um intermediario entre as aplicações do usuario e o sistema operacional ex: api do windows, acessar recursos do so (windows) dispositivo de entrada e saída exemplo programa de usuario acessa os registradores altera modo do processador p kernel rotina do sistema altera modo do processador p usuario restaura contexto dos registradores procesos processo é uma instancia de um programa em execução. é a unidade de carga e alocação de uma tarefa. programa - estático processo - dinâmico pseudoparalelismo - o compartilhamento da cpu é feito através de uma rápida alternância entre de um processo e outro, executando cada um num rápido intervalo de tempo. paralelismo real - hardware dos sistemas multiprocessadorees, ou seja, possuem duas ou mais cpus que compartilham a mesma memória física. vantagens dos processos - simplicidade: um processo pode ser decomposto em vários outros processos permitindo que se realizem várias operações independentes em um sistema. ex: game --- som --- fundo imagem --- personagem (3 processos) velocidade: se um processo esta em espera, por exemplo, aguardando alguma solicitação a um dispositivo de entrada e saída, este processo é substituído por outro. segurança: cada processo pode estar associado a um determinado direito. processos podem ser : classificações interativo (foreground) : sao processos que necessitam de uma interação com o usuário. ex: excel, word, internet explorer batch (background): sao processo que realizam processamento de dados de entrada produzindo um conjunto de dados de saída sem que haja a internveção do usuário. ex: backup daemons: sao processos carregados pelo sistema operacional durante sua execucao e permanece em execucao até que o sistema seja finalizado. ex: servicos do windows blocos de controle de processos (pcbs) ponteiros nome do processo estado do processo prioridade do processo registradores limites de memória lista de arquivos abertos. processos contexto: estado de um processo em um determinado instante... contexto de hardware contexto de software espaço de endereçamento contexto de hardware: processo sendo executado... guarda as as informacoes nos registradores do processador no processo, para quando voltar ele saber aonde voltar... pega os registradores gerais e guarda no contexto de hardware (PC, SP) contexto de software nome, pid, uid, quotas e privilégio espaço de endereçamento quando o processo é carregado na memoria, é registrado em qual espaço ele está armazenado estados de um processo pronto em execucao em espera novo - pronto pronto - em execucao em execucao - pronto em execucao - em espera em espera - pronto em execucao - terminado processos cpu-bound - processos que utilizam muito processador orientados a cpu processos i/o-bound - processos que realizam muita e/s (pen-drive, disco) Thread fluxo de execucao de um processo monothread --- único fluxo de execução multithreading 1 processo ---- internamente várias threads cada thread tem seu contexto de hardware, 1 de software e espaco de endereçamento (compartilham) sincronizacao entre processos --- vários processos compartilhando o mesmo recurso de e/s condições de corrida: ocorre quando dois ou mais processos querem utilizar um recurso compartilhado ao mesmo tempo... impressao os dois processos consultam a variavel de entrada do spooler para obter o proximo slot livre e para postarem os arquivos para a impressao. regiao critica ou secao critica: é a parte do programa que gera uma disputa de um recurso compartilhado solução... a solucao deve satisfazer os seguintes aspectos exlusao mutua ... apenas um processo pode estar ocupando a regiao critica por vez progresso ... se eu tenho uma regiao critica e n esta ocupada, nenhum processo pode bloquear ele por um motivo qualquer espera limitada ... se um processo está utilizando uma regiao critica, ficar ocupando ela indefinidamente... deve liberar para outro processo utilizar... sincronismo por software vantagem: exclusao mutua desvantagem: espera ocupada consome processador degrada desempenho sincronismo por hardware desabilitar interrupções problemas... no sistema compartilhado, multitarefa, td é controlado por interrupções... entao, isto pode gerar problemas de funcionamento no SO. se a interrupção nao for habilitada novamente? sistema pode travar... cuidado!!! semáforo: variável manipulada pelas instrucoes DOWN E UP. para entrar DOWN() ao sair UP() quando o processo A estiver sendo executado e for solicitada a troca de contexto, o semaforo avalia se o processo A está finalizado para o B ser executado. se A estiver em execucao, o B irá para a fila de espera. monitores é um modulo especial composto por estruturas de dados, variaveis e procedimentos. se o processo entrou no monitor, ele automaticamente cuidar para que o segundo processo aguarde o primeiro finalizar... troca de mensagens computadores diferentes canal de comunicacao buffer ou link de rede passar informacoes de um processo para outro exemplo 1 processo leitura, 1 processo ordenacao 1 efetua a leitura 1 efetua a ordenacao ao receber a mensagem com os dados lidos do processo 1 funcoes: send .. receive... troca de mensagens comunicacao direta conhecer o nome do processo receptor ou transmissor da mensagem comunicacao indireta caixas postais para o recebimento e envio de mensagens gerencia de processador politica de escalonamento critérios para determinar qual processo será escolhido para fazer uso do processador estado: pronto escalonador de processo (scheduler)... envia processos p processador baseado na politica de escalonamento maior tempo de ocupacao do processador balanceamento no uso do processador aplicacoes criticas devem ser executadas prioritariamente maximizar o troughput (numero de processos finalizados em um dado intervalo de tempo) no sistema processos interativos devem ter tempos de resposta razoáveis a troca de processo por outro pode acontecer pela mudança de estado preempção: tarefa de troca de processo pelo sistema operacional utilização de processador: 30% e 90% troughput: maximizar (executar o maximo de processos possiveis) tempo de processador: tempo em que um processo fica em execucao no processador tempo de espera: tempo total de espera, para ser executado, de um processo na fila de pronto tempo de turnaround: indica o tempo total de vida de um processo. alocacao de memória, espera na fila de pronto, interrupções de entrada e saída. tempo de resposta: escalonamento escalonamento fifo processo na memoria e entra na fila de pronto... primeiro que entra, vai para processador... primeiro que entra, primeiro que sai... se for para espera, vai para o final da fila problema: tempo medio de espera se os primeiros processos o tempo de execucao for alto e os proximos menores, o tempo medio será alto escalonamento circular o SO determina um periodo de tempo que o processo pode ser executado pelo processador, este periodo de tempo é conhecido como fatia de tempo(quantum) e normalmente pode variar entre 10-100 milisegundos. esta politica de escalonamento evita que um processo nao monopolize o processador. quando o processo está utilizando o processador é dito que é um surto do processador. o surto pode ser com relação aos dispositivos de entrada e saída quando o processo está usando estes dispositivos. carrega processo na memoria com estado de pronto o escalonador escolhe o processo a ser executado o processo selecionado recebe uma fatia de tempo (quantum) e passa a usar o processador ao termino do quantum o processo é interrompido e volta ao fim da fila de pronto acontece em processos do tipo cpu-bound. surto de processador, pode ser menor que o quantum escalonamento sjf job mais curto primeiro escalonamento circular virtual Com o objetivo de balancear o processador, surgiu uma versão aprimorada do escalonador circular chamado escalonamento circular virtual. O escalona mento circular virtual criou uma segunda fila auxiliar de pronto que recebe os processos que saem do estado de “Em Espera”. O escalonador sempre verifica esta fila quando há necessidade de troca de contexto. Caso haja processo na fila auxiliar, este terá prioridade em relação a um processo da fila de pronto. Se a fila auxiliar estiver vazia, o escalonador utilizará processos da fila de pronto. Este mecanismo de troca dinâmica da ordem em que os processos são executa dos é conhecido como mecanismo adaptativo. escalonamento por prioridade Em geral, as prioridades podem ser definidas com base em critérios internos ou externos. No caso de critérios internos, as prioridades dos processos são dimensionadas com base em algum valor de grandeza, tempo de médio de utilização do processador, tempo médio de utilização de dispositivos de entrada e saída, ordem de chegada, requisitos de memória etc. Já as prioridades externas são definidas por critérios que não têm interferência do sistema operacional, como por exemplo, tipo de processo, departamento responsável, custo, etc. O escalonamento por prioridade associa um valor, chamado prioridade de execução, a um processo que entra na fila de pronto, o processo com a maior prioridade será o primeiro a ser escalonado para execução. Caso haja dois ou mais processos com o mesmo nível de permissão, será escalonado o primeiro entre eles (escalonamento FIFO). Isto faz com que o escalonamento por prioridade seja o ideal para sistemas de tempo real, aplicações de controle de processo e quando a necessidade de definir a prioridade de determinados processos em sistemas de tempo compartilhado. escalonamento por prioridade circular O processador, no escalonamento por prioridade, fica desbalanceado em rela- ção dos processos CPU-Bound e I/O-Bound. Processos do tipo I/O bound tende a utilizar mais recursos de entrada e saída, o que faz com que o mesmo passe a maior parte do tempo em estado de “Em Espera” aguardando que uma solicitação de entrada e saída termine. Um melhor balanceamento do processador foi alcançado com a implementação do escalonador circular com prioridades. O escalonador circular com prioridades adicionou, à já existente prioridade de processo, o conceito de fatia de tempo. Desta maneira um processo pode perder o uso do processador quando houver um processo com maior prioridade ou o seu quantum finalizar ou quando entrar em estado de “Em Espera” A vantagem do escalonamento por múltiplas filas e permitir um escalonamento de baixo custo, mas por outro lado, tem a desvantagem de ser inflexível em relação a mudança de processo entre as filas. Vimos que o sistema operacional analisa as propriedades de um processo no momento de sua criação e associa-o permanentemente a uma das filas de prioridade. Uma vez atribuído a uma fila, o processo não tem como se mover para outra. De maneira geral, isso é coerente se levarmos em conta a natureza dos processos (foreground e background). Se um processo é do tipo foreground, será associado a uma fila com prioridades de foreground, se for background será associado a uma fila com prioridades de background. O problema dessa abordagem é que processos do tipo CPU-Bound, em geral tem maior prioridade do que processos do tipo I/O-Bound. Se houver muitos processos CPU-Bound entrando numa fila de maior prioridade, um processo do tipo I/O-Bound pode ter que aguardar um tempo excessivo para ser escalonado. A solução deste problema veio com o escalonamento Escalonamento por Múltiplas flas com Realimentação. Este escalonador permite que um processo possa trocar de fila durante seu processamento. São implementadas diversas filas com níveis de prioridades distintas. O comportamento do processo é analisado dinamicamente pelo sistema que então ajusta sua prioridade de execução e mecanismo de escalonamento. Esta análise de comportamento é feita, pelo sistema, ao longo do ciclo de vida do processo, permitindo que o mesmo possa ser direcionado para uma determinada fila de acordo com sua mudança de comportamento. As filas apresentam dois tipos de escalonamento. A fila de menor prioridade utiliza o escalonamento circular. As demais filas, de maior prioridade, apresentam um escalonamento FIFO adaptado com fatia de tempo. Um processo que estiver em uma fila de menor prioridade somente será escalonado quando as filas de maior prioridade estiverem vazias. A fatia de tempo, atribuída a uma fila, é dimensionada de acordo com a prioridade da fila. Uma fila com prioridade maior terá menos tempo de processamento e fila com prioridade menor, mais tempo de processamento gerência de memória funcoes básicas da gerencia de memória alocar o maior número de processos na memória maximizar de forma eficiente o compartilhamento de memória garantir que um programa nao acesse áreas destinadas a outro programa administrar a execucao de programas que ultrapassam a capacidade física da memória principal
Compartilhar