Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Apostila Info 2010, Notas de estudo de Informática

um pouco mais de conhecimento

Tipologia: Notas de estudo

2012

Compartilhado em 02/05/2012

hyago-jhon-12
hyago-jhon-12 🇧🇷

2 documentos

1 / 153

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
SISTEMAS COMPUTACIONAIS ...................................................................................................................7
O
RGANIZAÇÃO DE
C
OMPUTADORES
..........................................................................................................................................7
Álgebra booleana .................................................................................................................................................................7
Sistemas de numeração e representação de dados...............................................................................................................8
Aritmética computacional ....................................................................................................................................................8
Microprocessadores: Componentes .....................................................................................................................................8
Microprocessadores: Arquitetura ........................................................................................................................................9
Dispositivos periféricos ........................................................................................................................................................9
Conceitos de interrupções ..................................................................................................................................................10
Estruturas de endereçamento .............................................................................................................................................10
Compiladores, Ligadores e Interpretadores.......................................................................................................................11
S
ISTEMAS
O
PERACIONAIS
.......................................................................................................................................................12
Conceitos Básicos...............................................................................................................................................................12
Gerenciamento de Processos .............................................................................................................................................13
Gerenciamento de Memória ...............................................................................................................................................13
Sistemas de Arquivos..........................................................................................................................................................15
Gerenciamento de Dispositivos ..........................................................................................................................................16
Concorrência......................................................................................................................................................................17
Concorrência: Deadlocks...................................................................................................................................................17
R
EDES DE
C
OMPUTADORES
.....................................................................................................................................................19
Comunicação de dados.......................................................................................................................................................19
Meios de transmissão .........................................................................................................................................................19
Redes locais e de longa distância.......................................................................................................................................20
Topologias..........................................................................................................................................................................20
Serviços de comunicação ...................................................................................................................................................21
Protocolos ........................ .................................................................. ................................................................ ................22
Equipamentos .....................................................................................................................................................................22
Sistemas Distribuídos .........................................................................................................................................................23
Segurança...........................................................................................................................................................................23
A
RQUITETURA
OSI
DA
ISO.....................................................................................................................................................24
Camada Física ...................................................................................................................................................................24
Camada de Enlace de Dados .............................................................................................................................................25
Camada de Rede.................................................................................................................................................................25
Camada de Transporte .......................................................................................................................................................26
Camada de Sessão..............................................................................................................................................................26
Camada de Apresentação...................................................................................................................................................26
Camada de Aplicação ........................................................................................................................................................26
TCP/IP....................................................................................................................................................................................26
Camadas do TCP/IP...........................................................................................................................................................27
Camada de Acesso à Rede (ou Camada de Interface)........................................................................................................27
Camada Internet (ou Camada de Inter-Rede) ....................................................................................................................27
Camada de Transporte .......................................................................................................................................................28
Camada de Aplicação ........................................................................................................................................................28
Protocolo IP .......................................................................................................................................................................28
Protocolo TCP....................................................................................................................................................................28
Formato do Pacote IP ........................................................................................................................................................29
Classes de Endereços IP ....................................................................................................................................................29
Algoritmo de Transmissão de pacotes IP ...........................................................................................................................30
Algoritmo de Recepção de pacotes IP ................................................................................................................................30
W
INDOWS
(2003/XP/2000/98)................................................................................................................................................31
Bibliotecas de ligações dinâmicas......................................................................................................................................31
Arquitetura Distribuída ......................................................................................................................................................32
M
ODELO
C
LIENTE
S
ERVIDOR
..................................................................................................................................................32
2 camadas...........................................................................................................................................................................32
3 camadas...........................................................................................................................................................................32
N camadas ..........................................................................................................................................................................32
Chamadas remotas .............................................................................................................................................................32
Sincronismo e filas de mensagens ......................................................................................................................................33
C
ONCEITOS DE
I
NTERNET
........................................................................................................................................................33
Domain Name Service/System (DNS).................................................................................................................................33
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe Apostila Info 2010 e outras Notas de estudo em PDF para Informática, somente na Docsity!

Sistemas Computacionais

Organização de Computadores

Um computador é organizado basicamente pela UCP, pela Memória e os Dispositivos de Entrada e Saída.

A UCP ou CPU ( Central Processing Unit ) é responsável pelo processamento e execução dos programas armazenados na memória principal. Ela é composta pela UAL (Unidade Aritmética e Lógica) e a UC (Unidade de Controle), que busca, inter- preta e controla as instruções e demais componentes do computador.

