qual o conceito de hardware

29
Qual o conceito de hardware? Qual o conceito de software? 1. Conceitos de Hardware / Software Curso Competências Básicas in Tecnologias da Informação 2. Conceito Hardware ware + hard = duro Hard: duro, Sólido, rigido Ware: Artigo E a Parte Física do Computador, OU SEJA e Aquela Que e palpável 3. Conceito Software Soft ware macios +: Macio, suave Ware: Artigo e uma Parte Lógica, OU SEJA, Eletrônicos o Conjunto de instrucoes de Dados processados Pelos Circuitos do hardware. Toda interacção COM OS usuarios e realizada atraves de software e de Permite Transformar o Computador in Algo Útil par o Ser Humano. Exemplos: pastas, ficheiros, Programas, etc 4. Sistema Operativo Definição Um Sistema Operativo e UMA colecção de Programas de software controlam Que uma forma de Como OS dispositivos de hardware De Um Computador OS interagem com Programas, Bem Como uma forma de Como o Computador Responde EAo comandos do Utilizador. 5. Sistema Operativo Exemplos de Sistemas Operativos: MS-DOS Amiga IMB Unix Linux Mac OS X Windows: Windows 95, Windows 98, Windows Xp, Windows Vista 2 - De que é constituído um sistema computacional? Explique suas várias partes: Um sistema computacional consiste num conjunto de dispositivos eletrônicos (hardware ) capazes de processar informações de acordo com um programa (software ). O software mais importante é osistema operacional , porque ele fornece as bases para a execução das aplicações, às quais o usuário deseja executar. Um exemplo de Sistema Operacional é o Windows, Macintosh, Linux, dentre outros. Um dos mais utilizados por usuários domésticos hoje é o Windows, produzido pela Microsoft. Um sistema computacional pode ser composto de rede de computadores , servidores e cluster , dependendo da situação e das necessidades. Um sistema computacional (ou baseado em computador) é aquele que automatiza ou apóia a realização de atividades humanas através do processamento de informações. Um sistema baseado em computador é caracterizado por alguns elementos fundamentais. • Hardware • Software • Informações • Usuários • Procedimentos ou Tarefas • Documentação O hardware corresponde às partes eletrônicas e mecânicas (rígidas) que possibilitam a existência do software, o armazenamento de informações e a interação com o usuário. A CPU, as memórias primária e secundária, os periféricos, os componentes de redes de computadores, são exemplos

Upload: luis-oliveira

Post on 01-Jul-2015

2.148 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Qual o conceito de hardware

Qual o conceito de hardware? Qual o conceito de software?

1. Conceitos de Hardware / Software Curso Competências Básicas in Tecnologias da Informação

2. Conceito Hardware ware + hard = duro Hard: duro, Sólido, rigido Ware: Artigo E a Parte

Física do Computador, OU SEJA e Aquela Que e palpável

3. Conceito Software Soft ware macios +: Macio, suave Ware: Artigo e uma Parte Lógica, OU

SEJA, Eletrônicos o Conjunto de instrucoes de Dados processados Pelos Circuitos do

hardware. Toda interacção COM OS usuarios e realizada atraves de software e de Permite

Transformar o Computador in Algo Útil par o Ser Humano. Exemplos: pastas, ficheiros,

Programas, etc

4. Sistema Operativo Definição Um Sistema Operativo e UMA colecção de Programas de

software controlam Que uma forma de Como OS dispositivos de hardware De Um

Computador OS interagem com Programas, Bem Como uma forma de Como o Computador

Responde EAo comandos do Utilizador.

5. Sistema Operativo Exemplos de Sistemas Operativos: MS-DOS Amiga IMB Unix Linux Mac OS

X Windows: Windows 95, Windows 98, Windows Xp, Windows Vista

2 - De que é constituído um sistema computacional? Explique suas várias partes:

Um sistema computacional consiste num conjunto de dispositivos eletrônicos (hardware)

capazes de processar informações de acordo com um programa (software). O software mais

importante é osistema operacional, porque ele fornece as bases para a execução das

aplicações, às quais o usuário deseja executar. Um exemplo de Sistema Operacional é o

