hardware, software e sistemas operacionais introdução aos ... int computacao aula 1...

Post on 07-Nov-2018

221 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Hardware, Software e

Sistemas Operacionais

Introdução aos Algoritmos

aula 1

Engenharia Elétrica e Engenharia de Automação

Introdução à Computação – 1.o sem/2013

Profa Suely (e-mail: smaoki@yahoo.com)

Hardware

Softwares

Sistemas Operacionais

O que é um computador?

Qual a diferença entre um

computador e uma torradeira?

? ≠

Computador =

Máquina

(Hardware)

+

Software

COMPUTADOR

• É uma máquina que executa

cálculos a partir de uma lista

de intruções fornecidas.

COMPUTADOR

• Porém, não podemos considerar

que um computador é somente

uma máquina que seja eletrônica.

• Computadores já existiam antes

da geração e uso controlados da

eletricidade.

COMPUTADOR

• Desde as remotas eras da humanidade, o

ser humano procurou elaborar

ferramentas para realizar cálculos.

• Os primeiros computadores eram

mecânicos, máquinas de calcular.

• Essas máquinas de calcular realizavam

operações matemáticas sequencialmente,

umas após as outras.

COMPUTADOR

• Exemplos de calculadoras mecânicas:

Calculadora de Pascal

Calculadora de Leibnitz

Calculadora de Schickard

COMPUTADOR

Charles Babbage foi o primeiro a

projetar uma máquina que

poderia receber dados de

entrada, processá-los e mostrar

esses dados transformados como

saída.

Modelo da Máquina

Analítica de Babage

Charles Babbage (1791-1871) - Inglaterra

Augusta Ada Byron (1815-1852)

Sobre Babbage:

http://www.museudocomputador.com.

br/personalidades_babbage.php Acessado em 14/03/2010

Máquina de Babage

Máquina Diferencial de Charles Babbage No. 2, com Doron Swade do Museu de Ciência da Califórnia que

supervisionou sua construção em 1991. (Foto: Museu de Ciência/Biblioteca de Figuras sobre Ciência e

Sociedade)

Abaixo um detalhe de uma das

engrenagens da Máquina de Babbage

Projetada em 1822 e construida em 1991, no Science Museum em Londres .

Modelo da Máquina Analítica de Babage

• um dispositivo de entrada;

• facilidade de armazenar números para processamento;

• um processador ou calculador numérico;

• uma unidade de controle central para organizar as tarefas a serem executadas;

• um dispositivo de saída.

Máquina de Babbage

Apesar de Babbage não ter conseguido construir essa máquina, mesmo com a ajuda financeira de Ada Byron, o modelo dessa máquina analítica é o mesmo seguido até os dias atuais pelos computadores modernos.

Modelo da

Máquina Analítica

Armazenar

Processar

Controlar (“cérebro”)

Entrada Saída

COMPUTADOR

Para realizar o processamento e controle dos dados de entrada, um computador dos dias atuais, é uma máquina (hardware) que necessita de uma sequência de instruções (software) para realizar o processamento (cálculos).

O que são os SOFTWARES?

Softwares

• Software é uma coleção de programas computacionais e dados relacionados que instruem o computador sobre o que ele deve fazer.

• O termo surgiu para se opor ao termo hardware que significa dispositivo físico.

• Em contraste ao hardware, o software é intangível, ou seja, é abstrato.

Softwares

• O termo software é também usado num sentido mais restrito significando software de aplicação somente.

• Algumas vezes, o termo inclui dados que não são tradicionalmente associados com computadores como filmes, fitas e discos.

Softwares

Software de Sistemas Aplicativos

de Programação

Tipos

1. Softwares Aplicativos

• Automação industrial

• Software comercial

• Vídeo-games

• Software aplicado à física

• telecomunicações

• Banco de dados

• Softwares educacionais

• Softwares de aplicações médicas

• Software de modelamento molecular

• Software para edição de imagens

• Planilhas eletrônicas

• Simuladores

• Processador de texto

• Software para decisão empresarial

2. Softwares de Programação

• compiladores

• debugadores

• interpretadores

• linkers

• editores de texto

3. Softwares de Sistema

– drivers de dispositivos

– sistemas operacionais

– servidores

– utilitários

– sistemas com interfaces gráficas (janelas)

Sistema Operacional

Sumário

• Definição

• Funções Básicas 1. Controlar o acesso ao

hardware

2. Gerenciar arquivos e pastas

