Posts Tagged "sistemas operacionais"

[SISTEMAS OPERACIONAIS] Lista de Exercícios

A lista de Exercícios 1 está disponível para download neste link.

Data de entrega: até o dia 21 de março de 2017, por e-mail.

 

Então, qual o Sistema Operacional?

windows-10-logo Tux Apple_2003_logo
Na sua opinião, quanto você é bom utilizando um computador? Comum Avançado Só tenho pelo status, e gosto de quebrar a cabeça com coisas básicas.
O quê você pretende fazer com o computador? Trabalho, jogos, multimídia e Internet. Gosto de brincar com a morte e também quero dominar o mundo. Eventualmente Trabalho e Internet. Facebook!!!!!!
O quanto importante é a parte de customização para você?  Um pouco, mas eu prefiro obter tudo já pronto.  Gosto das coisas frias e sem mudanças, igual a meu coração.  Eu posso mudar o papel de parede de minha área de trabalho?
 Detesto perguntar, mas quanto de dinheiro você está disposto a gastar?  Um pouco, mas nada que uma versão pirata não resolva.  Não me preocupo com isso, dinheiro é coisa de capitalista…  Quem se importa? Papai que irá pagar ou quando for pelo CSF só para mostrar aos meus colegas!
 Você é um jogador de computador?  SIM! Steam é o que importa!  Não… Mas eu tento fazer algo com wine….  Cara! Você viu minha fazenda em FARMVILLE??
 Você tem amigos? Eles gostam de computador como você?  Sim. Mas apenas uns 5 que sempre falo pelo Skype.  SIM! Tenho vários espalhados no mundo, olhe o meu GIT!  Tenho diversos amigos hipisters! Inclusive no FBI!
 Você tem namorado (a)?  Sim ela é linda! Conheci ela em comunidades da Web.  Prefiro não opinar…  Garotas (Meninos)!!! Que nojo….
 Você tem vida sexual ativa?  Sim, Não… Talvez… Depende do que estou fazendo…  Prefiro não opinar…  Hoje tem Rave!!!!
 Sinto cheiro de coisa estranha perto de você… é esperma?  Essa toalha debaixo de minha cama não é minha! Nem as cuecas sujas!  Não tenho o plugin do flash em meu computador…. 🙁  Desculpe…. esqueci de enxaguar a boca ao sair de casa hoje… ;*

Calendário das avaliações de 2016 – 1

calendario2

Arquitetura de Computadores

1ª avaliação – 29/04/2016

2ª avaliação – 08/07/2016

Final – 20/07/2016

Sistemas Embarcados

1ª avaliação – 02/05/2016

2ª avaliação – 11/07/2016

Final – 18/07/2016

Sistemas Operacionais

1ª avaliação – 02/05/2016

2ª avaliação – 11/07/2016

Final – 18/07/2016

TCC II

1ª avaliação – 29/04/2016

2ª avaliação – 08/07/2016

Final – 19/07/2016

Android no Netbook da Infoway

Mais um teste com os equipamentos aqui do IFPE. Dessa vez colocamos o Android no netbook da Infoway.

Android para plataformas x86

Fonte: Betanews

Intel e Google anunciaram na terça-feira que as futuras versões do Android irão oferecer suporte para a família de processadores Intel Atom, o que significa que o Android vai oficialmente sair do ARM, para também ter suporte ao x86.

O conjunto de instruções x86 tem sido historicamente usado apenas em computadores que executam sistemas operacionais de propósito geral, e o conjunto reduzido de instruções ARM tem sido usado em dispositivos que executam sistemas de tempo real ou dispositivos móveis.

Oficialmente, o Android tem sido até agora apenas em dispositivos baseados em ARM, mas está disponível no meio underground em dispositivos x86 por mais de três anos no site Android-x86.

Lista de Exercícios 2 – Sistemas Operacionais

Turma de SO I. Está disponível nesse link a lista de exercícios 2 para ser entregue no dia 05 de setembro. Não aceitarei relatórios entregues fora desse prazo! Também procurem bom senso na resolução das questões.

Criar serviço de um executável no Windows 2003

Dois alunos hoje pela manhã me perguntou como criar um serviço no Windows para que este fosse inicializado pelo sistema no Windows 2003. Me lembrei da época do Windows 98/NT, que usávamos o antigo autoexec.bat e config.sys para executar tais tarefas. Hoje as coisas estão mais fáceis, inclusive com as ferramentas que os atuais SO disponibilizam aos usuários.