Windows, Macintosh, Linux, dentre outros. Um dos mais utilizados por usuários domésticos

hoje é o Windows, produzido pela Microsoft.

Um sistema computacional pode ser composto de rede de computadores, servidores e cluster,

dependendo da situação e das necessidades.

Um sistema computacional (ou baseado em computador) é aquele que automatiza ou apóia a

realização de atividades humanas através do processamento de informações. Um sistema

baseado em computador é caracterizado por alguns elementos fundamentais.

• Hardware • Software • Informações • Usuários • Procedimentos ou Tarefas • Documentação

O hardware corresponde às partes eletrônicas e mecânicas (rígidas) que possibilitam a

existência do software, o armazenamento de informações e a interação com o usuário. A CPU,

as memórias primária e secundária, os periféricos, os componentes de redes de computadores,

são exemplos de elementos de hardware. Um único computador pode possibilitar a existência

de diversos sistemas e um sistema pode requisitar diversos computadores. O software é a

parte abstrata do sistema computacional que funciona num hardware a partir de instruções

codificadas numa linguagem de programação. Estas instruções permitem o processamento e

armazenamento de informações na forma de dados codificados e podem ser controladas pelo

usuário. Este controle, bem como a troca de informações entre o usuário e o sistema é feita

através da interface de usuário, composta por hardware e software.

Page 2: Qual o conceito de hardware

3 - Qual a função principal de um Sistema Operacional?

Um sistema operativo (português europeu) ou sistema operacional (português brasileiro) é um programa ou

um conjunto de programas cuja função é gerenciar os recursos do sistema (definir qual

programa recebe atenção do processador, gerenciar memória, criar um sistema de arquivos,

etc.), além de fornecer uma interface entre o computador e o usuário. É o primeiro programa

que a máquina executa no momento em que é ligada (num processo chamado

de bootstrapping) e, a partir de então, não deixa de funcionar até que o computador seja

desligado. O sistema operacional reveza sua execução com a de outros programas, como se

estivesse vigiando, controlando e orquestrando todo o processo computacional.

Segundo alguns autores (Silberschatz et al, 2005; Stallings, 2004; Tanenbaum, 1999), existem

dois modos distintos de conceituar um sistema operacional:

pela perspectiva do usuário ou programador (visão top-down): é uma abstração

do hardware, fazendo o papel de intermediário entre o aplicativo (programa) e os

componentes físicos do computador (hardware); ou

numa visão bottom-up, de baixo para cima: é um gerenciador de recursos, i.e., controla

quais aplicações (processos) podem ser executadas, quando, que recursos (memória,

disco, periféricos) podem ser utilizados.

A sigla usual para designar esta classe de programas é SO (em português) ou OS (do

inglês Operating System).

4) Qual o conceito de "máquina virtual"?

a ciência da computação, máquina virtual é o nome dado a uma máquina, implementada através de software, que executa programas como um computador real.

Uma máquina virtual (Virtual Machine – VM) pode ser definida como “uma duplicata eficiente e isolada de uma máquina real”. A IBM define uma máquina virtual como uma cópia isolada de um sistema físico, e esta cópia está totalmente protegida.

Máquinas virtuais são extremamente úteis no dia-a-dia, pois permitem ao usuário rodar outros sistemas operacionais dentro de uma janela, tendo acesso a todos os softwares que precisa.

Índice

Page 3: Qual o conceito de hardware

 [esconder]

1 Definição

2 Tipos

3 Vantagens

4 Desvantagens

5 Segurança

6 Ver também

7 Referências

[editar]Definição

O termo máquina virtual foi descrito na década de 1960 utilizando um termo de sistema operacional: uma abstração de software que enxerga um sistema físico (máquina real). Com o passar dos anos, o termo englobou um grande número de abstrações – por exemplo, Java Virtual Machine – JVM que não virtualiza um sistema real.

Ao invés de ser uma real, isto é, um computador real feito de hardware e executando um sistema operacional específico, uma máquina virtual é um computador fictício criado por um programa de simulação. Sua memória, processador e outros recursos são virtualizados. A virtualização é a interposição do software (máquina virtual) em várias camadas do sistema. É uma forma de dividir os recursos de um computador em múltiplos ambientes de execução.

