hardware e sistemas operacionais

10

Click here to load reader

Upload: carlos-negri-de-souza

Post on 09-Jul-2015

447 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Hardware e sistemas operacionais

Hardware

Abaixo, temos uma visão geral do hardware de uma máquina convencional.

CPU: ou unidade central de processamento. É o elemento responsável pela execução dos

programas. Geralmente ela vem confinada em um único chip (ex: 80386 da intel). Seus principais

componentes são: a ULA, a UC e os registradores.

Registradores

São dispositivos de armazenamento temporário e de alta velocidade. São os responsáveis por

armazenar os dados que estão sendo executados dentro da cpu.

ULA (Unidade Lógica e Aritmética)

Responsável por realizar as operações lógicas (or, and, not) e aritméticas (soma, subtração, adição e

multiplicação) sobre os conteúdos dos registradores

UC (Unidade de Controle)

É o componente inteligente do computador, que contém um programinha residente chamado

"microprograma", responsável por todo o funcionamento do hardware. A execução deste

microprograma ocorre da seguinte maneira: este microprograma contém uma sequência de

"microinstruções", que são "disparadas" sobre o hardware, ativando seus componentes a cada 1 ou

Page 2: Hardware e sistemas operacionais

mais pulsos de clock (relógio). A função básica deste microprograma pode ser dividida em 3 fases:

busca da instrução, decodificação da instrução e execução da instrução.

Memória

É um dispositivo de armazenamento de dados. É na memória que são carregados todos os

programas a serem executados pela CPU. A memória é composta por uma sequência de palavras,

onde cada palavra possui um ou mais bytes (assim como os registradores) e é acessada por um

endereço (posição). Dois tipos de operaçõs podem ser efetuadas no sistema de memória: leitura e

escrita de dados.

Quando um programa é carregado na memória, ele deve estar em linguagem de máquina (código

binário), específico do hardware em questão. Suas instruções são colocadas em sequência nas

posições da memória. Então, a UC começa o ciclo de execução do programa, buscando suas

instruções uma a uma, decodificando e executando-as.

Dispositivos Periféricos ou de Entrada/Saída

Sâo dispositivos que permitem a comunicação da cpu com o mundo externo (impressora, monitor,

teclado, mouse etc.). Cada dispositivo possui um circuito controlador (chip) que é responsável por

acessar o dispositivo em suas operações mais elementares, através de linguagem de máquina. O

sistema operacional implementa rotinas que tratam dos dispositivos (devices drivers) que

desempenham funções mais elaboradas.

Barramento

São linhas de comunicação entre os componentes do hardware. Estas linhas de comunicação

transportam dados, endereços e controle. Todos os dispositivos do hardware são conectados no

barramento e todos tem acessos as informações que nele são colocadas. Cabe a cada dispositivo

identificar quando que a informação é sua. Isto pode ser feito pelas linhas de endereçamento (cada

dispositivo possui um endereço) ou pelas linhas de controle.

Software

O software é o elemento responsável pela manipulação do

hardware, a fim de executar as funções desejadas pelo

usuário. Basicamente, podemos hierarquizar os diferentes

tipos de softwares segundo as camadas da figura abaixo:

Microprogramação

Sintetiza a própria unidade de controle. O microprograma é o

software de mais baixo nível, disparando sinais de controle

(pulsos) diretamente sobre os dispositivos do hardware. O

microprograma é uma linguagem específica da máquina,

capaz de executar um conjunto específico de instruções em

linguagem de máquina.

Usuário

Apicativos Shell Utiliários

Kernel

Linguagem de Máquina

Microprogramação

Hardware

Page 3: Hardware e sistemas operacionais

Linguagem de Máquina

É a linguagem binária que o processador entende, ou seja, que pode ser executada diretamente pela

unidade de controle. Um programa escrito em linguagem de máquina é dito "programa executável"

ou "programa objeto". Quando um programa é escrito em uma linguagem de alto nível

(PASCAL,C, CLIPPER etc...), ele deverá ser compilado (ou interpretado) para linguagem de

máquina. Abaixo é dado um exemplo (fictício) de um trecho de programa em linguagem assembler

e seu respectivo código em linguagem de máquina.

Sistema Operacional

O sistema operacional é o software responsável por gerenciar os recursos do hardware para o

usuário, para que este não tenha que interagir diretamente sobre os dispositivos. O S.O. éconsituído

basicamente por duas camadas: O Shell (ou interpretador de comandos) e o Kernel (ou núcleo).

O núcleo implementa as funções básicas do SO, responsáveis pelo gerenciamento de memória,

