• Nenhum resultado encontrado

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 02

N/A
N/A
Protected

Academic year: 2021

Share "INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 02"

Copied!
8
0
0

Texto

(1)

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS

agosto

/2013

SEMANA 02

Conceitos básicos de hardware, software e arquitetura de computadores,

envolvendo sistemas operacionais. Conceito, objetivos e funções dos sistemas

operacionais.

1 - Introdução

Hardware é a parte física: processador, memória, disco, teclado, monitor, etc. Os

componentes básicos de um computador são CPU1, memória e dispositivos de Entrada e Saída

(Input/Output – I/O).

A CPU é a unidade principal do computador, ele controla o fluxo dos programas, executa operações lógicas e aritméticas, acessa a memória e faz solicitações aos periféricos.

O ENIAC (Eletronic Numerical Integrator and Calculator) construído em 1946, serviu de inspiração para todas as arquiteturas de computador atuais. Estas são chamadas de Máquinas de Von Neumann ou Arquitetura de Von Neumann em homenagem a John Von Neumann pelo seu pioneirismo no computador digital. Porém, o ENIAC era imenso, pesava 27 toneladas e ocupava completamente uma sala

grande. E ao invés dos atuais chips compactos com milhões de

transistores microscópicos, o ENIAC usou cerca de 18000 tubos de vácuo e relés elétricos para construir sua CPU e circuitos de entrada/saída (input/output).

1 CPU: Central Processing Unit, ou Unidade Central de Processamento. Fig 1 - ENIAC

(2)

Em 1971, na Intel Corporation, Ted Hoff conseguiu construir um processador que tinha todas as unidades reunidas em um só chip, o 4004, que foi o primeiro microprocessador. A diferença básica entre o processador tradicional e o microprocessador é o fato deste último ser bem menor e mais rápido: ao invés de ter todos os seus componentes separados fisicamente e interligados por fiação externa, o microprocessador está reunido num único chip. Além disso, pode ser produzido em larga escala numa linha de produção, que reduz o custo.

Atualmente o microprocessador está tão difundido que chega a ser tratado também por processador.

2 - Arquitetura de computador

A definição de arquitetura de computador envolve três partes:

ISA, Instruction Set Architecture, significa conjunto de instruções da arquitetura do

computador, que é uma abstração do sistema de computação, visto pelo programador como linguagem de baixo nível [assembly2];

• Microarquitetura, também conhecida como organização do computador [Computer

Organization], é uma descrição de baixo nível concreta e detalhada do sistema, que envolve descrever como as partes constituintes do sistema interoperam para implementar a ISA; • Design do sistema, que inclui os outros componentes do computador tais como barramento,

controladores de memória, DMA3 e multiprocessamento.

A microarquitetura é um design muito específico de um microprocessador, enquanto a arquitetura se refere a uma família de chips. Por exemplo, a família x86 da Intel, conhecida como IA-32 é a arquitetura, enquanto 386, 486, Pentium e P6 são microarquiteturas que compartilham o mesmo conjunto de instruções implementados para IA-32.

ISA, Instruction Set Architecture, é a parte da frente, que dita o formato da instrução a ser processada, e microarchitetura é a sua implementação. Microarquitetura é a parte do processador que recebe essas instruções e as processa.

Atualmente, as principais arquiteturas de computador são: • RISC: Reduced Instruction Set Computer;

2 Assembly: assembly language é uma linguagem de programação de baixo nível para computadores,

microprocessadores, microcontroladores e outros dispositivos programáveis. Assembly implementa uma linguagem de símbolos para representar as instruções de determinada arquitetura de CPU.

3 DMA: Direct Memory Access, ou acesso direto à memória.

barramento CPU Unidade Central de Controle Unidade Lógica e Aritmética [ALU] Memória [RAM] I/O

(3)

• CISC: Complex Instruction Set Computer;

• EPIC: Explicitly Parallel Instruction Computing;

• X86-64: X86 extended;

• ARM: Advanced RISC Machine.

Internamente, todo processador processa na base binária, pois é assim que funcionam os circuitos digitais da máquina e, dada uma arquitetura de computador, isso define a linguagem de máquina. Atualmente, a programação normalmente é feita em linguagem de alto nível, daí a necessidade de traduzir essas intruções para a linguagem de máquina para poder rodar os