Os emuladores são máquinas virtuais que simulam computadores reais. São bastante conhecidos os emuladores devídeogames antigos e os emuladores de microcomputadores, como o VMware, o Bochs e o VM VirtualBox, software livre da Oracle.

[editar]Tipos

As máquinas virtuais podem ser divididas em dois tipos:

Tipo 1: Sistema em que o monitor é implementado entre o hardware e os sistemas convidados (guest system).

Tipo 2: Nele o monitor é implementado como um processo de um sistema operacional real, denominado sistema anfitrião (host system).

Page 4: Qual o conceito de hardware

Tipos Híbridos: Os monitores de tipo 1 e 2 raramente são usados em sua forma conceitual em implementações reais. Na prática, várias otimizações são inseridas nas arquiteturas apresentadas, com o objetivo principal de melhorar o desempenho das aplicações nos sistemas convidados. Como os pontos cruciais do desempenho dos sistemas de máquinas virtuais são as operações de I/O, as principais otimizações utilizadas em sistemas de produção dizem respeito a essas operações.

Outra importante categoria de máquinas virtuais são as máquinas virtuais para computadores fictícios projetados para uma finalidade específica. Atualmente a mais importante máquina virtual desta família é a JVM (máquina virtual Java). Existem simuladores para ela em quase todos os computadores atuais, desde computadores de grande porte até telefones celulares, o que torna as aplicações Java extremamente portáveis.

Uma importante vantagem sem duvida de se escrever código para uma máquina virtual é a de se poder compilar o código sem que seja perdida a portabilidade, melhorando-se a velocidade em relação à programação interpretada, que também é portátil, porém mais lenta, já que neste caso cada linha será traduzida e executada em tempo de execução, e no caso da máquina virtual cada mnemônicoda máquina virtual é convertido no equivalente em linguagem de máquina (ou assembly) da máquina real.

[editar]Vantagens

• Facilita o aperfeiçoamento e testes de novos sistemas operacionais.

• Possibilita a comparação de vários sistemas operacionais utilizando o mesmo equipamento.

• Executa diferentes sistemas operacionais sobre o mesmo hardware, simultaneamente.

• Simula alterações e falhas no hardware para testes ou reconfiguração de um sistema operacional, provendo confiabilidade e escalabilidade para as aplicações.

• Diminuição de custos com hardware.

Page 5: Qual o conceito de hardware

• Facilidades no gerenciamento, migração e replicação de computadores, aplicações ou sistemas operacionais.

• Confiança e disponibilidade: A falha de um software não prejudica os demais serviços.

[editar]Desvantagens

• Gerenciamento: Os ambientes virtuais necessitam ser, monitorados, configurados e salvos . Existem produtos que fornecem essas soluções, mas esse é o campo no qual estão os maiores investimentos na área de virtualização, justamente por se tratar de um dos maiores contratempos na implementação da virtualização.

• Desempenho: Atualmente, não existem métodos consolidados para medir o desempenho de ambientes virtualizados. No entanto, a introdução de uma camada extra de software entre o sistema operacional e o hardware, o VMM ou hypervisor, gera um custo de processamento superior ao que se teria sem a virtualização. Outro ponto importante de ressaltar é que não se sabe exatamente quantas máquinas virtuais podem ser executadas por processador, sem que haja o prejuízo da qualidade de serviço.

[editar]Segurança

Embora a máquina necessite do sistema real para sua inicialização, trabalha de maneira independente como se fosse outro computador, isto requer também um sistema de segurança independente, ou seja, a ocorrência de infecção por vírus na máquina virtual não afeta a máquina real.[editar]

5) O que é microprograma?

CAPÍTULO 5 – NÍVEL DE MICROPROGRAMAÇÃO

4.1 Introdução

• Interface entre o Nível ISA e o Nível de Lógica Digital.

• Este nível de máquina virtual não está presente em máquinas RISC.

Page 6: Qual o conceito de hardware

