segunda-feira, 17 de outubro de 2011

Sistemas Operacionais - Visão Geral

1- Conceitos Básicos


Visão Top-down:  Máquina Virtual
O SO deve facilitar e padronizar o acesso aos recursos
do sistema, servindo de interface entre o usuário e os
recursos do sistema computacional, tornando esta
comunicação transparente, eficiente e menos suscetível
a erros.
Visão Botton-up:  Gerenciador de Recursos           
O SO deve permitir o compartilhamento de recursos,
entre os diversos usuários, de forma organizada e
protegida.   Tal compartilhamento além de dar impressão
ao usuário de ser o único a utilizar um determinado
recurso permite a diminuição de custos, na medida que
mais de um usuário passa a utilizar as mesmas
facilidades concorrentemente e de forma segura.


2- Gráficos:
 Sistemas Operacionais mais utilizados no mundo:
                   

Navegadores mais utilizados:


 Países que mais utilizam a Internet:

        
3 - Funcionamento
Componentes básicos de um computador
1.     Processador
  • ULA
  • UC
  • Registradores
  • Clock
3.     Memória
  • Principal
  • Secundária
  • Cache
4.     Barramentos
5.     Dispositivos de Entrada e Saída


1.     Componentes básicos de um computador



2.     Processador (ou microprocessador)

É um circuito integrado (ou chip). É considerado o cérebro do computador. É ele que executa os programas, faz os cálculos e toma as decisões, de acordo com as instruções armazenadas na memória.
Os microprocessadores formam uma parte importantíssima do computador chamada de UCP (Unidade Central de Processamento), ou em inglês CPU (Central Processing Unit). Antes da existência dos microprocessadores, as CPUs dos computadores eram formadas por um grande número de chips, distribuídos ao longo de uma ou diversas placas. Um microprocessador nada mais é que uma CPU inteira, dentro de um único chip.
Ligando-se um microprocessador a alguns chips de memória e alguns outros chips auxiliares, construiu-se um computador inteiro em uma única placa de circuito, chamada placa mãe dos microcomputadores.


A CPU realiza as seguintes tarefas:
1.     Busca e executa as instruções existentes na memória. Os programas e os dados que ficam gravados no disco (rígido ou disquete) são transferidos para a memória. Uma vez estando na memória a CPU pode executar os programas e processar os dados.
2.     Comanda todos os outros chips do computador
A CPU é composta por:
  • unidade de controle (UC)
  • unidade lógica e aritmética (ULA)
  • registradores
  • unidade lógica e aritmética (ULA) assume todas as tarefas relacionadas às operações lógicas (and, or, not, etc.) e aritméticas (adições, subtrações, ...)
  • unidade de controle (UC) assume toda a tarefa de controle das ações a serem realizadas pelo computador, comandado todos os demais componentes de sua arquitetura. É a UC que deve garantir a correta execução dos programas e a utilização dos dados corretos nas operações que as manipulam.
  • Os registradores
A CPU contém internamente uma memória de alta velocidade que permite o armazenamento de valores intermediários ou informação de comando. Esta memória é composta por registradores (ou registros) na qual cada registro possui uma função própria. Uma registro memoriza um número limitado de bits, geralmente uma palavra de memória. Os registros mais importantes:
  • contador de programa (PC) que aponta para a próxima instrução a executar;
  • registro de instrução (IR) que armazena a instrução em execução;
  • outros registros que permitem o armazenamento de resultados intermediários.
  • Clock
Clock é um circuito oscilador que tem a função de sincronizar e ditar a medida de velocidade de transferência de dados entre duas partes essenciais de um processamento, por exemplo, entre o processador e a memória principal. Esta frequência é medida em ciclos por segundo, ou hertz .
3.     Memória
Constitui de um conjunto de circuitos capazes de armazenar os dados e os programas a serem executados pela máquina. Temos as seguintes categorias de memória:
a ) A memória principal (ou memória de trabalho)
É onde normalmente devem estar armazenados os programas e dados a serem manipulados pelo processador. Este tipo de memória aparece como um conjunto de chips que são inseridos na placa mãe do computador.
Tipos de memória
Os chips de memória podem ser divididos em duas grandes categorias:
  • RAM (memória de leitura e escrita)