arquivos, processador, periféricos etc..., enquanto que o Shell implementa uma interface com o

usuário, para atender necessidades tais como : listar um diretório, copiar arquivos etc...

O computador quando é ligado ele é praticamente vazio de software. Existe um pequeno

programinha residente que faz um checkup do equipamento e solicita a inserção do disco com o

sistema operacional (caso nao haja winchester). O computador não tem conhecimento de qual

sistema operacional será carregado e muito menos quais são os arquivos que o constitue, por isso,

ele carregara apenas um setor pré-definido do disco e coloca para execução. Neste setor deverá estar

o Boot do sistema operacional, responsável pelo carregamento do SO.

Um programa que trabalha sempre em conjunto com o SO é o chamado Loader. O Loader ou

carregador é responsável por carregar os programas que estão no disco para a memória, relocando

os espaços de endereçamentos.

Utilitários

São também chamados de tool kits ou ferramentas, pois são programas que auxiliam o usuário na

construção de aplicações. Alguns bastantes utilizados são os tradutores, os montadores, os

compiladores, os linkers o os depuradores.

Os tradutores são programas que transformam um programa escrito em uma determinada

linguagem para uma outra linguagem. Os mais utilizados são os montadores, compiladores e os

interpretadores.

Os montadores transformam linguagem de montagem (assembler) em linguagem de máquina. Os

compiladores transformam linguagens de alto nível em linguagem de máquina, gerando um código

executável do programa fonte. Os interpretadores transformam o programa fonte, linha por linha em

tempo de execução em linguagem de máquina, não gerando um programa objeto.

Os compiladores fazem detecção de erros antes da execução, permitindo com que a execução seja

certeira e rápida. Os interpretadores são lentos e apresentam os erros em tempo de execução, mas

são mais flexíveis pois possibilitam alocação dinâmica.

Page 4: Hardware e sistemas operacionais

Os linkers possibilitam o desenvolvimento de módulos bibliotecas e portando uma maior

flexibilidade dos softwares. Os linkers concatenam vários módulos objetos (bibliotecas) juntamente

com um módulo objeto principal, gerando um único programa executável, como mostra a figura

abaixo.

Os depuradores ou Debuggers são utilitários que auxiliam a depuração de programas, ou seja, a

detecção de erros, permitindo a visualização do conteúdo das variáveis, das posições de memórias e

permitindo também a execução de apenas um trecho do programa. Geralmente trabalham em

conjunto com compiladores em um único ambiente integrado.

O Sistema Operacional

O Sistema Operacional é o software que controla o computador e permite a comunicação entre

software e hardware. Ele consiste num conjunto de rotinas (pequenos programas) que, além de

controlar todo o fluxo de informações dentro do computador ainda auxilia na utilização de

linguagens e aplicativos, na manipulação de discos, etc.

Sempre, ao se ligar o computador, o sistema operacional é o primeiro software que é executado e

permanece gerenciando a entrada e a saída de dados no computador até que ele seja desligado.

Como exemplo: MS-DOS, OS/2, UNIX, etc.

O sistema operacional é um conjunto de rotinas executadas pelo processador, que tem como

funções básicas:

gerenciar os vários recursos disponíveis no sistema, para atender da maneira mais eficiente

possível o usuário, e

gerenciar a execução dos programas do usuário, visando o melhor desempenho do sistema

todo.

Em sua forma mais usual, a estrutura de um sistema operacional pode ser visualizada em camadas

hierárquicas mostrada na figura abaixo, onde a camada mais interna, correspondente ao hardware,

que suporta todas as camadas de software.

A primeira camada de software a envolver o hardware é o núcleo (kernel), que se comporta como

um sistema operacional básico. Sobre o núcleo situam-se um conjunto de serviços, constituíndo-se

o sistema operacional propriamente dito, que fornece o suporte necessário a execução de

programas. Em seguida, tem-se a camada mais externa correspondendo ao nível da aplicação, na

qual este projeto atua diretamente.

Os principais componentes do sistema operacional residem no núcleo e são relacionados a seguir:

Gerenciamento de I/O

Esconde as peculiaridades do hardware, fornecendo mecanismo de bufferização e drivers dos

dispositivos.

O mecanismo de bufferização poupa tempo de cpu evitando que as solicitações de E/S sejam feitas

diretamente nos dipositivos físicos. Ao invés disso, as E/S são feitas em um buffer e de tempo em

tempo são efetivadas nos dispositivos.

Page 5: Hardware e sistemas operacionais

Os drivers dos dispositivos são rotinas que implementam as funções básicas tais como leitura e