programas. E normalmente é o compilador que faz essa tradução. O problema é que até o início dos anos 1970 não havia ainda compiladores capazes de fazer eficientemente essa tradução, então houve a necessidade de incluir microcódigo no processador, que deu origem ao conceito CISC.

Microcódigo ou microprograma consiste de uma série de microinstruções que diretamente controlam um microprocessador num nível muito fundamental. Do ponto de vista da linguagem de programação, o microcódigo provê um conjunto de instruções muito grande que, de certa maneira, "eleva" o nível da linguagem de máquina. Para facilitar a programação, os arquitetos de computador criaram muitas instruções complexas (microcódigo), as quais são representações de funções de alto nível de linguagem de programação. Por outro lado, o microcódigo deixa o processador mais lento.

Tipicamente, uma simples instrução em linguagem de máquina se traduz em várias instruções de microcódigo. Em alguns casos, microcódigo é tratado como sinônimo de firmware4.

Em 1974, na IBM, John Cocke teve a idéia de construir um processador mais simples, que não necessitasse de microcódigo. Porém, a construção desse processador só foi possível

posteriormente, depois que surgiram compiladores otimizados e capazes de traduzir as instruções de alto nível no código fonte diretamente para linguagem de máquina (binário). O compilador C foi criado em 1971, e desde então passou a ser referência na compilação de programas complexos como, por exemplo, sistemas operacionais.

Em 1980 John Cocke introduziu o computador com conjunto reduzido de instruções (RISC), um processador menor, mais barato, mais frio. Ele construiu esse processador por acreditar que a utilização de sub-rotinas ou microcódigos no processador fossem contraproducentes.

No RISC, as instruções mais frequentes são expressas em termos de operações simples possibilitando selecionar e executar uma instrução a cada ciclo de clock (os processadores CISC levam vários ciclos de clock para selecionar uma única instrução), porém nesse caso o tempo de acesso à memória é crítico e por isso o uso de memória cache torna-se obrigatório. Além disso, existe maior dependência do compilador na otimização de desempenho da aplicação.

Com o tempo, o termo RISC acabou por se generalizar e denominar toda máquina que obedece a um conjunto específico de princípios de arquitetura. Como era preciso identificar os outros computadores não RISC, foi cunhado o termo CISC.

Porém, um produto RISC só chegou ao mercado em 1985, lançado pela Sun Microsystems com o processador Sparc.

4 Firmware: é software (executável ou dados) escrito em memória de leitura somente (ROM, Read Only Memory). É uma combinação de software e hardware.

(4)

A inexistência de microcódigo no processador exige complexidade e eficiência no

compilador. Por isso, as máquinas RISC só se tornaram viáveis depois de avanços de software que resultaram no aparecimento de compiladores otimizados.

Como exemplos de CISC temos os processadores x86 da Intel e compatíveis da AMD. No caso da Intel a linha CISC vai desde os processadores tradicionais (386,486, etc.) até os atuais Pentiums e Xeons. Atualmente, a linha x86 [IA-32] é de 32 bits, embora alguns processadores já tenham extensão de 64 bits para permitir alocar memória além de 4 GB5 RAM.

Os tradicionais 32 bits permitem alocar apenas 4294967296 bytes ou 4 GB (232).

Como exemplos de processadores RISC temos o Power (IBM, International Business

Machines), MIPS (Silicon Graphics), PA-RISC (HP, Hewlett Packard), Sparc (Sun Microsystems) e Alpha (DEC, Digital Equipment Corporation), cada qual com seu chip RISC. Os processadores citados acima são todos atualmente de 64 bits. E a DEC (hoje ex-DEC pois foi comprada pela Compaq que posteriomente foi adquirida pela HP) já tinha processador Alpha de 64 bits desde meados dos anos 1990.

A arquitetura EPIC teve origem no projeto IA-64 cujo nome original era Merced, e foi criado pelas empresas Intel e HP em1994. Posteriormente foi rebatizado para Itanium. O Itanium é um processador de 64 bits voltado para funções de servidor corporativo (médio e grande porte) que tem por objetivo competir num espaço tradicionalmente ocupado por servidores RISC.

