Sistemas Operacionais Aulas 02, 03, 04 - Conceitos de  Hardware e Software
Introdução Conceitos Arquitetura de computadores Hardware Software
Hardware Um sistema computacional é um conjunto de circuitos eletrônicos interligados (hardware) Subsistemas básicos (unidades funcionais) Processador ou Unidade Central de Processsamento Memória principal Dispositivos de entrada e saída (E/S)
Processador Gerencia todo o sistema computacional controlando as operações realizadas em cada unidade funcional Controlar e executar instruções presentes na memória principal, por meio de operações básicas como somar, subtrair, comparar e movimentar dados
Processador É composto de: Unidade de controle (UC) Gerencia as atividades de todos os componentes do computador, como a gravação de dados em discos ou busca de instruções Unidade lógica e aritmética (ULA) Realiza operações lógicas (testes e comparações) e aritméticas (adições e subtrações) Registradores Armazenam dados temporariamente
Memória principal Memória principal, primária ou real é o local onde são armazenados instruções e dados É composta de unidades de acesso chamadas células, sendo cada uma composta de um determinado número de bits O acesso ao conteúdo de uma célula é feito pela especificação de um número chamado endereço no registrador de endereço de memória (Memory Address Register)
Memória cache Memória volátil de alta velocidade, porém com pequena capacidade de armazenamento Tempo de acesso menor que a memória principal Armazena uma pequena parte do conteúdo da memória principal Se a informação não estiver presente no cache, o processador acessa a memória principal Durante a execução de um programa, as referências às instruções e dados tendem a estar em endereços próximos Programas estrututurados Alto custo, baixa capacidade de armazenamento
Memória secundária Meio permanente (não volátil) de armazenamento de programas e dados Acesso lento, comparado a memória principal Capacidade de armazenamento superior Disquete, HD, CD, DVD, fita magnética
Dispositivo de E/S Permitir comunicação entre o sistema computacional e mundo externo Categorias Memória secundária Custo relativamente baixo Interface usuário-máquina Teclado, monitor de vídeo, impressora, plotter, etc
Barramento ou Bus Meio físico de comunicação entre as unidades funcionais de um sistema computacional Dados, sinais de controle, endereços trafegam por seus condutores entre processadores, memórias e dispositivos de E/S Linhas de controle e linhas de dados
Barramento ou Bus Classificação de barramentos Processador-memória Curta extensão, alta velocidade Costumam ser proprietários Entrada e saída Maior extensão, baixa velocidade, conexão de diferentes dispositivos Costumam ser padronizados (PCI, SCSI) Backplane O barramento de E/S não se conecta diretamente ao barramento processador-memória. Existe um barramento de backplane que integra os dois barramentos
Pipelining Técnica que permite ao processador executar múltiplas instruções paralelamente em estágios diferentes A execução de uma instrução é dividida em subtarefas, como as fases de busca da instrução e dos operandos, execução e armazenamento dos dados O pipelining pode ser empregado em sistemas com um ou mais processadores, em diversos níveis Técnica mais usada para aumentar o paralelismo
Arquitetura Linguagem de máquina Conjunto definido de instruções de máquina Arquitetura RISC CISC
Arquitetura RISC Reduced Instruction Set Computer Possui poucas instruções de máquina executadas diretamente pelo hardware Muitos registradores Pouca lógica de controle Instruçoes executadas rapidamente Poucas instruções acessam a memória principal Facilita a implementação de pipelining
Arquitetura CISC Complex Instruction Set Computer Possui instruções complexas interpretadas por microprogramas Lógica de controle complexa Número de registradores pequeno Qualquer instrução referencia a memória principal Difícil fazer pipelining
Microprogramação Definem a linguagem de máquina de um computadore CISC O código executável de um processador CISC é interpretado por microprogramas durante sua execução, gerando microinstruções, que finalmente são executadas pelo hardware Para cada instrução em linguagem de máquina, existe um microprograma
Software Conjunto de programas, utilizado como interface entre as necessidades dos usuários e as capacidades do hardware A utilização adequada do software torna o trabalho dos usuários mais simples e eficiente
Tradutor Linguagem de máquina Linguagens de montagem (assembly) Linguagens de alto nível Tradutor converte a representação simbólica das instruções é traduzida para código de máquina O código gerado pelo tradutor é chamado de módulo-objeto e normalmente não pode ser diretamente executado, precisando de um linker Dependendo do código fonte, divide-se em montador e compilador
Montador e compilador Montador (assembler)  Traduz o programa-fonte, escrito em linguagem de montagem, para um programa objeto não executável Baixa portabilidade Compilador Traduz o programa-fonte, escrito em linguagem de alto nível, para um programa objeto não executável Alta portabilidade
Interpretador Tradutor que não gera código-objeto Traduz e executa as instruções imediatamente Maior tempo gasto na tradução das instruções toda vez que for executado Permite tipos de dados dinâmicos Mais flexível
Linker ou editor de ligação Gera, a partir de um ou mais módulos objeto, um único programa executável Resolve todas as referências simbólicas existentes entre os módulos Reservar memória para a execução do programa Pesquisa em bibliotecas do sistema ou criadas pelo usuário Bibliotecas são arquivos que contém diversos módulos-objeto e/ou definições de símbolos
Linker ou editor de ligação Reloca os programas, ou seja, determina a região de memória onde o programa será carregado para execução Link estático A relocação é feita em tempo de linkedição Link dinâmico A relocação é feita em tempo de execução pelo loader Sobrecarga de processamento
Loader ou carregador Responsável por carregar na memória principal principal um programa para ser executado Procedimento de carga varia de acordo com o código gerado pelo linker Código absoluto Endereço inicial fixo, tamanho do módulo Código relocável Carregado em qualquer posição da memória
Debugger ou depurador Utilitário que permite ao desenvolvedor acompanhar toda a execução de um programa a fim de detectar erros na lógica Acompanha a execução instrução por instrução Alteração ou inspeção do conteúdo das variáveis Pontos de interrupção (breakpoints) Visualização de variáveis ou valores (watchpoints)
Shell ou interpretador de comandos Permite que o usuário se comunique com o sistema operacional Acesso a funções e rotinas do sistema Os comandos são enviados para o shell, que verifica sua sintaxe, envia mensagens de aviso ou erro e faz chamadas a rotinas do sistema Linguagem de comandos ou de controle Em geral, não faz parte do SO
Ativação/desativação do sistema Inicialmente todo o SO está na memória secundária Após o computador ser ligado, o SO é carregado para a memória principal (ativação do sistema, bootstrap ou boot) O procedimento varia em função do equipamento Além do SO, também ocorre a execução de arquivos de inicialização Na maioria dos SO existe também um procedimento de desativação (shutdown) Permite a desativação ordenada, garantindo sua integridade

