SlideShare uma empresa Scribd logo
Sistemas de Computação

           Revisão 2




                            Duílio Andrade
                 duilio.andrade@unifacs.br
1) SISTEMAS OPERACIONAIS

2) LINGUAGENS DE PROGRAMAÇÃO

3) ARMAZENAMENTO E RECUPERAÇÃO DE DADOS

4) SEGURANÇA DA INFORMAÇÃO
Sistemas Operacionais
 É um conjunto de programas que
  gerenciam os softwares aplicativos
 Cria uma camada de abstração entre o
  aplicativo e o hardware
 Ele está em contato direto com a
  máquina e por isso é tão importante em
  um ambiente computacional
Sistemas Operacionais
   Podem ser classificados de 3 formas:
    ◦ Pelo tipo de núcleo do sistema
    ◦ Como gerenciam os programas em execução
    ◦ Pelo número de usuários que podem operá-lo
      simultaneamente
Sistemas Operacionais -
Classificação
   Quanto ao tipo do núcleo
    ◦ Podem ser: monolíticos ou micro Kernel
   Quanto ao gerenciamento dos programas
    em execução
    ◦ Podem ser: monotarefa, multitarefa
      cooperativa ou multitarefa preemptiva
Sistemas Operacionais - Módulos
 Gerenciamento de Processos
 Gerenciamento de Memória
 Gerenciamento de Arquivos
 Gerenciamento de Entrada/Saída
Gerenciamento de Processos
 Módulo responsável por gerenciar os
  programas em execução.
 Escalona (ou seja, define uma fatia de
  tempo do processador) para as tarefas do
  usuário (essencialmente, aplicativos e
  funções dos aplicativos que são
  executados pelo usuário)
Gerenciamento de Processos
   Cada processo deve conter as seguintes
    informações:
    ◦ Identificador
    ◦ Informações sobre localidade de memória em
      que se encontra seu conteúdo
    ◦ Prioridade de processo
    ◦ Estado interno ao SO
Gerenciamento de Processos
   Estados gerais de um processo
Gerenciamento de Memória
 Módulo que gerencia a memória de forma
  mais adequada possível, é responsável por
  alocar e liberar espaços na memória para
  os processos em execução e fazer o
  chaveamento swapping entre a memória
  principal e o disco
 Para um programa ser executado, precisa
  estar em memória
Gerenciamento de Memória
   Princípio da localidade de referência
    ◦ Princípio da localidade espacial: uma vez
      acessados, a probabilidade de acessá-los
      novamente é muito grande
    ◦ Princípio da localidade temporal: a
      probabilidade de se acessar conteúdos à
      volta(próximos) de um conteúdo já acessado
      é alta
Gerenciamento de Memória
   Existem basicamente dois tipos de
    gerenciadores de memória:
    ◦ com paginação: utilizam o princípio da
      localidade de referência para fazer o
      chaveamento das informações entre o disco e
      a memória
    ◦ Sem paginação: não fazem gerenciamento de
      informações
Gerenciamento de Arquivos
   Módulo responsável por manipular
    arquivos
    ◦ Possibilidade de armazenar e recuperar uma grande
      quantidade de informação
    ◦ A informação gerada por um aplicativo ou processo
      deve continuar a existir após a finalização desse
      processo
    ◦ Múltiplos aplicativos ou processos podem acessar a
      mesma informação de forma concorrente
   Gerenciador de arquivos, chamadas do
    sistema (System Calls)
Gerenciamento de Arquivos
   Existem duas camadas:
    ◦ Camada de alto nível: interface com o usuário
      cujas tarefas de visualização, manutenção e
      apagamento são realizadas pelo usuário
    ◦ Camada de baixo nível: define como os
      arquivos são armazenados fisicamente, como
      os arquivos são referenciados; além disso, é
      responsável também por converter os
      comandos de interface para os comandos de
      system calls
Gerenciamento de Entrada/Saída
 Também pode ser chamado de
  Gerenciador de Dispositivos
 Camadas do gerenciador de dispositivos