Registradores são dispositivos de armazenamento temporário, localizados na UCP, extremamente rápidos, com capacidade para apenas um dado (uma palavra). Está localizado no chip, e os seus dados são voláteis.

Álgebra booleana

Os circuitos lógicos são construídos a partir das portas lógicas, que implementam fisicamente as funções booleanas básicas. A representação padrão destes três blocos lógicos é mostrada a seguir.

NOT AND OR

Os três principais operadores da álgebra booleana são os operadores NOT, AND e OR.

  • O operador unário NOT é representado como Ā. O resultado desta operação sobre uma variável é a inversão ou ne- gação do valor da variável. Isto é, se a A = 1 então Ā = 0 e vice-versa.
  • O operador AND é representado pelo símbolo •, como em A • B. O resultado da aplicação deste operador sobre vari- áveis booleanas é igual a 1 somente se todas as variáveis forem iguais a 1. Caso contrário, o resultado é 0. Esta ope- ração é conhecida como produto lógico.
  • O operador OR é representado pelo símbolo +, como em A + B. O resultado da aplicação deste operador sobre vari- áveis booleanas é igual a 1 se pelo menos uma das variáveis for igual a 1. Caso contrário, o resultado é 0. Esta ope- ração é conhecida como soma lógica.

Existem várias leis descritas pela álgebra de Boole que são úteis no tratamento das equações lógicas:

  • Lei da identidade: A + 0 = A e A • 1 = A;
  • Lei do zero e do um: A + 1 = 1 e A • 0 = 0;
  • Lei da inversão: A + Ā = 1 e A • Ā = 0;
  • Lei da comutatividade: A + B = B + A e A • B = B • A;
  • Lei da associatividade: A + (B + C) = (A + B) + C e A • (B • C) = (A • B) • C;
  • Lei da distributividade: A • (B + C) = (A • B) + (A • C) e A + (B • C) = (A + B) • (A+ C).

Além dessas leis existem dois teoremas conhecidos como Teoremas de De Morgan , cuja formulação é:

Sistemas de numeração e representação de dados

A nossa representação de números é baseada em um sistema de 10 algarismos (0 a 9), manipulados em múltiplos de 10. Esta representação é conhecida como a base 10.

Já os computadores utilizam apenas dois símbolos (0 e 1), representados pela voltagem elétrica (ligado ou desligado). Essa unidade de informação é chamada de bit, e é a abreviatura de binary digit , em inglês. Assim, um bit pode representar dois números, o 0 e o 1. Se usarmos dois bits, poderemos representar quatro estados diferentes, com três bits, já são oito estados, e assim por diante. Chamamos de um byte, o conjunto de oito bits, que pode representar 2^8 estados (256), ou os números de 0 a

Aritmética computacional

As palavras de um computador são compostas por bits e podem representar números armazenados na memória. Estes núme- ros podem ter diferentes significados, como inteiros ou reais, serem positivos ou negativos:

  • Complementa Dois: Os computadores manipulam tanto números positivos quanto números negativos, que são re- presentados em complemento a 2. Nesta convenção os números que possuem 0s à esquerda são considerados positi- vos e os números com 1s à esquerda são considerados negativos. O complemento a 2 é obtido invertendo-se o núme- ro binário e depois somando 1 a este valor.
  • Adição e Subtração: Numa soma os bits são somados um a um da direita para a esquerda, com os carries sendo passados para o próximo bit à esquerda. A operação de subtração usa a adição. O subtraendo é simplesmente negado antes de ser somado ao minuendo.
  • Multiplicação e Divisão: A multiplicação precisa apenas de dois passos principais: o teste do produto e o seu deslo- camento. A divisão é a operação recíproca da multiplicação. Dentre as operações aritméticas é a que aparece menos freqüentemente nos códigos dos programas.

Microprocessadores: Componentes

O processador (CPU) é o componente vital de um sistema de computação, responsável pela realização das operações de pro- cessamento (cálculos, entre outros) e de controle durante a execução de um programa.

O ciclo básico de uma instrução é: BUSCA -> DECODIFICÃO -> EXECUÇÃO. Outra divisão (para pipelines ) é: Busca ( fetch ), Decodificação, Busca do Operando, Execução e Armazenamento do resultado.

ção. Quando a CPU é interrompida, ela pára e transfere a execução para um local fixo (rotina de serviço) para tratar a interrupção (divisão por zero, acesso inválido...)

  • Spooling: Vêm de Simultaneneous peripheral operation on-line , e é uma técnica para aumentar a eficiência dos sis- temas operacionais, base do sistema batch. Um exemplo é a utilização de impressoras.
  • Canais de DMA ( Direct Memory Access ): é um recurso da placa mãe que permite que os dispositivos periféricos (placa de vídeo ou som, disco rígido, CD-ROM) acessem diretamente a memória RAM, sem consumir poder de pro- cessamento da CPU (apenas no início e no final da transferência). Cada dispositivo pode ocupar apenas um canal. Note que o processador não acessa a memória enquanto a controladora de DMA o faz (um só barramento), mas pode usar a memória cache.

