ebx bh bl ss cs 3 ecx ch cl eax ah al...

8
03-11-2010 1 06/03/2005 51 3 rd Generation Processor 386 P3 (386) = 3 rd Generation Processor Introduced: 10/1985 Full 32b processor (32b registers. 32b internal and external databus. 32b address bus) 275k transistors. CMOS. 132-pin PGA package. (Supply current Icc=400mA. Roughly the same as 8086 !) Clock speeds: 16-33MHz P3 processors were far ahead of their time: It took 10 years before 32b operating systems became mainstream! First 386 PCs early 1987 (COMPAQ) 06/03/2005 52 80386 Features 32b general and offset registers 16B prefetch queue Memory management unit with segmentation unit and paging unit 32b address and data bus 4GB physical address space 64TB virtual address space i387 numerical coprocessor Implementation of real, protected and virtual 8086 modes Intel 80386 80386 Register Set EIP IP 31 16 15 0 FLAG 31 16 15 E0 EFLAG AH 31 16 15 0 AL 7 8 BH BL EAX EBX CH CL ECX DH DL EDX SI ESI DI EDI BP EBP SP ESP Instruction Pointer EFLAG Register General-Purpose Registers Segment Registers 15 0 CS SS DS ES FS GS 06/03/2005 55 80386 Operating Modes Protected Mode for Multitasking support Processes can run in Virtual 8086 mode. Real Mode (native 8086 mode) Processor powers up in Real Mode System Management Mode Power management or system security Processor switches to separate address space, while saving the entire context of the currently running program or task 06/03/2005 56 Coprocessor: i387 The hardware implementation of floating point processing in the i387 means floating point operations run at much higher speed. The i386 can execute all mathematical expressions using software emulation of the i387.

Upload: dangkien

Post on 10-Feb-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EBX BH BL SS CS 3 ECX CH CL EAX AH AL DSave.dee.isep.ipp.pt/~jml/arcom/priv/acetatos/arcom_386.pdf · Alocação Alocação de memória linear 2 Algoritmos de Alocação bloco alocado

03-11-2010

1

06/03/2005

51

3rd Generation Processor 386

• P3 (386) = 3rd Generation Processor

• Introduced: 10/1985

• Full 32b processor(32b registers. 32b internal and external databus. 32b address bus)

• 275k transistors. CMOS. 132-pin PGA package.(Supply current Icc=400mA. Roughly the same as 8086 !)

• Clock speeds: 16-33MHz

• P3 processors were far ahead of their time:It took 10 years before 32b operating systems became mainstream!

• First 386 PCs early 1987(COMPAQ)

06/03/2005

52

80386 Features

• 32b general and offset registers

• 16B prefetch queue

• Memory management unit with segmentation unit and paging unit

• 32b address and data bus

• 4GB physical address space

• 64TB virtual address space

• i387 numerical coprocessor

• Implementation of real, protected and virtual 8086 modes

Intel 80386 80386 Register Set

EIP IP

31 16 15 0

FLAG

31 16 15 E0

EFLAG

AH

31 16 15 0

AL

78

BH BL

EAX

EBX

CH CLECX

DH DLEDX

SIESI

DIEDI

BPEBP

SPESP

Instruction Pointer EFLAG Register

General-Purpose RegistersSegment Registers

15 0

CS

SS

DS

ES

FS

GS

06/03/2005

55

80386 Operating Modes

• Protected Mode for Multitasking support– Processes can run in Virtual 8086 mode.

• Real Mode (native 8086 mode)– Processor powers up in Real Mode

• System Management Mode– Power management or system security

– Processor switches to separate address space, while saving the entire context of the currently running program or task

06/03/2005

56

Coprocessor: i387

• The hardware implementation of floating

point processing in the i387 means floating

point operations run at much higher speed.

• The i386 can execute all mathematical

expressions using software emulation of the

i387.

Page 2: EBX BH BL SS CS 3 ECX CH CL EAX AH AL DSave.dee.isep.ipp.pt/~jml/arcom/priv/acetatos/arcom_386.pdf · Alocação Alocação de memória linear 2 Algoritmos de Alocação bloco alocado

03-11-2010

2

Sistema 386DX Endereçamento 386

Base

Índice

Escala1,2,4,8

Deslocamento

Endereço Efectivo

Base Índice Escala Deslocamento

EAXECXEDXEBXESPEBPESIEDI

EAXECXEDXEBXEBPESIEDI

0deslocamento de 8 bits

deslocamento de 32 bits

1248

MOV EAX, [EBX+ESI*4+46]

XCHG BX, [EBP+EDI*2]

Exemplo de Endereçamento 386typedef struct

{

float x;

float y;

} Ponto2D;

Ponto2D Hexagono[6];

float xi = Hexagono[i].y;

x0

y0

x1

...

xi

...

yi

Hexagono

i y

sizeof(Ponto2D)

Pode ser compilado para:

mov eax, [ EBX+ ESI*8 + 4 ]

Segmentação

Segmentação

Endereço lógico

Segmentação

16 32

Registo de base detabela de segmentos

Tabela de segmentos

Endereço linear

Descritor de Segmento

Page 3: EBX BH BL SS CS 3 ECX CH CL EAX AH AL DSave.dee.isep.ipp.pt/~jml/arcom/priv/acetatos/arcom_386.pdf · Alocação Alocação de memória linear 2 Algoritmos de Alocação bloco alocado

03-11-2010

3

Memória segmentada Registos Descritores

Protecção LDT / GDT

Requester Privilege Level