Gerenciamento de Entrada/Saída
   Drivers
    ◦ Módulos que são acoplados ao SO e
      possibilitam fazer uma ponte entre o SO e o
      dispositivo
   Camadas de serviços mais padronizados e
    genéricos
    ◦ Software do usuário, Software de E/S, Drivers
   Camadas de serviços mais específicos
    ◦ Manipuladores de Interrupção, Hardware
Linguagens de Programação
 Uma linguagem de programação possui
  uma estrutura própria que permite ao
  usuário se comunicar com o computador
 Cada linguagem de programação possui
  dois tipos de regras:
    ◦ Sintáticas - refere-se à formação das palavras, ou
     seja, quais as palavras (no caso de linguagens de
     programação, chamamos essas de tokens) que podem
     ser utilizadas
    ◦ Semânticas - refere-se às regras de formação de
     frases, ou seja, como devo agrupar cada token para
     formar uma sentença lógica
Linguagens de Programação
   Etapas de um processo de criação de um
    programa
Linguagens de Programação
   Etapas de um processo de criação de um
    programa
    ◦ Interpretação, o código-fonte de uma
      linguagem é traduzido à medida que ele
      é executado
    ◦ Compilação, traduz todo o código-fonte
      e transforma-o em um arquivo
      executável
Linguagens de Programação -
Classificação
 Quanto ao paradigma – as linguagens se
  diferenciam segundo a forma de abordar a sua
  sintaxe
 Quanto à estrutura de tipos – as linguagens são
  definidas como fracamente tipada, fortemente
  tipada ou dinamicamente tipada
 Quanto ao grau de abstração – as linguagens
  são definidas quanto se distanciam dos detalhes
  de hardware, podem ser, baixo nível, médio nível
  e alto nível
Linguagens de Programação -
Paradigmas
   Um paradigma de programação define, de
    maneira geral, como deve ser estruturada uma
    sintaxe de uma linguagem
    ◦ Programação estruturada – define que todos os
      programas podem ser escritos a partir de 3
      estruturas básicas: sequência, decisão e iteração
    ◦ Programação orientada a objetos – define as etapas
      de análise, modelagem e programação. Principais
      elementos:
      Classe, Método, Atributo, Objeto, Sobrecarga, Herança
    ◦ Programação funcional
    ◦ Programação Lógica
Linguagens de Programação -
Paradigmas
   Programação funcional
    ◦ Trata a programação como uma avaliação de
      funções matemáticas. Exemplos deste tipo de
      linguagem podem ser: R, Mathematica, Haskell,
      ML, etc.
   Programação Lógica
    ◦ É o tipo de programação que faz uso da lógica
      de primeira ordem. A linguagem mais
      conhecida é o Prolog. É muito utilizada no
      contexto da Inteligência Artificial
Linguagens de Programação –Tipos
   Tipo da variável, dependendo da linguagem é
    preciso definir o tipo da variável no momento
    da declaração, ou de acordo com o valor da
    atribuição, com isso as linguagens se definem
    em:
    ◦ Fracamente Tipada (ex. Smalltalk)
    ◦ Fortemente Tipada (ex. Java)
    ◦ Dinamicamente Tipada (ex.: Python)
Linguagens de Programação – Grau
de Abstração
 Quanto mais perto do hardware a
  estrutura de uma linguagem está próxima,
  menos abstrata ela será
 Assim, existem: linguagens de baixo nível
  (ex.: Assembly), linguagens de médio nível
  (ex.: C) e linguagens de alto nível (ex.:
  SQL)
Armazenamento e Recuperação de
Dados
 Dados, Informação e Conhecimento
 A tecnologia para gerenciar dados em um
  computador é denominada de Banco de
  Dados e a interface que nos permite
  gerenciar estes dados diretamente é
  denominada de Sistemas de
  Gerenciamento de Banco de Dados
Banco de Dados
 Um banco de dados (BD) se assemelha
  muito aos módulos gerenciadores de
  arquivos dos SO’s
 Os dados dentro de um BD são também
  organizados em arquivos
 Elementos gerais de um BD
    ◦ Tabela – estrutura lógica em que são armazenadas as
      informações
    ◦ Campos – atributos da tabela
    ◦ Registros – linhas da tabela
    ◦ Tipo – tipo do campo