Conceitos de interrupções

Inicialmente, quando começou-se a usar sistemas operacionais, um programa que estivesse sendo executado tomava o contro- le da máquina e só quando o programa encerrava é que o controle era devolvido para o sistema operacional. Quando ocorria algum problema (por exemplo, um erro no programa) não havia meios do sistema operacional retomar o controle da máquina, exceto com o usuário derrubando o sistema e recarregando o sistema operacional. Ficou então evidente a necessidade de ha- ver um meio do sistema operacional poder retomar o controle da máquina, em situações de exceção.

Também ocorreu que as UCP's ficaram mais rápidas e mais eficientes, porém os dispositivos periféricos de E/S compatíveis progrediram menos em velocidade (ou seja, ficaram comparativamente mais lentos).

A resposta a estes problemas foi a utilização do mecanismo de INTERRUPÇÕES. Interrupções são modificações no fluxo de controle causadas por uma ação externa, geralmente relacionada a Entrada ou Saída. Uma interrupção é um sinal de controle enviado por um agente externo (um dispositivo) ao microprocessador, quando um determinado evento é detectado. A inter- rupção é um sinal de hardware.

Este mecanismo força o processador a tratar o evento externo. A detecção de uma interrupção faz com que o processador transfira o controle para uma rotina de tratamento de interrupção ( interrupt handler ). A rotina de tratamento de interrupções faz o processador executar as seguintes ações:

  1. Detectar a fonte da interrupção (o dispositivo que interrompeu)
  2. Executar as ações apropriadas (que dependem do dispositivo)
  3. Retornar ao ponto do programa em que estava quando iniciou o atendimento à interrupção.

Interrupções de software ( traps ou exceptions ) são devidas a:

  • Algum evento gerado pela execução de uma instrução, como uma divisão por zero, overflow , código de operação in- válido, tentativa de acesso a uma área de memória protegida ou inexistente, etc
  • A um evento programado.
  • Traps são síncronas com o programa, enquanto interrupções associadas à E/S são assíncronas.

Estruturas de endereçamento

Os processadores podem acessar a memória de vários modos diferentes. A flexibilidade em seu acesso garante uma maior facilidade e performance ao trabalhar com variáveis, arrays , registros, ponteiros e outros dados.

  • Imediato: a instrução contém o próprio operando. Mais rápido, mas a faixa de valores é menor.
  • Direto: instrução contém o endereço de memória com o operando. Ex: mov a, 25h (do início da mem)
  • Indireto: instrução contém o endereço de memória com o apontador para o endereço com o operando. Mais lento.
  • Com registrador: instrução contém o registrador com o operando. Equivalente ao direto. Ex: mov ax, bx
  • Indexado: instrução contém o (registrador + índice) que aponta para o endereço de memória com o operando.
  • Registrador-base: Instrução contém o (reg. base + deslocamento) que aponta para o endereço com o operando.
  • Com pilha: há um apontador de pilha, e utiliza-se instruções pop/push para obter o operando.

Compiladores, Ligadores e Interpretadores.

Existem dois tipos de aplicações para converter um código em uma linguagem para código de máquina:

  • Compilador: traduz um programa escrito em uma linguagem de alto nível em código objeto. Esse código objeto é então ligado ( linked ) com os módulos de biblioteca de outros programas, para produzir um executável. O arquivo ge- rado pode ser então executado por um carregador, que também possui a função de resolver endereçamentos e outras tarefas que dependem do sistema operacional. Exemplo: C, C++, Pascal.
  • Interpretador: interpreta e executa um código ao mesmo tempo. Ele não produz um arquivo executável, pois a sua saída depende do código fonte e dos valores de entrada. Exemplo: BASIC.

Gerenciamento de Processos

Um programa é uma seqüência de instruções que descrevem a execução de uma tarefa. Um processo é um programa em execução. O estado de um processo consiste do programa, da próxima instrução a ser executada, os valores das variáveis uti- lizadas, e o status dos dispositivos de entrada e saída.

Para guardar o estado de um processo, é criado um vetor de estado , que armazena todas as partes mutáveis do processo, ou seja, todos citados acima, menos o programa, que é imutável (em boas práticas de programação).