escrita de caracteres e strings; assim não precisamos programar em baixo nível.

Gerenciamento de Arquivos

Implementa funções tais como:

gerenciamente de espaços livres

criação e deleção de arquivos

criação e deleção de diretórios

primitivas para manipulação de arquivos e diretórios (dir, copy, cd etc...)

mapeamento dos arquivos em disco etc...

Gerenciamento de Processos

Implementa funções de manipulação e gerenciamento de processos tais como:

criação e deleção de processos

escalonamento de processos

mecanismos de comunicação e sincronização entre processos etc...

Processos podem ser comparados com programas capazes de executar tarefas. Aos processos são

associados alguns atributos tais como: nome, proprietário, ponteiros para posições da memória,

contexto (conteúdo dos registradores e variáveis; situação em que o hardware estava quando o

processo foi suspenso) etc...

Existem basicamente dois tipos de processos: processos do usuário e processos do SO. Os processos

do usuário executam as tarefas do usuário e os processos do SO executam as tarefas do SO

(basicamente todas as funções do SO são executadas por processos específicos) em beneficio dos

usuários. Basicamente, os processos do usuário são ativados pelo SO e os processos do SO são

ativados pelo próprio SO ou via interrupções (de hardware ou softwares).

Gerenciamento de Memória

Implementa funções tais como:

alocação e liberação de espaço de memória

gerenciamento de memória virtual (paginação e segmentação)

Proteção do Sistema

Protege o sistema contra usuários "espertinhos" e protege usuários contra outros usuários não

autorizados. Existem vários recursos do hardware que favorece o sistema de proteção fornecido

pelo SO.

Um destes recursos é o próprio mecanismo de memória virtual, que veremos mais adiante. Neste

mecanismo o hardware verifica se os acessos a memória estão dentro dos limites de cada usuário.

Um outro recurso é a existência de dois modos básicos de execução, fornecidos pelo hardware: o

modo supervisor e o modo usuário. Quando o SO está com o controle da máquina, o hardware está

Page 6: Hardware e sistemas operacionais

setado no modo supervisor. Quando o SO passa o controle para a aplicação do usuário, ele seta o

modo para usuário. Quando o controle volta para o SO, através de uma interrupção, o modo é

imediatamente setado para supervisor.

Com isso, o hardware sempre sabe se o processo que está executando é do sistema (modo

supervisor) ou do usuário (modo usuário), e assim pode impedir acessos não autorizados.

Tipos de Sistemas Operacionais

Os diferentes tipos de sistemas operacionais são basicamente classificados de acordo com o número

de processos do usuário que o SO pode executar ou de acordo com o número de processadores que

o sistema possui. Combinando estas características podemos classificar os sistemas operacionais

em: SO Monoprogramado, SO Multiprogramado e SO para Multiprocessador.

Sistema Operacional Monoprogramado (Monotarefa)

Possui as seguintes características:

É executado por um único processador e é capaz de gerenciar a execução de um único

programa (tarefa) do usuário por vez.

Permite que o processador, a memória e os periféricos fiquem dedicados a um único

usuário; são portanto monousuários (monoterminais).

O processador fica ocioso quando o programa espera pela ocorrência de uma E/S.

São sistemas de simples implementação.

Sistema Operacional Multiprogramado (Multitarefa)

Possui as seguintes características:

É executado por um ou vários processadores. No caso de vários processadores, é

classificado como "SO para Multiprocessadores" (discutido a seguir). No caso de apenas um

processador, permite que vários programas disputem os recursos do sistema (paralelismo

lógico ou virtual), e:

Podem ser monousuário ou multiusuário:

Monousuário: um único usuário executando vários programas (monoterminal).

Multiusuário: vários usuários executando vários programas (multiterminais).

Divide o tempo da cpu entre os vários programas e entre os vários usuários.

Diminui a ociosidade, permitindo que durante o tempo de E/S outros processos sejam

executados.

Inicialmente, os sistemas multiprogramados começaram com os sistemas de batch; depois com os

sistemas time-sharing e finalmente com os sistemas real-time.

Nos sistemas de lote (batch), os programas eram enfileirados em disco ou fita e aguardavam a

execução, um por vez. Normalmente, os programas (jobs) não necessitavam de interação com o

usuário. Embora sejam considerados como os precursores dos sistemas multiprogramados, pois

aproveitavam os tempos de E/S para a execução de outros processos, o processamento era

puramente sequêncial e ofereciam longos tempos de resposta.

Page 7: Hardware e sistemas operacionais

Nos sistemas de tempo compartilhado (time-sharing), os usuários interagem através de terminais

