·

Engenharia de Software ·

Arquitetura de Computadores

Envie sua pergunta para a IA e receba a resposta na hora

Texto de pré-visualização

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Parte 02 Conceitos Básicos Professor Eduardo Xavier Parte 02 Conceitos Básicos Professor Eduardo Xavier Objetivos de Aprendizagem Objetivos de Aprendizagem Conhecer os principais tipos de Sistemas Operacionais Identificar os conceitos sobre Gerenciamento de Recursos de Sistema Operacional Descrever a aplicabilidade da Gerencia desses recursos no Sistema Operacional Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas Monoprogramáveis Monotarefa É uma ideia antiga voltada para a execução de um único programa de cada vez Sistemas monoprogramáveis se caracterizam por permitir que processador memória e periféricos permaneçam exclusivamente dedicados a execução de um único programa A ideia surgiu com os primeiros computadores da década de 1960 Porém comn a chegada dos microcomputadores e estações de trabalho na década de 1970 o conceito voltou a ser utiluizado em máquinas projetadas para atender um púnico usuário passando a ser chamado de Sistemas Monotarefa É uma implementação simples mas possui desvantagens de desempenho processador ocioso memória subutilizada periféricos não compartilhados Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas Multiprogramáveis Multitarefa São uma evolução dos sistemas monoprogramáveis baseados na ideia de compartilhamento dos recursos computacionais entre diversos usuários e aplicações Oferecem vantagens de curso e desempenho porém são mais complexos de implementar Sistemas mutiprogramáveis podem ser monousuário ou multiusuário Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas Multiprogramáveis Multitarefa Sistemas Batch São uma evolução dos sistemas monoprogramáveis baseados na ideia de compartilhamento dos recursos computacionais entre diversos usuários e aplicações A principal característica desta abordagem é a falta de interação com o usuário durante o processamento do programa chamado de Job O usuário submete seu job para execução e apenas aguarda o resultado final que pode demorar segundo minutos horas ou até dias O tempo entre a submissão do job e o retorno dos resultados é chamado de turnaround e depende da quantidade de processamento requerida do tempo de preparação necessário alocação de recursos por exemplo para executar o job e da quantidade de jobs submetidos antes dele na fila de execução do sistema Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas Multiprogramáveis Multitarefa Sistemas de Tempo Compartilhado TimeSharing Permitem que diversos programas seja executados a partir da divisão do tempo do processador em pequenas fatias de tempo timeslice Caso essa fatia se esgote e seja insuficiente para a conclusão do programa ele é interrompido e colocado em espera pelo sistema operacional e outro programa recebe sua fatia de tempo O programa colocado em espera receberá outra fatia de tempo mais tarde O sistema dá a cada usuário um ambiente de trabalho próprio o que dá a impressão de que o ambiente está dedicado exclusivamente a ele A alternância de fatias de tempo é rápida o que permite uma boa interação com o usuário Por causa disso esses sistemas ficaram conhecidos como sistemas online Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas Multiprogramáveis Multitarefa Sistemas em Tempo Real São implementados de forma semelhante aos sistemas timesharing A diferença é o tempo exigido no processamento da aplicação Nos sistemas em tempo real não existe o conceito de fatia de tempo Um programa executa no processador pelo tempo que for necessário ou até que outro programa mais prioritário apareça É a aplicação que define essa prioridade e não o sistema operacional Essa abordagem é frequentemente utilizada em controle de processos industriais ou qualquer aplicação onde o tempo de processamento é um fator fundamental Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas com Múltiplos Processadores Caracterizamse por terem duas ou mais CPUs interligadas e trabalhando em conjunto A grande vantagem disso é a possibilidade de multiplos programas ou mesmo partes de um mesmo programa serem executadas em paralelo Os conceitos de multiprogramação também são aplicados nessa abordagem porém existem outras vantagens específicas desta solução como a escalabilidade disponibilidade e balanceamento de carga Fatoreschave para o desenvolvimento de sistemas com multiplas CPUs Comunicação entre várias CPUs Compartilhamento de memória e dispositivos de entradasaída Em função desses fatores podemos classificar estes sistemas em fortemente acoplados e fracamente acoplados Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas com Múltiplos Processadores Fortemente Acoplados tightly coupled Vários processadores compartilham uma única memória física shared memory Alta taxa de transferência de informações entre processadores e memória Dispositivos de entradasaída gerenciados por um único sistema operacional Conhecidos como multiprocessadores Dois tipos SMP Symmetric Multiprocessors tempo uniforme de acesso à memória pelos processadores NUMA NonUniform Memory Access diversos conjuntos de processador e memória principal Cada conjunto ligado aos outros por meio de uma rede de interconexão Tempo de acesso varia de acordo com a localização Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas com Múltiplos Processadores Fracamente Acoplados loosely coupled Dois ou mais sistemas computacionais conectados através de linhas de comunicação Cada sistema funciona de forma independente com seu próprio SO gerenciando seus recursos CPU memória dispositivos de IO Cada sistema pode ter um ou mais processadores ou seja é possível contruir um sistema fracamente acoplado onde alguns de seus integrantes sejam soluções fortemente acopladas Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas com Múltiplos Processadores Conceitos Básicos Conceitos Básicos de Sistemas Operacionais de Sistemas Operacionais PROCESSO É um programa em execução Possui um espaço de endereçamento relação de posições na memória que o programa utiliza que contém As instruções do programa Os dados temporários usados pelo programa Uma pilha de memória contendo todos os endereços necessários ao funcionamento do programa Todos os processos ativos são armazenados um uma tabela de processos controlada pelo sistema operacional Conceitos Básicos Conceitos Básicos de Sistemas Operacionais de Sistemas Operacionais DEADLOCK Situação em que dois ou mais processos podem entrar e que não conseguem resolver sem interferência externa Exemplo O processo A precisa manipular um certo recurso X do sistema O recurso X não pode ser entregue para A pois está sendo usado pelo processo B O processo B só pode liberar X se receber uma certa mensagem de A Como o processo A está aguardando a liberação de X a mensagem jamais será enviada Os processos A e B estão em DEADLOCK Conceitos Básicos Conceitos Básicos de Sistemas Operacionais de Sistemas Operacionais GERENCIAMENTO DE MEMÓRIA São as estratégias adotadas pelo sistema operacional para Controlar o compartilhamento da memória disponível Implementar um mecanismo de proteção das zonas de memória alocadas Controlar qual o tamanho da memória que pode ser endereçado referenciado Conceitos Básicos Conceitos Básicos de Sistemas Operacionais de Sistemas Operacionais SUBSISTEMA DE ENTRADASAÍDA Rotinas e estratégias de gerenciamento dos dispositivos de entrada e saída que são percebidos pelo sistema operacional Conceitos Básicos Conceitos Básicos de Sistemas Operacionais de Sistemas Operacionais SISTEMAS DE ARQUIVOS Conjunto de rotinas responsável por ocultar a verdadeira estrutura dos discos e outros dispositivos de entrada e saída Responsável pela implementação do conceito de diretório Conceitos Básicos Conceitos Básicos de Sistemas Operacionais de Sistemas Operacionais PIPELINING Pipelining é uma técnica que permite ao processador executar múltiplas instruções paralelamente em estágios diferentes O conceito se assemelha a uma linha de montagem onde uma tarefa é dividida em uma sequência de subtarefas executadas dentro de uma linha de produção O pipeline pode ser encontrado em sistemas com um ou mais processadores e tem sido a técnica de paralelismo mais utilizada para aumentar o desempenho dos sistemas computacionais Conceitos Básicos Conceitos Básicos de Sistemas Operacionais de Sistemas Operacionais Arquiteturas RISC e SISC A linguagem de máquina de um computador é a linguagem de programação realmente compreendida pelo processador Cada arquitetura possui um conjunto de instruções único para seus processadores A arquitetura RISC Reduced Instruction Set Computer se caracteriza por ter um número pequeno de instruções que acessam diretamente o hardware o que faz com que elas executem rapidamente e facilitam a implementação de pipelining Possui muitos registradores Exemplos SPARC Sun PARISC HP RS6000 IBM A arquitetura CISC Complex Instruction Set Computer possui instruções complexas que são interpretadas por microprogramas o que dificulta a implementação de pipelining Possui poucos registradores Exemplos Pentium Intel 86xxx Motorola VAX DEC Concorrência Concorrência Sistemas Monoprogramáveis x Multiprogramáveis Nos sistemas monoprogramáveis há subutilização de CPU memória e periféricos Por exemplo Concorrência Concorrência Interrupções e Exceções Durante a execução de um programa podem acontecer eventos inesperados ocasionando um desvio forçado de seu fluxo de execução Estes eventos so chamados de interrupções ou exceções e são gerados por Sinalização de disposistivos de hardware interrupção Evendo gerado pelo próprio programa exceção Concorrência Concorrência Reentrância Em ambientes multiprogramados vários usuários utilizam os mesmos programas simultaneamente exemplo editor de texto Seria um desperdício hospedar na memória divesas cópias do mesmo programa uma para cada usuário sabendo se que todas seriam iguais apenas os dados de cada usuário seriam diferentes Reentrância é a capacidade de um código ser utilizado por vários usuários sem necessidade de se ter várias cópias do mesmo Chamamos isso de código reentrante e para que isso funcione corretamente basta garantir que os dados dos usuários estão separados Referências Bibliográficas Referências Bibliográficas Arquitetura de Sistemas Operacionais Francis Machado Capítulos 23 e 4 Conceitos Básicos