SO - Aula 02 - Conceitos

  • 1.
    Sistemas Operacionais Aulas02, 03, 04 - Conceitos de Hardware e Software
  • 2.
    Introdução Conceitos Arquiteturade computadores Hardware Software
  • 3.
    Hardware Um sistemacomputacional é um conjunto de circuitos eletrônicos interligados (hardware) Subsistemas básicos (unidades funcionais) Processador ou Unidade Central de Processsamento Memória principal Dispositivos de entrada e saída (E/S)
  • 4.
    Processador Gerencia todoo sistema computacional controlando as operações realizadas em cada unidade funcional Controlar e executar instruções presentes na memória principal, por meio de operações básicas como somar, subtrair, comparar e movimentar dados
  • 5.
    Processador É compostode: Unidade de controle (UC) Gerencia as atividades de todos os componentes do computador, como a gravação de dados em discos ou busca de instruções Unidade lógica e aritmética (ULA) Realiza operações lógicas (testes e comparações) e aritméticas (adições e subtrações) Registradores Armazenam dados temporariamente
  • 6.
    Memória principal Memóriaprincipal, primária ou real é o local onde são armazenados instruções e dados É composta de unidades de acesso chamadas células, sendo cada uma composta de um determinado número de bits O acesso ao conteúdo de uma célula é feito pela especificação de um número chamado endereço no registrador de endereço de memória (Memory Address Register)
  • 7.
    Memória cache Memóriavolátil de alta velocidade, porém com pequena capacidade de armazenamento Tempo de acesso menor que a memória principal Armazena uma pequena parte do conteúdo da memória principal Se a informação não estiver presente no cache, o processador acessa a memória principal Durante a execução de um programa, as referências às instruções e dados tendem a estar em endereços próximos Programas estrututurados Alto custo, baixa capacidade de armazenamento
  • 8.
    Memória secundária Meiopermanente (não volátil) de armazenamento de programas e dados Acesso lento, comparado a memória principal Capacidade de armazenamento superior Disquete, HD, CD, DVD, fita magnética
  • 9.
    Dispositivo de E/SPermitir comunicação entre o sistema computacional e mundo externo Categorias Memória secundária Custo relativamente baixo Interface usuário-máquina Teclado, monitor de vídeo, impressora, plotter, etc
  • 10.
    Barramento ou BusMeio físico de comunicação entre as unidades funcionais de um sistema computacional Dados, sinais de controle, endereços trafegam por seus condutores entre processadores, memórias e dispositivos de E/S Linhas de controle e linhas de dados
  • 11.
    Barramento ou BusClassificação de barramentos Processador-memória Curta extensão, alta velocidade Costumam ser proprietários Entrada e saída Maior extensão, baixa velocidade, conexão de diferentes dispositivos Costumam ser padronizados (PCI, SCSI) Backplane O barramento de E/S não se conecta diretamente ao barramento processador-memória. Existe um barramento de backplane que integra os dois barramentos
  • 12.
    Pipelining Técnica quepermite ao processador executar múltiplas instruções paralelamente em estágios diferentes A execução de uma instrução é dividida em subtarefas, como as fases de busca da instrução e dos operandos, execução e armazenamento dos dados O pipelining pode ser empregado em sistemas com um ou mais processadores, em diversos níveis Técnica mais usada para aumentar o paralelismo
  • 13.
    Arquitetura Linguagem demáquina Conjunto definido de instruções de máquina Arquitetura RISC CISC
  • 14.
    Arquitetura RISC ReducedInstruction Set Computer Possui poucas instruções de máquina executadas diretamente pelo hardware Muitos registradores Pouca lógica de controle Instruçoes executadas rapidamente Poucas instruções acessam a memória principal Facilita a implementação de pipelining
  • 15.
    Arquitetura CISC ComplexInstruction Set Computer Possui instruções complexas interpretadas por microprogramas Lógica de controle complexa Número de registradores pequeno Qualquer instrução referencia a memória principal Difícil fazer pipelining
  • 16.
    Microprogramação Definem alinguagem de máquina de um computadore CISC O código executável de um processador CISC é interpretado por microprogramas durante sua execução, gerando microinstruções, que finalmente são executadas pelo hardware Para cada instrução em linguagem de máquina, existe um microprograma
  • 17.
    Software Conjunto deprogramas, utilizado como interface entre as necessidades dos usuários e as capacidades do hardware A utilização adequada do software torna o trabalho dos usuários mais simples e eficiente
  • 18.
    Tradutor Linguagem demáquina Linguagens de montagem (assembly) Linguagens de alto nível Tradutor converte a representação simbólica das instruções é traduzida para código de máquina O código gerado pelo tradutor é chamado de módulo-objeto e normalmente não pode ser diretamente executado, precisando de um linker Dependendo do código fonte, divide-se em montador e compilador
  • 19.
    Montador e compiladorMontador (assembler) Traduz o programa-fonte, escrito em linguagem de montagem, para um programa objeto não executável Baixa portabilidade Compilador Traduz o programa-fonte, escrito em linguagem de alto nível, para um programa objeto não executável Alta portabilidade
  • 20.
    Interpretador Tradutor quenão gera código-objeto Traduz e executa as instruções imediatamente Maior tempo gasto na tradução das instruções toda vez que for executado Permite tipos de dados dinâmicos Mais flexível
  • 21.
    Linker ou editorde ligação Gera, a partir de um ou mais módulos objeto, um único programa executável Resolve todas as referências simbólicas existentes entre os módulos Reservar memória para a execução do programa Pesquisa em bibliotecas do sistema ou criadas pelo usuário Bibliotecas são arquivos que contém diversos módulos-objeto e/ou definições de símbolos
  • 22.
    Linker ou editorde ligação Reloca os programas, ou seja, determina a região de memória onde o programa será carregado para execução Link estático A relocação é feita em tempo de linkedição Link dinâmico A relocação é feita em tempo de execução pelo loader Sobrecarga de processamento
  • 23.
    Loader ou carregadorResponsável por carregar na memória principal principal um programa para ser executado Procedimento de carga varia de acordo com o código gerado pelo linker Código absoluto Endereço inicial fixo, tamanho do módulo Código relocável Carregado em qualquer posição da memória
  • 24.
    Debugger ou depuradorUtilitário que permite ao desenvolvedor acompanhar toda a execução de um programa a fim de detectar erros na lógica Acompanha a execução instrução por instrução Alteração ou inspeção do conteúdo das variáveis Pontos de interrupção (breakpoints) Visualização de variáveis ou valores (watchpoints)
  • 25.
    Shell ou interpretadorde comandos Permite que o usuário se comunique com o sistema operacional Acesso a funções e rotinas do sistema Os comandos são enviados para o shell, que verifica sua sintaxe, envia mensagens de aviso ou erro e faz chamadas a rotinas do sistema Linguagem de comandos ou de controle Em geral, não faz parte do SO
  • 26.
    Ativação/desativação do sistemaInicialmente todo o SO está na memória secundária Após o computador ser ligado, o SO é carregado para a memória principal (ativação do sistema, bootstrap ou boot) O procedimento varia em função do equipamento Além do SO, também ocorre a execução de arquivos de inicialização Na maioria dos SO existe também um procedimento de desativação (shutdown) Permite a desativação ordenada, garantindo sua integridade