3. Oferecer uma interface de usuário

4. Gerenciar aplicativos

• Composição 1. Interface com o usuário

(gráfica ou não)

2. Kernel

3. Rede

4. Segurança

• Tipos 1. Batch

2. Interativo

3. Tempo Compartilhado

4. Tempo Real

5. Distribuído

• Estrutura (arquitetura)

1. Monolítico

2. Em Camadas

3. Máquinas Virtuais

4. Microkernel ou Modelo Cliente-Servidor

• Exemplos 1. para computadores

2. para aplicativos móveis

Sistema Operacional

O Sistema Operacional (SO) é o programa em um computador que gerencia o modo como diferentes programas usam seu hardware, e regula os modos como um usuário controla o computador.

Sistema Operacional

Os Sistemas Operacionais são encontrados na maioria dos dispositivos que contém um computador com múltiplos programas, desde aparelhos celulares, consoles de vídeo-games até supercomputadores e servidores web.

Aplicativos (softwares)

Sistema Operacional (Kernel)

Memória

Dispositivos

Sistema Operacional

Funções Básicas:

1. Controlar o acesso ao hardware

2. Gerenciar arquivos e pastas

3. Oferecer uma interface de

usuário

4. Gerenciar aplicativos

Funções Básicas do Sistema Operacional

1. Controlar o acesso ao hardware

O sistema operacional gerencia a interação entre aplicativos e hardware.

Funções Básicas do Sistema Operacional

1. Controlar o acesso ao hardware

Para ter acesso ao hardware e comunicar-se com ele, o sistema operacional instala um driver de dispositivo para cada componente de hardware.

Funções Básicas do Sistema Operacional

1. Controlar o acesso ao hardware

O driver de dispositivo é um pequeno programa desenvolvido pelo fabricante e fornecido com o componente de hardware.

Funções Básicas do Sistema Operacional

1. Controlar o acesso ao hardware

Primeiramente o dispositivo de hardware é instalado, em seguida é instalado o driver de dispositivo, que permite ao sistema operacional comunicar-se com o componente de hardware.

Funções Básicas do Sistema Operacional

1. Controlar o acesso ao hardware

processo “Plug and Play”

O processo de atribuição de recursos do sistema e instalação de drivers pode ser realizado com PnP (Plug and Play).

Funções Básicas do Sistema Operacional

1. Controlar o acesso ao hardware

O processo PnP foi introduzido no Windows 95

para simplificar a instalação de novos hardwares.

Todos os sistemas operacionais modernos são compatíveis com PnP.

Funções Básicas do Sistema Operacional

1. Controlar o acesso ao hardware

Com o PnP, o sistema operacional detecta se o hardware é compatível com PnP e instala o driver desse componente.

Funções Básicas do Sistema Operacional

1. Controlar o acesso ao hardware

Em seguida, o sistema operacional configura o dispositivo e atualiza o Registro, que é um banco de dados que contém todas as informações sobre o computador.

Funções Básicas do Sistema Operacional

2. Gerenciar arquivos e pastas

Funções Básicas do Sistema Operacional

2. Gerenciar arquivos e pastas

O sistema operacional cria uma estrutura de arquivos na unidade de disco rígido para o armazenamento dos dados.

Funções Básicas do Sistema Operacional

2. Gerenciar arquivos e pastas

Um arquivo é um bloco de dados relacionados que recebe um nome exclusivo e é tratado como uma unidade.

Os arquivos de programas e de dados são agrupados em diretórios.

Os arquivos e os diretórios são organizados para facilitar a recuperação e o uso.

Funções Básicas do Sistema Operacional

2. Gerenciar arquivos e pastas

Os diretórios podem conter outros diretórios.

Esses diretórios aninhados chamam-se subdiretórios.

Funções Básicas do Sistema Operacional

3. Oferecer uma interface de usuário

O sistema operacional permite que o usuário interaja com o software e o hardware.

Funções Básicas do Sistema Operacional

3. Oferecer uma interface de usuário

Existem dois tipos de interfaces de usuário:

CLI (Command Line Interface, interface de linha de comando)

GUI (Graphical User Interface, interface gráfica de usuário)

Funções Básicas do Sistema Operacional

o usuário digita comandos em um prompt.

CLI (Command Line Interface, interface de linha de comando)

3. Oferecer uma interface de usuário

Funções Básicas do Sistema Operacional

3. Oferecer uma interface de usuário

