Sistemas Operacionais Introdução Thiago Leite [email protected] Bibliografia • TANENBAUM, Andrew S. SISTEMAS OPERACIONAIS MODERNOS. 3ª Edição. Pearson Education do Brasil LTDA. São Paulo. 2003. Bibliografia • SILBERSCHATZ, Abraham; GALVIN, Peter; GAGNE, Greg. FUNDAMENTOS DE SISTEMAS OPERACIONAIS, 8a. Edição, Editora LTC, 2010. Bibliografia • MACHADO, Francis; MAIA, Luiz. ARQUITETURA DE SISTEMAS OPERACIONAIS. 3ª Edição. LTC. Rio de Janeiro. 2002. Ementa 1. Introdução 2. Processos e threads 3. Gerenciamento de memória 4. Sistemas de arquivos Avaliação • 3 avaliações individuais em sala (2.5 pontos cada) • Serão consideradas as duas maiores notas • Não há reposição das avaliações • Datas a serem definidas • Prova Regimental Integralizada (5 pontos) • Não há arredondamento de notas Presença em Sala de Aula • Limite de 20 faltas • 4 faltas por dia de aula (aulas duplas) • Presença do aluno será cobrada Ferramenta de Trabalho: SOSim http://www.training.com.br/sosim/index_v12.htm Instituto de Tecnologia de Massachusetts • Acesso a todo o material da universidade • MitOpenCourseWare • http://ocw.mit.edu • Acesso a parte do conteúdo em português • Parceria entre MIT e Universia • http://mit.universia.com.br Cursos Stanford University • Cursos online gratuitos • Livre para qualquer pessoa se inscrever • Entrega de certificado da Universidade de Stanford Cursos Piazza • Cursos online gratuitos pela plataforma Piazza • https://piazza.com/itunesu • disponível em plataforma Web e Mobile Introdução • O que é um computador básico? Processa Introdução • O que é um computador moderno? • Processador • Memória • Temporizadores • Discos • Dispositivos de apontamento • Interfaces de rede • Impressoras • ... Introdução • O que é um Sistema Operacional? • Shell é o Sistema Operacional? • GUI é o Sistema Operacional? Shell Graphical User Interface Introdução • Shell e GUI são softwares de interação com o Sistema Operacional Onde está o Sistema Operacional? Modo Usuário e Modo Núcleo Exemplo de comando: Modo Usuário ou Modo Núcleo? Exemplo de comando: Modo Usuário ou Modo Núcleo? Introdução • Instruções no nível do Sistema Operacional • Ex: read e write em disquetes de blocos de dados, número de setores, modo de • Endereços gravação, etc... • Entrada: • 13 parâmetros • 9 bytes • Saída: • 23 campos de status • 7 bytes Abstrações de Instruções Introdução • Sistema Operacional organiza o acesso ao meio • Dois usuários querendo imprimir ao mesmo tempo • Vários pedidos de escrita no mesmo arquivo • Aplicativos que recebem a mesma entrada Introdução • Sistema Operacional organiza o compartilhamento de diferentes tipos de recursos Mesa de controle de rede na regional mineira do Serpro História da Computação Introdução • Primeira concepção de computador digital • Charles Babbage (1792-1871) • Ada Lovelace (1815-1852) • Primeira “programadora” do mundo • Deu nome a linguagem Ada Introdução • Primeira Geração (1945-1955) • Primeiro computador digital • • • • • Universidade de Iowa John Vincent Atanasoff 300 válvulas não programável segundos para realizar operações simples Atanasoff–Berry Computer Introdução • Segunda geração (1955-1965) • Transistor • Mainframes • Linguagem de programação • Sistema em lote (batch) • Início primitivo dos Sistemas Operacionais Transistor • Dispositivo semicondutor • Usado para amplificar ou armazenar um estado Introdução • Sistema em Lote (Batch) • Programas executados sequencialmente • Armazenamento temporário em disco ou fita • Processamento em grupo Sistema em Lote (Batch) Programa em Cartões Introdução • Terceira geração (1965-1980) • Compatabilidade • System/360 • • • • • • Z Series Circuitos integrados Multiprogramação Spooling Timesharing Unix (1961) Circuitos Integrados Multiprogramação Tarefa 3 Tarefa 2 Tarefa 1 Sistema Operacional Partições de memória Introdução • Quarta geração (1980-presente) • Circuito integrado em larga escala • Computadores pessoais • Intel 8080 (1974) • Sistema Operacional CP/M (Control Program for Microcomputers) • disco flexível Introdução • Apple I (1976) • • 200 unidades vendidas • muito complexo para uso, restrito ao campo acadêmico vendido com um kit de montagem Emulador de Apple I Introdução • Apple II (1977) • • • hardware completo Linguagem BASIC controladores de hardware extremamente simples para a época Introdução • IBM PC (1980) • • Linguagem BASIC • Digital Research não aceitou licenciar o CP/M para o IBM PC Sistema Operacional DOS Introdução • Mouse (1963) • • Douglas Engelbart • dispositivos para capturar movimentos humanos • nunca recebeu nada por seu invento primeiro protótipo do mouse Introdução • Xerox • GUI (Graphical User Interface) • Apple Lisa e Apple Macintosh • • “Usuário não precisa conhecer comandos” Filme “Piratas do Vale do Silício” Introdução • Apple Lisa (1983) • Acrônimo para “Local Integrated System Architecture” • Primeiro computador com GUI • Steve Jobs abandonou o projeto para se dedicar ao Macintosh Introdução • Microsoft expande o projeto do MS-DOS • Windows (baseado em GUI) • Utiliza o DOS como plataforma (1985-1995) • Arquitetura 16 bits da Intel • Microsoft Windows NT (New Technology) • 32 bits • Windows NT 5.0 ou Windows 2000... Evolução do Windows Introdução • Ambiente Unix • MIT desenvolve o sistema X • Suporte a janelas dinâmicas • Gnome ou KDE • “Macintosh like” Evolução e Tipos de Unix Introdução • Afinal, qual Sistema Operacional é melhor? • Mac OS? • Windows? • Linux? Epic Rap Battles of History • Qual o melhor Sistema Operacional? Epic Rap Battles of History Epic Rap Battles of History • Conceitos apresentados • GUI • Steve Jobs abandonado quando criança • Steve Jobs absorveu muita tecnologia da Xerox • Steve Wozniak era o desenvolvedor e Steve Jobs o idealizador • Microsoft comprou parte da Apple • Softwares de estúdio utilizam muito computadores Apple • Vírus em computadores Apple Epic Rap Battles of History • Conceitos apresentados • Steve Jobs e Bill Gates eram amigos • Unix foi base para Windows e Mac OS • Unix também é desenvolvido na linguagem C • Unix está em todo lado hoje em dia (smartphones, tablets, relógios, armas militares...) • Teste de Turing - determinar se um computador pode exibir comportamento humano • http://www.inbot.com.br/sete/ • Linux pode rodar em Mac e PC Introdução • Tipos de Sistemas Operacionais • Sistemas operacionais de rede • Sistemas operacionais distribuídos • Sistemas operacionais de computadores de grande porte • Sistemas operacionais de servidores • Sistemas operacionais de multiprocessadores • Sistemas operacionais de computadores pessoais • Sistemas operacionais de computadores portáteis • Sistemas operacionais embarcados • Sistemas operacionais de nós sensores • Sistemas operacionais de tempo real • Sistemas operacionais de cartões inteligentes •… Introdução • Hardware básico de Computadores • Processador • Memória • Dispositivos de E/S • Controladores • Barramento Hardware de Computadores Introdução • Processador • Busca instruções em memória e executa • Cada arquitetura possui diferentes conjuntos de instruções • Ex: SPARC é diferente de Pentium • Registradores • acesso temporário de dados da memória Introdução • Registradores especiais • Ponteiro de pilha • • endereço do topo da pilha da rotina Contador de programa • próxima instrução a executar Pilha Introdução • Registradores especiais • PSW (Program Status Word) • bits de status de operações • resultado da operação resultou em zero • o número é maior do que uma palavra • resultado maior que o tamanho do registrador • etc... Introdução • Sistema Operacional está ciente de todos os registradores • Quando um novo processo (re)inicia, o estado dos registradores é salvo Introdução • CPUs modernas possuem diferentes unidades de busca, decodificação e execução (pipeline) • Diversas instruções em simultâneo • buscar instrução n • decodificar instrução n+1 • executar instrução n+2 Unidade de busca Unidade de decodificação Pipeline Unidade de execução Unidade de busca Unidade de decodificação Unidade de execução Buffe Unidade de busca Unidade de decodificação Superescalar Unidade de execução Introdução • PSW define o modo de execução (usuário ou núcleo) • núcleo - pode fazer uso de qualquer instrução do processador • usuário - pode fazer uso apenas de um subconjunto de instruções Introdução • Como o usuário faz uso de operações que requerem acesso a alguma instrução protegida? • Chamadas de sistema (system calls) • Micro-instrução TRAP • “chaveia” entre os modos Diferentes tipos de arquiteturas (a) Quad-core com memória L2 compartilhada (b) Quad-core com memória L2 dedicada Introdução • Processadores possuem evolução rápida • Lei de Moore • transistores dobram a cada 18 meses Lei de Moore Introdução • Memória • hierarquia de memórias • memórias mais rápidas são mais caras • memórias mais lentas são mais baratas Hierarquia de Memórias Introdução • Memória • cache • dividida em fileiras • uso com os dados mais utilizados • possuem níveis de velocidades e tamanhos • cache L1 e cache L2 Introdução • Memória • Memória principal • abordada com detalhes no próximo capítulo Introdução • Discos • Memória de acesso aleatório barata • Dispositivo mecânico Discos Rígidos Discos Rígidos Organização dos dados nos discos A) trilha B) setor geométrico C) setor de trilha D) blocos Arredondamento da capacidade Introdução • Discos • Memória virtual • Alto custo • Gerenciado pela MMU Introdução • Fitas • Última na escala hierárquica das memórias • Acesso extremamente demorado • Normalmente utilizada para backup Robô de Backup IBM 3584 Introdução • Dispositivos de E/S • Cada dispositivo geralmente possui um controlador associado • Interface simplificada • Ex: controladora SATA (Serial ATA Attachment) Introdução • Dispositivos de E/S • Sistema Operacional utilizam os drivers • Dentro do Sistema Operacional • Como são acoplados ao SO? Introdução • Dispositivos de E/S • Drivers 1. Religar o núcleo com o novo driver e reinicializar. Ex: alguns Unix 2. Mapear o endereço do driver ao SO e reinicializar. Ex: Windows 3. Instalar sem a necessidade de reinicializar. Ex: USB e IEEE 1394 driver controladora acopla SO driver aponta SO driver SO Ligação do Driver ao Sistema Operacional Introdução • Dispositivos de E/S • Todos os controladores possuem registradores próprios • Espaço de porta de E/S Introdução • Dispositivos de E/S • Espera ocupada • CPU interroga dispositivo a todo instante se a operação finalizou Introdução • Dispositivos de E/S • Interrupção • Apenas interrompe quando houver terminado a operação • CPU salva seu estado para voltar ao processo original (Contador de Programa e PSW) • Controlador de interrupções Controlador de Interrupções Introdução • Dispositivos de E/S • DMA (Direct Access Memory) • Controla o fluxo entre a memória e algum controlador sem a CPU • Após finalizar as tarefas agendadas, a DMA realiza uma interrupção Introdução • Barramentos • Um único barramento não é mais suficiente • ISA • PCI • PCI Express • USB • SCSI • IEEE 1394 (Firewire) Barramentos em um sistema Pentium Introdução • Barramentos • Cada E/S possui um nível de requisição e endereços específicos para seus registradores • Exemplo da leitora de disquetes: interrupção 6 e endereços 0x60 e 0x64 Introdução • Barramentos • Microsoft e Intel desenvolveram o padrão plug and play • Centraliza informações sobre os dispositivos de E/S Inicializando o computador Série IOs: Iniciando o computador Série IOs: Iniciando o computador • Elementos apresentados no vídeo • processador • gerência de memória • disco rígido • “finado” fax modem • sistema de som • ... Introdução • Inicializando o computador • BIOS (Basic Input Output System) • Rotinas para inicialização do hardware • Teste de RAM • Teste de teclado e mouse • Teste dos barramentos • ... Introdução • Inicializando o computador • O BIOS determina o dispositivo de inicialização (boot) • Busca pelo primeiro dispositivo disponível • Primeiro setor do dispositivo é carregado em memória • Examina a tabela de partições e carrega o sistema Introdução • Conceitos sobre sistemas operacionais • Processos • Espaços de endereçamento • Arquivos • Entrada e saída • Segurança • O interpretador de comandos (shell) Revisão • Sistema Operacional • Modo usuário e modo núcleo • Shell e GUI • Computadores de grande porte • Sistema em lote (batch) • Circuitos integrados • Lei de Moore • Multiprogramação • Tipos de sistemas operacionais • Processador • Registradores • Dispositivos de E/S • Barramentos • Controladores • Contador de programa • Ponteiro de pilha • PSW • Pipeline • Superescalar • Chamada de sistema • Hierarquia de memórias • Trilha e cilindro • Driver • Interrupção • Controladora de interrupção • Inicializando o computador