São chips de memória que podem ser gravados pela CPU a qualquer instante. A CPU usa a RAM para armazenar e executar programas vindos do disco, para ler e gravar os dados que estão sendo processados. É uma memória volátil ( quando o computador é desligado, todos os seus dados são apagados). Por esta razão, os dados e programas devem ficar gravados no disco, que é uma memória permanente.
·                    Memórias não voláteis
São memórias cujas informações mantidas não são perdidas caso o computador seja desligado.
Exemplo: BIOS (basic input-output system – sistema básico de entrada e saída). Está gravado em uma memória permanente localizada na placa mãe. Tipos de memórias permanentes:
  • ROM
São chips que podem ser lidos pela CPU a qualquer instante, mas não podem ser gravados pela CPU. A gravação é feita pelo fabricante. Este tipo de memória foi usada para armazenar a BIOS.
  • PROM
É uma ROM programável. A gravação pode ser feita apenas uma vez, pois utiliza um processo irreversível.
  • EPROM
É uma ROM programável e apagável. Pode ser programada comportando-se com o uma ROM. A EPROM pode ser apagada com raios ultravioletas de alta potência.
  • EEPROM
É um tipo de memória ROM mais flexível. Pode ser apagada sob controle de software. Utilizada para armazenar as BIOS atuais.
Memória fora da placa mãe
A placa mãe contém quase toda a memória de um microcomputador, mas outras placas também podem conter memórias, do tipo RAM e do tipo ROM. As placas de vídeo contém uma ROM com a sua própria BIOS e uma RAM chamada de memória de vídeo
b) A memória secundária (ou memória de massa)
Não é acessada diretamente pela CPU. O acesso é feito através de interfaces ou controladoras especiais. É uma memória do tipo permanente. Possui alta capacidade de armazenamento e um custo menor que o da memória principal. A memória secundária não é formada por chips, e sim por dispositivos que utilizam outras tecnologias de armazenamento (magnética ou ótica).
Exemplos: disco rígido, disquete, fita magnética e cd-rom.
Placas controladoras:
·         SCSI (small compact system interface) permite a conexão de diversos periféricos;
·         IDE (intelligent drive electronics)
3.     A memória cache
É uma área reservada de memória que possui duas funções:
  • Aumentar o desempenho do computador
  • Aumentar o tempo de vida das unidades de disco
Temos dois tipos de memória cache:
  • A que vem incorporada à máquina, dessa forma é mais rápida que a memória RAM;
  • A que é implementada via software na memória RAM, aumentando o desempenho do acesso ao disco.

4.     Barramentos
Um barramento ou bus, é um caminho comum pelo qual os dados trafegam dentro do computador. Este caminho é usado para comunicação e pode ser estabelecido entre dois ou mais elementos do computador.
O tamanho do barramento determina quantos dados podem ser transferidos em uma única vez (16 bits, 32bits, ...)
Um PC possui muitos barramentos, que incluem:
·         Barramento do processador
É o barramento que o chipset (chips de suporte adjacentes contidos na placa mãe) usa para enviar/receber informações do processador.
·         Barramento de cache
É um barramento dedicado para acessar a cache. Usado pelos Pentium Pro e Pentium III.
·         Barramento de memória
Conecta o sub-sistema da memória ao chipset e ao processador.

·         Barramento local de entrada/saída (E/S)
Usado para conectar periféricos de alto desempenho à memória, chipset e processador. Exemplo: placas de vídeo, interface de redes de alta velocidade. Os mais comuns:
  • Vesa local bus (VLB)
  • Peripheral component inter connect bus (PCI)
·         Barramento padrão de entrada/ saída(E/S):
Usado para periféricos lentos (mouses, placas de som) e também para compatibilidade com dispositivos antigos.
  • Industry standard architecture (ISA)
Todos os barramentos possuem duas partes: um barramento de endereçamento (que transfere a informação de onde o dado se encontra) e um barramento de dados (que transfere os dados em si, ou seja, o valor de memória).
5.     Dispositivos de Entrada e Saída ou Periféricos
São equipamentos utilizados como portadores das informações que o computador irá processar. Através desses dispositivos, o computador pode armazenar, ler, transferir e receber dados.
Dispositivos de entrada:
  • Teclado
  • Mouse
  • Drive de CD-ROM
  • Microfone
  • Scanner