Para evitar que um programa acesse a área de outro, pode ser utilizado um registrador de base e outro de limite, com o espaço de endereçamento lógico do programa em execução. O próprio SO possui um mecanismo para se proteger de processos, que são os bits de proteção (modo usuário e modo privilegiado / monitor).

Processos precisam de tempo de CPU, memória, arquivos e dispositivos de I/O para realizar a sua tarefa. Estes recursos po- dem ser alocados durante a sua criação ou a sua execução. O Sistema Operacional deve:

  • Criar e excluir processos de usuário e de sistema
  • Suspender e retomar processos
  • Dar mecanismo para a sincronização e comunicação de processos
  • Tratar deadlocks

O escalonamento de CPU tem origem com a introdução de sistemas multiprogramados. Sempre que um processo precisa esperar (E/S), outro processo pode assumir o uso da CPU.

O escalonamento desse tipo é uma função fundamental do sistema operacional. Quase todos os recursos do computador são escalonados antes do uso, e esse escalonamento é vital para o projeto do Sistema Operacional.

Diferentes algoritmos de escalonamento de CPU possuem diferentes propriedades e podem favorecer uma classe dos proces- sos em detrimento de outro. Alguns critérios de escalonamento são:

Ciclo de Burst CPU – E/S: Essa será a medida adotada para caracterizar cada processo em nosso algoritmo. A execução de um processo começa com um burst (surto) de CPU, que é seguido por um burst de E/S, que por sua vez, é seguido por outro burst de CPU, depois outro burst de E/S, e assim por diante. Por fim, o burst de CPU final termina com uma requisição do sistema para terminar a execução.

  • Turnaround (tempo de retorno): também conhecido como tempo de execução. Do ponto de vista de um processo específico, o critério importante é o tempo necessário para executar esse processo. O intervalo desde o momento da submissão de um processo até o momento do término é o turnaround. O turnaround é a soma dos períodos gastos es- perando para entrar na memória, esperando na fila de processos ( ready queue ), executando na CPU e realizando E/S.
  • Tempo de espera: é a soma dos períodos gastos aguardando na fila de espera. Para sistemas interativos (como de tempo compartilhado) busca-se uma variância no tempo de resposta do que minimizar o tempo de resposta médio.

Alguns algoritmos de escalonamento de processos são:

FCFS (First Come First Served): neste escalonamento, o primeiro processo a chegar na fila é o primeiro a ser atendido, o que maximiza o seu throughput.

Round Robin: no escalonamento RR ou circular, os processos são organizados numa fila segundo sua ordem de chegada, sendo então despachados para execução. No entanto, ao invés de serem executados até o fim (completion), a cada processo é concedido apenas um pequeno intervalo de tempo ( time slice ou quantum). Caso o processo não seja finalizado neste interva- lo de tempo, ocorre sua substituição pelo próximo processo na fila de processos ativos, sendo o processo em execução inter- rompido e novamente colocado na fila de processos prontos, mas em seu fim. Isto significa que ao final de seu intervalo de tempo, isto é, de seu quantum, ocorre a preempção do processador, ou seja, o processador é designado para outro processo

Gerenciamento de Memória

A memória é o local onde os programas e dados são armazenados. A codificação binária ( bits ) foi escolhida para representar a informação, pois é mais confiável (e não mais eficiente!).

Uma célula de memória é a menor unidade endereçável. Cada célula tem um endereço único, e geralmente ocupam um byte , uma palavra, ou outra unidade.

Para evitar que dados sejam interpretados como instruções, ou vice-versa, um bit extra pode ser usado para cada célula para indicar o seu conteúdo. Na verdade vários bits extras podem existir com várias finalidades.

O processador central lê e grava na memória, assim como a controladora de DMA. Os programas devem ser mapeados para endereços absolutos, e instruções e dados são acessados. Além disso, vários programas ficam ao mesmo tempo na memória. O sistema operacional é responsável por:

  • Manter um registro das áreas ocupadas da memória (e por quem)
  • Decidir quais os processos que irão residir na memória
  • Alocar e desalocar espaço na memória, conforme necessário

A CPU se comunica com a memória através dos registradores MAR e MBR, já explicados anteriormente.

A amarração de endereços lógicos ( binding de programas executáveis) com físicos (da memória principal) é feita:

  • em tempo de compilação: usado em arquiteturas antigas, onde o programa era sempre carregado na mesma posição da memória. Só faz sentido com monoprogramação
  • em tempo de carga: executável contém mapa de relocação. O programa é interpretado, e os endereços corrigidos.
  • em tempo de execução: há necessidade de hardware especial. Exemplo: registrador base cujo valor é sempre soma- do a endereço lógico.

