• Nenhum resultado encontrado

Engenharia Electrotécnica - Electrónica e Computadores. Ano Lectivo: 2005/2006. Ana Madureira. Introdução

N/A
N/A
Protected

Academic year: 2021

Share "Engenharia Electrotécnica - Electrónica e Computadores. Ano Lectivo: 2005/2006. Ana Madureira. Introdução"

Copied!
23
0
0

Texto

(1)

04-12-2006 1

Engenharia Electrotécnica - Electrónica e Computadores

Ano Lectivo: 2005/2006

Ana Madureira

Introdução

Complementos de Programação

Objectivos



Os alunos deverão ser capazes de ter uma

perspectiva da :

 Arquitectura e Funcionamento de um computador  Estrutura genérica de um sistema operativo: estrutura,

funções e características

 Evolução Histórica dos SO  Tipos de Sistemas Operativos

(2)

04-12-2006 3

Introdução à Informática



Informação



Informática = Informação + Automática



Computador



O que é um computador?



Breve perspectiva histórica

 Evolução tecnológica  Evolução de linguagens  Evolução de aplicações

Noção de Computador

 Computador é um conjunto de circuitos eléctricos e electrónicos capazes de

realizar tarefas de modo autónomo por obediência

a um programa armazenado Internamente  Computador é um Sistema de Computação integrando uma componente de Hardware e Software

(3)

04-12-2006 5

Sistema de Computação



Computador = Sistema de Computação

 Hardware (Componente Física) permite:

 executar um determinado tipo de instruções a determinada

velocidade

 armazenar um número de bytes

 comunicar com um conjunto de periféricos

Estas componentes físicas têm que receber ordens do que fazer e como se articular. Esta é a função do software

 Software (Componente Lógica) que é o conjunto de

programas que dirigem o funcionamento do computador

Sistema de Computação

 Hardware - UCP, memória,

dispositivos de I/O

 Software

 Software de Sistema

 Sistema Operativo

 Utilitários (editores, compiladores,...)

 Software de

Desenvolvimento

 Ambientes de Programação

 SGBD-Sistemas de Gestão de Bases de Dados

 Folhas Cálculo, Processadores de texto...

 Aplicações

 “Packages”

 Aplicações por medida

 Utilizadores: pessoas,outros

(4)

04-12-2006 7

Arquitectura e Funcionamento do

Computador



Informação Binária



Blocos Principais

 CPU  Memória Principal  (Conceito de RAM, ROM,

secundária)  Periféricos  Execução Sequencial  busca e descodificação instrução  execução

 avançar para próxima

instrução

 clock

Informação digital

Os computadores processam informação digital

informação digital



Grandeza analógica



Varia de forma contínua (ex: temperatura lida num

termómetro de Hg).



Grandeza digital



Descontínua (existe apenas um número finito de

estados).



Elemento mínimo de informação: dígito binário

(5)

04-12-2006 9

Funcionamento de um

Computador



Ciclo de processamento de um processador:



Busca da instrução na memória



Descodificação da instrução



Leitura dos operandos (se necessários)



Execução da instrução



Escrita dos resultados (caso existam).



Esta situação é válida e aplicável em situações em

que o processador execute num ambiente totalmente

centralizado, em que as operações são controladas

sempre por este.

Sistema Operativo

 É um programa que actua como

intermediário entre os programas dos utilizadores e o hardware

 Máquina virtual, abstraindo o

utilizador

 Objectivos:

 Criar ambiente no qual o utilizador

possa executar programas

 Gestor de Recursos: controla e

coordena a utilização do hardware

 Utilizar o Hardware de forma

(6)

04-12-2006 11

Tópicos de Discussão



Defina e distinga os seguintes conceitos



Multitarefa



Multiutilizador



Multiprogramação



Multiprocessamento

Conceitos



Multitarefa -

permite repartir a utilização do processador entre várias tarefas simultaneamente.