Dispositivos de saída:
  • Vídeo
  • Impressora
  • Alto-falante
Dispositivos de entrada e saída:
  • Disco rígido
  • Drive de disquete
  • Unidade de fita magnética
  • Modem
Tipos de comunicação com os dispositivos:
A CPU comunica-se com os periféricos através de circuitos chamados interfaces ou portas de E/S, que implementam a transmissão de dados segundo duas políticas:
·         comunicação paralela: impressora;
·         comunicação serial: mouse, modem.


 4 – Tipos de Sistemas

Quais são os tipos de sistemas operacionais?

Existem 4 tipos básicos de sistemas operacionais. Eles são divididos em grupos relacionados com o tipo de computador que controlam e o tipo de aplicativos que suportam. Estas são as categorias mais abrangentes:
·         sistema operacional de tempo real (RTOS - Real-time operating system). É utilizado para controlar máquinas, instrumentos científicos e sistemas industriais. Geralmente um RTOS não tem uma interface para o usuário muito simples e não é destinado para o usuário final, desde que o sistema é entregue como uma "caixa selada". A função do RTOS é gerenciar os recursos do computador para que uma operação específica seja sempre executada durante um mesmo período de tempo. Numa máquina complexa, se uma parte se move mais rapidamente só porque existem recursos de sistema disponíveis, isto pode ser tão catastrófico quanto se uma parte não conseguisse se mover porque o sistema está ocupado.
·         monousuário, monotarefa. O sistema operacional foi criado para que um único usuário possa fazer uma coisa por vez. O Palm OS dos computadores Palm é um bom exemplo de um moderno sistema operacional monousuário e monotarefa.
·         monousuário, multitarefa. Este tipo de sistema operacional é o mais utilizado em computadores de mesa e laptops. As plataformas Microsoft Windows e Apple MacOS são exemplos de sistemas operacionais que permitem que um único usuário utilize diversos programas ao mesmo tempo. Por exemplo, é perfeitamente possível para um usuário de Windows escrever uma nota em um processador de texto ao mesmo tempo em que faz download de um arquivo da Internet e imprime um e-mail.
·         multiusuário. Um sistema operacional multiusuário permite que diversos usuários utilizem simultaneamente os recursos do computador. O sistema operacional deve se certificar de que as solicitações de vários usuários estejam balanceadas. Cada um dos programas utilizados deve dispor de recursos suficientes e separados, de forma que o problema de um usuário não afete toda a comunidade de usuários. Unix, VMS e sistemas operacionais mainframe como o MVS são exemplos de sistemas operacionais multiusuário.

Foto cedida Apple Tela do sistema operacional Mac OS X Panther
É importante diferenciar os sistemas operacionais multiusuário dos sistemas operacionais monousuário que suportam rede. O Windows Server e o Novell Open Enterprise Server podem suportar centenas ou milhares de usuários em rede, mas os sistemas operacionais em si não são sistemas multiusuário de verdade. O administrador do sistema é o único "usuário" do Windows Server ou do Novell Open Enterprise Server. O suporte à rede e todos os usuários remotos são, do ponto de vista do sistema operacional, um programa sendo executado pelo administrador.
Agora que você conhece os tipos de sistemas operacionais, vamos entender as suas funções básicas.

4 - Sistemas Multiprocessados

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS

1 - Introdução
Os sistemas multiprocessados são sistemas com múltiplos processadores e caracterizados pela execução simultânea de duas ou mais instruções pelo uso de mais de um processador. Nesse caso, os conceitos de multiprogramação são aplicados a vários processadores ao mesmo tempo.
Os sistemas multiprocessados permitem que vários programas sejam executados em paralelo, ou que um programa tenha duas ou mais de suas instruções executadas em paralelo.
O multiprocessamento pode ocorrer em múltiplos processadores que compartilham uma mesma memória primária (fortemente acoplados) ou em múltiplos computadores independentes, com o uso de sistemas operacionais de rede ou sistemas operacionais distribuídos (fracamente acoplados). No caso de computadores independentes, cada um tem seus próprios recursos.
Os sistemas multiprocessados podem ser classificados como fortemente acoplados e fracamente acoplados, que está relacionado à forma de comunicação entre esses múltiplos processadores.
Os sistemas fortemente acoplados são classificados em simétricos e assimétricos.
 Nos sistemas fracamente acoplados, os processadores estão em diferentes máquinas e são classificados como sistemas operacionais de rede e sistemas operacionais distribuídos.
