março 09, 2009

Porquê software Open Source?

Open Source é uma realidade do século XXI, nascido em Fevereiro de 1998 numa reunião no qual se designou o termo técnico Open Source (Código aberto).
Rapidamente o Open Source se espalhou pelo mundo atraindo uma quantidade enorme de fãs que defediam as suas crenças, teorias e e projectos.
Hoje em dia existem centenas de comunidades desenvolvendo software open-source com profissionalismo.
Um software open source permite que se modifique, adapte, distribua, melhore e se publique para um público basto que está sempre de mãos abertas para novas novidades.
Existem várias liçensas open source, entre elas a que se mais se destaca é seguramente a GPL (General Public License, ou algo do género).
O facto de existirem muitas pessoas a trabalhar e a avaliar o mesmo projecto, faz com que as dificuldades que aparecem sejam ultrapassadas de forma rápida e simples e que o produto ganhe estabilidade . Quanto maior for o número de utilizadores, maior é a estabilidade e fiabilidade do produto.


novembro 28, 2008

Modelo OSI

 Este tipo de modelo consiste num conjunto de protocolos abertos (normas que podem ser adaptadas livremente), o equipamento e desenvolvimento do software. estão destinados a funcionar em rede. O Modelo OSI subdivide-se no processo global de comunicação de dados entre computadores em rede, estes tem ainda sete níveis ou comandos (layers) cada uma das quais com determinadas funções específicas.

outubro 03, 2008

Processos

Os processos basicamente controlam o que um programa tem ou não acesso, eles são o ambiente onde se executam vários programas, estes definem o ambiente, os recursos, e os buffers disponíveis para seu próprio uso.
Na realidade nenhum programa é executado directamente na memória, mas sim num processo. Se isso não acontece-se o programa neste caso poderia utilizar qualquer área da memória aleatoriamente.
Através dos processos que o sistema operativo controla as execuções de programas, as permissões destes e as restrições que o programa terá quando estiver a ser executado e os recursos que este terá acesso e quando.

Um programa pode ter vários estados em um processo:

Execução(Running):

Um programa está em execução quando um processo está a ser executado pela CPU.

Pronto(Ready):
O programa está no scheduler á espera para ser executado pela CPU.

Espera(Wait):
O programa está á espera de algum evento para continuar o processamento do mesmo, por exemplo quando um programa está á espera que uma tecla seja pressionada ou á espera que ensiram algum valor.

Os processos concorrem entre si para serem processados pela CPU, este optimiza o sistema operativo e colocando a hipótese de executar vários programas ao mesmo tempo.

outubro 01, 2008

Gestão de memória

Gestão de memória aloca/retira processos para a memória, estes por exemplo podem ser "expulsos" designado por swapped out e alocados swapped in.

Existem dois processos:

Swapping - consiste em carregar o todo o programa para a memória, do disco para a memória.

Memória Virtual - só parte do programa é carregado para a memória, o programa é dividio em vários blocos.

Kernel de um sistema operativo (Núcleo)

O Kernel de um sistema operativo tem como objectivo em "separar" a interface do harware, o kernel tem a função de, criar, agendar e finalizar processos; alocar e libertar memória; controlar o sistema de arquivos; operar o I/O com periféricos; tem acesso á memória entre outros.

Existem vários tipos de kernel, entre eles:

  • Kernel monolítico
  • Kernel híbrido

O Kernel monolítico (usado em Linux, MS-DOS) tem um alto nível de separação para o hardware da máquina.

O Kernel híbrido (uasado em Windows, BeOS) sendo híbrido, tem a capacidade de agregar ou desagregar funcionalidades, sem perder performance ou estabilidade presentes na sua estrutura inicial


 

setembro 23, 2008

Conversão Analógica - Digital

Elementos como peso, pressão, velocidade são descritos em valores contínuos, são analógicos, para puderem ser usados e manipulados em sistemas digitais é preciso efectuar uma conversão, sendo essa chamada "Conversão analógica - digital" ou abreviada para "A/D" e "ADC".

Existem várias vantagens de se usar sinais digitais, estes estão menos expostos a interferências e/ou ruídos por que são menos sensíveis a esses pontos, também permite transmitir um maior número de informações do que em sistemas ou dados analógicos.

Os aparelhos que convertem os sinais analógicos em digitais são chamados de transdutores.

"Transformar" o sinal analógico em digital denomina-se de digitalização.

Este processo é divido basicamente em 3 fases, sendo elas:

  • Amostragem
  • Quantização
  • Codificação

Amostragem, este processo consiste em recolher amostras do sinal original para reconstruir outro sinal para o receptor.

Quantização, depois de termos os sinais analógicos no receptor temos que atribuir valores a esses mesmos a isso se chama quantizar. De acordo com uma pesquisa que fiz no google quantizar é um <<[...]acto de dar valor numérico a algo que antes não tinha[...]>>, ou seja a quantização acaba por ser um processo de atribuição de valores a um sinal analógico.

Codificação, por último neste processo dá-se uma codificação dos sinais quantizados anteriormente, os sinais são codificados em dois valores, 0 e 1 (sistema binário) , pois os sistemas/sinais digitais só são constítuidos por esses dois valores ao contrário dos sistemas analógicos.

Também existem várias técnicas para o "A/D" ou digitalização, o uso das técnicas vária conforme o objectivo a que se pretende, mais precisão, menos precisão, etc...

Como técnicas de conversão A/D existem algumas como por exemplo:

Codificação paralela

Testador de módulos (ou gerador de rampa)

Fase única

Aproximações Sucessivas

Esta imagem  ilustra muito bem este artigo sobre o conceito de A/D

Também é possível fazer o inverso ou seja em vez de se converter A/D converter D/A

setembro 22, 2008

Multiprogramação

A multiprogramação permite aumentar a utilização do CPU através do Scheduling, que gere as tarefas mais importantes que o CPU deve executar.
CPU Scheduling é um processo que administra as tarefas a serem executadas, este processo optimiza a utilização do CPU e assim este mantêm-se sempre ocupado não parando entre tarefas como os sistemas antecessores. Este processo permite que o CPU execute várias tarefas em simultâneo, se por algum motivo alguma tarefa for interrompida o SO selecciona uma nova tarefa automaticamente, a outra tarefa será retomada assim que possível.


Até o próximo artigo.