Se fosse usar o Linux poderia colocar o programa no arquivo rc.local, mas nesse caso, que é Windows 2003 as coisas não são tão simples. Encontrei informações no site do clube do hardware sobre o assunto e vou reproduzir o conteúdo.

Primeiro vocês devem entender o que é um serviço;

  1. Um serviço, é um programa que é carregado antes mesmo do usuário se logar. (Na chave RUN, o programa só é executado quando um usuário se loga );
  2. Um serviço, fica rodando na máquina mesmo quando o usuário executar um Log Off;
  3. Um serviço não é um executável comum, para um programa poder rodar como um serviço, o mesmo deve ter o código próprio para isso;
  4. Não adianta tentar rodar um programa como serviço se o mesmo não foi feito para ser serviço;
  5. Se um programa for feito para ser serviço e nele ter um código que dispara um thread, no qual esse thread cria um processo de um programa qualquer, logo esse programa qualquer herdará as características de um serviço, logo se o serviço tiver o privilégio de “System Account”, o programa chamado pelo serviço, terá o privilégio de “System Account” também.

Na prática:

Nenhum usuário (sem privilégios) poderá matar o .exe que foi chamado pelo serviço. Se esse .exe for a calculadora do Windows por exemplo, a calculadora sempre estará em execução. Entendeu o poder?

Lembrando que um serviço tem várias chaves e valores setados no registro do windows, mas como foi citado antes, para um programa ser executado como serviço, o mesmo deve ser escrito para tal finalidade e você nem precisa se preocupar em ficar mexendo no registro, pois o próprio SCM (Service Control Manager) já faz isso.

Duas ferramentas da própria Microsoft, fazem isso: Applications as Services Utility (srvany.exe) e Service Installer (instsrv.exe). Essa ferramentas fazem parte do Windows Server 2003 Resource Kit Tools.

Esses dois utilitários são bem pequenos, menos de 40 KB em conjunto. Por outro lado, o Resource Kit Tools tem cerca de 12 MB.

Como exemplo de uso dos programas, vai um passo-a-passo de como se executar a Calculadora do Windows como serviço. Para executar outro programa, siga o modelo e faça as devidas alterações. Leia a ajuda do Resource Kit Tools referente a esses dois utilitários para ver mais opções.

1. Baixe e instale o Resource Kit Tools.

2. Abra a pasta onde o Resource Kit Tools foi instalado e copie os arquivos srvany.exe e instsrv.exe para uma pasta qualquer. Neste exemplo, os arquivo serão copiados para C:\Windows. Se quiser, pode desinstalar o Resource Kit Tools.

3. Abra uma janela do Prompt de comando e digite o comando abaixo:

C:\Windows\instsrv.exe Calculadora C:\Windows\srvany.exe

Calculadora é o nome que dei ao serviço. Pode usar o nome que quiser, com exceção (suponho) dos nomes dos serviços já existentes.

4. No Editor do registro (regedit.exe), abra a chave seguinte:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Calculadora

5. Crie uma nova chave de nome Parameters:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Calculadora\Parameters

6. Crie na chave acima um novo Valor de sequência de nome Application. Dê um duplo clique em Application e digite o seguinte no campo em branco:

C:\Windows\System32\Calc.exe

Pode fechar o Editor do registro.

7. Clique em Iniciar, selecione Painel de controle => Ferramentas administrativas e clique em Serviços ou, alternativamente, clique em Iniciar => Executar e digite services.msc.

8. Na janela dos Serviços, dê um duplo clique em Calculadora. Em Propriedades Calculadora, clique em Logon, marque a opção Permitir que o serviço interaja com a área de trabalho e clique em OK.

9. Reinicie o computador.

Se quiser remover o serviço criado, primeiro abra no Painel de controle a janela dos Serviços, localize o serviço criado e pare-o. Depois, digite o seguinte na linha de comando:

C:\Windows\instsrv.exe Calculadora remove

Apesar de na ajuda do Resource Kit Tools constar que o Applications as Services Utility funciona apenas no Windows Server 2003, ele funcionou também no Windows XP Home Edition.

Diferenças entre Sistemas Operacionais

Grato pela contribuição de Thyago Nepomuceno!

Projeto e Prova Final de Sistemas Operacionais II

