# data[].attributes.body
Arquitetura de processadores

RISC X CISC

Microcontroladores

PIC

Atmel AVR

Intel MCS

Microprocessadores

Intel

AMD

Snapdragon

Exynos

Ax (A14)

Arquitetura de computadores

Von Neumam x Harvard

Arquitetura contém

CPU Processador, Memória, Dispositivos de E/S

# data[].attributes.body
SO é um programa que age como um intermediário entre um usuário de computador e o hardware, usando o mesmo de maneira eficiente.
Ele controla e executa programas que o usuário está utilizando e as operações dos dispositivos de entrada e saída, gerencia e aloca recursos de memória e armazenamento e tem o kernel como componente principal que seria o único programa que executa sempre.
Os tipos de SOs e sua evolução estão intimamente ligados a evolução do hardware e das aplicações por ele suportadas, e são definidos em 3 tipos:
Monoprogramáveis ou monotarefa;
Multiprogramáveis ou multitarefa;
Múltiplos processadores;

# data[].attributes.body
Multiprogramação

Possibilidade da UCP ser compartilhada por diversos processos;

O procedimento de seleção é uma das principais funções realizadas pelo SO, sendo conhecido como escalonamento.

Objetivos do escalonador são:

Manter a UCP ocupada a maior parte do tempo;

Balancear a utilização do processador entre diversos processo

Algoritmo de escalonamento:

Define qual dos processos prontos deve alocar a UCP para execução.

Cada SO necessita de um algoritmo de escalonamento adequado a seu tipo de processamento.

Critérios de escalonamento:

Utilização da UCP

Tempo de turnaround

Throughput

Tempo de resposta

Tipos de escalonamento:

Escalonamento não-preemptivo

Escalonamento preemptivo

Escalonamento não-preemptivo:

Escalonamento Shortest-Job-First (SJF)

Escalonamento First-In-First-Out (FIFO)

Escalonamento preemptivo:

Escalonamento Round Robin (RR)

Escalonamento por Prioridades

# data[].attributes.body
Gerência de memória:

Monoprogramáveis – fácil gerência

Multiprogramáveis – difícil de gerenciar

Formas de alocação de memória

Alocação contígua simples

Alocação particionada

# data[].attributes.headline
Aula 12-gerenciamento de entrada e saída

# data[].attributes.subject
Aula 12-gerenciamento de entrada e saída

# data[].attributes.body
Funções específicas:

Enviar sinais para os dispositivos;

Atender interrupções;

Tratar possíveis erros;

Prover interface entre os dispositivos e o sistema;

Princípios:

Hardware;

Software;

# data[].attributes.body
Arquitetura de rede

Clients

Internet

Server

Devices (SO e App)

Serviços (Server)

Redes (Comunicação)

Cloud Computing

Tipos de serviços em nuvem

SaaS

PaaS

IaaS

Principais Serviços

Amazon

Google Cloud

Microsoft Azure

Alibaba

# data[].attributes.headline
Aula 18 - Recursos de Nuvem e Virtualização

# data[].attributes.subject
Aula 18 - Recursos de Nuvem e Virtualização

# data[].attributes.body
Nuvem

Máquinas virtuais (IaaS)

Hospedagens (PaaS)

Software específicos (SaaS)

O desenvolvedor e a nuvem

Necessidade de conhecer os serviços;

Conhecer as diversas nuvens;

Deploys com Dev;

DevOps;

# data[].attributes.headline
Aula 19 - Comunicação em Plataformas Computacionais

# data[].attributes.subject
Aula 19 - Comunicação em Plataformas Computacionais

# data[].attributes.body
Comunicação:

integração entre sistemas

Meio de comunicação

Crescimento de integrações

TCP/IP:

Pilha de protocolos TCP/IP

é um conjunto de protocolos de comunicação entre computadores em rede

TCP e IP como principais

API:

As APIs são um conjunto de padrões que fazem parte de uma interface e que permitem a criação de plataformas de maneira mais simples e prática para desenvolvedores.

HTTP:

O Hypertext Transfer Protocol, sigla HTTP é um protocolo de comunicação utilizado para sistemas de informação de hipermídia, distribuídos e colaborativos.

API Rest:

Transferência Representacional de Estado, é um estilo de arquitetura de software que define um conjunto de restrições a serem usadas para a criação de web services.

Json:

Em computação, JSON, um acrônimo de JavaScript Object Notation, é um formato compacto, de padrão aberto independente, de troca de dados simples e rápida entre sistemas, especificado

MQTT:

MQTT é um protocolo de mensagens leve para sensores e pequenos dispositivos móveis otimizado para redes TCP/IP. O esquema de troca de mensagens é fundamentado no modelo Publicador-Subscritor, extremamente simples e leve.