Sistemas de Computação Revisão 2 Duílio Andrade [email_address]
1) SISTEMAS OPERACIONAIS 2) LINGUAGENS DE PROGRAMAÇÃO 3) ARMAZENAMENTO E RECUPERAÇÃO DE DADOS 4) SEGURANÇA DA INFORMAÇÃO
Sistemas Operacionais <ul><li>É um conjunto de programas que gerenciam os softwares aplicativos  </li></ul><ul><li>Cria um...
Sistemas Operacionais <ul><li>Podem ser classificados de 3 formas: </li></ul><ul><ul><li>Pelo tipo de núcleo do sistema </...
Sistemas Operacionais - Classificação <ul><li>Quanto ao tipo do núcleo </li></ul><ul><ul><li>Podem ser: monolíticos ou mic...
Sistemas Operacionais - Módulos <ul><li>Gerenciamento de Processos </li></ul><ul><li>Gerenciamento de Memória </li></ul><u...
Gerenciamento de Processos <ul><li>Módulo responsável por gerenciar os programas em execução.  </li></ul><ul><li>Escalona ...
Gerenciamento de Processos <ul><li>Cada processo deve conter as seguintes informações: </li></ul><ul><ul><li>Identificador...
Gerenciamento de Processos <ul><li>Estados gerais de um processo </li></ul>
Gerenciamento de Memória <ul><li>Módulo que gerencia a memória de forma mais adequada possível, é responsável por alocar e...
Gerenciamento de Memória <ul><li>Princípio da localidade de referência </li></ul><ul><ul><li>Princípio da localidade espac...
Gerenciamento de Memória <ul><li>Existem basicamente dois tipos de gerenciadores de memória: </li></ul><ul><ul><li>com pag...
Gerenciamento de Arquivos <ul><li>Módulo responsável por manipular arquivos </li></ul><ul><ul><li>Possibilidade de armazen...
Gerenciamento de Arquivos <ul><li>Existem duas camadas: </li></ul><ul><ul><li>Camada de alto nível: interface com o usuári...
Gerenciamento de Entrada/Saída <ul><li>Também pode ser chamado de Gerenciador de Dispositivos </li></ul><ul><li>Camadas do...
Gerenciamento de Entrada/Saída <ul><li>Drivers </li></ul><ul><ul><li>Módulos que são acoplados ao SO e possibilitam fazer ...
Linguagens de Programação <ul><li>Uma linguagem de programação possui uma estrutura própria que permite ao usuário se comu...
Linguagens de Programação <ul><li>Etapas de um processo de criação de um programa </li></ul>
Linguagens de Programação <ul><li>Etapas de um processo de criação de um programa </li></ul><ul><ul><li>Interpretação, o c...
Linguagens de Programação -Classificação <ul><li>Quanto ao paradigma – as linguagens se diferenciam segundo a forma de abo...
Linguagens de Programação -Paradigmas <ul><li>Um paradigma de programação define, de maneira geral, como deve ser estrutur...
Linguagens de Programação -Paradigmas <ul><li>Programação funcional  </li></ul><ul><ul><li>Trata a programação como uma av...
Linguagens de Programação –Tipos <ul><li>Tipo da variável,  dependendo da linguagem é preciso definir o tipo da variável n...
Linguagens de Programação – Grau de Abstração <ul><li>Quanto mais perto do hardware a estrutura de uma linguagem está próx...
Armazenamento e Recuperação de Dados <ul><li>Dados, Informação e Conhecimento </li></ul><ul><li>A tecnologia para gerencia...
Banco de Dados <ul><li>Um banco de dados (BD) se assemelha muito aos módulos gerenciadores de arquivos dos SO’s </li></ul>...
Banco de Dados <ul><li>Modelos mais importantes  em que os BD’s se baseiam: </li></ul><ul><ul><li>BD Relacional – Todos os...
Banco de Dados Relacional <ul><li>Elementos </li></ul><ul><ul><li>Campo,  Tabela,  Registros e Tipo </li></ul></ul><ul><ul...
Banco de Dados Relacional <ul><li>Para gerenciar os elementos é necessário uma linguagem específica que nos permite criar ...
Linguagem SQL <ul><li>Padrão de quase todos os SGBD’s relacionais no mercado </li></ul><ul><li>Pode ser dividido em 3 grup...
Linguagem SQL - DML <ul><li>Linguagem de Manipulação de Dados – provê comandos para manipulação dos registros em uma ou ma...
Linguagem SQL - DDL <ul><li>Linguagem de Definição de Dados – provê comandos para gerenciamento e criação de tabelas e seu...
Linguagem SQL - DCL <ul><li>Linguagem de Controle de Dados – provê comandos para o controle dos aspectos de autorização de...
DML - SELECT <ul><li>SELECT:  comando utilizado para consulta de registros em uma ou mais tabelas. Possui a seguinte estru...
DML - INSERT <ul><li>INSERT:  comando utilizado para inserir registros em uma tabela. Não devemos nos esquecer que as regr...
DML - DELETE <ul><li>DELETE:  comando para apagar um ou mais registros. Também aqui as regras para chaves primárias e estr...
DML - UPDATE <ul><li>UPDATE:  comando para atualizar um ou mais registros. A utilização deste comando também deve obedecer...
Segurança da Informação <ul><li>Há 3 aspectos básicos em que se baseia a área de Segurança de Informação </li></ul><ul><ul...
Segurança da Informação <ul><li>Áreas  </li></ul><ul><ul><li>Mecanismos </li></ul></ul><ul><ul><li>Ameaças </li></ul></ul>...
Mecanismos de Segurança <ul><li>Controle Físico </li></ul><ul><ul><li>Ferramentas físicas que podem ser utilizadas para ma...
Mecanismos de Segurança <ul><li>Controle Lógico </li></ul><ul><ul><li>Softwares aplicativos ou até mesmo circuitos eletrôn...
Ameaças à Segurança <ul><li>Perfis </li></ul><ul><ul><li>Hackers – são indivíduos que podem tanto violar sistemas alheios ...
Ameaças à Segurança <ul><li>Programas </li></ul><ul><ul><li>Vírus – são programas especializados em corromper a integridad...
Níveis de Segurança <ul><li>Físico </li></ul><ul><ul><li>Ameaças físicas: incêndios, desabamentos, relâmpagos, alagamentos...
Políticas de Segurança <ul><li>Critérios </li></ul><ul><ul><li>Disponibilidade – dados críticos devem estar sempre disponí...
Upcoming SlideShare
Loading in...5
×

