SlideShare uma empresa Scribd logo
1 de 72
{[ CODEMASTERS ]}
Noções básicas de sistemas operacionais
SOMOS OS
SISTEMAS OPERACIONAIS
DESKTOP
O QUE É UM SISTEMA
OPERACIONAL?
Sistema operacional é o conjunto de programas básicos que
fazem a comunicação entre usuário e máquina (hardware), os
softwares mais importantes de qualquer computador, que
controlam praticamente todas as funções de qualquer máquina.
• Núcleo;
• Utilitários.
CLASSIFICAÇÃO
•Monotarefa;
•Multitarefa.
Kernel
• Processos;
• Memória;
• Sistema de arquivos;
• Entrada e saída de dados;
• Conjunto de hardwares;
• Conjunto de softwares.
Kernel
• Kernel Monolíticos;
• Micro-Kernel.
Steve Jobs
Larry Page Sergey
Bill Gates
WINDOWS
Windows
1.0
Windows 10
WINDOWS
• Alto nível de compatibilidade para drivers;
• Interface Amigável;
• Biblioteca gigantesca de softwares para todos os tipos de
aplicações;
• Facilidade de uso e configuração;
• Vulnerabilidades.
MAC OS
Mac OS Mac OS X
MAC OS
• Alta compatibilidade com o hardware da Apple;
• Indicado para pessoas que queiram trabalhar com artes
gráficas, com áudio ou vídeo;
• Custo Elevado.
Linux
UBUNTU
Ubuntu 4.10 Ubuntu 14.10
UBUNTU
• Seguro/Confiável;
• Código livre/várias aplicações;
• Velocidade e leveza;
• Existe uma resistência no mercado em desenvolver driver para
o Linux ;
• Mais indicado para desenvolvedores, estudantes ou
profissionais da área de TI;
• Gratuito.
Chrome OS
CHROME OS
• Baseado em computação na nuvem;
• Velocidade e leveza;
• Simplicidade (o sistema é todo baseado em web);
• Os dados ficam armazenados na nuvem (Google
Drive);
• Gratuito.
SISTEMAS OPERACIONAIS
MÓVEIS
O QUE SÃO?
Sistemas operacionais desenvolvidos para
dispositivos móveis, como smartphones, tablets e
PDAS. Eles combinam características de sistemas
operacionais para desktops com recursos
portáteis. Por exemplo, sensibilidade ao toque,
Bluetooth, Wi-Fi, GPS, câmera e leitor de música.
SMARTPHONE, O QUE É?
"Smart“ é um termo da língua
inglesa que significa esperto ou
inteligente, “phones” significa
telefone/telemóvel, ou seja,
telemóvel inteligente. Esses
telefones inteligentes possibilitam o
usuário desenvolver programas
para eles, os aplicativos. Possuem
hardware, software, capacidade de
acesso à internet, sincronização de
dados e agenda de contatos.
PDAs x Smartphones
Assistente Pessoal Digital (PDA) é
um computador de bolso
composto por um processador
com funcionalidades de rede
numa caixa compacta. Conhecido
também por Palmtop. Fazendo
comparações entre smartphones
e PDAs, podemos dizer que um
smartphone é um PDA evoluído.
BRASILCONECTADO
DIVERSIDADE DOS SISTEMAS
MÓVEIS
ANDROID
A EVOLUÇÃO
POR QUE AS VERSÕES TEM NOMES
DE DOCES?
Devido a uma brincadeira interna entre os desenvolvedores,
acabou se tornando a marca registrada do Android. Cada doce
novo é representado por uma estátua na sede da empresa em
Moutain View, California.
iOS
TER UM APPLE É SINÔNIMO DE
RIQUEZA?
Os produtos da Apple apresentam um sistema móvel
com design unificado, desenvolvido e exclusivo da
empresa. Possuem uma plataforma fechada, sob medida
para seus produtos e os aplicativos são pagos. Logo,
associamos que os usuários do sistema móvel iOS, em
sua maioria, possuem um poder aquisitivo maior.
WINDOWS PHONE
FIREFOX OS
SIMULADOR FIREFOX OS
Pode-se concluir que os sistemas operacionais móveis
estão presentes no cotidiano. Com o crescimento do
consumo, a precisão de aparelhos portáteis muito
rápidos e inteligentes tornou-se uma necessidade e, com
isso, aplicativos diversos são desenvolvidos tão
rapidamente quanto se é possível utilizá-los. Nota-se,
também, que esse avanço os tornou mais competitivos,
atraentes e acessíveis a todos os públicos.
COMPILADORES
VS
INTERPRETADORES
O QUE SÃO TRADUTORES EM
LINGUAGEM DE PROGRAMAÇÃO?
É, justamente, o que transforma a linguagem de programação
de alto nível a uma linguagem alvo, ou seja, linguagem de
baixo nível.
Programa
fonte/código fonte Processo de
tradução
Programa
alvo/código objeto
COMPILADORES INTERPRETADORES
COMPILADORES
“Compilar: coligir, reunir, juntar, selecionar, converter, etc.”-
Dicionário Aurélio.
É responsável pela tradução de um código fonte feito em
linguagem de alto nível para um código objeto (linguagem de
máquina), transformando em linguagem binária.
COMPILADOR
int main() {
if (a>b) {
a = 1;
b = 2;
}
}
0001110101
0111010101
0111101011
1111010101
1101111101
0101010111
COMPILADOR
ANÁLISE LÉXICA
ANÁLISE SINTÁTICA ANÁLISE
SEMÂNTICA
GERAÇÃO DE
CÓDIGO
No processo de compilação há várias análises de erros para
saber se o programa condiz com as especificações exigidas da
linguagem fonte, isto é, linguagem escolhida pelo programador e
se o programa há sentido.
Ela divide no programa cada símbolo que possa ter significado para uma
determinada linguagem e avisa quando um determinado símbolo não faz
parte da linguagem que é encontrada.
Exemplo: a[index] = 4 + 3
Lexemas Tokens
a Identificador
[ Colchete à esquerda
Index Identificador
] Colchete à direita
= Atribuição
4 Número
+ Adição
3 Número
ANÁLISE LÉXICA
Analisa uma sequência de entrada para determinar sua estrutura
gramatical segundo uma determinada gramática formal. Através da
análise léxica é obtido um grupo de símbolos, para que o analisador
sintático use um conjunto de regras para construir uma árvore sintática.
EXPRESSÃO DE
ATRIBUIÇÃO
EXPRESSÃO
INDEXADA
EXPRESSÃO DE
ADIÇÃO
IDENTIFICADOR
Index
IDENTIFICADOR
a
NÚMERO
4
NÚMERO
3
ANÁLISE SINTÁTICA
Verifica os erros semânticos no programa-fonte e coleta as informações
necessárias para a próxima fase da compilação que é a geração de programa-
objeto.
GERAÇÃO DE CÓDIGO
Responsável pela reserva de memória para dados e variáveis dentro da tabela
de símbolos para gerar o código objeto.
EXPRESSÃO DE
ATRIBUIÇÃO
VETOR DE
INTEIROS
INTEIRO INTEIROINTEIRO
ANÁLISE SEMÂNTICA
EXPRESSÃO INDEXADA
IDENTIFICADOR A IDENTIFICADOR INDEX
EXPRESSÃO DE ADIÇÃO
NÚMERO 4 NÚMERO 3
TABELA DE
SÍMBOLOS
PROGRAMA
FONTE
ANÁLISE
SEMÂNTICA
ANÁLISE
SINTÁTICA
PROGRAMA
OBJETO
GERAÇÃO DE
CÓDIGO
ANÁLISE LÉXICA Nas fases do processo
de compilação há uma
tabela de símbolos que
serve como um banco
de dados para o
processo. Seu principal
conteúdo são
informações sobre tipos
e atributos de cada
nome definido pelo
usuário no programa.
LINGUAGENS USADAS PARA
COMPILAÇÃO
INTERPRETADORES
“Interpretar: fazer a interpretação de; explicar; desempenhar um
papel ou executar; traduzir ou verter de uma língua para outra.” -
Dicionário Aurélio.
Interpretadores são programas que leem um código fonte de uma
linguagem de programação e os convertem em código executável.
O interpretador lê linha-a-linha e converte em código objeto à
medida que vai executando o programa.
Programa
fonte/código fonte
INTERPRETADOR
Programa
alvo/código objeto
LINGUAGENS USADAS PARA A
INTERPRETAÇÃO
QUAL O MELHOR? COMPILADOR OU
INTERPRETADOR?
Compilador Interpretador
Vantagens:
 Execução mais rápida;
 Permite estruturas de programação mais
