{[ 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!

Code Masters

  • 1.
    {[ CODEMASTERS ]} Noçõesbásicas de sistemas operacionais SOMOS OS
  • 2.
  • 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.
  • 4.
  • 5.
    Kernel • Processos; • Memória; •Sistema de arquivos; • Entrada e saída de dados; • Conjunto de hardwares; • Conjunto de softwares.
  • 6.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
    WINDOWS • Alto nívelde 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 OSMac OS X
  • 15.
    MAC OS • Altacompatibilidade com o hardware da Apple; • Indicado para pessoas que queiram trabalhar com artes gráficas, com áudio ou vídeo; • Custo Elevado.
  • 16.
  • 17.
  • 18.
    UBUNTU • Seguro/Confiável; • Códigolivre/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.
  • 19.
  • 20.
    CHROME OS • Baseadoem computação na nuvem; • Velocidade e leveza; • Simplicidade (o sistema é todo baseado em web); • Os dados ficam armazenados na nuvem (Google Drive); • Gratuito.
  • 22.
  • 23.
    O QUE SÃO? Sistemasoperacionais 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 AssistentePessoal 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.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
    POR QUE ASVERSÕ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.
  • 32.
  • 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.
  • 35.
  • 38.
  • 39.
  • 40.
    Pode-se concluir queos 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.
  • 41.
  • 42.
    O QUE SÃOTRADUTORES 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ÁTICAANÁ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 noprograma 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ênciade 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 errossemâ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ÁLISELÉ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.
  • 49.
  • 50.
    INTERPRETADORES “Interpretar: fazer ainterpretaçã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 PARAA 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.
  • 53.
  • 54.
    SENTA QUE LAVEM HISTÓRIA
  • 55.
    “A Forma quedistribuímos software também evoluiu”
  • 56.
    DO QUE SETRATA?
  • 57.
  • 58.
    O cliente nãose torna dono do software, ao invés disso, ele aluga a solução total que é oferecida remotamente.
  • 59.
  • 60.
  • 61.
    FOCO EM DISPONIBILIZAÇÃO DESERVIÇO, NÃO EM LICENCIAMENTO
  • 62.
    O QUE EUGANHO COM ISSO?
  • 63.
    •Escalabilidade de licenças •Facilidadede implementação •Infraestrutura principal por conta do servidor do produto
  • 64.
  • 65.
    •Recorrente em relaçãoao número de licenças; •Recorrente em relação ao uso; •Publicidade; •“Freemium“.
  • 66.
  • 70.
  • 71.
  • 72.

Notas do Editor

  • #43 Aqui: Definição de tradutores e pra quê que serve e os dois tipos que existem.
  • #44 Introdução à definição de compiladores
  • #50 Exemplo de linguagem compilada.
  • #52 Exemplo de linguagem interpretada.