quarta-feira, 25 de março de 2009

PI - Trabalho (07/04/09)

** Data de Entrega: 07/abril **
Apresentação: PPS.

Parte escrita: Impressa.


Conteúdo:


  • Definição do escopo (resumo do projeto);

  • Requisitos funcionais e não-funcionais;

  • Análise de custos;

  • Análise de riscos;

  • Prioridades de implementação;

Na definição de escopo será colocado o que terá ou possívelmente terá no sistema.


Requisitos funcionais são as funcionalidades que o sistema terá.


Ex.: Permitir envio de mensagens para um usuário conectado, permitir envio de emoticons, etc.


Requisitos não-funcionais são as qualidades globais do sistema.


Ex.: Usabilidade, tempo de resposta, IDE de desenvolvimento, banco de dados usado, etc.


Na análise de custos serão informados os possíveis custos que terá durante o desenvolvimento do projeto. Inclui-se nesse tópico o preço da máquina utilizada, dos softwares e o tempo gasto.


Análise de riscos eu não sei o qué é ainda.


As prioridades de implementação demonstram o que deverá ser desenvolvido inicialmente para implementar o sistema.

terça-feira, 24 de março de 2009

MATEMÁTICA - Juros Compostos (juros sobre juros)

A principal diferença do juro composto em relação ao juro simples está no fato do composto aplicar juros sobre juros, o que não acontece no simples que aplica juros apenas levando em consideração o valor inicial aplicado, ignorando os valores tirados ou acrescentados ao mesmo.

Vamos a dois exemplos dos dois tipos de juros:





Seria muito simples aplicar os juros compostos usando apenas essas tabelas, mas e se tivéssemos 60 meses ou mais, como ficaria? Tornaria-se inviável fazer como no exemplo acima.
Para substituir a tabela, usaremos potenciação junto à fórmula de juros composto que ficará assim:

VF = VP * (1 + i) ^ n

Exemplo:
João tem uma dívida de R$2000,00 no cartão de crédito, o qual fica sem pagar durante 24 meses. Qual o valor da dívida, sendo a taxa de juros composto de 11% ao mês?
VP = 2000
I = 11% am -> 0,11 (em decimal)
N = 24
VF = ?

VF = VP (1 + i) ^ n
VF = 2000 (1 + 0,11)^24
VF = 2000 (1,11) ^24
VF = 24478,31

Exemplo 2:
O capital de R$ 100000,00 colocados a juros compostos capitalizados mensalmente em 8 meses, elevou-se no final do prazo para R$ 148000,00.Qual foi a taxa de juros?

VP = 100000
VP = 148000
N = 8
I = ??

VF = VP (1 + i) ^n
148000 = 100000 (1 + i) ^8
148000/100000 = (1 + i) ^8 (Estava multiplicando, passa divindindo)
1,48 = (1+i) ^8
1,48 ^ 1/8 = 1 + i
1,050226 – 1 = i
i = 0,050226
i = 5,0226%

** LEMBRE SEMPRE **
  • O mês comercial tem 30 dias.
  • O ano comercial tem 360 dias.

SO - Kernel

O Kernel é o núcleo do Sistema Operacional, a camada de software que está mais próxima do hardware e é responsável por gerenciar os componentes do sistema computacional como um todo. O Kernel é um lugar ao qual o usuário não tem acesso direto, podendo acessar suas rotinas apenas através de chamadas de sistema.

System Call (Chamadas de Sistema)
System Call é o mecanismo usado pelo programa para requisitar um serviço do Kernel do Sistema Operacional.
No momento em que um chamada de sistema é invocada, o programa que fez a chamada é interrompido e as informações necessárias para o funcionamento dele são salvas. Então, o processador executa o código de maior privilégio que determina que serviço foi requisitado. Quando a chamada termina o programa retoma sua execução por meio do estado que foi salvo anteriormente.
Quando uma operação de E/S, acesso ao disco e rede são executadas, o programa pode não voltar a ser executado imediatamente após o termino da chamada, sendo que é retirado da fila de execução ate que essas operações terminem.

Kernel Monolítico
Os primeiros Kernels eram monolíticos, ou seja, possuíam apenas um arquivo, um “executavão¹” que rodava as rotinas.
Há quem diga que desenvolver um sistema operacional com Kernel monolítico é mais vantajoso pelo fato de que coordenar as informações entre partes de código é muito mais complexo e menos confiável do que criar apenas um arquivo, o que, supostamente, compensaria a dificuldade de implementação do mesmo.

¹neologismo criado em sala, entenda como apenas um executável.

