Nível do Sistema Operacional(Aula 14)
Introdução a Sistemas Operacionais
Roberta Lima Gomes - LPRM/DI/UFES
Sistemas de Programação I – Eng. Elétrica 2007/1
2222Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Introdução
� Hardware� Provê os recursos básicos de computação (CPU, memória, E/S,etc.)
� Programas (aplicações)� Definem as maneiras pelas quais os recursos do sistema são
usados para resolver os problemas computacionais dos usuários (compiladores, sistemas de banco de dados, vídeo games, programas financeiros, etc.).
� Usuários� Pessoas, máquinas, outros computadores.
Fato: o hardware de um computador, sozinho, não fornece um ambiente simples, flexível e adequado para o desenvolvimento e uso dos programas dos usuários.
3333Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Introdução
� Visão Abstrata
4444Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Um Sistema Operacional...
� ... possibilita o uso eficiente e controlado dos diversos componentes de hardware do computador.
� ... implementa políticas e estruturas de software de modo a assegurar um melhor desempenho do sistema de computação como um todo.
� Nome dado a um conjunto de programas que trabalham de modo cooperativo com o objetivo de prover uma máquina mais flexível e adequada ao programador do que aquela apresentada pelo hardware sozinho
5555Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Definições
� “A program that controls the execution of application programs.”
� “An interface between applications and hardware.”� “Programa que age como um intermediário entre o usuário de um
computador e o hardware deste computador”.
� “Resource allocator”� Gerencia e aloca recursos.
� “Control program”� Controla a execução dos programas de usuário e operações de E/S
� “Kernel”� O programa executado durante todo o tempo (os demais
programas são as aplicações de usuários)
6666Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Função
� “A principal função de um sistema operacional é prover um ambiente no qual os programas dos usuários (aplicações) possam rodar”. Isso envolve:� definir um framework básico para a execução dos programas e
� prover uma série de serviços (ex: sistema de arquivos, sistema de E/S) e uma interface de programação para acesso aos mesmos”.
7777Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Organização Típica (1)
� Núcleo� Responsável pela gerência do processador, tratamento de interrupções, comunicação e sincronização entre processos.
� Escalonamento de processos (programa em execução)
� Gerente de Memória� Responsável pelo controle e alocação de memória aos processos ativos.
� Memória Virtual: Segmentação e Paginação
� Sistema de E/S� Responsável pelo controle e execução de operações de E/S e otimização do uso dos periféricos.
8888Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Organização Típica (2)
� Sistema de Arquivos� Responsável pelo acesso e integridade dos dados residentes na memória secundária.
� FAT32, NTFS, ...
� Processador de Comandos / Interface com o Usuário� Responsável pela interface conversacional com o usuário.
9999Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Classificação (1)
� Quanto ao número de usuários:� Monousuários: projetados para suportar um único usuário.
� Ex: MS-DOS, Windows 3x, Windows 9x.
� Multiusuários: projetados para suportar várias sessões de usuários.� Ex: Windows NT(2000), UNIX.
� Quanto ao número de tarefas:� Monotarefa: capazes de executar apenas uma tarefa (um aplicativo)
de cada vez.� Ex: MS-DOS
� Multitarefa: capazes de executar várias atividades simultaneamente(Multiprogramação)
� Ex:Windows, OS/2, Unix.
PROCESSO == Programa em Execução
Processo 3
Processo 2
Processo 1
10101010Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Classificação (2)
� Quanto ao tipo de serviço oferecido ao usuário:
� Sistemas de processamento em lotes (“batch”)
� Sistemas de tempo compartilhado (“time-sharing”)
� Sistemas de tempo real (“real-time”)
11111111Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Sistemas de Lotes
� Primeiro tipo de sistema operacional.
� Monotarefa (ñ suportava multiprogramação)
� Job é o conceito básico num sistema de lotes, sendo constituído do programa a ser compilado e executado, acompanhado dos dados.
12121212Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Sistemas de Tempo Compartilhado
� A capacidade e o tempo de processamento da máquina é dividida entre múltiplos usuários, que acessam o sistema através de terminais.
� Uso da técnica de multiprogramação para a manipulação de múltiplos jobs interativos.
� Uso de Memória Virtual� Jobs são constantemente
“trocados” entre memória e disco (“swap”).
13131313Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Sistemas de Tempo Real
� Sistemas dedicados a uma classe de aplicações, tipicamente de controle e medição, que exigem monitoramento contínuo de instrumentos.
� Ex: sistemas de controle industriais, sistemas robóticos, sistemas de realidade virtual, automação doméstica, etc.
� Ex: QNX, CMX-RTX, LynxOS, RTMX, etc.
� Possuem restrições temporais bem definidas� O tempo de resposta é considerado crítico
14141414Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Evolução dos S.O. x Arquitetura de Comp.
� Sistemas Mainframes
� Sistemas Desktop
� Sistemas Distribuídos
� Sistemas Handheld
� Sistemas Paralelos
15151515Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Sistemas Mainframes
� Primeiros sistemas computacionais usados na resolução de problemas comerciais e aplicações científicas.
� Nos dias atuais,são projetados para processamento de grande volume de dados.
� Arquitetura de hardware complexa.
� Trabalham em multimodo (usualmente “batch” e “time- sharing”).
16161616Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Sistemas Desktop� Integração em muito larga escala (VLSI) levou adiante o projeto
de miniaturização e barateamento dos equipamentos.
� Surgiram os microcomputadores (Personal Computer - PC) de 16 bits da IBM e o Sistema Operacional da Microsoft MS-DOS, criando a filosofia dos computadores pessoais.
� Apresenta conveniência para o usuário, com um bom tempo de resposta e uma boa taxa de processamento a um custo relativamente baixo.
� Pode rodar diferentes tipos de S.O. (Windows, MacOS, UNIX, Linux, etc.)
� Apesar de monousuárias, os S.O.s permitem que se executem diversas tarefas concorrentemente
� Multitarefa ou Multiprogramação
17171717Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Sistemas Distribuídos (1)
� Conjunto de computadores interconectados de forma a possibilitar a execução de um serviço.
� Requer uma infra-estrutura física de redes (LAN, WAN) e suporte de protocolos de comunicação (TCP/IP).
� A realização de uma tarefa é distribuída entre vários nós da rede.
� A existência de várias máquinas é transparente, isto é, o Sistema Operacional fornece uma visão única do sistema
� Vantagens:� Compartilhamento de recursos;
� Balanceamento de carga;
� Aumento da velocidade de computação;
� Maior confiabilidade
18181818Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Sistemas Distribuídos (2)
� Diferentes arquiteturas� Peer to Peer: Sistemas “fracamente acoplados” onde cada nó é uma
máquina independente, com seu próprio S.O. e sua própria memórialocal
� Cliente-servidor: Servidores são configurados para satisfazer as consultas dos sistemas clientes (servidor de arquivos, servidor de mail, servidor de ftp, etc.).
19191919Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Sistemas Handheld
� Sistemas operacionais adaptados para dispositivos móveis, como PDAs – Personal Digital Assistants e telefones celulares. � Memória limitada, processador mais lento e display de pequenas
dimensões.
� S.O. e aplicações projetados para minimizar o uso do processador (redução do consumo da bateria).
� Uso possível de tecnologias wireless, como Bluetooth, para acesso remoto a e-mail e navegação Web.
20202020Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Sistemas Paralelos
� São sistemas com mais de uma CPU atuando de modo colaborativo (“multiprocessor systems”).
� Os processadores compartilham o barramento, memória e relógio, além de dispositivos periféricos
� Principais vantagens:
� Aumento da vazão (“throughput”).� n processadores => n vezes mais rápido?
� Economia de escala;
� Aumento da confiabilidade.
� Asymmetric Multiprocessing� Relação de mestre-escravo
� Symmetric Multiprocessing (SMP)
� Cada processador roda uma cópia idêntica do sistema operacional.
� A maioria dos sistemas operacionais modernos suporta SMP
21212121Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Monoprogramação (1)
� Os recursos computacionais estão inteiramente dedicados a um único programa/tarefa.
� A CPU fica ociosa durante muito tempo enquanto o programa aguarda por um evento (digitação de um dado, leitura do disco, etc.).
� A memória principal é subutilizada caso o programa não a preencha totalmente.
� Os periféricos são dedicados a um único programa.
� Não existe grandes preocupações com a proteção de memória.
� A complexidade de implementação é relativamente baixa.
23232323Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Multiprogramação (1)
� Vários programas (e vários usuários) competem pelos recursos do sistema.
� O objetivo é manter mais de um programa em execução “simultaneamente”, dando a ilusão de que cada programa/usuário tem a máquina dedicada para si.
� A idéia é tirar proveito do tempo ocioso da CPU durante as operações de E/S. Enquanto um programa espera por uma operação de leitura ou escrita outros programas podem estar sendo processados no mesmo intervalo.� Maximização do uso do processador e da memória.
� Maior taxa de utilização do sistema como um todo (redução do custo total máquina/homem).
� Suporte de hardware:� Mecanismo de interrupção (sinalização de eventos).
� Discos magnéticos (acesso randômico aos programas, melhor desempenho em operações de E/S).
� Memória Virtual
25252525Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Memória Virtual Paginada (1)
� A Memória Virtual é uma extensão da memória RAM
� Constituida da junção da memória principal com a memória secundária
� Utilizamos para obter mais memória que o computador possui fisicamente
� Espaço de endereçamento: número de palavras endereçáveis
� Se a máquina utiliza endereços de 16 bits => espaço de endereçamento de 216 = 64 k endereços
� No entanto uma máquina pode apresentar uma memória física menor
26262626Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Memória Virtual Paginada (2)
� Espaço de endereços virtuais x Espaço de endereços físicos� Os programas “enxergam” o espaço de endereços virtuais
� O espaço de endereçamento virtual é dividido em um conjunto de páginas do mesmo tamanho� Ex: Páginas de 64kB, 4MB, ...
� O espaço de endereçamento físico também é dividido de forma similar ao virtual� Cada “pedaço” da memória principal, chamado de Moldura de Página (Frame), deve ser capaz de armazenar exatamente uma página
27272727Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Memória Virtual Paginada (3)
Páginas de 4k
� A idéia é que o programador possa usar os endereços virtuais
� O S.O. dá a ilusão de que todos os endereços virtuais são mantidos na memória principal
28282828Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Memória Virtual Paginada (3)
� O S.O. dá a ilusão de que todos os endereços virtuais são mantidos na memória principal
� A memória virtual deve ser implementada através de uma Tabela de páginas
29292929Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Memória Virtual Paginada (4)
� Programa em linguagem de máquina gera endereços virtuais
� Endereços virtuais divididos em 2 campos
� Endereço da página
� Endereço do byte (ou palavra), dentro da página
� CPU transforma endereço virtual em endereço físico
30303030Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES
Memória Virtual Paginada (5)� Exemplo de mapeamento
frame
frame
frames
Top Related