Sistemas Operacionais e Introdução à Programação Módulo 1 – Sistemas Operacionais 1 Sistema computacional Sistemas feitos para resolver problemas ● Problema: como obter determinado resultado, com base em dados fornecidos ● Sistema computacional composto por hardware e software ● Hardware: parte “rígida”; circuitos e componentes físicos ● Ex: Processador, memória, mouse, teclado, monitor, ... ● Software: dados e instruções sobre como resolver o problema ● Determinam o que o hardware deve fazer ● Ex: Sistema operacional, programas, ... 2 Sistema computacional Usuário Hardware Software 3 Computadores atuais Unidade Central de Processamento Dispositivos de Entrada Registradores ULA Dispositivos de Saída Unidade de Controle Barramentos Dispositivos de Armazename nto 4 Visão geral de um computador Computador comum: máquina que executa programas ● Programas são receitas com instruções Início do programa: Leia linha do teclado; Compare texto lido com usuários cadastrados; Se encontrou um usuário então mostre seus dados na tela, senão mostre mensagem de “Usuário desconhecido”; Fim do programa. 5 Visão geral de um computador Modelo de Computador ● Baseado no modelo definido por Alfred von Neumann em 1945 ● Conceito de programa armazenado em memória 6 Visão geral de um computador ● Elementos básicos de um computador atual: 7 Visão geral de um computador Elementos básicos de um computador: ● ● ● ● Processador: controla a operação do computador e processa os dados (executa as instruções) Memória principal: armazena dados e programas; tipicamente volátil E/S: transfere dados entre o computador e seu ambiente externo (ex: discos, monitor, teclado, mouse, ...) Interconexão do sistema: estruturas e mecanismos para comunicação entre os componentes acima ● ... ou barramentos do sistema 8 Visão geral de um computador ● Estrutura típica de um PC: 9 Visão geral de um computador ● Estrutura típica de um PC: placa-mãe 10 Visão geral de um computador ● Memória principal: ● Armazenamento de dados ● Fundamental para o processamento ● Volátil: perde dados ao ser desenergizada ● RAM ● Não-volátil: não perde os dados ● Flash, ROM, EPROM 11 Visão geral de um computador ● Memória principal: ● Como uma tabela onde estão guardadas palavras de tamanho fixo (em bits) ● Cada palavra possui seu endereço: linha da tabela onde está a palavra 985600FF E3712024 Palavra “00641198”: endereço 3 A6F0DE71 Palavra “985600FF”: endereço 0 00641198 5B394501 886A2355 • Palavras são números (aqui em hexadecimal) 12 Visão geral de um computador ● ● ● Hierarquia de memória: ● Velocidade x Custo X Capacidade Mais veloz: ● Mais cara ● Menor capacidade Maior capacidade: ● Menor velocidade ● Mais barata 13 Visão geral de um computador ● Processador: cérebro do computador ● Executa instruções que estão armazenadas em memória principal ● Cada instrução é buscada (“fetch”) da memória sequencialmente ● Um registrador especial contém endereço da próxima instrução a ser buscada 14 Visão geral de um computador ● Processador: ● Circuito densamente integrado Velho Intel 8086 15 Visão geral de um computador ● E/S: ● Dispositivos para entrada e saída de dados ● Discos, teclado, mouse, monitor, placa de rede, scanner, ... 16 Visão geral de um computador ● E/S: ● Primeiro mouse 17 Visão geral de um computador ● E/S: ● Primeiro disco rígido (HD): 18 Visão geral de um computador ● Diversas técnicas de E/S: ● E/S programada: ● Comanda-se todas as ações de E/S de um dispositivo ● E/S orientada a interrupção ● Inicia-se uma operação de E/S no dispositivo, que avisa quando a concluir ● Acesso direto à memória (DMA) ● Inicia-se uma operação de E/S no dispositivo, que movimenta por conta própria os dados entre RAM e E/S 19 Visão geral de um computador ● Resumo do sistema computacional: 20 Sistema Operacional ● Conceituação básica: ● Um programa que controla a execução de programas aplicativos ● Uma interface entre o usuário e a máquina ● Esconde os detalhes do hardware Exemplos de sistemas operacionais atuais: ● Linux (PCs e diversos outros computadores) ● IBM AIX (computadores IBM) ● Sun Solaris (PCs e computadores Sun) ● Microsoft Windows (PCs) ● MacOS (Apple Macintosh) 21 Sistema Operacional ● Camadas de um sistema computacional 22 Sistema Operacional ● Objetivos de um sistema operacional ● ● ● Conveniência: tornar um computador mais fácil de usar Eficiência: aproveitar de forma eficiente os recursos do hardware Capacidade de evoluir: poder incorporar novas funcionalidades 23 Sistema Operacional ● Serviços providos por um SO: ● Criação e execução de programas ● Acesso a dispositivos de E/S ● Acesso controlado a arquivos ● Comunicação em rede ● Acesso ao próprio sistema ● Detecção e tratamento de erros (hardware e software) ● Contabilização para monitoramento de desempenho e de uso de recursos 24 Sistema Operacional ● SO é também um programa (software): ● Dirige o processador no uso dos recursos da máquina ● Dirige o processador para a execução de programas 25 Sistema Operacional ● Abstrações típicas de SO: ● ● ● ● ● Processos: programa em execução Arquivos e diretórios: repositórios de dados identificados por nomes Memória virtual: memória secundária (disco) usada como se fosse memória principal E/S: dispositivos vistos como se fossem arquivos especiais Rede: conexões de rede e facilidades para envios de mensagens 26 Sistema Operacional ● Estrutura de um sistema operacional Unix tradicional: 27 Sistema Operacional ● Estrutura de um sistema operacional Linux 28 Sistema Operacional ● Estrutura de um sistema operacional Windows: 29 Sistema Operacional ● História dos sistemas operacionais ● 1a geração: 1945-1955 ● ● 2a geração: 1955-1965 ● ● CIs e multiprogramação (timesharing) 4a geração: 1980 – 1995 ● ● Transistores e sistemas em lote (jobs) 3a geração: 1965-1980 ● ● Válvulas e painéis de programação Computadores pessoais 5a geração: 1995 – presente ● Computadores em rede e Internet 30 Sistema Operacional ● História dos sistemas operacionais ● Antigos sistemas em lote ● Insere cartões perfurados na leitora de fita ● Lê cartões para a fita ● Coloca fita na CPU para processamento ● Coloca fita na leitora de fita que imprime a saída 31 Sistema Operacional ● História dos sistemas operacionais ● Multiprogramação – 3a geração ● Sistema com 3 jobs na memória ● Uso de interupções ● Surgimento de discos magnéticos 32 Sistema Operacional ● História dos sistemas operacionais ● Uniprogramação: apenas um processo executa por vez (e até o fim) ● Uso ineficiente dos recursos da máquina ● Processo em espera por E/S prende o processador 33 Sistema Operacional ● História dos sistemas operacionais ● Multiprogramação: vários processos executam por vez ● ● Uso eficiente dos recursos da máquina Processo em espera por E/S libera o processador para outro processo 34 Sistema Operacional ● História dos sistemas operacionais ● Características de SO para multiprogramação ● ● ● ● Deve saber escolher algum dos processos ativos para usar o processador Deve cuidar para que um processo não interfira no funcionamento de outros processos Deve alocar a memória da melhor forma entre os processos Deve coordenar o acesso dos processos aos dispositivos de E/S 35 Sistema Operacional ● História dos sistemas operacionais ● Computadores pessoais – 4a geração ● Dispositivos de E/S: mouse, impressora, teclado, monitor ● Baseado em microprocessador ● Microprocessador Intel 8080 (CP/M): 1974 ● IBM PC-DOS (MS-DOS): 1980 ● Pode rodar diferentes tipos de SO: Windows, Linux, MSDOS 36 Sistema Operacional ● História dos sistemas operacionais ● Computadores em rede – 5a geração ● Comunicação em rede incorporada ao computador e ao sistema operacional ● ● SO com funcionalidades de sistemas distribuídos Acesso a dispositivos remotos: discos de rede (compartilhamentos), impressoras ● Execução de processos remota: Terminal Service, X11 ● Aplicações cliente-servidor: web, FTP, email, ... ● Aplicações P2P: BitTorrent, eMule, ... ● SOs: Linux, Windows, MacOS, Sun Solaris, ... 37