SLIDES 6 Sistemas Operativos
-
Upload
ricardobest -
Category
Documents
-
view
219 -
download
0
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)