• Necessidade: simplificar o hardware, tornando-o mais eficiente.

• Arquitetura constituída por conjunto de Microinstruções que

manipulam, fundamentalmente, memória de rascunho.

• O espaço de endereçamento “visto” pelas microinstruções é a memória

de rascunho.

• Microinstruções são instruções primitivas que codificam um único ciclo

de máquina a ser executado no caminho de dados da CPU.

• Os sinais de controle de todos os módulos de processamento que

compõem o caminho de dados da CPU são codificados na

microinstrução.

• O Microprograma é o único programa escrito para este nível.

• O microprograma é um interpretador de instruções do Nível ISA

(macroinstruções): busca, decodifica e executa as instruções dos

programas do Nível ISA.

• Vantagem: possibilidade de alterar o Nível ISA escrevendo outro

microprograma. Facilita a concepção de Famílias de Processadores.

• O microprograma é armazenado em na Memória de Controle, que faz

parte da Unidade de Controle microprogramada.

• As microinstruções que compõem o microprograma são interpretadas

pelo Nível de Lógica Digital (essencialmente, pelo hardware da

Unidade de Controle microprogramada):

• O hardware da Unidade de Controle microprogramada é responsável

por buscar, uma a uma, cada micro instrução do microprograma na

memória de controle e armazená-las em um registrador apropriado

(Registrador de Microinstrução – MIR).

• Os sinais de controle da CPU codificados na microinstrução

armazenada no MIR são decodificados pelo hardware da Unidade de

Controle microprogramada.

• O hardware da Unidade de Controle microprogramada é responsável

pela execução da microinstrução, ou seja, a aplicação dos sinais de

controle no caminho de dados da CPU, de acordo com uma

temporização adequada.

Page 7: Qual o conceito de hardware

• O hardware da Unidade de Controle microprogramada deve prover

um meio de seqüenciamento das microinstruções.

6) O que é "linguagem de máquina"?

MC102 – Algoritmos e Programação de Computadores

2ª Aula – Programa, entrada e saída de dados

1. Objetivos

Falar sobre programa de computador, diferenciando programa em linguagem de máquina, de programa em linguagem de montagem e de programa em linguagem de alto nível

Apresentar a Linguagem C e a estrutura geral de um programa nesta linguagem de alto nível

Falar sobre entrada e saída de dados e apresentar as funções printf() e scanf() da Linguagem C

Apresentar operadores aritméticos da Linguagem C

2. Motivação

Toda a linguagem de programação apresenta uma estrutura. Para que se dê início à atividade de programação de computadores, é indispensável conhecer ao menos a estrutura e as características gerais da linguagem de programação escolhida.

Comandos de entrada e saída de dados possibilitam a um programa aplicar o mesmo algoritmo a diferentes valores de entrada e produzir dados para outros programas ou mesmo úteis a um ser humano.

3. Conceitos

3.1 Programa de computador (Revisão)

A linguagem compreendida pelos computadores é a linguagem de máquina, cujo alfabeto é formado apenas por duas letras: os dígitos binários1 (ou bits) 0 e 1. Escrever programas em linguagem de máquina utilizando apenas 0s e 1s, entretanto, é uma tarefa chata e bastante sujeita a erros.

“O uso da máquina para programar a própria máquina foi a forma encontrada pelos pioneiros da programação para traduzir programas escritos em uma linguagem simbólica para a linguagem da máquina.” (Hennessy e Patterson, 2000)

1 O uso de números binários para representar instruções e dados é a base da teoria computacional.

Page 8: Qual o conceito de hardware

A linguagem de montagem (ou assembly) foi criada para facilitar a programação de computadores, mas ela ainda obriga o programador a escrever uma linha para cada instrução a ser executada pela máquina, forçando-o a raciocinar como máquina. O programa que traduz a linguagem de montagem para a linguagem de máquina é denominado montador (ou assembler).

Instruções são conjuntos de bits inteligíveis pelo computador e que podem ser associadas a números. Por exemplo, os bits 1000 1100 1010 0000 informam a um determinado computador que ele deve somar dois números.