Banco de Dados
   Modelos mais importantes em que os
    BD’s se baseiam:
    ◦ BD Relacional – Todos os dados estão
      armazenados logicamente em tabelas
    ◦ BD Orientado a Objetos – Os elementos são
      organizados como objetos (assim como no
      paradigma orientado a objetos)
Banco de Dados Relacional
   Elementos
    ◦ Campo, Tabela, Registros e Tipo
    ◦ Chave Primária - é um campo que define
      exclusivamente os registros de uma tabela. Em
      outras palavras, cada elemento deste campo
      deve ser único e não pode se repetir
    ◦ Chave Estrangeira - é um campo de uma
      tabela que possui um relacionamento com
      outro campo em outra tabela
Banco de Dados Relacional
 Para gerenciar os elementos é necessário
  uma linguagem específica que nos permite
  criar desde os elementos básicos(tabela,
  campos, chaves) até inserir, atualizar ou
  apagar registros no sistema
 Linguagem SQL – Structured Query
  Language ou Linguagem de Pesquisa
  Estruturada
Linguagem SQL
 Padrão de quase todos os SGBD’s
  relacionais no mercado
 Pode ser dividido em 3 grupos de
  comandos:
    ◦ DML (Data Manipulation Language)
    ◦ DDL (Data Definition Language)
    ◦ DCL (Data Control Language)
Linguagem SQL - DML
   Linguagem de Manipulação de Dados –
    provê comandos para manipulação dos
    registros em uma ou mais tabelas, possui
    as seguintes estruturas:
    ◦   SELECT
    ◦   INSERT
    ◦   UPDATE
    ◦   DELETE
Linguagem SQL - DDL
   Linguagem de Definição de Dados –
    provê comandos para gerenciamento e
    criação de tabelas e seus elementos.
    Possui os seguintes comandos:
    ◦ CREATE
    ◦ DROP
    ◦ ALTER
Linguagem SQL - DCL
   Linguagem de Controle de Dados – provê
    comandos para o controle dos aspectos
    de autorização de dados. Possui os
    seguintes comandos:
    ◦   GRANT
    ◦   REVOKE
    ◦   COMMIT
    ◦   ROLLBACK
DML - SELECT
 SELECT: comando utilizado para
  consulta de registros em uma ou mais
  tabelas. Possui a seguinte estrutura
 SELECT <campos> FROM <tabela>
  WHERE <condição>;
DML - INSERT
 INSERT: comando utilizado para inserir
  registros em uma tabela. Não devemos
  nos esquecer que as regras de chave
  primária e estrangeira deverão ser
  tratadas pelo SGBD, quando tentarmos
  executar este comando. Possui a seguinte
  estrutura
 INSERT INTO <tabela> (<campos>)
  VALUES (<valores>);
DML - DELETE
 DELETE: comando para apagar um ou
  mais registros. Também aqui as regras para
  chaves primárias e estrangeiras devem ser
  obedecidas. Possui a seguinte estrutura
 DELETE FROM <tabela> WHERE
  <condição>;
DML - UPDATE
 UPDATE: comando para atualizar um ou
  mais registros. A utilização deste comando
  também deve obedecer às regras de
  chave primária e chave estrangeira. Possui
  a seguinte estrutura
 UPDATE <tabela> SET <atribuições>
  WHERE <condições>;
Segurança da Informação
   Há 3 aspectos básicos em que se baseia a
    área de Segurança de Informação
    ◦ Confidencialidade – é a propriedade que limita o
      acesso a determinadas informações a pessoas
      autorizadas
    ◦ Integridade - é a propriedade pela qual um
      determinado conjunto de informações deverá manter
      suas características primárias, sem serem
      corrompidas de nenhuma forma
    ◦ Disponibilidade - é a propriedade pela qual a
      informação deve estar disponível sempre que seu
      proprietário ou pessoas autorizadas queiram acessá-la
Segurança da Informação
   Áreas
    ◦ Mecanismos
    ◦ Ameaças
    ◦ Níveis
    ◦ Políticas