segunda-feira, 16 de março de 2009

SO - Trabalho (17/03/09)

Valor: ?
Data de Entrega: 17/03/09 (Terça-feira);
Formato: Não especificado;

Falar sobre o primeiro processador INTEL que ofereceu suporte à Interrupções e permitiu aos SO implementarem Time-Sharing.

SO - Controladora e Dispositivos E/S

Joãozinho decidiu, finalmente, comprar um computador pois ele está louco para revelar suas fotos sem ter que sair de casa. Chegando na loja, resolve comprar uma máquina da marca "T" do modelo "F", TENDÊNCIA TOTAL! A mais nova novidade (redundância, quem curte?), tecnologia de última geração. Pena que ele gastou muito dinheiro com o computador e não pôde (A reforma ortográfica tira o acento disso também?) comprar uma impressora junto.
Pois bem, ele foi forte e economizou todo seu salário durante 3 meses para comprar sua tão esperada impressora e, então, imprimir suas fotos com alta qualidade e eficiência.
Novamente na loja, ele escolhe e compra a melhor impressora que encontrou, a famosa impressora "X", mas, chegando em casa ela não funciona. O que será que aconteceu? Joãozinho, sem exitar, liga para a assistência técnica da "X" que chega em 5 minutos na sua residência. UAU! Joãozinho preferia que eles nunca tivessem chegado, pois a impressora "X" não é compatível com seu computador "T", o que levou Joãozinho a realizar a troca do produto por uma impressora "T" da série "F", a única compatível com seu pc.
A parte triste nessa história, é que a "T", série "F", imprime apenas em preto e branco e Joãozinho saiu frustrado por falta de compatibilidade e pela limitação a que foi submetido.


Difícil de acreditar, não? Pois era mais ou menos assim que as coisas aconteciam antigamente; isso porque os dispositivos de E/S eram ligados diretamente no barramento, eles faziam parte do processador.

Mas as coisas melhoraram com a chegada da Controladora. O hardware passou a ser ligado a essa controladora que servia como um comunicador programa/dispositivo.
O programa solicita ao Controlador o que necessita e essa, por sua vez, faz o pedido ao dispositivo que executa o que foi solicitado.

As Controladoras podem trabalhar de duas formas distintas, eis:

Busy-Wait: A verificação para saber se a instrução de E/S já foi concluída é feita o tempo todo, ou seja, o processador é ocupado à toa. Não permite multiprogramação.

Spooling: É verificado de tempos em tempos se a instrução de E/S já foi concluída. Permite o uso de multiprogramação pois congela a aplicação quando a instrução E/S é executada.

SO - Interrupções e Execeções.

Durante a execução de um programa alguma coisa pode acontecer ocasionando a intervenção do SO no programa em questão. Essa intervenção pode ser chamada de Interrupção ou Exceção, dependendo do evento que gerou tal intervenção.
Quando isso acontece o fluxo de execução do programa é desviado para uma rotina de tratamento, para pegar as instruções da interrupção ou da exceção.

Interrupção

Uma interrupção não pode ser prevista (ASSÍNCRONA) e é gerada pelo SO ou por algum dispositivo. Quando um dispositivo solicita a interrupção, a CPU para (sem acento, quem mais odeia a reforma ortográfica?) de fazer o que estava fazendo para, então, atender o dispositivo que pediu a interrupção e passa a executar outra coisa.


Exceção

As exceções, ao contrário das interrupções, é previsível (SÍNCRONA) e ocorrem sempre num programa em execução. Executando um programa com certos valores e isso gerar uma exceção, quando o programa for executado novamente, usando os mesmo valores, gerará novamente a mesma exceção.
A exceção pode ser tratada tanto pelo sistema quando pelo programador e tem por principal objetivo o não travamento do sistema. Exemplo de exceção? Aqui:

Imagine um algoritmo que efetua operações aritméticas básicas. Quando o usuário tentar dividir determinado número por 0 (zero), o que vai acontecer? Será gerada um exceção, pois divisão por zero não existe, oras.

SO - Sistemas Multitarefas (A verdade)

Os sistemas multitarefas, na verdade, não executam todos os processos simultâneamente; são criadas fatias de tempo para execução de cada processo, quando a fatia de tempo de determinado processo/aplicação acabam, então, o SO escolhe o próximo processo a ser executado. Como essas fatias de tempo são muito pequenas, a impressão que fica é de que todos os processos estão trabalhando simultâneamente.

A execução de MUITOS processos "simultâneamente" pode causar um overhead, piorando o desempenho da máquina, sendo assim, a multiprogramação acaba não valendo a pena.