e teclados on-line. São sistemas multiterminais, cujo processamento é controlado por um

computador central. O sistema executa uma varredura (polling) nos terminais, compartilhando o

tempo entre eles (time-sharing).

Neste sistema, o processador executa os programas de forma intercalada no tempo, alocando uma

fatia de tempo (time-slice) para cada um, por vez, realizando assim a multiprogramação. Cada

usuário tem a ilusão que todo o sistema está totalmente dedicado exclusivamente para ele.

Os sistemas de tempo real (real-time) são semelhantes aos sistemas time-sharing, embora exijam

tempo de resposta dentro de limites rígidos, na execução de tarefas. O conceito de time-slice é

muito pouco utilizado e os processos executam o tempo necessário e conforme sua prioridade. São

sistemas muito utilizados em controle de processos, onde o tempo é um fator crucial: refinaria de

petróleo, automação industrial, controle de tráfego aéreo etc... Neste sistema, os processos

geralmente são ativados por sensores.

Sistema Operacional para Multiprocessador

Possui as seguintes características:

O sistema possui vários processadores, que podem estar confinados a um mesmo gabinete

(centenas de processadores) ou espalhados fisicamente em forma de rede (dezenas de

processadores).

Executam várias tarefas simultaneamente e portanto são multitarefas.

Cada processador pode operar monoprogramado ou multiprogramado.

Ocorre paralelismo físico ou real, quando mais de um processador está sendo utilizado.

Ocorre também paralelismo lógico, quando o número de tarefas é maior que o número de

processadores disponíveis.

Podem ser fracamente acoplados ou fortemente acoplados:

fracamente acoplados (looselycoupled): cada processador possui sua própria

memória e executa seu próprio sistema operacional (Sistema Operacional de Rede)

ou parte de um sistema operacional global (Sistema Operacional Distribuído).

fortemente acoplados (tightlycoupled): todos os processadores compartilham uma

única memória. Estes processadores geralmente são coordenados por um único SO

localizado em um outro computador hospedeiro, que se encarrega de distribuir as

tarefas entre os processadores e gerenciar a execução.

Page 8: Hardware e sistemas operacionais

Exemplos de Sistemas Operacionais

MS-DOS

A sigla MS-DOS significa Microsoft Disk Operating System que em português significa Sistema

Operacional de Disco. O prefixo MS representa Microsoft, empresa que criou o sistema. Este

programa foi desenvolvido para permitir ao usuário realizar todas as funções básicas e essenciais

necessárias no computador.

O MS-DOS é o Sistema Operacional mais utilizado e faz parte do Software Básico (programa

indispensável ao funcionamento do computador). É um programa que se encarrega do Hardware do

computador, por isso que é muito especial. Com pouquíssimas exceções, qualquer outro programa

que é executado em seu computador é executado com a ajuda do DOS, em outras palavras o DOS é

o programa que gerencia os componentes básicos do computador e os aloca a seus programas

quando necessário. O DOS fica sob seu controle e existe para fornecer-lhe uma forma de comunicar

suas instruções ao computador. Você informa instruções ao DOS através de comandos que ele

reconhecerá. A maior parte desses comandos consistem em palavras baseadas na língua inglesa, pôr

exemplo: copy, rename, date,time, label etc.

UNIX

As raízes do UNIX datam de meados dos anos 60, quando a AT&T, Honeywell, GE e o MIT

embarcaram em um massivo projeto para o desenvolvimento de um utilitário de informação,

chamado Multics (MultiplexedInformationandComputing Service). Multics era um sistema modular

montado em uma bancada de processadores, memórias e equipamentos de comunicação de alta

velocidade. Pelo desenho, partes do computador poderiam ser desligadas para manutenção sem que

outras partes ou usuários fossem afetados.

Em 1973 o UNIX foi reescrito em C, talvez o fato mais importante da história deste sistema

operacional. Isto significava que o UNIX poderia ser portado para o novo hardware em meses, e

que mudanças eram fáceis. A linguagem C foi projetada para o sistema operacional UNIX, e

portanto há uma grande sinergia entre C e UNIX.

Em 1975 foi lançada a V6, que foi a primeira versão de UNIX amplamente disponível fora dos

domínios do Bell Labs, especialmente em universidades. Este foi o início da diversidade e

popularidade do UNIX. Nesta época a Universidade de Berkley comprou as fontes do UNIX e

alunos começaram a fazer modificações ao sistema.

Surgiram outras versões com a inclusão de novas características.

Page 9: Hardware e sistemas operacionais