Mecanismos de Segurança
   Controle Físico
    ◦ Ferramentas físicas que podem ser utilizadas
      para manter as informações confidenciais,
      íntegras e disponíveis
    ◦ O controle físico pode ser utilizado através
      de: trancas, portas blindadas, mecanismos
      contra invasão humana ou contra fogo,
      enchente, etc
Mecanismos de Segurança
   Controle Lógico
    ◦ Softwares aplicativos ou até mesmo circuitos
      eletrônicos específicos, especializados em
      manter as informações livres de intrusos
      Criptografia - mecanismo para esconder a
       informação
      Assinatura Digital - mecanismo para garantir a
       integridade da informação
      Controle de Acesso
      Honeypot – servidor falso como alvo
Ameaças à Segurança
   Perfis
    ◦ Hackers – são indivíduos que podem tanto violar
      sistemas alheios como também ajudar a encontrar
      falhas de segurança para que sistemas de informação
      possam ser protegidos.
    ◦ Crackers – são indivíduos que essencialmente têm
      como objetivo quebrar (cracker) um sistema de
      segurança de forma ilegal e antiética.
    ◦ Phreakers – são crackers especializados em telefonia
      móvel ou fixa
Ameaças à Segurança
   Programas
    ◦ Vírus – são programas especializados em
      corromper a integridade lógica de um sistema
      computacional a fim de causar danos nos
      dados armazenados.
    ◦ Trojans – também chamados de “Cavalo de
      Tróia”, são softwares especializados em abrir
      acessos em um sistema com o objetivo de
      pessoas não especializadas roubarem
      informações confidenciais
Níveis de Segurança
   Físico
    ◦ Ameaças físicas: incêndios, desabamentos,
      relâmpagos, alagamentos e acesso indevido de
      pessoas
   Lógico
    ◦ Ameaças lógicas: vírus e trojans
    ◦ Definir políticas de segurança para evitar
      tanto ataques quanto perdas lógicas de
      informações
Políticas de Segurança
   Critérios
    ◦ Disponibilidade – dados críticos devem estar sempre
      disponíveis
    ◦ Utilização – os sistemas devem cumprir sempre seus
      objetivos
    ◦ Integridade – os sistemas devem estar sempre em
      condições de uso
    ◦ Autenticidade – os sistemas devem poder distinguir
      um usuário autorizado de outro não-autorizado
    ◦ Confidencialidade – somente pessoas autorizadas
      devem acessar informações internas

Mais conteúdo relacionado

PDF
1 introdução - sistemas operativos
PDF
7 – mecanismos de gestão de memória
PDF
Aula 3 - Software
PDF
2 organização do sistema operativo - sistemas operativos
PPTX
IT Services for Universities and Colleges
PDF
Lamina carla valles1
PDF
DOCX
Taller de tecnica didactica
1 introdução - sistemas operativos
7 – mecanismos de gestão de memória
Aula 3 - Software
2 organização do sistema operativo - sistemas operativos
IT Services for Universities and Colleges
Lamina carla valles1
Taller de tecnica didactica

Semelhante a Sistema Computacao Revisao 2 (20)

PDF
Linguagens de programação 03-12-09
PDF
Linguagens de programação 03-12-09
PPT
Técnicas_Implementação
PDF
Linguagen..
PDF
Linguagens de programação
PPTX
Linguagem da programação
PPTX
Linguagem da programação
PPTX
Linguagens de Programação
PPTX
Linguágens de programação
PDF
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
POTX
LP003 - AULA 2.potx
POTX
LP002 - AULA 1.potx
PPT
software de sistemas informatico de sistemas
PDF
2-Compreender os principais conceitos de desenvolvimento.pdf
PDF
Linguagensdeprogramao 100611235520-phpapp01
PDF
Cap02
PDF
Cap02
PDF
Cap02
PPT
Int. sistemas de informação iii
PDF
Programação 1
Linguagens de programação 03-12-09
Linguagens de programação 03-12-09
Técnicas_Implementação
Linguagen..
Linguagens de programação
Linguagem da programação
Linguagem da programação
Linguagens de Programação
Linguágens de programação
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
LP003 - AULA 2.potx
LP002 - AULA 1.potx
software de sistemas informatico de sistemas
2-Compreender os principais conceitos de desenvolvimento.pdf
Linguagensdeprogramao 100611235520-phpapp01
Cap02
Cap02
Cap02
Int. sistemas de informação iii
Programação 1
Anúncio

