Sistemas Operacionais e Introdução à Programação Módulo 1 – Sistemas Operacionais 1 SOP Competências: 1. Compreender as abstrações de um sistema operacional e operar um sistema operacional Unix/Linux como usuário avançado. 2. Desenvolver pequenos programas em linguagem de alto nível, acessando a Interface de Programação de Aplicações (API) do sistema operacional. 2 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. 3 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 4 Visão geral de um computador ● Elementos básicos de um computador: 5 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) 6 Visão geral de um computador ● Hierarquia de memória: ● Velocidade x Custo X Capacidade 7 Visão geral de um computador ● Processador: ● 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 8 Visão geral de um computador ● E/S: ● Dispositivos para entrada e saída de dados ● Discos, teclado, mouse, monitor, placa de rede, scanner, ... 9 Visão geral de um computador ● Diversas técnicas de E/S: ● E/S programada ● E/S orientada a interrupção ● Acesso direto à memória (DMA) 10 Visão geral de um computador ● Resumo do sistema computacional: 11 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 12 Sistema Operacional ● Camadas de um sistema computacional 13 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 14 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 ● 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 15 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 16 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 17 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 18 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 19 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 20 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 21 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 22 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 23 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 24 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, ... 25