Please enable JavaScript.
Coggle requires JavaScript to display documents.
A.C.S.O - Coggle Diagram
A.C.S.O
HIERARQUIA DE MEMÓRIA
- Quanto mais próxima do processador é mais rápida e tem custo maior.
- Quanto mais longe do processador é mais lenta e tem custo menor.
- A Hierarquia de memória foi criada para simular uma memória grande e rápida. Isto foi conseguido aproveitando o resultado de pesquisas.
PRINCIPIO DA LOCALIDADE - um programa acessa uma porção relativamente pequena do espaço endereçável em um instante qualquer.
- Localidade temporal - Se um item é referenciado, ele tenderá a ser referenciado novamente.
Exemplo 🡪 loops ( instruções e dados).
- Localidade Espacial - Se um item é referenciado, itens cujos endereços são próximos a este, tenderão a ser referenciados também. Exemplo 🡪 acesso a dados de um array.
- Hierarquia de Memória - multi-níveis de memória com diferentes tamanhos e velocidades. As mais rápidas são as que tem maior custo de armazenamento por bit, e portanto as menores. Quanto menor a memória, mais perto do processador está localizada.
- Bloco 🡪 mínima unidade de informação que pode ou não estar presente em dois níveis de hierarquia de memória.
- Hit 🡪 se o dado acessado aparece em algum bloco no nível superior.
- Miss 🡪 se o dado acessado não aparece em algum bloco do nível superior.
- Hit ratio (hit rate) 🡪 razão de acessos encontrados pelo número total de acessos ao nível superior.
- Hit time 🡪 tempo de acesso ao nível superior da hierarquia de memória, que inclui o tempo necessário para saber se no acesso ocorrerá um hit ou um miss.
- Miss penalty 🡪 tempo para recolocar um bloco no nível superior e enviá-lo ao processador, quando ocorrer um miss. O maior componente do miss penalty é o tempo de acesso ao nível imediatamente inferior da hierarquia de memória.
- Memória Cache 🡪 nível da hierarquia entre CPU e Memória Principal ou qualquer espaço de armazenamento usado para tirar vantagem da localidade de acesso.
SISTEMAS OPERACIONAIS
- Existe uma grande distância entre os circuitos eletrônicos e dispositivos de hardware e os programas aplicativos em software.
- Os circuitos são complexos, acessados através de interfaces de baixo nível (geralmente usando as portas de entrada/saída do processador) e muitas vezes suas características e seu comportamento dependem da tecnologia usada em sua construção.
- Por exemplo, a forma de acesso de baixo nível a discos rígidos IDE difere da forma de acesso a discos SCSI ou leitores de CD/DVD
- Portanto, torna-se desejável oferecer aos programas aplicativos uma forma de acesso homogênea aos dispositivos físicos, que permita abstrair as diferenças tecnológicas entre eles.
- Os objetivos básicos de um sistema operacional podem ser sintetizados em duas palavras-chave: “abstração” e “gerência”, cujos principais aspectos são detalhados a seguir.
- Abstração de recursos:
Como visto anteriormente, Acessar os recursos de hardware de um sistema de computação pode ser uma tarefa complexa, devido às características específicas de cada dispositivo físico e a complexidade de suas interfaces.
-
- Gerência de recursos:
Em um sistema com várias atividades simultâneas, podem surgir conflitos no uso do hardware, quando dois ou mais aplicativos precisam dos mesmos recursos para poder executar. Cabe ao sistema operacional definir políticas para gerenciar o uso dos recursos de hardware pelos aplicativos.
- Cada computador normalmente possui menos processadores que o número de tarefas em execução. Por isso, o uso desses processadores deve ser distribuído entre os aplicativos presentes no sistema.
- Assim, um sistema operacional visa abstrair o acesso e gerenciar os recursos de hardware, provendo aos aplicativos um ambiente de execução abstrato, no qual o acesso aos recursos se faz através de interfaces simples.
- Tipos de sistemas operacionais:
- Batch (de lote) : os sistemas operacionais mais antigos trabalhavam “por lote”, ou seja, todos os programas a executar eram colocados em uma fila, com seus dados e demais informações para a execução. O processador recebia os programas e os processava sem interagir com os usuários, o que permitia um alto grau de utilização do sistema.
- De rede : um sistema operacional de rede deve possuir suporte à operação em rede, ou seja, a capacidade de oferecer às aplicações locais recursos que estejam localizados em outros computadores da rede, como arquivos e impressoras.
- Distribuído : em um sistema operacional distribuído, os recursos de cada máquina estão disponíveis globalmente, de forma transparente aos usuários. Ao lançar uma aplicação, o usuário interage com sua janela, mas não sabe onde ela está executando ou armazenando seus arquivos: o sistema é quem decide, de forma transparente..
- Multiusuário : um sistema operacional multiusuário deve suportar a identificação do “dono” de cada recurso dentro do sistema (arquivos, processos, áreas de memória, conexões de rede) e impor regras de controle de acesso para impedir o uso desses recursos por usuários não autorizados
- Embarcado : um sistema operacional é dito embarcado (embutido ou embedded) quando é construído para operar sobre um hardware com poucos recursos de processamento, armazenamento e energia. Aplicações típicas desse tipo de sistema aparecem em telefones celulares, sistemas de automação industrial e controladores automotivos, equipamentos eletrônicos de uso doméstico (leitores de DVD, TVs, fornos de microondas, centrais de alarme, etc.).
- Tempo real : ao contrário da concepção usual, um sistema operacional de tempo real não precisa ser necessariamente ultrarrápido; sua característica essencial é ter um comportamento temporal previsível (ou seja, seu tempo de resposta deve ser conhecido no melhor e pior caso de operação).
FUNCIONALIDADES
- Funcionalidades: Para cumprir seus objetivos de abstração e gerência, o sistema operacional deve atuar em várias frentes.
- Gerência do processador : também conhecida como gerência de processos ou de atividades, esta funcionalidade visa distribuir a capacidade de processamento de forma justa entre as aplicações, evitando que uma aplicação monopolize esse recurso e respeitando as prioridades dos usuários.
- Gerência de memória : tem como objetivo fornecer a cada aplicação uma área de memória própria, independente e isolada das demais aplicações e inclusive do núcleo do sistema. O isolamento das áreas de memória das aplicações melhora a estabilidade e segurança do sistema como um todo, pois impede aplicações com erros (ou aplicações maliciosas) de interferir no funcionamento das demais aplicações.
- Gerência de dispositivos : cada periférico do computador possui suas peculiaridades; assim, o procedimento de interação com uma placa de rede é completamente diferente da interação com um disco rígido SCSI. Mas, existem muitos problemas e abordagens em comum para o acesso aos periféricos.
Por exemplo, é possível criar uma abstração única para a maioria dos dispositivos de armazenamento como pendrives, discos SCSI ou IDE, disquetes, etc. A função da gerência de dispositivos (também conhecida como gerência de entrada/saída) é implementar a interação com cada dispositivo por meio de drivers criar modelos abstratos que permitam agrupar vários dispositivos distintos sob a mesma interface de acesso.
- Gerência de proteção : com computadores conectados em rede e compartilhados por vários usuários, é importante definir claramente os recursos que cada usuário pode acessar, as formas de acesso permitidas (leitura, escrita, etc.) e garantir que essas definições sejam cumpridas.
MAPEAMENTO DIRETO
- A maneira mais simples de assinalar uma posição da cache para uma palavra de memória é através de seu endereço na memória 🡪 direct mapped.
- Como podemos ver cada localização da cache pode receber mais de uma localização da memória 🡪 como saber se o dado na cache corresponde ao dado requerido ? Adicionando um conjunto de tags 🡪 cache.
- Tags 🡪 Contém a informação do endereço necessária a identificar se a palavra na cache corresponde à palavra requerida 🡪 necessita apenas da parte superior do endereço da palavra.
DESEMPENHO
- Localidade Espacial 🡪 blocos de cache com mais de uma palavra. Se um item é referenciado, itens cujos endereços são próximos, tenderão a ser referenciado também.
- Para que a localidade espacial seja aplicada a uma arquitetura, uma linha da cache deve ter mais do que uma instrução.
- Escrita 🡪 na escrita de uma instrução de store o dado tem que ser escrito na cache quando houver valores diferentes entre cache e memória principal o que é uma inconsistência.
- Um método é escrever também na memória principal, isto é chamado de writethrough.
- Outro esquema de atualização da memória 🡪 write back 🡪 a memória só é atualizada quando o bloco da cache que sofreu modificação for substituído por outro.
PIPELINE
- Na arquitetura Monociclo, cada instrução gasta um ciclo do clock para ser executada, e o tamanho deste ciclo será definido pela instrução que gastar mais tempo para ser executada.
- Na arquitetura Multiciclo, a execução da instrução é dividida em etapas, cada etapa gasta um ciclo. Desta forma uma instrução pode levar vários ciclos parar ser executada, porém o tamanho deste ciclo é menor do que o da arquitetura monociclo, assim o tempo é mais aproveitado. Somente as instruções mais demoradas utilizarão vários ciclos.
- Pipeline é uma técnica de implementação de processadores que permite que diversas instruções sejam executadas simultaneamente, mas em etapas diferentes, utilizandos unidades funcionais do processador que estão ociosas.
- Aumenta o número de instruções executadas simultaneamente e a taxa de instruções iniciadas e terminadas por unidade de tempo.
- O pipeline não reduz o tempo gasto para completar cada instrução individualmente.