Já as linguagens de programação de alto nível oferecem uma série de vantagens ao programador: (1) permitem que ele raciocine de uma forma mais natural, usando palavras em inglês e notações algébricas; (2) colaboram para sua produtividade, por serem mais concisas que as linguagens de montagem; (3) e favorecem a portabilidade, uma vez que programas escritos em linguagens de alto nível são independentes do computador no qual foram desenvolvidos.

3.2 Linguagem C

Atualmente, os programadores têm a sua disposição diferentes linguagens de programação de alto nível. A Linguagem C é uma delas que, em geral, é compilada. Portanto, como apresentado na aula anterior, um programa codificado em linguagem C é traduzido pelo compilador em um programa executável, ou seja, codificado em linguagem de máquina. Às vezes essa tradução da linguagem de alto nível para a linguagem de máquina também passa por um montador, conforme apresentado na

Figura 1, a seguir.

Figura 1: Representação de uma expressão em diferentes linguagens computacionais

Sobre a Linguagem C:

É uma linguagem de programação de propósito geral.

Seus tipos de dados fundamentais são caracteres, inteiros e ponto flutuante de diversos tamanhos. Também oferece uma hierarquia de tipos de dados derivados criados com apontadores, vetores, estruturas e uniões.

Expressões são formadas com operadores e operandos.

Montador

Compilador

Expressão em linguagem

Expressão em linguagem

Expressão em linguagem

A + B

1000 1100 1010 0000

ADD A, B

Page 9: Qual o conceito de hardware

Provê construções fundamentais de fluxo de controle exigidas por programas bem estruturados2: agrupamento de comandos, tomada de decisão (if-else), seleção de um dentre um conjunto de casos possíveis (switch), laços com teste de término no topo (while, for) ou no fundo (do), e saída antecipada do laço (break).

Apresenta facilidades para modularização.

Programa em C:

“Um programa em C, independentemente de seu tamanho, consiste em funções e variáveis. Uma função contém comandos que especificam as operações de computação a serem feitas, e as variáveis armazenam valores usados durante a computação.” (Kernighan e Ritchie, 1989:6)

Figura 2: Um programa em Linguagem C

#include <stdio.h>

Informa ao compilador para incluir informação sobre a biblioteca padrão de entrada/saída.

main()

É a função principal do programa escrito em C. Um programa C começa a ser executado do início da função main. Os comandos de uma função são delimitados por chaves { }.

printf (“primeiro programa\n”);

É uma chamada à função printf, que imprime na saída padrão (a tela do computador). Neste caso o que é impresso na tela é a cadeia de caracteres “primeiro programa\n”. \n indica nova linha.

Tabela 1: Caracteres de Escape da Linguagem C

\a Caracter de alerta (bell)

\b Retrocesso

2 Lembrar do conceito de algoritmo.

#include <stdio.h>

main() {

Page 10: Qual o conceito de hardware

\f Alimentação de formulário

\n Nova linha

\r Retorno de carro

\t Tabulação horizontal

\v Tabulação vertical

\\ Contra-barra

\? Ponto de interrogação

\’ Apóstrofo

\” Aspas

\ooo Número octal

\xhh Número hexadecimal

Programa C – Comentários:“Comentários são observações que o programador faz no código do programa para poder entendê-lo melhor mais tarde, ou permitir que outros possam entender mais facilmente o programa. É parte da documentação do programa.” (Trevisan, 2002)

Figura 3: Comentários em um programa escrito em Linguagem C

Em C, todo comentário começa com o par de caracteres /* e termina com */. Não deve haver nenhum espaço entre o asteriscos e a barra. O compilador ignora qualquer texto entre os símbolos de comentários. Atenção: um comentário não pode conter outro comentário!

/* Um programa em linguagem C

* Exemplo de uso de comentários

*/

#include <stdio.h>

Page 11: Qual o conceito de hardware

A maioria dos compiladores C também aceita comentários de apenas uma linha, ou seja, que terminam no final da linha. Neste caso, o comentário é feito colocando-se // no início do texto de comentário.

3.3 Entrada e SaídaRetomar o papel da entrada e da saída de dados para um algoritmo computacional, exemplificando com exemplos do cotidiano (ex. uso do caixa eletrônico, caixa de supermercado, login em um sistema).

Na aula introdutória de laboratório, foi utilizado o programa gcc:gcc primeiro-programa.c -o primeiro-programa

Há um exemplo de uso da função scanf no exemplo (1), mas esta função deve ser melhor trabalhada junto ao tópico “Variáveis, comandos de atribuição, constantes”. Já é possível, entretanto, apresentar a importância de existir uma maneira de um programa armazenar dados.

6) O que é "linguagem de máquina"?