O 4.2 BSD foi talvez umas das mais importantes versões do UNIX. O seu software de

conexão de redes tornava muito fácil a tarefa de conectar computadores UNIX a redes

locais. Nessa versão é que foram integrados os softwares que implementam TCP/IP e

sockets.

O 4.4 BSD foi lançado em 1992 para várias plataformas: HP 9000/300, Sparc, 386, DEC e

outras, mas não em VAX. Entre as novas características estão: Novo sistema de memória

virtual baseado em Mach 2.5 e Suporte ISO/OSI (baseado em ISODE).

A Sun Microsystem também lançou a sua versão do UNIX a partir do BSD. Isto ocorreu até

a versão SunOs 4.x. A nova versão, SunOs 5.x está baseada no SVR4, embora tenha

herdado algumas características do SunOs 4.x. O novo sistema operacional da Sun, Solaris

2.x, engloba SunOs 5.x, Open Network Computing e Open Windows. É o solaris que provê

o pacote de compatibilidade entre os BSD/SunOs e o SVR4/SunOs 5.x.

A Microsoft também lançou uma versão do UNIX, chamada XENIX, que rodava em PCs.

Este sistema era inicialmente baseado na Versão 7, depois herdou características dos SIII e

depois do SV.

Windows NT

O Microsoft Windows NT começou a surgir em 18 de setembro de 1996, quando a Intel

Corporation e a Microsoft Corporation anunciaram que estavam trabalhando no desenvolvimento de

um novo sistema operacional para a futura família de processadores de 64 bits da Intel. O Windows

NT é o sistema operacional da próxima geração, visando operar PCs até boa parte do próximo

século. Foi projetado para ser um sistema operacional portável, capaz de se adequar facilmente a

diversas plataformas de hardware, incluindo ambientes de um só processador e de múltiplos

processadores.

Ele poderá ser facilmente estendido ou aperfeiçoado conforme o hardware evoluir. Pôr se mover

para uma implementação completa de 32 bits, deixou para trás muitos cacoetes e problemas

associados aos sistemas mais antigos de 16 bits.

Uma meta primária do Windows NT foi a compatibilidade com outros sistemas operacionais para

PCs e com os programas projetados para rodas sob eles. Ou seja, o Windows NT foi projetado para

permitir compatibilidade regressiva com a grande base de aplicações para PC existentes.

O Windows NT também foi projetado para satisfazer ou exceder os padrões atuais de desempenho.

Um outro aspecto importante é que ele pode rodar em computadores com múltiplas CPUs.

Windows 95

Criado pela Microsoft Corporation o Windows 95 é um software básico classificado na categoria de

"Sistema Operacional". Ele cria uma interface gráfica para o usuário (GUI - GraphicalUser

Interface) para proporcionar a este uma comunicação mais intuitiva e fácil com o computador. Este

software usa a metáfora da mesa de trabalho (desktop) para dispor e arranjar informações gráficas e

textuais na tela. O usuário tem acesso a essas informações através do mouse, que é usado para abrir

janelas, selecionar opções, acionar vários objetos através de ícones, mover, copiar, renomear ou

excluir arquivos, executar programas, etc.

O Windows 95 incorporou um conjunto de tecnologias que, somadas as inovações de sua interface,

significam uma autêntica revolução no uso de micros.

Page 10: Hardware e sistemas operacionais

Uma das mudanças refere-se a própria interface gráfica, que evoluiu para facilitar ainda mais a

maneira como o indivíduo se relaciona com o equipamento. Essa melhoria beneficia tanto usuários

que conhecem pouco ou quase nada de microinformática quanto profissionais.

Outro avanço significativo é o suporte Plug-and-Play - ligue e use - automatizando totalmente a

instalação e configuração da máquina.

Esta tecnologia acaba com os problemas de instalação de placas e outros periféricos, pois

autoconfigura os componentes e põe fim aos conflitos de endereço e interrupção de memória.

O Windows 95 não traz apenas mudanças na interface. Sua grande mudança ocorreu nos bastidores.

Ao contrário do Windows 3.1 (que é ambiente operacional), o Windows 95 é um sistema

operacional integrado completo, que não trabalha "sobre" o MS-DOS. O Windows 95 elimina as

limitações de memória herdadas do DOS.

O Windows 95 também tem uma vantagem em relação a outros sistemas e ambientes operacionais:

ele permite a criação de nomes longos de arquivos, assim o usuário poderá gravar arquivos com

nomes que realmente indiquem o que o arquivo representa. No Windows 95 os nomes de arquivos

podem ter até 255 caracteres, incluindo espaços.