SYPNET INFORMÁTICA

assistência técnica especializada em unidades de backup

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Sistema Operacional

E-mail Imprimir

Introdução : Um Sistema Operacional é um conjunto de rotinas executadas pelo processador, da mesma forma como qualquer outro programa.Sua principal função é controlar o  funcionamento do computador, gerenciando os diversos recursos disponíveis no sistema. O Sistema Operacional executa basicamente duas funções :

- Facilita o acesso as recursos do sistema

- Compartilha de forma organizada e protegida os recursos  do sistema

O Sistema Operacional torna a interação entre o  usuário e o computador mais simples, confiável  e eficiente.

Conceitos Básicos

Hardware : Um computador é constituido por um conjunto de dispositivos interligados , composto por processadores, memória principal e dispositivos fisicos ( hardware).Estes componentes podem ser  sub-divididos em 3 sub-sistemas básicos :

- Unidade Central de Processamente ( U.C.P.)

- Memória Principal

- Dispositivos  de Entrada e Saida ( I /O )

Unidade Central de Processamento ( C.P.U.) :  A principal função da  Unidade Central de Processamento é unificar todo o sistema, controlando as funções realizadas por cada unidade funcional. Ela é também responsável pela execução de todos os programas do sistema, que obrigatoriamente  deverão estar armazenados na memória principal. Um programa é composto por uma série de instruções ordenadas logicamente, que são executadas sequencialmente pela CPU.  Ela busca cada instrução na memória principal e interpreta para a sua execução.

A CPU é composta por dois componentes básicos : Unidade de Controle e Unidade Lógica e Aritmética.

A Unidade de Controle  é responsável por controlar as atividades de todos os componentes do computador, emitindo sinais  elétricos gerado pelo dispositivo denominado Clock. Este sinal pode ser para a gravação de um dado no disco ou para uma busca de intrução na memória.

A Unidade Lógica e Aritmética é responsável pela realização de operações lógicas (testes e comparação) e aritméricas ( soma ou subtração).

A velocidade de processamento de uma CPU  é determinado  pelo número de instruções  que o processador  executa por unidade de tempo, normalmente segundo. Esta denominação pode ser MIPS (u Milhões de Instruções por Segundo)  ou MFLOPS/GFLOPS (Milhões / Bilhões de Instruções por ponto flutuante por segundo ).

Clock : É um dispostivo que esta localizado na CPU e que gera pulsos elétricos síncronos em um determinado intervalo de tempo. O sinal de Clock é utilizado pela Unidade de Controle para execução das instruções. A frequência  do Clock  de um processador é medida em Hertz ( Hz).

Registradores : Os registradores são dispositivos de alta velocidade, que estão localizados dentro da CPU e que armazenam dados temporarios. Cada processador possui um determinado número de registradores.Alguns registradores são de uso específico e outros de uso geral.

Memória Principal : Também conhecida como memória primária, é o local onde são armazenados as instruções e os dados.Ela é composta por unidades de acesso denominadas células, sendo que cada uma desta célula  é composta por um determinado número de bits. O bit é a unidade básica da memória , podendo assumir o valor 0 e 1.

O acesso de cada célula é realizada com a especificação de um  número denominado  endereço. Desta forma quando um programa escrever ou ler um dado em uma célula deve especificar primeiro qual o endereço de memória desejado, para depois realizar a operação.

A  memória principal  pode ser classificada de acordo com a sua volatilidade que é a capacidade da memória em preservar o seu conteúdo mesmo sem uma fonte de alimentação.

As  memórias voláteis se caracterizam por poderem ser lidas e gravadas, como por exemplo as memórias RAM ( Random Acess Memory ).

Outro tipo de memória  não volátil é a memória ROM ( Read Only Memory ) , que já vem gravada do fabricante , geralmente com algum programa e seu conteúdo  é mantido inalterado mesmo quando a alimentação é desligada.

Memória Cache : Trata-se de uma memória volátil de alta velocidade.Toda vez que o processador busca um dado na memória principal , ele "olha" primeiramente para a memória cache. Se este dado estiver armazenado nela, não existe a necessidade do acesso da memória principal.

Memória Secundaria : A memória secundária é um meio não volátil  de armazenamento de programas e dados. O acesso a este tipo de dispositivo é lento se compararmos a memoria principal ou a memória cache, porém o seu custo é baixo e a sua capacidade de armazenamento, na maioria das vezes , é muito maior.

Dispositivos de Entrada e Saida : Os dispositivos de  entrada e saida tem permitem a comunicação entre o computador e o mundo externo. Através desses dispositivos,  a CPU e  memória principal podem se comunicar tanto com o usuário como a memória secundária, para realizar qualquer tipo de processamento.

Estes dispositivos de Entrada e Saída podem ser divididos em duas categorias :

