Você está na página 1de 36

Sumrio

Tcnicas Avanadas de Programao


Prof. Joo Marcos M. da Silva
Departamento de Engenharia de Telecomunicaes
Escola de Engenharia
Universidade Federal Fluminense

Agosto de 2011

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 1/35

Sumrio

Sumrio

Informaes Gerais Sobre a Disciplina

Introduo aos Sistemas Distribudos

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 2/35

Sumrio

Sumrio

Informaes Gerais Sobre a Disciplina

Introduo aos Sistemas Distribudos

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 2/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Objetivo da Disciplina
Avaliao
Ementa
Bibliografia

Sumrio

Informaes Gerais Sobre a Disciplina


Objetivo da Disciplina
Avaliao
Ementa
Bibliografia

Introduo aos Sistemas Distribudos

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 3/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Objetivo da Disciplina
Avaliao
Ementa
Bibliografia

Objetivo

Objetivo da disciplina:
Oferecer uma viso geral de programao avanada utilizando a
linguagem C e JAVA e suas tecnologias derivadas na rea de
Telecomunicaes.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 4/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Objetivo da Disciplina
Avaliao
Ementa
Bibliografia

Sumrio

Informaes Gerais Sobre a Disciplina


Objetivo da Disciplina
Avaliao
Ementa
Bibliografia

Introduo aos Sistemas Distribudos

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 5/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Objetivo da Disciplina
Avaliao
Ementa
Bibliografia

Informaes sobre a avaliao

A avaliao do curso se dar da seguinte forma:


2 Listas de Eserccios (L1 e L2 )
1 Projeto (P)
1 Prova Final (Verificao Suplementar)
M=

(L1 + L2 + P)
3

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 6/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Objetivo da Disciplina
Avaliao
Ementa
Bibliografia

Informaes sobre a avaliao

Condies
Se M 6 Aprovado
Se 4 M < 6 VS.
Se M < 4 Reprovado.
OBS:
Os alunos que fizerem a VS devero alcanar a nota mnima
de 6,0 para serem aprovados.
Freqncia mnima das aulas: 75%

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 7/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Objetivo da Disciplina
Avaliao
Ementa
Bibliografia

Sumrio

Informaes Gerais Sobre a Disciplina


Objetivo da Disciplina
Avaliao
Ementa
Bibliografia

Introduo aos Sistemas Distribudos

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 8/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Objetivo da Disciplina
Avaliao
Ementa
Bibliografia

Ementa

Introduo aos Sistema Distribudos


Processos Concorrentes
Processos Leves (threads)
Sincronizao de Processos
Comunicao entre Processos
Sockets
Remote Procedure Calls (RPC)

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 9/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Objetivo da Disciplina
Avaliao
Ementa
Bibliografia

Ementa

Programao Estruturada Programao Orientada


Objetos
Modelagem de Software usando UML
Introduo Linguagem JAVA
Programao Concorrente em JAVA
Redes, Internet e sockets
Comunicaes Seguras
Gerncia de Redes e Aplicaes

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 10/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Objetivo da Disciplina
Avaliao
Ementa
Bibliografia

Sumrio

Informaes Gerais Sobre a Disciplina


Objetivo da Disciplina
Avaliao
Ementa
Bibliografia

Introduo aos Sistemas Distribudos

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 11/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Objetivo da Disciplina
Avaliao
Ementa
Bibliografia

Bibliografia

Figure: Livros adotados para a disciplina.


Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 12/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Sumrio

Informaes Gerais Sobre a Disciplina

Introduo aos Sistemas Distribudos


Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 13/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Programa, processo e Job

Programa
Um programa um conjunto de instrues de mquina que visam
realizar alguma funo til a um usurio.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 14/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Programa, processo e Job

Processo
Um processo um pouco mais que um programa pois inclui
tambm [1]:
Espao de endereamento (contm o programa executvel, os
dados do programa e sua pilha);
Conjunto de registradores (incluindo o Program Counter );
stack pointer ;
demais informaes necessrias para execuo.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 15/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Sumrio

Informaes Gerais Sobre a Disciplina

Introduo aos Sistemas Distribudos


Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 16/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Antigamente....
No havia Sistemas Operacionais
Os aplicativos (programas) tinham de cuidar de tudo
(literalmente);
O programador tinha que ter um alto grau de conhecimento
da mquina onde o programa seria compilado e executado;
A execuo do programa em outra mquina (que no fosse
idntica), muitas vezes necessitava de ajustes no programa e
uma recompilao;
No havia o conceito de portabilidade de software, nem o de
reusabilidade;
E a confiabilidade?

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 17/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Atualmente...

Os Sistemas Operacionais gerenciam bem os recursos


