SLIDES 6 Sistemas Operativos

download SLIDES 6 Sistemas Operativos

of 20

Transcript of SLIDES 6 Sistemas Operativos

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    1/20

    1

    Overview Sistemas Operativos

    Sistemas Informáticos I, 2005/2006

    SLIDES 6

    Quem são estes Senhores?

    Dennis Ritchie Ken Thompson

    Steve Jobs

    Bill Gates

    Bill Joy

    Linus Torvalds

    Andrew Tanenbaum

    Diferentes Tipos de Software

    Device Drivers

    Funções do Sistema Operativo

    Esconder os detalhes do hardware subjacenteao sistema Gestão de memória Gestão de dispositivos genéricos Gestão de dispositivos de armazenamento

    (discos/etc.) Segurança

    “Virtualizar” a utilização do processador e dosrecursos associados à máquina Cada programa corre sobre a aparência de ser o

    único no sistema O sistema operativo fornece um interface unificado

    aos dispositivos da máquina

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    2/20

    2

    Virtualização do Processador/Dispositivos

    Processador Real

    Processadores Virtuais(... máquinas virtuais...)

    Virtualização da Máquina

    Dois aspectos fundamentais...

    Multiprogramação Trata-se de uma técnica de manter múltiplos

    programas em memória simultaneamente. Cadaprograma executa como se fosse o único existentena máquina.

    Gestão de Memória Em qualquer altura o Sistema Operativo tem de

    saber que programas estão em memória e onde éque cada um deles reside

    Conceito de Processo

    Um programa em execução com... Um identificador único Recursos próprios (e.g. ficheiros abertos) Um espaço de endereçamento (i.e. memória própria

    protegida de todos os outros “processos”)

    MS Excel(1 processo)

    MS Word(1 processo)

    Histórico: batch processing

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    3/20

    3

    Timesharing

    Timesharing system A system that allowsmultiple users to interact with a computer at thesame timeMultiprogramming A technique that allowsmultiple processes to be active at once,allowing programmers to interact with thecomputer system directly, while still sharing its

    resourcesIn a timesharing system, each user has his orher own virtual machine, in which all systemresources are (in effect) available for use

    Comutação entre Processos

    De alguns em alguns ms é gerada uma “interrupção”Quanto existe uma interrupção, deixa-se de executar ocódigo do utilizador e passa-se a executar o código dosistema operativo

    O sistema operativo pode então comutar para outroprocesso (escalonamento preemptivo)

    total = 0;for (int i=0; i

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    4/20

    4

    Filas do Sistema Operativo

    Ready Queue Fila onde aguardam todos os processos que estão à

    espera de executar

    Blocked Queue Fila onde aguardam todos os processos que estão à

    espera que uma operação de entrada/saídacomplete ou de um “evento especial”

    Running (não é uma fila) Processo que se encontra a executar Apenas este processo o Sistema Operativo ocupam

    tempo de processador

    Escalonamento de Processos

    Suponhamos que existem vários processos naReady Queue.... Como é que se decide qual é que executa a seguir?

    Existem diversos algoritmos.Um bastante conhecido é o Round-Robin

    Round Robin

    É decidido à priori qual a fatia de tempo a atribuir acada processo. Timeslice ou Quantum de Execução

    A “Ready Queue ” é um lista ordenada Cada processo executa até se esgotar o seu timeslice. Quando

    isso acontece, é colocado no final da ready queue  O próximo processo a executar é o que está à frente na ready 

    queue 

    Ver Slides_6B:Escalonamento Processos

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    5/20

    5

    Gestão de Memória

    Bootstrap process

    Endereços de Memória Endereços Lógicos e Físicos

    Endereço Lógico: especifica um endereço queé visto pelo programa que deverá ter algumacorrespondência com um endereço físico.

    Endereço Físico: endereço real/absoluto namemória principal.

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    6/20

    6

    Endereço Virtual Endereço Físico Endereços Lógicos e Físicos

    Gestão de Memória

    Base register A registerthat holds the beginningaddress of the currentpartition

    Bounds register A registerthat holds the length of thecurrent partition

    Particionamento de Memória

    Fixed partitions Main memory is divided intoa particular number of partitions.

    Dynamic partitions Partitions are created to

    fit the needs of the programs.

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    7/20

    7

    Fixed Partitioning

    Equal-size partitions

    any process whose size is less than or equal to thepartition size can be loaded into an availablepartition.

    if all partitions are full, the operating system canswap a process out of a partition.

    a program may not fit in a partition. The programmermust design the program with overlays.

    The use of main memory is inefficient. Noprogram occupies an entire partition. This iscalled internal fragmentation.

    Placement Algorithms with Partitions

    Equal-size partitions

    because all partitions are of equal size, it does notmatter which partition is used

    Unequal-size partitions

    can assign each process to the smallest partitionwithin which it will fit

    queue for each partition

    processes are assigned in such a way as tominimize wasted memory within a partition

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    8/20

    8

    Dynamic Partitioning

    Partitions are of variable length and number.Process is allocated exactly as much memoryas required.

    Eventually get holes in the memory. This iscalled external fragmentation.

    Must use compaction to shift processes sothey are contiguous and all free memory is inone block.

    Memory Compaction

    To merge the memory blocks and reducememory holes caused by externalfragmentation.

    Time-consuming task....

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    9/20

    9

    Dynamic Partitioning: Placement Algorithms

    Operating system must decide which free blockto allocate to a process.

    Four algorithms:Best-Fit; First-Fit; Next-Fit; Worst-Fit

    Placement Algorithm: Best-Fit

    Best-fit algorithm

    Chooses the block that is closest in size to therequest.

    Worst performance.

    Since it finds the smallest block it produces thesmallest amount of fragmentation.

    Memory compaction must be done more often.

    Placement Algorithm: Worst-Fit

    Worst-fit algorithm

    Chooses the largest available block.

    The fragmentation area can be used for anotherrequest.

    Placement Algorithm: First-Fit

    First-fit algorithm

    Begins to scan memory from the beginning andchooses the next available block that is largestenough.

    Fastest.

    May have many process loaded in the front end ofmemory that must be searched over when trying tofind a free block.

    Analysis of First-Fit Algorithm:

    For every N allocated blocks, there are another 0.5N blocks that will be lost due tofragmentation -> 1/3 of memory will be unusable...

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    10/20

    10

    Placement Algorithm: Next-Fit

    Next-fit

    Begins to scan memory from the location of the lastplacement and chooses the next available block thatis largest enough.

    Worst-Fit

    Buddy System

    Entire space available is treated as a singleblock of 2U.

    If a request of size s such that 2U-1 < s

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    11/20

    11

    Exercícios Gestão Memória

    Considere que tem um sistema de memória com as seguintespartições pela seguinte ordem:

    100kb, 500kb, 200kb, 300kb, 600kb, 400kb.

    Qual o resultado de execução dos algoritmos Best-Fit , First-Fit ,Worst-Fit para a seguinte ordem de pedidos:

    212kb, 417kb, 112kb, 526kb, 12kb- Para cada um dos algoritmos indique o total de fragmentação.

    E se tivesse uma memória de 2Mb e o algoritmo Buddy-system ,qual seria o resultado da execução para aquela ordem de pedidos?

    Exercício

    Considere a técnica de Buddy System para gestão de memória. Admitindo quea memória total é de 512kbytes.Apresente a simulação do algoritmo, “step-by-step ” e indique a valor total defragmentação interna em cada passo, considerando a seguinte li sta depedidos:

    Em caso de inexistência de espaço na memória principal considere aexistência de swapping para memória virtual e a aplicação do algoritmo LRU.

    A: request 88kB: request 156kC: request 22k

    D: request 54kE: request 312k--- release C,AF: request 136k--- release DG: request 206k

    Exercício

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    12/20

    12

    Protecção de Memória

    É absolutamente fundamental que cadaprocesso não possa aceder à memória dosoutros processos Questão de segurança de dados

    Protecção contra “ponteiros” perdidos e bugs desoftware 

    Grande problema dos Windows 95, 98 e Macs

    antigos!

    Memória Segmentada “Real”

    A cada processo corresponde um endereço base e umlimite (registos especiais no processador)Sempre que existe um acesso a memória, oprocessador verifica se o processo se encontra aaceder à sua memória ou não

    0

    ProcessoA

    ProcessoB

    50060

    60530

    70000

    71433

    MOV AX, [50124]

    MOV AX, [60000]

    OK, dentro do espaço de endereçamento 

    ERRO, Acesso proibido! 

    GPF e Segmentation Faults! Memória Virtual

    Actualmente, todos os sistemas utilizam o conceito dememória virtual Cada processo vê toda a memória do computador, como

    sendo dele Quando um processo gera um endereço, esse endereço é

    virtual. O processador, com a ajuda do sistema operativo

    transforma-o num endereço físico

    0 0

    4Gb 4Gb

    Espaço deendereçamentodo processo A

    Espaço deendereçamentodo processo B

    1000 1000

    Memória física0

    256Mb5000

    Tabela(s) deTradução deEndereços

    Disco

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    13/20

    13

    Memória Virtual Paginada

    O sistema mais utilizado nas máquinas actuaisFunciona tal como o esquema indicadoanteriormente, com os seguinte pormenores A memória física é dividida em pequenos pedaços

    chamados páginas (e.g. 4Kbytes) A memória de cada processo também é dividida em

    páginas Existe uma tabela de páginas por cada processo,

    que é gerida pelo sistema operativo. É utilizando

    esta tabela que é feita a tradução dos endereçosvirtuais em endereços físicos

    Sempre que é colocado outro processo emexecução, a sua tabela de páginas é carregada.

    Paginação de Memória

    Paged memory technique A memorymanagement technique in which processes aredivided into fixed-size pages and stored inmemory frames when loaded into memory Frame A fixed-size portion of main memory that

    holds a process page

    Page A fixed-size portion of a process that is storedinto a memory frame

    Page-map table (PMT) A table used by theoperating system to keep track of page/framerelationships

    Paginação de Memória

    To produce a physicaladdress, you first look upthe page in the PMT to findthe frame number in which it

    is stored

    Then multiply the framenumber by the frame sizeand add the offset to get thephysical address

    Figure 10.7A paged memorymanagementapproach

    Address Translation Scheme

    Address generated by CPU is divided into: Page number (p) – used as an index into a page 

    table which contains base address of each page inphysical memory.

    Page offset (d) – combined with base address todefine the physical memory address that is sent tothe memory unit.

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    14/20

    14

    Paging: Address Translation

    Page number (p)  – used as an index into a page table which contains base address of each page in physical memory.Page offset (d)  – combined with base address to define the physical memory address that is sent to the memory unit.

    Paging Example

    Free Frames

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    15/20

    15

    Page Tables for Example

    Logical-to-Physical Address Translation

    Exercícios Paginação

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    16/20

    16

    Considere um computador com 256Mbytes de memória real,que usa um esquema de memória virtual de 2Gbytes, baseadoem Paginação, e onde o número das páginas ocupam os 20bits mais significativos do endereço virtual.

    (a) Qual o total máximo de páginas?

    (b) Qual o tamanho de cada página?

    (c) Se uma PTE (Page Table Entry ) ocupar 8 bytes quantaspáginas ocupa a Tabela de Páginas? Qual será o tamanhomáximo dessa Tabela.

    Exercício Page Swapping

    Demand paging An important extension ofpaged memory management Not all parts of a program actually have to be in

    memory at the same time

    In demand paging, the pages are brought intomemory on demand

    Page swap The act of bringing in a page fromsecondary memory, which often causes another page

    to be written back to secondary memory

    Swapping Swapping

    A process can be swapped temporarily out of memoryto disk, and then brought back into memory forcontinued execution.

    Major part of swap time is transfer time; total transfertime is directly proportional to the amount of memoryswapped.

    Example:disk: transfer rate 5Mb/secmemory to swap: 1 MbTime it takes to swap out: 1/5 sec = 200 msecAverage disk latency: 8 msecTime to swap-out/swap-in: 416 msec

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    17/20

    17

    Memória Virtual Need for Page Replacement

    Basic Page Replacement

    1. Find the location of the desired page on disk.

    2. Find a free frame:- If there is a free frame, use it.- If there is no free frame, use a page replacement

    algorithm to select a victim frame.- If victim is dirty write back to disk

    3. Read the desired page into the (newly) free frame.Update the page and frame tables.

    4. Restart the process.

    Example

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    18/20

    18

    Trashing

    Se um processo não tem páginas “suficientes”,o ritmo de faltas de página aumenta muito. Istoé caracterizado pelo comando vmstat : Baixa taxa de ocupação do CPU.

    Grande número de operações de I/O sobre o discode paginação.

    Poucas “frames”livres.

    Thrashing   ≡ o processo está praticamentesempre à espera que o SO carregue páginas(page-in) e a transferir páginas (page-out)de/para o disco.

    Trashing

    Exercício

    Considere que tem um sistema operativo com umdeterminado valor limite no grau demultiprogramação e que a taxa de utilização deCPU e disco foram medidas nos seguintes 3cenários:

    (a) CPU usage [11%]; Disk usage [98%]

    (b) CPU usage [92%]; Disk usage [5%](c) CPU usage [12%]; Disk usage [3%]

    Para cada um dos três casos, indique o que poderáestar a acontecer, indique se pode aumentar onúmero de processos para ocupar mais a CPU e seo mecanismo de paginação deverá estar ou não amelhorar a performance.

    Localidade Temporal e Espacial

    Para evitar a ocorrência de trashing é precisoque os programas explorem bem a localidade

    dos dados mantidos em cache.

    Localidade Temporal

    Localidade Espacial

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    19/20

    19

    Hierarquia de memória

    Princípio da localidade espacial: Se eu acedi a estes dados, é

    provável que aceda aos dados queestão próximos (e.g. uma imagem)

    Princípio da localidade temporal: Se eu acedi à pouco tempo a estes

    dados, é provável que lhes váaceder dentro de pouco tempo

    Registos

    Cache

    Memória Central (RAM)

    Memória de Massa (Disco)

    ~128x 32bits

    ~512Kbyte

    ~512Mbyte

    ~60Gbyte

    VelocidadePreço

    Tamanho

    int A[][] = new int[128][128];int i,j;

     // page size = 512 bytes // each row is stored in one // page

    // Programa A

    for (j = 0; j < 128; j++)for (i = 0; i < 128; i++)

    A[i][j] = 0;

    int A[][] = new int[128][128];int i,j;

     // page size = 512 bytes // each row is stored in one // page

    // Programa B

    for (i = 0; i < 128; i++)for (j = 0; j < 128; j++)

    A[i][j] = 0;

    Exemplo: dois programas...

    Quem escreveu o programa A?

    E o programa B?

    José Peseiro

    int A[][] = new int[128][128];

    // Programa Afor (j = 0; j < 128; j++)

    for (i = 0; i < 128; i++)A[i][j] = 0;

    int A[][] = new int[128][128];

    // Programa Bfor (i = 0; i < 128; i++)

    for (j = 0; j < 128; j++)A[i][j] = 0;

    128 page faults128 x128 = 16,384 page faults

    Page Faults

  • 8/13/2019 SLIDES 6 Sistemas Operativos

    20/20

    20

    int A[][] = new int[128][128];

    // Programa Afor (j = 0; j < 128; j++)

    for (i = 0; i < 128; i++)A[i][j] = 0;

    int A[][] = new int[128][128];

    // Programa Bfor (i = 0; i < 128; i++)

    for (j = 0; j < 128; j++)A[i][j] = 0;

    128 page faults128 x128 = 16,384 page faults

    Exercício

    Considere que tem duas matrizes:- int A[4][400];- int B[4][400].O tamanho da página neste sistema é 800 bytes e um inteiro ocupa 4bytes. O sistema tem N Page-Frames , mas o primeiro page-frame éusado pela página 0, que contém o código. Os outros (N-1)Page-frames estão vazios no ínicio. O sistema faz uso do algoritmo LRU e doModify- Bit para troca de páginas.

    Se o número de Page-Frames for igual a cinco (N=5) quantosPage- Faults e quantos Swap-Outs serão gerados pelo Programa A? e peloPrograma B?

    // Programa A 

    for(i=0;i < 4; i++)

    for(j=0; j < 400; j++)

     A[i][j]=B[i][j];

    // Programa B

    for(j=0;j < 400; j++)

    for(i=0; i < 4; i++)

     A[i][j]=B[i][j];

    Para saber mais...

    Computer Science, An Overview Capítulo 3 (3.1, 3.2, 3.3)

    Computer Science Illuminated Capítulo 10 (10.1, 10.2, 10.3, 10.4)