GUI (Graphical User Interface, interface gráfica de usuário)

o usuário interage com menus e ícones.

Funções Básicas do Sistema Operacional

4. Gerenciar aplicativos

O sistema operacional localiza um aplicativo e carrega-o na RAM do computador.

Funções Básicas do Sistema Operacional

4. Gerenciar aplicativos

Aplicativos são programas de software, como editores de texto, bancos de dados, planilhas, jogos e muitos outros.

Funções Básicas do Sistema Operacional

4. Gerenciar aplicativos

O sistema operacional garante que cada aplicativo tenha os recursos do sistema adequados.

Sistema Operacional

Composição

1. Interface com o usuário (gráfica ou não)

2. Kernel

3. Rede

4. Segurança

Composição do Sistema Operacional

1. Interface com o usuário (gráfica ou não)

– É o meio de interação entre o usuário

e a máquina, podendo ser uma

interface:

• Gráfica (GUI)

• De linha de comando (CLI)

Composição do Sistema Operacional

2. Kernel – Execução do programa

– Interrupções

– Módulo de proteção, módulo de supervisão e

módulos virtuais

– Gerenciamento de memória

– Memória virtual

– Multi-tarefa

– Acesso a disco e arquivos de sistema

– Drivers de dsipositivos

Kernel

Composição do Sistema Operacional

4. Segurança

Composição do Sistema Operacional

4. Segurança

• Devido à ligação dos computadores em rede, a segurança das informações que trafegam entre eles se tornou imprescindível e parte integrante do Sistema Operacional.

Composição do Sistema Operacional

3. Rede

Sistema Operacional

Tipos 1. Batch

2. Interativo

3. Tempo Compartilhado

4. Tempo Real

5. Distribuído

Observação

Os tipos apresentados no slide anterior foram classificados por Silberschatz, Galvin e Gagne.

Há referências que classificam os tipos como: 1. Monoprogramável

2. Multiprogramável ou Multi-tarefa

Batch

Tempo compartilhado

Tempo real

3. Múltiplos processadores

Tipos de Sistemas Operacionais

1. Batch

• Processos (job) com necessidades similares são processados em conjunto e executados pelo computador como um grupo pelo operador ou um sequenciador automático de processos.

Tipos de Sistemas Operacionais

1. Batch

• A performance é aumentada tentando manter-se a CPU e os dispositivos de E/S ocupados todo o tempo através de armazenamento temporário em memória (buffering), operação off-line, spooling, e multiprogramação.

Tipos de Sistemas Operacionais

1. Batch

• Batch é bom para executar grande quantidade de processos que precisam de pouca interação; ele pode ser submetido a execução e resgatado posteriormente.

Tipos de Sistemas Operacionais

2. Interativo

• Composto por várias pequenas operações nas quais os resultados da operação seguinte pode não ser predizível.

• O tempo de resposta precisa ser curto (na escala de segundos), uma vez que o usuário submete e espera pelo resultado.

Tipos de Sistemas Operacionais

3. Tempo Compartilhado

• É o uso do escalonamento da CPU e multiprogramação para fornecer um uso interativo econômico do sistema.

• A CPU troca rapidamente de um usuário para outro.

• Ao invés de ter-se um processo definido por cartões de imagens spooled, cada programa o lê de um cartão de controle do terminal e a saída é normalmente mostrada imediatamente na tela.

Tipos de Sistemas Operacionais

4. Tempo Real

• Frequentemente usado em aplicações dedicadas.

• O sistema lê a informação de sensores e respondem num intervalo fixo de tempo para assegurar uma performance correta.

Tipos de Sistemas Operacionais

5. Distribuído

• A computação é distribuída entre vários processadores físicos.

Tipos de Sistemas Operacionais

5. Distribuído

• Os processadores não compartilham memória ou clock.

• Ao invés disso, cada processador tem sua própria memória local.

• Eles se comunicam um com outro através de várias linhas de comunicação, como um barramento de alta velocidade ou linha telefônica.

Sistema Operacional

Estrutura (arquitetura):

1. Monolítico

2. Em Camadas

3. Máquinas Virtuais

4. Microkernel ou Modelo Cliente-Servidor

Estruturas de Sistemas Operacionais (arquitetura)

1. Monolítico • Organização mais comum dentre os SO’s.

• É escrito como uma coleção de procedimentos, cada um pode chamar qualquer um dos outros sempre que precisar.

• Cada procedimento tem uma interface bem definida.

