300 likes | 542 Views
Sistemas Operacionais. Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari. Conceitos de Hardware e Software; Concorrência. 06/08/2013. Tópicos abordados. Rápida revisão de hardware Conceitos de software: Tradutor;
E N D
Sistemas Operacionais Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari
Tópicos abordados • Rápida revisão de hardware • Conceitos de software: • Tradutor; • Interpretador; • Linker; • Loader; • Depurador; • Concorrência; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Sistemas Operacionais Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013 Revisão de Hardware
Hardware • Qualquer dispositivo computacional é composto por um conjunto de hardware e software; • Hardware são os componentes físicos dos computadores; • Software são componentes lógicos dos computadores; • Não existe hardware sem software nem software sem hardware; • Todos os componentes de um sistema computacional são agrupados em três subsistemas chamados de unidades funcionais: • CPU; • Memória principal; • I/O. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
CPU • É o principal componente de um computador, gerenciando todo o sistema computacional; • Controla e executa instruções armazenadas na memória principal; • Possui seus subsistemas, como: • Unidade de controle; • Unidade lógica e aritmética; • Registradores, etc. • Cada subsistema pode ter outros componentes como: • Unidade de controle: • PC; • AC; • IR, etc. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Memória principal • É a principal memória do computador já que sem ela o sistema não funcionará; • Armazena dados binários em células geralmente possuindo 8 bits; • As células são endereçadas; • Os endereços são representados pelos bits apontados pelo MAR; • O conteúdo do endereço é representado pelos bits armazenados no MBR; • Geralmente são voláteis e mais rápidas que as memórias secundárias, porém menores que estas; • Geralmente são maiores e mais lentas que as memórias cache. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Memória cache • Memória presente internamente na CPU ( ou muito próximo a ela); • Mais rápida que a memória principal; • Menos densa, pois é muito grande e cara; • Agiliza o processo de leitura e escrita na memória principal; • Armazena cópia de dados acessados da memória principal: • Localidade espacial; • Localidade temporal; • A maioria dos computadores atuais possuem vários níveis de cache; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Memória secundária • São memórias não voláteis; • Possuem acesso muito lento para leitura e gravação; • Possuem densidade elevada a baixo custo por bit; • Estão na base da hierarquia de memória: Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Dispositivos de I/O • Possibilitam a comunicação do computador com o ambiente externo; • Pode ser classificados em dois grupos: • Usados como memória secundária: • CD/DVD; • HD; • Fitas; • Usados como interface com o homem-máquina: • Teclado e mouse; • Monitor; • Impressora; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Barramento • Meios de comunicação que interligam as unidades funcionais; • Possuem linhas de controle, de dados e de endereços; • Geralmente são compartilhados; • Diversos dispositivos podem estar interconectados em um barramento compartilhado: • Um dispositivo envia dados e todos recebem; • Apenas um dispositivo pode enviar dados por vez. • Tipicamente os barramentos são paralelos, ou seja possuem várias linhas de comunicação; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Sistemas Operacionais Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013 Conceitos de software
Software • Sistemas computacionais não são úteis sem softwares; • Um software é um conjunto de instruções que serão executadas pelo processador; • Usaremos duas distinções de softwares no decorrer da disciplina: • Softwares utilitários: • Ligados diretamente com serviços do SO, como compiladores, linkerse depuradores. • Softwares aplicativos ou aplicações: • De uso ou desenvolvido pelo usuário. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Tradutor • Nos primeiros computadores não existia SO; • Programadores eram obrigados a programar o hardware para executar programas; • Programadores deveriam possuir conhecimentos da arquitetura que programavam; • Linguagens de montagem (Assembly) e linguagens de alto nível retiraram essa responsabilidade do programador; • Ficou mais fácil programar, documentar e manter programas; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Tradutor • Mas programas escritos em linguagens de alto nível não podem ser processados diretamente. • Para serem processados os programas precisam ser convertidos em linguagem de máquina (código binário); • Essa conversão é feita por um utilitário chamado de tradutor; • O módulo gerado pelo tradutor é chamado módulo-objeto; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Tradutor • Existem dois tipos de tradutores: • Montadores; • Compiladores; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Montador • Também chamado de Assembler; • Responsável por converter o programa-fonte em Assembly em programa-objeto (Módulo-objeto); • Cada arquitetura de processador possui sua linguagem de montagem ligeiramente diferente; • Portanto, programas em Assembly não são portáveis; • Assembler é mais simples que o compilador. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Compilador • Responsável por converter o programa em linguagem de alto nível em programa-objeto (Módulo-objeto); • Linguagens de alto nível não estão restritas a uma arquitetura, ficando a cargo do compilador adequá-la. • Isso permite portabilidade do código fonte para outras arquiteturas; • Exemplos: C, C++, Pascal, etc. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Interpretador • Ao contrário do montador e do compilador, não gera módulo-objeto • Durante a execução do programa, cada instrução é interpretada; • Gasta-se mais tempo no processo de interpretação; • Exemplos de linguagens interpretadas são: • Basic, Perl; Java; Lisp; PHP; JavaScript; ASP; C#; Phyton • Linguagens interpretadas geralmente necessitam de uma máquina virtual para a execução; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Linker • Linker ou editor de ligação ligam um ou mais módulo objeto em um único programa executável; • Resolvem todas as referências simbólicas entre os módulos e reserva memória para a execução do programa • Para resolver referências são usados bibliotecas do SO ou do usuário; • Bibliotecas possuem módulos-objetos ou símbolos; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Linker Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Loader • Loader ou carregador é responsável por carregar o programa executável na memória; • Se o código executável for do tipo absoluto o loader simplesmente traz para a memória principal o programa da memória secundária; • Se o código executável for realocável, o loader deve definir um endereço de memória principal disponível; • Depois de definir o endereço de memória carrega o programa; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Depurador • Programas são propensos a erros de lógica e sintaxe; • Depuradores servem para facilitar o desenvolvimento e a correção de problemas; • Permite acompanhar a execução do programa linha a linha possibilitando: • Acompanhar a execução instrução por instrução; • Visualização e alteração de variáveis; • Implementar pontos de parada; • Implementar watchpoints – envio de mensagem quando uma variável é modificada. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Juntando tudo Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Sistemas Operacionais Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013 concorrência
Concorrência • Sistemas operacionais executam instruções ao mesmo tempo que ocorrem outras operações; • Isso torna o SO multiprogramável, controlando vários processos paralelos; • Desta forma os sistemas mutiprogramáveis são concorrentes; • A concorrência se dá pelo uso do processador por parte dos processos paralelos; • Essa concorrência deve ser de forma mais ordenada e mais justa possível. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Concorrência em sistemas Monoprogramáveis • Sistemas monoprogramáveis permitem apenas a execução de um programa por vez; • O processador fica dedicado a este programa em sua totalidade de tempo de execução; • Ocorre desperdício de uso de CPU; • Ocorre desperdício de memória principal; • Não existe compartilhamento de periféricos; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Concorrência em sistemas Multiprogramáveis • Sistemas multiprogramáveis permitem melhor uso de CPU e memória principal; • Existem vários programas carregados na memória concorrendo pela CPU; • É possível o compartilhamento de periféricos; • A maioria dos sistemas operacionais atuais utilizam essa técnica; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Concorrência Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Atividades • Interrupções e exceções; • Operações de I/O; • Buffering; • Spooling; • Reentrância; • Pg 52 do pdf. • Pg 41 do livro. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013