Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais: Fundamentos de Sistemas Operacionais Prof. Maur´ıcio Aronne Pillon Prof. Rafael R. Obelheiro UDESC/CCT – Departamento de Cieˆncia da Computac¸a˜o {mauricio.pillon,rafael.obelheiro}@udesc.br Joinville, julho de 2014 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Suma´rio 1 Introduc¸a˜o 2 Histo´rico dos SOs 3 Conceitos de SO 4 Revisa˜o de hardware 5 Estruturas de SO Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 2/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO O que e´ um sistema operacional? Camadas de um SO O que e´ um sistema operacional? O gerenciamento de um sistema computacional moderno e´ sem du´vida uma tarefa complexa O computador moderno exige o controle no uso de um ou mais processadores, memo´ria, discos, impressoras de maneira correta e otimizada Duas viso˜es 1. Uma ma´quina estendida esconde os detalhes complicados do funcionamento do hardware oferece uma interface mais amiga´vel para as aplicac¸o˜es ⇒ ma´quina virtual 2. Um gerenciador de recursos cada programa utiliza o recurso durante um tempo cada programa ocupa um certo espac¸o no recurso Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 3/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO O que e´ um sistema operacional? Camadas de um SO Camadas de um SO Sistema bancário Reserva de passagens aéreas Sistema operacional Visualizador Web Compiladores Editores Programas de aplicação Hardware Programas do sistema Interpretador de comandos Linguagem de máquina Microarquitetura Dispositivos físicos Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 4/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais Suma´rio 1 Introduc¸a˜o 2 Histo´rico dos SOs 3 Conceitos de SO 4 Revisa˜o de hardware 5 Estruturas de SO Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 5/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais Histo´ria dos Sistemas Operacionais 1. Primeira gerac¸a˜o (1945–1955) va´lvulas, paine´is de programac¸a˜o 2. Segunda gerac¸a˜o (1955–1965) transistores, sistemas em lote 3. Terceira gerac¸a˜o (1965–1980) Cls e multiprogramac¸a˜o 4. Quarta gerac¸a˜o (1980–dias de hoje) computadores pessoais Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 6/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais Primeira gerac¸a˜o (1945–1955) Howard Aiken (Harvard), John von Neumann (Princeton), J. Presper Eckert e William Mauchley (Pensilvaˆnia) e Konrad Zuse (Alemanha) construiram ma´quinas de calcular Sistema totalmente mecaˆnico (rele´s lentos), com ciclos medidos em segundos Primeira evoluc¸a˜o: substituic¸a˜o dos rele´s por va´lvulas O mesmo grupo de pessoas projetava, constru´ıa, programava, operava e realizava a manutenc¸a˜o de cada ma´quina Programac¸a˜o feita com co´digo absoluto e muitas vezes conectando plugs em paine´is Os sistemas operacionais ainda na˜o tinham sido inventados Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 7/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais ENIAC Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 8/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais Quadro de plugues do IBM 402 Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 9/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais Segunda gerac¸a˜o (1955–1965) Introduc¸a˜o do transistor (substituindo as va´lvulas) Computadores mais confia´veis Passaram a ser fabricados e comercializados com uma expectativa de “vida u´til” mais longa Estabeleceu-se uma separac¸a˜o clara entre as func¸o˜es: projetista, fabricantes, programadores e te´cnicos de manutenc¸a˜o Estas ma´quinas passaram a ser denominadas de computadores de grande porte (mainframes) Devido ao alto custo do equipamento, buscou-se uma maneira de reduzir o desperd´ıcio, adotando-se o chamado sistema em lote (batch) Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 10/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais Sistema em lote (batch) (a) os programadores levavam os carto˜es para o 1401 (b) o 1401 gravava o lote de jobs em fita (c) o operador levava a fita de entrada para o 7094 (d) o 7094 executava o processamento (e) o 1401 imprimia as sa´ıdas 1401 7094 1401 (a) (b) (c) (d) (e) (f) Leitora de cartões Unidade de fita magnética Fita de entrada Fita de saída Fita do sistema Impressora Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 11/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais Estrutura de um job t´ıpico $JOB, 10,6610802, MARVIN TANENBAUM $FORTRAN $LOAD $RUN $END Programa FORTRAN Dados para o programa Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 12/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais Carta˜o Fortran Z(1) = Y + W(1) Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 13/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais 3a gerac¸a˜o: fam´ılias de computadores Os computadores de 2a gerac¸a˜o eram radicalmente diferentes entre si, tornando-os incompat´ıveis: IBM 7094: ca´lculo intensivo, orientado a palavra IBM 1401: processamento comercial, orientado a caracter As diferenc¸as representavam:custos significativos para o fabricante custos e inconvenieˆncias para os usua´rios que precisavam migrar de plataforma A IBM introduziu a fam´ılia 360 primeiros computadores que usavam CIs (Circuitos Integrados) compatibilidade de software e hardware Os requisitos e caracter´ısticas diferentes se tornaram um pesadelo para a equipe de desenvolvimento do OS/360 milho˜es de linhas de Assembly, milhares de programadores quando bugs eram corrigidos, outros eram introduzidos The Mythical Man-Month (Fred Brooks) Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 14/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais Sistema multiprogramado (3a gerac¸a˜o) No 7094, quando um job parava para aguardar uma E/S, a CPU simplesmente permanecia ociosa Em processamento comercial (I/O Bound), o tempo de espera por E/S chegava a 80 a 90% 3 jobs na memo´ria Job 3 Job 2 Job 1 Sistema operacional Partições de memória Deu origem a sistemas de tempo compartilhado (time sharing) Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 15/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais MULTICS MULTiplexed Information and Computing Service Um “computador utilita´rio”, capaz de atender a centenas de usua´rios simultaˆneos CPU equivalente a um 386, maior capacidade de E/S O projeto foi um fracasso comercial (menos de 100 instalac¸o˜es), mas teve usua´rios fie´is (ate´ de´cada de 90) Extremamente influente do ponto de vista te´cnico lanc¸ou diversas ide´ias usadas ate´ hoje em alguns aspectos ainda superior Diversos nomes importantes da computac¸a˜o nos u´ltimos 40 anos fizeram parte do projeto Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 16/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais UNIX Ken Thompson (Bell Labs) e o PDP-7 (origem do UNIX) Crescimento comercial dos minicomputadores, culminando no PDP-11, sucesso comercial BSD: memo´ria virtual e TCP/IP Problemas de incompatibilidade sobre as verso˜es UNIX levou o IEEE a lanc¸ar um padra˜o de desenvolvimento, POSIX (Portable Operating System-IX ) Sistema feito por programadores, para programadores Caracter´ısticas principais: ferramentas de desenvolvimento cooperativo interfaces simples, elegantes, consistentes e sem “frescuras” conceito de ferramentas de software: pequenos programas que desempenham func¸o˜es espec´ıficas e que podem ser combinados Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 17/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais Thompson, Ritchie e um PDP-11 (ca. 1972) Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 18/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais Computadores Pessoais (microcomputadores) Os microcomputadores na˜o eram muito diferentes do PDP-11, pore´m eram muito mais baratos Desenvolvimento de CIs em larga escala (large scale integration – LSI), que sa˜o chips contendo milhares de transistores em um cent´ımetro quadrado de sil´ıcio Em 1974, a Intel lanc¸ou o 8080, primeira CPU de 8 bits de propo´sito geral Em 1977, a Digital Research (Gary Kildall) reescreveu o CP/M (Control Program for Microcomputers) para rodar em outras CPUs ale´m do 8080 Nos anos 80, a IBM solicitou a um desconhecido desenvolvedor de interpretador Basic, Bill Gates, o contato de uma empresa que pudesse desenvolver um SO para o IBM PC Bill Gates comprou o DOS (Disk Operating System) e vendeu a` IBM o DOS/Basic. A Microsoft ainda contratou o desenvolvedor do DOS, Tim Paterson, lanc¸ando o conhecido MS-DOS Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 19/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais Computadores Pessoais (microcomputadores) CP/M e MS-DOS, entre outros, eram todos baseados na digitac¸a˜o de comandos Doug Engelbart (Stanford) inventou uma interface gra´fica voltada para o usua´rio (GUI – Graphical User Interface) O Apple Macintosh foi o primeiro SO a incorporar esta ide´ia Devido ao sucesso comercial da Apple, a Microsoft tambe´m resolveu incorporar esta ide´ia Os computadores tornaram-se cada vez mais poderosos em vez das pessoas esperarem pelo computador, o computador e´ que espera por elas necessidade de SOs mais sofisticados Surgimento de redes de computadores, com sistemas operacionais de rede e sistemas operacionais distribu´ıdos Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 20/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Histo´ria dos sistemas operacionais Primeira gerac¸a˜o (1945–1955) Segunda gerac¸a˜o (1955–1965) Terceira gerac¸a˜o (1965–1980) Quarta gerac¸a˜o (1980–HOJE) Tipos de sistemas operacionais Tipos de sistemas operacionais SOs para mainframes SOs para servidores SOs para multiprocessadores SOs para computadores pessoais SOs de tempo real SOs embarcados SOs para smartcards SOs distribu´ıdos Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 21/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processos Deadlocks Gereˆncia de memo´ria Gereˆncia de arquivos Chamadas de sistema Suma´rio 1 Introduc¸a˜o 2 Histo´rico dos SOs 3 Conceitos de SO 4 Revisa˜o de hardware 5 Estruturas de SO Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 22/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processos Deadlocks Gereˆncia de memo´ria Gereˆncia de arquivos Chamadas de sistema Processos Um processo e´ basicamente um programa em execuc¸a˜o Cada processo possui um espac¸o de enderec¸amento faixa de enderec¸os de memo´ria onde ele pode ler e escrever Cada entrada na tabela de processos possui informac¸o˜es sobre o estado corrente do processo Processos podem se comunicar → comunicac¸a˜o interprocessos (IPC) A´rvores de processos A B D E F C Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 23/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processos Deadlocks Gereˆncia de memo´ria Gereˆncia de arquivos Chamadas de sistema Deadlocks Situac¸o˜es que surgem na interac¸a˜o entre processos e onde o progresso e´ imposs´ıvel: (a) deadlock potencial (b) deadlock real (a) (b) Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro24/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processos Deadlocks Gereˆncia de memo´ria Gereˆncia de arquivos Chamadas de sistema Gereˆncia de memo´ria Define como a memo´ria principal e´ alocada para os processos Implementa mecanismos de protec¸a˜o Lida com espac¸os de enderec¸amento maiores do que a memo´ria dispon´ıvel → memo´ria virtual Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 25/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processos Deadlocks Gereˆncia de memo´ria Gereˆncia de arquivos Chamadas de sistema Gereˆncia de arquivos Define uma interface mais refinada para armazenamento persistente de informac¸o˜es A maior parte dos sistemas usa o conceito de arquivos organizados em hierarquias de direto´rios Diretório-raiz Estudantes Professores Leo Prof. Brown Arquivos Cursos CS101 CS105 Artigos SOSP COST-11 Comissões Prof. Green Prof. WhiteMattyRobert Bolsas de estudo Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 26/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processos Deadlocks Gereˆncia de memo´ria Gereˆncia de arquivos Chamadas de sistema Chamadas de sistema As chamadas de sistema compo˜em a interface que o SO oferece a`s aplicac¸o˜es Executam no contexto do SO, usando o modo privilegiado do processador Tipos de chamada de sistema processos: criar, sincronizar, terminar memo´ria: alocar, desalocar arquivos e direto´rios: criar, ler, escrever, remover, definir permisso˜es . . . Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 27/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processos Deadlocks Gereˆncia de memo´ria Gereˆncia de arquivos Chamadas de sistema Exemplo de chamada de sistema: read() Retorne para quem chamou 4 10 6 0 9 7 8 3 1 11 Despache Tratador da chamada ao sistema Endereço 0xFFFFFFFF Espaço do usuário Espaço do núcleo (Sistema operacional) Procedimento read da biblioteca Programa do usuário chamando read úcleo Coloque o código para read no registrador Incremente SP (apontador da pilha)or d Chame read Armazene fd na pilha Armazene nbytes na pilha 5 read(fd, &buffer, nbytes) Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 28/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processos Deadlocks Gereˆncia de memo´ria Gereˆncia de arquivos Chamadas de sistema Exemplo de chamadas de sistema POSIX Gerenciamento de processos Chamada Descrição pid = fork( ) Crie um processo filho idêntico ao processo pai pid = waitpid(pid, &statloc, options) Aguarde um processo filho terminar s = execve(name, argv, environp) Substitua o espaço de endereçamento do processo exit(status) Termine a execução do processo e retorne o estado Gerenciamento de arquivos Chamada Descrição fd = open(file,how, ...) Abra um arquivo para leitura, escrita ou ambas s = close(fd) Feche um arquivo aberto n = read(fd, buffer, nbytes) Leia dados de um arquivo para um buffer n = write(fd, buffer, nbytes) Escreva dados de um buffer para um arquivo position = lseek(fd, offset, whence) Mova o ponteiro de posição do arquivo s = stat(name, &buf) Obtenha a informação de estado do arquivo Gerenciamento do sistema de diretório e arquivo Chamada Descrição s = mkdir(name,mode) Crie um novo diretório s = rmdir(name) Remova um diretório vazio s = link(name1, name2) Crie uma nova entrada, name2, apontando para name1 s = unlink(name) Remova uma entrada de diretório s = mount(special,name, flag) Monte um sistema de arquivo s = umount(special) Desmonte um sistema de arquivo Diversas Chamada Descrição s = chdir(dirname) Altere o diretório de trabalho s = chmod(name, mode) Altere os bits de proteção do arquivo s = kill(pid, signal) Envie um sinal a um processo seconds = time(&seconds) Obtenha o tempo decorrido desde 1º de janeiro de 1970 Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 29/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processos Deadlocks Gereˆncia de memo´ria Gereˆncia de arquivos Chamadas de sistema Exemplo de chamadas de sistema da API Win32 Unix Win32 Descrição fork CreateProcess Crie um novo processo waitpid WaitForSingleObject Pode esperar um processo sair execve (none) CrieProcesso = fork + execve exit ExitProcess Termine a execução open CreateFile Crie um arquivo ou abra um arquivo existente close CloseHandle Feche um arquivo read ReadFile Leia dados de um arquivo write WriteFile Escreva dados para um arquivo lseek SetFilePointer Mova o ponteiro de posição do arquivo stat GetFileAttributesEx Obtenha os atributos do arquivo mkdir CreateDirectory Crie um novo diretório rmdir RemoveDirectory Remova um diretório vazio link (none) Win32 não suporta ligações (link) unlink DeleteFile Destrua um arquivo existente mount (none) Win32 não suporta mount umount (none) Win32 não suporta mount chdir SetCurrentDirectory Altere o diretório de trabalho atual chmod (none) Win32 não suporta segurança (embora NT suporte) kill (none) Win32 não suporta sinais time GetLocalTime Obtenha o horário atual Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 30/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Suma´rio 1 Introduc¸a˜o 2 Histo´rico dos SOs 3 Conceitos de SO 4 Revisa˜o de hardware 5 Estruturas de SO Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 31/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Componentes de um computador Monitor Teclado Unidade dedisco flexível Unidade de disco rígido Controlador de disco rígido Controlador de disco flexível Controlador de teclado Controlador de vídeoMemóriaCPU Barramento Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 32/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Processador: organizac¸a˜o ba´sica Ciclo busca-decodifica-executa Registradores propo´sito geral contador de programa / ponteiro de instruc¸a˜o ponteiro de pilha PSW (program status word) / flags Unidade de busca Unidade de busca Unidade de busca Unidade de decodificação Unidade de execução Unidade de execução Buffer de instruções (a) (b) Unidade de execução Unidade de execução Unidade de decodificação Unidade de decodificação (a) Um pipeline de treˆs esta´gios (b) Uma CPU superescalar Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 33/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Exemplo de busca-decodificac¸a˜o-execuc¸a˜o 2 PC300 CPU RegistersMemory Fetch Stage Execute Stage 3 0 01 9 4 0 301 5 9 4 1 302 2 9 4 1 940 0 0 0 3 941 0 0 0 2 AC IR1 9 4 0 Step 1 • • PC300 CPU RegistersMemory 3 0 11 9 4 0 301 5 9 4 1 302 2 9 4 1 940 0 0 0 3 941 0 0 0 2 AC IR1 9 4 0 0 0 0 3 Step 2 • • PC300 CPU RegistersMemory 3 0 1 0 0 0 5 0 0 0 5 0 0 0 3 0 0 0 5 1 9 4 0 301 5 9 4 1 302 2 9 4 1 940 0 0 0 3 941 0 0 0 2 AC IR5 9 4 1 Step 3 • • PC300 CPU RegistersMemory 3 0 21 9 4 0 301 5 9 41 302 2 9 4 1 1 940 0 0 0 3 941 0 0 0 2 AC IR5 9 4 1 Step 4 • • PC300 CPU RegistersMemory 3 01 9 4 0 301 5 9 4 1 302 2 9 4 1 940 0 0 0 3 941 0 0 0 2 AC IR2 9 4 1 Step 5 • • PC300 CPU RegistersMemory 3 0 31 9 4 0 301 5 9 4 1 302 2 9 4 1 940 0 0 0 3 941 0 0 0 5 AC IR2 9 4 1 Step 6 • • 3 + 2 = 5 Figure 1.4 Example of Program Execution (contents of memory and registers in hexadecimal) Opcodes 1: AC ← mem 2: mem ← AC 5: AC ← AC+mem Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 34/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Registradores na arquitetura IA-32 (x86) Registradores de propo´sito geral (ou nem tanto) EAX: acumulador para operandos e resultados EBX: ponteiro para dados no segmento DS ECX: contador para lac¸os e operac¸o˜es com strings EDX: ponteiro de E/S ESI: ponteiro de origem para operac¸o˜es com strings EDI: ponteiro de destino para operac¸o˜es com strings EBP: ponteiro para a base da pilha atual (no segmento SS) ESP: ponteiro para o topo da pilha atual (no segmento SS) Registradores de segmento CS: segmento de co´digo SS: segmento de pilha DS, ES, FS, GS: segmentos de dados Registradores de status e controle EIP: ponteiro de instruc¸a˜o EFLAGS: flags indicando o resultado de operac¸o˜es lo´gicas e aritme´ticas zero, vai um (carry), overflow, paridade, sinal Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 35/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Registradores de propo´sito geral no x86 Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 36/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Busca e execuc¸a˜o no x86 CPU busca instruc¸a˜o apontada por EIP EIP e´ incrementado automaticamente instruc¸o˜es x86 teˆm tamanhos diferentes EIP e´ modificado por desvios (JMP/Jxx) e chamadas de sub-rotinas (CALL/RET) na˜o e´ poss´ıvel manipular EIP diretamente Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 37/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Chips multithread e multicore (1) Durante muitos anos, o desempenho dos processadores foi melhorado basicamente por aumento na densidade de transistores → mais portas por chip aumento na frequeˆncia de operac¸a˜o → clock mais ra´pido explorac¸a˜o do paralelismo de instruc¸o˜es → pipelining, superescalar Os ganhos obtidos com essas estrate´gias sa˜o cada vez menores soluc¸a˜o: aumento do paralelismo arquitetural Chips multithread: replicam parte da lo´gica de controle, permitindo chaveamento ra´pido (ordem de ns) entre threads quando uma delas precisa acessar dados fora da cache HyperThreading da Intel Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 38/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Chips multithread e multicore (2) Chips multicore: CPUs independentes (a) chip quad-core com cache L2 compartilhada (Intel) (b) chip quad-core com caches L2 separadas (AMD) Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 39/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Processador: modos de operac¸a˜o Modos de operac¸a˜o modo nu´cleo (kernel ou supervisor) modo usua´rio Chaveamento entre os modos trap: usua´rio → nu´cleo chamadas de sistema (software) traps de hardware: excec¸o˜es instruc¸a˜o: nu´cleo → usua´rio Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 40/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Organizac¸a˜o da memo´ria principal A memo´ria e´ um vetor de N palavras de B bits do ponto de vista do programador, um vetor de bytes A memo´ria armazena dados e instruc¸o˜es arquitetura de von Neumann A INTERPRETAC¸A˜O E´ FEITA PELO SOFTWARE Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 41/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Hierarquia de memo´ria Registradores Cache Memória principal Fita magnética 1 ns 2 ns 10 ns 10 ms 100 s <1 KB 1 MB 64–512 MB 5–50 GB 20–100 GB Capacidade típicaTempo de acesso típico nu´meros mostrados sa˜o apenas aproximac¸o˜es Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 42/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Hierarquia de caches Sistemas atuais teˆm geralmente 2 ou 3 n´ıveis de cache n´ıveis sucessivos teˆm maior capacidade e maior lateˆncia L1: 8–64 KB tipicamente separados para instruc¸o˜es e dados L2: 256 KB–8 MB em chips multicore, pode ser compartilhado ou local cache compartilhado: complica controlador, simplifica coereˆncia cache local: simplifica controlador, complica coereˆncia L3: ate´ 16 MB geralmente compartilhado Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 43/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Estrutura de uma unidade de disco Superfície 2 Superfície 1 Superfície 0 Cabeça de leitura/escrita (uma por superfície) Direção do movimento do braço Superfície 3 Superfície 5 Superfície 4 Superfície 7 Superfície 6 Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 44/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Dispositivos de E/S (1/2) Controladores vs dispositivos registradores de dados, controle, status Drivers de dispositivo geralmente fornecidos pelo fabricante executam em modo nu´cleo para ter acesso ao dispositivo Modos de operac¸a˜o E/S programada interrupc¸o˜es DMA (Direct Memory Access) Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 45/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Dispositivos de E/S (2/2) CPU Controlador de interrupção Controlador de disco Unidade de disco Instrução atual Próxima instrução 1. Interromper 3. Retornar 2. Despachar � para tratador � de interrupção Tratador de interrupção (b)(a) 1 3 4 2 (a) os passos para iniciar um dispositivo de E/S e obter uma interrupc¸a˜o (b) o processamento de uma interrupc¸a˜o Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 46/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Processador Memo´ria Dispositivos de E/S Barramentos Estrutura de um sistema Pentium Ponte ISA Modem Mouse Ponte PCICPU Memória principal SCSI USB Barramento local Placa de som Impressora Conector ISA disponível Barramento ISA Disco IDE Conector PCI disponível Teclado Monitor Adaptador gráfico Cache de nível 2 Barramento de cache Barramento de memóriaBarramento PCI Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 47/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Introduc¸a˜o Sistemas monol´ıticos Sistemas em camadas Cliente-servidor Ma´quinas virtuais Suma´rio 1 Introduc¸a˜o 2 Histo´rico dos SOs 3 Conceitos de SO 4 Revisa˜o de hardware 5 Estruturas de SO Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 48/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Introduc¸a˜o Sistemas monol´ıticos Sistemas em camadas Cliente-servidor Ma´quinas virtuais Estruturas de SO Como o SO e´ organizado internamente Estruturas cla´ssicas monol´ıtico em camadas micronu´cleo cliente-servidor ma´quinas virtuais Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 49/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Introduc¸a˜o Sistemas monol´ıticos Sistemas em camadas Cliente-servidor Ma´quinas virtuais Sistemas monol´ıticos Procedimento principal Procedimentos de serviços Procedimentos utilitários Colec¸a˜o de procedimentos Invocac¸a˜o livre Confiabilidade Desempenho Procedimentos de servic¸o implementam chamadas de sistema Mo´dulos dinaˆmicos Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 50/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Introduc¸a˜o Sistemas monol´ıticos Sistemas em camadas Cliente-servidor Ma´quinas virtuais Sistemas em camadas 5 O operador 4 Programas do usuário 3 Gerenciamento de entrada/saída 2 Comunicação operador-processo 1 Gerenciamento da memória e do tambor magnético 0 Alocação de processador e multiprogramação Camada Função Estrutura do sistema operacional THE Interfaces bem definidas Cada camada usa os servic¸os da camada inferior Nem sempre suportada pelo hardware Exemplos: THE, MULTICS Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 51/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Introduc¸a˜o Sistemas monol´ıticos Sistemas em camadas Cliente-servidor Ma´quinas virtuais Micronu´cleo Arquitetura do MINIX 3 Funcionalidades do nu´cleo particionadas micronu´cleo (microkernel) em modo supervisor drivers e servidores em modo usua´rio Comunicac¸a˜o por troca de mensagens Algumas func¸o˜es exigem modo nu´cleo Confiabilidade vs desempenho Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 52/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Introduc¸a˜o Sistemas monol´ıticos Sistemas em camadas Cliente-servidor Ma´quinas virtuais Cliente-servidor Máquina 1 Máquina 2 Máquina 3 Máquina 4 Cliente Núcleo Servidor de arquivos Núcleo Servidor de processos Núcleo Servidor de terminais Núcleo Mensagem de cliente para servidor Rede Clientes enviam requisic¸o˜es a servidores comunicac¸a˜o por troca de mensagens Pode ser usado com sistemas centralizados ou distribu´ıdos transpareˆncia de falhas e´ diferente Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 53/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Introduc¸a˜o Sistemas monol´ıticos Sistemas em camadas Cliente-servidor Ma´quinas virtuais Ma´quinas virtuais Instruções de E /S aqui Desvio (trap) aqui Desvio (trap) aqui Chamadas ao sistema aqui Cópias virtuais do 370 CMS CMS CMS Monitor de máquina virtual VM/370 Hardware do 370 Estrutura do VM/370 com o CMS O MMV/hipervisor fornece uma abstrac¸a˜o do hardware para as MVs Isolamento entre as MVs Diferentes sistemas operacionais nas MVs Desempenho depende do suporte do HW Consolidac¸a˜o de servidores Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 54/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Introduc¸a˜o Sistemas monol´ıticos Sistemas em camadas Cliente-servidor Ma´quinas virtuais Hipervisores tipo 1 e tipo 2 (a) Tipo 1: executa direto sobre o HW Xen, VMware ESX/ESXi, IBM z/VM (b) Tipo 2: executa em um SO hospedeiro → MMV e´ um processo VirtualBox, VMware Workstation Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 55/56 Introduc¸a˜o Histo´rico dos SOs Conceitos de SO Revisa˜o de hardware Estruturas de SO Introduc¸a˜o Sistemas monol´ıticos Sistemas em camadas Cliente-servidor Ma´quinas virtuais Bibliografia Ba´sica Andrew S. Tanenbaum. Sistemas Operacionais Modernos, 3 a Edic¸a˜o. Cap´ıtulo 1. Pearson Prentice Hall, 2009. William Stallings. Operating Systems: Internals and Design Principles, 6th Ed. Cap´ıtulos 1 e 2. Pearson Prentice Hall, 2009. Abraham Silberchatz, Greg Gagne e Peter Baer Galvin. Fundamentos de Sistemas Operacionais, 6 a Edic¸a˜o. LTC – Livros Te´cnicos e Cient´ıficos Editora, 2004. Sistemas Operacionais Maur´ıcio A. Pillon & Rafael R. Obelheiro 56/56
Compartilhar