Mais de Duílio Andrade (6)

PDF
Apresentacao_banca_2015_v2
DOC
Estatisticas - KartAmigos
PPT
Interface Homem Computador
PPT
Sistema Computacao Revisao 1
PPT
Introducao Computacao Slide 2
PPT
Introducao Computacao Slide 1
Apresentacao_banca_2015_v2
Estatisticas - KartAmigos
Interface Homem Computador
Sistema Computacao Revisao 1
Introducao Computacao Slide 2
Introducao Computacao Slide 1
Anúncio

Último (20)

PPTX
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
PDF
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
PPTX
Lição 8 EBD.pptxtudopossonaquelequemimfortalece
PPTX
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
PPTX
Filosofia Ocidental Antiga 2025 - versão atualizada
PDF
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
PDF
saeb_documentos_de_referencia_versao_1.0.pdf
PPTX
GUERRAFRIA.pptdddddddddddddddddddddddddx
PPTX
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
PDF
A provisão de jojuador (ramadã) islamismo
PPTX
MENDEL - Aula sobre Mendel - Genética EM
PDF
A Revolução Francesa de 1789 slides história
PDF
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
PPTX
HISTÓRIA DO BRASIL - anos de Democracia.pptx
PDF
O retorno a origem (islã Islamismo)
PPTX
Realismo e Naturalismo: Aluísio Azevedo.
PDF
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
PDF
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
PPTX
Aula 13 - Tópico Frasal - Argumentação.pptx
PPTX
INDÚSTRIA_ Histórico da industrialização.pptx
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
Lição 8 EBD.pptxtudopossonaquelequemimfortalece
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
Filosofia Ocidental Antiga 2025 - versão atualizada
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
saeb_documentos_de_referencia_versao_1.0.pdf
GUERRAFRIA.pptdddddddddddddddddddddddddx
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
A provisão de jojuador (ramadã) islamismo
MENDEL - Aula sobre Mendel - Genética EM
A Revolução Francesa de 1789 slides história
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
HISTÓRIA DO BRASIL - anos de Democracia.pptx
O retorno a origem (islã Islamismo)
Realismo e Naturalismo: Aluísio Azevedo.
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
Aula 13 - Tópico Frasal - Argumentação.pptx
INDÚSTRIA_ Histórico da industrialização.pptx