mais complexas e otimização do código-
código-fonte.
Desvantagens:
 Várias etapas de tradução;
 Necessita mais memória;
 Processo de correção de erros é mais
demorado.
Vantagens:
 Duração do programa é mais simples;
 Consome menos memória;
 Resultado imediato do programa.
Desvantagens:
 Execução do programa é mais lenta;
 Necessário fornecer o programa fonte ao
ao utilizador.
SOFTWARE COMO SERVIÇO
SENTA QUE LA VEM HISTÓRIA
“A Forma que distribuímos software
também evoluiu”
DO QUE SE TRATA?
MODELO DE COMECIALIZAÇÃO
DE SOFTWARE
O cliente não se torna dono do software, ao
invés disso, ele aluga a solução total que é
oferecida remotamente.
A TECNOLOGIA NÃO
É DETERMINANTE
NÃO NECESSITA SER
100% ONLINE
FOCO EM DISPONIBILIZAÇÃO
DE SERVIÇO,
NÃO EM LICENCIAMENTO
O QUE EU GANHO COM ISSO?
•Escalabilidade de licenças
•Facilidade de implementação
•Infraestrutura principal por conta do servidor
do produto
COMO VOU COBRAR
MEU CLIENTE?
•Recorrente em relação ao número de
licenças;
•Recorrente em relação ao uso;
•Publicidade;
•“Freemium“.
CASES DE SUCESSO
BAAS
REAL-TIME DATA AUTENTICATION CLOUD HOSTING
CODEMASTERS
OBRIGADO!