- Aqueles que são utilizado  como memória secundário  como  discos e fitas magnéticas  e que tem um custo bem menor em relação a memória principal, armazenam um quantidade maior de informações , porém  possuem uma velocidade de acesso menor.

- Aqueles que são utlizados como interface  homem-maquina , como teclado , monitores, impressoras , etc. Com o avanço da tecnologia , estes dispositivos tem se tornado bastante amigáveis, possibilitando que usuários com pouco conhecimento de informática, possam utilizar o computador de forma  bastante satisfatória.

Barramento :  A CPU, a memória principal  e os dispositivos  de E/S  são interligados através de linhas de comunicação  denominadas barramentos , barras ou vias. Um barramento ( BUS ) é um conjunto de fios paralelos onde trafegam informações  como dados ,  endereços ou sinais de controle. Os barramentos podem ser classificados como Unidirecional ( transmitem em um única direção ) ou Bidirecional ( transmitem em duas direções ).

Na ligação entre CPU e Memória Principal ,  são necessários a ligação de 3 barramentos :

- Barramento de Dados : onde trafegam as informações entre a CPU e a Memória Principal

- Barramento de Endereço : onde a CPU especifica o endereço da  célula que irá ser acessada

- Barramento de Controle : onde a CPU envia pulsos de controle relativos a leitura e gravação

Pipelining : O conceito de Pipelining se assemelha a de um linha de produção , onde  uma tarefa é sub-dividida em outras  sub-tarefas  , executadas em diferentes estágios, dentro de uma linha de produção. A  execução de uma instrução  pode ser dividida em sub-tarefas , como as fases de busca de instrução de operandos, execução e armazenamento de resultados. O processador através de unidades funcionais pipeline , permite que enquanto a instrução se encontra na fase de execução , possa estar em fase de busca simultaneamente.

Ativação e Desativação do Sistema :  O  Sistema Operacional é essencial para o funcionamento  do Computador. Sem ele grande parte dos recursos do sistema não estariam disponíveis.

Toda vez que um computador é ligado é necessário que o computador seja carregado da memória secundaria para a memória principal. Este processo, denominado ativação do sistema ( boot ) , é realizado por um programa localizado em um local específico do disco  ( disco block ) , sendo geralmente o primeiro bloco. Este procedimento de ativação varia  em função do equipamento, podendo ser realizado através de teclado,  de um terminal , ou de chaves em um um painel.

Além da carga do Sistema Operacional, a ativação do sistema  tambem consiste na execução  de arquivos de inicialização.

Na maioria dos sistemas existe o  processo de desativação denominado  Shutdown . Este procedimento permite que as aplicações e componentes sejam desativados de maneira ordenada, garantindo a integridade do sistema.

Arquitetura RISC e CISC

Um processador com arquitetura RISC ( Reduced Instruction Set Computer) se caracteriza por ter poucas instruções de máquina , bastante simples e que são executadas diretamente pelo hardware.Na sua maioria , estas instruções não acessam a memória principal , trabalhando principalmente com os registradores, que neste tipo de processador, se apresentam em grande número.

Um processador com arquitetura CISC ( Complex Instrution Set Computer ) já possuem instruções que já interpretadas por microprogramas.O número de registradores é pequeno e qualquer instrução pode  referenciar a memória principal.

Software : O Hardware sozinho não tem a menor utilidade. Para torna-lo útil  é necessário que um conjunto de programas que fazem a interface entre as necessidades do  usuário e a capacidade do hardware.

A utlização de softwares adequados às diversas tarefas  e aplicações , torna o trabalho do  usuario muito mais simples e eficiente.

Tradutor :  No inicio, quando o computador surgiu,  o ato de programar era extremamente  complicado, pois o programador tinha que ter conhecimento de hardware ainda  fazer a programação através de paineis de fios. Estes programas eram desenvolvidos em linguagem de máquina e carregados diretamente na memória principal para execução.

Com o surgimento das primeiras linguagens  de montagem ( assembly languages) , e ainda com o surgimento das linguagens de alto nível, os programadores deixaram de se preocupar com aspectos pertinentes  ao hardware. O tradutor pode ser chamado de Montador ou Compilador.

Compilador :  É um programa responsável por gerar , a partir de de um programa escrito em linguagem de alto nível, um programa em linguagem de máquina, não executável. As linguagens de alto nível não possuem nenhuma  relação direta com a máquina, ficando esta preocupação para o Compilador.

Interpretador :  Interpretador é   considerado um tradutor  que não gera código objeto. A partir de um programa fonte,  escrito em linguagem de alto nível , o interpretador ,no momento da execução do programa, traduz cada instrução e a executa em seguida.

Loader :  também denominado carregador, é responsável por colocar fisicamente na memória um programa para execução.

Depurador :   é um utilitário que permite o usuário controlar a execução de um programa a fim de detectar erros na sua estrutura.