Organização Estruturada de Computador - Aula 1 

Nesta aula abordaremos os temas de linguagens de computadores, níveis e máquinas virtuais e máquinas multiníveis contemporâneas.

O texto abaixo é um resumo dos seções 1.1.1 e 1.1.2 do capítulo 1 do lívro: Organização Estruturada de Computadores de Andrew S. Tanenbaum, 4a Edição, 2001.

Importante: O resumo abaixo deve ser complementado, pelo aluno, com a leitura do texto original do livro.

Tópicos

Introdução Linguagens, níveis e máquinas virtuais Máquinas multiníveis modernas

Page 12: Qual o conceito de hardware

Introdução

O computador :

é uma máquina de solução de problemas executa programas - Conjunto de instruções que descrevem como

realizar uma tarefa

Os circuitos de um computador (Hardware)

reconhecem e executam um conjunto limitado e simples de instruções (linguagem de máquina- binária)

exemplo: soma, comparação, transferência de dados de uma parte da memória para outra parte

Instruções da linguagem de máquina (decidida pelos projetistas de computadores) devem:

ser simples ser compatível com o uso da máquina ser compatível com a performance requerida ter custo e complexidade da eletronica reduzidos (aplicação)

A linguagem de máquina (binária-baixo nível) está muito distante de uma linguagem natural (humana-alto nível)

O que as pessoas precisam fazer é complexo X o conjunto de instruções do computador é simples

Exemplo: o usuário quer calcular a correção trajetória de um foguete até a lua

Como o usuário pode fazer isso em linguagem de máquina? Trabalho difícil e tedioso para os humanos

Solução: Criar uma hierarquia de abstrações de níveis mais altos baseadas nos níveis mais baixos. Criar uma organização estruturada de computadores para facilitar a comunicação homem-máquina

Page 13: Qual o conceito de hardware

Linguagens, Níveis e Máquinas Virtuais

Supondo a existência das linguagens:

L1: linguagem natural, do usuário (alto nível e complexa) L0: linguagem da máquina (baixo nível e simples)

Como compatibilizar L1 com L0? Temos 2 soluções:

usar um tradutor usar um interpretador

    TRADUTOR: 

Cada instrução de L1 é substituída por um conjunto de instruções

equivalents de L0 Processador executa programa em L0. Todo programa em L0 é carregado em memória e é executado Programa pode ser traduzido uma única vez e executado várias vezes

  INTERPRETADOR: 

Cada instrução de L1 é substituída por um conjunto de instruções

equivalents de L0 Processador executa instrução de L1 (transformada para L0) antes de

executar próxima instrução. Cada instrução de L1, transformada para L0, é carregada na memória e

executada Não é criado um programa em L0 Programa deve ser novamente interpretado para ser executado

Observação: Pode ser utilizada uma metodologia híbrida: tradutor + interpretador

Ao invés de pensar em tradução ou interpretação, pode-se imaginar a existência de um computador hipotético, ou de uma máquina virtual M1, cuja linguagem de máquina seja L1 (e uma máquina real M0 com linguagem L0)

Page 14: Qual o conceito de hardware

Os programas poderiam ser escritos em L1, para a máquina M1 e:

1. serem executados diretamente em M1 se esta máquina fosse de custo de construção baixo, ou

2. serem traduzidos ou interpretados para L0 e executados em M0

Na prática se implementa a solução 2 acima. As pessoas escrevem programas para máquinas virtuais como se elas realmente existissem.