Alocação Contígua Simples

A memória principal é dividida em duas partições: Sistema Operacional (parte baixa) e Processo do Usuário (restante da me- mória). O usuário tem controle total da memória, inclusive da área do SO (Ex.: DOS). A proteção ( bits de proteção) foi poste- riormente incluída, assim como registradores de base e limite.

Relocação é o processo de designar endereços de carga às várias partes do programa, ajustando código e dados para refletir os endereços designados.

Alocação Contígua Particionada

Imposta pela multiprogramação, existem múltiplas partições, e a memória é dividida em blocos. Cada partição pode receber um processo (programa), mas não considera a existência do Swapping. Para corrigir fragmentação interna nas partições, o seu tamanho passou a ser dinâmico, e não fixo. Mas isso também pode gerar fragmentação externa (pedaços livres da memória). Algoritmos para alocação contígua: First Fit (primeiro espaço), Best Fit (menor espaço livre) e Worst Fit (maior espaço).

Swapping: é uma técnica para evitar a fragmentação externa, e lidar com a falta de espaço em memória, já que os processos precisam estar na memória principal para serem executados. Mas nunca deve ocorrer em processos com E/S pendentes.

Segmentação

  • espaço lógico do programa é dividido em unidades que têm sentido para o programa: segmentos
  • cada segmento pode ser alocado na memória física de forma independente

Paginação

  • Mapeamento entre páginas físicas ( frames ) e páginas lógicas ( pages )
  • mapeamento de endereços através de uma tabela de páginas
  • há fragmentação interna
  • cache da tabela de páginas: TLB ( Translation Look-aside buffers ). Mas como o seu tamanho é limitado (de 8- entradas), há a possibilidade de paginação multinível, para gerar tabelas de páginas menores
  • conjunto de trabalho: páginas referenciadas por um programa. É desejável: espaço de endereçamento físico > con- junto de trabalho. Obs.: espaço de endereçamento virtual > espaço de endereçamento físico

TEMPO DE ACESSO = TEMPO DE (SEEK + LATÊNCIA + TRANSFERÊNCIA)

  • Tempo de Seek: seek ou busca é o tempo gasto na interpretação da localização do dado no disco (endereço do dado no disco) pela unidade de controle e no movimento mecânico do braço que sustenta a cabeça magnética, até alcançar a trilha desejada. Este tempo é variável de acesso para acesso. os tempos típicos de discos rígidos atuais podem vari- ar de aproximadamente 0 ms (referente ao acesso a um setor localizado na mesma trilha onde no momento está a ca- beça de leitura), 3 ms (para acesso a setores em trilhas adjacentes) a até 20 ms (referente ao acesso entre trilhas loca- lizadas nas extremidades do disco). Este tempo é diretamente dependente da qualidade dos mecanismos eletromecâ- nicos que comandam os braços atuadores. Discos de menores dimensões também tendem a ser mais rápidos.
  • Tempo de Latência: também chamada latência rotacional, é o tempo gasto entre a chegada da cabeça de leitura / gravação sobre a trilha e a passagem do setor desejado na posição da cabeça. Como o disco permanece constante- mente girando, a cabeça magnética só pode ler ou gravar um dado quando o setor endereçado está imediatamente abaixo dela. Portanto, há que aguardar que o disco gire até que o setor endereçado fique posicionado abaixo da cabe- ça. Esse tempo depende diretamente da velocidade com que o disco gira (5400, 7200 RPM, etc)
  • Tempo de Transferência: é o tempo consumido na transmissão dos bits entre computador e disco e vice-versa. Este tempo depende da interface e do disco, que definem o throughput (taxa de transferência) do disco. Atualmente, de- pendendo da interface, o throughput seria da ordem de até 33 Mbytes/s. Como um setor tem 512 bytes, em 1 ms se poderia transferir cerca de 33 setores e o tempo de transferência de um setor seria da ordem de 15 ns.

Obs.: Os tempos relativos a unidades ( drivers ) de disquetes são muito maiores que os acima indicados para discos rígidos. Drivers de disquete giram a aproximadamente 300 rpm e o throughput é da ordem de 500 kbytes/s; os tempos de acesso mé- dios são da ordem de 60 a 100 ms.

Após a formatação física, temos um HD dividido em trilhas, setores e cilindros. Porém, para que este disco possa ser reco- nhecido e utilizado pelo sistema operacional, é necessária uma nova formatação, chamada de formatação lógica. A formata- ção lógica consiste em escrever no disco a estrutura do sistema de arquivos utilizado pelo sistema operacional.