Linguagem de Controle :  também conhecida como Linguagem de Comando, é a forma direta do usuário se comunicar com o Sistema Operacional. Esta linguagem é oferecida por cada Sistema Operacional, para que os usuários possam ter acesso à rotinas específicas do sistema.

Interpretador de Comandos ( Shell) :  O Sistema Operacional é um código executor de chamadas de sistema.Os editores, compiladores, montadores e interpretadores não fazem parte do Sistema Operacional. Quando um comando é digitado pelo usuário,  o Shell interpreta , verifica a sua sintaxe , envia mensagens de erro e faz chamadas de rotinas do sistema. Desta forma o usuário dispõe de uma interface interativa com o Sistema Operacional para realizar tarefas como copiar um arquivo ou  disco ou ainda consultar um diretório.

Linguagem de Máquina : é a linguagem que realmente o processador consegue entender.Cada processador possui um conjunto único de instruções ( set de instruções ) de máquina, que são definidas pelo próprio fabricante.

Microprogramação

Um programa em linguagem de máquina é executado diretamente pelo hardware em processadores com arquitetura RISC, porem em processadores com arquitetura CISC isso não acontece.Entre os níveis de linguagem de programação e harware, existe ainda a microprogramação.

Os microprogramas definem a linguagem de máquina de cada computador.Uma máquina posse aproximdamente 25 microinstruções básicas , que são interpretadas pelos circuitos eletrônicos.

Processos

Um processo é basicamente um programa em execução , sendo constituido do código executável , dos dados referente ao código.

Chamadas de Sistema

Os programas dos usuários solicitam serviços do Sistema Operacional através da execução de chamadas de sistema. A cada chamada corresponde um procedimento de uma biblioteca de procedimentos que o programa do usuário pode chamar.

Arquivos

Arquivos são mecanismos de abstração que  fornece uma  forma de armazenar e recuperar informações em disco. Isso deve ser feito de uma forma que mantenha o usuário isolado dos detalhes a respeito de como as informações são armazenadas e de como os discos efetivamente trabalham.

Tipos de Sistemas Operacionais 

A evolução do hardware está intimamente relacionada com o surgimento de novos Sistemas Operacionais e das aplicações por ele suportadas. A evolução  dos Sistemas Operacionais para computadores pessoais e estações de trabalho  popularizou termos conceitos e técnicas  antes conhecidas somente em ambientes de grande porte.Com isso surgiram novos termos para conceitosjá conhecidos, que foram apenas adaptados para a nova realidade.

Sistemas Monoprogramáveis / Monotarefas

Os primeiros Sistemas Operacionais eram tipicamente voltados para a execução de um único programa ( job) . Qualquer outro programa, para ser executado, deveria aguardar o termino do programa corrente. Os sistemas monoprogramáveis , como vieram a ser conhecidos,  se caracterizam por permitir que o processador, a memória e os periféricos permaneçam dedicados apenas para a execução de um único programa. Neste tipo de sistema, quando  enquanto um programa aguarda por um evento ( por exemplo a digitação de um dado ), o processador permanece ocioso, sem realizar qualquer tipo de processamento.A memória acaba sendo sub-utilizada quando o programa não a utiliza totalmente e os periféricos ( discos e impressoras ) acabam sendo utilizados por um único usuário. Comparando com outros sistemas , os sistemas monoprogramáveis são de simples implementação e não existe praticamente preocupação com problemas de proteção.

Sistemas Multiprogramáveis / Multitarefas

Os sistemas multiprogramáveis que vieram a substituir os monoprogramáveis  são mais complexos e eficientes. Enquanto no monoprogramável  existe apenas um programa utilizando todos os seus recursos, nos multiprogramáveis vários programas dividem esses mesmo recursos.A vantagem neste tipo de sistema é que  a aumenta a produtividade de seus usuários e ocorre a redução de custos com a possibilidade do  compartilhamento  dos mesmos recursos do sistema. A partir do número de usuários que interagem com o sistema, podemos classificar os sistemas multiprogramáveis como monousuário ou multiusuário.

O uso de computadores pessoais possibilita que um único usuário (monousuário) possa executar varias tarefas concorrentemente ou simultaneamente. Os sistemas multitarefas permite que um usuário  edite um texto, imprima um arquivo , copie um arquivo pela rede , etc.

Sistemas  Batch

Os sistemas batch ( lote ) foram os primeiros sistemas multiprogramáveis a serem implementados e caracterizam-se  por terem  seus programas , quando submetidos, armazenados em disco ou fita, onde esperam para ser executados sequencialmente. Normalmente os programas ( jobs ) não exigem interação com o usuário,  lendo e gravando dados em discos e fitas.

Sistemas de Tempo Compartilhado