Discute-se hoje qual o destino das arquiteturas de computador tradicionais. O IA-64 vem confirmar a tendência de convergência das arquiteturas RISC e CISC.

A arquitetura X86-64 (x86 extended) foi desenvolvida inicialmente pela AMD e deu origem aos processadores Athlon e Opteron. Ao contrário do Itanium, tem a vantagem de permitir

compatibilidade de aplicações 32 bits numa CPU de 64 bits.

Atualmente a própria Intel, na sua linha Xeon e P4 EM64T (Extended Memory

Technology), adiciona extensões de 64 bits que torna esses processadores também compatíveis com o X86-64. A única vantagem da extensão de 64 bits é a capacidade de alocar mais de 4 GB de memória RAM, e que já é uma necessidade no segmento de médios e grandes sistemas servidores.

A linha de processadores da Intel (x86) atualmente ainda está nos 32 bits. Porém, devido à necessidade de endereçamento de memória além dos 4 GB, a partir do Pentium Pro seus chips incorporam a tecnologia PAE (Intel Physical Addressing Extensions), que permite endereçar até 64 GB (236) de memória RAM numa CPU de 32 bits.

A tecnologia PAE extende para 36 bits o endereçamento de memória, mas para que o sistema operacional lance mão dessa solução é necessário também suporte no chipset (placa mãe). Num caso típico de estação de trabalho Windows, raramente se torna necessário ir além de poucos giga bytes de memória, porém num sistema servidor mesmo de médio porte é imprescindível ir bem além do limite de 4 GB imposto pela arquitetura de 32 bits.

Os processadores têm barramento interno e externo, e quanto maior o número de bits nesses barramentos maior será o fluxo de dados e instruções. O barramento interno está relacionado ao

(5)

processamento em si, já o barramento externo trata da comunicação nas operações de entrada e saída (I/O). Por exemplo, um processador 32/32 quer dizer 32 bits internos e 32 externos. Já um de 32/36 significa 32 bits internos e 36 externos.

No entanto, quando se diz que determinado processador é de 32 bits, está se referindo apenas aos bits internos, pois são eles que efetivamente processam as instruções.

Desse modo, num x86 (que é de 32 bits), para atingir limites de memória RAM acima de 4 GB é necessário habilitar PAE (32/36).

E tendo em vista a necessidade de permitir maior alocação de memória para servidores baseados no x86, a Intel lançou também a extensão de 64 bits. Essa é a tecnologia EM64T

(Extended Memory), que é uma extensão de 64 bits para a alocação de memória numa CPU de 32 bits (32/64). Como produtos, estão o P4 (Pentium 4) e Xeon, que são CPUs típicas em servidores baseados em CISC. No entanto, ao contrário do PAE, a tecnologia EM64T6 não está disponível em

toda a linha de CPUs, mas apenas naqueles destinados ao segmento servidor.

Antes da Intel lançar a tecnologia EM64T, a AMD já tinha essas extensões na sua arquitetura X86-64.

A arquitetura ARM é de 32 bits e usada principalmente em sistemas embarcados. É muito usada na indústria e na informática. As principais características são tamanho reduzido do chip processador e baixo consumo de energia.

Processadores ARM são muito usados em disposistivos portáteis (tablet e smartphone), celulares7, calculadoras, PDA8, GPS e periféricos de computador, entre outros.

Sobre sistemas operacionais, outro aspecto importante a ser notado é que, de um modo geral, temos a segmentação da arquitetura de computadores em dois grandes mundos: do lado CISC temos a dobradinha Windows/Intel, do lado RISC temos uma diversidade muito grande de processadores e fabricantes Unix. A exceção a essa regra está principalmente nos sistemas operacionais Linux e FreeBSD, que têm o código fonte aberto e por isso são efetivamente multiplataforma por serem facilmente portáveis. E no caso do EPIC, por ser uma arquitetura recente, vemos uma disputa pelo predomínio entre Windows Server 2003/2008, Unix (de vários fabricantes) e Linux, entre outros.

3 - IBM-PC

