Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas operacionais Wagner Mendes Voltz Gerenciamento de processos Gerenciamento da memória Unidade II – Gerenciamento de processos Comunicação entre processos Escalonamento de processos Impasse/Deadlock Comunicação entre processos Condição de corrida: falha na comunicação existente gerando a possibilidade de concorrência entre os processos ou threads. Região crítica: espaço em memória utilizado durante a execução de um processo. Utilizado por vários processos. A melhor maneira para que não ocorra condição de corrida é realizando exclusão mútua. Exclusão mútua Dois processos nunca podem estar simultaneamente simultaneamente em suas regiões criticas Nada pode ser afirmado sobre a velocidade ou sobre o sobre o número de CPUs Nenhum processo executando fora de sua região crítica pode bloquear outros processos Nenhum processo deve esperar eternamente para entrar em sua região crítica. Exclusão mútua - Técnicas Desabilitar interrupções Variável do tipo trava (lock) Chaveamento obrigatório Solução de Peterson Instrução TSL • Semáforos binários: o valor da variável do semáforo pode variar entre 0 e 1. Este tipo de semáforo também é chamado de mutex. Ele é usado diretamente para garantir a exclusão mútua. • Semáforos de contagem: são utilizados para controlar o acesso a um recurso. Escalonamento de processos • O escalonamento consiste em utilizar algoritmos para decidir qual processo deve ser utilizado. Quando escalonar? • Quando um processo é encerrado. • Quando há um novo processo e existe a necessidade de tomar a decisão por executar o processo pai ou o processo filho • Quando um processo é bloqueado por um dispositivo de entrada/saída • Quando ocorre uma interrupção de entrada/saída Escalonamento O sistema operacional possuiu um conjunto grande de algoritmos de escalonamento escalonamento que podem ser utilizados. Divide-se em: Algoritmos de escalonamento preemptivo: o processo é executado por um tempo tempo máximo fixado Algoritmos de escalonamento não-preemptivo: o processo é executado até que que seja bloqueado Algoritmos de escalonamento Primeiro a chegar, primeiro a ser servido Tarefa mais curta primeiro Próximo de menor tempo restante Chaveamento Circular (round robin) Escalonamento pro prioridade [TANENBAUM, 2010] Um conjunto de processos estará em situação de impasse se todo processo pertencente ao conjunto estiver esperando por um evento que somente outro processo desse mesmo conjunto poderá fazer acontecer. Impasse/Deadlock Prevenção Atacar a condição de exclusão mútua Atacar a condição de posse e espera Atacar a condição de inexistência de preempção preempção Atacar a espera circular Unidade III – Gerenciamento da memória Conceito e tipos de memória Endereço lógico e físico Fragmentação Estratégias de alocação Memória virtual Fonte: [MAZIERO, 2019], capítulo 14 - página 162 http://wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-14.pdf Memória Memória principal: são mais rápidas, menores menores (capacidade de armazenamento), mais caras, consomem mais energia e são voláteis. Memória secundária ou de massa: não voláteis, lentas e baratas se comparadas às às memórias principais Endereço lógico e físico Lógico: criado pelo processador Físico: armazenados na RAM MMU Fragmentação • Fragmentação externa: ocorre quando existem espaços disponíveis na memória em pequenos intervalos não contíguos. • Fragmentação interna: ocorre quando o espaço total de um bloco de alocação de memória não é usado por completo. Estratégias de alocação Contígua Segmentada Paginada Estratégias de alocação - Contígua A memória é dividida em duas partições, sendo uma para para o sistema operacional e a outra partição de tamanhos ajustáveis que irão se adequar à demanda específica de cada processo do usuário. A MMU recebe o endereço lógico e tenta salvar numa numa partição. Caso o espaço solicitado seja compatível, compatível, a informação é salva, senão é retornada uma uma interrupção para o processador, indicando um endereço inválido. Sujeita a fragmentação externa Estratégias de alocação - Segmentada Divide os espaços de memória em áreas chamadas de segmentos Estratégias de alocação – Paginada Visando evitar a fragmentação externa endereçamento físico de um processo não seja seja contíguo usada pela maioria dos sistemas operacionais operacionais atuais. Divisão do espaço lógico em blocos chamados chamados de páginas o espaço de endereço físico também é dividido em blocos chamados de quadros. Cada página (espaço lógico) será alocada num num determinado quadro (espaço físico) Memória Virtual Alguns processos podem exigir que sejam carregados por completo na memória para daí ser executado Memória virtual consiste na utilização de armazenamento externo como como extensão da memória RAM. A partir de algum algoritmo é selecionado um grupo de dados que serão serão salvos fora da memória RAM, liberando assim o espaço necessário para necessário para armazenar a quantidade solicitada pelo processo Swapping Implementada de forma eficiente e transparente Irão utilizar memória virtual paginada, retirando páginas da memória principal para um armazenamento externo, permitindo mais quadros disponíveis na memória RAM Memória Virtual Algoritmo First In First Out: as páginas mais antigas na memória principal principal deverão ser retiradas por primeiro quando houver a necessidade necessidade do uso de memória virtual Algoritmo Least Recently Used: as páginas menos recentemente usadas usadas na memória principal deverão ser retiradas por primeiro quando quando houver a necessidade do uso de memória virtual Algoritmo Not Recently Used: as páginas não usadas recentemente na recentemente na memória principal deverão ser retiradas por primeiro primeiro quando houver a necessidade do uso de memória virtual Fonte: [MAZIERO, 2019], capítulo 17 - página 206 - http://wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-17.pdf
Compartilhar