Um sistema de arquivos é um conjunto de estruturas lógicas e de rotinas que permitem ao sistema operacional controlar o acesso ao disco rígido. Diferentes sistemas operacionais usam diferentes sistemas de arquivos. Os principais são:

  • FAT16 ( File Allocation Table ): utilizado pelo MS-DOS, Windows 95 e compatível com Windows 98, permitindo um máximo de 65526 clusters, que não podem ser maiores que 32 KB. A principal desvantagem desse sistema é o desperdício de espaço para partições maiores que 1 Gb, e o seu tamanho máximo por partição limitativo, de 2 Gb.
  • VFAT: extensão da FAT16, que ao invés de permitir apenas arquivos com 11 caracteres (8.3), reserva uma área com nomes grandes, fazendo com que o MS-DOS interprete os arquivos como "Arquiv~1", "Arquiv~2", etc.
  • FAT32: utiliza 32 bits de endereçamento para cada cluster , de apenas 4 Kb cada. Utilizado pelo Windows 95 e 98, a maior desvantagem é o alto número de clusters , diminuindo o desempenho. Tamanho máximo de 2 Terabytes.
  • NTFS ( New Technology File System ): sistema de arquivos de 32 bits onde os setores do disco são endereçados di- retamente. Cada unidade de alocação possui apenas 512 bytes, evitando o desperdício de disco. Utilizado pelo Win- dows NT em diante. É um sistema mais seguro e confiável que o FAT, além de flexível e adaptável.
  • EXT2: é um sistema de arquivo utilizado apenas pelo Linux, que apresenta vários recursos avançados de segurança e suporte a partições de até 4 Terabytes. Outros sistemas relacionados são o EXT3, RaiserFS, etc.

Gerenciamento de Dispositivos

O Sistema operacional deve ocultar os detalhes de dispositivos de I/O de usuários. Ele deve:

  • Fornecer uma interface geral de driver de dispositivos específicos
  • Fornecer um componente de buffering , armazenamento em cachê e spooling.

Para evitar que a CPU fique presa por longos períodos em Entrada e Saída, podem existir processadores especializados de E/S, de baixo custo.

Além disso, o sistema operacional guarda uma tabela de status de dispositivos , com o registro de pedidos de I/O simultâ- neos.

O DMA é utilizado para evitar que transferências de I/O rápidas (síncronas), como fitas, disco ou rede de comunicação, não interrompam o CPU a cada byte transferido. O DMA transfere diretamente para a memória, sem interrupção da CPU. Uma interrupção é gerada apenas a cada bloco, para encontrar um buffer e configurar os registradores (com endereços inicial e fi-

nal). Como a memória só pode transferir 1 palavra / ciclo, a CPU às vezes concorre com o DMA para realizar operações de acesso à memória (apenas um barramento).

O código ASCII é um mapeamento de bits para caracteres de texto, por exemplo: 0 (47), A (65) e a (97).

Concorrência

A programação concorrente pode ocorrer de duas formas diferentes:

  • Processos: ocupam espaços de endereços diferentes, e se comunicam usando pipes oferecidos pelo sistema opera- cional.
  • Threads: ocupam o mesmo espaço de endereço de uma aplicação, e a comunicação é feita por um mecanismo da linguagem de programação (a JVM do Java oferece um mecanismo multithreading )

Em alguns tipos de aplicações, threads são essenciais, como no caso de aplicativos com interface gráfica, em que o programa pode esperar interação do usuário enquanto processa alguma tarefa. Outro exemplo são servidores que podem esperar por requisições de novos clientes enquanto lidam com requisições já enviadas.

Para que dois ou mais processos possam ter acesso a um mesmo recurso compartilhado, existe um mecanismo que controla este acesso, chamado de mecanismo de sincronização. Enquanto um processo estiver acessando determinado recurso, todos os outros que queiram acessá-lo deverão esperar. Isso se chama Exclusão Mútua.

A tentativa de implementar a exclusão mútua nos programas traz alguns problema. Os mais freqüentes são:

  • Velocidade de execução dos processos: quando um processo mais rápido é obrigado à esperar que um lento use o recurso e o libere. Um gargalo gerado pela consistência dos processos onde o mais rápido ficará limitado à velocida- de do mais lento. O sistema todo fica lento como conseqüência
  • Starvation : o SO determina as prioridades dos processos, de duas formas diferentes: por escolha aleatória ou por prioridades. Quando a escolha é aleatória, existirá a probabilidade de um processo nunca ser escolhido, quando for uma escolha por prioridades, um processo de menor prioridade nunca receberá o acesso ao recurso, e ai este proces- so nunca executará sua rotina.
  • Sincronização condicional: quando um recurso não está pronto para ser utilizado, o processo que vai acessar o re- curso ficará em estado de espera até que o mesmo esteja pronto. Existe o risco deste recurso nunca ficar pronto por já estar com problemas. Então todo o sistema fica em espera.