Os sistemas de tempo compartilhado ( time-sharing ) permitem a interação dos usuários com o sistema, basicamente através de terminais que incluem video , teclado  e mouse. Desta forma o usuário pode interagir diretamente com o sistema  em cada fase de desenvolvimento de suas aplicações  e, se preciso, modificá-las imediatamente. Devido a este tipo de interação , estes sistemas também são conhecidos como  sistemas on-line.

Para cada usuário, o sistema aloca uma fatia de tempo (time slice) do processador.Caso o programa do usuário não seja concluído nesse intervalo  de tempo , ele é substituido por outro usuário e fica esperando po outra fatia de tempo.Não é só o processador que é compartilhado, mas também a memória e os periféricos, como discos e impressoras.O sistema cria para o usuário um  ambiente de trabalho próprio , dando a impressão que todo o sistema esta exclusivamente dedicado a ele.

Sistemas de tempo compartilhado são de implementação complexa , porém se levado em consideração o tempo de desenvolvimento e depuração  de uma aplicação , aumentam consideravelmente a produtividade de seus usuários , reduzindo  os custos  de utilização do sistema.

Sistemas de Tempo Real

Os sistemas de tempo real (real time)  são bem semelhantes em implementação  aos sistema de tempo compartilahdo. A maior diferença~é no tempo de resposta exigido no processamento das aplicações.Enquanto em sistemas de tempo compartilhado , o tempo de resposta pode variar sem  comprometer  as aplicações em execução, nos sistemas de tempo real os tempos de resposta devem estar dentro de limites rígidos , que devem ser obedecidos , caso contrário poderão ocorrer problemas irreparáveis.

Não existe a  idéia de fatia de tempo , um programa detém o processador o tempo que for necessário até que apareça outro prioritário em função da sua importância no sistema. Esta importância ou prioridade de execução  é controlada pela própria aplicação  e não pelo Sistema Operacional , como nos sistemas de tempo compartilhado. Estes sistemas são utilizados em aplicaçõe onde o tempo de resposta é fator fundamental.

Sistemas de Múltiplos Processadores

Os sistemas de múltiplos processadores caracterizam-se por possuir duas ou maios UCPS ( CPUs)  interligadas, trabalhando  em conjunto.  Um fator chave no desenvolvimento de um sistema com múltiplos processadores  é a forma de comunicação entre a UCP  e o grau de compartilhamento da memória e dos dispositivos de entrada e saída. Em função desses fatores podemos classificar os sistemas em fortemente acoplados ou fracamente acoplados.

Sistemas Fortemente Acoplados

Nos sistemas fortemente acoplados ( tightly coupled) existem vários processadores compartilhando um única memória e gerenciados por um único Sistema Operacional. Múltiplos processadores permitem que vários programas sejam executados ao mesmo tempo , ou que um programa seja dividido em sub-programas , para a execução simultânea  em mais de um processador. Desta forma é possível aumentar a capacidade de computação de um sistema, adicionando novos  processadores  com um custo muito inferior em relação a aquisição de novos computadores.

Sistemas Assimétricos

Na organização assimétrica ou mestre / escravo (master / slave) somente um processador (mestre) pode executar serviços do Sistema Operacional. Sempre que um processador do tipo escravo necessitar executar uma operação , terá que requisitar ao processador mestre.Dependendo do número de operações efetuados pelos processadores escravo, o sistema pode se tornar ineficiente devido ao elevado número de interrupções tratadas pelo mestre.

Se o processador mestre falhar , todo o sistema ficará incapaz de continuar o processamento.Neste caso o sistema deverá ser reconfigurado, fazendo que um processador escravo assuma o papel de mestre.

Sistemas Simétricos

Neste tipo de processamento todos os  processadores executam a mesma função. Apenas poucas funções ficam ao cargo de um processador, como por exemplo a inicialização do sistema.

Neste tipo de sistema, um programa pode ser executado por qualquer processador, inclusive por vários processadores ao mesmo tempo ( paralelismo ). Além disso, quando um processador falha o sistema continua em funcionamento, porém com um capacidade menor de processamento.

Os sistemas simétricos são mais poderosos do que os sistema assimétricos , permitindo um maior balanceamento do processador e das operações de entrada e saída.

Multiprocessamento

Desde a sua criação, os computadores são vistos como máquinas sequenciais , onde a UCP executa as instruções de um programa, uma de cada vez. Porém na realidade isto não é totalmente verdadeiro pos múltiplos  sinais são ativos simultaneamente , o que pode ser entendido como uma forma de paralelismo.

Com a implementação de múltiplos processadores, o conceito de simultaneidade ou paralelismo pode ser expandido a um nível mais amplo , denominado multiprocessamento, onde uma tarefa pode ser divida e executada, ao mesmo tempo, por mais de um processador.

 

Prof. Alessandro Zanini

You are here