Upload
doanbao
View
219
Download
0
Embed Size (px)
Citation preview
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: [email protected])
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 ();
}