31
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

Nível do Sistema Operacional - inf.furb.brmaw/arquitetura/aula14.pdf · Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Roberta Lima Gomes -LPRM/DI/UFES

Embed Size (px)

Citation preview

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.

22222222Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES

Monoprogramação (2)

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

24242424Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES

Multiprogramação (2)

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

31313131Sistemas de Programação I – 2007/1 Profa Roberta L.G. - LPRM/DI/UFES

Referências

� Andrew S. Tanenbaum, Organização Estruturada de Computadores, 5ª edição, Prentice-Hall do Brasil, 2007. Capítulo 6