Mais conteúdo relacionado

Semelhante a Code Masters

Aula 03 isc -softwares-hardwares-arquiteturas
Aula 03   isc -softwares-hardwares-arquiteturasAula 03   isc -softwares-hardwares-arquiteturas
Aula 03 isc -softwares-hardwares-arquiteturasFábio Andrade
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iiiRay Fran Pires
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_ImplementaçãoWagner Zaparoli
 
Introdução a computação 02
Introdução a computação 02Introdução a computação 02
Introdução a computação 02Felipe Pereira
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação Marcos Gregorio
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing Jorge Cardoso
 

Semelhante a Code Masters (20)

Aula 03 isc -softwares-hardwares-arquiteturas
Aula 03   isc -softwares-hardwares-arquiteturasAula 03   isc -softwares-hardwares-arquiteturas
Aula 03 isc -softwares-hardwares-arquiteturas
 
Paradigmas de Linguagem
Paradigmas de LinguagemParadigmas de Linguagem
Paradigmas de Linguagem
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Comparativo do uso de linguagens de programação e geradores de código no dese...
Comparativo do uso de linguagens de programação e geradores de código no dese...Comparativo do uso de linguagens de programação e geradores de código no dese...
Comparativo do uso de linguagens de programação e geradores de código no dese...
 
Softwares - Computação
Softwares - ComputaçãoSoftwares - Computação
Softwares - Computação
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Isc aula 7
Isc   aula 7Isc   aula 7
Isc aula 7
 
Software
SoftwareSoftware
Software
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
 
Introdução a computação 02
Introdução a computação 02Introdução a computação 02
Introdução a computação 02
 
ESTRUTURA DE DADOS (JAVA) AULA 01
ESTRUTURA DE DADOS (JAVA) AULA 01ESTRUTURA DE DADOS (JAVA) AULA 01
ESTRUTURA DE DADOS (JAVA) AULA 01
 
Delphi6bd
Delphi6bdDelphi6bd
Delphi6bd
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
Aula 3 - Software
Aula 3 - SoftwareAula 3 - Software
Aula 3 - Software
 
Aula 4 - SAM - Autoria
Aula 4 - SAM - AutoriaAula 4 - SAM - Autoria
Aula 4 - SAM - Autoria
 
Microsoft .NET Framework
Microsoft .NET FrameworkMicrosoft .NET Framework
Microsoft .NET Framework
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing
 

