Criou página com '= Conceito = = Estrutura = = Tipos de SOs = = Funcionalidades = = Referências bibliográficas = Válido para consulta: Livros, Artigos e Revistas.'
 
Linha 1: Linha 1:
= Conceito =
= Conceito =
''Vemos um sistema operacional como os programas, implementados como software ou firmware, que tornam o hardware utilizável. O hardware oferece
capacidade computacional bruta. Os sistemas operacionais disponibilizam convenientemente tais capacidades aos usuário, gerenciando cuidadosamente
o hardware para que se obtenha uma performance adequada.'' [DEI92, p.3]
  Provavelmente você estará usando um dos três maiores sistemas operacionais atuais, seja o Windows, Mac Os e Linux, neste exato momento. Porem existe uma longa história até chegar onde se encontra hoje os conceitos e aplicações dos mesmos. Vale relembrar que existe hoje outros, além destes, como é o caso mais recente lançado pela Google o Chromium OS ou Chrome OS. Mas o que é um Sistema Operacional?
  A despeito do tipo, sofisticação ou capacidades do computador, um sistema operacional deve seguir os princípios:
  • Oferecer os recursos do sistema de forma simples e transparente;
  • Gerenciar a utilização dos recursos existentes buscando seu uso eficiente em termos do sistema;
  • Garantir a integridade e a segurança dos dados armazenados e processados no sistema e também de seus recursos físicos.
  Também deve-se proporcionar uma interface adequada para que o usuário possa utiliza-lo. Historicamente falando, as primeiras interfaces dos sistemas operacionais eram baseadas em um conjunto de palavras-chaves (comandos) e mensagens de diálogo que permitiam a execução de tarefas e a comunicação entre o operador e a máquina. A Interface Humano-Computador (IHC) daquele sistema era dada por estes comandos. Hoje usamos interfaces do tipo gráficas, bem mais simples e de fácil utilização, pois possuem uma aparência atraente e um uso intuitivo sem muitas exigências de linguagem e comandos.
  Um breve resumo do começo da história anterior aos sistemas operacionais:
  • 1934 a máquina eletromecânica programável do engenheiro Konrad Zuse.
  • 1935 iniciou-se o projeto da máquina eletrônica ABC, baseada em válvulas, para resolução de sistemas, proposta pelo físico John Vincent Atanasolft.
  • 1937 John Von Neumann, matemático húngaro, propõe uma arquitetura genérica para computador (curiosamente lembrando, usada até hoje, figura 1)
  • 1939 desenvolve-se a primeira calculadora eletromecânica dos laboratórios Bell.
    Um dos primeiros sistemas programáveis construídos foi o computador eletromecânico Mark I, projetado pela IBM e a Universidade de Havard, datado de 1944. Em 1946 o Exército Americano revela seu computador eletrônico digital, o ENIAC, utilizado para cálculos de balística. Porem estes sistemas eram particulares somente a engenheiros que sabiam da arquitetura e funcionamento, eles exerciam o papel de programadores, determinando quais módulos deveriam ser interligados e em que ordem.
    Com a proposta feita por Von Neumann de um sistema baseado numa arquitetura composta por três blocos básicos (figura 1) em que a sequência dos processos e passos a serem executadas pela máquina fossem armazenadas nela própria sem necessidade de modificação de seu hardware. O computador proposto por ele era uma máquina genérica, cujo bloco de processador seria capaz de realizar um conjunto de operações logicas, além de algumas de movimentação de dados entre blocos da máquina. As operações eram chamadas de instruções, seriam armazenadas em um bloco de memória enquanto bloco de dispositivos de E/S (entrada e saída) ou I/O (input and output), responsável pela entrada e saída de dados, instruções e controle do sistema.
[[Arquivo:ArquiteturaVonNeumann.jpg]]
Figura 1 Arquitetura de Von Neumann
    Logo, os sistemas operacionais se tornaram elementos fundamentais para o funcionamento de praticamente qualquer sistema de computação, dos minúsculos sistemas embarcados e telefones celulares aos gigantescos centros de processamento de dados das grandes empresas. O sistema operacional é uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final. O sistema operacional é uma estrutura de software ampla, muitas vezes complexa, que incorpora aspectos de baixo nível (como drivers de dispositivos e gerência de memória física) e de alto nível (como programas utilitários e a própria interface gráfica). Os objetivos básicos de um sistema operacional podem ser sintetizados em duas palavras-chave: “abstração” e “gerência”.