O IBM-PC é o Computador Pessoal da IBM, e foi lançado em 1981 com um processador Intel 8088 (arquitetura CISC). Nesse lançamento, a intenção da IBM era entrar também no mercado de computadores pessoais, que nessa época era dominado pelo Apple II e também por um conjunto de máquinas que rodavam o sistema operacional CP/M (Control Program/Monitor ou Control

Program for Microcomputers), tais como o Intel 8080/85 e o Zilog Z80. Portanto, o IBM-PC não

foi o primeiro computador pessoal a fazer sucesso.

6 Celeron D, Pentium 4 e Xeon CPUs tem 36 bits de endereçamento de memória, que suporta apenas 64 GB de RAM. Xeon DP CPUs suportam até 1 TB (terabyte)

7 98% dos celulares atuais usam pelo menos um processador ARM. 8 PDA: Personal Digital Assitant (handheld ou palmtop)

(6)

A IBM desenvolveu o IBM-PC e decidiu torná-lo uma arquitetura aberta, isso como estratégia para baratear o preço desse computador pela livre competição entre fornecedores de componentes. Afinal, o IBM-PC foi construído a partir de uma grande variedade de partes fornecidas por diferentes fabricantes.

Devido a isso, a IBM publicou as especificações de sua ROM BIOS (Basic Input/Output

System ou Basic Integrated Operating System) na expectativa de atrair fabricantes a produzir

IBM-PCs compatíveis (IBM-PC compatibles) e cobrar royalties das licenças dessa BIOS, e assim manter na própria mão o domínio dessa máquina e à frente da competição.

Mas para infelicidade da IBM, alguns fabricantes, a partir de engenharia reversa nessa BIOS, passaram a produzir as suas próprias versões de IBM-PCs compatíveis, agora livres de

royalties ou simplesmente clones. Desse modo, o mercado escapou das mãos da IBM.

E para se ter uma idéia da importância do lançamento do IBM-PC, os projetistas da IBM documentaram a viabilidade do desenvolvimento dessa máquina prevendo a venda de 240.000 unidades em 5 anos. Antes do final desse prazo, já vendiam 240.000 unidades por mês! E isso tendo que enfrentar a concorrência desleal dos clones, que já a partir de 1987 passaram a dominar o mercado, ou seja, vendiam mais IBM-PCs do que a própria IBM.

Numa tentativa de retomar esse mercado, em abril de 1987 a IBM lançou o Personal System/2 ou PS/2, que era uma arquitetura proprietária avançada em relação ao IBM-PC. Entre as novidades do PS/2 estavam o disquete de 3,5"  com 1440 KB, portas PS/2 para teclado e mouse e o padrão  de vídeo VGA. Anteriormente o padrão de vídeo era EGA,  Enhanced Graphics Adapter, com apenas 16 cores e  resolução 640x350 pixels. O sistema operacional OS/2 foi  introduzido junto com o PS/2, na intenção de se tornar o  sistema "nativo" dessa máquina. O PS/2 foi desenvolvido para manter a  compatibilidade de software com PC/AX/XT, e isso num  hardware levemente diferente. Porém, o PS/2 não foi sucesso  de vendas devido ao alto custo dessa arquitetura fechada. No  entanto, muitas das inovações do PS/2 posteriormente se  tornaram padrão no mercado aberto do IBM­PC.

Então, a partir de 1987 perderam o significado termos como IBM-PC compatible ou clone, pois o mercado passou a ser orientado pela livre competição de diferentes fabricantes de

componentes de um lado e as grifes (Compaq, HP, Dell, IBM, etc) do outro. Nesse caso, a grife pode ser melhor entendida como uma grande montadora de IBM-PCs. E esse mercado é tão vasto que oferece oportunidade até aos populares "xing-ling", que são máquinas montadas a partir de componentes sem muito controle de qualidade para baixar mais ainda o preço final.

E o mais surpreendente de tudo é ver a realidade do IBM-PC hoje: após conquistar mais de 90% do mercado de computador pessoal, essa máquina já é oferecida em configurações que

atendem ao segmento servidor de pequeno e até médio porte. Por exemplo, um típico servidor CISC pode ter 4 CPUs Intel Xeon, 4 G de memória RAM e 5 discos SCSI, e nesse caso não pode de

