26
-1- Chöông 2 QUAÙ TRÌNH

Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-1-

Chöông 2

QUAÙ TRÌNH

Page 2: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-2-

CHÖÔNG 2 : QUAÙ TRÌNH

Khaùi nieäm veà quaù trình

Traïng thaùi cuûa quaù trình

Khoái ñieàu khieån quaù trình

Chuyeån ñoåi traïng thaùi quaù trình

Caùc taùc vuï thöïc hieän ñ/v quaù trình

Ngaét quaùng

Chuyeån ngöõ caûnh

Baøi taäp

Page 3: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-3-

QUAÙ TRÌNH (PROCESS)

Moät chöông trình ñang thöïc thi

Coù thôøi gian soáng (life cycle)

Laø moät thöïc theå tích cöïc

Coù nhieàu traïng thaùi vaø coù theå chuyeån

traïng thaùi

Moät quaù trình coù caùc thoâng tin: boä ñeám

chöông trình, stack, vuøng chöùa döõ lieäu

vaø bieán moâi tröôøng...

Trong moät soá taøi lieäu, quaù trình (proces)

coâng vieäc (job) taùc vuï (task)

Page 4: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-4-

Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ

thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo

ñoù.

Tieán trình(process) laø moät chöông trình ñang thöïc

thi, laø thöïc theå hoaït ñoäng, vôùi con troû leänh xaùc ñònh

chæ thò keá tieáp, keøm theo taøi nguyeân phuïc vuï cho

tieán trình.

Coù thôøi gian soáng (life cycle)

Laø moät thöïc theå tích cöïc

Coù nhieàu traïng thaùi vaø coù theå chuyeån traïng thaùi

Moät quaù trình coù caùc thoâng tin: boä ñeám chöông trình,

stack, vuøng chöùa döõ lieäu vaø bieán moâi tröôøng...

Trong moät soá taøi lieäu, quaù trình (process) coâng vieäc

(job) taùc vuï (task)

Page 5: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-5-

CAÁU TRUÙC PROCESS CUÛA UNIX

argc/argv[]

Stack segment

Text segment Low address

High address

etext

edata

end

Initialized data

Uninitialized data

Heap

1. int a = 0, b, *c;

2. int main( int argc, char *argv[ ] ) {

3. b= increase(a);

4. c =(int*)malloc(10*sizeof(int));

5. c[5]= b;

6. }

7. int increase(int x) {

8. return x ++;

9. }

Page 6: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-6-

KHOÁI ÑIEÀU KHIEÅN QUAÙ TRÌNH

PCB process control block

Caáu truùc döõ lieäu cuûa HÑH ñeå quaûn lyù quaù trình

Chöùa thoâng tin nhaän daïng, traïng thaùi, ñònh vò

taøi nguyeân cho quaù trình

Danh ñònh cho quaù trình (PID):giuùp phaân bieät caùc tieán

trình

Traïng thaùi tieán trình:hoaït ñoäng hieän taïi cuûa tieán trình

Ngöõ caûnh tieán trình :moâ taû taøi nguyeân cuûa tieán trình

bao goàm :

Traïng thaùi CPU: goàm noäi dung thanh ghi, con troû leänh IP löu

tröõ ñòa chæ caâu leänh keá tieáp tieán trình seõ xöû lyù. Caùc thoâng tin

naøy caàn ñöôïc löu tröõ khi xaûy ra moät ngaét, nhaèm coù theå cho

pheùp phuïc hoài hoaït ñoäng cuûa tieán trình ñuùng nhö tröôùc khi bò

ngaét

– …

Page 7: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

Boä xöû lyù : duøng cho heä thoáng caáu hình nhieàu CPU, xaùc ñònh soá

hieäu Cpu ñang hoaït ñoäng.

Boä nhôù chính: danh saùch caùc khoái nhôù caáp cho quaù trình.

Taøi nguyeân söû duïng: danh saùch taøi nguyeân heä thoáng maø tieán

trình ñang söû duïng

Taøi nguyeân taïo laäp :danh saùch caùc taøi nguyeân ñöôïc tieán trình taïo

laäp

Thoâng tin giao tieáp: phaûn aùnh thoâng tin veà quan heä cuûa

tieán trình vôùi caùc tieán trình khaùc trong heä thoáng:

Tieán trình cha: tieán trình taïo ra tieán trình ñang xeùt