[[Arquivo:EstruturaSO.jpg]]
Figura 2 Estrutura de um Sistema Operacional típico
    O conceito de abstração leva em conta vários processos, um exemplo é acessar um arquivo em leitor de CD ou mídia removível e realizar a abertura do mesmo:
1. Verificam se parâmetros (tais como nome do arquivo, identificador da origem da leitura, buffer de leitura, etc.);
2. Verificar se o leitor está disponível;
3. Verificar se a algum conteúdo no leitor;
4. Ligar o leitor e esperar que esse atinja a velocidade exigida;
5. Ler tabela de diretório e localizar o arquivo ou subdiretório desejado;
6. Ler bloco inicial do arquivo e depositá-lo em buffer de memória;
    Assim, o sistema operacional deve definir interfaces abstratas para os recursos do hardware, visando atender os seguintes objetivos:
    • Prover interfaces de acesso aos dispositivos, mais simples de usar que as interfaces de baixo nível, para simplificar a construção de programas aplicativos. Por exemplo: para ler dados de um disco rígido, uma aplicação usa um conceito chamado arquivo, que implementa uma visão abstrata do disco rígido, acessível através de operações como open, read e close. Caso tivesse de acessar o disco diretamente, teria de manipular portas de entrada/saída e registradores com comandos para o controlador de disco (sem falar na dificuldade de localizar os dados desejados dentro do disco).
    • Tornar os aplicativos independentes do hardware. Ao definir uma interface abstrata de acesso a um dispositivo de hardware, o sistema operacional desacopla o hardware dos aplicativos e permite que ambos evoluam de forma mais autônoma. Por exemplo, o código de um editor de textos não deve ser dependente da tecnologia de discos rígidos utilizada no sistema.
    • Definir interfaces de acesso homogêneas para dispositivos com tecnologias distintas. Através de suas abstrações, o sistema operacional permite aos aplicativos usar a mesma interface para dispositivos diversos. Por exemplo, um aplicativo acessa dados em disco através de arquivos e diretórios, sem precisar se preocupar com a estrutura real de armazenamento dos dados, que podem estar em um disquete, um disco IDE, uma máquina fotográfica digital conectada à porta USB, um CD ou mesmo um disco remoto, compartilhado através da rede
      Quando se trata de gerencia de recursos deve se lembrar dos programas aplicativos que usam o hardware para ler e armazenar dados, editar e imprimir documentos, navegar na internet, tocar música, etc. Como em geral um sistema possui atividades simultâneas, isso poderia gerar conflitos no uso do hardware, levando a quebra do sistema ou overclock, pois um ou mais aplicativos precisariam exatamente daquele determinado hardware ao mesmo tempo. Entra então a definição de política de uso dada pelo sistema operacional, quem e quando poderá ser usado determinada parte eletrônica do sistema computacional. Assim acaba por resolver as eventuais disputas e conflitos no uso de recurso pelos aplicativos.
    • Cada computador normalmente possui menos processadores que o número de tarefas em execução. Por isso, o uso desses processadores deve ser distribuído entre os aplicativos presentes no sistema, de forma que cada um deles possa executar na velocidade adequada para cumprir suas funções sem prejudicar os demais. O mesmo ocorre com a memória RAM, que deve ser distribuída de forma justa entre as aplicações.
    • A impressora é um recurso cujo acesso deve ser efetuado de forma mutuamente exclusiva (apenas um aplicativo por vez), para não ocorrer mistura de conteúdo nos documentos impressos. O sistema operacional resolve essa questão definindo uma fila de trabalhos a imprimir (print jobs) normalmente atendidos de forma sequencial (FIFO).
    • Ataques de negação de serviço (DoS – Denial of Service) são comuns na Internet. Eles consistem em usar diversas técnicas para forçar um servidor de rede a dedicar seus recursos a atender um determinado usuário, em detrimento dos demais. Por exemplo, ao abrir milhares de conexões simultâneas em um servidor de e-mail, um atacante pode reservar para si todos os recursos do servidor (processos, conexões de rede, memória e processador), fazendo com que os demais usuários não sejam mais atendidos. É responsabilidade do sistema operacional do servidor detectar tais situações e impedir que todos os recursos do sistema sejam monopolizados por um só usuário (ou um pequeno grupo).
    Assim, um sistema operacional visa abstrair o acesso e gerenciar os recursos de hardware, provendo aos aplicativos um ambiente de execução abstrato, no qual o acesso aos recursos se faz através de interfaces simples, independentes das características e detalhes de baixo nível, e no qual os conflitos no uso do hardware são minimizados.