• Em termos de proteção de informações, não há: cada procedimento é visível para todos os demais.

• Exemplos: MS-DOS e primeiras versões do UNIX

Estruturas de Sistemas Operacionais (arquitetura)

1. Monolítico

Modelo de Estrutura Simples para um Sistema Monolítico

Estruturas de Sistemas Operacionais (arquitetura)

2. Em Camadas • SO como uma hierarquia de camadas, construídas

uma sobre a outra.

• Cada camada possui um conjunto de funções que só é acessível pelas camadas superiores.

• Primeiro SO em camadas foi construído no Technische Hogeschool Eindhoven, Holanda, por E. W. Dijkstra, em 1968.

• Versões Exemplos: UNIX e MS Windows

Estruturas de Sistemas Operacionais (arquitetura)

2. Em Camadas

Estrutura do Sistema Operacional THE

Estruturas de Sistemas Operacionais (arquitetura)

2. Em Camadas

Uma vantagem: as camadas mais internas ficam protegidas devido à estrutura de hierarquia e, como as funções ficam isoladas, a manutenção será mais fácil.

Uma desvantagem: desempenho, pois, a cada nova camada deverá se ter um novo nível de acesso.

Estruturas de Sistemas Operacionais (arquitetura)

3. Máquinas Virtuais

Estrutura do VM/370 com CMS (Conversational Monitor System)

Exemplos: Virtual PC, VMware, Vbox, HyperV

Estruturas de Sistemas Operacionais (arquitetura)

4. Micro-kernel ou Modelo Cliente-Servidor

Modelo cliente-servidor

Estruturas de Sistemas Operacionais (arquitetura)

4. Micro-kernel ou Modelo Cliente-Servidor

Modelo Cliente-Servidor num Sistema Distribuído

Sistema Operacional

Exemplos para computadores:

– Unix

– Linux

– Mac OS X

– Microsoft Windows

Sistema Operacional

Exemplos para aplicativos móveis:

– Palm OS

– Symbian

– Windows Mobile

– BREW (Binary Runtime Environment for Wireless)

– Chrome

– Android

Lógica de

Programação

Lógica de programação

• É a técnica de encadear

pensamentos para atingir

determinado objetivo.

Seqüência Lógica

• Estes pensamentos podem ser descritos

como uma seqüência de instruções, que

devem ser seguidas para cumprir uma

determinada tarefa.

• Seqüência Lógica são passos

executados até atingir um objetivo ou

solução de um problema.

Instruções

• Na linguagem comum, entende-se por instruções "um conjunto de regras ou normas definidas ou normas para a realização ou emprego de algo".

• Em computação, porém, a instrução é a informação que indica a um computador uma ação elementar a executar.

Algoritmos

• Um algoritmo é uma seqüência

finita de instruções (ou

operações básicas) definida sem

ambigüidade e executável em

tempo finito para se resolver um

problema.

Um algoritmo deve possuir as

seguintes características

• Ter um objetivo.

• Ter início e fim.

• Ter uma seqüência lógica.

• Ser escrito em termos de ações ou comandos bem definidos (verbos no imperativo).

• Deve ser fácil de interpretar e codificar, ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação.

Representação de

Algoritmos

Representação de Algoritmos

em uma Língua Convencional

• Apresenta um inconveniente

em relação a ambigüidade de

alguns termos.

Exemplo de Algoritmo em

Língua Convencional

Nome: Telefonema

Objetivo: Fazer ligação telefônica através de um telefone fixo

Início 1. Tirar o fone do gancho

2. Esperar até ouvir o sinal de linha

3. Teclar o número desejado

4. Se der o sinal de chamar 4.1. Conversar

4.2. Desligar

5. Se não der o sinal de chamar 5.1. Desligar

5.2. Repetir desde o passo 1

Fim

Representação de Algoritmos

em Pseudo-Código

Não apresenta os inconvenientes de ambigüidade de uma língua, nem os rigores de uma linguagem de programação.

Esta representação é feita através de um português estruturado com "frases” correspondentes às estruturas básicas de programação.

Regras para Representação em Pseudo-Código

• Definir um NOME para o algoritmo; • Descrever o OBJETIVO do algoritmo; • Descrever a ENTRADA DE DADOS para o algoritmo; • Descrever a SAÍDA DE DADOS do algoritmo; • O algoritmo deve iniciar com a palavra: INÍCIO; • Para indicar o fim do algoritmo utilizamos a palavra: FIM; • A palavra que indica ação a ser executada no algoritmo