(7)

maneira alguma ser tratado pejorativamente por "computador pessoal".

Outra prova da popularidade e predomínio do IBM-PC é a diversidade de sistemas

operacionais que foram criados ou posteriormente portados para essa arquitetura. Como principais exemplos temos DOS, Windows, Linux, FreeBSD e Solaris.

4 - Processamento paralelo e vetorial

Os sistemas operacionais distribuídos consistem de vários processadores interconectados pela rede, que garante a distribuição de processos de uma máquina para a outra. A distribuição de processos é responsabilidade desse tipo de sistema operacional, portanto é uma solução de software.

Mas existem outras formas para organizar o uso de mais de uma CPU num mesmo sistema. A melhor classificação é taxonomia de Flynn (Michael J. Flynn), que trata de CPUs com mais de um processador e considera o número de fluxo de instruções e o número de fluxo de dados: SISD, SIMD, MISD e MIND. Essa é uma solução de hardware.

4.1 - SISD: Single Instruction Single Data

No SISD, existe um único [single] fluxo de instruções e dados [data]. Essa é a característica dos computadores tradicionais com arquitetura de Von Neumann, com um único processador na CPU.

4.2 - SIMD: Single Instruction Multiple Data

SIMD é um conjunto de instruções para uma CPU composta por mais de um processador, construção essa conhecida por processador vetorial. SIMD apareceu no início dos anos 70 e era usado em supercomputadores [por exemplo, Cray-19], mas com o advento do microprocessador

acabou perdendo espaço. Atualmente as técnicas de processamento vetorial são usadas em console de vídeo games e placas aceleradoras gráficas.

4.3 - MISD: Multiple Instruction Simple Data

MISD é um tipo de arquitetura de computação paralela em que múltiplas unidades

funcionais executam operações sobre os mesmos dados. Nunca houve um computador comercial que usasse essa arquitetura.

4.4 - MIND: Multiple Instruction Multiple Data

MIMD é uma técnica para obter processamento paralelo [paralelismo] numa CPU com mais de um processador. Nesse caso, os processadores são independentes e trabalham de forma

assíncrona, e a qualquer momento esses processadores podem estar executando diferentes

(8)

instruções em diferentes segmentos de dados.

Atualmente, é muito comum os computadores que usam um único processador com mais de um core [núcleo] implementarem MIMD, enquanto computadores com mais de um processador implementarem Symetric Multiprocessing [SMP, processamento simétrico].

SMP representa um dos estilos mais antigos para arquiteturas de máquinas com

multiprocessadores, normalmente usado num limite de até 8 processadores. Sistema com muitos processadores normalmente usam NUMA [Non-Uniform Memory Access].

Referências

Documentos relacionados

O canabidiol é um composto presente na planta Cannabis sativa, que promove diversos benefícios à saúde humana, como por exemplo sobre as doenças neurológicas como epilepsia,

Nesse contexto, o presente estudo foi realizado com o intuito de avaliar o crescimento e o desempenho econômico de plantios de Eucalyptus dunnii em diferentes sítios no

EXCLUSIVELY FOR ACADEMIC PURPOSES ( SEE D ISCLOSURES AND D ISCLAIMERS AT END OF DOCUMENT ) considered a concern the demand growth since Mozambique faces high poverty

insights into the effects of small obstacles on riverine habitat and fish community structure of two Iberian streams with different levels of impact from the

A versão reduzida do Questionário de Conhecimentos da Diabetes (Sousa, McIntyre, Martins & Silva. 2015), foi desenvolvido com o objectivo de avaliar o

Para devolver quantidade óssea na região posterior de maxila desenvolveu-se a técnica de eleva- ção do assoalho do seio maxilar, este procedimento envolve a colocação de

8- Bruno não percebeu (verbo perceber, no Pretérito Perfeito do Indicativo) o que ela queria (verbo querer, no Pretérito Imperfeito do Indicativo) dizer e, por isso, fez

Neste tipo de situações, os valores da propriedade cuisine da classe Restaurant deixam de ser apenas “valores” sem semântica a apresentar (possivelmente) numa caixa