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
Sumário Sumário 1 Informações Gerais Sobre a Disciplina 2 Prof. João Marcos Meirelles da Silva Aula 01 pg. 2/35
Sumário Sumário 1 Informações Gerais Sobre a Disciplina 2 Prof. João Marcos Meirelles da Silva Aula 01 pg. 2/35
Sumário Informações Gerais Sobre a Disciplina Objetivo da Disciplina Avaliação Ementa Bibliografia 1 Informações Gerais Sobre a Disciplina Objetivo da Disciplina Avaliação Ementa Bibliografia 2 Prof. João Marcos Meirelles da Silva Aula 01 pg. 3/35
Objetivo Informações Gerais Sobre a Disciplina Objetivo da Disciplina Avaliação Ementa Bibliografia Objetivo da disciplina: Oferecer uma visão geral de programação avançada utilizando a linguagem C e JAVA e suas tecnologias derivadas na área de Telecomunicações. Prof. João Marcos Meirelles da Silva Aula 01 pg. 4/35
Sumário Informações Gerais Sobre a Disciplina Objetivo da Disciplina Avaliação Ementa Bibliografia 1 Informações Gerais Sobre a Disciplina Objetivo da Disciplina Avaliação Ementa Bibliografia 2 Prof. João Marcos Meirelles da Silva Aula 01 pg. 5/35
Informações Gerais Sobre a Disciplina Informações sobre a avaliação Objetivo da Disciplina Avaliação Ementa Bibliografia A avaliação do curso se dará da seguinte forma: 2 Listas de Esercícios (L 1 e L 2 ) 1 Projeto (P) 1 Prova Final (Verificação Suplementar) M = (L 1 + L 2 + P) 3 Prof. João Marcos Meirelles da Silva Aula 01 pg. 6/35
Informações Gerais Sobre a Disciplina Informações sobre a avaliação Objetivo da Disciplina Avaliação Ementa Bibliografia Condições Se M 6 Aprovado Se 4 M < 6 VS. Se M < 4 Reprovado. OBS: Os alunos que fizerem a VS deverão alcançar a nota mínima de 6,0 para serem aprovados. Freqüência mínima das aulas: 75% Prof. João Marcos Meirelles da Silva Aula 01 pg. 7/35
Sumário Informações Gerais Sobre a Disciplina Objetivo da Disciplina Avaliação Ementa Bibliografia 1 Informações Gerais Sobre a Disciplina Objetivo da Disciplina Avaliação Ementa Bibliografia 2 Prof. João Marcos Meirelles da Silva Aula 01 pg. 8/35
Ementa Informações Gerais Sobre a Disciplina Objetivo da Disciplina Avaliação Ementa Bibliografia Introdução aos Sistema Distribuídos Processos Concorrentes Processos Leves (threads) Sincronização de Processos Comunicação entre Processos Sockets Remote Procedure Calls (RPC) Prof. João Marcos Meirelles da Silva Aula 01 pg. 9/35
Ementa Informações Gerais Sobre a Disciplina Objetivo da Disciplina Avaliação Ementa Bibliografia Programação Estruturada Programação Orientada à Objetos Modelagem de Software usando UML Introdução à Linguagem JAVA Programação Concorrente em JAVA Redes, Internet e sockets Comunicações Seguras Gerência de Redes e Aplicações Prof. João Marcos Meirelles da Silva Aula 01 pg. 10/35
Sumário Informações Gerais Sobre a Disciplina Objetivo da Disciplina Avaliação Ementa Bibliografia 1 Informações Gerais Sobre a Disciplina Objetivo da Disciplina Avaliação Ementa Bibliografia 2 Prof. João Marcos Meirelles da Silva Aula 01 pg. 11/35
Informações Gerais Sobre a Disciplina Objetivo da Disciplina Avaliação Ementa Bibliografia Bibliografia Figure: Livros adotados para a disciplina. Prof. João Marcos Meirelles da Silva Aula 01 pg. 12/35
Sumário Informações Gerais Sobre a Disciplina 1 Informações Gerais Sobre a Disciplina 2 Prof. João Marcos Meirelles da Silva Aula 01 pg. 13/35
Informações Gerais Sobre a Disciplina Programa, processo e Job Programa Um programa é um conjunto de instruções de máquina que visam realizar alguma função útil a um usuário. Prof. João Marcos Meirelles da Silva Aula 01 pg. 14/35
Informações Gerais Sobre a Disciplina Programa, processo e Job Processo Um processo é um pouco mais que um programa pois inclui também [1]: Espaço de endereçamento (contém o programa executável, os dados do programa e sua pilha); Conjunto de registradores (incluindo o Program Counter); stack pointer; demais informações necessárias para execução. Prof. João Marcos Meirelles da Silva Aula 01 pg. 15/35
Sumário Informações Gerais Sobre a Disciplina 1 Informações Gerais Sobre a Disciplina 2 Prof. João Marcos Meirelles da Silva Aula 01 pg. 16/35
Antigamente... Informações Gerais Sobre a Disciplina Não havia Sistemas Operacionais Os aplicativos (programas) tinham de cuidar de tudo (literalmente); O programador tinha que ter um alto grau de conhecimento da máquina onde o programa seria compilado e executado; A execução do programa em outra máquina (que não fosse idêntica), muitas vezes necessitava de ajustes no programa e uma recompilação; Não havia o conceito de portabilidade de software, nem o de reusabilidade; E a confiabilidade? Prof. João Marcos Meirelles da Silva Aula 01 pg. 17/35
Atualmente... Informações Gerais Sobre a Disciplina Os Sistemas Operacionais gerenciam bem os recursos disponíveis na máquina...... oferecem serviços aos usuários (sejam programas ou pessoas), e......retiram um ônus grande sobre o programador - a do conhecimento de baixo nível da máquina; 1 Programar ficou mais fácil; 2 Já é possível pensar na tal da portabilidade; 3 Mais fácil criar programas de maior confiabilidade. Prof. João Marcos Meirelles da Silva Aula 01 pg. 18/35
Informações Gerais Sobre a Disciplina Mas nem sempre foi assim... 1 Os primeiros Sistemas Operacionais (SO) eram monoprogramáveis, ou seja, um único programa de usuário era executado por vez (inteiramente) processamento em lote (batch); 2 A necessidade de executar mais programas levou à multiprogramação. Prof. João Marcos Meirelles da Silva Aula 01 pg. 19/35
Sumário Informações Gerais Sobre a Disciplina 1 Informações Gerais Sobre a Disciplina 2 Prof. João Marcos Meirelles da Silva Aula 01 pg. 20/35
Informações Gerais Sobre a Disciplina 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 módulo do sistema operacional que realiza este processo é o escalonador. Prof. João Marcos Meirelles da Silva Aula 01 pg. 21/35
Informações Gerais Sobre a Disciplina Figure: Um sistema multiprogramado com três jobs na memória. Prof. João Marcos Meirelles da Silva Aula 01 pg. 22/35
Informações Gerais Sobre a Disciplina Tipos de Escalonamento FIFO (First-In First-Ou) Shortest-Job First Round-Robin Prof. João Marcos Meirelles da Silva Aula 01 pg. 23/35
Informações Gerais Sobre a Disciplina Escalonamento com Prioridades Ideia Cada processo possui uma prioridade associada, e o processo pronto para executar com maior prioridade é quem ganha o processador. Prioridade Dinâmica Para evitar que processos com alta prioridade executem indefinidamente, o escalonador pode baixar a prioridade do processo em execução a cada ciclo de relógio até que ocorra a troca do controle da CPU. Prof. João Marcos Meirelles da Silva Aula 01 pg. 24/35
Informações Gerais Sobre a Disciplina Estados de Execução dos Processos Um processo em execução deixa o controle da CPU nas seguintes situações: Término normal do programa; A entrada de um processo de maior prioridade; A solicitação de um evento ou recurso de sistema; Término da sua fatia de tempo. Prof. João Marcos Meirelles da Silva Aula 01 pg. 25/35
Informações Gerais Sobre a Disciplina Estados de Execução dos Processos Existem 3 estados básicos em que um processo pode alternar: Pronto (Ready) Espera (wait) Execução (Exec) Figure: Estados de execução dos processos. Prof. João Marcos Meirelles da Silva Aula 01 pg. 26/35
Informações Gerais Sobre a Disciplina Estados de Execução dos Processos READY No estado de pronto, o processo está apto a tomar o controle do processador, esperando a sua vez. Prof. João Marcos Meirelles da Silva Aula 01 pg. 27/35
Informações Gerais Sobre a Disciplina Estados de Execução dos Processos WAIT No estado de espera, o processo está aguardando o resultado de alguma operação solicitada que necessitará de muito tempo para ser completada, como leitura/gravação em disco ou interação com o usuário. Prof. João Marcos Meirelles da Silva Aula 01 pg. 28/35
Informações Gerais Sobre a Disciplina Estados de Execução dos Processos EXEC No estado de execução, 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 operação demorada seja solicitada. Prof. João Marcos Meirelles da Silva Aula 01 pg. 29/35
Informações Gerais Sobre a Disciplina Kernel dos Sistema Operacionais Monolítico É estruturado em um único arquivo binário, um único processo que executa inteiramente em modo protegido. Possui performance superior na passagem de mensagens, mas é muito pouco flexível. Micro-Kernel Apenas uma pequena parte do núcleo executa em modo protegido para acessar diretamente o hardware, promover comunicação entre processos e gerenciar a memória. O restante do sistema roda em modo usuário. Possui um grande flexibilidade, apesar da performance inferior ao monolítico na passagem de mensagens. Prof. João Marcos Meirelles da Silva Aula 01 pg. 30/35
Informações Gerais Sobre a Disciplina Chamadas de Sistema Definição Os serviços oferecidos pelo sistema operacional são acessíveis aos programas sob a forma de chamadas de sistema. Elas são as interfaces entre os processos em execução e o sistema operacional e geralmente são implementadas com instruções de baixo nível. Prof. João Marcos Meirelles da Silva Aula 01 pg. 31/35
Informações Gerais Sobre a Disciplina Chamadas de Sistema As chamadas de sistemas podem estar relacionadas a: Controle de Processos Manipulação de Arquivos Manipulação de Dispositivos Comunicação Exemplos de chamadas de sistema relacionados a controle de processos: fork, wait, exit, exec, kill, signal e sleep. Prof. João Marcos Meirelles da Silva Aula 01 pg. 32/35
Sumário Informações Gerais Sobre a Disciplina 1 Informações Gerais Sobre a Disciplina 2 Prof. João Marcos Meirelles da Silva Aula 01 pg. 33/35
Informações Gerais Sobre a Disciplina 1 Os sistemas distribuídos podem ser potencialmente mais confiáveis devido à multiplicidade e autonomia de suas partes; 2 Os sistemas distribuídos podem refletir a estrutura organizacional ou geográfica à qual eles servem. Prof. João Marcos Meirelles da Silva Aula 01 pg. 34/35
Referências Informações Gerais Sobre a Disciplina [1] Tanenbaum, A.S., Sistemas Operacionais Modernos, 2a. edição, Pearson Prentice-Hall. Prof. João Marcos Meirelles da Silva Aula 01 pg. 35/35