Sistema Computacao Revisao 2

2,317

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,317
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Sistema Computacao Revisao 2

  1. 1. Sistemas de Computação Revisão 2 Duílio Andrade [email_address]
  2. 2. 1) SISTEMAS OPERACIONAIS 2) LINGUAGENS DE PROGRAMAÇÃO 3) ARMAZENAMENTO E RECUPERAÇÃO DE DADOS 4) SEGURANÇA DA INFORMAÇÃO
  3. 3. Sistemas Operacionais <ul><li>É um conjunto de programas que gerenciam os softwares aplicativos </li></ul><ul><li>Cria uma camada de abstração entre o aplicativo e o hardware </li></ul><ul><li>Ele está em contato direto com a máquina e por isso é tão importante em um ambiente computacional </li></ul>
  4. 4. Sistemas Operacionais <ul><li>Podem ser classificados de 3 formas: </li></ul><ul><ul><li>Pelo tipo de núcleo do sistema </li></ul></ul><ul><ul><li>Como gerenciam os programas em execução </li></ul></ul><ul><ul><li>Pelo número de usuários que podem operá-lo simultaneamente </li></ul></ul>
  5. 5. Sistemas Operacionais - Classificação <ul><li>Quanto ao tipo do núcleo </li></ul><ul><ul><li>Podem ser: monolíticos ou micro Kernel </li></ul></ul><ul><li>Quanto ao gerenciamento dos programas em execução </li></ul><ul><ul><li>Podem ser: monotarefa, multitarefa cooperativa ou multitarefa preemptiva </li></ul></ul>
  6. 6. Sistemas Operacionais - Módulos <ul><li>Gerenciamento de Processos </li></ul><ul><li>Gerenciamento de Memória </li></ul><ul><li>Gerenciamento de Arquivos </li></ul><ul><li>Gerenciamento de Entrada/Saída </li></ul>
  7. 7. Gerenciamento de Processos <ul><li>Módulo responsável por gerenciar os programas em execução. </li></ul><ul><li>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) </li></ul>
  8. 8. Gerenciamento de Processos <ul><li>Cada processo deve conter as seguintes informações: </li></ul><ul><ul><li>Identificador </li></ul></ul><ul><ul><li>Informações sobre localidade de memória em que se encontra seu conteúdo </li></ul></ul><ul><ul><li>Prioridade de processo </li></ul></ul><ul><ul><li>Estado interno ao SO </li></ul></ul>
  9. 9. Gerenciamento de Processos <ul><li>Estados gerais de um processo </li></ul>
  10. 10. Gerenciamento de Memória <ul><li>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 </li></ul><ul><li>Para um programa ser executado, precisa estar em memória </li></ul>
  11. 11. Gerenciamento de Memória <ul><li>Princípio da localidade de referência </li></ul><ul><ul><li>Princípio da localidade espacial: uma vez acessados, a probabilidade de acessá-los novamente é muito grande </li></ul></ul><ul><ul><li>Princípio da localidade temporal: a probabilidade de se acessar conteúdos à volta(próximos) de um conteúdo já acessado é alta </li></ul></ul>
  12. 12. Gerenciamento de Memória <ul><li>Existem basicamente dois tipos de gerenciadores de memória: </li></ul><ul><ul><li>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 </li></ul></ul><ul><ul><li>Sem paginação: não fazem gerenciamento de informações </li></ul></ul>
  13. 13. Gerenciamento de Arquivos <ul><li>Módulo responsável por manipular arquivos </li></ul><ul><ul><li>Possibilidade de armazenar e recuperar uma grande quantidade de informação </li></ul></ul><ul><ul><li>A informação gerada por um aplicativo ou processo deve continuar a existir após a finalização desse processo </li></ul></ul><ul><ul><li>Múltiplos aplicativos ou processos podem acessar a mesma informação de forma concorrente </li></ul></ul><ul><li>Gerenciador de arquivos, chamadas do sistema (System Calls) </li></ul>
  14. 14. Gerenciamento de Arquivos <ul><li>Existem duas camadas: </li></ul><ul><ul><li>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 </li></ul></ul><ul><ul><li>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 </li></ul></ul>
  15. 15. Gerenciamento de Entrada/Saída <ul><li>Também pode ser chamado de Gerenciador de Dispositivos </li></ul><ul><li>Camadas do gerenciador de dispositivos </li></ul>
  16. 16. Gerenciamento de Entrada/Saída <ul><li>Drivers </li></ul><ul><ul><li>Módulos que são acoplados ao SO e possibilitam fazer uma ponte entre o SO e o dispositivo </li></ul></ul><ul><li>Camadas de serviços mais padronizados e genéricos </li></ul><ul><ul><li>Software do usuário, Software de E/S, Drivers </li></ul></ul><ul><li>Camadas de serviços mais específicos </li></ul><ul><ul><li>Manipuladores de Interrupção, Hardware </li></ul></ul>
  17. 17. Linguagens de Programação <ul><li>Uma linguagem de programação possui uma estrutura própria que permite ao usuário se comunicar com o computador </li></ul><ul><li>Cada linguagem de programação possui dois tipos de regras: </li></ul><ul><ul><li>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 </li></ul></ul><ul><ul><li>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 </li></ul></ul>
  18. 18. Linguagens de Programação <ul><li>Etapas de um processo de criação de um programa </li></ul>
  19. 19. Linguagens de Programação <ul><li>Etapas de um processo de criação de um programa </li></ul><ul><ul><li>Interpretação, o código-fonte de uma linguagem é traduzido à medida que ele é executado </li></ul></ul><ul><ul><li>Compilação, traduz todo o código-fonte e transforma-o em um arquivo executável </li></ul></ul>
  20. 20. Linguagens de Programação -Classificação <ul><li>Quanto ao paradigma – as linguagens se diferenciam segundo a forma de abordar a sua sintaxe </li></ul><ul><li>Quanto à estrutura de tipos – as linguagens são definidas como fracamente tipada, fortemente tipada ou dinamicamente tipada </li></ul><ul><li>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 </li></ul>
  21. 21. Linguagens de Programação -Paradigmas <ul><li>Um paradigma de programação define, de maneira geral, como deve ser estruturada uma sintaxe de uma linguagem </li></ul><ul><ul><li>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 </li></ul></ul><ul><ul><li>Programação orientada a objetos – define as etapas de análise, modelagem e programação. Principais elementos: </li></ul></ul><ul><ul><ul><li>Classe, Método, Atributo, Objeto, Sobrecarga, Herança </li></ul></ul></ul><ul><ul><li>Programação funcional </li></ul></ul><ul><ul><li>Programação Lógica </li></ul></ul>
  22. 22. Linguagens de Programação -Paradigmas <ul><li>Programação funcional </li></ul><ul><ul><li>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. </li></ul></ul><ul><li>Programação Lógica </li></ul><ul><ul><li>É 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 </li></ul></ul>
  23. 23. Linguagens de Programação –Tipos <ul><li>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: </li></ul><ul><ul><li>Fracamente Tipada (ex. Smalltalk) </li></ul></ul><ul><ul><li>Fortemente Tipada (ex. Java) </li></ul></ul><ul><ul><li>Dinamicamente Tipada (ex.: Python) </li></ul></ul>
  24. 24. Linguagens de Programação – Grau de Abstração <ul><li>Quanto mais perto do hardware a estrutura de uma linguagem está próxima, menos abstrata ela será </li></ul><ul><li>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) </li></ul>
  25. 25. Armazenamento e Recuperação de Dados <ul><li>Dados, Informação e Conhecimento </li></ul><ul><li>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 </li></ul>
  26. 26. Banco de Dados <ul><li>Um banco de dados (BD) se assemelha muito aos módulos gerenciadores de arquivos dos SO’s </li></ul><ul><li>Os dados dentro de um BD são também organizados em arquivos </li></ul><ul><li>Elementos gerais de um BD </li></ul><ul><ul><li>Tabela – estrutura lógica em que são armazenadas as informações </li></ul></ul><ul><ul><li>Campos – atributos da tabela </li></ul></ul><ul><ul><li>Registros – linhas da tabela </li></ul></ul><ul><ul><li>Tipo – tipo do campo </li></ul></ul>
  27. 27. Banco de Dados <ul><li>Modelos mais importantes em que os BD’s se baseiam: </li></ul><ul><ul><li>BD Relacional – Todos os dados estão armazenados logicamente em tabelas </li></ul></ul><ul><ul><li>BD Orientado a Objetos – Os elementos são organizados como objetos (assim como no paradigma orientado a objetos) </li></ul></ul>
  28. 28. Banco de Dados Relacional <ul><li>Elementos </li></ul><ul><ul><li>Campo, Tabela, Registros e Tipo </li></ul></ul><ul><ul><li>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 </li></ul></ul><ul><ul><li>Chave Estrangeira - é um campo de uma tabela que possui um relacionamento com outro campo em outra tabela </li></ul></ul>
  29. 29. Banco de Dados Relacional <ul><li>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 </li></ul><ul><li>Linguagem SQL – Structured Query Language ou Linguagem de Pesquisa Estruturada </li></ul>
  30. 30. Linguagem SQL <ul><li>Padrão de quase todos os SGBD’s relacionais no mercado </li></ul><ul><li>Pode ser dividido em 3 grupos de comandos: </li></ul><ul><ul><li>DML ( Data Manipulation Language ) </li></ul></ul><ul><ul><li>DDL ( Data Definition Language ) </li></ul></ul><ul><ul><li>DCL ( Data Control Language ) </li></ul></ul>
  31. 31. Linguagem SQL - DML <ul><li>Linguagem de Manipulação de Dados – provê comandos para manipulação dos registros em uma ou mais tabelas, possui as seguintes estruturas: </li></ul><ul><ul><li>SELECT </li></ul></ul><ul><ul><li>INSERT </li></ul></ul><ul><ul><li>UPDATE </li></ul></ul><ul><ul><li>DELETE </li></ul></ul>
  32. 32. Linguagem SQL - DDL <ul><li>Linguagem de Definição de Dados – provê comandos para gerenciamento e criação de tabelas e seus elementos. Possui os seguintes comandos: </li></ul><ul><ul><li>CREATE </li></ul></ul><ul><ul><li>DROP </li></ul></ul><ul><ul><li>ALTER </li></ul></ul>
  33. 33. Linguagem SQL - DCL <ul><li>Linguagem de Controle de Dados – provê comandos para o controle dos aspectos de autorização de dados. Possui os seguintes comandos: </li></ul><ul><ul><li>GRANT </li></ul></ul><ul><ul><li>REVOKE </li></ul></ul><ul><ul><li>COMMIT </li></ul></ul><ul><ul><li>ROLLBACK </li></ul></ul>
  34. 34. DML - SELECT <ul><li>SELECT: comando utilizado para consulta de registros em uma ou mais tabelas. Possui a seguinte estrutura </li></ul><ul><li>SELECT <campos> FROM <tabela> WHERE <condição>; </li></ul>
  35. 35. DML - INSERT <ul><li>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 </li></ul><ul><li>INSERT INTO <tabela> (<campos>) VALUES (<valores>); </li></ul>
  36. 36. DML - DELETE <ul><li>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 </li></ul><ul><li>DELETE FROM <tabela> WHERE <condição>; </li></ul>
  37. 37. DML - UPDATE <ul><li>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 </li></ul><ul><li>UPDATE <tabela> SET <atribuições> WHERE <condições>; </li></ul>
  38. 38. Segurança da Informação <ul><li>Há 3 aspectos básicos em que se baseia a área de Segurança de Informação </li></ul><ul><ul><li>Confidencialidade – é a propriedade que limita o acesso a determinadas informações a pessoas autorizadas </li></ul></ul><ul><ul><li>Integridade - é a propriedade pela qual um determinado conjunto de informações deverá manter suas características primárias, sem serem corrompidas de nenhuma forma </li></ul></ul><ul><ul><li>Disponibilidade - é a propriedade pela qual a informação deve estar disponível sempre que seu proprietário ou pessoas autorizadas queiram acessá-la </li></ul></ul>
  39. 39. Segurança da Informação <ul><li>Áreas </li></ul><ul><ul><li>Mecanismos </li></ul></ul><ul><ul><li>Ameaças </li></ul></ul><ul><ul><li>Níveis </li></ul></ul><ul><ul><li>Políticas </li></ul></ul>
  40. 40. Mecanismos de Segurança <ul><li>Controle Físico </li></ul><ul><ul><li>Ferramentas físicas que podem ser utilizadas para manter as informações confidenciais, íntegras e disponíveis </li></ul></ul><ul><ul><li>O controle físico pode ser utilizado através de: trancas, portas blindadas, mecanismos contra invasão humana ou contra fogo, enchente, etc </li></ul></ul>
  41. 41. Mecanismos de Segurança <ul><li>Controle Lógico </li></ul><ul><ul><li>Softwares aplicativos ou até mesmo circuitos eletrônicos específicos, especializados em manter as informações livres de intrusos </li></ul></ul><ul><ul><ul><li>Criptografia - mecanismo para esconder a informação </li></ul></ul></ul><ul><ul><ul><li>Assinatura Digital - mecanismo para garantir a integridade da informação </li></ul></ul></ul><ul><ul><ul><li>Controle de Acesso </li></ul></ul></ul><ul><ul><ul><li>Honeypot – servidor falso como alvo </li></ul></ul></ul>
  42. 42. Ameaças à Segurança <ul><li>Perfis </li></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>Crackers – são indivíduos que essencialmente têm como objetivo quebrar (cracker) um sistema de segurança de forma ilegal e antiética. </li></ul></ul><ul><ul><li>Phreakers – são crackers especializados em telefonia móvel ou fixa </li></ul></ul>
  43. 43. Ameaças à Segurança <ul><li>Programas </li></ul><ul><ul><li>Vírus – são programas especializados em corromper a integridade lógica de um sistema computacional a fim de causar danos nos dados armazenados. </li></ul></ul><ul><ul><li>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 </li></ul></ul>
  44. 44. Níveis de Segurança <ul><li>Físico </li></ul><ul><ul><li>Ameaças físicas: incêndios, desabamentos, relâmpagos, alagamentos e acesso indevido de pessoas </li></ul></ul><ul><li>Lógico </li></ul><ul><ul><li>Ameaças lógicas: vírus e trojans </li></ul></ul><ul><ul><li>Definir políticas de segurança para evitar tanto ataques quanto perdas lógicas de informações </li></ul></ul>
  45. 45. Políticas de Segurança <ul><li>Critérios </li></ul><ul><ul><li>Disponibilidade – dados críticos devem estar sempre disponíveis </li></ul></ul><ul><ul><li>Utilização – os sistemas devem cumprir sempre seus objetivos </li></ul></ul><ul><ul><li>Integridade – os sistemas devem estar sempre em condições de uso </li></ul></ul><ul><ul><li>Autenticidade – os sistemas devem poder distinguir um usuário autorizado de outro não-autorizado </li></ul></ul><ul><ul><li>Confidencialidade – somente pessoas autorizadas devem acessar informações internas </li></ul></ul>

×