disponveis na mquina...
... oferecem servios aos usurios (sejam programas ou
pessoas), e...
...retiram um nus grande sobre o programador - a do
conhecimento de baixo nvel da mquina;
1

Programar ficou mais fcil;

J possvel pensar na tal da portabilidade;

Mais fcil criar programas de maior confiabilidade.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 18/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Mas nem sempre foi assim...

Os primeiros Sistemas Operacionais (SO) eram


monoprogramveis, ou seja, um nico programa de usurio
era executado por vez (inteiramente) processamento em
lote (batch);

A necessidade de executar mais programas levou


multiprogramao.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 19/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Sumrio

Informaes Gerais Sobre a Disciplina

Introduo aos Sistemas Distribudos


Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 20/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Multiprogramao

Cada programa executado em uma fatia de tempo;


Eventos podem provocar a troca de controle do processador
de um programa para outro programa;
O processo de troca de controle do processador entre os
diversos programas chama-se escalonamento e o mdulo do
sistema operacional que realiza este processo o escalonador.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 21/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Multiprogramao

Figure: Um sistema multiprogramado com trs jobs na memria.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 22/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Tipos de Escalonamento

FIFO (First-In First-Ou)


Shortest-Job First
Round-Robin

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 23/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Escalonamento com Prioridades

Ideia
Cada processo possui uma prioridade associada, e o processo
pronto para executar com maior prioridade quem ganha o
processador.
Prioridade Dinmica
Para evitar que processos com alta prioridade executem
indefinidamente, o escalonador pode baixar a prioridade do
processo em execuo a cada ciclo de relgio at que ocorra a
troca do controle da CPU.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 24/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Estados de Execuo dos Processos

Um processo em execuo deixa o controle da CPU nas seguintes


situaes:
Trmino normal do programa;
A entrada de um processo de maior prioridade;
A solicitao de um evento ou recurso de sistema;
Trmino da sua fatia de tempo.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 25/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Estados de Execuo dos Processos


Existem 3 estados bsicos em que um processo pode alternar:
Pronto (Ready )
Espera (wait)
Execuo (Exec)

Figure: Estados de execuo dos processos.


Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 26/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Estados de Execuo dos Processos

READY
No estado de pronto, o processo est apto a tomar o controle do
processador, esperando a sua vez.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 27/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Estados de Execuo dos Processos

WAIT
No estado de espera, o processo est aguardando o resultado de
alguma operao solicitada que necessitar de muito tempo para
ser completada, como leitura/gravao em disco ou interao com
o usurio.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 28/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Estados de Execuo dos Processos

EXEC
No estado de execuo, o processo tem o controle do processador
at que sua fatia de tempo termine, outro processo com maior
prioridade requisite o processador ou que uma operao demorada
seja solicitada.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 29/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Kernel dos Sistema Operacionais


Monoltico estruturado em um nico arquivo binrio, um nico
processo que executa inteiramente em modo
protegido. Possui performance superior na passagem
de mensagens, mas muito pouco flexvel.
Micro-Kernel Apenas uma pequena parte do ncleo executa em
modo protegido para acessar diretamente o hardware,
promover comunicao entre processos e gerenciar a
memria. O restante do sistema roda em modo
usurio. Possui um grande flexibilidade, apesar da
performance inferior ao monoltico na passagem de
mensagens.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 30/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Chamadas de Sistema

Definio
Os servios oferecidos pelo sistema operacional so acessveis aos
programas sob a forma de chamadas de sistema. Elas so as
interfaces entre os processos em execuo e o sistema operacional
e geralmente so implementadas com instrues de baixo nvel.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 31/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Chamadas de Sistema

As chamadas de sistemas podem estar relacionadas a:


Controle de Processos
Manipulao de Arquivos
Manipulao de Dispositivos
Comunicao
Exemplos de chamadas de sistema relacionados a controle de
processos: fork, wait, exit, exec, kill, signal e sleep.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 32/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Sumrio

Informaes Gerais Sobre a Disciplina

Introduo aos Sistemas Distribudos


Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 33/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Consideraes Finais

Os sistemas distribudos podem ser potencialmente mais


confiveis devido multiplicidade e autonomia de suas partes;

Os sistemas distribudos podem refletir a estrutura


organizacional ou geogrfica qual eles servem.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 34/35

Informaes Gerais Sobre a Disciplina


Introduo aos Sistemas Distribudos

Definies Iniciais
Evoluo da Programao
Multiprogramao
Consideraes Finais

Referncias

[1] Tanenbaum, A.S., Sistemas Operacionais Modernos, 2a.


edio, Pearson Prentice-Hall.

Prof. Joo Marcos Meirelles da Silva

Aula 01 pg. 35/35

Você também pode gostar