Sistema Computacao Revisao 2

  • 1. Sistemas de Computação Revisão 2 Duílio Andrade duilio.andrade@unifacs.br
  • 2. 1) SISTEMAS OPERACIONAIS 2) LINGUAGENS DE PROGRAMAÇÃO 3) ARMAZENAMENTO E RECUPERAÇÃO DE DADOS 4) SEGURANÇA DA INFORMAÇÃO
  • 3. Sistemas Operacionais  É um conjunto de programas que gerenciam os softwares aplicativos  Cria uma camada de abstração entre o aplicativo e o hardware  Ele está em contato direto com a máquina e por isso é tão importante em um ambiente computacional
  • 4. Sistemas Operacionais  Podem ser classificados de 3 formas: ◦ Pelo tipo de núcleo do sistema ◦ Como gerenciam os programas em execução ◦ Pelo número de usuários que podem operá-lo simultaneamente
  • 5. Sistemas Operacionais - Classificação  Quanto ao tipo do núcleo ◦ Podem ser: monolíticos ou micro Kernel  Quanto ao gerenciamento dos programas em execução ◦ Podem ser: monotarefa, multitarefa cooperativa ou multitarefa preemptiva
  • 6. Sistemas Operacionais - Módulos  Gerenciamento de Processos  Gerenciamento de Memória  Gerenciamento de Arquivos  Gerenciamento de Entrada/Saída
  • 7. Gerenciamento de Processos  Módulo responsável por gerenciar os programas em execução.  Escalona (ou seja, define uma fatia de tempo do processador) para as tarefas do usuário (essencialmente, aplicativos e funções dos aplicativos que são executados pelo usuário)
  • 8. Gerenciamento de Processos  Cada processo deve conter as seguintes informações: ◦ Identificador ◦ Informações sobre localidade de memória em que se encontra seu conteúdo ◦ Prioridade de processo ◦ Estado interno ao SO
  • 9. Gerenciamento de Processos  Estados gerais de um processo
  • 10. Gerenciamento de Memória  Módulo que gerencia a memória de forma mais adequada possível, é responsável por alocar e liberar espaços na memória para os processos em execução e fazer o chaveamento swapping entre a memória principal e o disco  Para um programa ser executado, precisa estar em memória
  • 11. Gerenciamento de Memória  Princípio da localidade de referência ◦ Princípio da localidade espacial: uma vez acessados, a probabilidade de acessá-los novamente é muito grande ◦ Princípio da localidade temporal: a probabilidade de se acessar conteúdos à volta(próximos) de um conteúdo já acessado é alta
  • 12. Gerenciamento de Memória  Existem basicamente dois tipos de gerenciadores de memória: ◦ com paginação: utilizam o princípio da localidade de referência para fazer o chaveamento das informações entre o disco e a memória ◦ Sem paginação: não fazem gerenciamento de informações
  • 13. Gerenciamento de Arquivos  Módulo responsável por manipular arquivos ◦ Possibilidade de armazenar e recuperar uma grande quantidade de informação ◦ A informação gerada por um aplicativo ou processo deve continuar a existir após a finalização desse processo ◦ Múltiplos aplicativos ou processos podem acessar a mesma informação de forma concorrente  Gerenciador de arquivos, chamadas do sistema (System Calls)
  • 14. Gerenciamento de Arquivos  Existem duas camadas: ◦ Camada de alto nível: interface com o usuário cujas tarefas de visualização, manutenção e apagamento são realizadas pelo usuário ◦ Camada de baixo nível: define como os arquivos são armazenados fisicamente, como os arquivos são referenciados; além disso, é responsável também por converter os comandos de interface para os comandos de system calls
  • 15. Gerenciamento de Entrada/Saída  Também pode ser chamado de Gerenciador de Dispositivos  Camadas do gerenciador de dispositivos
  • 16. Gerenciamento de Entrada/Saída  Drivers ◦ Módulos que são acoplados ao SO e possibilitam fazer uma ponte entre o SO e o dispositivo  Camadas de serviços mais padronizados e genéricos ◦ Software do usuário, Software de E/S, Drivers  Camadas de serviços mais específicos ◦ Manipuladores de Interrupção, Hardware
  • 17. Linguagens de Programação  Uma linguagem de programação possui uma estrutura própria que permite ao usuário se comunicar com o computador  Cada linguagem de programação possui dois tipos de regras: ◦ Sintáticas - refere-se à formação das palavras, ou seja, quais as palavras (no caso de linguagens de programação, chamamos essas de tokens) que podem ser utilizadas ◦ Semânticas - refere-se às regras de formação de frases, ou seja, como devo agrupar cada token para formar uma sentença lógica
  • 18. Linguagens de Programação  Etapas de um processo de criação de um programa
  • 19. Linguagens de Programação  Etapas de um processo de criação de um programa ◦ Interpretação, o código-fonte de uma linguagem é traduzido à medida que ele é executado ◦ Compilação, traduz todo o código-fonte e transforma-o em um arquivo executável
  • 20. Linguagens de Programação - Classificação  Quanto ao paradigma – as linguagens se diferenciam segundo a forma de abordar a sua sintaxe  Quanto à estrutura de tipos – as linguagens são definidas como fracamente tipada, fortemente tipada ou dinamicamente tipada  Quanto ao grau de abstração – as linguagens são definidas quanto se distanciam dos detalhes de hardware, podem ser, baixo nível, médio nível e alto nível
  • 21. Linguagens de Programação - Paradigmas  Um paradigma de programação define, de maneira geral, como deve ser estruturada uma sintaxe de uma linguagem ◦ Programação estruturada – define que todos os programas podem ser escritos a partir de 3 estruturas básicas: sequência, decisão e iteração ◦ Programação orientada a objetos – define as etapas de análise, modelagem e programação. Principais elementos:  Classe, Método, Atributo, Objeto, Sobrecarga, Herança ◦ Programação funcional ◦ Programação Lógica
  • 22. Linguagens de Programação - Paradigmas  Programação funcional ◦ Trata a programação como uma avaliação de funções matemáticas. Exemplos deste tipo de linguagem podem ser: R, Mathematica, Haskell, ML, etc.  Programação Lógica ◦ É o tipo de programação que faz uso da lógica de primeira ordem. A linguagem mais conhecida é o Prolog. É muito utilizada no contexto da Inteligência Artificial
  • 23. Linguagens de Programação –Tipos  Tipo da variável, dependendo da linguagem é preciso definir o tipo da variável no momento da declaração, ou de acordo com o valor da atribuição, com isso as linguagens se definem em: ◦ Fracamente Tipada (ex. Smalltalk) ◦ Fortemente Tipada (ex. Java) ◦ Dinamicamente Tipada (ex.: Python)
  • 24. Linguagens de Programação – Grau de Abstração  Quanto mais perto do hardware a estrutura de uma linguagem está próxima, menos abstrata ela será  Assim, existem: linguagens de baixo nível (ex.: Assembly), linguagens de médio nível (ex.: C) e linguagens de alto nível (ex.: SQL)
  • 25. Armazenamento e Recuperação de Dados  Dados, Informação e Conhecimento  A tecnologia para gerenciar dados em um computador é denominada de Banco de Dados e a interface que nos permite gerenciar estes dados diretamente é denominada de Sistemas de Gerenciamento de Banco de Dados
  • 26. Banco de Dados  Um banco de dados (BD) se assemelha muito aos módulos gerenciadores de arquivos dos SO’s  Os dados dentro de um BD são também organizados em arquivos  Elementos gerais de um BD ◦ Tabela – estrutura lógica em que são armazenadas as informações ◦ Campos – atributos da tabela ◦ Registros – linhas da tabela ◦ Tipo – tipo do campo
  • 27. Banco de Dados  Modelos mais importantes em que os BD’s se baseiam: ◦ BD Relacional – Todos os dados estão armazenados logicamente em tabelas ◦ BD Orientado a Objetos – Os elementos são organizados como objetos (assim como no paradigma orientado a objetos)
  • 28. Banco de Dados Relacional  Elementos ◦ Campo, Tabela, Registros e Tipo ◦ Chave Primária - é um campo que define exclusivamente os registros de uma tabela. Em outras palavras, cada elemento deste campo deve ser único e não pode se repetir ◦ Chave Estrangeira - é um campo de uma tabela que possui um relacionamento com outro campo em outra tabela
  • 29. Banco de Dados Relacional  Para gerenciar os elementos é necessário uma linguagem específica que nos permite criar desde os elementos básicos(tabela, campos, chaves) até inserir, atualizar ou apagar registros no sistema  Linguagem SQL – Structured Query Language ou Linguagem de Pesquisa Estruturada
  • 30. Linguagem SQL  Padrão de quase todos os SGBD’s relacionais no mercado  Pode ser dividido em 3 grupos de comandos: ◦ DML (Data Manipulation Language) ◦ DDL (Data Definition Language) ◦ DCL (Data Control Language)
  • 31. Linguagem SQL - DML  Linguagem de Manipulação de Dados – provê comandos para manipulação dos registros em uma ou mais tabelas, possui as seguintes estruturas: ◦ SELECT ◦ INSERT ◦ UPDATE ◦ DELETE
  • 32. Linguagem SQL - DDL  Linguagem de Definição de Dados – provê comandos para gerenciamento e criação de tabelas e seus elementos. Possui os seguintes comandos: ◦ CREATE ◦ DROP ◦ ALTER
  • 33. Linguagem SQL - DCL  Linguagem de Controle de Dados – provê comandos para o controle dos aspectos de autorização de dados. Possui os seguintes comandos: ◦ GRANT ◦ REVOKE ◦ COMMIT ◦ ROLLBACK
  • 34. DML - SELECT  SELECT: comando utilizado para consulta de registros em uma ou mais tabelas. Possui a seguinte estrutura  SELECT <campos> FROM <tabela> WHERE <condição>;
  • 35. DML - INSERT  INSERT: comando utilizado para inserir registros em uma tabela. Não devemos nos esquecer que as regras de chave primária e estrangeira deverão ser tratadas pelo SGBD, quando tentarmos executar este comando. Possui a seguinte estrutura  INSERT INTO <tabela> (<campos>) VALUES (<valores>);
  • 36. DML - DELETE  DELETE: comando para apagar um ou mais registros. Também aqui as regras para chaves primárias e estrangeiras devem ser obedecidas. Possui a seguinte estrutura  DELETE FROM <tabela> WHERE <condição>;
  • 37. DML - UPDATE  UPDATE: comando para atualizar um ou mais registros. A utilização deste comando também deve obedecer às regras de chave primária e chave estrangeira. Possui a seguinte estrutura  UPDATE <tabela> SET <atribuições> WHERE <condições>;
  • 38. Segurança da Informação  Há 3 aspectos básicos em que se baseia a área de Segurança de Informação ◦ Confidencialidade – é a propriedade que limita o acesso a determinadas informações a pessoas autorizadas ◦ Integridade - é a propriedade pela qual um determinado conjunto de informações deverá manter suas características primárias, sem serem corrompidas de nenhuma forma ◦ Disponibilidade - é a propriedade pela qual a informação deve estar disponível sempre que seu proprietário ou pessoas autorizadas queiram acessá-la
  • 39. Segurança da Informação  Áreas ◦ Mecanismos ◦ Ameaças ◦ Níveis ◦ Políticas
  • 40. Mecanismos de Segurança  Controle Físico ◦ Ferramentas físicas que podem ser utilizadas para manter as informações confidenciais, íntegras e disponíveis ◦ O controle físico pode ser utilizado através de: trancas, portas blindadas, mecanismos contra invasão humana ou contra fogo, enchente, etc
  • 41. Mecanismos de Segurança  Controle Lógico ◦ Softwares aplicativos ou até mesmo circuitos eletrônicos específicos, especializados em manter as informações livres de intrusos  Criptografia - mecanismo para esconder a informação  Assinatura Digital - mecanismo para garantir a integridade da informação  Controle de Acesso  Honeypot – servidor falso como alvo
  • 42. Ameaças à Segurança  Perfis ◦ Hackers – são indivíduos que podem tanto violar sistemas alheios como também ajudar a encontrar falhas de segurança para que sistemas de informação possam ser protegidos. ◦ Crackers – são indivíduos que essencialmente têm como objetivo quebrar (cracker) um sistema de segurança de forma ilegal e antiética. ◦ Phreakers – são crackers especializados em telefonia móvel ou fixa
  • 43. Ameaças à Segurança  Programas ◦ Vírus – são programas especializados em corromper a integridade lógica de um sistema computacional a fim de causar danos nos dados armazenados. ◦ Trojans – também chamados de “Cavalo de Tróia”, são softwares especializados em abrir acessos em um sistema com o objetivo de pessoas não especializadas roubarem informações confidenciais
  • 44. Níveis de Segurança  Físico ◦ Ameaças físicas: incêndios, desabamentos, relâmpagos, alagamentos e acesso indevido de pessoas  Lógico ◦ Ameaças lógicas: vírus e trojans ◦ Definir políticas de segurança para evitar tanto ataques quanto perdas lógicas de informações
  • 45. Políticas de Segurança  Critérios ◦ Disponibilidade – dados críticos devem estar sempre disponíveis ◦ Utilização – os sistemas devem cumprir sempre seus objetivos ◦ Integridade – os sistemas devem estar sempre em condições de uso ◦ Autenticidade – os sistemas devem poder distinguir um usuário autorizado de outro não-autorizado ◦ Confidencialidade – somente pessoas autorizadas devem acessar informações internas