Data do Projeto de Sistemas Operacionais II – 06/07/2010

Prova Final – 08/07/2010

Assunto: Tudo ministrado até agora

Avaliando desempenho de código com o Gprof

A otimização de tempo é um aspecto muito importante quando se trata do desenvolvimento de um projeto. E quando se refere a projetos na área de desenvolvimento de softwares existem algumas ferramentas que podem auxiliar no gerenciamento do tempo gasto no processamento do software. Entre elas podemos citar o Gprof (GNU Profiling). O Gprof é uma ferramenta que faz parte do GCC (GNU Compiler Collection), desenvolvida por Jay Fenlason, que serve para medir o tempo gastos pelas funções de um algoritmo, e exibi-las. Essa ferramenta também permite conhecer as funções presentes no código, o número de chamadas dentro de cada função e a porcentagem de tempo gasto em cada uma delas. A ferramenta pode ser usada nas linguagens C, C++, Fortran 77 e Pascal.

Como funciona?

Primeiramente é preciso compilar o programa, que esteja dentro das linguagens suportadas pelo Gprof, através do GCC, usando a opção -pg. Essa opção fará com que o programa gere o arquivo gmon.out depois que o código é executado, assim é possível utilizar o Gprof. Para utilizar a opção -pg durante a compilação deve-se digitar:

gcc nome_do_código_fonte -pg -o nome_do_arquivo_executável -lc

Após a compilação executa-se o programa usando ./nome_do_programa. É gerado o arquivo gnom.out no diretório, a partir daí as opções dos Gprof podem ser utilizadas.

Exemplo Aplicado

Antes de mais nada é bom configurar o Eclipse para compilar com a opção do Gprof, o que é bem simples. Para isso após a criação do projeto escolha propriedades do projeto, e marque a opção do -pg. Conforme figura a seguir.

Para testar as funcionalidades execute o código em C a seguir:

/*
* command.c
*
*  Created on: May 21, 2010
*      Author: Anderson Moreira
*      anderson( a )rtsystems.org
* Copyright (C) 2010 - Instituto Federal de Pernambuco
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#include <stdio.h>

int a(void) {
int i=0;
int g=0;
while (i++<100000){
g+=i;
}
return g;
}

int b(void) {
int i=0;
int g=0;
while (i++<400000){
g+=i;
}
return g;
}

int main(int argc, char** argv){
int interations;

if(argc != 2){
printf("Usage %s <No of Interations>\n",argv[0]);
} else {
interations = atoi(argv[1]);
}
printf("No of interations = %d\n", interations);

while(interations--){
a();
b();
}
return 0;
}

O algoritmo é composto por duas funções a e b, onde a função b vai executar um número de repetições 4 vezes maior do que a. Através disso é possível supor que a porcentagem de tempo gasto nas funções vai ter relação ao que se nota no número de repetições da função, ou seja, a porcentagem de tempo gasto na primeira função vai ser, aproximadamente, quatro vezes menor do que o tempo gasto na segunda.

Foi feita a análise utilizando a opção -p do Gprof, mostrando que a suposição estava correta. As funções foram rodadas 500 vezes. Foram utilizadas outras opções, para verificação de seus respectivos aspectos.

Opção -p:

Flat profile:Each sample counts as 0.01 seconds.
%   cumulative   self              self     total
time   seconds   seconds    calls  ms/call  ms/call  name
77.23      0.78     0.78      500     1.56     1.56  b
22.77      1.01     0.23      500     0.46     0.46  a

Opção -q:

Um ponto notável no Gprof, é que ele sempre envia as informações sobre os termos usados, o que cada um significa, o que facilita muito o entendimento.

Call graph (explanation follows)granularity: each sample hit covers 4 byte(s) for 0.99% of 1.01 seconds

index % time    self  children    called     name
<spontaneous>
[1]    100.0    0.00    1.01                 main [1]
0.78    0.00     500/500         b [2]
0.23    0.00     500/500         a [3]
———————————————–
0.78    0.00     500/500         main [1]
[2]     77.2    0.78    0.00     500         b [2]
———————————————–
0.23    0.00     500/500         main [1]
[3]     22.8    0.23    0.00     500         a [3]
———————————————–

This table describes the call tree of the program, and was sorted by
the total amount of time spent in each function and its children.

Quer brincar mais um pouco com as opções do Gprof? Aqui tem uma porrada de informações sobre as opções e exemplos.