36
Sumário Técnicas Avançadas de Programação Prof. João Marcos M. da Silva Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto de 2011 Prof. João Marcos Meirelles da Silva Aula 01 — pg. 1/35

Tecnica de Programação Avançada

Embed Size (px)

DESCRIPTION

Listas de Esercícios (L1 e L2)1 Projeto (P)1 Prova Final (Verificação Suplementar)M =(L1 + L2 + P)3Profem resumo o scrib pede pra voce colocar 500 livros para poder baixar 1.

Citation preview

SumrioTcnicas Avanadas de ProgramaoProf. Joo Marcos M. da SilvaDepartamento de Engenharia de TelecomunicaesEscola de EngenhariaUniversidade Federal FluminenseAgosto de 2011Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 1/35SumrioSumrio1Informaes Gerais Sobre a Disciplina2Introduo aos Sistemas DistribudosProf. Joo Marcos Meirelles da Silva Aula 01 pg. 2/35SumrioSumrio1Informaes Gerais Sobre a Disciplina2Introduo aos Sistemas DistribudosProf. Joo Marcos Meirelles da Silva Aula 01 pg. 2/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosObjetivo da DisciplinaAvaliaoEmentaBibliograaSumrio1Informaes Gerais Sobre a DisciplinaObjetivo da DisciplinaAvaliaoEmentaBibliograa2Introduo aos Sistemas DistribudosProf. Joo Marcos Meirelles da Silva Aula 01 pg. 3/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosObjetivo da DisciplinaAvaliaoEmentaBibliograaObjetivoObjetivo da disciplina:Oferecer uma viso geral de programao avanada utilizando alinguagem C e JAVA e suas tecnologias derivadas na rea deTelecomunicaes.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 4/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosObjetivo da DisciplinaAvaliaoEmentaBibliograaSumrio1Informaes Gerais Sobre a DisciplinaObjetivo da DisciplinaAvaliaoEmentaBibliograa2Introduo aos Sistemas DistribudosProf. Joo Marcos Meirelles da Silva Aula 01 pg. 5/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosObjetivo da DisciplinaAvaliaoEmentaBibliograaInformaes sobre a avaliaoA avaliao do curso se dar da seguinte forma:2 Listas de Eserccios (L1 e L2)1 Projeto (P)1 Prova Final (Vericao Suplementar)M=(L1+L2+P)3Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 6/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosObjetivo da DisciplinaAvaliaoEmentaBibliograaInformaes sobre a avaliaoCondiesSe M 6 AprovadoSe 4 M< 6 VS.Se M< 4 Reprovado.OBS:Os alunos que zerem a VS devero alcanar a nota mnimade 6,0 para serem aprovados.Freqncia mnima das aulas: 75%Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 7/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosObjetivo da DisciplinaAvaliaoEmentaBibliograaSumrio1Informaes Gerais Sobre a DisciplinaObjetivo da DisciplinaAvaliaoEmentaBibliograa2Introduo aos Sistemas DistribudosProf. Joo Marcos Meirelles da Silva Aula 01 pg. 8/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosObjetivo da DisciplinaAvaliaoEmentaBibliograaEmentaIntroduo aos Sistema DistribudosProcessos ConcorrentesProcessos Leves (threads)Sincronizao de ProcessosComunicao entre ProcessosSocketsRemote Procedure Calls(RPC)Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 9/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosObjetivo da DisciplinaAvaliaoEmentaBibliograaEmentaProgramao Estruturada Programao Orientada ObjetosModelagem de Software usando UMLIntroduo Linguagem JAVAProgramao Concorrente em JAVARedes, Internet e socketsComunicaes SegurasGerncia de Redes e AplicaesProf. Joo Marcos Meirelles da Silva Aula 01 pg. 10/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosObjetivo da DisciplinaAvaliaoEmentaBibliograaSumrio1Informaes Gerais Sobre a DisciplinaObjetivo da DisciplinaAvaliaoEmentaBibliograa2Introduo aos Sistemas DistribudosProf. Joo Marcos Meirelles da Silva Aula 01 pg. 11/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosObjetivo da DisciplinaAvaliaoEmentaBibliograaBibliograaFigure: Livros adotados para a disciplina.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 12/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisSumrio1Informaes Gerais Sobre a Disciplina2Introduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisProf. Joo Marcos Meirelles da Silva Aula 01 pg. 13/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisPrograma, processo e JobProgramaUm programa um conjunto de instrues de mquina que visamrealizar alguma funo til a um usurio.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 14/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisPrograma, processo e JobProcessoUm processo um pouco mais que um programa pois incluitambm [1]:Espao de endereamento (contm o programa executvel, osdados 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/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisSumrio1Informaes Gerais Sobre a Disciplina2Introduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisProf. Joo Marcos Meirelles da Silva Aula 01 pg. 16/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisAntigamente....No havia Sistemas OperacionaisOs aplicativos (programas) tinham de cuidar de tudo(literalmente);O programador tinha que ter um alto grau de conhecimentoda mquina onde o programa seria compilado e executado;A execuo do programa em outra mquina (que no fosseidntica), muitas vezes necessitava de ajustes no programa euma recompilao;No havia o conceito de portabilidade de software, nem o dereusabilidade;E a conabilidade?Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 17/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisAtualmente...Os Sistemas Operacionais gerenciam bem os recursosdisponveis na mquina...... oferecem servios aos usurios (sejam programas oupessoas), e......retiram um nus grande sobre o programador - a doconhecimento de baixo nvel da mquina;1Programar cou mais fcil;2J possvel pensar na tal da portabilidade;3Mais fcil criar programas de maior conabilidade.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 18/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisMas nem sempre foi assim...1Os primeiros Sistemas Operacionais (SO) erammonoprogramveis, ou seja, um nico programa de usurioera executado por vez (inteiramente) processamento emlote (batch);2A necessidade de executar mais programas levou multiprogramao.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 19/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisSumrio1Informaes Gerais Sobre a Disciplina2Introduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisProf. Joo Marcos Meirelles da Silva Aula 01 pg. 20/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisMultiprogramaoCada programa executado em uma fatia de tempo;Eventos podem provocar a troca de controle do processadorde um programa para outro programa;O processo de troca de controle do processador entre osdiversos programas chama-se escalonamento e o mdulo dosistema operacional que realiza este processo o escalonador.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 21/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisMultiprogramaoFigure: Um sistema multiprogramado com trs jobs na memria.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 22/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisTipos de EscalonamentoFIFO (First-In First-Ou)Shortest-Job FirstRound-RobinProf. Joo Marcos Meirelles da Silva Aula 01 pg. 23/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisEscalonamento com PrioridadesIdeiaCada processo possui uma prioridade associada, e o processopronto para executar com maior prioridade quem ganha oprocessador.Prioridade DinmicaPara evitar que processos com alta prioridade executemindenidamente, o escalonador pode baixar a prioridade doprocesso em execuo a cada ciclo de relgio at que ocorra atroca do controle da CPU.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 24/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisEstados de Execuo dos ProcessosUm processo em execuo deixa o controle da CPU nas seguintessituaes: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/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisEstados de Execuo dos ProcessosExistem 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/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisEstados de Execuo dos ProcessosREADYNo estado de pronto, o processo est apto a tomar o controle doprocessador, esperando a sua vez.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 27/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisEstados de Execuo dos ProcessosWAITNo estado de espera, o processo est aguardando o resultado dealguma operao solicitada que necessitar de muito tempo paraser completada, como leitura/gravao em disco ou interao como usurio.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 28/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisEstados de Execuo dos ProcessosEXECNo estado de execuo, o processo tem o controle do processadorat que sua fatia de tempo termine, outro processo com maiorprioridade requisite o processador ou que uma operao demoradaseja solicitada.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 29/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisKernel dos Sistema OperacionaisMonoltico estruturado em um nico arquivo binrio, um nicoprocesso que executa inteiramente em modoprotegido. Possui performance superior na passagemde mensagens, mas muito pouco exvel.Micro-Kernel Apenas uma pequena parte do ncleo executa emmodo protegido para acessar diretamente o hardware,promover comunicao entre processos e gerenciar amemria. O restante do sistema roda em modousurio. Possui um grande exibilidade, apesar daperformance inferior ao monoltico na passagem demensagens.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 30/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisChamadas de SistemaDenioOs servios oferecidos pelo sistema operacional so acessveis aosprogramas sob a forma de chamadas de sistema. Elas so asinterfaces entre os processos em execuo e o sistema operacionale geralmente so implementadas com instrues de baixo nvel.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 31/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisChamadas de SistemaAs chamadas de sistemas podem estar relacionadas a:Controle de ProcessosManipulao de ArquivosManipulao de DispositivosComunicaoExemplos de chamadas de sistema relacionados a controle deprocessos: fork, wait, exit, exec, kill, signal e sleep.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 32/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisSumrio1Informaes Gerais Sobre a Disciplina2Introduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisProf. Joo Marcos Meirelles da Silva Aula 01 pg. 33/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisConsideraes Finais1Os sistemas distribudos podem ser potencialmente maisconveis devido multiplicidade e autonomia de suas partes;2Os sistemas distribudos podem reetir a estruturaorganizacional ou geogrca qual eles servem.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 34/35Informaes Gerais Sobre a DisciplinaIntroduo aos Sistemas DistribudosDenies IniciaisEvoluo da ProgramaoMultiprogramaoConsideraes FinaisReferncias[1] Tanenbaum, A.S., Sistemas Operacionais Modernos, 2a.edio, Pearson Prentice-Hall.Prof. Joo Marcos Meirelles da Silva Aula 01 pg. 35/35