·

Administração ·

Organização de Computadores

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Processos Sistema computacional Todos os componentes do sistema computacional são agrupados em três subsistemas básicos processador memória principal e dispositivos de ES Memória Principal Dispositivos de E S Processador UCP Unidade Lógica e Aritmética Registradores Unidade de Controle Ciclo de busca e de execução O processamento de uma instrução consiste em dois passos busca da instrução na memória e execução Ciclo de busca PC contém o endereço da próxima instrução a ser buscada Instrução é buscada e colocada no IR para ser interpretada PC é incrementado Ciclo de busca e de execução O processamento de uma instrução consiste em dois passos busca da instrução na memória e execução Ciclo de execução A CPU interpreta a instrução e executa ação CPU memória transferência de dados CPU ES transferência de dados Processamento de dados operação lógica ou aritmética Memória Algumas questões devem ser consideradas ao se projetar uma arquitetura de memória capacidade velocidade e custo Memória mais rápida possui maior custo Memória com maior capacidade possui menor custo Memória com maior capacidade possui menor velocidade O projetista quer uma memória de baixo custo e com grande capacidade de armazenamento porém para aumentar o desempenho a memória deve ser rápida Tempo de Acesso X Tamanho X Custo Memória maior capacidade de armazenamento maior custo e velocidade de acesso Memória Secundária Memória Cache Memória Principal Registradores 1ns 2ns 10ns 10ms100ms Memória Cache A memória cache armazena uma pequena parte do conteúdo da MP e deve tirar proveito do princípio da localidade Quando o processador faz referência a um dado primeiro é verificado se ele se encontra na cache Dispositivos de ES A CPU e a memória não são os únicos recursos que o sistema operacional tem que gerenciar Os dispositivos de ES interagem intensivamente com o SO São utilizados para permitir a comunicação entre o sistema computacional e o mundo externo Podem ser divididos em duas categorias Dispositivos usados como memória secundária Dispositivos que servem como interface homemmáquina Dispositivos de ES O controle real do dispositivo de ES é complicado O controlador do dispositivo apresenta uma interface mais simples para o SO Cada controlador é diferente possuindo softwares diversos para o controle dos dispositivos O software que conversa com o controlador driver do dispositivo de ES Cada fabricante de controladores oferecem drivers para cada tipo de sistema operacional O driver do dispositivo tem que ser colocado dentro do núcleo do sistema operacional Operações de ES As operações de entrada e a saída podem ser realizadas de 3 formas diferentes Controlada por programa Controlada por interrupção DMA direct memory access Symmetric Multiprocessors SMP Computadores Multicore Núcleo do SO O sistema operacional não é executado como uma aplicação sequencial Suas rotinas são executadas sem uma ordem definida O SO é formado por um conjunto de rotinas que oferece serviços aos usuários e suas aplicações O conjunto de rotinas é chamado núcleo ou kernel do SO É o kernel que oferece os serviços básicos para todas as partes do sistema operacional Núcleo do SO As principais funções do kernel são Tratamento de interrupções e exceções Criação e eliminação de processos Sincronização e comunicação entre processos Escalonamento e controle dos processos Gerência de memória Gerência do sistema de arquivos Gerência de dispositivos de ES Suporte a redes locais e distribuídas Segurança do sistema Modos de Acesso Os serviços do kernel são requisitados através de chamadas ao sistema As chamadas ao sistema são a porta de entrada para se ter acesso ao núcleo do SO Para que aplicações do usuário não causem danos a integridade do sistema algumas instruções não podem ser executadas diretamente Instruções privilegiadas só são executadas pelo SO 2 modos de acesso modo usuário e modo kernel ou monitor ou supervisor Modos de Acesso Especificação do modo do processador O modo de acesso é especificado por um bit de modo do registrador PSW Exemplo Quando um processo faz uma chamada ao sistema o bit de modo é modificado para privilegiado Modo Kernel Uma rotina específica do sistema operacional modifica o bit de modo Modos de Acesso Instruções privilegiadas só podem ser executadas no modo kernel Quando o programa do usuário necessita executar uma instrução privilegiada é feita uma chamada ao sistema A chamada ao sistema altera o modo de acesso para o modo kernel O SO executa a instrução e depois retorna ao modo usuário Se o programa do usuário tentar executar uma instrução privilegiada o programa é encerrado Chamadas ao Sistema Para cada serviço existe uma chamada de sistema O SO tem seu próprio conjunto de chamadas ao sistema nomes parâmetros e forma de ativação específicas Processos Conceito fundamental para todos os sistemas operacionais Os processos mantêm a capacidade de operações concorrentes mesmo quando há apenas uma CPU disponível Um processo é um programa em execução Exemplo Fazer um bolo Receita Programa Ingredientes Dados de entrada O cozinheiro CPU Ler a receita Buscar os ingredientes e Assar o Bolo Processo Processos Possui 3 elementos básicos contexto de SW contexto de HW e espaço de endereçamento Contexto de SW Características do processo como identificação número máximo de arquivos abertos privilégios etc Contexto de HW Constitui basicamente o conteúdo dos registradores Espaço de endereçamento É a área de memória pertencente ao processo onde estarão armazenados as instruções e os dados para a execução Processos Programa Contexto de Software prioridade de execução registrador PC data hora de criação tempo de processador registrador SP quotas privilégios endereços de memória principal alocados registrador de status owner UID PID nome registradores gerais Contexto de Hardware Espaço de Endereçamento Processos O que esperar do SO Alternar a execução de processos de forma a maximizar a utilização da CPU e fornecer tempo de resposta razoável Alocar recursos a processos Suportar criação de processos pelo usuário Suportar comunicação entre processos Para gerenciar processos o SO precisa conhecer onde o processo está localizado e os atributos do processo Processos O SO materializa o processo através do bloco de controle de processo PCB O PCB de todos os processos ativos residem na memória principal em uma área exclusiva do SO Usado para armazenar informações do processo ponteiros Estado do processo Registradores Nome do processo Prioridade do processo Limites de memória Lista de arquivos abertos Processos A gerência de processos é realizada por intermédio de chamadas às rotinas do SO que realizam funções como criação eliminação sincronização etc O SO toma grande cuidado para que processos independentes não afetem de modo intencional ou por acidente a correção de comportamento um do outro Vários processos compartilham concorrentemente a CPU e outros recursos de HW de forma transparente A troca de um processo por outra é comandada pelo SO Troca de Contexto Processos Troca de Contexto Carrega registradores do Processo B Carrega registradores do Processo A Sistema Operacional Salva registradores do Processo A executando executando executando Salva registradores do Processo B Processo A Processo B Processos Troca de Contexto Sobrecarga associada troca de contexto salva contexto do processo atualiza bloco de controle do processo PCB gravação do novo estado prontobloqueado move o processo PCB para a fila apropriada escolhe novo processo para execução atualiza PCB do novo processo e dados relativos a MP restaura contexto do novo processo Processos Criação O que faz o SO para criar processos constrói estruturas de dados aloca espaço de endereçamento Quando o processo é criado Início do sistema Requisição do usuário Submissão de um job batch Processo cria outros processos Processos Término Um processo termina devido alguma das seguintes situações Saída normal voluntária Saída por erro voluntária Ex Um compilador termina a execução quando vai compilar um arquivo que não existe Erro fatal involuntário Ex Execução de instrução ilegal divisão por zero Cancelamento por outro processo involuntário Ex Comando kill no linux Estado dos Processos Um processo muda de estado durante o seu processamento Em função de eventos gerados pelo SO ou por ele próprio Exemplo cat arq1 arq2 grep tree O processo gerado pelo comando grep irá buscar a palavra tree na concatenação dos arquivos 1 e 2 O processo pode estar PRONTO para executar Entretanto o processo pode ficar BLOQUEADO até que a entrada esteja disponível Estados dos Processos Novo O processo está sendo criado Em execução Instruções estão sendo executadas Em espera ou bloqueado aguardando por algum evento conclusão de IO ou recebimento de um sinal Pronto esperando para ser atribuído a um processador Terminado O processo terminou a sua execução Estados dos Processos Diagrama com 5 estados EM EXECUÇÃO EM ESPERA PRONTO NOVO CONCLUÍDO Estados dos Processos Diagrama de Transições EM EXECUÇÃO EM ESPERA PRONTO NOVO CONCLUÍDO Estados dos Processos Filas 1 IC UFF UCP liberação admissão despacho fila dos prontos evento ocorre espera evento fila dos bloqueados Estados dos Processos Filas 2 IC UFF UCP liberação admissão despacho fila dos prontos evento 1 ocorre espera evento 1 fila evento 1 espera evento 2 fila evento 2 evento 2 ocorre Estados dos Processos Filas 3 IC UFF evento 1 ocorre UCP liberação admissão despacho prioridade 1 espera evento 1 fila evento 1 espera evento 2 fila evento 2 prioridade 2 evento 2 ocorre Estados dos Processos Suspenso Vários processos em execução necessidade de espaço em MP disponível Importante para implementação de memória virtual O processador é muito mais rápido que ES todos os processos podem estar bloqueados Necessidade de novo estado Suspenso Imagem do processo sai temporariamente da MP SO seleciona um dos bloqueados para sair de MP É um operação de ES Estados dos Processos Suspenso EM EXECUÇÃO EM ESPERA BLOQUEADO PRONTO NOVO CONCLUÍDO PRONTO SUSPENSO BLOQUEADO SUSPENSO Mudança de Estado 5 estados Quando o SO seleciona um processo para ganhar a CPU Pronto Execução Quando um processo termina a sua execução Execução Terminado Um processo perde a CPU pois expirou a sua fatia de tempo de execução Execução Pronto Mudança de Estado 5 estados Um processo está executando e faz uma chamada ao sistema pra execução de uma operação de ES Execução Bloqueado Um processo está esperando por um evento ES por exemplo que ocorre Bloqueado Pronto Um processo é criado no sistema e se torna pronto para executar Novo Pronto Mudança de Estado 5 estados Mudanças possíveis mas não usuais Um processo pai está executando e termina O que acontece com o estado dos seus processos filhos Pronto Terminado Bloqueado Terminado Threads Organização dos processos na memória Características de processos Um processo incorpora duas características Propriedade de recursos processo ou tarefa EscalonamentoExecução thread No conceito de multithread um processo pode possuir vários fluxos de controle threads Multithread Processo com um ou vários threads Threads de um processo compartilham o mesmo espaço de endereçamento Com múltiplos threads é possível projetar e implementar aplicações concorrentes de forma eficiente Um mesmo processo pode ter partes diferentes do seu código sendo executadas concorrentemente ou em paralelo Os threads compartilham o processador da mesma forma que os processos e passam pelas mesmas mudanças de estado Do mesmo modo a CPU alterna rapidamente entre os threads Threads Vantagens no uso de threads Menos tempo para criar um thread do que um processo filho Menos tempo para finalizar um thread do que um processo A troca de contexto é mais rápida entre threads do mesmo processo Algumas CPUs possuem suporte de HW direto para multithread e permitem um chaveamento mais rápido Mais eficiência no compartilhamento de dados através da memória compartilhada dentro de um mesmo processo Threads Exemplos Navegador Web Um thread para exibir imagens ou texto Outro thread para recuperar dados da rede Processador de textos Um thread para exibir gráficosreformatar um texto Outro para ler sequência de teclas do usuário Outro para verificação ortográfica e gramatical Outro para salvamento automático Threads O espaço de endereçamento dos threads de um processo é compartilhado Um thread pode ler escrever ou apagar a pilha de execução de outro thread Threads podem compartilhar um conjunto de recursos Não há proteção entre threads Threads devem cooperar e não competir Cada thread possui seu próprio contexto de hardware Threads Informações que não são estritamente necessárias para gerenciar múltiplos threads em geral são ignoradas Logo proteger dados contra acesso inadequado por threads dentro de um único processo fica a cargo do desenvolvedor da aplicação Requer esforço intelectual adicional Em muitos casos o multithreading resulta em ganho de desempenho Por exemplo as trocas de contexto são mais rápidas Threads 1 Construir uma biblioteca de threads que é executada inteiramente em modo usuário Criar e terminar threads é barato Chaveamento entre threads é rápido basicamente somente os registradores de CPU precisam ser armazenados Escalonamento é feito internamente Uma chamada bloqueadora bloqueia todo o processo ao qual o thread pertence Threads Implementação 2 Implementação de threads no núcleo do sistema operacional Toda a operação de thread criação encerramento sincronização etc terá que ser executada pelo núcleo Requer chamadas ao sistema O custo é mais alto Chavear contexto de threads pode ser tão caro quanto chavear processos Escalonamento feito pelo SO Chamada bloqueadora bloqueia apenas o thread Threads Implementação Abordagem híbrida LWP Lightweight Process Um LWP executa no contexto de um único processo pesado Podem existir vários LWPs por processo O sistema fornece um pacote de threads de nível de usuário que oferece às aplicações operações usuais de threads Criação término exclusão mútua Todas operações em threads são realizadas sem intervenção do núcleo Cada LWP nível núcleo pode executar um thread nível usuário Threads Implementação Abordagem híbrida LWP Lightweight Process A designação de um thread a um LWP é implícita e oculta ao programador Quando o LWP encontra um thread executável ele chaveia o contexto para aquele thread Quando um thread precisa bloquear devido a uma exclusão mútua ela faz a administração necessária e chama a rotina de escalonamento É feito um chaveamento para outro thread executável O chaveamento neste caso é implementado no espaço do usuário Threads Implementação Abordagem híbrida LWP Lightweight Process Quando um thread faz uma chamada bloqueadora de sistema A execução muda de modo usuário para modo núcleo mas continua no contexto do LWP corrente Se o LWP corrente não puder continuar o SO pode chavear o contexto para outro LWP Uma chamada bloqueante bloqueia um LWP mas não os outros LWPs que compartilham a tabela de threads entre si Threads Implementação Uma das vantagens do uso de threads é Proporcionar um meio conveniente para permitir chamadas bloqueadoras de sistema sem bloquear o processo inteiro no qual o thread está executando Esta propriedade torna os threads atraentes para o uso em sistemas distribuídos Facilitam a comunicação podendo manter múltiplas conexões lógicas ao mesmo tempo Threads Sistemas Distribuídos Modelo despachanteoperário Servidores Multithreads Suponha que o servidor de arquivos tenha sido implementado com ausência de threads O servidor obtém uma requisição examina e executa até a conclusão Servidores Monothread não poderiam atender a um segundo usuário enquanto lêem disco A CPU fica ociosa enquanto o servidor de arquivos estiver esperando pelo disco Servidores Multithreads Nesse exercício você deverá fazer uma comparação entre ler um arquivo usando um servidor de arquivos monothread ou um servidor multithread Obter uma requisição para trabalho despachála e fazer o resto do processamento necessário demora 15ms considerando que os dados necessários estejam em uma cache na MP Se for preciso uma operação de disco como acontece 13 das vezes serão necessários mais 75ms durante os quais a thread dorme Quantas requisições por segundo o servidor pode manipular se for monothread E se for multithread Exercício 1 Tem sentido limitar a quantidade de threads em um servidor Exercício 2 Há alguma circunstância na qual um servidor monothread pode ser melhor que um servidor multithread Exercício 3 Agradecimentos Slides cedidos pela professora Aline Nascimento Modelo dos slides obtido em FPPTcom