Você está na página 1de 39

Organizao de Computadores - Prof.

Sidney Lucena

Nvel de Sistema Operacional

O que um Sistema Operacional? Gerncia de: Memria Sistema de Arquivos CPU System Calls

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional Sistema Operacional Programa que cria uma interface entre o usurio e o hardware atravs de system calls (chamadas de sistema) implementadas em software. Gerncia o uso de CPU, Memria, Dispositivos de Entrada/Sada e Sistema de Arquivos.

Organizao de Computadores - Prof. Sidney Lucena

Ger. de Mem. - conceitos bsicos:


Sistemas Multiprogramados: mltiplos processos sendo executados simultaneamente num mesmo computador.
Diviso de recursos: CPU, dispositivos e memria RAM.

Memria compartilhada pelos processos em execuo.


Cada processo deve possuir uma rea exclusiva da memria RAM para seu uso.

Gerncia de Memria: organiza e disciplina o compartilhamento da memria pelos mltiplos processos em execuo.
3

Organizao de Computadores - Prof. Sidney Lucena

Ger. de Mem. - conceitos bsicos:


Funes Bsicas da Gerncia de Memria:
manter o maior nmero possvel de processos em memria, maximizando o compartilhamento da CPU e demais recursos;

maximizar o compartilhamento de espao da memria;


executar programas com requisitos de memria alm da capacidade fsica da RAM; proteo das reas de memria ocupadas por cada processo.
4

Organizao de Computadores - Prof. Sidney Lucena

Alocao Particionada:
Alocao Particionada Dinmica: parties alocadas dinamicamente de acordo com os requisitos de memria dos

programas.
Memria Principal Sistema Operacional Memria Principal Sistema Operacional

Programa B Programa C Programa E A 2 Kb E 3 Kb C 1 Kb B 4 Kb 15 Kb Programa A

4 Kb 1 Kb 3 Kb 2 Kb

5 Kb

Organizao de Computadores - Prof. Sidney Lucena

Alocao Particionada:
Problema: fragmentao externa.
Trmino dos processos deixa espaos que podem ser insuficientes

para novos programas.


Memria Principal Sistema Operacional

4 Kb Programa C D 6 Kb Programa A 3 Kb

5 Kb

Organizao de Computadores - Prof. Sidney Lucena

Alocao Particionada:
Problema: fragmentao externa.
Dois tipos de soluo: reunir espaos adjacentes ou relocao

dinmica.
Memria Principal Sistema Operacional Memria Principal Sistema Operacional
Memria Principal Sistema Operacional Memria Principal Sistema Operacional Programa C

4 Kb Programa C 3 Kb Programa A Programa A


Programa A

4 Kb

Programa A

8 Kb

Programa C Relocao 3 Kb 12 Kb

5 Kb

5 Kb

5 Kb

obs: mtodo muito custoso!


7

Organizao de Computadores - Prof. Sidney Lucena

Troca de Processos (Swapping):


Problema: e se no houver memria RAM suficiente para acomodar todos os processos? Soluo: realizar uma troca de processos, ou swapping.
Um dos processos em RAM deslocado para uma memria secundria (swap out) e d lugar ao novo processo (swap in). Opta-se por remover o processo em wait com menos chance de ser executado (possivelmente pode optar por um processo em ready). Uma rea do disco passa a ser usada como memria secundria (rea de swap). Mais tarde, o processo swapped out escalonado e swapped in, voltando a ser executado.
8

Organizao de Computadores - Prof. Sidney Lucena

Troca de Processos (Swapping):


Swapping:
necessrio haver relocao dinmica; permite um maior compartilhamento; custo elevado p/operaes de swap in e swap out.
H Memria Principal Sistema Operacional Programa A Programa B Programa E Programa G B Memria Principal Swap out

Problema: no havendo
espao para crescimento ou relocao, e/ou a rea de swap estiver cheia, o processo poder ficar em estado de espera ou ser terminado.

Sistema Operacional Programa A Programa H Programa E Swap in B rea Livre

Arquivo de Swap

Organizao de Computadores - Prof. Sidney Lucena

Memria Virtual:
A tcnica de memria virtual fundamenta-se em desvincular o espao de endereamento fsico (RAM) do espao de endereamento usado pelo programa. Para tal criado um espao de endereamento virtual, linear e contnuo (semelhante a um vetor), para atender os requisitos de memria de um dado programa abstraindo-se questes de implementao fsica.

Os objetivos principais desta tcnica so o de maximizar o nmero de processos em memria, reduzir a fragmentao e permitir estruturas de dados maiores que a memria fsica.
10

Organizao de Computadores - Prof. Sidney Lucena

Memria Virtual:
O espao de endereos virtuais, arranjados na forma de vetor, corresponde memria virtual e pode ser maior que o espao de memria real.
Endereo virtual 0

Espao de endereamento real

Endereo real 0 Endereo real 1 Endereo real 2 Endereo real 3

Espao de endereamento virtual