Tieán trình con: caùc tieán trình do tieán trình naøy taïo ra.

Ñoä öu tieân: giuùp cho boä ñieàu phoái löïa choïn tieán trình ñeå caáp cho

CPU

Thoâng tin thoáng keâ: thoáng keâ veà hoaït ñoäng cuûa tieán trình,

nhö thôøi gian xöû duïng CPU, thôøi gian chôø,…

-7-

Page 8: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-8-

TRAÏNG THAÙI QUAÙ TRÌNH

Saün saøng (ready)

– Quaù trình ñôïi ñeå gaùn cho CPU xöû lyù

Thöïc thi (running)

– Quaù trình ñang ñöôïc CPU thöïc thi caùc leänh

Bò chaën (blocked)

– Quaù trình ñôïi moät söï kieän naøo ñoù

– Söï kieän coù theå laø do vieäc xuaát nhaäp döõ lieäu hoaëc

töø moät quaù trình khaùc taïo ra

Page 9: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-9-

CHUYEÅN TRAÏNG THAÙI QUAÙ TRÌNH

READY RUNNING

BLOCKED

Dispatch

Timer run-out

Wake-up Block

New Exited

Page 10: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-10-

CAÙC HAØNG ÑÔÏI QUAÙ TRÌNH

JOB QUEUE READY QUEUE CPU

I/O WAITING QUEUE

enter end

Page 11: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-11-

BOÄ ÑÒNH THÔØI (SCHEDULER)

JOB QUEUE READY QUEUE CPU

I/O WAITING QUEUE

enter end

High-level scheduler Low-level scheduler

Page 12: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-12-

TRAÏNG THAÙI TREO (SUSPENDED)

Quaù trình bò treo traû laïi moïi taøi nguyeân

Taùc nhaân treo quaù trình

– Baûn thaân quaù trình

– Heä thoáng/quaù trình khaùc

Xaûy ra khi

– Caàn giaùm saùt quaù trình

– Heä thoáng coù söï coá

– Heä thoáng quaù taûi

Phuïc hoài (resume)

– Nhôø HÑH hoaëc quaù trình khaùc

Page 13: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-13-

LÖÔÏC ÑOÀ CHUYEÅN TRAÏNG THAÙI

Suspend

Resume

READY RUNNING

BLOCKED

Dispatch

Timer run-out

Wake-up Block

New Exited

SUSPENDED READY SUSPENDED BLOCKED

Wake-up

Page 14: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-14-

TAÙC VUÏ TREÂN QUAÙ TRÌNH

Taïo quaù trình(create)

– Moät tieán trình coù theå taïo laäp nhieàu tieán trình môùi

baèng caùch söû duïng lôøi goïi heä thoáng. Tieán trình

goïi lôøi goïi heä thoáng ñeå taïo ra tieán trình môùi

goïi laø tieán trình cha, tieán trình ñöôïc taïo laäp goïi

laø tieán trình con, ….Quaù trình naøy tieáp tuïc seõ

taïo ra caây tieán trình

– Caùc coâng vieäc khi taïo tieán trình: ñònh danh tieán

trình, ñöa tieán trình vaøo danh saùch quaûn lyù,

xaùc ñònh ñoä öu tieân, taïo PCB, caáp phaùt taøi

nguyeân, …

Page 15: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

Khi tieán trình con ñöôïc taïo laäp, tieán trình con seõ ñöôïc heä

ñieàu haønh caáp phaùt taøi nguyeân hoaëc ñöôïc thöøa höôûng

taøi nguyeân töø tieán trình cha, …

Khi tieán trình taïo tieán trình môùi thì tieán trình cha tieáp tuïc

xöû lyù ñoàng haønh vôùi tieán tieán trình con hoaëc chôø tieán

trình con keá thuùc môùi tieáp tuïc xöû lyù,…

Vd:

Haøm heä thoáng fork(), shell, GUI …

-15-

Page 16: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

Huûy tieán trình: khi tieán trình keát thuùc xöû lyù vaø söû

duïng lôøi goïi heä thoáng ñeå yeâu caàu heä ñieàu haønh huûy

boû noù. Khi tieán trình keát thuùc, heä ñieàu haønh thu

hoài taøi nguyeân ñaõ caáp phaùt, huûy tieán trình khoûi

danh saùch quaûn lyù cuûa heä thoáng, huûy boû PCB,…

– Haøm exit(), leänh kill,…