Algumas soluções implementadas para lidar com este problema são:

  • Semáforos: um semáforo é uma variável associada a um recurso compartilhado, indicando quando este está sendo acessado por um outro processo. Quando um processo entra ou sai da região crítica, o seu valor é alterado, de forma que outros processos possam entrar na região. Existe uma fila de espera associada ao semáforo, onde os processos terão acesso ao recurso na ordem de chegada.
  • Monitores: são mecanismos de sincronização compostos de um conjunto de procedimentos, variáveis e estrutura de dados definidos dentro de um módulo cuja finalidade é a implementação automática da exclusão mútua entre seus procedimentos. A implementação é feita pelo compilador
  • Troca de mensagens: é um mecanismo de comunicação e sincronização entre os processos, implementado pelo sis- tema operacional através de duas rotinas do sistema SEND (envio de mensagem para o processo receptor) e RECEIVE (recebimento do processo transmissor). No sistema de troca de mensagens, existe a possibilidade da men- sagem se perder. Já o Endereçamento Indireto, que é o uso de uma área compartilhada para a troca de mensagens.

Concorrência: Deadlocks

Um problema da concorrência é quando métodos sincronizados chamam outros métodos sincronizados. Isso pode causar de- adlock , quando uma thread A espera a liberação de um objeto, que está com a thread B. Mas esta só vai liberar o objeto após uma alteração de outra thread (A, por exemplo), monopolizando-a. Exemplos:

Cenário 1 (Não ocorre deadlock ), saldo do caixa: R$0.

  • Cliente 1 é atendido (recebe acesso do caixa), deposita 1000 reais e libera o caixa
  • Cliente 2 é atendido (recebe o acesso do caixa), saca 800 reais e libera o caixa.

Cenário 2: (Ocorre deadlock ), cliente 2 chega antes de cliente 1

Redes de Computadores

Os primeiros sistemas de computadores eram grandes e caros. Os seus usuários organizavam as tarefas a serem processadas em jobs , e o computador fazia o processamento em lote ( batch ). As tarefas eram executadas uma a uma, organizadas em uma fila de entrada. Na década de 80 surgiram os terminais remotos, que permitiram que os usuários pudessem acessar os compu- tadores através de linhas de comunicação. Nesta mesma época surgiu o conceito de tempo compartilhado ( time sharing ), para otimizar o uso de mainframes. Os terminais passaram a ser ligados ao computador central por cabos e novos recursos surgi- ram utilizando esta interconexão.

As redes modernas têm raízes nos primeiros sistemas de telefones e telégrafos. Para lidar com o aumento no número de usuá- rios, foi preciso criar novos meios de distribuir o processamento e utilização dos outros recursos pelas redes, criando o con- ceito de multi-processamento e sistemas de processamento distribuídos. Na década de 60, o governo dos EUA iniciou o proje- to ARPA ( Advanced Research Project Agency ).

Uma rede de computadores é um conjunto de módulos processadores capazes de trocar informações. Seus objetivos são:

  • Compartilhamento de recursos: Permite que programas, dados, área de armazenamento, periféricos, entre outros recursos, estejam disponíveis para qualquer um na rede, independente de sua localização física. Este é a principal motivação para o uso de redes de computadores.
  • Aumento na Confiabilidade: Considerando que passa a existir redundância dos recursos compartilhados pela rede, a confiança de um sistema projetado para ter tolerância à falhas aumenta.
  • Redução de Custos: O custo benefício de um microcomputador em relação ao seu processamento é muito mais bai- xo que o de um mainframe , logo a fragmentação do processamento é desejável.
  • Escalabilidade: A possibilidade de aumentar o processamento do sistema gradualmente, a medida que cresce o vo- lume do trabalho, adicionando novos módulos processadores, permite adiar custos.
  • Cooperação: Pessoas distantes geograficamente podem trabalhar e cooperar de forma conjunta.

Comunicação de dados

A comunicação de dados em nível global tornou-se uma realidade do nosso tempo. O desafio que a comunicação de voz re- presentou para as gerações passadas volta atualmente, sob a forma de aplicações de telemática, em várias modalidades de troca de informação entre computadores heterogêneos situados em ambientes remotos, interconectados através dos sofistica- dos meios oferecidos pela engenharia de telecomunicações.

