1.92k likes | 2.08k Views
SISTEMAS OPERACIONAIS PROFESSOR - AIRTON KUADA EMAIL - airton@fesppr.br. EMENTA DA DISCIPLINA. HISTÓRICO E EVOLUÇÃO TIPOS DE SISTEMAS OPERACIONAIS SERVIÇOS DO SISTEMA OPERACIONAL ESTRUTURA DE UM SISTEMA OPERACIONAL CONCEITOS DE HARDWARE E SOFTWARE PROCESSOS, COMUNICAÇÃO INTERPROCESSOS
E N D
SISTEMAS OPERACIONAIS PROFESSOR - AIRTON KUADA EMAIL - airton@fesppr.br
EMENTA DA DISCIPLINA • HISTÓRICO E EVOLUÇÃO • TIPOS DE SISTEMAS OPERACIONAIS • SERVIÇOS DO SISTEMA OPERACIONAL • ESTRUTURA DE UM SISTEMA OPERACIONAL • CONCEITOS DE HARDWARE E SOFTWARE • PROCESSOS, COMUNICAÇÃO INTERPROCESSOS • ESCALONAMENTO • GERENCIAMENTO DE MEMÓRIA, PAGINAÇÃO, MULTIPROGRAMAÇÃO MEMÓRIA VIRTUAL • SISTEMAS DE ARQUIVOS • GERÊNCIA DE DISPOSITIVOS
BIBLIOGRAFIA • ARQUITETURA DE SISTEMAS OPERACIONAIS • FRANCIS B. MACHADO • LUIZ PAULO MAIA • SISTEMAS OPERACIONAIS MODERNO • ANDREW S. TANENBAUM
O QUE É UM SISTEMA OPERACIONAL ??? CONJUNTO DE PROGRAMAS EXECUTADOS PELO PROCESSADOR DA MESMA FORMA QUE QUALQUER OUTRO PROGRAMA QUAL A FUNÇÃO DE UM SISTEMA OPERACIONAL ?? CONTROLAR O FUNCIONAMENTO DO COMPUTADOR, COMO UM GERENTE DOS DIVERSOS RECURSOS DISPONÍVEIS NO SISTEMA (IMPRESSORA, DISCO, VÍDEO, TECLADO, FITA)
PRIMEIRA FASE (1945-1955) INÍCIO DA SEGUNDA GUERRA SURGEM OS PRIMEIROS COMPUTARES: MILHARES DE VÁLVULAS, NECESSIDADES DE GRANDES ÁREAS, ALTO CONSUMO, LENTO PRIMEIRO COMPUTADOR DE PROPÓSITO GERAL - ENIAC - CALCULO BÁLISTICO - 18 MIL VÁLVULAS - 10 CAPACITORES - 70 MIL RESISTORES - PESAVA 30 TONELADAS - CONSUMO DE 140 KVA EM FUNCIONAMENTO - 5 MIL ADIÇÕES POR SEGUNDO
SEGUNDA FASE (1956-1965) - CRIAÇÃO DO TRANSISTOR E MEMÓRIA MAGNÉTICA - SURGIMENTO DOS PRIMEIROS SISTEMAS OPERACIONAIS - PRIMEIRAS LINGUAGENS ASSEMBLY E FORTRAN FACILITARAM A PROGRAMAÇÃO - PROCESSAMENTO BATCH - OS SISTEMAS OPERACIONAIS PASSARAM A TER O SEU PRÓPRIO CONJUNTO DE ROTINAS PARA OPERAÇÃO DE ENTRADA/SAIDA (INPUT/OUTPUT CONTROL - IOCS) - COM O IOCS O PROGRAMADOR NÃO NECESSITA ESCREVER A ROTINAS DE I/O (INDEPENDÊNCIA DO DISPOSITIVO)
TERCEIRA FASE (1966-1980) - APARECIMENTO DOS CIRCUITOS INTEGRADOS E MICROPROCESSADORES, REDUÇÃO DE CUSTO E TAMANHO E AUMENTO DE PODER DE PROCESSAMENTO DAS MÁQUINAS -IBM LANÇA A SÉRIE 360 (PEQUENA, PODERASA E COMPATÍVEL) QUE DURANTE A EVOLUÇÃO GARANTIA A COMPATIBILIDADE COM AS GERAÇÕES ANTERIORES (PRESERVA O INVESTIMENTO) - DESENVOLVIMENTO DO OS/360 QUE TENTAVA ATENDER TODOS OS TIPOS DE APLICAÇÕES E PERIFÉRICOS - DEC LANÇA PDP-8
TERCEIRA FASE (1966-1980) - COMPARTILHAMENTO DA MEMÓRIA PRINCIPAL E PROCESSADOR PERMITE A MULTIPROGRAMAÇÃO - SUBSTITUIÇÃO DE FITA MAGNÉTICAS POR DISCO INTRODUZ MELHORIA NO SISTEMA EM BATCH, PODES-SE ALTERAR A ORDEM DA SEQUENCIA DE PROCESSAMENTO - COMUNICAÇÃO COM O USUÁRIO (SISTEMAS ON-LINE) - TIME-SHARING - SURGIMENTO DO SISTEMA OPERACIONAL UNIX (1969) (ASSEMBLER DEPOIS C) EM UM PDP-7 BASEADO NO MULTICS (DEC) - SURGIMENTO DOS PRIMEIROS MICROCOMPUTADORES (CPM, 8 BITS)
QUARTA FASE (1981-1990) - PROJETO DE MINIATURIZAÇÃO (LSI, VLSI) DE COMPONENTE - MINI E SUPERMINI COMPUTADORES GANHAM ESPAÇO - SURGIMENTO DO PC (PERSONAL COMPUTER) DE 16 BITS DA IBM E O SISTEMA DOS (DISK OPERATION SYSTEM). - OS SISTEMAS UNIX LIKE DOMINAM OS MINIS E SUPERMINIS - INTRODUÇÃO DO CONCEITO DE MULTIPROCESSAMENTO - REDES DISTRIBUIDAS (WAN) COM PROTOCOLOS SNA, DECNET, TCP/IP COMEÇA A DESPONTAR - PRIMEIROS SISTEMAS OPERACIONAIS DE REDE (NETWARE).
QUINTA FASE (1991 - ????) - A REDE MUNDIAL DE COMPUTADORES (INTERNET) - SISTEMAS ESPECIALISTAS (INTELIGÊNCIA ARTIFICIAL) - REDES NEURAIS - PROCESSAEMENTO DE GRANDES VOLUMES DE DADOS - PROCESSAMENTO DISTRIBUÍDO (RPC, CORBA) - ARQUITETURA CLIENT/SERVER - SURGIMENTO DA INTERFACE GRÁFICO (WINDOWS) - MULTIMÍDIA - IMPLEMENTAÇÃO DE CONCEITOS UTILIZADOS EM COMPUTADORES GRANDES COMPUTADORES, AGORA NO DESKTOP
HARDWARE É COMPOSTO POR UM CONJUNTO DE COMPONENTES INTERLIGADOS: PROCESSADOR, MEMÓRIA PRINCIPAL, REGISTRADORES, TERMINAIS, IMPRESSORAS, DISCOS MAGNÉTICOS, FITAS MAGNÉTICAS, ETC. COMPONENTES SÃO DIVIDIDOS EM UNIDADES FUNCIONAIS: - UCP - MEMÓRIA PRINCIPAL - DISPOSITIVOS DE ENTRADA E SAÍDA
UCP - UNIDADES DA UCP: UC - CONTROLA AS ATIVIDADES DE TODOS OS COMPONENTES DO COMPUTADOR, MEDIANTE A EMISSÃO DE PULSOS ELÉTRICOS GERADO POR UM DISPOSITIVO CHAMADO DE CLOCK. ULA - REALIZAÇÃO DE OPERAÇÕES LÓGICAS (TESTES E COMPARAÇÕES) E ARITMÉTICAS (SOMAS E SUBTRAÇÕES) - VELOCIDADE DO PROCESSADOR É MEDIDA EM NÚMERO DE INSTRUÇÕES EXECUTADAS EM UMA UNIDADE DE TEMPO (SEGUNDOS), PODE SER MIPS, MEGFLOPS
CLOCK - DISPOSITIVO DE ALTA VELOCIDADE, LOCALIZADO NA UCP - GERA PULSOS ELÉTRICO SINCRONOS EM DETERMINADO INTERVALO DE TEMPO - A QUANTIDADE DE VEZES QUE ESTE PULSO SE REPETE EM UM SEGUNDO DEFINE A FREQUENCIA DO CLOCK (MEDIDO EM HERTZ). A UC UTILIZA O SINAL DE CLOCK PARA A EXECUÇÃO DAS INSTRUÇÕES QUANTO MAIOR A VELOCIDADE, MAIOR A QUANTIDADE DE INSTRUÇÃO EXECUTADO EM UMA UNIDADE DE TEMPO
REGISTRADORES - MEMÓRIA DE ALTA VELOCIDADE - LOCALIZADO NO INTERIOR DO PROCESSADOR - ARMAZENAMENTO TEMPORÁRIO DE DADOS - O NÚMERO DE PROCESSADOR VARIA EM FUNÇÃO DA ARQUITETURA DE CADA PROCESSADOR - REGISTRADORES COMUNS A TODAS ARQUITETURAS: - CONTADOR DE INSTRUÇÃO (IP) - STACK POINTER (SP) - REGISTRADOR DE ESTADO (FLAGS)
MEMÓRIA PRINCIPAL (RAM) - ORGANIZADO EM CÉLULAS - CADA CÉLULA POSSUI UM NÚMERO DE BITS - BIT É A UNIDADE BÁSICA DE MEMÓRIA E POSSUI VALOR 0 OU 1 - ATUALMENTE TODOS OS COMPUTADORES TRABALHAM COM CÉLULAS DE 8 BITS (PODE EXISTIR COM 32, 64) - CADA CÉLULA POSSUI UMA IDENTIFICAÇÃO
MEMÓRIA ROM - MEMÓRIA NÃO VOLÁTIL - NÃO NECESSITA DE ENERGIA PARA PRESERVAR O CONTEÚDO - PODE SER GRAVADAS UMA ÚNICA VEZ - GRAVAÇÃO ATRAVÉS DE LUZ ULTRA VIOLETA - EXISTEM OUTRAS VARIANTES: EPROM, EAROM, EAPROM, NVRAM
MEMÓRIA CACHE - MEMÓRIA VOLÁTIL DE ALTA VELOCIDADE (nano) - TEMPO DE ACESSO MENOR QUE A MEMÓRIA PRINCIPAL - ANTES DE ACESSAR A MEMÓRIA PRINCIPAL É VERIFICADO A MEMÓRIA CACHE - A CADA ACESSO A MEMÓRIA PRINCIPAL, É LIDO UM BLOCO DA MEMÓRIA E ATUALIZADO A MEMÓRIA CACHE - POSSUI ALTO CUSTO
MEMÓRIA SECUNDÁRIA - MEIO PERMANENTE DE ARMAZENAMENTO DE PROGRAMAS E DADOS - NÃO PRECISA DE ENERGIA PARA MANTER AS INFORMAÇÕES - ACESSO LENTO (mili), BAIXO CUSTO - GRANDE CAPACIDADE DE ARMAZENAMENTO - EXEMPLO DE MEMÓRIA SECUNDÁRIA - FITA MAGNÉTICA - DISCO MAGNÉTICO - DISCO ÓPTICO
DISPOSITIVO DE ENTRADA/SAÍDA - UTILIZADO PARA COMUNICAÇÃO ENTRE O COMPUTADOR E O MUNDO EXTERNO (TECLADO, IMPRESSORA, MONITOR, DISCOS, SCANNER, CANETA ÓTICA, MOUSE, MULTIMIDIA, FITAS) - ATRAVÉS DESTES DISPOSITIVOS A UCP E MEMÓRIA PODEM COMUNICAR-SE COM OS USUÁRIOS (ANALISTAS, PROGRAMADORES, USUÁRIOS FINAIS) - PODEM SER DIVIDIDOS DA SEGUINTE FORMA: - INTERFACE HOMEM/MÁQUINA - MEMÓRIA SECUNDÁRIA.
BARRAMENTO - AS UNIDADES FUNCIONAIS DO COMPUTADOR SÃO INTERLIGADAS ATRAVÉS DE LINHAS DE COMUNICAÇÃO DENOMINADAS BARRAMENTOS. - NO BARRAMENTO TRAFEGAM INFORMAÇÕES COMO ENDEREÇOS, DADOS OU SINAIS DE CONTROLE - A COMUNICAÇÃO NO BARRAMENTO PODE SER UNIDIRECIONAL OU BIDIRECIONAL - ENTRE A UCP E MEMÓRIA EXISTE TRÊS BARRAMENTO: BARRAMENTO DE DADOS, BARRAMENTO DE ENDEREÇOS, BARRAMENTO DE CONTROLE
PIPELINING - SEMELHANTE A UMA LINHA DE MONTAGEM, ONDE UMA TAREFA É DIVIDIDA EM SEQUENCIA DE SUBTAREFAS, E EXECUTADAS EM DIFERENTES ESTÁGIOS - EXEMPLO DE PIPELINE: EXECUÇÃO DE UMA INSTRUÇÃO - PODE SER UTILIZADA COMO TÉCNICA DE PARALELISMO EM SISTEMAS COM UM OU MAIS PROCESSADORES PARA AUMENTAR O DESEMPENHO DOS SISTEMA DE COMPUTADORES.
ARQUITETURA CISCxRISC RISC (REDUCED INSTRUCTION SET COMPUTER) - POSSUI POUCAS INSTRUÇÕES DE MÁQUINA - INSTRUÇÃO EXECUTADO DIRETAMENTE PELO HARDWARE - GRANDE NÚMERO DE PROCESSADORES - EXEMPLO: SUN, SPARC, RS-6000, PA-RISC, ALPHA, MIPS CISC (COMPLEX INSTRUCTION SET COMPUTERS) - INSTRUÇÕES COMPLEXAS QUE SÃO INTERPRETADAS POR MICROPROGRAMAS NÚMERO DE REGISTRADORES PEQUENO - QQUER INSTRUÇÃO PODE ACESSAR A MEMÓRIA RAM - EXEMPLO: VAX, 80X86, PENTIUM, 68xxxx
SOFTWARE - O HARDWARE POR SI SÓ NÃO POSSUI UTILIDADE. - DEVE EXISTIR UM CONJUNTO DE PROGRAMAS, UTILIZADO COMO INTERFACE ENTRE AS NECESSIDADES DO USUÁRIO E AS CAPACIDADES DO HARDWARE. - TIPOS DE SOFTWARE - TRADUTOR - INTERPRETADOR - LINKER - LOADER - DEPURADOR - LINGUAGEM DE CONTROLE (SHELL) - LINGUAGEM DE MÁQUINA
TRADUTOR -INICIALMENTE, PARA PROGRAMAR ERA NECESSÁRIO CONHECER O HARDWARE E PROGRAMAR EM PAINÉIS E FIOS - A PROGRAMAÇÃO ERA FEITO EM LINGUAGEM DE MÁQUINA DIRETAMENTE E CARREGADO EM MEMÓRIA - COM O SURGIMENTO DAS LINGUAGENS DE MONTAGEM E ALTO NÍVEL, O PROGRAMADOR NÂO NECESSITA CONHECER ASPECTOS DE HARDWARE - OS PROGRAMAS EM LINGUAGEM DE MONTAGEM E ALTO NÍVEL NÃO PODEM SER EXECUTADOS DIRETAMENTE PELA UCP , NECESSITAM PASSAR POR UM PROCESSO DE TRADUÇÃO ONDE TODA REPRESENTAÇÃO SIMBÓLICA É TRADUZIDO PARA UM CÓDIGO BINÁRIO
TRADUTOR - O MÓDULO GERADO PELO TRADUTOR É CHAMADO DE CÓDIGO OBJETO - DEPENDENDO DA LINGUAGEM DE PROGRAMAÇÃO UTILIZADO, O TRADUTOR PODE SER CHAMADO DE - MONTADOR - COMPILADOR.
dosseg .model small .stack 100h .data hello_message db 'Hello, World!',0dh,0ah,'$' .code main proc mov ax,@data mov ds,ax mov ah,9 mov dx,offset hello_message int 21h mov ax,4C00h int 21h main endp end main PROGRAMA HELLO.ASM
#include <stdio.h> main ( ) { char hello_message[] = "'Hello, World!"; printf ("%s\n", hello_message ) } PROGRAMA HELLO.C
19BB:0010 B8BD19 MOV AX,19BD 19BB:0013 8ED8 MOV DS,AX 19BB:0015 B409 MOV AH,09 19BB:0017 BA0200 MOV DX,0002 19BB:001A D21 INT 21 19BB:001C B8004C MOV AX,4C00 19BB:001F CD21 INT 21 CÓDIGO BINÁRIO GERADO PELO MONTADOR
TRADUTOR - LINGUAGEM DE MONTAGEM É UM CONJUNTO DE SÍMBOLOS MNEMÔNICOS ASSOCIADOS ÀS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA DO PROCESSADOR. - A LINGUAGEM DE MONTAGEM DEPENDE DA ARQUITETURA DE CADA PROCESSADOR, ISTO É VARIA DE COMPUTADOR PARA COMPUTADO (MASM, TASM NA PLATAFORMA 80X86) - A LINGUAGEM DE ALTO NÍVEL NÃO POSSUI LIGAÇÃO DIRETA COM A MÁQUINA, FICANDO ESSA PREOCUPAÇÃO COM O COMPILADOR. TODOS OS DETALHES DE ARQUITETURA DO PROCESSADOR FICA ESCONDIDO DO PROGRAMADOR QUE FICARÁ PREOCUPADO APENAS COM A APLICAÇÃO (COBOL, C, PASCAL).
LINKER - O CÓDIGO BINÁRIO GERADO PELO TRADUTOR AINDA NÃO PODE SER EXECUTADO, APESAR DE ESTAR EM CÓDIGO DE MÁQUINA, PODE EXISTIR CHAMADAS DE SUB-ROTINAS EXTERNAS - O LINKER É O RESPONSÁVEL POR GERAR, A PARTIR DE UM OU MAIS MÓDULOS-OBJETOS, UM ÚNICO PROGRAMA EXECUTÁVEL FUNÇÕES BÁSICAS DO LINKER: - RESOLVER TODAS AS REFERÊNCIAS SIMBÓLICAS EXISTENTES ENTRE OS MÓDULOS (PESQUISA EM BIBLIOTECAS) - RESERVAR MEMÓRIA PARA A EXECUÇÃO DO PROGRAMA
INTERPRETADOR - O INTERPRETADOR É UM TRADUTOR QUE NÃO GERA CÓDIGO-OBJETO. A PARTIR DE UM PROGRAMA-FONTE ESCRITO EM LINGUAGEM DE ALTO NÍVEL, O INTERPRETADOR TRADUZ CADA INSTRUÇÃO NO MOMENTO DA EXECUÇÃO E EXECUTA A INSTRUÇÃO - DESVANTAGEM - TEMPO GASTO NA TRADUÇÃO DAS INSTRUÇÕES DO PROGRAMA A CADA VEZ QUE FOR EXECUTADO VANTAGEM - RAPIDEZ NOS TESTES DE APLICAÇÕES QUE ESTÃO EM DESENVOLVIMENTO - EXEMPLOS: DBASE, BASI, APL,
LOADER - É O UTILITÁRIO RESPONSÁVEL EM COLOCAR FISICAMENTE NA MEMÓRIA UM PROGRAMA PARA EXECUÇÃO. - O PROCEDIMENTO DE CARGA VARIA COM O CÓDIGO GERADO PELO LINKER, DESTA FORMA O LOADER É CLASSIFICADO COMO SENDO DO TIPO: - ABSOLUTO: O PROGRAMA É CARREGADO EM UMA POSIÇÃO EXATA DA MEMÓRIA - RELOCÁVEL - O PROGRAMA É CARREGADO EM QUALQUER POSIÇÃO DE MEMÓRIA
DEPURADOR - DURANTE O DESENVOLVIMENTO DE PROGRAMAS ESTAMOS SUJEITO A ERROS - O DEPURADOR É UM UTILITÁRIO QUE PERMITE A EXECUÇÃO CONTROLADA DE UM PROGRAMA PARA REALIZAR A CORREÇÃO DE EVENTUAIS ERROS DE PROGRAMAÇÃO - FACILIDADES DE UM DEPURADOR - EXECUÇÃO PASSO - A - PASSO - ALTERAÇÃO/VISUALIZAÇÃO DE VARIÁVEIS - BREAKPOINTS - WATCHPOINT (AVISO DE ALTERAÇÃO DE VARIAVEL)
LINGUAGEM DE CONTROLE - É A FORMA COMO O USUÁRIO COMUNICA-SE COM O SO - INTERPRETA TODOS OS COMANDOS EMITIDOS PELO USUÁRIO, DEVOLVE MENSAGENS DE ERRO OU FAZ CHAMADAS AS ROTINAS DO SISTEMA - FORNECE A POSSIBILIDADE DE AUTOMAÇÃO DE COMANDOS (ARQUIVOS DE COMANDOS) - INTERAÇÃO MAIS AMIGÁVEL ATRAVÉS DE JANELAS - RECONHECIMENTO DE COMANDOS DE VOZ
TIPOS DE SISTEMAS OPERACIONAIS OS SISTEMAS OPERACIONAIS PODEM SER CLASSIFICADOS LEVANDO OS SEGUINTES ASPECTOS: - EVOLUÇÃO DE HARDWARE - APLICAÇÕES SUPORTADAS