Thay ñoåi traïng thaùi quaù trình

– Suspend / Resume / Block / Wake-up/ Dispatch

– Thöïc hieän baèng caùch gôûi tín hieäu ñeán quaù trình

Thay ñoåi ñoä öu tieân cuûa quaù trình

Cho pheùp caùc quaù trình giao tieáp

-16-

Page 17: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

Caáp phaùt taøi nguyeân cho tieán trình:

– Taøi nguyeân :CPU, boä nhôù chính, caùc thieát bò, …Moãi

loaïi caàn coù moät cô cheá caáp phaùt vaø chieán löôïc caáp

phaùt hieäu quaû.

– Moãi taøi nguyeân ñöôïc bieåu dieãn thoâng qua moät caáu

truùc döõ lieäu bao goàm: ñònh danh taøi nguyeân, traïng

thaùi taøi nguyeân (phaàn ñaõ caáp, phaàn coøn laïi,…), haøng

ñôïi treân moät taøi nguyeân, boä caáp phaùt,…

– Caùc muïc tieâu cuûa kyõ thuaät caáp phaùt:

Baûo ñaûm moät soá löôïng hôïp leä caùc tieán trình truy xuaát ñoàng thôøi

ñeán caùc taøi nguyeân khoâng chia seû ñöôïc.

Caáp phaùt taøi nguyeân cho tieán trình coù yeâu caàu trong moät

khoaûng thôøi gian trì hoaûn coù theå chaáp nhaän ñöôïc.

Toái öu hoùa söï söû duïng taøi nguyeân

-17-

Page 18: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

Tieåu trình: (thread)

– Moãi tieåu trình laø moät ñôn vò xöû lyù cô baûn trong heä thoáng.

Moãi tieåu trình xöû lyù tuaàn töï ñoaïn code cuûa noù, sôû höõu

moät con troû leänh, taäp caùc thanh ghi vaø vuøng nhôù stack

rieâng. Caùc tieåu trình chia seû CPU vôùi nhau gioáng nhö ñoái

vôùi caùc tieán trình: moät tieåu trình ñöôïc xöû lyù trong khi caùc

tieåu trình khaùc chôø ñeán löôït. Moät tieåu trình cuõng coù theå

taïo laäp caùc tieán trình con vaø nhaän caùc traïng thaùi khaùc

nhau nhö laø moät tieán trình thöïc söï. Ngöôïc laïi moät tieán

trình coù theå sôû höõu nhieàu tieåu trình

-18-

Page 19: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

TIEÁN TRÌNH TIEÅU TRÌNH

Moãi tieán trình coù moät taäp taøi

nguyeân vaø moät moâi tröôøng laøm

vieäc rieâng (sôû höõu moät con troû

leänh, moät stack, caùc thanh ghi

vaø khoâng gian ñòa chæ).

Caùc tieán trình hoaøn toaøn ñoäc

laäp vôùi nhau, caùc tieán trình chæ

coù theå lieân laïc thoâng qua caùc cô

cheá thoâng tin giöõa caùc tieán trình

maø heä ñieàu haønh cung caáp

Caùc tieåu trình trong cuøng moät

tieán trình laïi chia seû moät khoâng

gian ñòa chæ chung, nghóa laø caùc

tieåu trình coù theå chia seû caùc

bieán toaøn cuïc cuûa tieán trình

Moät tieåu trình coù theå truy xuaát

ñeán caû stack cuûa nhöõng tieåu

trình khaùc trong cuøng tieán trình

Caáu truùc tieåu trình khoâng coù cô

cheá baûo veä naøo, vì caùc tieåu

trình trong cuøng tieán trình thuoäc

veà cuøng moät sôû höõu ñaõ taïo ra

chuùng trong yù ñònh cho pheùp

chuùng hôïp taùc vôùi nhau.

-19-

Page 20: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-20-

NGAÉT QUAÕNG (INTERRUPT)

Söï kieân laøm thay ñoåi tieán trình thöïc thi cuûa CPU

Cô cheá:

Interrupt

Trình xöû lyù

interrupt

Page 21: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-21-

CAÙC BÖÔÙC XÖÛ LYÙ INTERRUPT

Heä ñieàu haønh chieám laïi quyeàn thöïc thi

Löu tröõ traïng thaùi cuûa quaù trình bò ngaét

Phaân tích ngaét quaõng (duøng phaàn cöùng)