No entanto, não existe muito consenso em torno das definições de sistemas operacionais distribuídos. Alguns autores consideram esse sistema fortemente acoplado quando provê um nível de integração e compartilhamento de recursos mais intenso e transparente ao usuário. O fato é que, nesse caso, fortemente ou fracamente acoplado depende da solução de software  adotada.
 2 - Sistemas fortemente acoplados
Pela necessidade de formas mais rápidas de processamento, as tecnologias têm caminhado para a utilização de técnicas de paralelismo. Paralelismo consiste em dividir o processo em fragmentos e executar simultaneamante em diferentes processadores, isso para aumentar a velocidade de execução de um programa.
Sistemas fortemente acoplados são os que têm mais de um processador ligado no mesmo barramento. Nesse caso, existe processamento paralelo, aumento da capacidade de processamento, compartilhamento da memória e de periféricos e também tolerância a falhas [se um processador parar, o outro continua funcionando].
2.1 - Sistemas simétricos
Uma forma de paralelismo é SMP [Symmetric Multi-Processor, ou multi processadores simétricos], onde um grupo de processadores trabalha em conjunto compartilhando uma única memória através de um único barramento. Isso torna possível qualquer processador executar uma parte do processo.
O Multiprocessamento simétrico trata todos os processadores igualmente. Qualquer processador pode fazer o trabalho de outro processador, e os processos são divididas em correntes que podem rodar concorrentemente em qualquer processador disponível. O SMP melhora tanto o desempenho da própria aplicação quanto o processamento total do sistema.   Os sistemas SMP requerem alguma forma de memória compartilhada e suporte do sistema operacional, além de aplicações que saibam tirar proveito do paralelismo.
Os sistemas modernos como Linux, Windows, Mac OS e membros da família Unix suportam SMP.
Num sistema SMP, em cada um dos processadores roda uma cópia idêntica do sistema operacional, existe comunicação entre esses processadores e as tarefas [processos] são distribuídas [escalonadas] entre os processadores.
Atualmente multiprocessamento SMP é muito usado em máquinas com mais de um processador. Essa máquina usa arquitetura de processadores paralelos MIMD [Multiple Instruction Multiple Data]. No entanto, se houver mais de 8 processadores em paralelo a solução é NUMA [Non-Uniform Memory Access, ou acesso não uniforme à memória].
2.2 - Sistemas assimétricos
Nos sistemas de multiprocessamento assimétrico, os processadores não são tratados igualmente e existe um processador que é o mestre e controla o sistema, que fica distribuindo tarefas para cada processador escravo.
Essa solução é antiga e permitia adicionar mais um processador a um sistema desenvolvido para trabalhar com um único processador. Essa solução foi usada nos anos 1960 e 1970, como

5 - Interface de uso

Sistema operacional com interface gráfica, no caso, o Debian com blackbox.
Os sistemas operacionais fornecem abstração de hardware para que seus recursos possam ser usados de maneira correta e padronizada, mas para ser possível operar um computador, é necessário fornecer também uma interface para que o usuário possa desfrutar dos recursos do sistema. Atualmente existem dois tipos de interface: o GUI (graphical user interface), conhecida também por interface gráfica, e o CUI (command-line interface), sendo essa mais conhecida como interface de linha de comando.

GUI (Graphical User Interface)

Nesse tipo de interface, o usuário tem a disposição um ambiente de trabalho composto por menus, ícones, janelas e outros itens disponíveis. O usuário interage com esse tipo de interface usando o mouse, podendo também usar o teclado e teclas de atalho. É possível fazer todo tipo de tarefa usando interface gráfica, como edição de vídeos e imagens, sendo somente alguns tipos muito específicos de tarefas que se saem melhor em linha de comando. Acrescentar facilidade de uso e agilidade é o objetivo da GUI, tendo a desvantagem de consumir muito mais memória que interfaces de linha de comando. Em sistemas unix-likes, existe a possibilidade de escolher o gerenciador de janelas a utilizar, aumentando em muito a liberdade de escolha do ambiente.
Sistema operacional em linha de comando.