Multiutilizador -

permitem a utilização simultânea dos recursos de um computador por vários utilizadores (UNIX, o FreeBSD, o WindowsNT e o Netware).



Multiprogramação –

permite que o CPU possua vários programas simultaneamente activos na memória. Consiste em dividir a memória em N partições fixas de tamanhos variados, e permite que um programa seja executado enquanto outro espera por e/s. Permite que o CPU suporte a execução de múltiplos programas independentes.



Multiprocessamento -

é a capacidade de um sistema operacional de executar simultaneamente dois ou mais processos.

(7)

04-12-2006 13

Lista de sistemas operativos

 POSIX / UNIX-like  Microsoft Windows  Apple / Macintosh  Amiga  Atari ST  Be-like  DOS  IBM

 Digital Equipment Corporation (DEC) / Compaq  PDAs

 Outros

Classificação

 Tipo de comercialização:

 Sistemas Proprietários (Windows, Mac).  Sistemas Gratuitos (BeOS).

 Sistemas Open Source (Código Aberto) (Unix, BSD).  Sistemas Livres (Linux).

 Funcionamento interno:

 Sistemas monotarefa (ex: DOS)

 Sistemas multitarefa (ex: Windows, Linux, Unix)  Sistemas multi-processador

Os sistemas tarefa podem ainda ser mono-utilizador (BeOS) ou multi-utilizador (Unix, Linux)

 Arquitetura:

 Sistemas monolíticos (ex:Windows, Linux, Unix)  Sistemas micro-kernel (ex: GNU Hurd, Mach).  Sistemas Em camadas (ex: Windows NT).

(8)

04-12-2006 15

Modelo Simplificado

Hardware

Gestão de Processos Gestão de Memória Gestão de I/O Gestão de Ficheiros Aplicação 1 Utilizador 1 Interface Aplicação 2 Utilizador 1 Aplicação 3 Utilizador 2

Conceitos e tarefas do SO

 Processos

 Código executável, dados associados e contexto de execução

 Gestão de Memória

 Isolamento entre processos, alocação automática e protecção e controlo de

acesso  Memória Virtual

 Permite o endereçamento lógico da memória estendendo os limites

físicos da memória principal  Sistemas de Ficheiros

 Implementa o armazenamento a longo prazo de informação. A

informação é armazenada em objectos com um nome conhecidos por ficheiros

 Segurança e Protecção

(9)

04-12-2006 17

Evolução dos Sistemas Operativos

 Processamento em série (batch)

 Os programas são submetidos todos juntos, em sequência por

um operador

 Cada programa é executado até ao fim. Os resultados são

impressos. Não há interactividade

 Multiprogramação

 Execução “simultânea” de vários programas, aproveitando a

maior lentidão dos periféricos

 “Timesharing”

 Vários utilizadores em simultâneo

 Interactividade

 O tempo do processador é dividido pelos vários utilizadores cada

um no seu terminal

Conceitos

 Computador digital

Sistema digital programável que permite armazenar e processar informação em formato digital a velocidades elevadas, realizando operações aritméticas e lógicas elementares.

 Programa

Sequência de instruções que processam os dados. Os programas os dados são armazenados na memória do computador em formato digital usando um código binário.

 Interpretadores

São programas de software especiais que traduzem e convertem os programas escritos em linguagens de programação de alto-nível (programas fonte) em código capaz de ser interpretado e executado pelo processador.

Ao contrário dos compiladores, que procedem primeiro à conversão de todo o programa fonte antes de o tornar executável, os interpretadores vão tomando acções à medida que vão lendo o código do programa. No entanto, a interpretação do código implica a presença do interpretador sempre que o programa é corrido (interpretado).

 Compiladores

São programas de software especiais que traduzem e convertem os programas escritos em linguagens de programação de alto-nível (programas fonte) noutro tipo de programas.

(10)

04-12-2006 19

