 |
Páginas:
|
461
|
|
| Preço: |
R$ 119,00
|
| Autor(es): |
Uirá Ribeiro |
| Editora: |
Nova Terra |
| Formato: |
Livro Impresso
|
O Linux é, de longe, o sistema operacional mais popular nos clusters. Surge no horizonte uma nova onda: a computação sob demanda, Web services e aluguel de capacidade de processamento na Internet.
Para que tudo isso funcione, as aplicações precisam ser divididas de modo que as tarefas possam ser distribuídas de forma inteligente, com alta disponibilidade e performance. Este livro apresenta exatamente isso: os conceitos básicos dos sistemas distribuídos e os fundamentos da programação distribuída, enfatizando suas principais características: criação, manipulação e comunicação entre processos e máquinas, com dezenas de programas e exemplos feitos em C++ para o Linux.
O usuário estará apto a modelar, projetar e implementar uma solução utilizando a distribuição de tarefas, dentro de uma mesma máquina ou em várias máquinas. Também será capaz de: Criar um ambiente de programação em C++ no Linux com compiladores GNU; evitar race conditions e deadlocks com o uso de semáforos e manipulação de regiões críticas com as primitivas semget(), semop() e semctl; e criar programas que utilizam chamadas de procedimento remoto RPC, entre muitas outras tarefas.
Para os iniciantes, a obra contém ainda instruções para utilizar o compilador GNU GCC, depurar programas com o GDB e customizar o Vi para programação, além de muitos códigos-fonte explicados e diversos exercícios para treinamento.
Sobre o autor
Uirá Endy Ribeiro é formado em Processamento de Dados, pós-graduado em Telecomunicações e Mestre em Sistemas Distribuídos pela PUC Minas. Trabalhou como engenheiro na Lucent Technologies com centrais de tecnologia Softswitch de voz sobre IP. Atualmente é Diretor de tecnologia da Universidade Salgado de Oliveira e empreendedor do site Certificação Linux. É autor do livro Certificação Linux, Metodologia Científica: Teoria e Prática, TCC – Trabalho de Conclusão de Curso e 37 Hábitos dos Professores Altamente Eficazes.
| Conteúdo do Livro - Veja tudo que você vai aprender com este livro: |
Cápitulo 1 - Preparando para programar sistemas Distribuídos em C / C++
Editor de textos
Compilador
As opções do GCC
Opção de pré-processamento
Opções de compilação
Opções de avisos
Opções de depuração de códgo
Opções para otimização
Opções para procura de diretórios
Opções de ligação (Linking)
Depurador
Make
Utilizando o compilador gcc pela primeira vez
Utilizando o depurador gdb pela primeira vez
Exemplo de depuração de um programa
Cápitulo 2 - Introdução aos sistemas distribuidos
Escalonamento FIFO
Escalonamento Shortest-job-First
Escalonamento Round Robin
Escalonamento com prioridades
Estados de execução de processos
Os sistemas distribuídos
Aspectos importantes no desemvolvimento dos sistemas distribuídos
Máquinas paralelas
Kernel dos sistemas operacionais
Interrupções
Chamadas de sistema
Chamadas de sistema para manipulação de dispositivos
Chamadas de sistema referentes à comunicação
Capítulo - 3 Processos concorrentes
Indentificando um processo
pid_t getpid ()
pid_t getppid ()
pid_t getphrp ()
A primitiva exec ()
int execv (const char *aquivo, char *const argv[])
int execl (const char *arquivo, const char *args,...0)
Int execve (const char *aquivo, char *const argv[], char *conset env[])
Int execl (const char *arquivo, const char arg0, char *const env[],...)
Int execle (const char *arquivo, const char *arg0, char *const env[],...)
Int execvp (const char *arquivo, char *const argv[])
Int execlp (const char *arg0,...)
A primitiva system()
As primitivas fork() e waint()
A herança entre os processos pai e filho
As primitivas waint() e waitpid()
A primitiva exit()
Sinais
Primitiva kill()
A primitiva signal()
A primitiva alarm
A primitiva pause
Controle de procesos
Kill
Killall
Jobs
Bg
Fg
Capítulo 4 - processos leves (Threads)
User-Level threads
A primitiva pthread_create()
A primitiva pthread_join()
O nex generatin POSIX threads
Características do NPTL
Hyperthreading
Capítulo 5 - Sincronização de processos
IPC - communications
O comando ipcs
O comando ipcrm
Os semáforos
A primitiva semget()
A função semctl()
A função semop()
O semáforo binário de Dijkstra
Capítulo 6 - Comunicação entre processos
Condutores de mão única UNIX Pipes
A primitiva pipe()
A primitiva read()
A primitiva write()
A primitiva dup()
Os condutores FIFOs - named pipes
A primitiva mkfifo()
A primitiva mknod()
A primitiva unlink()
As filas de mensagens
A primitiva msgget()
A primitiva msgsnd()
A primitiva msgrcv()
A primitiva msgctl()
Memória compartilhada
A primitiva shmget()
A primitiva shmat()
A primitiva shmdt()
A primitiva shmctl()
Herança de segmento de memória compartilhada
Capítulo 7 - Deadlock
A Briga por recursos do sistema
Métodos para tratamento de deadlock
Prevenção de deadlcks
Algoritimo para evitar deadlocks
Capítulo 8 - A Gerência de memória
Gerenciamento automatico de memória
Gerenciamento manual de memória
Alocação de memória manual do GNU C
A função malloc()
A função realloc()
A função free()
A função alloca()
Operador sizeof()
Capítulo 9 - sistema de arquivos
Trabalhando com arquivos em C
A primitiva getcwd()
A primitiva opendir()
A primitiva readdir()
A primitiva closedir()
A primitiva link()
A primitiva symlivk()
A primitiva readlink()
A primitiva unlink()
A primitiva remove()
A primitiva rmdir()
A primitiva rename()
A primitiva mkdir()
A primitiva stat()
A primitiva fstat()
A primitiva lstat()
A primitiva creat()
A primitiva open()
A primitiva read()
A primitiva write()
A primitiva close()
Capítulo 10 - comunicação via sockets
A primitiva socket()
A primitiva bind()
A primitiva listen()
A primitiva accept()
A primitiva connect()
As primitivas send() e sendto()
As primitivas recv() e recvfrom()
A primitiva close()
A primitiva sendfile()
Capítulo 11 - Remote procedure calls (RPC)
O funcionamento do RPC
Definindo o protocolo
A interface RPC
Rotinas simplificadas e interface
Rotinas de interface de alto nível
Rotinas intermediárias de interface
Rotinas para experts
Desenvolvendo o código de aplicação cliente e servidor
Criando a aplicação servidora
Criando a aplicação cliente
Compilando e excutando uma aplicação RPC
Autenticação do RPC
Autenticação no lado cliente
Autenticação no lado servidor
Capítulo 12 - Guia rápido de C
Estrutura do programa e funções
Pré-processamento
Tipos de dados e declarações
Carga de variáveis
Constantes
Ponteiros
Arrays
Estruturas
Operadores
Controle de fluxo
Bibliotecas padrão ANSI
Teste de Tipo de Caracteres
Operações com String
Entrada e Saída
Entrada e Saída em Arquivos
Lista de Argumentos Variados
Funções de Utilidade Padrão
Conversões
Alocação de Espaço
Funções Array
Funções Matemáticas
Limites Inteiros
Capítulo 13 – Guia Rápido do VI
Customizando o VI Para Programação
Escrevendo Caixas de Comentário
Adicionando Outras Macros
Recursos Extras
Capítulo 14 – Encontrando Documentação
Encontrando a Documentação Necessária em /usr/share/doc
Utilizando as Páginas Info
Utilizando as Páginas do Manual
Utilizando os Comandos apropos e whatis
Localizando Ajuda na Internet
Capítulo 15 – Exercícios de Fixação
BIBLIOGRAFIA
ÍNDICE REMISSIVO
|