CUI (Command-line User Interface)

Além da interface gráfica, existe a interface de linha de comando, que funciona basicamente com a digitação de comandos, sendo nesse relativamente pouco interativa. Os comandos digitados são interpretados por um interpretador de comandos, conhecidos também por shells, bastante comuns em sistemas unix-likes. Um exemplo de interpretador de comandos seria o Bash. Usada geralmente por usuários avançados e em atividades específicas, como gerenciamento remoto, utiliza poucos recursos de hardware em comparação a interface gráfica. Nesse tipo de ambiente, raramente se usa o mouse, embora seja possível através do uso da biblioteca ncurses no desenvolvimento dos softwares.


“TUI”à Text User Interface ou Interface de Usuário Textual (e às vezes Terminal User Interface), foi inventado após a invenção das interfaces gráficas do usuário, para distingui-los de interfaces de usuário baseadas em texto. Tui´s são diferentes de interfaces de linha de comando em que, como GUI’s, eles usam a área da tela inteira e não proporcionam necessariamente linha por saída de linha. No entanto, Tuis usam somente texto, símbolos e cores disponíveis em um terminal de texto típico, enquanto GUIs normalmente usam modos gráficos de alta resolução.


6 - Sistemas operacionais on line ou WebTops
 Trata-se de sistemas identicos aos que conhecemos (Windows, Linux, Mac, Unix) disponíveis na web para podermos acessar de onde quisermos, desde que tenha acesso à internet.
Estes sistemas possuem várias utilidades: armazenar arquivos, criar um documento de texto, ouvir música, enfim, tudo aquilo que o desenvolver do sistema disponibilizar.
Segundo o Wikipédia os sistemas operacionais online são:
Um webtopweb desktopdesktop online ou OS online (OS é a sigla para Operacional System (Sistema operacional) é uma página de internet personalizada, geralmente baseada na tecnologia AJAX, em que é possível escolher o conteúdo, bem como definir a ordem e a aparência dos mesmos.
São em geral fornecidos por serviços online como Google, Yahoo! e Windows Live e normalmente rodam miniaplicações próprias, mas podem servir de plataforma também para miniaplicações desenvolvidas por terceiros.
Um OS Online funciona como o Windows, Macintosh, ou Linux, porem utilizando um navegador como o Internet Explorer e o Firefox. Alguns deles têm interfaces que lembram desktops de sistemas operacionais como o Windows e o Linux (KDE).

Exemplos de Webtops:
eyeOS -. webtop bonito alimentado pelo software eyeOS;
Glide - sistema operacional on-line com suporte para BlackBerry, Palm, Windows Mobile, Symbian e os usuários do iPhone.
  
7 - Pseudossistema Operacional

        Pseudo-Sistema Operacional ou Pseudo-OS são sistemas operacionais que não são íntegros, ou seja, embora apresentem uma interface de usuário, estes não se comunicam diretamente com o hardware do computador, sendo necessária a utilização de outro sistema operacional como hospedeiro para este Pseudo-OS para que este possa acessar por meio do kernel do sistema hospedeiro à memória e ao hardware do computador. Alguns exemplos de Pseudo-OS são os WebOS, que não se comunicam diretamente com o hardware e a memória do computador e para sua execução são necessários aplicativos como um browser (ou navegador) compativel e um sistema operacional com kernel rodando no computador (servindo de sistema operacional hospedeiro). Um outro exemplo situado como meio termo entre pseudo-sistema e um sistema completo são as versões do Windows do 1.0 ao 4.2, pois são executadas em cima de uma versão original ou modificada do MS-DOS, mas também possuem funções próprias de gerenciamento da máquina.

Tipos:
          §  WebOS ou Internet Pseudo-OS
          §  Pseudo-OS executável
          §  Máquina Virtual como o VMware

Vídeo Aula: Pseudo-classes em CSS


Nenhum comentário:

Postar um comentário