| (3 revisões intermediárias por um outro usuário não estão sendo mostradas) | |||
| Linha 30: | Linha 30: | ||
Figura 3 Estrutura de um sistema operacional | Figura 3 Estrutura de um sistema operacional | ||
Como um sistema operacional não é um bloco de caráter único, na realidade, ele é composto de diversos componentes com objetivos e funcionalidades complementares. Dentre os mais importantes temos: | |||
''' | * '''Núcleo:''' responsável pela gerencia dos recursos do hardware usados pelas aplicações; é ele também que implementa as principais abstrações a serem utilizadas pelos programas. | ||
'''Programas utilitários:''' são os programas fabricados para facilitar o uso do sistema operacional, permitindo funcionalidades complementares ao núcleo, coo formatação de discos e mídias, configuração de dispositivos, manipulação de arquivos (mover, copiar, apagar), interpretador de comandos, terminal, interface gráfica, gerencia de janelas, etc. | |||
* '''Drivers:''' módulos de código específicos para acessar os dispositivos físicos. Como sabemos cada dispositivo possui um determinado driver especifico, por exemplos portas USB, placas de vídeo, webcam, etc. | |||
* '''Código de inicialização:''' para ligar ou inicializar uma determina parte ou hardware de sistema deve-se atentar-se para uma série de sequencias de séries de tarefas complexas, como reconhecer os dispositivos instalados, testá-los e configura-los para um uso a posteriori. | |||
* '''Programas utilitários:''' são os programas fabricados para facilitar o uso do sistema operacional, permitindo funcionalidades complementares ao núcleo, coo formatação de discos e mídias, configuração de dispositivos, manipulação de arquivos (mover, copiar, apagar), interpretador de comandos, terminal, interface gráfica, gerencia de janelas, etc. | |||
= '''Tipos de SOs''' = | = '''Tipos de SOs''' = | ||
| Linha 71: | Linha 76: | ||
As principais funcionalidades implementadas por um sistema operacional típico são: | As principais funcionalidades implementadas por um sistema operacional típico são: | ||
'''Gerência | * '''Gerência do Processador:''' gerência de processos ou atividades, visa distribuir a capacidade de processamento de forma justa (não necessariamente igual, pois cada aplicação terá uma demanda distinta de processamento) entre as aplicações, sempre respeitando as prioridades determinadas pelo usuário. | ||
'''Gerência de | * '''Gerência de Memória:''' aqui o objetivo é fornecer a cada aplicação uma área de memória própria, independente e isolada das demais aplicações e inclusive do núcleo do sistema. Este "isolamento" de áreas de memórias melhora a estabilidade e segurança do sistema, pois impede aplicações com erros (ou malwares) de interferir no funcionamento das demais aplicações. O usuário tem assim a possibilidade de acesso livro em qualquer posição da memória, sem se atentar a endereços de memória de onde irá executar. | ||
* '''Gerência de Dispositivos:''': É possível criar uma unica abstração para a maioria dos dispositivos de armazenamento como pen-drives, discos SCSI ou IDE, etc., na forma de um vetor de blocos de dados. Esta função é também conhecida pelo nome de gerência de entrada/saída. | |||
* '''Gerência de Arquivos:''' constitui-se sobre a gerência de dispositivos e visa criar arquivos e diretórios, definindo sua interface de acesso para o posterior uso. | |||
* '''Gerência de Proteção:''' como praticamente tudo está conectado em rede e compartilhados por uma vasta gama de usuários, é importante definir claramente os recursos que cada usuário pode acessar, as formas de acesso permitidas (leitura, escrita, etc.) e garantir que essas definições sejam corretamente realizadas. ' [MAZ14] | |||
[[Arquivo:FuncionalidadedoSO.jpg]] | [[Arquivo:FuncionalidadedoSO.jpg]] | ||
Figura 4 Funcionalidades do sistema operacional | Figura 4 Funcionalidades do sistema operacional | ||
= Referências bibliográficas = | = Referências bibliográficas = | ||
Edição atual tal como às 00h33min de 3 de dezembro 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]
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. • Proporcionar uma interface adequada para que o usuário possa utiliza-lo.
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
Estrutura
Figura 3 Estrutura de um sistema operacional
Como um sistema operacional não é um bloco de caráter único, na realidade, ele é composto de diversos componentes com objetivos e funcionalidades complementares. Dentre os mais importantes temos:
- Núcleo: responsável pela gerencia dos recursos do hardware usados pelas aplicações; é ele também que implementa as principais abstrações a serem utilizadas pelos programas.
- Drivers: módulos de código específicos para acessar os dispositivos físicos. Como sabemos cada dispositivo possui um determinado driver especifico, por exemplos portas USB, placas de vídeo, webcam, etc.
- Código de inicialização: para ligar ou inicializar uma determina parte ou hardware de sistema deve-se atentar-se para uma série de sequencias de séries de tarefas complexas, como reconhecer os dispositivos instalados, testá-los e configura-los para um uso a posteriori.
- Programas utilitários: são os programas fabricados para facilitar o uso do sistema operacional, permitindo funcionalidades complementares ao núcleo, coo formatação de discos e mídias, configuração de dispositivos, manipulação de arquivos (mover, copiar, apagar), interpretador de comandos, terminal, interface gráfica, gerencia de janelas, etc.
Tipos de SOs
Os sistemas operacionais se diferenciam em tamanho, velocidade, suporte a recursos específicos, acesso à rede, etc. A seguir apresentaremos alguns dos tipos de sistemas usuais:
- Batch (de lote): como citado na parte do conceito, alguns sistemas iniciais trabalhavam "por lote", ou seja, todos os programas a executar eram enfileirados, com seus dados e as devidas informações para execução. O computador recebia o programa, processava, só que sem interagir com o usuário, o que fomentava um alto grau de desempenho do sistema. Hoje toda interação feita de forma indireta, ou seja, sem o uso do usuário, como transações de bancos de dados, recebe este nome.
- Distribuído: neste os recursos de cada máquina estão disponíveis globalmente, de forma transparente ao usuário. Ao executar uma aplicação, o usuário interage com sua janela, mas não sabe onde ela está executando ou armazenando seus arquivos; é o sistema quem decide. Exemplos: Clouds.
- Multi-usuário: deve suportar a identificação do "portador" de cada recurso dentro do sistema (arquivos, processos, áreas de memória, conexões de rede) e impor regras de controle de acesso para impedir o uso dos recursos por usuários não autorizados previamente. Fundamental para segurança dos SOs de rede e distribuídos. A maior parte dos sistemas operacionais hoje são multi-usuários.
- Desktop: conhecido como "de mesa" é voltado para o usuário doméstico e corporativo para a realização de atividades corriqueiras, como edição de texto, gráficos, planilhas, navegação na internet e reproduções de mídias simples. Suas principais características são interface gráfica, o suporte à interatividade e a operação de rede. Exemplos: Windows (XP, Vista, 7, 8, etc.), o MacOS X e Linux.
- Servidor: deve permitir a gestão eficiente de grandes quantidades de recursos (disco, memória, processadores), impondo prioridades e limites sobre o uso dos recursos pelo usuários e seus aplicativos. Grande parte das vezes esse tipo de SO também tem suporte para rede e multi-usuário. Similar ao de rede
- Embarcado: embarcado (embutido ou embedded) quando é construído para operar sobre um hardware com poucos recursos de processamento, armazenamento e energia. Esse tipo de sistema é encontrado em telefones celulares, sistemas de automação industrial e controladores automotivos, equipamentos eletrônicos de uso doméstico (aparelhos de TV e DVD, fornos micro-ondas, centrais de alarme, etc.). LynxOS, Xylinx e VxWorks são exemplos de SOs voltados para automação. Sistemas operacionais para celulares (smartphones) incluem o Symbian, Android, Apple - iOS 8, entre outros.
- Tempo real: apesar do nome este tipo não precisa ser necessariamente ultra-rápido; essencialmente deve ter um comportamento temporal previsível. A estrutura interna de um SO de tempo real deve internamente ter uma estrutura construída de forma a minimizar esperas e latências imprevisíveis, como tempo de acesso a disco e sincronizações excessivas. Exemplos: funcionalidade de uma turbina de avião a jato ou uma caldeira industrial.
Funcionalidades
As principais funcionalidades implementadas por um sistema operacional típico são:
- Gerência do Processador: gerência de processos ou atividades, visa distribuir a capacidade de processamento de forma justa (não necessariamente igual, pois cada aplicação terá uma demanda distinta de processamento) entre as aplicações, sempre respeitando as prioridades determinadas pelo usuário.
- Gerência de Memória: aqui o objetivo é fornecer a cada aplicação uma área de memória própria, independente e isolada das demais aplicações e inclusive do núcleo do sistema. Este "isolamento" de áreas de memórias melhora a estabilidade e segurança do sistema, pois impede aplicações com erros (ou malwares) de interferir no funcionamento das demais aplicações. O usuário tem assim a possibilidade de acesso livro em qualquer posição da memória, sem se atentar a endereços de memória de onde irá executar.
- Gerência de Dispositivos:: É possível criar uma unica abstração para a maioria dos dispositivos de armazenamento como pen-drives, discos SCSI ou IDE, etc., na forma de um vetor de blocos de dados. Esta função é também conhecida pelo nome de gerência de entrada/saída.
- Gerência de Arquivos: constitui-se sobre a gerência de dispositivos e visa criar arquivos e diretórios, definindo sua interface de acesso para o posterior uso.
- Gerência de Proteção: como praticamente tudo está conectado em rede e compartilhados por uma vasta gama de usuários, é importante definir claramente os recursos que cada usuário pode acessar, as formas de acesso permitidas (leitura, escrita, etc.) e garantir que essas definições sejam corretamente realizadas. ' [MAZ14]
Figura 4 Funcionalidades do sistema operacional
Referências bibliográficas
[DEI92] DEITEL, Harvey M. An Introduction to Operating Systems. 2nd Edtition. Addison-Wesley, Reading, MA, 1992.
[JAN04] JANDL, Peter, Jr. Notas sobre Sistemas Operacionais. Versão 1.1. Peter Jandl Jr. Apostila, IFRN (Instituto Federal do Rio Grande do Norte), RN, 2004.
[MAZ14] MAZIERO, Carlos A. Sistemas Operacionais: Conceitos e Mecanismos. Dainf – UTFPR, PR, 2014.
SISTEMA OPERATIVO. In: Wikipédia: a enciclopédia livre. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Sistema_operativo&redirect=no> Acesso em: 29 out 2014.