Muitos níveis de máquinas virtuais podem ser implementados. Cada linguagem usa a sua linguagem antecessora como base, de modo que um computador que use essa técnica pode ser visto como um conjunto decamadas ou níveis um em cima do outro como mostra a figura que segue.

Page 15: Qual o conceito de hardware

Figura 1.1 Máquina de vários níveis (Obtida do material, disponível na internet, do livro do Tanenbaum, 2001)

Máquinas Multiníveis Contemporâneas

A grande maioria dos computadores modernos é formada por 2 ou mais níveis. A Figura abaixo mostra o esquema de um computador com 6 níveis:

Page 16: Qual o conceito de hardware

Figura 1.2 Computador com 6 níveis. O método por meio do qual cada nível é suportado aparece indicado abaixo do nível (junto com o nome do nível que o suporta). (Obtida do material, disponível na internet, do livro do Tanenbaum, 2001)

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

Page 17: Qual o conceito de hardware

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,...

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. (ver exemplo no livro)

Nível 2: Nível da Arquitetura do Conjunto de Instruções (nível 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.

Page 18: Qual o conceito de hardware

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, ....

Programas são geralmente traduzidos para os níveis 3 e 4 por compiladores

Alguns são interpretados: Exemplo: programas em Java, MatLab, ...

Observações finais importantes:

Computadores são projetados como uma série de níveis, cada um deles construídos em cima de seus precursores.

Cada nível representa uma abstração distinta, com diferntes objetos e operações

A abstração permite ignorar, "abstrair", temporariamente detalhes irrelevantes, de níveis mais baixos, reduzindo uma questão complexa a algo muito mais fácil de ser entendido.

O conjunto de tipos de dados, operações e características de cada um dos níveis é chamado arquitetura do nível.

São parte da arquitetura, as características que um programador do nível deve enxergar, por exemplo, a disponibilidade de memória **************************************************

7) Quais são as várias camadas que formam um sistema computacional? Explique cada uma delas:

AULA 01 - Introdução aos Sistemas Operacionais

Page 19: Qual o conceito de hardware

Definições

1. O sistema operacional é uma camada de software colocada sobre o hardware para gerenciar

todos os componentes do sistema (processadores, memória, discos, interface de rede, entre

outros) de maneira otimizada. O sistema operacional busca oferecer uma interface mais

amigável aos usuários em relação às operações associadas a cada componente da máquina.

2. O sistema operacional é um programa qua atua como intermediário entre o usuário e o

hardware de um computador. O propósito de um sistema operacional é oferecer um

ambiente na qual os usuários possam executar programas. O principal objetivo de um

sistema operacional é, portanto, tornar o uso do sistema de computação conveniente. Uma

meta secundária é usar o hardware de forma eficiente.

Sempre que o usuário necessita realizar alguma operação sobre qualquer componente do sistema

computacional ele recorre ao sistema operacional. Assim, não precisamos conhecer os detalhes

associados a cada componente do hardware. A organização de um Sistema computacional pode ser

vista na Figura 1.

Serviços oferecidos pelo sistema operacional

Irá depender do sistema operacional considerado. Entretanto, existe um conjunto básico de

Page 20: Qual o conceito de hardware

serviços oferecidos por quase todos os sistemas operacionais. Assim, um sistema operacional deve

oferecer:

1. meios para que um programa seja carregado em memória e executado.

2. sistema de arquivos, permitindo criar, ler, escrever e destruir arquivos.

3. interface de acesso aos periféricos (impressoras, fitas, discos, etc).

4. mecanismos de monitoração de recursos, capazes de identificar possíveis gargalos no

sistema.

5. meios para armazenar/manter o estado do sistema.

6. mecanismos de compartilhamento de hardware por usuários => necessidade de algum tipo

de proteção. Sistemas Operacionais

Prof. Dr Jean M. Laine 2

Figura 1. Abstração do Sistema [1].

Figura 2. Visão Computacional [2].

Sistema Operacional na Visão do Usuário

Corresponde a imagem que o usuário tem do sistema operacional, definida pela interface através

do qual o usuário acessa os serviços do sistema. Todo computador pode ser visto como uma

máquina composta por níveis ou camadas. Nesta abordagem podemos visualizar o hardware como