A Comunicação de Dados diz respeito ao modo como os dados são manipulados, transformados e transportados entre pontos quaisquer. Exemplos disso são os modos simplex (unidirecional), half-duplex (uma direção de cada vez) e full-duplex de co- municação, as bandas passantes, as modulações de sinais e a criptografia.

As Redes de Computadores são mecanismos que utilizam a comunicação de dados e existem para prover: comunicação entre pontos, compartilhamento de recursos e confiabilidade da integridade dos dados transferidos.

Meios de transmissão

Basicamente existem dois tipos de tecnologias de meios de transmissão:

  • Redes em Difusão: Apenas um canal de transmissão compartilhado por todas as máquinas.
  • Redes Ponto-a-Ponto: Existem várias conexões entre pares individuais de estações.

A transmissão de dados, quando realizada nos dois sentidos é denominada duplex. No caso em que ela se realiza alternada- mente, ou seja, ora num sentido, ora no outro, ela se denomina half-duplex. No caso em que ela se realiza simultaneamente nos dois sentidos, esta será denominada full-duplex.

Os bits podem ser transmitidos de forma paralela , onde são simultaneamente transportados por várias linhas (mais adequado à comunicação entre equipamentos próximos), ou serial , onde os bits são encaminhados através de uma única linha de comu- nicação (ideal para equipamentos muito distantes). A forma de delimitar os bits pode levar em conta duas diferentes filosofias — a transmissão serial síncrona e a serial assíncrona.

  • Transmissão síncrona: os bits de dados são transmitidos segundo uma cadência pré-definida, obedecendo a um si- nal de temporização (clock). O receptor, conhecendo os intervalos de tempo permitindo delimitar um bit, poderá i- dentificar a seqüência dos bits fazendo uma amostragem do sinal recebido
  • Transmissão assíncrona: a separação entre os bits é feita através de um sinal especial com duração variável. Um caso típico é a transmissão de caracteres; onde a cada grupo de bits constituindo um caractere são adicionados bits especiais para representar o início ( start bit ) e final deste ( stop bit ).

Redes locais e de longa distância

As redes são classificadas pela sua escala, que residem basicamente em três grupos:

  • LAN – Local Area Network ou Rede Local (normalmente uma sala, edifício ou campus).
  • MAN – Metropolitan Area Network ou Rede Metropolitana (até o tamanho de uma cidade).
  • WAN – Wide Area Network ou Rede Geograficamente Distribuída (ou de Longa Distância).

Topologias

A topologia de uma rede descreve como é o layout do meio através do qual ocorre o tráfego de informações e também como os dispositivos estão conectados a ele. Refere-se ao relacionamento físico e lógico de cada nó da rede (cada ponto de conexão com a rede pode ser chamado de nó, independente da função do equipamento representado por ele), ou seja, a forma como estão dispostos. Temos aqui então a divisão

  • Topologia lógica: descreve como as informações devem transitar ao longo da rede, o formato dos dados, etc. É a forma como os protocolos operam no meio físico;
  • Topologia física: refere-se à disposição dos cabos e componentes do meio físico, descrevendo onde cada nó da rede está situado fisicamente em relação aos demais, como é feita a distribuição da mídia de conexão (cabeamento de co- bre, fibra óptica, wireless, etc) e mostra a configuração geral da rede através da planta de localização dos equipamen- tos.

O ambiente de funcionamento também influencia na escolha da topologia de uma rede. Ambientes ruidosos e com problemas de segurança têm requisitos mais exigentes quanto ao número máximo de nós, a separação máxima e mínima entre nós e a taxa máxima de informação trans- mitida. Alguns protocolos, por e- xemplo, levam em conta a distância máxima entre os nós da rede para seu perfeito funcionamento.

Ao lado estão relacionadas as topo- logias de redes ponto-a-ponto.

O envio de mensagens é feito de forma indireta, de forma que cada estação recebe o conteúdo integral da mensagem até ela alcançar o seu destinatário.

Tipos de

Topologias

Ponto Positivos Pontos Negativos

Topologia Estrela É mais tolerante a falhas Fácil de instalar usuários Monitoramento centralizado

Custo de Instalação maior porque recebe mais cabos

Topologia Anel

( Token Ring )

Razoavelmente fácil de instalar Requer menos cabos Desempenho uniforme

Se uma estação para todas param Os problemas são difíceis de isolar.

Topologia Barra- Simples e fácil de instalar Requer menos cabos

A rede fica mais lenta em períodos de uso intenso.