Conceitos

 Linguagens de Programação

 é uma linguagem com uma sintaxe própria, com a qual se podem

escrever programas de software. Existem várias linguagens de programação, cada qual com o seu conjunto de estruturas, sentenças e regras específicas.

 A maior parte das aplicações desenvolvidas por programadores é feita

utilizando linguagens de alto-nível.

 Pascal  C, C++  prolog

 A programação em linguagens de baixo nível implica que o

programador tenha um profundo conhecimento da arquitectura interna do computador e do seu conjunto de instruções máquina, pelo que esta linguagem não é normalmente utilizada para o desenvolvimento de aplicações.

 assembly

Conceitos

 Código Máquina

 é o formato no qual está codificada toda a informação interna ao

computador. Este código consiste em várias sequências binárias (0s e 1s), e é específico a cada computador.

 Compiladores

 são programas de software especiais que traduzem e convertem os

programas escritos em linguagens de programação de alto-nível (programas fonte) noutro tipo de programas.

Como resultado da tradução, é criado um novo programa correspondente ao programa inincial mas escrito agora em linguagem máquina, o que significa que está pronto a ser executado. Estando no seu estado executável, este programa pode ser corrido (executado) um sem número de vezes sem necessitar de ser novamente compilado. No entanto, ele tem que ser recompilado sempre que forem feitas alterações ao programa fonte.

 Assembler

 é um programa de software que traduz o código de um programa escrito

(11)

04-12-2006 21

História dos Computadores (I)

 1939 - O computador de Atanaso_ e Berry. O 1º computador digital (ABC) foi construído em 1939 (Atanasoff/Berry). A memória era formada por condensadores cujo estado de carga representava um número binário. Os condensadores estavam montados em cilindros de baquelite com uma banda metálica na superfície exterior através da qual era feita a leitura da memória. Cada cilindro tinha 30 cm de altura e 20 cm de diâmetro e podia guardar 30 números. Os dados eram introduzidos com cartões perfurados e o armazenamento dos resultados intermédios era feito queimando pequenos pontos num cartão com uma faísca: a resistência das partes carbonizadas do cartão era diferente da das partes não queimadas.

 1944 - Konrad Zuse constrói em 1938, na Alemanha, o Z1, um computador capaz de efectuar cálculo em vírgula flutuante. Em 1941 Zuse completa um novo modelo, o Z3, destruído por uma bomba em 1944. Todos os modelos de Zuse usavam relés (Zuse não acreditava na abilidade das válvulas) e filmes antigos perfurados para leitura dos programas e dos dados.

História dos Computadores (II)

 1944 -Howard Aiken constrói em Harvard, em 1944, o IBM ASCC (Automatic Sequence Controlled Calculator), mais conhecido por MARK I: > 750000 componentes, 15 m de comprimento, 2,40 m de altura, 4,5 toneladas! Velocidade de processamento: 0.00083 MIPS

(12)

04-12-2006 23

História dos Computadores (III)

 1943 - Alan Turing completa o COLOSSUS, um dos primeiros

computadores digitais electrónicos programável.

 1946 - O primeiro computador

electrónico para uso geral foi construído por John William Mauchly e J. Presper Eckert Jr. entre 1943 e 1946, na Universidade da

Pensilvânia: o ENIAC (Electronic Numerical Integrator And Computer). Ocupava 93 m2, tinha 3 m de altura e pesava 27 toneladas. Os seus 10000 condensadores, 70000 resistências, 6000 interruptores e 18000 válvulas necessitavam de 150 kW!

História dos Computadores (IV)

 1943 - Alan Turing completa o COLOSSUS, um dos primeiros

computadores digitais electrónicos programável.

 1946 - O primeiro computador electrónico para uso geral foi construído

