datorteknik operatingsystem bild 1 the operating system (os)

24
Datorteknik OperatingSystem bild 1 the Operating System (OS)

Upload: isis-odell

Post on 01-Apr-2015

237 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 1

the Operating System (OS)

Page 2: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 2

The Operating System (OS)

Operating System

P1: Editor

P2: Compiler

P3: QuakeArena

MIPS

At any one time the processor (MIPS) is only excecuting one program (process).

Page 3: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 3

Our Assembler

.data

.kdata

.text

.ktext

User

Kernel

Page 4: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 4

The Hardware

.data

.kdata

.text

.ktext

User

Kernel

OKERROR!

Page 5: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 5

How does the User program pass control to the Operating System?

Take control on ERROR Pass control explicitly

Page 6: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 6

ERROR

Ex, Arithmetical Overflow

li $4 0x80000000

neg $4 $4

(sub $4 $0 $4)

0x00000000

- 0x80000000

0x80000000

Sign differs

Same Sign ! ERROR

Page 7: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 7

Signed/Unsigned Arithmetics

The only difference is that– Unsigned never causes ERROR

– Signed causes ERROR on Overflow etc.

Signed

ADDSUBADDI..

Unsigned

ADDUSUBUADDIU..

Page 8: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 8

Memory Error

Instruction Memory = Bad PC Data Alignment Error Access Protected Memory from User mode Nonexistent Memory (Page fault Chapter 7)

Page 9: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 9

Do not confuse !

A Memory that tells the pipeline to Wait– relate to “cache miss”

A Memory Error or Page Fault– realte to “TLB miss”

Page 10: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 10

The Consequence

A Memory that tells the pipeline to Wait

–Pipeline Stall A Memory Error or Page Fault

–Exception

Page 11: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 11

Pass control excplicitly

The User wants some service from the Operating System– File I/O

– Graphics

– Sound

– Allocate Memory

– Terminate Program (no HALT instruction in real MIPS)

SYSCALL (casuses an exception)

Page 12: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 12

How to choose service:

Is there different SYSCALLs? NO! Only one, use a register ($a0) to choose Use other registers ($a1,...) as parameters Use $v0 for result

ori $a1 $r0 ‘A’ ; Char ‘A’ori $a0 $r0 0x00 ; Write Charsyscallori $a0 $r0 0x01 ; Read Charsyscallor $a1 $r0 $v0 ; Move result $v0->$a1ori $a0 $r0 0x00 ; Echo Charsyscall

Page 13: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 13

Other ways for the Operating System to take control?

External Interrupts, (not caused by User program)– Timers

– Harddisk

– Graphics

– Sound

– Keyboard, Mouse, other perhipals

Page 14: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 14

Coprocessor CP0

8 Bad Memory Address 12 Status Register 13 Cause Register 14 Exception Address

Page 15: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 15

Status Register CP0 ($12)

“Mode Stack” External Interrupt enable/disable

Page 16: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 16

“Mode Stack”

OLD PREVIOUS CURRENT

KU IE

0 Kernel Mode1 User Mode

0 External Interrupt Disable1 External Interrupt Enable

KU

IE

KU IEKU IE5 0

Page 17: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 17

Exception / Interrupt Occurs

OLD PREVIOUS CURRENT

KU IE KU IEKU IE

KU IEKU IE 0 0

0 Kernel Mode1 User Mode

0 External Interrupt Disable1 External Interrupt Enable

KU

IE

Page 18: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 18

RFE Instruction (priviliged)

OLD PREVIOUS CURRENT

KU IE KU IEKU IE

KU IEKU IE? ?

We restore the PREVIOUS (KU,IE) into CURRENT

Page 19: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 19

External Interrupts

Bit 0, (Current Interrupt Enable)– All External Interrupts Enable/ Disable

Bit 15..10, (individual interrupt enable)

INT 4 INT 3 INT 2 INT 1 INT 0 Current IE............

INT 5

15 10 0

Page 20: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 20

Enable External Interrupt 2

Bit 0 = 1, (External Interrupt Enabled) Bit 12 = 1, Interrupt 2 Enabled

Current IE = 1............

15 10 0

INT 4 INT 3 INT 2 INT 1 INT 0INT 5

0 0 0 0 01

Page 21: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 21

Cause Register (CP0 $13)

Bit 5..2, Exception Cause Code Bit 15..10, Interrupt Pending Bit 31, Exception Occur In Branch Slot

10

INT 5 INT 4 INT 3 INT 2 INT 1 Ex 3 Ex 2 Ex 1 Ex 0BS

5 231 15

INT 0.... .... ...

Exception Cause Codesee Table 4.3 LSI Logic

Pending Interrupts

Page 22: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 22

Check if Interrupt 2 Pending

Mask with bit 12

15 10

INT 4 INT 3 INT 2 INT 1 INT 0INT 5

AND

0 0 0 0 0

CP0 $13

0 0 0 0 01

INT 2

Page 23: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 23

Resume User Program

CP0 $14 Holds the Exception Address

(Addr to instruction in EX stage)

mfc0 $k0 $14 ; resume address

jr $k0 ; $k0 kernal reg

rfe ; “delayed branch”

Page 24: Datorteknik OperatingSystem bild 1 the Operating System (OS)

Datorteknik OperatingSystem bild 24

Shared “Stack”

Assume that the User program uses the stack:

Can the Kernal use the same stack ($sp)?

Yes, but remember never to use memory below $sp, it will be destroyed (overwritten)!!

$sp

$sp User Data

User Data

User Data

User Data

Kernal Data

Kernal Data