Endereo virtual 1 Endereo virtual 2 Endereo virtual 3 Endereo virtual 4 Endereo virtual 5

. . .
Endereo virtual V

. . .
Endereo real R

11

Organizao de Computadores - Prof. Sidney Lucena

Memria Virtual:
A poro de memria virtual ativa do programa fica situada na memria principal, o restante fica armazenado em disco.
Memria Virtual Memria Principal

. . .

. . . .

Memria Secundria

12

Organizao de Computadores - Prof. Sidney Lucena

Mapeamento:
O mecanismo de traduo se encarrega de manter tabelas de mapeamento exclusivas para cada processo.
Espao de endereamento virtual de A Tabela de mapeamento de A

Endereo virtual 1

. . .
Memria Principal

Processo A

Espao de endereamento virtual de B Tabela de mapeamento de B

Endereo virtual 1

. . .

Processo B

13

Organizao de Computadores - Prof. Sidney Lucena

Mapeamento:
Problema: se cada entrada na tabela de mapeamento representar uma clula da memria virtual, o espao ocupado pela tabela seria da ordem de tamanho da memria virtual, inviabilizando sua implementao. Soluo: particiona-se a memria virtual em blocos.
Cada bloco da memria virtual estar representado por uma entrada na tabela de mapeamento. Tamanho do bloco determina o nmero de entradas na tabela de mapeamento. 3 tcnicas so usadas para o particionamento em blocos: paginao, segmentao e segmentao com paginao. Abordagens tambm se apoiam no princpio da localidade.
14

Organizao de Computadores - Prof. Sidney Lucena

Paginao:
A tcnica mais comum utilizada para implementar memria virtual a paginao. Nesta tcnica, tanto memria virtual como memria principal so divididas em blocos de igual tamanho chamados pginas.
Tamanho do bloco determina o nvel de fragmentao.

Quando uma pgina referenciada no encontrada na RAM, diz-se que houve um page fault.

Na ocorrncia de um page fault, realiza-se uma operao de paginao, ou seja, de troca de pginas entre a memria principal e a memria virtual em disco.
15

Organizao de Computadores - Prof. Sidney Lucena

Paginao:
Cada processo possui sua prpria tabela de pginas.
Uma pgina virtual contm um bloco de endereos virtuais. ETP: Entrada da Tabela de Pginas, associada a cada pgina virtual de um processo. Os blocos da memria principal que abrigam as pginas reais so chamados frames.
16

Memria Principal Memria Virtual Pgina real 0 Pgina virtual 0 Pgina real 1 Pgina virtual 1 T abela de pginas Pgina virtual 2 ETP

. . .
Pgina real R

. . . .
Pgina virtual V

Memria Secundria

Organizao de Computadores - Prof. Sidney Lucena

Paginao:
Endereo virtual Tabela de pginas Memria Principal

O bit de validade numa ETP indica se a pgina em questo encontra-se na memria principal ou no. Se a ETP da pgina que contm o endereo virtual desejado tem bit de validade 0, ou seja, no est na memria principal, ocorre um page fault.

Bit de validade 0
Pag e

Page in
f au lt

Memria secundria

Memria Principal Tabela de pginas

Bit de validade 1 Memria secundria

17

Organizao de Computadores - Prof. Sidney Lucena

Paginao:
Quando ocorre um page fault, a pgina referenciada carregada para a memria principal (page in) no local de uma pgina que j se encontrava na RAM (page out, supondo memria RAM cheia). Esta pgina a ser substituda escolhida segundo algum algoritmo de substituio.
Memria Principal Arquivo de paginao

Pag e o

ut

Pag e i n

18

Organizao de Computadores - Prof. Sidney Lucena

Segmentao:
Espao de endereos dividido em blocos de diferentes tamanhos chamados segmentos. Mantm uma relao lgica com a estrutura do programa e sua alocao na memria principal.

A definio dos segmentos costuma ser realizada pelo compilador e cada segmento pode representar um procedimento, uma funo, um vetor ou uma pilha. atribudo a cada processo um nmero mximo de segmentos e um tamanho mximo para cada segmento.
Pode ter problema de fragmentao externa.
19

Organizao de Computadores - Prof. Sidney Lucena

Segmentao:

Procedimento X PROGRAM Segmento; VAR A: ARRAY ... C: ... PROCEDURE X; END; FUNCTION Y; END; BEGIN END. Varivel C Array A Programa Principal Funo Y

. . .

20

Organizao de Computadores - Prof. Sidney Lucena

Segmentao:

Paginao x Segmentao:

21

Organizao de Computadores - Prof. Sidney Lucena

Swapping em Memria Virtual:


Exatamente a mesma tcnica de swapping, porm aplicada s pginas ou segmentos referentes aos processos swapped out e, posteriormente, swapped in.
Memria Principal Processo A Processo B

Processo F

Processo C

Sw
Processo D Processo E

ap

ou

Memria Principal

Processo B Processo A

