Baixe o app para aproveitar ainda mais
Prévia do material em texto
Organização de Computadores Professor Aldriano Organização de Computadores Apresentação do Plano de Ensino *Período de Avaliações https://www.unip.br/presencial/servicos/aluno/manual/tradicional/calendarios.aspx Organização de Computadores • OBJETIVO GERAL • Entender o hardware de um sistema computacional. Entender o funcionamento dos vários módulos que compõem um sistema computacional. Conhecer a organização interna dos computadores, para análise da otimização do uso de seus componentes em aplicações das áreas de informação, comunicação e processos de controle. • Abrir PDF do Conteúdo Programático. • AVALIAÇÃO • B1 + Trabalho • B2 + Trabalho Apresentação do Plano de Ensino Organização de Computadores • CRITÉRIOS PARA CHAMADA E ABONO DE FALTAS: • Haverá tolerância de 10 minutos para o início das aulas do primeiro horário. • Neste período o professor estará em sala e poderá tirar dúvidas dos alunos. • CONDUÇÃO DA DISCIPLINA: • O conteúdo será ministrado através de aulas expositivas, dialogadas, enfatizando as relações entre a teoria e a prática e buscando trazer a teoria para o real; • Utilizar-se-á de atividades em grupo para o entendimento da teoria e para pesquisas de informações complementares; • O laboratório eventualmente poderá ser utilizado para realização de exercícios e trabalhos de caráter prático; • Será realizado seminário a fim de despertar no aluno a capacidade de pesquisa e do auto- aprendizado. Apresentação do Plano de Ensino Organização de Computadores • Geração 0 (1642-1945): que possuía essencialmente computadores mecânicos; • Primeira geração (1945-1955): utilizava-se essencialmente de válvulas eletrônicas para a construção de computadores; • Segunda geração (1955-1965): baseava-se no uso de transistores. Foi proposto por John Von Neumann o modelo de computador utilizado até os dias de hoje, composto de: memória, unidade de processamento e dispositivos de entrada e saída; • Terceira geração: (1965-1980): baseava-se no uso de circuitos integrados; • Quarta geração (1970-atual): surgiu o microprocessador. Evolução dos computadores Organização de Computadores • Historia: a evolução... Eniac (válvulas), Edvac (eletrônica discreta)... • Componentes: • HD (paginação, tabela de alocação); • RAM (como se localiza uma informação, endereçamento), ram primária, secundária, cachê • Barramentos (controle, endereço, dados), CPU ("Processadores",registradores, conjunto de instruções)-> funcionamento • Placa mães: • toda a parte elétrica e componentes; • lógica digital(OR, AND, XOR...) - circuitos elétricos.. • Representações das informações: bit, byte, caracter, palavras... • Conversões de bases e aritmética Computacional... • * Isto é para cada arquitetura RISC vx CISC • Programação assembly pra criar OS História Eniac Válvulas Transistor Organização de Computadores Quais componentes devem existir em um computador? Processador Memória Disco rígido Placa mãe Gabinete Monitor Sistema operacional Jogos Organização de Computadores Funcionamento do boot de um PC 1. Acessa a memória CMOS, um circuito integrado que grava informações referentes ao hardware. A BIOS estabelece reconhecimento e comunicação com a placas de vídeo e memória RAM. 2. A segunda fase, conhecida como Power-on Self Test (POST) nada mais é do que um conjunto de teste que a BIOS realiza para saber se tudo está se inicializando da maneira correta. Quando alguns componentes essenciais estão faltando, alguns beeps ou mensagens na tela alertam o usuário. 3. A etapa seguinte consiste na procura de alguma fonte para inicializar o sistema operacional. Tal fonte é configurável e pode ser um disco rígido (padrão), CD-ROM, pendrive, disquete, entre outros. 4. A etapa seguinte, o BIOS lê o setor zero (que com apenas 512 bytes, denominado Master Boot Record) do HD. Essa área contém um código que alavanca a inicialização do sistema operacional. o setor dois. BIOS:Basic Input/Output System ou Sistema Básico de Entrada e Saída. Organização de Computadores Funcionamento do boot de um PC 5. A etapa seguinte consiste na leitura de um arquivo de configuração de boot, o Boot Loader ( NTLDR no Windows). 6. A partir dele, é inicializado o núcleo (kernel). Assim como o BIOS estabelece a ligação entre hardware e sistema, o kernel serve para firmar uma comunicação estável entre hardware e software. Nessa fase, é ele quem assume o controle do computador. 7. O kernel carrega os arquivos principais e informações básicas do sistema operacional (incluindo o registro), além de relacionar os componentes de hardware com as respectivas DLLs e drivers. 8. A tela de escolha de usuários é exibida e, após o logon, os programas relacionados para começar junto com o sistema são carregados. Organização de Computadores Tela da BIOS de um PC Organização de Computadores Evolução do PC • Lei de Moore. Gordon E. Moore observou que o número de transistores em um chip de computador estava dobrando a cada 18 a 24 meses. Como mostrado no gráfico logarítmico do número de transistores nos processadores da Intel no momento de sua introdução, sua "lei" estava sendo obedecida. Enciclopédia Britânica, Inc. Organização de Computadores 1. Boot Loader (lilo, Grub, NTLDR); 2. Kernel: 2.1 Gerenciamento de memória, paginação e forma como os programas serão armazenados durante a execução); 2.2 Sistema de arquivos; 3. Criar um shell mais robusto como um programa chamado pelo o básico do kernel; 4. Criar um compilador C que gere arquivos próprios do sistema; 5. Implementar drivers: placa de rede, vídeo, áudio, usb... 6. Depois ir implementando... Quiça uma Interface gráfica... Visão de um projeto de “OS” – Mão na massa Organização de Computadores Alguns projetos: • http://www.minix3.org - Em 1987, na edição do livro Operating Systems: Design and Implementation, de Andrew S. Tanenbaum. • http://www.menuetos.net - escrito totalmente em assembler para plataformas 32 bits x86. • http://www.menuetos.be/index.en.html • http://www.kolibrios.org/en/ • https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ Visão de um projeto de “OS” Sistemas embarcados: • Contém um processador ARM Cortex A8 de 1 GHz , 512 MB de RAM, um SSD flash de 4 GB integrado e conectores para cartões micro- SD, micro-HDMI, USB e Ethernet. Suporta Minix 3. http://www.minix3.org/ http://www.minix3.org/ http://www.minix3.org/ http://www.minix3.org/ http://www.minix3.org/ http://www.minix3.org/ http://www.minix3.org/ http://www.minix3.org/ http://www.menuetos.net/ http://www.menuetos.net/ http://www.menuetos.net/ http://www.menuetos.net/ http://www.menuetos.net/ http://www.menuetos.net/ http://www.menuetos.net/ http://www.kolibrios.org/en/ http://www.kolibrios.org/en/ http://www.kolibrios.org/en/ http://www.kolibrios.org/en/ http://www.kolibrios.org/en/ http://www.kolibrios.org/en/ http://www.kolibrios.org/en/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ https://www.vivaolinux.com.br/artigo/MenuetOS-O-extraordinario-minisistema-operacional/ Organização de Computadores Projeto Minix Organização de Computadores ARQUITETURA vs ORGANIZAÇÃO Dois conceitos fundamentais no estudo dos sistemas de computação são o de Arquitetura e Organização de computadores. Organização de Computadores 1. O termo “organização de um computador” refere-se às unidades operacionais e suas interconexões que implementam as especificações da sua arquitetura. • Exemplos de atributos de organização incluem: • Detalhes de hardware transparentes ao programador, tais como os sinais de controle, as interfaces entre o computador e os periféricos e a tecnologia de memória utilizada. 2. Consiste no estudo dos componentes que compõem o computador. ORGANIZAÇÃO Organização de um computador simples da Máquina de von Neumann. Organização de Computadores • O termo “arquitetura de um computador” refere-se aos atributos de um sistema que são visíveis para o programador ou, em outras palavras, aos atributos que têm impacto direto sobre a execução lógica de um programa. • Exemplos de atributos de arquitetura: • O conjunto de instruções; • O número de bits usados para representar os vários tipos de dados (por exemplo, números, caracteres). Uma variável do tipo int ocupa 4 bytes; • Os mecanismos de E/S e as técnicas de endereçamento à memória (como acessar); • Processador de 16/32/64 bits; ARQUITETURA Organização de Computadores ARQUITETURA vs ORGANIZAÇÃO Organização de Computadores Tritium: Quad Core ARM Computer with Android/Linux Organização de Computadores • Até então, a arquitetura para 32-bit (chamada de X86 por se basear na arquitetura da família Intel 8086) era a mais avançada. • Para aproveitar o processamento de 64 bits, além do processador, o sistema operacional, os drivers e os aplicativos devem ser escritos para 64bits. • A arquitetura X64 é compatível com 32bit, mas a arquitetura X86 não trabalha com sistemas de 64 bits. Comparação das Arquiteturas de Memória de 32 bits e 64 bits • Se você deseja utilizar mais do que 4GB de memória RAM é imperativo o uso da arquitetura chamada X64. • O processador da marca AMD, Athlon, foi o primeiro a introduzir o processamento de 64 bits para micros pessoais. Organização de Computadores • Em 1952, o professor John von Neumann, da Univeridade de Princeton, Estados Unidos, apresentou um projeto inusitado para a arquitetura de um computador. Ele sugeriu que o computador fosse organizado em componentes, cada um executando apenas uma única tarefa e de forma muito mais organizada. • Memória Principal: responsável por armazenar os programas a serem executados, assim como os dados a serem processados; • Unidade Lógica e Aritmética (ULA): para realização das operações lógicas e aritméticas; • Unidade de Controle (R/W): que, baseado nas instruções lidas da memória, enviaria sinais de controle para a ULA para que a mesma executasse as operações devidas; • Unidade Central de Processamento (CPU): que agruparia a ULA e a Unidade de Controle; • Unidade de Entrada e Saída: responsável pela comunicação com os periféricos do computador (teclado, monitor, memória externa etc.) Modelo de von Neumann Organização de Computadores • John Von Neumann, matemático húngaro (1903-1957), contribuiu para a matemática e a física. Foi professor da Universidade de Princeton e um dos construtores do ENIAC. Modelo de von Neumann Ele sugeriu que o computador fosse organizado em componentes, cada um executando apenas uma única tarefa e de forma muito mais organizada. Organização de Computadores • Fluxograma do ciclo de execução. Modelo de von Neumann • O algoritmo começa buscando, na memória principal, a próxima instrução do programa que será executada. A unidade de controle é responsável por isso. O Contador de programa deve ser incrementado para que a próxima instrução a ser executada seja encontrada. Em seguida a instrução deve ser decodificada, identificando primeiramente o seu código. Se a instrução tiver Operandos, como em uma operação aritmética, então, é necessário buscar esses operandos (valores). Para isso é preciso calcular o endereço do operando, para saber onde ele se encontra na memória e, somente depois pegar esse valor e armazenar em registradores para manipulação. Quando os operandos terminarem de ser buscados e armazenados, somente então a operação é executada pela Unidade Lógica Aritmética. Se a instrução não tiver operandos, a instrução simplesmente é executada logo após a avaliação da condição. Organização de Computadores Modelo de von Neumann – Resumo do Ciclo de Execução Organização de Computadores von Neumann vs Harvard Organização de Computadores Funções do barramento Organização de Computadores Máquinas multiníveis contemporâneas • Linguagem de máquina - constituída pelo conjunto básico de instruções que são reconhecidas pelo hardware e, para a qual todo programa precisa ser convertido para que possa ser executado. • Tradutor - um programa que converte outros programas para a linguagem de máquina. Pode ser de três tipos: montador (para a linguagem assembly), interpretador (tradução e execução passo a passo) e compilador (tradução e execução). void gotoxy(uchar x, uchar y) { asm mov ah, 0x02; asm mov dh, y; asm mov dl, x; asm int 0x10; } void main() { gotoxy(0,0); } código em Linguagem C * Referenced by a CALL at Address: |:0001.0007 | :0001.000F 55 push bp :0001.0010 8BEC mov bp, sp :0001.0012 B402 mov ah, 02 :0001.0014 8A7606 mov dh, [bp+06] :0001.0017 8A5604 mov dl, [bp+04] :0001.001A CD10 int 10 :0001.001C 5D pop bp :0001.001D C3 ret Código em Assembly gerado peloTurbo C++ do código em linguagem C. Organização de Computadores Máquinas multiníveis contemporâneas • Para linguagens completamente compiladas, como C e Fortran, os códigos binários são executados diretamente pela máquina-alvo. O Java pára a tradução no nível de byte code. A máquina virtual Java, que está no nível da linguagem assembly, interpreta os byte codes. Organização de Computadores Máquinas multiníveis contemporâneas • Nível 0: Nível da Lógica Digital • Nível mais baixo da estrutura • Objetos de interesse são conhecidos como portas lógicas • Cada porta lógica tem 1 ou mais entradas digitais (aceitam 0 ou 1) e calculam funções lógicas simples sobre essas entradas. Exemplo: AND, OR, XOR,etc • Portas lógicas são combinadas para formar o Processador - principal dispositivo do computador • Nível 1: Nível da Microarquitetura • Enxergamos uma memória local (8 a 32 registradores) e a UAL (Unidade Aritmética Lógica) que realiza operações aritméticas muito simples • Os registradores são conectados a UAL formando o caminho dos dados • Operações são controladas por um microprograma ou diretamente por hardware • Microprograma é um interpretador para as instruções do nível 2. Organização de Computadores Máquinas multiníveis contemporâneas • Nível 2: Nível da Arquitetura do Conjunto de Instruções (ISA - Instruction Set Architeture) • Definida pelo fabricante e dependente da arquitetura da máquina. • Fabricantes disponibilizam "Manual de Referência da Linguagem de Máquina" ou "Princípios de operação do Computador Modelo XYZ4W),ou algo similar. • Manuais descrevem como as instruções são executadas interpretativamente pelo microprograma ou como elas são executadas diretamente pelo hardware. • Essas informações são necessárias para os desenvolvedores de sistemas operacionais. • Nível 3: Nível do Sistema Operacional • Instruções da linguagem deste nível também podem conter instruções do nível ISA. • Suporta uma organização diferente de memória. • Suporta capacidade de rodar 2 ou mais programas simultaneamente. • Suporta sistemas de comandos ou de janelas (windows). • Programadores deste nível, e também dos níveis mais baixos, são conhecidos como programadores de sistema. Os programadores dos níveis mais altos que este são chamados programadores de aplicação. Organização de Computadores Máquinas multiníveis contemporâneas • Nível 4: Nível da linguagem do montador ou de montagem (Assembly language) • Linguagem de montagem: forma simbólica de representação das linguagens do nível mais baixo. • Programas nessa linguagem são primeiro traduzidos para as linguagens dos níveis 1, 2 e 3 e depois interpretados pela máquina virtual apropriada ou pela própria máquina real. • Programa que realiza essa tradução é chamado de montador. • Nível 5: Nível das linguagens orientadas para solução dos problemas • Conhecidas como linguagens de alto nível. Exemplos Basic, C, Pascal, Java, LISP, etc. • Programas são geralmente traduzidos para os níveis 3 e 4 por compiladores. • Alguns são interpretados: Exemplo: programas em Java, MatLab, ... Organização de Computadores Máquinas multiníveis contemporâneas Um programa em código de máquina é um arquivo binário. Como tal, não pode ser visualizado em um editor de texto. Organização de Computadores Exemplo: arquivo batch (.bat) arquivo batch (.bat) Arquivo em Linguagem C. Compilar: gcc arquivo.c –o arquivo.executável Organização de Computadores • gcc –v –help|more • • gcc –c principal.c funcao.c • gcc –o calculadora.exe principal. funcao.o • gcc –v principal.c -> exibir informações detalhadas sobre a sequência exata de comandos usados para compilar e vincular um programa. • gdb .... -> para Debugar • Listar processos: • tasklist /FI "IMAGENAME eq calcula.exe“ • taskkill /F /pid 5808 • taskkill /f /im calcula.exe Exemplo – compilação em C com módulos Organização de Computadores • O objetivo de um sistema operacional é executar aplicativos do usuário. Mas o sistema operacional não pode fornecer controle total aos aplicativos do usuário devido a razões de segurança. Portanto, para executar algumas operações privilegiadas, os aplicativos devem solicitar ao SO que faça o trabalho por conta própria. Organização de Computadores Estrutura (monolítica) do Linux Organização de Computadores Representação de informações Bit / Byte; Sistemas de numeração: binário; decimal; octal; hexadecimal. Decimal - dez algarismos utilizados para a representação (0 a 9); Binária - Algarismos ‘0’ e ‘1’; Octal - Algarismos ‘0’ a ‘7’; Hexadecimal - Algarismos ‘0’a ‘9’ e letras de ‘A’ a ‘E’. Organização de Computadores Conversão de bases Exemplo: Converter (13)10 para a base binária 13 /2 = 6 (novo dividendo), resto 1 Resultado parcial: 1 6/2 = 3 (novo dividendo), resto 0 Resultado parcial: 01 3/2 = 1 (novo dividendo), resto 1 Resultado parcial:101 Como o último dividendo(1) é menor do que o divisor (2), ele é simplesmente colocado à esquerda do resultado parcial 1101 Organização de Computadores Exercícios 1-Dentre as primeiras calculadoras e os primeiros computadores (eletrônicos) a utilizarem válvulas, destacamos: a) ENIAC, na Universidade da Pennsylvania; b) IBM 603, 604, 701 e SSEC; c) EDSAC, na Universidade de Cambridge; d) UNIVAC I, de Eckert e Mauchly. 2-Desenhe a arquitetura proposta por Von Neumann (estrutura básica de um computador). 3-Segundo a arquitetura de Von Neumann, os computadores possuem quatro componentes principais. Cite-as. Unidade Central de Processamento (UCP) – composta pela Unidade Lógica e Aritmética (ULA) e a Unidade de Controle (UC), a memória e os dispositivos de entrada e saída 4- O que faz o sistema operacional? Administra todos os recursos do computador, ou seja, o software e o hardware. É a estrutura que sustenta e administra todos os programas e partes do computador. 5- Explique o fluxo o ciclo de execução da máquina de Von Neumann. Organização de Computadores Pesquisar 1- O que é Compilador 2- O que é Tradutor Organização de Computadores ARQUITETURA HAVARD • Arquitectura de Harvard: baseia-se em um conceito mais recente que a de Von Neumann, tendo surgido da necessidade de se pôr o microcontrolador para trabalhar mais rápido. É uma arquitetura de computador que se distingue das outras por possuir duas memórias diferentes e independentes em termos de barramento e ligação ao processador. • Separação de barramentos de dados das memórias onde estão as instruções de programa e das memórias de dados, permite que um processador possa acessar as duas simultaneamente, obtendo um desempenho melhor do que a da Arquitetura de Von Neumann, pois pode buscar uma nova instrução enquanto executa outra. Esse processo é conhecido como pipeline (canalização). • Possui um conjunto menor de instruções que a de Von Neumann, e essas são executadas apenas num único ciclo de relógio. Organização de Computadores ARQUITETURA HAVARD (RISC) vs ARQUITEURA VON NEUMANN (CISC) • Os microcontroladores com arquitetura Havard são também conhecidos como "microcontroladores RISC" (Computador com Conjunto Reduzido de Instruções); • Os microntroladores com uma arquitetura Von-Neumann, de "microcontroladores CISC" (Computador com um Conjunto Complexo de Instruções). • Os computadores atuais misturam as duas arquiteturas, criando o conceito de arquitetura híbrida Organização de Computadores • ISA (Instruction Set Architeture): • É o repertório de instruções de um computador. • Quais as instruções que posso executar; como acessar a memória; • Diferentes computadores possuem ISA diferentes. Mas com aspectos comuns; • Diferentes implementações para um mesmo ISA. Exemplo da intel: i3, i5, i7. Arquitetura do Conjunto de Instruções (ISA) O nível ISA é a interface entre os compiladores e o hardware. Organização de Computadores Arquiteturas CISC x RISC • CISC - ADD A, B, C // C = A + B tem três instruções. • RISC - Exige cargas de memória de forma explícita, as instruções seriam: • LOAD A, Reg1 • LOAD B, Reg2 • ADD Reg1, Reg2 • STORE Reg2, C //C = A + B tem quatro instruções. Organização de Computadores Unidade Central de Processamento - CPU * PSW - Registradores de controle e estado da CPU. Organização de Computadores Instruções ** Lembram do algoritmo? *** executa instruções/comandos ordenados. O desvio condicional quebra a sequência de execução. Organização de Computadores • Níveis de Privilégio: Modos Usuário X Supervisor (kernel) • Arquiteturas modernas permitem a operação do processaror em dois (ou mais) níveis/modos de privilégio da CPU: • Modo supervisor/kernel: tem acesso a todas as instruções de máquina e regiões da memória; • Modo usuário: apenas um conjunto restrito de instruções de máquina e acesso controlado à memória (apenas a certos endereços da memória) ISA – MODOS DE EXECUÇÃO Organização de Computadores • As Arquiteturas de Computadores com Paralelismo surgiram com o objetivo de aumento do desempenho dos computadores e devido ao ao fato de que, a limitação de um único processador não poder aumentar indefinidamente seus recursos computacionais, como por exemplo a frequência ou pela limitação da miniaturização dos circuitos, daí a busca por paralelismo em outros níveis da arquitetura de um computador que não somente pela alteração do processador. Assim o paralelismo podeser pensado para ser introduzido em vários níveis: • Paralelismo por Múltiplas CPUs; • Paralelismo a nível de CHIP; • Adição de processadores especializados; • Multiprocessadores; • Multicomputadores; Paralelismo Organização de Computadores • Uma das estratégias de Arquitetura com paralelismo foi introduzir o paralelismo com soluções de processamento de múltiplas CPUs. Esta abordagem consideradas o acoplamento das CPUS como importante, tendo portanto as duas possibilidades de processamento com múltiplas CPUS: • As CPUs Fortemente aclopadas – devido a proximidade das CPUs. É o caso de sistemas multicore os quais possuem mais de um núcleo, CPU que estão contudo no mesmo hardware, portanto fortemente acoplados. • As CPUs Fracamente aclopadas – devido a distância entre CPUs. É o caso de computação em grid onde temos vários computadores independentes que são interligados por uma ou mais redes e que trabalham colaborativamente para atender a um processamento específico. Paralelismo com Processamento de Multiplas CPUs Organização de Computadores Paralelismo com Processamento de Multiplas CPUs Organização de Computadores • Um modo de aumentar a produtividade de CHIP é conseguir que ele faça várias tarefas ao mesmo tempo. Duas técnicas são utilizadas: • Multithreading - É a capacidade de um programa ou de um processo de sistema operacional para gerenciar o seu uso por mais de um usuário ao mesmo tempo e até mesmo gerenciar vários pedidos pelo mesmo usuário sem ter que ter várias cópias da programação em execução no computador. • Multicore - Um processador multi-core é um componente de computação único com duas ou mais unidades centrais de processamento que atuam de forma independente (chamados "núcleos" ), que são as unidades que ler e executar as instruções do programa. Os múltiplos núcleos pode executar várias instruções ao mesmo tempo, aumentando a velocidade geral para programas passíveis de computação paralela . • Processadores foram originalmente desenvolvidos com apenas um núcleo. Os processadores multi -core foram desenvolvidos no início de 2000 pela Intel , AMD e outros. Paralelismo por CHIP Organização de Computadores Exemplo Organização de Computadores • O paralelismo de instrução é baseado na execução simultânea de mais de uma instrução pela CPU, sendo cada instrução em um estágio diferente do ciclo de instruções. Paralelismo a nível de instrução (Pipeline) Organização de Computadores • Esse tipo de paralelismo é uma técnica que busca o ganho de desempenho associando duas ou mais CPUs organizados para executar uma determinada tarefa. São usadas as seguintes técnicas: • Computadores matriciais (Matriz de processadores dedicados) • Multiprocessadores (Conjunto de processadores independentes) • Multicomputadores (Clusters) • Esse tipo de paralelismo é uma técnica que une CPUs, que estão fracamente acopladas, utilizando-se da troca de mensagens para execução de uma determinada tarefa. Paralelismo a nível de Processador Organização de Computadores • Computadores matriciais (Matriz de processadores dedicados) Paralelismo a nível de Processador Organização de Computadores • Multiprocessadores (Conjunto de processadores independentes) Paralelismo a nível de Processador • O código do SO é compartilhado, mas são independente. • Não permite compartilhamento de processos (o processo de um usuário só roda na CPU1 enquanto a CPU2 pode estar ociosa) • Alocação de memória fixa • Caches independentes • Modelo dificilmente usado Organização de Computadores • Multicomputadores (Clusters) Paralelismo a nível de Processador • Esse tipo de paralelismo é uma técnica que une CPUs, que estão fracamente acopladas, utilizando-se da troca de mensagens para execução de uma determinada tarefa. Organização de Computadores Hierarquia de Memória • Para uma maior eficiência na referência à memória, a mesma é estruturada hierarquicamente. • Informações referidas com maior frequência são trazidas “mais perto” da CPU, armazenadas em memórias mais rápidas, (também mais caras, o que implica em menor capacidade de armazenamento). Rgistradores Organização de Computadores Registradores • São dispositivos (elementos computacionais) capazes de receber dados, mantê-los armazenados por uma curto período de tempo e transferi-los para outro dispositivo. • São, portanto, elementos de armazenamento temporário. • Os registradores fazem parte da CPU. • São extremamente rápidos e armazenam grupos reduzidos de bits.. Organização de Computadores Memória Cache • A memória cache é geralmente controlada por hardware. •Armazena os dados mais usados pelo processado reduzindo o número de operações em que é preciso buscar dados diretamente na memória RAM. Mesmo uma pequena quantidade de memória cache é capaz de melhorar bastante o desempenho do processador • Geralmente o cache é divido em dois níveis, chamados de cache L1 (level 1) e cache L2. • O nível 1 é implementado dentro do chip. • O nível 2 implementado na placa mãe. Organização de Computadores Memória Principal • Memória é a parte do computador que armazena os dados e programas em linguagem de máquina em execução corrente. • Razoavelmente barata. • Tempo de acesso da ordem de nanossegundos a dezenas de nanossegundos. • Frequência de acesso alta. Se não existisse a memória Cache, seria acessada a cada ciclo de busca-decodificação-execução. • A CPU processa instruções que são obtidas na memória principal (MP) e os resultados são retornados para a mesma (MP). • O endereço identifica a palavra na memória, e é usado tanto para armazenar (store) como para carregar (load). Organização de Computadores Memória Principal • A unidade básica de memória é o bit (binary digit) • Abstração de valores 0 ou 1 • A memória é formada por um conjunto de células (ou posições), cada uma das quais podendo guardar uma informação. • Todas as células de uma dada memória têm o mesmo número de bits • Os números que identificam (referenciam) a posição da célula na memória são chamados de Endereços. • A célula é a menor unidade endereçável da memória. • Endereços são indexadores pelos quais os programas podem referenciar dados na memória. Organização de Computadores Memória Principal • A célula constitui o seu endereço. A célula é formada pelos componentes eletrônicos: Transitor e capacitor. Organização de Computadores Memória Principal – Ordenação dos Bytes • Os bytes de uma palavra podem ser ordenados na memória da esquerda para a direita OU da direita para a esquerda • Big Endian: Os bytes mais significativos primeiro (Mac). Quando a numeração dos bytes começa da esquerda para a direita da palavra. • Little Endian: Os bytes menos significativos primeiro (Intel). Quando a numeração dos bytes começa da direita para a esquerda da palavra. • No projeto de cada computador é definida a organização da memória. Organização de Computadores Tipos de Memória Organização de Computadores • Os dados armazenados na memória dos computadores podem ocasionalmente serem alterados (modificados). Exemplo: Por oscilações de tensão de alimentação, etc. • Para a prevenção desses erros, algumas memórias armazenam informações extras, usando códigos e mecanismos que permitam a detecção e/ou correção de erros. Código com Correção/Deteção de Erros Organização de Computadores • RAMs Estáticas (SRAM). Mais rápidas (usada como memória cache), baseado em flip´flops. • RAMs Dinâmicas (DRAM). Baseada em capacitores. Carga deve ser restaurada periodicamente • ROM (Read-Only Memory). • PROM (Programmable ROM). Conteúdo escrito com um “queimador” de PROMs • EPROM (Erasable ROM). Apagadas e reutilizadas pelo uso de radiação ultravioleta. • EEPROM (Electrically Erasable PROM). Conteúdo pode ser modificado eletricamente • Memória FLASH.Ex: Player MP3, celulares, câmeras digitais. • Encapsulamento de Memória Principal • SIMM (Single Inline Memory Module). Adequado para barramento 32 bits. Apenas um lado. • DIMM (Dual Inline Memory Module). Adequado para barramento de 64 bits. Ambos os lados. Pesquisa – Tipos de Memória Organização de Computadores • Memória de grande capacidade (dezenas de Gigabytes). • Armazenamento massivo. • Implementada em meio magnético (hard disk, fitas magnéticas) ou ótico (CD-ROM, DVD-ROM). • Armazena programas e dados não processados correntemente, mas que poderão eventualmente ser utilizados. • Memória lenta e barata. Tempo de acesso da ordem de milissegundos. • Pode também ser utilizada para emular memória principal, “aumentando” o espaço de endereçamento disponível através de técnicas de memória virtual (Segmentação/Paginação). • Memórias que não podem ser endereçadas diretamente, isto é, a informação precisa ser carregada em memória primária antes de poder ser tratada pelo processador. Adequado para barramento de 64 bits. Ambos os lados. Memória Secundária – Não volátil Organização de Computadores Memória Secundária – Barramento (bus) E/S • Barramento: É o barramento entre a CPU e os outros componentes (os periféricos) de entrada- saída ou I/O Este tipo de barramento é responsável pela interligação das interfaces e periféricos ligados à placa mãe. • Controlador de Dispositivo: conjunto de circuitos lógicos de interface entre o barramento e o dispositivo de entrada/saída. Responsável por controlar o dispositivo e por tratar do seu acesso ao barramento. Todo o acesso a memória secundária, resulta no roubo de ciclo de barramento do processador, reduzindo o desempenho. Organização de Computadores • Entrada e Saída (Input/Output – I/O) Memória Secundária – Barramento E/S Função geral: • Servem para a comunicação do computador com o meio externo. • Entrada: entrada (inserção) de dados por meio de algum código (ex: programa). • Ex: teclado, mouses, scanners, leitoras óticas, leitoras de cartões magnéticos, câmeras de vídeo, microfones, sensores, transdutores, etc • Saída: retorno de dados, como resultado de alguma operação de algum programa. • Ex: Impressoras, monitores de vídeo, plotters, atuadores, chaves, etc ... Organização de Computadores • Barramentos de Entrada/Saída (I/O) • IDE - Integrated Drive Electronics. • (E)IDE - (Extended) Integrated Drive Electronics. • ATAPI - Advanced Technology Attachment Packet Interface. • SCSI - Small Computer System Interface. • SATA -serial ATA. • PATA - Parallel ATA. usado para barramento de 64 bits. Ambos os lados. • Barramento AGP. Para placas de vídeo para processar fráficos. • Barramento PCI Express. Substitui os padrões AGP e PCI, até 32x mais rápido. • Barramento PS/2. • Barramento USB (Plug and Play/Hot-Swap). Pesquisar Organização de Computadores Alguns tipos de Barramentos I/O Barramento ATA Barramento SATA Barramento PCI Barramento AGP Barramento PS/2 USB-Universal Serial Bus Organização de Computadores Tabela ASCII Os computadores atuais apenas armazenam informação em valores que estão codificados em código binário, em formato de zeros e uns. Para se codificar um texto, é necessário que se adote um valor binário para cada caracter, letra ou número do alfabeto. O código mais simples utilizado em sistemas computacionais é o código ASCII (Sigla de American Standard Code for Information Exchange). A primeira padronização que resultaram na tabela Ascii é de 1963, com a inclusão de letras minúsculas no padrão. A versão atual do código ASCII é a ANSI X3.4 de 1986. https://www.embarcados.com.br/tabela- ascii/?utm_source=nl318&utm_medium=e- mail&utm_campaign=Newsletter%20318 Organização de Computadores Nível de lógica digital Organização de Computadores Até a próxima aula Organização de Computadores BÔNUS Organização de Computadores Aula Bônus • Esta aula bônus é destinado a turma do 1º semestre de cursos como Ciência da computação e Análise de Desenvolvimento de Sistemas para que possam servir como um guia motivacional aos primeiros passos nessa área. • Tem como objetivo apresentar os princípios "introdutórios" da programação de computadores, utilizando: * O XAMPP que é uma distribuição APACHE de fácil instalação. * A linguagem PHP; * O banco de dados MariaDB (MySQL) * O phpMyAdmin aplicativo Web para gerenciamento da base de dados. • Não tem pretenção de cobrir todos os assuntos relacionados à área de programação. • O código apresentado é meramente didático, fica registrado que existem melhores práticas de desenvolvimento. http://br.phptherightway.com/ Organização de Computadores O que é o PHP • O PHP (um acrônimo recursivo para PHP: Hypertext Preprocessor) é uma linguagem de script open source de uso geral, muito utilizada, e especialmente adequada para o desenvolvimento web e que pode ser embutida dentro do HTML. • O que distingue o PHP de algo como o JavaScript no lado do cliente é que o código é executado no servidor, gerando o HTML que é então enviado para o navegador. O navegador recebe os resultados da execução desse script, mas não sabe qual era o código fonte. Você pode inclusive configurar seu servidor web para processar todos os seus arquivos HTML com o PHP, e então não há como os usuários dizerem o que você tem na sua manga. • A melhor coisa em usar o PHP é que ele é extremamente simples para um iniciante, mas oferece muitos recursos avançados para um programador profissional. Não tenha medo de ler a longa lista de recursos do PHP. Pode entrar com tudo, o mais rápido que puder, e começar a escrever scripts simples em poucas horas. Extraído: https://www.php.net/manual/pt_BR/intro-whatis.php Um simples tutorial: https://www.php.net/manual/pt_BR/tutorial.php https://www.php.net/manual/pt_BR/intro-whatis.php https://www.php.net/manual/pt_BR/intro-whatis.php https://www.php.net/manual/pt_BR/intro-whatis.php Organização de Computadores Aula Bônus – Ideia do projeto Organização de Computadores Tutorial de execução 1. Baixar e instalar a distribuição XAMPP - https://pt.wikihow.com/Instalar-o-XAMPP-para-Windows 2. Instale um editor de texto de sua preferência. 3. Definir a base de dados: 1. Abra o navegador e digite: http://localhost/phpmyadmin/ 4. Abrir o editor e mão na massa. :) http://localhost/phpmyadmin/ http://localhost/phpmyadmin/ http://localhost/phpmyadmin/ Organização de Computadores Conceitos SQL – Criar banco de dados e tabelas https://www.w3schools.com/php/php_mysql_create_table.asp Organização de Computadores Arquivo: config.php Organização de Computadores index.php Organização de Computadores add.html Organização de Computadores add.php Organização de Computadores delete.php Organização de Computadores edit.php Organização de Computadores Continuação do código do arquivo: edit.php Organização de Computadores Até a próxima aula
Compartilhar