1.04k likes | 1.29k Views
Genômica e Proteômica. Sistema Operacional, Linguagem de Programação Perl e Banco de Dados. ?. ?. ?. ?. Introdução. Sistemas operacionais, linguagem de programação e banco de dados: O que são ? Para que servem ? Precisamos entender como funcionam e / ou como os utilizamos ?.
E N D
Genômica e Proteômica Sistema Operacional, Linguagem de Programação Perl e Banco de Dados
? ? ? ? Introdução • Sistemas operacionais, linguagem de programação e banco de dados: • O que são ? • Para que servem ? • Precisamos entender como funcionam e / ou como os utilizamos ? LABINFO – LNCC / MCT
Sistema operacional • Introdução • Classificação dos sistemas operacionais • Estrutura do sistema operacional LABINFO – LNCC / MCT
Sistema operacional – introdução • Coleção de programas que controla a operação de um computador • Facilitar o acesso aos recursos do sistema • Compartilhar os recursos de forma organizada e protegida LABINFO – LNCC / MCT
Utilitários Aplicativos Sistema operacional Dispositivos físicos Sistema operacional – introdução LABINFO – LNCC / MCT
Sistema operacional – introdução • Organização genérica de um computador LABINFO – LNCC / MCT
Sistema operacional – classificação • Monoprogramáveis / monotarefa • Recursos são dedicados a execução de um único programa • Subutilização dos recursos • Implementação simples • Monousuário LABINFO – LNCC / MCT
Sistema operacional – classificação • Multiprogramáveis / multitarefa • Compartilhamento dos recursos entre diferentes programas • A CPU é utilizada por cada programa em intervalos de tempo (time sharing) • Implementação mais complexa • Monousuário ou multiusuário • Controle de entrada e saída • Níveis de proteção do sistema LABINFO – LNCC / MCT
Sistema operacional – classificação • Múltiplos processadores • Duas ou mais CPUs interligadas • CPUs executam programas diferentes ou o mesmo programa • Implementação complexa • Tipicamente multiusuário LABINFO – LNCC / MCT
Sistema operacional – estrutura • O núcleo do sistema deve realizar: • Criação e eliminação de processos • Tratamento de interrupções • Sincronização e comunicação entre processos • Escalonamento e controle de processos • Gerência de memória • Operações de entrada e saída • Gerência de dispositivos • Contabilização e segurança LABINFO – LNCC / MCT
Sistema operacional – processos • É o ambiente onde se executa um programa • O SO mantém informações sobre os processos: • Contexto de hardware • Contexto de software (identificação do processo e do usuário, quotas de recursos e privilégios) • Espaço de endereçamento (área da memória onde estão o código do programa e os dados utilizados LABINFO – LNCC / MCT
Sistema operacional – processos • Um processo assume diferentes estados • Execução: Quando o processo está sendo processado pela CPU • Pronto: Quando o processo está aguardando a CPU para ser processado • Espera: Quando aguarda algum evento externo ou por algum recurso para prosseguir o seu processamento LABINFO – LNCC / MCT
Sistema operacional – processos • Tipos: • CPU-bound Quando o processo passa a maior parte do tempo utilizando o processador • I/O-bound Quando o processo passa a maior parte do tempo no estado de espera, pois realiza um elevado número de operações de entrada e a saída LABINFO – LNCC / MCT
Sistema operacional – gerência de memória • Memória principal • É a área onde estão armazenados as instruções e o dados de um programa • Pode ser volátil ou não volátil • Memória secundária • É a área onde ficam armazenados, de forma perene, os programas e arquivos. É uma memória não volátil. LABINFO – LNCC / MCT
Sistema operacional – gerência de memória • Memória virtual Técnicas que, através do uso de partes da memória secundária, simulam a memória principal LABINFO – LNCC / MCT
Sistema operacional – entrada e saída • Realiza as funções que são comuns a todos os dispositivos • Aspectos específicos de cada dispositivo ficam a cargo dos respectivos drivers • Garante que os programas possam se comunicar com qualquer dispositivo conectado ao computador LABINFO – LNCC / MCT
Processos Independente do dispositivo Operações de E/S Subsistemas de E/S Device drivers Software Dependente do dispositivo Controladores Hardware Dispositivos Sistema operacional – entrada e saída LABINFO – LNCC / MCT
Sistema operacional – sistema de arquivos • Arquivo: Conjunto de informações logicamente relacionadas, podendo representar programas ou dados • O sistema de arquivos oferece um conjunto de chamadas ao sistema operacional que permitem a realização de operações de entrada e saída LABINFO – LNCC / MCT
Sistema operacional – sistema de arquivos • Atributos: São as informações de controle sobre o arquivo • Nome • Tamanho • Proteção (privilégios para usuário, grupo e outros) • Dono e o grupo • Data de criação e modificação LABINFO – LNCC / MCT
Sistema operacional – referências • Arquitetura de Sistemas Operacionais • Francis B. Machado e Luiz Paulo Maia. Livros Técnicos e Cientifícos Editora S.A. ISBN 85-216-1097-1 • Sistemas Operacionais Modernos • Andrew S. Tanenbaum Prentice Hall do Brasil ISBN 85-7054-059-0 LABINFO – LNCC / MCT
Linguagem • Linguagem É o uso da palavra articulada e escrita como meio de expressão e comunicação • Léxico Conjunto de palavras de uma língua • Sintaxe Estudo da disposição das palavras na frase e a das frases no discurso, bem como a relação lógica das frases entre si • Semântica O significado do discurso LABINFO – LNCC / MCT
Linguagem de programação • Conjunto de instruções e regras de composição e encadeamento, por meio do qual se expressam ações executáveis por um computador, seja diretamente, seja por meio de processo de compilação, interpretação ou montagem LABINFO – LNCC / MCT
Linguagem de programação • Montagem Conversão de um programa fonte, escrito em linguagem assembly, para o código de máquina • Compilação Conversão de um programa fonte em um programa executável • Interpretação Conversão, em tempo de execução, de um programa fonte em um programa executável LABINFO – LNCC / MCT
Perl • Interpretada • Alto nível • Suporte a várias plataformas Unix, Windows, Mac OS, BeOS ... • Modular e orientada o objetos LABINFO – LNCC / MCT
Perl • Tipo de dados • variáveis • Operadores • Declarações • de controle e de laço • Funções • Manipulação de arquivos e E/S • Expressões regulares LABINFO – LNCC / MCT
Perl – tipo de dados • Tipos de dados Define que tipo de valores podem ser utilizados no do programa • Valores escalares • Lista de valores • arrays • hashes LABINFO – LNCC / MCT
Perl – tipo de dados • Scalars • Armazena uma cadeia de caracteres ou números. Ex.: • Cadeia de caracteres “perl” • Números 2, 3.14 LABINFO – LNCC / MCT
Perl – tipo de dados • Array de scalars • É uma lista ordenada de scalars acessados através de um índice. Ex.: • array1 = (“c”, “c++”, “perl”) • array2 = (1, 3, 5, 7, 9) • O índice sempre começa com o número “0” • array1[0] = “c” • array2[3] = 7 LABINFO – LNCC / MCT
Perl – tipo de dados • Hash de scalars • É um conjunto não ordenados de pares chave/valor que podem ser acessados usando uma cadeia de caracteres, que é a chave, como índice, para recuperar um scalar que é o valor correspondente para esta chave. Ex.: • hash = (ling1 => “c”, ling2 => “perl”) LABINFO – LNCC / MCT
Perl – variáveis • Variável Porção de memória que contém um valor de determinado tipo de dado • Variável do tipo scalar • $x = “perl” • $y = 3.14 • $x = 1.41 • $y = “c++” • $y = 2 • $x = 10/$y $x = 5 • $y = “teste” • $x = 10/$y $x = ??? • Erro em tempo de execução (Illegal division by zero at line nnn) LABINFO – LNCC / MCT
Perl – variáveis • Variável do tipo array • @x = (“a”, “b”, “c”) • @y = (1, 2, 4) • $a = $x[0] • O conteúdo de $a é igual a “a” • $b = $y[1] • O conteúdo de $b é igual a 2 LABINFO – LNCC / MCT
Perl – variáveis • Variável do tipo hash • %tabela = (Jan => 31 , Fev => 28) • $par1 = $tabela{‘Jan’} • O conteúdo de $par1 é igual a 31 • $par2 = $tabela{‘Fev’} • O conteúdo de $par2 é igual a 28 LABINFO – LNCC / MCT
Perl – operadores • Operadores Símbolos que representam as operações possíveis sobre variáveis e arquivos. Podem ser classificados: • de acordo com o número de operandos • unários, binários, ternários • ou pelo tipo de operação • aritmética, lógica etc LABINFO – LNCC / MCT
Perl – operadores • Unário e aritmético • $a = 5 • ++$a incrementa $a e retorna 6 • $a = $a + 1 • $a++ retorna 6 e incrementa $a • --$a • $a-- LABINFO – LNCC / MCT
Perl – operadores • Binário e aritmético • $a + $b, adição • $a - $b, subtração • $a * $b, multiplicação • $a / $b, divisão • $a % $b, resto da divisão • $a ** $b, potenciação LABINFO – LNCC / MCT
Perl – operadores • Binário e string • $a . $b, concatenação • $a = “abc” • $b = “cde” • $c = $a . $b $c = “abccde” • $a x $b, multiplicação • $a = “abc” • $b = 3 • $c = $a x $b $c = “abcabcabc” • $b = “c” • $c = $a x $b $c = ??? LABINFO – LNCC / MCT
Perl – operadores • Atribuição • $a = 5 • $b = $a $b = 5 • $a *= 3 $a = 15 • $a .= $a $a = “1515” • $a x= 3 $a = “151515151515” • $a -= 1000000 $a=151514151515 LABINFO – LNCC / MCT
Perl – operadores • Lógicos • $a && $b (and) • falso e falso = falso • falso e verdadeiro = falso • verdadeiro e falso = falso • verdadeiro e verdadeiro = verdadeiro • $a || $b (or) • falso ou falso = falso • falso ou verdadeiro = verdadeiro • verdadeiro ou falso = verdadeiro • verdadeiro ou verdadeiro = verdadeiro • !$a (not) LABINFO – LNCC / MCT
Perl – operadores • Comparação (números) • == igual • != diferente • < menor • > maior • <= menor ou igual • >= maior ou igual • <=> comparação • retorna: 0 se igual, 1 se operando 1 é maior, -1 se operando 2 é maior LABINFO – LNCC / MCT
Perl – operadores • Comparação (string) • eq igual • ne diferente • lt menor • gt maior • le menor ou igual • ge maior ou igual • cmp comparação • retorna: 0 se igual, 1 se operando 1 é maior, -1 se operando 2 é maior LABINFO – LNCC / MCT
Perl – operadores • Teste de arquivos • -e existe • -r permissão de leitura • -w permissão de escrita • -d verifica se é diretório • -f verifica se é um arquivo • -T verifica se é um arquivo texto LABINFO – LNCC / MCT
Perl – declarações • Declarações representam ações que desejamos realizar. Podem ser: • Simples sempre finalizada com um “;” • print “teste”; • Composta um seqüência de declarações dentro de um mesmo bloco • {$a =5; $b = 6; $c = $a*$b; print $c} Obs.: a) Um bloco é delimitado por “{}” b) A última declaração de um bloco não precisa ser finalizada com “;” LABINFO – LNCC / MCT
Perl – declarações • Declarações de controle Declarações utilizadas para decidir a seqüência de comandos a ser executada pelo programa • ifAvalia se uma condição é verdadeira e executa um bloco de comandos • unless Avalia se uma condição é falsa e executa um bloco de comandos LABINFO – LNCC / MCT
interpolação de variáveis Perl – declarações if ($a == $b) { print “$a é igual a $b”; $a-- } else { print “$a é diferente de $b” } LABINFO – LNCC / MCT
Caractere especial de quebra de linha Perl – declarações unless ($a == $b) { print “$a é diferente que $b\n” } LABINFO – LNCC / MCT
if (($a == $b) && ($c == $d)) { print “Todos os números são iguais\n” } elsif ($a != $b) { print “$a é diferente de $b\n” } elsif ($c != $d) { print “$c é diferente de $d\n” } if ($a == 1) { print “$a é igual a 1\n” } elsif ($a == 2) { print “$a é igual a 2\n” } else { print “$a é diferente de 1\n”; print “e diferente de 2\n”; } Perl – declarações LABINFO – LNCC / MCT
Perl – declarações • Declarações de laço (loop) Utilizadas para decidir quantas vezes um bloco de comandos será executado • whileAvalia se a condição é verdadeira e executa um bloco de comandos • until Avalia se a condição é falsa e executa um bloco de comandos • No while e no until uma condição inicial é determinada antes do início do loop e é modificada dentro do bloco de comandos LABINFO – LNCC / MCT
Perl – declarações • for Avalia se a condição é verdadeira e executa um bloco de comandos. A condição inicial é determinada e modificada na declaração do for • foreach Executa um bloco de comandos para cada elemento de uma lista de scalars LABINFO – LNCC / MCT
caracter especial de tabulação Perl – declarações while ($i < 10) { print “$i\t”; $i++ } print “\n” LABINFO – LNCC / MCT
abertura de arquivo atribuindo-o para o filehandle “FILE” faz o loop enquanto não chegar ao final do arquivo variável predefinida, que recebe a linha corrente do arquivo Perl – declarações open FILE, “<teste.txt” if (-e “teste.txt”); while (<FILE>) { print “$_” } LABINFO – LNCC / MCT