ap Sw

in
Arquivo de swapping

Processo C Processo F

Processo B Processo D

22

Organizao de Computadores - Prof. Sidney Lucena

Thrashing:
Ocorre quando h uma taxa elevada de faults, sejam de segmentos ou de pginas, seja a nvel de sistema ou de processo. Acarreta uma degradao no desempenho da mquina: uma pgina ou segmento swapped out em breve ser requisitada para fazer swap in, causando um efeito cascata. CPU perde muito tempo com swapping de pginas/segmentos. Se houver uma demanda de memria, pelos processos a serem executados, maior que a capacidade da memria principal, a nica soluo aumentar esta capacidade.
23

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional Gerenciamento de Sistema de Arquivos (Discos): .

24

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional Gerenciamento de Sistema de Arquivos (Discos): Controle de espao disponvel no disco nas formas tabela ou bitmap.

25

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional Gerenciamento de Sistema de Arquivos (Discos): Descritor de Arquivos.

26

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional Gerenciamento de CPU (scheduling): Algoritmos : FIFO, RANDOM, PRIORITY, etc. Paralelismo real e virtual usando escalonamento e multitarefa.

27

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional Gerenciamento de CPU (problemas de concorrncia): Ao executar programas recursos so necessrios. A necessidade de simultaneidade no uso destes recursos leva a problemas de concorrncia (tentativa de uso simultneo de recursos) que deve ser controlada atravs de mecanismos e instrues especiais que impeam que um recurso j comprometido seja alocado por outro programa. Exemplo de mecanismos para controle de uso de recursos so os semforos e monitores. Estes mecanismos definem, nas regies crticas do processo, formas de controle de recursos, evitando assim a superposio de uso, o que geraria resultados indesejveis e/ou inesperados.
28

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional System Calls Exemplo do UNIX:

29

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional UNIX: Desenvolvido no Bell Labs por Ken Thompson na dcada de 1970. Verso inicial para PDP-7 depois PDP-11 (mquina popular da Digital inc.). Denis Ritchie desenvolve junto com Ken Thompson a linguagem C para programa o UNIX. UNIX derivado do projeto do MIT denominado MULTICS que derivou para UNICS e em seguida para UNIX. Tanenbaum desenvolve para fins acadmicos no final da dcada de 1980 o MINIX, verso do UNIX com todo o cdigo fonte com o objetivo de ensinar sistemas operacionais na Universidade. Publica livro com todo o cdigo fonte.
30

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional UNIX: O UNIX original evolui e distribudo gratuitamente em todas as universidades americanas e outros por todo o mundo. Berkeley executa diversos desenvolvimentos no UNIX criando a verso chamda BSD (Berkeley System Development) e distribui tambm gratuitamente , cria o conceito de operao em rede, sockets e o TCP/IP. Comercialmente o UNIX se transforma em UNIX System V. So desenvolvidas diversas verses de UNIX para servidores cmo HP-UX (da HP) , AIX (da IBM) , Solaris (da SUN) , SCO (da Santa Cruz Operation) e outros. criado entao um grupo de trabalho que publica um padro para o UNIX denominado POSIX para diminuir a diversidade de verses existentes de UNIX.
31

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional Estrutura do UNIX:

32

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional Windows NT:


Desenvolvido como uma nova linha da Microsoft aps abandonar projeto de sistema multitarefa OS/2 com a IBM. Diversos percalos no desenvolviemnto leva a chamar equipe da Digital que desenvolveu o VMS. criado um novo sistema operacional (NT - significa New Technology) para servidores integrando a funcionalidade do VMS (que um execelente sistema operacional) com a interface grfica (GUI) original do Windows. Criada uma API WIN32 com interface de system calls para o NT padronizada para os demais sistemas operacionais da Microsoft. A partir de 2000 o NT substitui toda a linha anterior de sistemas operacionais da Microsoft passando a ser a nica opo de Sistemas Operacionais da linha Microsoft.

33

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional Windows NT:


Possui diversos subsistemas podendo rodar 3 diferentes chamadas de sistemas operacionais: POSIX, WIN32 e OS/2. Possui uma camada de abstrao de hardware que permite rodar o mesmo sistema operacional em diversas plataformas de hardware diferentes. Hoje roda em X86, DEC-ALFA e MIPS.

34

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional Windows NT: System calls no NT para gerenciamento de Memria Virtual.

35

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional UNIX - Gerenciamento de Arquivos: System calls no para gerenciamento de Arquivos no UNIX.

36

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional UNIX - Gerenciamento de Arquivos: Programa para copiar um arquivo em C usando o SO UNIX.

37

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional Windows NT - Gerenciamento de Arquivos: Chamadas para manipulao de arquivos no Windows NT.

38

Organizao de Computadores - Prof. Sidney Lucena

Nvel de Sistema Operacional Windows NT - Gerenciamento de Arquivos: Programa para copiar arquivos usando o Windows NT.

39