Thöc thi chöông trình xöû lyù ngaét quaõng

Choïn moät quaù trình tieáp theo ñeå chaïy

Coù theå cho pheùp interrupt xöû lyù loàng nhau

Page 22: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-22-

CAÙC LOAÏI INTERRUPT

Supervisor call (SVC) interrupt: khi quaù trình

yeâu caàu dòch vuï cuûa heä thoáng

I/O interrupt: do caùc thieát bò I/O sinh ra khi

chuyeån traïng thaùi

External interrupt: sinh ra töø ñoàng hoà heä

thoáng, baøn phím

Restart interrupt: ngaét khôûi ñoäng laïi maùy

Program check: sinh ra khi chöông trình thöïc

thi leänh bò loãi (chia cho 0, traøn soá, …)

Machine check: do nhaø saûn xuaát taïo ra daønh

rieâng cho vieäc kieåm tra phaàn cöùng

Page 23: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-23-

CHUYEÅN NGÖÕ CAÛNH

(CONTEXT SWITCHING)

Chuyeån xöû lyù töø quaù trình naøy sang quaù trình khaùc.

Xaûy ra khi coù interrupt

Qui trình:

– Löu traïng thaùi cuûa quaù trình hieän haønh

– Choïn quaù trình môùi ñeå xöû lyù

– Ñöa traïng thaùi cuûa quaù trình môùi vaøo phaàn cöùng ñeå xöû lyù

Moät context bao goàm:

– taäp thanh ghi chöùa thoâng tin traïng thaùi quaù trình veà traïng

thaùi CPU, boä nhôù … cuûa quaù trình.

Program Status Word (PSW).

Page 24: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-24-

CHUYEÅN NGÖÕ CAÛNH

(CONTEXT SWITCHING)

Caùc loaïi PSW:(program status word)

– Old_PSW

– Current _PSW

– New_PSW

Heä thoáng moät boä xöû lyù coù 1 Current_PSW vaø

6 New_PSW vaø 6 Old_PSW (6 loaïi interrupt)

Quaù trình chuyeån ngöõ caûnh dieãn ra qua söï

thay ñoåi giöõa caùc PSW trong heä thoáng

– Current_PSW Old_PSW

– New_PSW Current_PSW

Page 25: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

CAÂU HOÛI

1) Ñònh nghóa quaù trình(process). So saùnh giöõa chöông trình,

tieán trình(quaù trình)

2) Moâ taû caáu truùc khoái ñieàu khieån quaù trình PCB

3) Veõ sô ñoà vaø moâ taû hoaït ñoäng chuyeån traïng thaùi cuûa quaù

trình.

4) Theá naøo laø traïng thaùi treo (trì hoaõn suspended)

Veõ löôïc ñoà chuyeån traïng thaùi

5) Neâu vaø phaân tích caùc taùc vuï treân quaù trình

6) Tieåu trình laø gì? So saùnh tieåu trình vaø tieán trình

7) Theá naøo laø ngaét (interrupt). Neâu caùc böôùc xöû lyù khi ngaét

xaûy ra?

8)Caùc loaïi ngaét vaø yù nghóa töøng loaïi?

9) Theá naøo laø chuyeån ngöõ caûnh (context switching). Neâu caùc

loaïi PSW.

-25-

Page 26: Ly thuyet He Dieu Hanh · -4- Chöông trình: laø thöïc theå thuï ñoäng, chöùa caùc chæ thò(leänh) ñieàu khieån maùy tính thöïc hieän taùc vuï naøo ñoù

-26-

BAØI TAÄP

1. Nhöõng heä ñieàu haønh naøo sau ñaây cho pheùp nhieàu quaù

trình cuøng naèm trong boä nhôù

Windows NT, Win98SE, Linux, MS-DOS.

2.Phaân loaïi caùc Interrupt sau :

- Nhaán Ctrl+C gieát quaù trình

- Card maïng baùo coù döõ lieäu tôùi

- OÅ ñóa CD baùo quaù trình chuyeån döõ lieäu ñaõ xong

- Goïi haøm heä thoáng fork()

- Nhaán nuùt Reset cuûa maùy tính

3.Tìm hieåu caùc haøm/ leänh taïo, huyû quaù trình treân Linux.

4.Vieát chöông trình in ra ñòa chæ caùc vuøng nhôù cuûa moät

quaù trình treân Linux