= Estrutura =
= Estrutura =

Edição das 11h35min de 29 de outubro de 2014

Conceito

Vemos um sistema operacional como os programas, implementados como software ou firmware, que tornam o hardware utilizável. O hardware oferece capacidade computacional bruta. Os sistemas operacionais disponibilizam convenientemente tais capacidades aos usuário, gerenciando cuidadosamente o hardware para que se obtenha uma performance adequada. [DEI92, p.3]

  Provavelmente você estará usando um dos três maiores sistemas operacionais atuais, seja o Windows, Mac Os e Linux, neste exato momento. Porem existe uma longa história até chegar onde se encontra hoje os conceitos e aplicações dos mesmos. Vale relembrar que existe hoje outros, além destes, como é o caso mais recente lançado pela Google o Chromium OS ou Chrome OS. Mas o que é um Sistema Operacional?
  A despeito do tipo, sofisticação ou capacidades do computador, um sistema operacional deve seguir os princípios: 
  •	Oferecer os recursos do sistema de forma simples e transparente;
  •	Gerenciar a utilização dos recursos existentes buscando seu uso eficiente em termos do sistema;
  •	Garantir a integridade e a segurança dos dados armazenados e processados no sistema e também de seus recursos físicos.
  Também deve-se proporcionar uma interface adequada para que o usuário possa utiliza-lo. Historicamente falando, as primeiras interfaces dos sistemas operacionais eram baseadas em um conjunto de palavras-chaves (comandos) e mensagens de diálogo que permitiam a execução de tarefas e a comunicação entre o operador e a máquina. A Interface Humano-Computador (IHC) daquele sistema era dada por estes comandos. Hoje usamos interfaces do tipo gráficas, bem mais simples e de fácil utilização, pois possuem uma aparência atraente e um uso intuitivo sem muitas exigências de linguagem e comandos.
  Um breve resumo do começo da história anterior aos sistemas operacionais:
  •	1934 a máquina eletromecânica programável do engenheiro Konrad Zuse.
  •	1935 iniciou-se o projeto da máquina eletrônica ABC, baseada em válvulas, para resolução de sistemas, proposta pelo físico John Vincent Atanasolft.
  •	1937 John Von Neumann, matemático húngaro, propõe uma arquitetura genérica para computador (curiosamente lembrando, usada até hoje, figura 1)
  •	1939 desenvolve-se a primeira calculadora eletromecânica dos laboratórios Bell.
   Um dos primeiros sistemas programáveis construídos foi o computador eletromecânico Mark I, projetado pela IBM e a Universidade de Havard, datado de 1944. Em 1946 o Exército Americano revela seu computador eletrônico digital, o ENIAC, utilizado para cálculos de balística. Porem estes sistemas eram particulares somente a engenheiros que sabiam da arquitetura e funcionamento, eles exerciam o papel de programadores, determinando quais módulos deveriam ser interligados e em que ordem.
   Com a proposta feita por Von Neumann de um sistema baseado numa arquitetura composta por três blocos básicos (figura 1) em que a sequência dos processos e passos a serem executadas pela máquina fossem armazenadas nela própria sem necessidade de modificação de seu hardware. O computador proposto por ele era uma máquina genérica, cujo bloco de processador seria capaz de realizar um conjunto de operações logicas, além de algumas de movimentação de dados entre blocos da máquina. As operações eram chamadas de instruções, seriam armazenadas em um bloco de memória enquanto bloco de dispositivos de E/S (entrada e saída) ou I/O (input and output), responsável pela entrada e saída de dados, instruções e controle do sistema.

Figura 1 Arquitetura de Von Neumann

    Logo, os sistemas operacionais se tornaram elementos fundamentais para o funcionamento de praticamente qualquer sistema de computação, dos minúsculos sistemas embarcados e telefones celulares aos gigantescos centros de processamento de dados das grandes empresas. O sistema operacional é uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final. O sistema operacional é uma estrutura de software ampla, muitas vezes complexa, que incorpora aspectos de baixo nível (como drivers de dispositivos e gerência de memória física) e de alto nível (como programas utilitários e a própria interface gráfica). Os objetivos básicos de um sistema operacional podem ser sintetizados em duas palavras-chave: “abstração” e “gerência”.

Figura 2 Estrutura de um Sistema Operacional típico

    O conceito de abstração leva em conta vários processos, um exemplo é acessar um arquivo em leitor de CD ou mídia removível e realizar a abertura do mesmo:

1. Verificam se parâmetros (tais como nome do arquivo, identificador da origem da leitura, buffer de leitura, etc.); 2. Verificar se o leitor está disponível; 3. Verificar se a algum conteúdo no leitor; 4. Ligar o leitor e esperar que esse atinja a velocidade exigida; 5. Ler tabela de diretório e localizar o arquivo ou subdiretório desejado; 6. Ler bloco inicial do arquivo e depositá-lo em buffer de memória;

    Assim, o sistema operacional deve definir interfaces abstratas para os recursos do hardware, visando atender os seguintes objetivos:
    • Prover interfaces de acesso aos dispositivos, mais simples de usar que as interfaces de baixo nível, para simplificar a construção de programas aplicativos. Por exemplo: para ler dados de um disco rígido, uma aplicação usa um conceito chamado arquivo, que implementa uma visão abstrata do disco rígido, acessível através de operações como open, read e close. Caso tivesse de acessar o disco diretamente, teria de manipular portas de entrada/saída e registradores com comandos para o controlador de disco (sem falar na dificuldade de localizar os dados desejados dentro do disco).
    • Tornar os aplicativos independentes do hardware. Ao definir uma interface abstrata de acesso a um dispositivo de hardware, o sistema operacional desacopla o hardware dos aplicativos e permite que ambos evoluam de forma mais autônoma. Por exemplo, o código de um editor de textos não deve ser dependente da tecnologia de discos rígidos utilizada no sistema.
    • Definir interfaces de acesso homogêneas para dispositivos com tecnologias distintas. Através de suas abstrações, o sistema operacional permite aos aplicativos usar a mesma interface para dispositivos diversos. Por exemplo, um aplicativo acessa dados em disco através de arquivos e diretórios, sem precisar se preocupar com a estrutura real de armazenamento dos dados, que podem estar em um disquete, um disco IDE, uma máquina fotográfica digital conectada à porta USB, um CD ou mesmo um disco remoto, compartilhado através da rede
     Quando se trata de gerencia de recursos deve se lembrar dos programas aplicativos que usam o hardware para ler e armazenar dados, editar e imprimir documentos, navegar na internet, tocar música, etc. Como em geral um sistema possui atividades simultâneas, isso poderia gerar conflitos no uso do hardware, levando a quebra do sistema ou overclock, pois um ou mais aplicativos precisariam exatamente daquele determinado hardware ao mesmo tempo. Entra então a definição de política de uso dada pelo sistema operacional, quem e quando poderá ser usado determinada parte eletrônica do sistema computacional. Assim acaba por resolver as eventuais disputas e conflitos no uso de recurso pelos aplicativos.
   • Cada computador normalmente possui menos processadores que o número de tarefas em execução. Por isso, o uso desses processadores deve ser distribuído entre os aplicativos presentes no sistema, de forma que cada um deles possa executar na velocidade adequada para cumprir suas funções sem prejudicar os demais. O mesmo ocorre com a memória RAM, que deve ser distribuída de forma justa entre as aplicações. 
   • A impressora é um recurso cujo acesso deve ser efetuado de forma mutuamente exclusiva (apenas um aplicativo por vez), para não ocorrer mistura de conteúdo nos documentos impressos. O sistema operacional resolve essa questão definindo uma fila de trabalhos a imprimir (print jobs) normalmente atendidos de forma sequencial (FIFO). 
   • Ataques de negação de serviço (DoS – Denial of Service) são comuns na Internet. Eles consistem em usar diversas técnicas para forçar um servidor de rede a dedicar seus recursos a atender um determinado usuário, em detrimento dos demais. Por exemplo, ao abrir milhares de conexões simultâneas em um servidor de e-mail, um atacante pode reservar para si todos os recursos do servidor (processos, conexões de rede, memória e processador), fazendo com que os demais usuários não sejam mais atendidos. É responsabilidade do sistema operacional do servidor detectar tais situações e impedir que todos os recursos do sistema sejam monopolizados por um só usuário (ou um pequeno grupo).
    Assim, um sistema operacional visa abstrair o acesso e gerenciar os recursos de hardware, provendo aos aplicativos um ambiente de execução abstrato, no qual o acesso aos recursos se faz através de interfaces simples, independentes das características e detalhes de baixo nível, e no qual os conflitos no uso do hardware são minimizados.

Estrutura

Tipos de SOs

Funcionalidades

Referências bibliográficas

Válido para consulta: Livros, Artigos e Revistas.