Sistemas Operacionais e Introdução à Programação Módulo 1 Sistemas Operacionais 1
Competências: SOP 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 Interconexão do sistema: 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) Como uma tabela onde estão guardadas palavras de Cada palavra possui seu endereço: linha da tabela onde está a palavra 985600FF E3712024 A6F0DE71 00641198 5B394501 886A2355 Cada palavra possui seu endereço: linha da tabela onde Palavra 00641198 : endereço 3 Palavra 985600FF : endereço 0 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 Executa instruções que estão Cada instrução é buscada ( fetch fetch ) da memória sequencialmente Um registrador especial contém endereço da próxima instrução a ser buscada 8
E/S: Visão geral de um computador Dispositivos para entrada e saída de dados Discos, teclado, mouse, monitor, placa de rede, scanner,... Discos, teclado, mouse, monitor, placa de rede, 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) 1
Visão geral de um computador Resumo do sistema computacional: 1
Conceituação básica: Um programa que controla a execução de programas aplicativos Um programa que controla a execução de programas Uma interface entre o usuário e a máquina Esconde os detalhes do hardware 1
Camadas de um sistema computacional 1
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 Capacidade de evoluir: 1
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 Contabilização para monitoramento de desempenho e 1
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 1
Abstrações típicas de SO: Processos: : programa em execução Arquivos e diretórios: : repositórios de dados identificados por nomes Arquivos e diretórios Memória virtual: : memória secundária (disco) usada como se fosse memória principal Memória virtual E/S: : dispositivos vistos como se fossem arquivos especiais Rede: : conexões de rede e facilidades para envios de mensagens 1
História dos sistemas operacionais 1a geração: 1945-1955 Válvulas e painéis de programação 2a geração: 1955-1965 Transistores e sistemas em lote (jobs( jobs) 3a geração: 1965-1980 CIs e multiprogramação (timesharing( timesharing) 4a geração: 1980 1995 Computadores pessoais 5a geração: 1995 presente Computadores em rede e Internet 1
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 1
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 2
História dos sistemas operacionais Uniprogramação: apenas um processo executa por vez (e até o fim) Uniprogramação: apenas um processo executa por vez (e Uso ineficiente dos recursos da máquina Processo em espera por E/S prende o processador 2
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 Processo em espera por E/S libera o processador para 2
História dos sistemas operacionais Características de SO para multiprogramação Deve saber escolher algum dos processos ativos para usar o processador Deve saber escolher algum dos processos ativos para Deve cuidar para que um processo não interfira no funcionamento de outros processos Deve cuidar para que um processo não interfira no Deve alocar a memória da melhor forma entre os processos Deve alocar a memória da melhor forma entre os Deve coordenar o acesso dos processos aos dispositivos de E/S Deve coordenar o acesso dos processos aos dispositivos 2
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, MS- DOS Pode rodar diferentes tipos de SO: Windows, Linux, MS- 2
História dos sistemas operacionais Computadores em rede 5a geração Comunicação em rede incorporada ao computador e ao sistema operacional Comunicação em rede incorporada ao computador e ao SO com funcionalidades de sistemas distribuídos Acesso a dispositivos remotos: discos de rede (compartilhamentos), impressoras Acesso a dispositivos remotos: discos de rede 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,... 2