Code Masters

  • 1. {[ CODEMASTERS ]} Noções básicas de sistemas operacionais SOMOS OS
  • 3. O QUE É UM SISTEMA OPERACIONAL? Sistema operacional é o conjunto de programas básicos que fazem a comunicação entre usuário e máquina (hardware), os softwares mais importantes de qualquer computador, que controlam praticamente todas as funções de qualquer máquina. • Núcleo; • Utilitários.
  • 5. Kernel • Processos; • Memória; • Sistema de arquivos; • Entrada e saída de dados; • Conjunto de hardwares; • Conjunto de softwares.
  • 7.
  • 8.
  • 13. WINDOWS • Alto nível de compatibilidade para drivers; • Interface Amigável; • Biblioteca gigantesca de softwares para todos os tipos de aplicações; • Facilidade de uso e configuração; • Vulnerabilidades.
  • 14. MAC OS Mac OS Mac OS X
  • 15. MAC OS • Alta compatibilidade com o hardware da Apple; • Indicado para pessoas que queiram trabalhar com artes gráficas, com áudio ou vídeo; • Custo Elevado.
  • 16. Linux
  • 18. UBUNTU • Seguro/Confiável; • Código livre/várias aplicações; • Velocidade e leveza; • Existe uma resistência no mercado em desenvolver driver para o Linux ; • Mais indicado para desenvolvedores, estudantes ou profissionais da área de TI; • Gratuito.
  • 20. CHROME OS • Baseado em computação na nuvem; • Velocidade e leveza; • Simplicidade (o sistema é todo baseado em web); • Os dados ficam armazenados na nuvem (Google Drive); • Gratuito.
  • 21.
  • 23. O QUE SÃO? Sistemas operacionais desenvolvidos para dispositivos móveis, como smartphones, tablets e PDAS. Eles combinam características de sistemas operacionais para desktops com recursos portáteis. Por exemplo, sensibilidade ao toque, Bluetooth, Wi-Fi, GPS, câmera e leitor de música.
  • 24. SMARTPHONE, O QUE É? "Smart“ é um termo da língua inglesa que significa esperto ou inteligente, “phones” significa telefone/telemóvel, ou seja, telemóvel inteligente. Esses telefones inteligentes possibilitam o usuário desenvolver programas para eles, os aplicativos. Possuem hardware, software, capacidade de acesso à internet, sincronização de dados e agenda de contatos.
  • 25. PDAs x Smartphones Assistente Pessoal Digital (PDA) é um computador de bolso composto por um processador com funcionalidades de rede numa caixa compacta. Conhecido também por Palmtop. Fazendo comparações entre smartphones e PDAs, podemos dizer que um smartphone é um PDA evoluído.
  • 30. POR QUE AS VERSÕES TEM NOMES DE DOCES? Devido a uma brincadeira interna entre os desenvolvedores, acabou se tornando a marca registrada do Android. Cada doce novo é representado por uma estátua na sede da empresa em Moutain View, California.
  • 31.
  • 32. iOS
  • 33. TER UM APPLE É SINÔNIMO DE RIQUEZA? Os produtos da Apple apresentam um sistema móvel com design unificado, desenvolvido e exclusivo da empresa. Possuem uma plataforma fechada, sob medida para seus produtos e os aplicativos são pagos. Logo, associamos que os usuários do sistema móvel iOS, em sua maioria, possuem um poder aquisitivo maior.
  • 34.
  • 36.
  • 37.
  • 40. Pode-se concluir que os sistemas operacionais móveis estão presentes no cotidiano. Com o crescimento do consumo, a precisão de aparelhos portáteis muito rápidos e inteligentes tornou-se uma necessidade e, com isso, aplicativos diversos são desenvolvidos tão rapidamente quanto se é possível utilizá-los. Nota-se, também, que esse avanço os tornou mais competitivos, atraentes e acessíveis a todos os públicos.
  • 42. O QUE SÃO TRADUTORES EM LINGUAGEM DE PROGRAMAÇÃO? É, justamente, o que transforma a linguagem de programação de alto nível a uma linguagem alvo, ou seja, linguagem de baixo nível. Programa fonte/código fonte Processo de tradução Programa alvo/código objeto COMPILADORES INTERPRETADORES
  • 43. COMPILADORES “Compilar: coligir, reunir, juntar, selecionar, converter, etc.”- Dicionário Aurélio. É responsável pela tradução de um código fonte feito em linguagem de alto nível para um código objeto (linguagem de máquina), transformando em linguagem binária. COMPILADOR int main() { if (a>b) { a = 1; b = 2; } } 0001110101 0111010101 0111101011 1111010101 1101111101 0101010111
  • 44. COMPILADOR ANÁLISE LÉXICA ANÁLISE SINTÁTICA ANÁLISE SEMÂNTICA GERAÇÃO DE CÓDIGO No processo de compilação há várias análises de erros para saber se o programa condiz com as especificações exigidas da linguagem fonte, isto é, linguagem escolhida pelo programador e se o programa há sentido.
  • 45. Ela divide no programa cada símbolo que possa ter significado para uma determinada linguagem e avisa quando um determinado símbolo não faz parte da linguagem que é encontrada. Exemplo: a[index] = 4 + 3 Lexemas Tokens a Identificador [ Colchete à esquerda Index Identificador ] Colchete à direita = Atribuição 4 Número + Adição 3 Número ANÁLISE LÉXICA
  • 46. Analisa uma sequência de entrada para determinar sua estrutura gramatical segundo uma determinada gramática formal. Através da análise léxica é obtido um grupo de símbolos, para que o analisador sintático use um conjunto de regras para construir uma árvore sintática. EXPRESSÃO DE ATRIBUIÇÃO EXPRESSÃO INDEXADA EXPRESSÃO DE ADIÇÃO IDENTIFICADOR Index IDENTIFICADOR a NÚMERO 4 NÚMERO 3 ANÁLISE SINTÁTICA
  • 47. Verifica os erros semânticos no programa-fonte e coleta as informações necessárias para a próxima fase da compilação que é a geração de programa- objeto. GERAÇÃO DE CÓDIGO Responsável pela reserva de memória para dados e variáveis dentro da tabela de símbolos para gerar o código objeto. EXPRESSÃO DE ATRIBUIÇÃO VETOR DE INTEIROS INTEIRO INTEIROINTEIRO ANÁLISE SEMÂNTICA EXPRESSÃO INDEXADA IDENTIFICADOR A IDENTIFICADOR INDEX EXPRESSÃO DE ADIÇÃO NÚMERO 4 NÚMERO 3
  • 48. TABELA DE SÍMBOLOS PROGRAMA FONTE ANÁLISE SEMÂNTICA ANÁLISE SINTÁTICA PROGRAMA OBJETO GERAÇÃO DE CÓDIGO ANÁLISE LÉXICA Nas fases do processo de compilação há uma tabela de símbolos que serve como um banco de dados para o processo. Seu principal conteúdo são informações sobre tipos e atributos de cada nome definido pelo usuário no programa.
  • 50. INTERPRETADORES “Interpretar: fazer a interpretação de; explicar; desempenhar um papel ou executar; traduzir ou verter de uma língua para outra.” - Dicionário Aurélio. Interpretadores são programas que leem um código fonte de uma linguagem de programação e os convertem em código executável. O interpretador lê linha-a-linha e converte em código objeto à medida que vai executando o programa. Programa fonte/código fonte INTERPRETADOR Programa alvo/código objeto
  • 51. LINGUAGENS USADAS PARA A INTERPRETAÇÃO
  • 52. QUAL O MELHOR? COMPILADOR OU INTERPRETADOR? Compilador Interpretador Vantagens:  Execução mais rápida;  Permite estruturas de programação mais mais complexas e otimização do código- código-fonte. Desvantagens:  Várias etapas de tradução;  Necessita mais memória;  Processo de correção de erros é mais demorado. Vantagens:  Duração do programa é mais simples;  Consome menos memória;  Resultado imediato do programa. Desvantagens:  Execução do programa é mais lenta;  Necessário fornecer o programa fonte ao ao utilizador.
  • 54. SENTA QUE LA VEM HISTÓRIA
  • 55. “A Forma que distribuímos software também evoluiu”
  • 56. DO QUE SE TRATA?
  • 58. O cliente não se torna dono do software, ao invés disso, ele aluga a solução total que é oferecida remotamente.
  • 59. A TECNOLOGIA NÃO É DETERMINANTE
  • 61. FOCO EM DISPONIBILIZAÇÃO DE SERVIÇO, NÃO EM LICENCIAMENTO
  • 62. O QUE EU GANHO COM ISSO?
  • 63. •Escalabilidade de licenças •Facilidade de implementação •Infraestrutura principal por conta do servidor do produto
  • 65. •Recorrente em relação ao número de licenças; •Recorrente em relação ao uso; •Publicidade; •“Freemium“.
  • 67.
  • 68.
  • 69.
  • 70. BAAS

Notas do Editor

  1. Aqui: Definição de tradutores e pra quê que serve e os dois tipos que existem.
  2. Introdução à definição de compiladores
  3. Exemplo de linguagem compilada.
  4. Exemplo de linguagem interpretada.