Níveis de Privilégio

CPL (Current Privilege Level) – Privilégio do código em execução

RPL (Request Privilege Level) – Privilégio solicitado para acesso à memória.

EPL (Efective Privilege Level ) = MAX(CPL,RPL)

Níveis de Privilégio

Page 4: EBX BH BL SS CS 3 ECX CH CL EAX AH AL DSave.dee.isep.ipp.pt/~jml/arcom/priv/acetatos/arcom_386.pdf · Alocação Alocação de memória linear 2 Algoritmos de Alocação bloco alocado

03-11-2010

4

Protecção de dados

CPL

>

RPL

EPL<=DPL

EPL>DPL

EPL

Acesso permitido

Acesso negado

Protecção de dados

Protecção de dados – exemplo 1

O programa do code segment A consegue aceder ao data segment Eutilizando o selector de segmento E1

• porque: EPL = MAX ( CPL=2, RPL=2 ) = 2 <= DPL = 2

Protecção de dados – exemplo 2

O programa do code segment B consegue aceder ao data segment Eutilizando o selector de segmento E2

• porque: EPL = MAX ( CPL=1, RPL=1 ) = 1 <= DPL = 2

Protecção de dados – exemplo 3

O programa do code segment C não consegue aceder ao data segment Eutilizando o selector de segmento E3

• porque: EPL = MAX ( CPL=3, RPL=3 ) = 3 > DPL = 2

Protecção de dados – exemplo 4

O programa do code segment D não consegue aceder ao data segment Eutilizando o selector de segmento E3

• porque: EPL = MAX ( CPL=0, RPL=3 ) = 3 > DPL = 2

Page 5: EBX BH BL SS CS 3 ECX CH CL EAX AH AL DSave.dee.isep.ipp.pt/~jml/arcom/priv/acetatos/arcom_386.pdf · Alocação Alocação de memória linear 2 Algoritmos de Alocação bloco alocado

03-11-2010

5

Conforming segment

• contém código que pode ser chamado a partir de diversos níveis de privilégio mas é executado com o nível de privilégio do chamador.

• Numa chamada a uma rotima num segmento “conforming”, o CPL não é alterado.

• Nestes casos, o CPL (do CS) pode ficar diferente do DPL .

Protecção de código

Call Gate Call Gate

Task Gate/ TSS

Task State Structure

Segmentação / Paginação

Page 6: EBX BH BL SS CS 3 ECX CH CL EAX AH AL DSave.dee.isep.ipp.pt/~jml/arcom/priv/acetatos/arcom_386.pdf · Alocação Alocação de memória linear 2 Algoritmos de Alocação bloco alocado

03-11-2010

6

Alocação de memória linear 1

OS

process 5

process 8

process 2

OS

process 5

process 2

OS

process 5

process 2

OS

process 9

process 2

process 9

process 10

OS OS

process 5

OS

process 5

process 2

Alocação

Alocação de memória linear 2 Algoritmos de Alocação

bloco alocado

bloco livre

bloco a alocar ( )16K

22K6K

6K

6K

8K

8K

2K

12K

20K

12K

6K

22K

8K

8K

18K

12K

36K

12K

Next Fit

LastAllocatedBlock (14K)

Best Fit

First Fit

Wost Fit

First FitA lista de blocos livres é percorrida sequencialmente desde o início.

É selecionado o primeiro bloco de tamanho suficiente.

Next FitGuarda a posição da última alocação

Pesquisa sequencialmente para a frente.

Best FitSeleciona o menor bloco livre suficiente

Worst Fit

Seleciona o maior bloco livre.

BuddyCom partição binária do espaço de memória

Buddy Alocation Memória Paginada

page# frame#

A memória física é dividida em frames.

A memória linear é dividida em páginas da mesma dimensão.

A tabela de páginas identifica a frame de cada página.

A Paginação permite que blocos de memória linear sejam

alocados em zonas não contínuas da memória física

Page 7: EBX BH BL SS CS 3 ECX CH CL EAX AH AL DSave.dee.isep.ipp.pt/~jml/arcom/priv/acetatos/arcom_386.pdf · Alocação Alocação de memória linear 2 Algoritmos de Alocação bloco alocado

03-11-2010

7

Paginação Paginação

4

5

6

Alocação de memória paginada 1 Alocação de memória paginada 2

Paginação a 2 níveis

Physical memory

Paginação a 2 níveis

Page 8: EBX BH BL SS CS 3 ECX CH CL EAX AH AL DSave.dee.isep.ipp.pt/~jml/arcom/priv/acetatos/arcom_386.pdf · Alocação Alocação de memória linear 2 Algoritmos de Alocação bloco alocado

03-11-2010

8

Paginação 386

Paginação

10 10 12

Endereço linear

Memória física

Página

Tabela de páginas

Directório de tabelas de páginas

Registo de base dedirectório de páginas

Page Table Entry

P - Present

P = 1 A página está presente e pode ser acedida

P = 0 A página não está presente.Os restantes 31 bits pode ser utilizadospara,por exemplo, indexar a página no disco.

A -Accessed

D -Dirty

U / S - User / Supervisor

R / W - Read Write

Valid bit

• With each page table entry a valid–invalid bit is associated(1 in-memory, 0 not-in-memory)

• Initially valid–invalid but is set to 0 on all entries.

• Example of a page table snapshot.

• During address translation, if valid–invalid bit in page table entry is 0 page fault.

1

1

1

1

0

0

0

Frame # valid-invalid bit

page table

TLB 386