Resumos dos capítulos :::

Introdução

  1. O que são sistemas de computação

  2. O que é Computação de Alto Desempenho

  3. Como se pode obter CAD

  4. CAD de baixo custo

  5. Redes de computadores e sistemas distribuídos

  6. O restante da disciplina

1. Sistemas de Computação

Não existe uma definição clara do que seriam sistemas de computação. Para o CNPq, por exemplo, dentro de sistemas de computação aparecem os sistemas digitais, compiladores, etc. Em nosso caso consideraremos apenas os sistemas que servem de interface entre o hardware e os programas aplicativos utilizados pelos usuários do sistema. Embora menos abrangente, essa definição permite identificar mais precisamente a atuação desses sistemas, evitando perder o foco com detalhes de arquitetura de computadores ou linguagens formais.

Partindo desse ponto de vista fica claro que os sistemas de computação englobam sistemas que permitem fazer um uso eficiente das máquinas, o que inclui sistemas operacionais e protocolos de redes de computadores, entre outras coisas.
 
 

2. Computação de Alto Desempenho

Entende-se Computação de Alto Desempenho (CAD daqui por diante) como a área da computação preocupada com a criação de condições para que processamentos de elevada carga computacional possam ser executados em intervalos de tempo factíveis, isto é, permitir que programas que levariam anos para fornecerem resultados em uma máquina comum possam faze-lo em bem menos tempo (horas ou dias), por exemplo.

Alguns exemplos de áreas que necessitam CAD são:

-- Física de Altas Energias, em que se analisam volumes gigantescos de dados (muito acima de Terabytes hoje em dia), coletados em meses de experimentos e que levariam alguns séculos para serem completamente examinados em equipamentos convencionais.

-- Bioinformática, em que o volume de dados (em genômica, por exemplo) também é gigantesco.

-- Controle de Energia Elétrica, em que é preciso analisar diversas possibilidades de ação (em caso de curto-circuito, por exemplo) e tomar a decisão correta de forma quase que instantânea. Nesse caso, uma máquina convencional levaria alguns minutos para tomar a decisão, o que inviabiliza a sua execução antes da piora da situação.

-- Mineração de dados, em que o volume de dados é alto e o processo de análise envolve uma quantidade elevada de restrições. Isso, por exemplo, é a base de funcionamento de mecanismos de busca como Google e outros.

3. Como obter CAD

CAD é obtida, sempre, através da paralelização das atividades a serem executadas pelo programa. Isto significa, por exemplo, fazer um programa que some duas matrizes linha por linha e não elemento por elemento, como fazemos. Para tanto, cada linha é entregue para um processador do sistema, que se encarrega de parte da tarefa e devolve os resultados para quem estiver interessado neles.

Fica claro então que uma condição necessária para a obtenção de CAD é a existência de vários elementos de processamento no sistema. A quantidade de elementos vai depender do grau de paralelismo do problema resolvido e da disponibilidade de recursos (dinheiro) existente. Máquinas com tal capacidade tem o seu preço iniciando em cerca de 500 mil dólares e indo bem além dos 50 milhões de dólares.

Deve ter ficado claro também, que outro componente importante em CAD é o mecanismo responsável pela comunicação entre os elementos de processamento. De forma simples, isso pode ser feito através do compartilhamento da memória ou através de uma estrutura de rede de computadores.

Do ponto de vista de arquitetura essas máquinas podem ser classificadas de várias formas (como deve ser visto no curso de Organização e Arquitetura de Computadores), sendo que para o nosso caso interessa apenas uma classificação rudimentar entre sistemas fortemente acoplados e sistemas fracamente acoplados, assim definidos:

-- Fortemente acoplados: são sistemas em que a conexão entre os vários elementos de processamento é feita, em geral, através de memória e barramentos compartilhados. Isto implica em máquinas de alto custo e de grande velocidade de processamento global (graças ao pouco tempo gasto em comunicação).

-- Fracamente acoplados: são sistemas em que a conexão é feita através de redes (o que implica em atrasos consideráveis de comunicação), trazendo uma grande redução no custo do sistema.

4. CAD de baixo custo

Do item anterior pode ser percebido que é possível obter (dentro de certas restrições é claro) CAD a um baixo custo. Para tanto se usam sistemas fracamente acoplados, que possuem um custo menor de implantação. Outras vantagens de tais sistemas são sua modularidade, que permite que o grau de paralelismo possa ser ampliado máquina a máquina, e sua maior utilização, pois como temos máquinas individualmente funcionais, podemos aproveitar a capacidade de processamento de cada uma delas, mesmo que a tarefa não exija alto desempenho.

A principal desvantagem da utilização desses sistemas está ligada ao custo alto de comunicação. Essa comunicação faz com que tais sistemas tenham um desempenho bastante inferior ao dos sistemas fortemente acoplados. Apesar disso, o seu uso tem se tornado cada vez mais intenso através da popularização dos sistemas distribuídos.
 

5. Sistemas distribuídos

O uso de sistemas distribuídos, que nada mais são do que redes de computadores com ambientes especialmente configurados para a paralelização de suas atividades e serviços, tem possibilitado o crescimento no número de sistemas de alto desempenho em uso. Entretanto, o funcionamento de um sistema distribuído é possível apenas graças a um ambiente de hardware e software preparado para a interação de programas. Isso implica, em outras palavras, na necessidade de um sistema operacional capaz de operar sobre várias máquinas e na existência de máquinas capazes de se comunicar entre si.

A infraestrutura de hardware é necessária para que a comunicação entre os programas paralelos possa ser feita de forma coordenada, sem a criação de eventuais problemas relacionados com a heterogeneidade das máquinas paralelas. Isto implica na criação de um protocolo de tradução entre as várias "linguagens" faladas nas diferentes máquinas.

Já a infraestrutura de software é mais trabalhosa para ser obtida, uma vez que para tanto é necessário que se transforme os mecanismos de gerenciamento de um sistema operacional convencional em mecanismos que operem sobre várias máquinas. Isto é feito para que o paralelismo possa ser aproveitado de modo transparente ao usuário, isto é, deve ser possível ao usuário solicitar a execução de um determinado programa e esse programa ser executado em qualquer máquina (ou mais de uma), sem que o usuário perceba que isso está ocorrendo.
 

6. A disciplina

No restante desse curso examinaremos como é feita a construção de um sistema operacional (convencional por simplicidade) e de uma rede de computadores (protocolos de comunicação). Ao final do semestre é esperado um bom domínio sobre esses tópicos, de tal forma que o aluno possa posteriormente realizar o projeto completo de um S.O. e estudar com mais profundidade os problemas relacionados aos sistemas distribuídos, além de poder iniciar o projeto de uma rede de computadores.

A partir deste capítulo introdutório o curso prossegue, inicialmente examinando alguns dos requisitos básicos para a existência de uma rede de computadores e posteriormente, em momentos adequados, são examinados os mecanismos de gerenciamento de um sistema operacional convencional, que serão mapeados futuramente para o caso de um sistema distribuído.

Dos alunos espera-se sempre a leitura prévia, nos livros indicados, dos tópicos a serem examinados em sala de aula. Primeiro por garantir uma melhor compreensão do que será ali discutido e segundo por permitir uma maior familiaridade com os livros usados na disciplina.
 
 

 
 
DISCLAIMER
 
 
O conteúdo desta página é de minha total responsabilidade, não representando o pensamento ou posições da UNESP.