deve estar sublinhada, tais como: início, fim, leia, escreva, se, então, senão, enquanto, faça, até que, para;

• Usar somente um verbo por frase no modo imperativo; • Usar frases simples e curtas; • Numerar as frases de acordo com sua a seqüência lógica; • Alinhar as instruções de acordo com o nível a que

pertençam com a finalidade de destacar a estrutura na qual estão contidos (identação);

• Incorporar comentários no algoritmo.

Exemplo de Algoritmo em Pseudo-Código

Nome: CÁLCULO MÉDIA. Objetivo: Calcular a média de um aluno e apresentar se ele foi aprovado ou reprovado. Entrada de Dados: Notas do 1º e 2º bimestre (P1 e P2). Saída de Dados: Média e uma mensagem indicando aprovado ou

reprovado.

Início 1. LEIA P1 2. LEIA P2 3. MEDIA (P1 + 2*P2)/3 4. SE MEDIA >= 6.0 ENTÃO

IMPRIMA "Aprovado" SENÃO

IMPRIMA "Reprovado" FIM-SE 5. IMPRIMA MEDIA

Fim.

Representação de

Algoritmos com

Fluxograma

Fluxograma

É uma forma de representar

algoritmos na qual símbolos

padrões significam

instruções e o sentido da

sequência lógica é indicada

por uma seta.

Exemplo de Algoritmo em Fluxograma

Nome: CÁLCULO MÉDIA.

Objetivo: Calcular a média de um aluno e apresentar se

ele foi aprovado ou reprovado.

Entrada de Dados: Notas do 1º e 2º bimestre (P1 e P2).

Saída de Dados: Média e uma mensagem indicando

aprovado ou reprovado.

Início

Ler Nota do

1º Bim. - P1

Ler Nota do

1º Bim. - P1

Calcular Média

M = P1 + 2*P2

3

M >= 7.0

Mostrar em vídeo

"REPROVADO"

Mostrar em vídeo

"APROVADO"

Mostrar em vídeo

Média

Fim

VerdadeFalso

Outros Exemplos

Algoritmo para trocar lâmpada

• Em linguagem convencional...

Nome: Troca de lâmpada

Objetivo: Trocar uma lâmpada

Início

1. Pegar uma escada 2. Posicionar a escada debaixo da lâmpada 3. Pegar uma lâmpada nova 4. Subir na escada 5. Retirar a lâmpada velha 6. Colocar a lâmpada nova 7. Descer na escada 8. Acionar o interruptor 9. Se a lâmpada não acender

– Repetir as instruções desde o passo 3

Fim

Algoritmo para somar dois

números e multiplicar o

resultado pelo primeiro número

• Em linguagem convencional

Nome: Operações aritméticas

Objetivo: Mostrar o resultado da seguinte seqüência de operações – somar dois números e multiplicar o primeiro número pelo resultado da soma

Entrada de Dados: dois números

Saída de Dados: resultado da operação

Início

1.Leia um número

2.Leia outro número

3.Some os dois números

4.Multiplique o resultado da soma pelo primeiro número

5.Mostre o resultado da multiplicação

Fim.

Algoritmo para somar dois

números e multiplicar o

resultado pelo primeiro número

• Em pseudo-código

Nome: Operações aritméticas

Objetivo: Mostrar o resultado da seguinte seqüência de operações – somar dois números e multiplicar o primeiro número pelo resultado da soma

Entrada de Dados: dois números

Saída de Dados: resultado da operação

Início

1.Leia NUM1

2.Leia NUM2

3.SOMA NUM1 + NUM2

4.MULT NUM1 * SOMA

5.Imprima MULT

Fim.

Algoritmo para somar dois

números e multiplicar o

resultado pelo primeiro número

• Em linguagem C

/* Nome: Operações aritméticas

Objetivo: Mostrar o resultado da seguinte seqüência de operações – somar dois números e multiplicar o primeiro número pelo resultado da soma

Entrada de Dados: dois números

Saída de Dados: resultado da operação */

# include <stdio.h>

# include <conio.h>

void main () {

int NUM1, NUM2, SOMA=0, MULT=0;

scanf (“%d”, &NUM1);

scanf (“%d”, &NUM2);

SOMA = NUM1 + NUM2;

MULT = NUM1 * SOMA;

printf (“O resultado eh: %d”, MULT);

getch ();

}

top related