sendo a camada de mais baixo nível (nivel 0), logo acima o sistema operacional (nível 1) e,

Page 21: Qual o conceito de hardware

posteriormente, a camada de aplicação (nível 2); conforme ilustrado nas Figuras 1 e 2. Sistemas Operacionais

Prof. Dr Jean M. Laine 3

Chamadas de Sistema

É a forma como os programas solicitam serviços ao SO e, por isso, é conhecida como a interface

entre os programas que estão rodando na camada de aplicação e o sistema operacional. Toda

chamada de sistema transfere a execução para o sistema operacional mudando o modo de execução

de usuário para modo núcleo, por meio de uma instrução de trap. Com isso, o programa, através de

um conjunto de parâmetros, informa o que ele realmente quer do SO. Após finalizada a execução

da chamada de sistema, o controle é devolvido para o programa do usuário (muda-se do modo

núcleo para usuário) na instrução seguinte à da chamada ao sistema. Com isso, o programa

continua normalmente a execução de suas instruções. Existem vários tipos de chamadas ao

sistema, cada uma com um propósito diferente. Por exemplo, uma divisão por zero no programa

pode levar a uma situação de erro e, neste caso, se o problema não for tratado no próprio código da

aplicação, o sistema operacional assume o controle e decide o que fazer.

Existem diferentes tipos de chamadas de sistemas e cada sistema operacional implementa um

Page 22: Qual o conceito de hardware

conjunto distinto relacionado as seguintes atividades:

1. chamadas de sistema para gerenciamento de processos: fork, waitpid, execve, exit, etc.

2. chamadas de sistema para gerenciamento de arquivos: open, close, read, write, seek, etc.

3. chamadas de sistema para gerenciamento do sistema de diretórios: mkdir, rmdir, link,

mount, umount, etc.

4. chamadas de sistema diversas: chmod, kill, time, etc.

Kernel

O kernel ou núcleo é a parte do SO que implementa as chamadas ao sistema. As atividades

normalmente atribuídas ao kernel são: (a) criação, agendamento e finalização de processos; (b)

alocação e liberação de memória; (c) controle do sistema de arquivos; (d) operações de entrada e

saída com dispositivos periféricos, acesso à memória, entre outros. A implementação do kernel

pode ser organizada de diferentes maneiras, tais como:

1. Monolítica: BSD, Linux, Solaris, MS-DOS e derivados, incluindo Windows 95, Windows

98 e Windows ME.

2. Híbrida: BeOS, Windows NT, XNU.

3. Microkernel: Minix;

4. Exokernel.

5. Camadas. Sistemas Operacionais

Page 23: Qual o conceito de hardware

Prof. Dr Jean M. Laine 4

Programas de Sistema

São programas normais, também chamado de utilitários, executados fora do kernel do SO que

utilizam as chamadas de sistema para realizarem suas funções. Exemplos: Windows Explorer,

Interpretador de Comandos (DOS ou UNIX) ou Interface Gráfica de Usuário (Windows).

Sistema Operacional na Visão de Projeto

Na visão de projeto a preocupação é com a organização interna do SO, ou seja, como os serviços

são implementados. Na solicitação de algum serviço corresponde a uma chamada de sistema que

deverá ser tratada pelo SO quais serão as atividades envolvidas no processo e como serão

implementadas. Exemplo: na leitura de um registro de arquivo em disco o SO envia comandos à

controladora do disco e o programa espera a resposta. Concluída a leitura o SO é informado pela

controladora e o programa pode retornar sua execução normal.

Exercicios

1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas

principais funções?

2. Muitos sistemas operacionais atuais são projetados para operar em redes de computadores.

Page 24: Qual o conceito de hardware

Cite algumas vantagens e desvantagens dessa operação em rede, quando comparada com a

operação clássica (stand-alone)?

3. Por quê a organização do sistema computacional em camadas é fundamental para o

desenvolvimento e evolução dos elementos de hardware e também de software?

4. Pesquise e explique as formas como o kernel pode ser organizado.

5. Explique o que é uma chamada de sistema e pesquise exemplos que não foram citados no

texto.