por John William Mauchly e J. Presper Eckert Jr. entre 1943 e 1946, na Universidade da Pensilvânia: o ENIAC (Electronic Numerical Integrator And Computer). Ocupava 93 m2, tinha 3 m de altura e pesava 27 toneladas. Os seus 10000 condensadores, 70000 resistências, 6000 interruptores e 18000 válvulas necessitavam de 150 kW!

 1944 - Em 1944 Mauchly e Eckert decidiram construir um computador

com memória interna, para permitir que o programa executasse funções diferentes de acordo com o resultado obtido em cálculos anteriores: o EDVAC (Electronic Discrete Variable Automatic Computer), que ficou operacional em 1952.

 1952 - O primeiro computador comercial, o UNIVAC I (UNIVersal

(13)

04-12-2006 25

História dos Computadores (V)

 1939 - 9 de Setembro de 1945: Grace Hopper (que desenvolveu o primeiro

compilador) encontra uma traça num dos relés do MARK II de Harvard e escreve no seu logbook: “First actual case of a bug being found.”.

 Maio de 1973: o Micral, o primeiro computador baseado num

micro-processador (o Intel 8008) é lançado em França.

 Janeiro de 1975: é anunciado o Altair 8800, um kit para montar em casa que se

baseava no micro-processador 8080 da Intel e tinha 256 bytes de memória interna. Programava-se usando um painel de interruptores.

 Abril de 1975: Paul Allen e Bill Gates fundam a Microsoft e lançam, em Julho,

um interpretador BASIC para o Altair 8800.

 Outras datas na história dos computadores

 1971: Surge a primeira versão do sistema operativo UNIX (Bell Labs).

 1 de Abril de 1976: Steve Wozniak e Steve Jobs fundam a Apple poucas semanas depois de terem construído o Apple I, baseado no microprocessador 6502 da Motorola.

 1979: É lançada a folha de cálculo VisiCalc para o Apple II.  1981: A IBM inicia a venda do .IBM Personal Computer..  1985: Richard Stallman publica o .GNU Manifesto..

 Dezembro de 1991: Linus Torvalds lança a versão 0.1 do sistema operativo Linux.

A árvore genealógica dos

computadores

(14)

04-12-2006 27

Modelo John Von Newmann

 O matemático Johann von Neumann, consultor do projecto

Manhattan, envolve-se nos projectos do ENIAC e do EDVAC em Junho de 1944. Inspirado por estes, concebe um modelo teórico para um computador, que é o modelo adoptado até hoje.

O computador é constituído pelas seguintes unidades funcionais:

 Memória central

 Unidade aritmética e lógica  Unidade de controlo

 Unidades de entrada e saída



Hoje em dia o processador engloba a unidade

aritmética e lógica e a unidade de controlo.

Sistema Computacional

(15)

04-12-2006 29

O modelo de von Neumann

 O processador não efectua operações directamente sobre a

memória (à excepção da transferência de dados).

 O processamento é feito em células especiais de memória no

interior da UAL denominadas registos.

 A transferência de dados entre a memória central e os

dispositivos de entrada e saída pode ser feita passando pelo processador ou através de acesso directo à memória (DMA).

(16)

04-12-2006 31

Sistema Computacional



Componentes:



Hardware: UCP, memória, dispositivos de I/O



Software



Sistema Operativo: controla e coordena a utilização

do hardware durante a execução de várias aplicações



Aplicações: compiladores, sistemas de bases de

dados,programas diversos, Jogos, …



Utilizadores: pessoas,outros computadores,

máquinas

(17)

04-12-2006 33

Estrutura básica de um computador



Um computador consiste num processador e

controladores de dispositivos que estão ligados a um

barramento comum que dá acesso à memória

(partilhada).



Um controlador de memória controla o acesso dos

vários dispositivos e do processador à memória.



No arranque o computador carrega o boostrap

program. Este inicializa todos os aspectos do

sistema, carrega o sistema operativo e dá inicio à

sua execução.

Informação Digital

Os computadores processam informação digital



Grandeza analógica



Varia de forma contínua (ex: temperatura lida num

termómetro de Hg).



Grandeza digital



Descontínua (existe apenas um número finito de

estados).



Elemento mínimo de informação: dígito binário

(18)

04-12-2006 35

Funcionamento de um

Computador



Ciclo de processamento de um processador:



Busca da instrução na memória



Descodificação da instrução



Leitura dos operandos (se necessários)



Execução da instrução



Escrita dos resultados (caso existam).



Esta situação é válida e aplicável em situações em

que o processador execute num ambiente totalmente

centralizado, em que as operações são controladas

sempre por este.

Sistema Operativo

 É um programa que actua como intermediário entre os

programas dos utilizadores e o hardware

 Máquina virtual, abstraindo o utilizador

 Objectivos:

 Criar ambiente no qual o utilizador possa executar programas  Gestor de Recursos: controla e coordena a utilização do

hardware

(19)

04-12-2006 37

Modelo Simplificado SO

Hardware

Gestão de Processos Gestão de Memória Gestão de I/O Gestão de Ficheiros Aplicação 1 Utilizador 1 Interface Aplicação 2 Utilizador 1 Aplicação 3 Utilizador 2

Modelo Simplificado SO

 Gestão de Processos

 Controla execução processos  Comunicação/Sincronização

 Gestão de Memória

 Isolamento entre processos

 Alocação automática de memória protecção e controlo de acesso

 Permite o endereçamento lógico da memória estendendo os limites físicos da

memória principal  Gestão de I/O

 Interface com dispositivos de entrada e saída (teclado, monitor, rato, etc)  Interface abstracta

 Gestão de Ficheiros

 Implementa o armazenamento a longo prazo de informação.  Controla permissões de acesso

(20)

04-12-2006 39

Evolução Histórica

 Os primeiros computadores (inícios da década de 1950) não

dispunham de nenhum software com as funcionalidades que hoje atribuímos aos sistemas operativos.

 O objectivo principal nessa altura era a fiabilidade do hardware

assim como o seu desempenho.

 Monitor

 Carregar um programa em memória

 Lotes

 Carregar (automático) sequencialmente um conjunto de

programas

 Multi-programa

 Carregar (automático) dinamicamente um conjunto de

programas

 Interactivo

 Interacção com o utilizador



A primeira aproximação ao sistema operativo

moderno caracterizou-se pela realização de um

programa utilitário designado de monitor que permitia

ao utilizador carregar os seus programas em

memória, editá-los e verificar a sua execução.



Cada utilizador dispunha de uma quota de tempo

para utilização do computador e este estava

completamente à sua disposição durante aquele

intervalo de tempo.

Evolução Histórica

Monitor de controlo

(21)

04-12-2006 41

Evolução Histórica

Tratamento em Lotes (Batch)

 O sistema de funcionamento anterior era um pouco ineficiente

uma vez que só permitia um utilizador de cada vez. Além disso, muitas vezes, o processador central do computador (CPU) estava inactivo à espera de um comando do utilizador ou do término de uma operação por parte de um periférico.

 Uma forma de optimizar estes tempos consistiu na introdução

de capacidades de sequenciamento automático de trabalhos no monitor. Assim os computadores começaram a tratar lotes de programas automaticamente.

 Este sistema de tratamento por lotes evoluiu rapidamente. Os

periféricos começaram a poder executar operações autónomas, notificando o processador do fim da sua execução através do mecanismo de interrupções.

Evolução Histórica

Tratamento em Lotes (Batch)

 As operações de entrada/saída podem prosseguir em paralelo

com a execução de um programa que apenas é interrompido para iniciá-las e para tratar a sua terminação.

 As bandas magnéticas são substituídas por discos magnéticos

de acesso aleatório.

 Nos novos sistemas que utilizam discos os cartões são lidos

directamente do leitor de cartões para o disco.

 Esta forma de processamento designa-se por spooling

(simultaneous peripheral operation on-line).

 O spooling permite a sobreposição de uma operação de

entrada/saída (I/O) de um trabalho com a computação de outro trabalho

(22)

04-12-2006 43

Evolução Histórica

Multiprogramação

 A técnica de spooling introduz uma estrutura de dados muito

importante: a pool de trabalhos. A técnica de spooling geralmente resulta na existência de vários trabalhos em disco à espera de serem executados (pool).

 A existência de uma pool de trabalhos em disco permite que o sistema

operativo escolha qual o próximo trabalho a ser executado, de forma a optimizar a utilização do CPU. É a base da multiprogramação.

 Com a multi-programação os sistemas operativos começam a tomar

decisões pelos utilizadores (qual o próximo trabalho a ser executado?). Com a multi-programação a complexidade dos sistemas operativos aumenta.

 Estamos a falar do princípio do escalonamento de

trabalhos/processos.

 Pelo facto de ter vários programas em memória ao mesmo tempo o

sistema operativo necessita de ter mecanismos de gestão de memória.

Evolução Histórica

Sistemas Interactivos

 Um sistema operativo que permita multiprogramação por lotes (batch)

consegue um elevado grau de utilização efectiva de todos os recursos de um computador.

 No entanto este tipo de sistema operativo ainda tem algumas

desvantagens sob o ponto de vista do programador ou utilizador final, uma vez que este não pode interagir com o seu programa enquanto este está a ser executado.

 Surgem os sistemas operativos multitarefa/interactivos.  Neste tipo de sistemas operativos, vários trabalhos podem ser

executados pelo CPU.

 A grande diferença é que a frequência com que o sistema operativo

muda entre tarefa a executar pelo CPU é tão elevada que os

utilizadores podem interagir com cada tarefa/trabalho enquanto estes estão a executar.

 Um sistema interactivo possibilita uma comunicação on-line entre o

(23)

04-12-2006 45

Tipos de Sistemas Operativos

Sistemas Paralelos

 O tipo de multiprocessamento mais comum é o chamado

multiprocessamento simétrico, no qual cada processador corre uma cópia idêntica do sistema operativo.

Sistemas Distribuídos

 Ao contrário dos sistemas descritos anteriormente, estes

sistemas não partilham memória nem relógio. Cada processador tem a sua memória local. Os processadores comunicam entre eles através de linhas de comunicação.

Sistemas Tempo-Real

 Considera-se que um sistema tempo real funciona

correctamente só se retornar o resultado correcto dentro de determinados limites temporais

Referências

Documentos relacionados

Kulčar 40 , encontrou benefícios semelhantes (Tabela 3) e, além disso, ao acompanhar os membros permanentes do grupo por um período de 10 anos, constatou uma

A origem do nome Açaí é que nós justamente tivemos o trabalho né, foi o processo foi feito com o SEBRAE né, foi dado as aulas pra nós, aí então, lá no curso ela pediu pra

A presente pesquisa tem por objetivos: conhecer o processo formativo desenvolvido nas disciplinas do curso de licenciatura em Matemática que têm em sua composição uma carga

Nesta perspectiva, o presente artigo analisa a situação das empresas atendidas pelo Programa Agentes Locais de Inovação do Sebrae, em parceria com o CNPq, no ciclo

LUIS ANTONIO FIORANI, Prefeito Municipal de Vista Alegre do Alto, Estado de São Paulo, no uso de suas atribuições legais, em especial o Inciso II, Alínea “a”, do Artigo 65 da

Foram coletados dados sobre e escolaridade, variáveis antropométricas (altura e peso), situação conjugal, características comportamentais dando detalhamento maior ao

Para entender as diferenças nas batidas e levadas do sambistas e chorões de Florianópolis de que nos falam os partícipes do samba nesta cidade, busco apontar

A lâmina de irrigação que supriu a necessidade hídrica da cultura com melhores médias no cultivo de pimenta malagueta foi a N3 50% é a indicada para todas as fases fenológicas