Computação de Alto Desempenho (doravante CAD) é entendida como a área da computação preocupada em criar condições para que o processamento de alta carga computacional seja realizado. executados em intervalos de tempo factíveis, ou seja, permitindo que programas que levariam anos para produzir resultados em uma máquina comum o fizessem em muito menos tempo (horas ou dias), por exemplo. No restante deste curso, examinaremos como construir um sistema operacional (convencional para simplificar) e uma rede de computadores (protocolos de comunicação).
Estados de um processo
Ativo para pronto: quando o dispatcher decide que outro processo deve ocupar a cpu (por exemplo, por timeout da cpu);. Idle to Ready: quando o agendador (um despachante mais eficiente) traz o processo do disco para a memória;
Tabela de processos
Ativo para espera: quando o processo solicita uma operação de entrada/saída ou é bloqueado por um semáforo (ou outro mecanismo de bloqueio); Ativo para ocioso: quando o processo é descarregado ou conclui sua execução;
Mecanismos de escalonamento de processos
Assim, cabe ao utilizador escolher a medida que mais lhe interessa e determinar o algoritmo de escalonamento que melhor se adequa à sua situação. Outros bons livros sobre sistemas operacionais, em capítulos sobre gerenciamento de E/S ou gerenciamento de armazenamento em disco ou gerenciamento de dispositivos periféricos.
Responsabilidade
As duas primeiras formas são estratégias que consomem muito tempo de CPU e, portanto, são válidas apenas para aplicativos especiais. Eles também têm a capacidade de ocultar do usuário o que realmente está acontecendo para realizar a operação.
Forma de atua¸ c˜ ao
Mecanismos de controle de E/S em disco
Problemas com entrada n˜ ao controlada
Outros bons livros sobre redes de computadores, nos capítulos sobre a camada física do protocolo OSI.
Introdu¸ c˜ ao
Fun¸ c˜ oes
Destas características, não examinaremos aqui os detalhes eletromecânicos dos conectores (RJ-45, RS-232, RS-449, RS-422, etc.), pois são dados tabulados e a especificação conceitual de uma rede.
Suporte F´ısico
Codifica¸ c˜ ao e modula¸ c˜ ao
Por fim, a modulação do sinal corrige o problema de alcance em função de sua frequência. A modulação faz com que os sinais transmitidos tenham uma frequência maior (a onda portadora) e o sinal modulado é então recebido pela máquina receptora do sinal, que o desmodularia para extrair o sinal real em um processo idêntico ao da transmissão de rádio ou televisão . Essa modulação pode ser realizada classicamente em amplitude, frequência ou mesmo em fase, conhecidas pelas siglas ASK, FSK e PSK.
Alternativas de modulação mais recentes para transmissão de dados incluem técnicas de telefonia móvel, como CDMA, GSM, etc.
Introdu¸ c˜ ao
Outros bons livros sobre redes de computadores, nos capítulos sobre a camada de enlace do protocolo OSI.
Fun¸ c˜ oes
Enlace l´ ogico
Detec¸ c˜ ao de erros
Sincronismo de mensagens
Controle de acesso ao meio
Bridges
Outros bons livros sobre redes de computadores têm capítulos sobre a camada de rede do protocolo OSI.
Introdu¸ c˜ ao
Fun¸ c˜ oes
Destas características, não examinaremos aqui os detalhes de como os endereços são determinados (e como são tratados), deixando este artigo para ser discutido dentro da camada de transporte, no contexto do protocolo TCP/IP.
Estrat´ egia de Conex˜ ao
Roteamento
Congestionamento
Interconex˜ ao de redes
Outros bons livros sobre redes de computadores, nos capítulos sobre a camada de transporte do protocolo OSI e sobre TCP/IP.
Introdu¸ c˜ ao
Fun¸ c˜ oes
Protocolos de Conex˜ ao e desconex˜ ao
Endere¸ camento
Multiplexa¸ c˜ ao
TCP/IP
Uma observação importante a ser feita neste ponto é que a camada de transporte deve fornecer serviços equivalentes para uma comunicação, seja ela orientada à conexão ou não. Especificamente, dentro do TCP/IP, o serviço orientado à conexão é fornecido pelo protocolo TCP, enquanto o serviço sem conexão é fornecido pelo protocolo UDP. O protocolo UDP é usado para mensagens onde não é necessário estabelecer uma conexão entre as máquinas de comunicação de antemão.
Os endereços UDP são iguais aos endereços TCP, a única diferença é a necessidade de uma conexão prévia.
Introdu¸ c˜ ao
Outros bons livros sobre redes de computadores, nos capítulos sobre camada de aplicação. Assim, listaremos apenas algumas das aplicações existentes, com suas principais características, deixando apenas a aplicação de segurança para ser abordada com um pouco mais de detalhes no próximo capítulo.
Fun¸ c˜ oes
Os serviços de execução remota são basicamente uma especialização do serviço de acesso remoto onde o usuário apenas solicita a realização de uma determinada tarefa remotamente. Eles são uma das características definidoras dos sistemas distribuídos, representados, por exemplo, pelo serviço RPC (Remote Procedure Call) ou RMI (Remote Method Invocation in Java). No entanto, para não perder nenhuma informação, cabe mencionar aqui que segurança em redes de computadores significa fornecer meios para controlar o acesso aos serviços da rede.
Outros bons livros sobre redes de computadores ou sistemas operacionais, nos capítulos sobre segurança.
Introdu¸ c˜ ao
Denial of Service (DoS) ou Distributed Denial of Service (DDoS), em que uma máquina recebe um número excessivo de solicitações de serviço fazendo com que ela pare; Brechas do sistema, nas quais erros na implementação de um sistema operacional são usados para obter acesso ao equipamento. Sniffing, no qual você ouve as mensagens que circulam pela rede procurando nomes de usuários e suas senhas.
Autentica¸ c˜ ao
Controle de permiss˜ oes
A forma como esse controle é executado varia de sistema para sistema e de recurso para recurso. No caso de arquivos (e diretórios), por exemplo, o controle geralmente é feito por informações armazenadas sobre cada arquivo, que informam o tipo de acessibilidade que ele possui. Para acesso a máquinas, a estratégia pode envolver o uso de mecanismos de autenticação explícita ou, como é o caso do UNIX, usar arquivos que delimitam o acesso para cada máquina ou aplicação (por exemplo, arquivos .allow e .deny).
Vale ressaltar aqui também que no caso de uma máquina, todo esse controle de segurança é feito pelo sistema operacional, por meio do seu módulo de gerenciamento de arquivos (o File System), que será explorado no próximo capítulo.
Introdu¸ c˜ ao
Fun¸ c˜ oes
Prote¸ c˜ ao
Problemas de falha de registro surgem quando um usuário está salvando um arquivo. Isso porque como o disco é dividido em partes e setores, e um arquivo pode precisar ocupar várias partes e muitos setores, é necessário saber a sequência dos setores ocupados. Para reduzir (infelizmente não é possível eliminar) o risco de perda desse tipo de informação (faixas e setores ocupados por um arquivo), são utilizadas técnicas como páginas de sombra. ), em que salvar um arquivo em disco é feito em duas etapas.
Esta situação implica a existência de múltiplas cópias de um arquivo no sistema, o que requer cuidados para que todos os usuários que o acessem tenham cópias atualizadas do mesmo, e ainda que a cópia resultante, quando cessar o uso, seja aquela realmente pretendido.
Nomes e endere¸ cos
Mapeamento de nomes
Embora o sistema de arquivos possa fornecer aplicativos que executem essa operação automaticamente, o administrador deve sempre determinar a periodicidade dos backups e quais arquivos devem ser copiados a cada vez. Isso permite que diferentes áreas do disco tenham diferentes políticas de backup com base na frequência com que seus conteúdos são alterados. Outra função de um serviço de nomes é permitir o compartilhamento de arquivos, ou mais precisamente, controlar a abertura de arquivos, evitando assim que cópias desnecessárias de um arquivo coexistam na memória da máquina.
Isso inclui verificar se o arquivo já está aberto quando solicitado (atribuindo nomes a identificadores exclusivos desse arquivo) e verificar se o fecha, para evitar que o usuário perca o ponteiro do arquivo.
Endere¸ camento
Parte desse trabalho é feito por meio da estruturação de diretórios, que hoje são organizados em forma de árvores hierárquicas, com subdiretórios com diferentes permissões de acesso para cada usuário. Assim, quando um processo solicita um determinado arquivo, o que é feito é procurar na estrutura de diretórios o arquivo solicitado (de acordo com alguns caminhos de pesquisa predefinidos). Outras maneiras de organizar diretórios incluem diretórios simples (uma raiz) e de usuário (sem partições).
Para arquivos maiores, existem outros três endereços que operam em três níveis diferentes de indireção e fornecem endereçamento rápido de até 16 Gbytes em um sistema com páginas de 1024 bytes.
Introdu¸ c˜ ao
O gerenciamento de memória lida com a memória principal e suas interações com o cache e a memória secundária. O gerenciamento de memória é, portanto, fundamentalmente sobre o controle de quais dados vão para a memória, como são armazenados nela e como podem ser acessados. Isso envolve atividades de endereçamento, nas quais endereços de disco são mapeados para endereços de memória, atividades de alocação, nas quais se decide quais slots serão ocupados por quem e por quem, memória virtual, nas quais o conceito de memória principal é expandido para um tamanho infinito.
Abordaremos cada um desses pontos a seguir e concluiremos o capítulo com um estudo de como os recursos de gerenciamento de memória e processo afetam o desempenho do sistema.
Endere¸ camento
O gerenciamento dos registradores e grande parte do cache é feito pelo compilador, que já determina como os registradores serão ocupados ao gerar o executável e como ocupar o cache para agilizar o processamento. O gerenciamento das bibliotecas é feito pelo usuário (ou administrador) do sistema, enquanto grande parte do gerenciamento do disco é feito pelo sistema de arquivos, o que foi discutido no capítulo anterior. Segmentação, que nada mais é do que o uso de movimento dinâmico aplicado ao conceito de dividir o programa em partes menores como código, dados, etc.
Aloca¸ c˜ ao
Espa¸ cos cont´ıguos
Blocos
Dado qualquer endereço lógico, o endereço físico correspondente é determinado dividindo-o pelo tamanho da página, resultando em um inteiro (o quociente) correspondente ao número da página e outro inteiro (o restante) correspondente ao deslocamento em bytes dentro da página. O problema desse processo é que para acessar o conteúdo do endereço físico que corresponde ao endereço lógico fornecido, precisamos fazer três acessos à memória (um para localizar a tabela de dados). acessar o endereço desejado), o que levaria muito tempo. O problema dos três acessos pode ser bastante reduzido se utilizarmos memórias cacheadas (ou memórias associativas), nas quais parte da informação necessária estaria disponível em cache.
Assim, se for possível deixar na memória apenas o necessário em determinado momento, poderemos aproveitar melhor os espaços disponíveis.
Mem´ oria Virtual
Antes de discutir como a memória virtual funciona, precisamos definir alguns termos-chave para analisar os diferentes algoritmos de escalonamento. Falta de página, que é o evento que ocorre quando você precisa acessar um endereço de uma página que não está na memória; Conjunto residente, que é o conjunto de páginas que estão na memória em um determinado momento;
Um FIFO que seleciona a página mais longa na memória e está sujeito à anomalia de Belady.
Desempenho
Vis˜ ao global do sistema
Introdu¸ c˜ ao
Caracter´ısticas
Paralelismo
Transparˆ encia
Gerenciamento
Aplica¸ c˜ oes