HeHeää ÑÑieieààuu HaHaøønhnh

Thời gian:

- Lý thuyết: 45 tiết - Thực hành: 30 tiết

TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT MÁY TÍNH

Điểm số:

- Điểm thi giữa k怔: 20% - Điểm thực hành hoặc làm bài tiểu luận: 30% - Điểm thi cuối HK: 50%

Heä Ñieàu Haønh (Operating Systems)

• Khoa Kỹ thuật máy tính • GV: TS. Vũ Đức Lung • Email: lungvd@uit.edu.vn

9/14/2010

Vũ Đức Lung

1

9/14/2010

Vũ Đức Lung

2

NNộộii dung

dung mônmôn hhọọcc

TTààii liliệệuu thamtham khkhảảoo

1. Trần Hạnh Nhi, Lê Khắc Nhiên Ân. Giáo trình hệ ñiều hành. Trung tâm phát triển công nghệ thông tin-ĐHQG.HCM, 2005.

2. Nguyễn Phú Trường. Giáo trình hệ ñiều hành. ĐH

Cần Thơ, 2005.

3. Silberschatz, Galvin, Gagne. Operating System

Concepts. Sixth edition, John Wiley & Sons,2003

4. Mark E. Russinovich and David A. Solomon, Microsoft Windows Internals, 4th Edition, Microsoft Press, 2004.

TàTàii liliệệuu chung chung:: http://groups.google.com/group/os-vdlung

Chương 1: Tổng quan về hệ điều hành Chương 2: Cấu trúc Hệ điều hành Chương 3: Quản lý tiến trình (Processes) Chương 4: Định thời CPU Chương 5: Đồng bộ hóa tiến trình Chương 6: Tắc nghẽn (Deadlocks) Chương 7: Quản lý bộ nhớ Chương 8: Bộ nhớ ảo ĐĐọọcc thêmthêm –– titiểểuu luluậậnn:: Chương 9: Hệ tống quản lý tập tin Chương 10: Hệ thống quản lý nhập/xuất Chương 11: Bảo vệ và an toàn hệ thống

9/14/2010

Vũ Đức Lung

3

9/14/2010

Vũ Đức Lung

4

1.1. ToToåångng quanquan 1.1.

• Giôùi thieäu

– Ñònh nghóa heä ñieàu haønh

ChChươươngng I:I: TTổổngng quanquan hhệệ đđiiềềuu hhàànhnh

– Caáu truùc heä thoáng maùy tính

– Caùc chöùc naêng chính cuûa heä ñieàu haønh

9/14/2010

Vũ Đức Lung

5

9/14/2010

Vũ Đức Lung

6

1

nghóa ÑònhÑònh nghóa

ÑònhÑònh nghóa

nghóa ((tttt))

Hình chính xaùc hôn

Application programs

Web browser

Banking system

Airline reservation

Compilers

Editors

Command interpreter

System programs

• Heä ñieàu haønh laø gì? Ngöôøi duøng – Chöông trình trung gian giöõa phaàn

Operating system

Machine language

Hardware

Microprogramming

Physical devices

Hình cuûa Dror G. Feitelson

9/14/2010

Vũ Đức Lung

7

9/14/2010

Vũ Đức Lung

8

Caùc thaønh phaàn cuûa heä thoáng

CaùcCaùc thaønh

thaønh phaàn

phaàn cuûacuûa heäheä thoáng

thoáng ((tttt))

cöùng maùy tính vaø ngöôøi söû duïng, coù chöùc naêng ñieàu khieån vaø phoái hôïp veäc söû duïng phaàn cöùng vaø cung caáp caùc dòch vuï cô baûn cho caùc öùng duïng. Caùc öùng duïng • Muïc tieâu Heä Ñieàu Haønh – Giuùp ngöôøi duøng deã daøng söû duïng heä thoáng. Phaàn cöùng – Quaûn lyù vaø caáp phaùt taøi nguyeân heä thoáng moät caùch hieäu quaû.

(cid:1) Phaàn cöùng (hardware) Bao goàm caùc taøi nguyeân cô baûn cuûa maùy tính nhö CPU, boä nhôù, caùc thieát bò I/O,... (cid:1) Heä ñieàu haønh (operating system) Phaân phoái taøi nguyeân, ñieàu khieån vaø phoái hôïp caùc hoaït ñoäng cuûa caùc chöông trình trong heä thoáng. (cid:1) Chöông trình öùng duïng (application programs)

9/14/2010

Vũ Đức Lung

9

9/14/2010

Vũ Đức Lung

10

CaCaùùcc chchöùöùcc naêng

naêng chchíínhnh cucuûûaa OSOS

Söû duïng taøi nguyeân heä thoáng ñeå giaûi quyeát moät vaán ñeà tính toaùn naøo ñoù cuûa ngöôøi söû duïng, ví duï: compilers, database systems, video games, business programs. (cid:1) Döõ lieäu

CácCác dạng

dạng H HĐĐHH

(cid:1) Phaân chia thôøi gian xöû lyù vaø ñònh thôøi CPU

(cid:1) Phoái hôïp vaø ñoàng boä hoaït ñoäng giöõa caùc processes

(coordination & synchronization)

(cid:1) Quaûn lyù taøi nguyeân heä thoáng (thieát bò I/O, boä nhôù, file chöùa döõ

lieäu,…)

(cid:1) Thöïc hieän vaø kieåm soaùt access control, protection

Same machine, different operating systems: – IBM PC: DOS, Linux, NeXTSTEP, Windows, SCO Unix – DEC VAX: VMS, Ultrix-32, 4.3 BSD UNIX Same OS, different machines: UNIX – PC (XENIX 286, APPLE A/UX) – CRAY-Y/MP (UNICOS - AT&T Sys V) – IBM 360/370 (Amdahl UNIX UTS/580, IBM UNIX

AIX/ESA)

(cid:1) Duy trì söï nhaát quaùn (integrity) cuûa heä thoáng, kieåm soaùt loãi vaø

• Windows NT, XP, 2000, 2003

phuïc hoài heä thoáng khi coù loãi (error recovery)

– Intel i386 (i486 an NT 4.0), Alpha, PowerPC, MIPS,

Itanium

(cid:1) Cung caáp giao dieän laøm vieäc cho users

9/14/2010

Vũ Đức Lung

11

9/14/2010

Vũ Đức Lung

12

2

1.2. PHAÂN LOAÏI HEÄ ÑIEÀU HAØNH

1.2. PHAÂN LOAÏI HEÄ ÑIEÀU HAØNH

Dưới góc độ số chương trình được sử dụng cùng lúc

Dưới góc độ người dùng (truy xuất tài nguyên cùng lúc)

– Hệ điều hành đơn nhiệm – Hệ điều hành đa nhiệm

•Mạng ngang hàng •Mạng có máy chủ: LAN, WAN, ...

Dưới góc độ loại máy tính (cid:2)Hệ điều hành dành cho máy MainFrame (cid:2)Hệ điều hành dành cho máy Server (cid:2)Hệ điều hành dành cho máy nhiều CPU (cid:2)Hệ điều hành dành cho máy tính cá nhân (PC) (cid:2)Hệ điều hành dành cho máy PDA (Embedded OS - hệ điều hành nhúng) (cid:2)Hệ điều hành dành cho máy chuyên biệt (cid:2)Hệ điều hành dành cho thẻ chíp (SmartCard)

9/14/2010

Vũ Đức Lung

13

9/14/2010

Vũ Đức Lung

14

1.2. PHAÂN LOAÏI HEÄ ÑIEÀU HAØNH

1.2. PHAÂN LOAÏI HEÄ ÑIEÀU HAØNH

HEÄ THOÁNG XÖÛ LYÙ ÑÔN CHÖÔNG

(cid:3) Ñôn chöông

Dưới góc độ hình thức xử lý –Hệ thống xử lý theo lô –Hệ thống chia sẻ –Hệ thống song song –Hệ thống phân tán

– Một người dùng – Nhiều người dùng

Xuaát

Nhaäp

Maùy tính chính

9/14/2010

Vũ Đức Lung

15

9/14/2010

Vũ Đức Lung

16

1.2. PHAÂN LOAÏI HEÄ ÑIEÀU HAØNH

1.2. PHAÂN LOAÏI HEÄ ÑIEÀU HAØNH

–Hệ thống xử lý thời gian thực - Taùc vuï ñöôïc thi haønh tuaàn töï. - Boä giaùm saùt thöôøng tröïc, - CPU vaø caùc thao taùc nhaäp xuaát, - Xöû lyù offline, - Ñoàng boä hoùa caùc thao taùc beân ngoaøi - Spooling (Simultaneous Peripheral Operation On Line)

HEÄ THOÁNG XÖÛ LYÙ ÑA CHÖÔNG

(cid:3) Nhieàu taùc vuï saün saøng thi haønh cuøng moät thôøi ñieåm.

(cid:3) Khi moät taùc vuï thöïc hieän I/O, baét ñaàu taùc vuï khaùc.

• Multiprogrammed systems – Nhieàu coâng vieäc ñöôïc naïp ñoàng thôøi vaøo boä nhôù chính – Khi moät tieán trình thöïc hieän I/O, moät tieán trình khaùc ñöôïc thöïc thi – Taän duïng ñöôïc thôøi gian raûnh, taêng hieäu suaát söû duïng CPU (CPU utilization)

(cid:3) Boä xöû lyù vaø thieát bò thi haønh toaøn thôøi gian.

– Yeâu caàu ñoái vôùi heä ñieàu haønh

Taùc vuï

I/O

Boä xöû lyù

Keát thuùc taùc vuï

(cid:4) Ñònh thôøi coâng vieäc (job scheduling): choïn job trong job pool treân ñóa vaø naïp noù vaøo boä nhôù ñeå thöïc thi.

9/14/2010

Vũ Đức Lung

17

9/14/2010

Vũ Đức Lung

18

3

(cid:4) Quaûn lyù boä nhôù (memory management) (cid:4) Ñònh thôøi CPU (CPU scheduling) (cid:4) Caáp phaùt taøi nguyeân (ñóa, maùy in,…) (cid:4) Baûo veä

1.2. PHAÂN LOAÏI HEÄ ÑIEÀU HAØNH

1.2. PHAÂN LOAÏI HEÄ ÑIEÀU HAØNH

HEÄ THOÁNG CHIA XEÛ THÔØI GIAN

(cid:3) Heä thoáng ña nhieäm (multitasking).

(cid:3) Laäp lòch CPU.

(cid:3) Thôøi gian chuyeån ñoåi giöõa caùc taùc vuï raát ngaén.

(cid:5) (cid:5) (cid:5) (cid:5) (cid:5)

9/14/2010

Vũ Đức Lung

19

9/14/2010

20

Vũ Đức Lung Boä xöû lyù

HEÄ THOÁNG CHIA XEÛ THÔØI GIAN

HEÄ THOÁNG CHIA XEÛ THÔØI GIAN

• Time-sharing systems • Yeâu caàu ñoái vôùi OS trong heä thoáng time-sharing – Multiprogrammed systems khoâng cung caáp khaû naêng töông taùc hieäu quaû vôùi users – Ñònh thôøi coâng vieäc (job scheduling) – Quaûn lyù boä nhôù (memory management) • Virtual memory – CPU luaân phieân thöïc thi giöõa caùc coâng vieäc – Quaûn lyù caùc quaù trình (process management) • Moãi coâng vieäc ñöôïc chia moät phaàn nhoû thôøi gian CPU (time slice, quantum time) • Cung caáp töông taùc giöõa user vaø heä thoáng vôùi thôøi gian ñaùp öùng (response time) nhoû (1 s) (cid:6) Ñònh thôøi CPU (cid:6) Ñoàng boä caùc quaù trình (synchronization) (cid:6) Giao tieáp giöõa caùc quaù trình (process communication) (cid:6) Traùnh deadlock – Moät coâng vieäc chæ ñöôïc chieám CPU khi noù naèm trong boä nhôù chính.

9/14/2010

Vũ Đức Lung

21

9/14/2010

Vũ Đức Lung

22

HEÄ THOÁNG ÑA XÖÛ LYÙ

1.2. PHAÂN LOAÏI HEÄ ÑIEÀU HAØNH

• Heä thoáng song song (parallel, multiprocessor, hay tightly-

HEÄ THOÁNG ÑA XÖÛ LYÙ

(cid:3)Hai hoaëc nhieàu boä xöû lyù cuøng chia seû moät boä nhôù.

coupled system) – Nhieàu CPU – Chia seû computer bus, clock – Öu ñieåm

(cid:3) Master/Slave : moät boä xöû lyù chính kieåm soaùt moät soá boä xöû lyù I/O

• Naêng xuaát heä thoáng (System throughput): caøng nhieàu

processor thì caøng nhanh xong coâng vieäc

Boä

Boä

• Multiprocessor system ít toán keùm hôn multiple single- processor system: vì coù theå duøng chung taøi nguyeân (ñóa,…)

xöû lyù

xöû lyù

• Ñoä tin caäy: khi moät processor hoûng thì coâng vieäc cuûa noù

ñöôïc chia seû giöõa caùc processor coøn laïi

Boä nhôù chính

Vũ Đức Lung

9/14/2010

23

9/14/2010

Vũ Đức Lung

24

4

– Quaûn lyù heä thoáng file, heä thoáng löu tröõ – Caáp phaùt hôïp lyù caùc taøi nguyeân – Baûo veä (protection) – Khi caàn thieát, moät coâng vieäc naøo ñoù coù theå ñöôïc chuyeån töø boä nhôù chính ra thieát bò löu tröõ (swapping), nhöôøng boä nhôù chính cho coâng vieäc khaùc.

HEÄ THOÁNG ÑA XÖÛ LYÙ

1.2. PHAÂN LOAÏI HEÄ ÑIEÀU HAØNH

• Phaân loaïi heä thoáng song song

– Ña xöû lyù ñoái xöùng (symmetric multiprocessor - SMP)

• Moãi processor vaän haønh moät identical copy cuûa heä ñieàu

haønh

HEÄ THOÁNG PHAÂN TAÙN (cid:3) Nhieàu maùy tính lieân keát vôùi nhau baèng ñöôøng truyeàn thoâng ñaëc bieät. (cid:3) Töông töï heä thoáng ña xöû lyù nhöng khoâng chia xeû boä nhôù.

• Caùc copy giao tieáp vôùi nhau khi caàn • (Windows NT, Solaris 5.0, Digital UNIX, OS/2, Linux)

Heä thoáng maùy tính 1

Heä thoáng maùy tính 2

Giao tieáp maïng

Giao tieáp maïng

– Ña xöû lyù baát ñoái xöùng (asymmetric multiprocessor) • Moãi processor thöïc thi moät coâng vieäc khaùc nhau • Master processor ñònh thôøi vaø phaân coâng vieäc cho caùc

slave processors

Maïng

Boä xöû lyù

Boä xöû lyù

• (SunOS 4.0)

Boä nhôù

Boä nhôù

9/14/2010

Vũ Đức Lung

25

9/14/2010

Vũ Đức Lung

26

HEÄ THOÁNG PHAÂN TAÙN

HEÄ THOÁNG PHAÂN TAÙN

• Heä thoáng phaân taùn (distributed system, loosely-coupled system) • Heä thoáng phaân taùn (tt) Caùc moâ hình heä thoáng phaân taùn – Moãi processor coù boä nhôù rieâng, caùc processor giao tieáp qua caùc keânh noái nhö maïng, bus toác ñoä cao – Client-server

– Ngöôøi duøng chæ thaáy moät heä thoáng ñôn nhaát – Öu ñieåm (cid:6) Server: cung caáp dòch vuï (cid:6) Client: coù theå söû duïng dòch vuï cuûa server – Peer-to-peer (P2P)

9/14/2010

Vũ Đức Lung

27

9/14/2010

Vũ Đức Lung

28

Heä thoáng thôøi gian thöïc (real-time system)

Thieát bò caàm tay (handheld system)

(cid:6) Chia seû taøi nguyeân (resource sharing) (cid:6) Chia seû söùc maïnh tính toaùn (computational sharing) (cid:6) Ñoä tin caäy cao (high reliability) (cid:6) Ñoä saün saøng cao (high availability): caùc dòch vuï cuûa heä thoáng ñöôïc cung caáp lieân tuïc cho duø moät thaønh phaàn hardware trôû neân hoûng (cid:6) Caùc peer (maùy tính trong heä thoáng) ñeàu ngang haøng nhau (cid:6) Khoâng coù cô sôû döõ lieäu taäp trung (cid:6) Caùc peer laø töï trò (cid:6) Vd: Gnutella

• Heä thoáng thôøi gian thöïc (real-time system) • Thieát bò caàm tay (handheld system) – Söû duïng trong caùc thieát bò chuyeân duïng nhö ñieàu khieån caùc thöû nghieäm

9/14/2010

Vũ Đức Lung

29

9/14/2010

Vũ Đức Lung

30

5

khoa hoïc, ñieàu khieån trong y khoa, daây chuyeàn coâng nghieäp, thieát bò gia duïng, quaân söï – Raøng buoäc veà thôøi gian: hard vaø soft real-time – Personal digital assistant (PDA): Palm, Pocket-PC – Ñieän thoaïi di ñoäng (cellular phones) – Ñaëc tröng Phaân loaïi – Hard real-time • Haïn cheá (hoaëc khoâng coù) boä nhôù phuï, taát caû döõ lieäu naèm trong boä nhôù chính (RAM hoaëc ROM) • Boä nhôù nhoû (512 KB – 128 MB) • Toác ñoä processor thaáp (ñeå ít toán pin) • Maøn hình hieån thò coù kích thöôùc nhoû vaø ñoä phaân giaûi thaáp. • Coù theå duøng caùc coâng ngheä keát noái nhö IrDA, Bluetooth, wireless • Yeâu caàu veà thôøi gian ñaùp öùng/xöû lyù raát nghieâm ngaët, thöôøng söû duïng trong ñieàu khieån coâng nghieäp, robotics,… – Soft real-time • Thöôøng ñöôïc duøng trong lónh vöïc multimedia, virtual reality vôùi yeâu caàu meàm deûo hôn veà thôøi gian ñaùp öùng

1.3. LÒCH SÖÛ PHAÙT TRIEÅN CUÛA HEÄ ÑIEÀU HAØNH

1.3. LÒCH SÖÛ PHAÙT TRIEÅN CUÛA HEÄ ÑIEÀU HAØNH

(cid:3)Theá heä 1 (1945 - 1955)

(cid:3)Theá heä 4 (1980 -

- Thieát keá, xaây döïng, laäp trình, thao taùc: ñeàu do 1 nhoùm ngöôøi - Löu treân phieáu ñuïc loã

(cid:3) Theá heä 2 (1955 - 1965)

) -Ra ñôøi maùy tính caù nhaân, IBM PC - HÑH MS-DOS, MacOS (Apple Macintosh), MS Windows, OS/1 - Linux, QNX, HÑH maïng,…

(cid:3) Theá heä 3 (1965 - 1980)

- Xuaát hieän söï phaân coâng coâng vieäc - Heä thoáng söû lyù theo loâ ra ñôøi, löu treân baêng töø - Hoaït ñoäng döôùi söï ñieàu khieån ñaëc bieät cuûa 1 chöông trình

9/14/2010

Vũ Đức Lung

31

9/14/2010

Vũ Đức Lung

32

-Ra ñôøi heä ñieàu haønh, khaùi nieäm ña chöông - HÑH chia seû thôøi gian nhö CTSS cuûa MIT - MULTICS, UNIX

Windows And Linux Evolution

Operating Systems Evolution

• Windows and Linux kernels are based on foundations

developed in the mid-1970s

IBSYS

IOCS

55

60

CTSS

1970

1980

1990

2000

65

OS/360

DOS/360

MULTICS

CP/CM5

RSX-11M

70

UNIX

TSO

RT-11

CP/M

75

UNIXV.7

VMS 1.0

MVS/370

DOS/VDSE

VM/370

V M S v1.0

4.1BSD

XENIX

MS-DOS 1.0

80

SYSTEM III

DR/DOS

SUN OS

4.2BSD

W in do w s N T 3.1

S erver 2003 W in d o w s 2000 W in d o w s X P N T 4.0

MVS/XA

VS

SYSTEM V

VM/XA

AIX

OS/2

85

POSIX

MACH

WIN 3.0

WIN 3.1

4.3BSD

OSF/1

VMS 5.4

AIX/370

90

SYSTEM V.4

1970

1980

1990

2000

MVS/ES

VS/ESA

VM/ESA

AIX/ESA

SOLARIS 2

LINUX

95

4.4BSD

WIN NT

WIN 9X

00

WIN 2000

VMS 7.3

v2.0

v2.6

v2.3

v2.4

v2.2

03

WIN XP

LINUX 2.6

SOLARIS 10

Linux v1.0

U NIX p u blic U NIX V 6

U NIX b orn

WIN Server 2003

9/14/2010

Vũ Đức Lung

33

(see http://www.levenez.com for diagrams showing history of Windows & Unix) 34

Vũ Đức Lung

9/14/2010

6

Chöông II: II: CaáuCaáu TruùcTruùc HeäHeä ÑieàuÑieàu HaønhHaønh Chöông

2.1. CaùcCaùc thaønh 2.1.

thaønh phaàn

haønh phaàn cuûacuûa heäheä ñieàuñieàu haønh

•2.1.1. Quaûn lyù quaù trình (process management)

(cid:1) Caùc thaønh phaàn cuûa heä ñieàu haønh

(cid:1) Caùc dòch vuï heä ñieàu haønh cung caáp

(cid:1) Lôøi goïi heä thoáng (System call)

(cid:1) Caùc chöông trình heä thoáng (system programs)

(cid:1) Caáu truùc heä thoáng

- Quaù trình (hay tieán trình – process) laø gì? - Quaù trình khaùc chöông trình ôû ñieåm gì? - Moät quaù trình caàn caùc taøi nguyeân cuûa heä thoáng nhö CPU, boä nhôù, file, thieát bò I/O,… ñeå hoaøn thaønh coâng vieäc.

(cid:1) Maùy aûo (virtual machine)

- Caùc nhieäm vuï cuûa thaønh phaàn (cid:2) Taïo vaø huûy quaù trình (cid:2) Taïm dừng/thöïc thi tieáp (suspend/resume) quaù trình (cid:2) Cung caáp caùc cô cheá

9/14/2010

Vũ Đức Lung

1

9/14/2010

Vũ Đức Lung

2

2.1. CaùcCaùc thaønh 2.1.

thaønh phaàn

haønh phaàn cuûacuûa heäheä ñieàuñieàu haønh

2.1. CaùcCaùc thaønh 2.1.

thaønh phaàn

haønh phaàn cuûacuûa heäheä ñieàuñieàu haønh

– ñoàng boä hoaït ñoäng caùc quaù trình (synchronization) – giao tieáp giöõa caùc quaù trình (interprocess communication) – khoáng cheá tắc nghẽn (deadlock)

•2.1.2. Quaûn lyù boä nhôù chính

– Heä thoáng file (file system)

– Boä nhôù chính laø trung taâm cuûa caùc thao taùc, xöû lyù – Ñeå naâng caoù hieäu suaát söû duïng CPU, heä ñieàu haønh caàn

•2.1.3. Quaûn lyù file (file management)

quaûn lyù boä nhôù thích hôïp

– Caùc nhieäm vuï cuûa thaønh phaàn

– Caùc dòch vuï maø thaønh phaàn cung caáp

(cid:2) File (cid:2) Thö muïc

(cid:2) Theo doõi, quaûn lyù caùc vuøng nhôù troáng vaø ñaõ caáp phaùt (cid:2) Quyeát ñònh seõ naïp chöông trình naøo khi coù vuøng nhôù

troáng

(cid:2) Caáp phaùt vaø thu hoài caùc vuøng nhôù khi caàn thieát

(cid:2) Taïo vaø xoaù file/thö muïc. (cid:2) Caùc thao taùc xöû lyù file/thö muïc (mkdir, rename, copy, move, new,…)

9/14/2010

Vũ Đức Lung

3

9/14/2010

Vũ Đức Lung

4

2.1. CaùcCaùc thaønh 2.1.

thaønh phaàn

haønh phaàn cuûacuûa heäheä ñieàuñieàu haønh

2.1. CaùcCaùc thaønh 2.1.

thaønh phaàn

haønh phaàn cuûacuûa heäheä ñieàuñieàu haønh

(cid:2) “AÙnh xaï” file/thö muïc vaøo thieát bò löu tröõ thöù caáp töông öùng (cid:2) Sao löu vaø phuïc hoài döõ lieäu

– Che daáu söï khaùc bieät cuûa caùc thieát bò I/O tröôùc

ngöôøi duøng

•2.1.4. Quaûn lyù heä thoáng I/O (I/O system management) •2.1.5. Quaûn lyù heä thoáng löu tröõ thöù caáp (secondary storage management) – Boä nhôù chính: kích thöôùc nhoû, laø moâi tröôøng chöùa tin khoâng beàn vöõng

– Coù chöùc naêng

(cid:2) Cô cheá: buffering, caching, spooling (cid:2) Cung caáp giao dieän chung ñeán caùc trình ñieàu khieån

thieát bò (device-driver interface)

(cid:2) Quaûn lyù khoâng gian troáng treân ñóa(free space management) (cid:2) Caáp phaùt khoâng gian löu tröõ (storage allocation) (cid:2) Ñònh thôøi hoïat ñoäng cho ñóa (disk scheduling)

(cid:2) Boä ñieàu khieån caùc thieát bò (device driver) phaàn cöùng.

(cid:1) Söû duïng thöôøng xuyeân => aûnh höôûng lôùn ñeán toác ñoä cuûa

caû heä thoáng => caàn hieäu quaû

9/14/2010

Vũ Đức Lung

5

9/14/2010

Vũ Đức Lung

6

1

=> caàn heä thoáng löu tröõ thöù caáp ñeå löu tröõ beàn vöõng caùc döõ lieäu, chöông trình – Phöông tieän löu tröõ thoâng duïng laø ñóa töø, ñóa quang – Nhieäm vuï cuûa heä ñieàu haønh trong quaûn lyù ñóa

2.1. CaùcCaùc thaønh 2.1.

thaønh phaàn

haønh phaàn cuûacuûa heäheä ñieàuñieàu haønh

2.1. CaùcCaùc thaønh 2.1.

thaønh phaàn

haønh phaàn cuûacuûa heäheä ñieàuñieàu haønh

•2.1.6. Heä thoáng baûo veä •2.1.7. Heä thoáng thoâng dòch leänh – Laø giao dieän chuû yeáu giöõa ngöôøi duøng vaø OS • Ví duï: shell, mouse-based window-and-menu Trong heä thoáng cho pheùp nhieàu user hay nhieàu process dieãn ra ñoàng thôøi: – Kieåm soaùt quaù trình ngöôøi duøng ñaêng nhaäp/xuaát vaø söû duïng heä thoáng – Khi user login – Kieåm soaùt vieäc truy caäp caùc taøi nguyeân trong heä thoáng • command line interpreter (shell) chaïy, vaø chôø nhaän leänh töø ngöôøi – Baûo ñaûm nhöõng user/process chæ ñöôïc pheùp söû duïng caùc taøi nguyeân daønh cho noù – Caùc nhieäm vuï cuûa heä thoáng baûo veä duøng, thöïc thi leänh vaø traû keát quaû veà. – Caùc leänh ->boä ñieàu khieån leänh ->heä ñieàu haønh – Caùc leänh coù quan heä vôùi caùc vieäc:

9/14/2010

Vũ Đức Lung

7

9/14/2010

Vũ Đức Lung

8

2.2. CaùcCaùc dòchdòch vuïvuï heäheä ñieàuñieàu haønh 2.2.

haønh cung

cung caápcaáp

2.2. CaùcCaùc dòchdòch vuïvuï heäheä ñieàuñieàu haønh 2.2.

haønh cung

cung caápcaáp

Ngoaøi ra coøn caùc dòch vuï giuùp taêng hieäu suaát cuûa heä thoáng:

(cid:2) Cung caáp cô cheá kieåm soaùt ñaêng nhaäp/xuaát (login, log out) (cid:2) Phaân ñònh ñöôïc söï truy caäp taøi nguyeân hôïp phaùp vaø baát hôïp phaùp (authorized/unauthorized) (cid:2) Phöông tieän thi haønh caùc chính saùch (enforcement of policies) Chính saùch: caàn baûo veä döõ lieäu cuûa ai ñoái vôùi ai (cid:2) Taïo, huûy, vaø quaûn lyù quaù trình, heä thoáng (cid:2) Kieåm soaùt I/O (cid:2) Quaûn lyù boä löu tröõ thöù caáp (cid:2) Quaûn lyù boä nhôù chính (cid:2) Truy caäp heä thoáng file vaø cô cheá baûo maät

– Caáp phaùt taøi nguyeân (resource allocation)

9/14/2010

Vũ Đức Lung

9

9/14/2010

Vũ Đức Lung

10

thoáng ((System call System call))

2.3. LôøiLôøi goïigoïi heäheä thoáng 2.3.

2.4. CaùcCaùc chöông 2.4.

chöông trình

thoáng trình heäheä thoáng

• Taøi nguyeân: CPU, boä nhôù chính, tape drives,… • OS coù caùc routine töông öùng – Thöïc thi chöông trình – Thöïc hieän caùc thao taùcï I/O theo yeâu caàu cuûa chöông trình – Caùc thao taùc treân heä thoáng file • Ñoïc/ghi hay taïo/xoùa file – Keá toaùn (accounting) – Trao ñoåi thoâng tin giöõa caùc quaù trình qua hai caùch: • Nhaèm löu veát user ñeå tính phí hoaëc ñôn giaûn ñeå thoáng keâ. (cid:2) Chia xeû boä nhôù (Shared memory) (cid:2) Chuyeån thoâng ñieäp (Message passing) – Baûo veä (protection) – Phaùt hieän loãi • Hai quaù trình khaùc nhau khoâng ñöôïc aûnh höôûng nhau • Kieåm soaùt ñöôïc caùc truy xuaát taøi nguyeân cuûa heä thoáng (cid:2) Trong CPU, boä nhôù, treân thieát bò I/O (döõ lieäu hö, heát giaáy,…) (cid:2) Do chöông trình: chia cho 0, truy caäp ñeán ñòa chæ boä nhôù khoâng – An ninh (security) cho pheùp. • Chæ caùc user ñöôïc pheùp söû duïng heä thoáng môùi truy caäp ñöôïc taøi nguyeân cuûa heä thoáng (vd: thoâng qua username vaø password)

• Duøng ñeå giao tieáp giöõa quaù trình vaø heä ñieàu haønh – Cung caáp giao dieän giöõa quaù trình vaø heä ñieàu haønh

9/14/2010

Vũ Đức Lung

11

9/14/2010

Vũ Đức Lung

12

2

(cid:1) Chöông trình heä thoáng (system program, phaân bieät vôùi application program) goàm – Quaûn lyù heä thoáng file: nhö create, delete, rename, list • Vd: open, read, write file – Thoâng thöôøng ôû daïng thö vieän nhò phaân (binary libraries) hay gioáng – Thoâng tin traïng thaùi: nhö date, time, dung löôïng boä nhôù troáng nhö caùc leänh hôïp ngöõ. – Soaïn thaûo file: nhö file editor – Hoã trôï ngoân ngöõ laäp trình: nhö compiler, assembler, interpreter – Trong caùc ngoân ngöõ laäp trình caáp cao, moät soá thö vieän laäp trình ñöôïc xaây döïng döïa treân caùc thö vieän heä thoáng (ví duï Windows API, thö vieän GNU C/C++ nhö glibc, glibc++,…) – Naïp, thöïc thi, giuùp tìm loãi chöông trình: nhö loader, debugger – Ba phöông phaùp truyeàn tham soá khi söû duïng system call – Giao tieáp: nhö email, talk, web browser (cid:2) Qua thanh ghi (cid:2) Qua moät vuøng nhôù, ñòa chæ cuûa vuøng nhôù ñöôïc göûi ñeán heä ñieàu – … haønh qua thanh ghi (cid:1) Ngöôøi duøng chuû yeáu laøm vieäc thoâng qua caùc system program (khoâng laøm (cid:2) Qua stack vieäc “tröïc tieáp” vôùi caùc system call)

2.5. CaáuCaáu truùc 2.5.

thoáng truùc heäheä thoáng

2.5. CaáuCaáu truùc 2.5.

thoáng truùc heäheä thoáng

(cid:1) Caáu truùc ñôn giaûn (monolithic) UNIX: goàm hai phaàn coù theå taùch rôøi nhau

(cid:1) Caáu truùc ñôn giaûn (monolithic) – MS-DOS: khi thieát keá, do giôùi haïn veà dung löôïng boä nhôù neân khoâng phaân chia thaønh caùc module (modularization) vaø chöa phaân chia roõ chöùc naêng giöõa caùc phaàn cuûa heä thoáng.

(cid:2) Nhaân (cung caáp file system, CPU scheduling, memory management, vaø moät soá chöùc naêng khaùc) vaø system program

9/14/2010

Vũ Đức Lung

13

9/14/2010

Vũ Đức Lung

14

2.5. CaáuCaáu truùc 2.5.

thoáng truùc heäheä thoáng

2.5. CaáuCaáu truùc 2.5.

thoáng truùc heäheä thoáng

(cid:1) Caáu truùc phaân taàng: HÑH ñöôïc chi thaønh nhieàu lôùp (layer).

(cid:1) Caáu truùc phaân taàng:

Caáu truùc phaân taàng cuûa MS-DOS

9/14/2010

Vũ Đức Lung

15

9/14/2010

Vũ Đức Lung

16

2.5. CaáuCaáu truùc 2.5.

thoáng truùc heäheä thoáng

2.5. CaáuCaáu truùc 2.5.

thoáng truùc heäheä thoáng

(cid:1) Vi nhaân: - Lôïi ích: deã môû roäng HÑH - Moät soá HÑH hieän ñaïi söû duïng vi nhaân:

(cid:1) Vi nhaân: phaân chia module theo microkernel (CMU Mach OS, 1980) (cid:1) Chuyeån moät soá chöùc naêng cuûa OS töø kernel space sang user space (cid:1) Thu goïn kernel => microkernel, microkernel chæ bao goàm caùc chöùc naêng toái thieåu nhö quaûn lyù quaù trình, boä nhôù vaø cô cheá giao tieáp giöõa caùc quaù trình

(cid:2) Laàn ñaàu tieân ñöôïc aùp duïng cho HÑH THE (Technische Hogeschool Eindhoven) Lôùp 5 user programm (cid:2) Lôùp döôùi cuøng: hardware (cid:2) Lôùp treân cuøng laø giao tieáp vôùi user (cid:2) Lôùp treân chæ phuï thuoäc lôùp döôùi (cid:2) Moät lôùp chæ coù theå goïi caùc haøm cuûa lôùp döôùi vaø caùc haøm cuûa noù ñöôïc Lôùp 4 Taïo buffer cho thieát bò I/O goïi bôûi lôùp treân (cid:2) Moãi lôùp töông ñöông moät ñoái töôïng tröøu töôïng: caáu truùc döõ lieäu + Lôùp 3 Device driver thao taùc maøn hình thao taùc Lôùp 2 Quaûn lyù boä nhôù (cid:2) Phaân lôùp coù lôïi ích gì? Gôõ roái (debugger, kieåm tra heä thoáng, thay ñoåi chöùc naêng) Lôùp 1 Laäp lòch CPU Lôùp 0 Phaàn cöùng

moät module

(cid:1) Giao tieáp giöõa caùc module qua cô cheá truyeàn thoâng ñieäp

Application Application

POSIX POSIX application application

OS/2 OS/2 application application

File File server server

POSIX POSIX server server

OS/2 OS/2 server server

+ Tru64 UNIX (Digital UNIX tröôùc ñaây): nhaân Mach + Apple MacOS Server : nhaân Mach + QNX – vi nhaân cung caáp: truyeàn thoâng ñieäp, ñònh thôøi CPU, giao tieáp maïng caáp thaáp vaø ngaét phaàn cöùng + Windows NT: chaïy caùc öùng duïng khaùc nhau win32, OS/2, POSIX (Portable OS for uniX)

9/14/2010

Vũ Đức Lung

17

9/14/2010

Vũ Đức Lung

18

3

Microkernel

2.6. MaùyMaùy aûoaûo 2.6.

2.6. MaùyMaùy aûoaûo 2.6.

• Töø OS layer ñeán maùy aûo (virtual machine)

(cid:1) Hieän thöïc yù nieäm VM

Intel x86 Application

Intel x86 VM

VM interpretation

programming interface

Solaris kernel

processes – Laøm theá naøo ñeå thöïc thi moät chöông trình MS-DOS treân moät heä thoáng Sun vôùi heä ñieàu haønh Solaris ? processes processes 1. Taïo moät maùy aûo Intel beân treân heä ñieàu haønh Solaris vaø heä thoáng Sun

Sun hardware

Virtual machine system model

Non-virtual machine system model

9/14/2010

Vũ Đức Lung

19

9/14/2010

Vũ Đức Lung

20

4

kernel VM1 processes kernel VM3 2. Caùc leänh Intel (x86) ñöôïc maùy aûo kernel Intel chuyeån thaønh leänh töông öùng cuûa heä thoáng Sun. hardware kernel VM2 Virtual-machine implementation hardware

ChChööôngông III:

III: TieTieá

(Process) ánn trtrììnhnh (Process)

3.1. KhaKhaùùii nienieäämm côcô babaûûnn 3.1.

(cid:1) Caùi gì goïi caùc hoaït ñoäng cuûa CPU? – Heä thoáng boù (Batch system): jobs – Time-shared systems: user programs, tasks – Caùc hoaït ñoäng laø töông töï => goïi laø process

(cid:1) Quaù trình (process)

Moät quaù trình bao goàm

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

(cid:1) Khaùi nieäm cô baûn (cid:1) Traïng thaùi quaù trình (cid:1) Khoái ñieàu khieån quaù trình (Process control block) (cid:1) Ñònh thôøi quaù trình (Process Scheduling) (cid:1) Caùc taùc vuï ñoái vôùi quaù trình (cid:1) Söï coäng taùc giöõa caùc quaù trình (cid:1) Giao tieáp giöõa caùc quaù trình

Vũ Đức Lung

Vũ Đức Lung

1

2

Khoa KTMT

Khoa KTMT

3.1. KhaKhaùùii nienieäämm côcô babaûûnn 3.1.

3.1. KhaKhaùùii nienieäämm côcô babaûûnn 3.1.

chöông trình => quaù trình

Caùc böôùc naïp chöông trình vaøo boä nhôù

(cid:1) Duøng load module ñeå bieåu dieãn chöông trình thöïc thi ñöôïc (cid:1) Layout luaän lyù cuûa process image

Process image in main memory

Executable binary file (load module)

start address

program code

program code

data

data

stack

Vũ Đức Lung

Vũ Đức Lung

3

4

Khoa KTMT

Khoa KTMT

3.2.Traïïng ng thathaùùii quaquaùù trtrììnhnh 3.2.Tra

(cid:1) Caùc traïng thaùi cuûa quaù trình (process states):

3.1. KhaKhaùùii nienieäämm côcô babaûûnn 3.1. KhôKhôûûii tataïïoo quaquaùù trtrììnhnh

(cid:1) Caùc böôùc heä ñieàu haønh khôûi taïo quaù trình

– Text section (program code), data section (chöùa global variables) – program counter (PC), process status word (PSW), stack pointer (SP), memory management registers,…

– Caáp phaùt moät ñònh danh duy nhaát (process number hay process identifier, pid) cho quaù trình – new: quaù trình vöøa ñöôïc taïo – ready: quaù trình ñaõ coù ñuû taøi nguyeân, chæ coøn caàn CPU – running: caùc leänh cuûa quaù trình ñang ñöôïc thöïc thi – waiting: hay laø blocked, quaù trình ñôïi I/O hoaøn taát, tín hieäu. – terminated: quaù trình ñaõ keát thuùc.

Vũ Đức Lung

Vũ Đức Lung

5

6

Khoa KTMT

Khoa KTMT

1

– Caáp phaùt khoâng gian nhôù ñeå naïp quaù trình – Khôûi taïo khoái döõ lieäu Process Control Block (PCB) cho quaù trình (cid:3) PCB laø nôi heä ñieàu haønh löu caùc thoâng tin veà quaù trình – Thieát laäp caùc moái lieân heä caàn thieát (vd: saép PCB vaøo haøng ñôïi ñònh thôøi,…)

3.2.Traïïng ng thathaùùii quaquaùù trtrììnhnh 3.2.Tra

3.2.Traïïng ng thathaùùii quaquaùù trtrììnhnh 3.2.Tra

(cid:1) Chuyeån ñoåi giöõa caùc traïng thaùi cuûa quaù trình

(cid:1) Chuoãi traïng thaùi cuûa quaù

terminated terminated

VVíí duduïï /* test.c */ int main(int argc, char** argv) {

admit

dispatch

newnew

exit

printf(“Hello world\n"); exit(0);

}

ready ready

running running

trình test nhö sau (tröôøng hôïp toát nhaát): – new – ready – running – waiting (do chôø I/O khi goïi

interrupt

Bieân dòch chöông trình trong Linux gcc test.c –o test

I/O or event wait

I/O or event completion

waiting waiting

Vũ Đức Lung

Vũ Đức Lung

7

8

Khoa KTMT

Khoa KTMT

3.3.Process control block 3.3.Process control block

3.3.Process control block 3.3.Process control block

(cid:1) Ñaõ thaáy laø moãi quaù trình trong heä thoáng ñeàu ñöôïc caáp phaùt moät Process

Thöïc thi chöông trình test ./test printf) – ready – running – terminated Trong heä thoáng seõ coù moät quaù trình test ñöôïc taïo ra, thöïc thi vaø keát thuùc.

(cid:1) PCB laø moät trong caùc caáu truùc döõ lieäu quan

Control Block (PCB)

troïng nhaát cuûa heä ñieàu haønh vaø goàm: Löu ñoà chuyeån CPU töø quaù trình naøy ñeán quaù trình khaùc

Vũ Đức Lung

Vũ Đức Lung

9

10

Khoa KTMT

Khoa KTMT

QuaQuaûûnn lylyùù cacaùùcc quaquaùù trtrììnhnh: : cacaùùcc hahaøøngng ññôôïïii

YeâuYeâu cacaààuu ññooááii vôvôùùii heheää ññieieààuu hahaøønhnh veveàà quaquaûûnn lylyùù quaquaùù trtrììnhnh

(cid:1) Hoã trôï söï thöïc thi luaân phieân giöõa nhieàu quaù trình

(cid:1) Ví duï

caùc PCB

- Traïng thaùi quaù trình: new, ready, running,… - Boä ñeám chöông trình - Caùc thanh ghi - Thoâng tin laäp thôøi bieåu CPU: ñoä öu tieân, … - Thoâng tin quaûn lyù boä nhôù - Thoâng tin taøi khoaûn: löôïng CPU, thôøi gian söû duïng, - Thoâng tin traïng thaùi I/O

7

process number

running

(cid:1) Phaân phoái taøi nguyeân heä thoáng hôïp lyù

– Hieäu suaát söû duïng CPU – Thôøi gian ñaùp öùng

ready

(cid:1) Cung caáp cô cheá giao tieáp vaø ñoàng boä hoaït ñoäng caùc quaù trình

11

4

2

17

waiting

(cid:1) Cung caáp cô cheá hoã trôï user taïo/keát thuùc quaù trình

19

11

Coù gì sai trong ví duï?

Vũ Đức Lung

Vũ Đức Lung

11

12

Khoa KTMT

Khoa KTMT

2

– traùnh deadlock, trì hoaõn voâ haïn ñònh,…

(Process 3.4. ÑÑònhònh thôthôøøii quaquaùù trtrììnhnh (Process 3.4. Scheduling) Scheduling)

CaCaùùcc hahaøøngng ññôôïïii ññònhònh thôthôøøii (Scheduling (Scheduling queues) queues)

(cid:1) Haøng ñôïi coâng

(cid:1) Taïi sao phaûi ñònh thôøi?

(cid:1) Haøng ñôïi saün

vieäc-Job queue – Ña chöông (Multiprogramming)

(cid:1) …

(cid:3) Coù vaøi quaù trình chaïy taïi caùc thôøi ñieåm (cid:3) Muïc tieâu: taän duïng toái ña CPU saøng-Ready queue (cid:1) Haøng ñôïi thieát bò- Device queues – Chia thôøi(Time-sharing)

(cid:1) Moät soá khaùi nieäm cô baûn

(cid:3) Users töông taùc vôùi moãi chöông trình ñang thöïc thi (cid:3) Muïc tieâu: toái thieåu thôøi gian ñaùp öùng

Vũ Đức Lung

Vũ Đức Lung

13

14

Khoa KTMT

Khoa KTMT

(Scheduler) 3.5. BoBoää ññònhònh thôthôøøii (Scheduler) 3.5.

CaCaùùcc hahaøøngng ññôôïïii ññònhònh thôthôøøii (Scheduling (Scheduling queues) queues)

(cid:1) Boä ñònh thôøi coâng vieäc (Job scheduler) hay boä ñònh thôøi daøi

(long-term scheduler)

(cid:1) Boä ñònh thôøi CPU hay boä ñònh thôøi ngaén (cid:1) Caùc quaù trình coù theå moâ taû nhö:

– Caùc boä ñònh thôøi (scheduler) – Caùc haøng ñôïi ñònh thôøi (scheduling queue)

– Quaù trình höôùng I/O (I/O bound process) – Quaù trình höôùng CPU (CPU bound process) Thôøi gian thöïc hieän khaùc nhau => keát hôïp haøi hoøa giöõa chuùng

Vũ Đức Lung

Vũ Đức Lung

15

16

Khoa KTMT

Khoa KTMT

trung gian(medium

term gian(medium--term

3.6. CaCaùùcc tataùùcc vuvuïï ññooááii vôvôùùii quaquaùù trtrììnhnh 3.6.

BoBoää ññònhònh thôthôøøii trung scheduling) scheduling)

(cid:1) Ñoâi khi heä ñieàu haønh (nhö time-sharing system) coù theâm

(cid:1) Taïo quaù trình môùi (process creation)

Löu ñoà haøng ñôïi cuûa ñònh thôøi quaù trình

medium-term scheduling ñeå ñieàu chænh möùc ñoä ña chöông cuûa heä thoáng

(cid:1) Medium-term scheduler

Vũ Đức Lung

Vũ Đức Lung

17

18

Khoa KTMT

Khoa KTMT

3

– Moät quaù trình coù theå taïo nhieàu quaù trình môùi thoâng qua moät lôøi goïi heä thoáng create-process (vd: haøm fork trong Unix) (cid:3) Ví duï: (Unix) Khi user ñaêng nhaäp heä thoáng, moät command interpreter (shell) seõ ñöôïc taïo ra cho user (cid:4) Quaù trình ñöôïc taïo laø quaù trình con cuûa quaù trình taïo (quaù trình – chuyeån quaù trình töø boä nhôù sang ñóa (swap out) – chuyeån quaù trình töø ñóa vaøo boä nhôù (swap in) cha). Quan heä cha-con ñònh nghóa moät caây quaù trình.

CaâyCaây quaquaùù trtrììnhnh trong

Linux/Unix trong Linux/Unix

3.6.Caùùc c tataùùcc vuvuïï ññooááii vôvôùùii quaquaùù trtrììnhnh 3.6.Ca

(cid:1) Ví duï

(cid:1) Taïo quaù trình môùi

– Quaù trình con nhaän taøi nguyeân: töø HÑH hoaëc töø P cha – Chia seû taøi nguyeân cuûa quaù trình cha

(cid:3) Quaù trình cha vaø con chia seû moïi taøi nguyeân (cid:3) Quaù trình con chia seû moät phaàn taøi nguyeân cuûa cha – Trình töï thöïc thi

Vũ Đức Lung

Vũ Đức Lung

19

20

Khoa KTMT

Khoa KTMT

cha/con VeVeàà quanquan heheää cha/con

VVíí duduïï tataïïoo process

fork() process vôvôùùii fork()

(cid:1) Khoâng gian ñòa chæ (address space)

#include #include int main (int argc, char *argv[]){

(cid:3) Quaù trình cha vaø con thöïc thi ñoàng thôøi (concurrently) (cid:3) Quaù trình cha ñôïi ñeán khi caùc quaù trình con keát thuùc.

int pid; /* create a new process */ pid = fork();

(cid:1) Ví duï trong UNIX/Linux

if (pid > 0){

– Khoâng gian ñòa chæ cuûa quaù trình con ñöôïc nhaân baûn töø cha – Khoâng gian ñòa chæ cuûa quaù trình con ñöôïc khôûi taïo töø template.

printf(“This is parent process”); wait(NULL); exit(0);

} else if (pid == 0) {

ñoàng boä

printf(“This is child process”); execlp(“/bin/ls”, “ls”, NULL); exit(0);

} else {

printf(“Fork error\n”); exit(-1);

}

}

Vũ Đức Lung

Vũ Đức Lung

21

22

Khoa KTMT

Khoa KTMT

3.6.Caùùc c tataùùcc vuvuïï ññooááii vôvôùùii quaquaùù trtrììnhnh ((tttt)) 3.6.Ca

3.7. CoCoäängng tataùùcc gigiööõaõa cacaùùcc quaquaùù trtrììnhnh 3.7.

(cid:1) Trong quaù trình thöïc thi, caùc quaù trình coù theå coäng taùc

(cid:1) Taïo quaù trình môùi (cid:5)

(cooperate) ñeå hoaøn thaønh coâng vieäc

(cid:1) Keát thuùc quaù trình

(cid:1) Caùc quaù trình coäng taùc ñeå

– System call fork() taïo moät quaù trình môùi – System call exec() duøng sau fork() ñeå naïp moät chöông trình môùi vaøo khoâng gian nhôù cuûa quaù trình môùi

(cid:1) Söï coäng taùc giöõa caùc quaù trình yeâu caàu heä ñieàu haønh hoã trôï cô cheá giao tieáp vaø cô cheá ñoàng boä hoaït ñoäng cuûa caùc quaù trình

Vũ Đức Lung

Vũ Đức Lung

23

24

Khoa KTMT

Khoa KTMT

4

– Quaù trình töï keát thuùc (cid:3) Quaù trình keát thuùc khi thöïc thi leänh cuoái vaø goïi system routine – Chia seû döõ lieäu (information sharing) – Taêng toác tính toaùn (computational speedup) (cid:3) Neáu heä thoáng coù nhieàu CPU, chia coâng vieäc tính toaùn thaønh exit nhieàu coâng vieäc tính toaùn nhoû chaïy song song – Quaù trình keát thuùc do quaù trình khaùc (coù ñuû quyeàn, vd: quaù trình – Thöïc hieän moät coâng vieäc chung cha cuûa noù) (cid:3) Xaây döïng moät phaàn meàm phöùc taïp baèng caùch chia thaønh caùc module/process hôïp taùc nhau (cid:3) Goïi system routine abort vôùi tham soá laø pid (process identifier) cuûa quaù trình caàn ñöôïc keát thuùc – Heä ñieàu haønh thu hoài taát caû caùc taøi nguyeân cuûa quaù trình keát thuùc (vuøng nhôù, I/O buffer,…)

BaBaøøii toatoaùùnn ngngööôôøøii sasaûûnn xuaxuaáátt--ngngööôôøøii tieâutieâu thuthuïï consumer ) (producer--consumer ) (producer

3.8.Giao tietieáápp lieânlieân quaquaùù trtrììnhnh 3.8.Giao Interprocess communication ((Interprocess

IPC) communication--IPC)

(cid:1) IPC laø cô cheá cung caáp bôûi heä ñieàu haønh nhaèm giuùp caùc quaù

(cid:1) Ví duï coäng taùc giöõa caùc quaù trình: baøi toaùn producer-consumer

trình – giao tieáp vôùi nhau – vaø ñoàng boä hoaït ñoäng maø khoâng caàn chia seû khoâng gian ñòa chæ

– Producer taïo ra caùc döõ lieäu vaø consumer tieâu thuï, söû duïng caùc döõ lieäu ñoù. Söï trao ñoåi thoâng tin thöïc hieän qua buffer

(cid:1) IPC coù theå ñöôïc cung caáp bôûi message passing system

(cid:3) unbounded buffer: kích thöôùc buffer voâ haïn (khoâng thöïc teá). (cid:3) bounded buffer: kích thöôùc buffer coù haïn.

– Producer vaø consumer phaûi hoaït ñoäng ñoàng boä vì

Vũ Đức Lung

Vũ Đức Lung

25

26

Khoa KTMT

Khoa KTMT

thoâng ññieieääpp

TieTieå

åuu trtrììnhnh ((luoluoà

Thread àngng) ) -- Thread

HeHeää thothoáángng truye truyeàànn thoâng Message passing system Message passing system (cid:1) Laøm theá naøo ñeå caùc quaù trình giao tieáp nhau? Caùc vaán ñeà:

(cid:1) Tieåu trình(tieán trình nheï-lightweight process): laø moät ñôn vò cô

– Ñaët teân (Naming)

(cid:3) Giao tieáp tröïc tieáp

baûn söû duïng CPU, goàm: – Thread ID, PC, Registers, stack vaø chia seû chung code, data,

– send(P, msg): göûi thoâng ñieäp ñeán quaù trình P

(cid:3) Consumer khoâng ñöôïc tieâu thuï khi producer chöa saûn xuaát (cid:3) Producer khoâng ñöôïc taïo theâm saûn phaåm khi buffer ñaày.

– receive(Q, msg): nhaän thoâng ñieäp ñeán töø quaù trình Q

(cid:3) Giao tieáp giaùn tieáp: thoâng qua mailbox hay port

– send(A, msg): göûi thoâng ñieäp ñeán mailbox A

– receive(B, msg): nhaän thoâng ñieäp töø mailbox B

– Ñoàng boä hoùa (Synchronization): blocking send, nonblocking send,

blocking receive, nonblocking receive

– Taïo vuøng ñeäm (Buffering): duøng queue ñeå taïm chöùa caùc message

(cid:3) Khaû naêng chöùa laø 0(Zero capacity hay no buffering) (cid:3) Bounded capacity: ñoä daøi cuûa queue laø giôùi haïn (cid:3) Unbounded capacity: ñoä daøi cuûa queue laø khoâng giôùi haïn

Vũ Đức Lung

Vũ Đức Lung

27

28

Khoa KTMT

Khoa KTMT

PCB vavaøøTCBTCB trong PCB

trong moâmoâ hhììnhnh

LôLôï

ïii ííchch cucuû

ûaa tietieá

ánn trtrììnhnh ññaa luoluoà

àngng

multithreads multithreads

(cid:1) Ñaùp öùng nhanh: Cho pheùp chöông trình tieáp tuïc thöïc thi khi moät

PCB

pid

boä phaän bò khoùa hoaëc moät hoaït ñoäng daøi

Thread Control Block TCB

Threads list

(cid:1) Chia seû taøi nguyeân: tieát kieäm khoâng gian nhôù

tid

Context

State

(cid:1) Kinh teá: taïo vaø chuyeån ngöõ caûnh nhanh hôn tieán trình

(Mem, global ressources…)

(State, details)

VD: trong Solaris 2, taïo process chaäm hôn 30 laàn, chuyeån chaäm

Relatives

Context

hôn 5 laàn

( Dad, children)

(IP, local stack…)

(cid:1) Trong multiprocessor: coù theå thöïc hieän song song

Scheduling statistic

Vũ Đức Lung

Vũ Đức Lung

29

30

Khoa KTMT

Khoa KTMT

5

resources (files)

(User thread) TieTieååuu trtrììnhnh ngngööôôøøii duduøøngng (User thread)

TiTiểểuu trtrììnhnh hhạạtt nhaân(Kernel

thread) nhaân(Kernel thread)

T1

T2

T3

User mode

User mode

T1

T2

LWP2

LWP1

System call

Kernel mode

HDH

P2

P1

Kernel mode

Kernel

Khái niệm tiểu trình được xây dựng bên trong hạt nhân

Vũ Đức Lung

Vũ Đức Lung

31

32

Khoa KTMT

Khoa KTMT

Vũ Đức Lung

33

Khoa KTMT

6

Khái niệm tiểu trình được hỗ trợ bởi một thư viện hoạt động trong user mode

Khaùi nieäm cô baûn

ChChööôngông IV:

IV: ÑÑònhònh thôthôøøii CPUCPU

(cid:1) Trong caùc heä thoáng multitasking

– Thöïc thi nhieàu chöông trình ñoàng thôøi laøm taêng hieäu suaát heä

– long-term, mid-term, short-term

thoáng.

– Taïi moãi thôøi ñieåm, chæ coù moät process ñöôïc thöïc thi. Do ñoù,

(cid:1) Khaùi nieäm cô baûn (cid:1) Caùc boä ñònh thôøi

caàn phaûi giaûi quyeát vaán ñeà phaân chia, löïa choïn process thöïc thi sao cho ñöôïc hieäu quaû nhaát → chieán löôïc ñònh thôøi CPU.

– First-Come, First-Served (FCFS) – Round-Robin (RR) – Shortest Job First (SJF) vaø Shortest Remaining

(cid:1) Ñònh thôøi CPU

– Choïn moät process (töø ready queue) thöïc thi.

– Vôùi moät multithreaded kernel, vieäc ñònh thôøi CPU laø do OS

choïn kernel thread ñöôïc chieám CPU.

Time First (SRTF) – Priority Scheduling – Highest Response Ratio Next (HRRN) – Multilevel Queue – Multilevel Feedback Queue

1

2

Khoa KTMT

Khoa KTMT

Caùc boä ñònh thôøi

Caùc boä ñònh thôøi

(cid:1) Long-term scheduling

newnew

(cid:1) Caùc tieâu chuaån ñònh thôøi CPU (cid:1) Caùc giaûi thuaät ñònh thôøi

– Xaùc ñònh chöông trình naøo ñöôïc chaáp nhaän naïp vaøo heä thoáng ñeå thöïc thi Long-term scheduling Long-term scheduling

ready ready

suspended suspended ready ready

running running

– Ñieàu khieån möùc ñoä multiprogramming cuûa heä thoáng – Long term scheduler thöôøng coá gaéng duy trì xen laãn CPU-bound Medium-term scheduling Short-term scheduling vaø I/O-bound process (cid:1) Medium-term scheduling – Process naøo ñöôïc ñöa vaøo (swap in0, ñöa ra khoûi (swap out) boä nhôù chính – Ñöôïc thöïc hieän bôûi phaàn quaûn lyù boä nhôù vaø ñöôïc thaûo luaän ôû phaàn quaûn lyù boä nhôù.

blocked blocked

terminated terminated

suspended suspended blocked blocked

3

4

Khoa KTMT

Khoa KTMT

Caùc boä ñònh thôøi (tt)

Dispatcher

(cid:1) Dispatcher seõ chuyeån quyeàn ñieàu khieån CPU veà cho

• Short term scheduling (cid:1) Xaùc ñònh process naøo trong ready queue seõ ñöôïc chieám CPU

process ñöôïc choïn bôûi boä ñònh thôøi ngaén haïn

(cid:1) Bao goàm:

ñeå thöïc thi keá tieáp (coøn ñöôïc goïi laø ñònh thôøi CPU, CPU scheduling)

(cid:1) Short term scheduler coøn ñöôïc goïi vôùi teân khaùc laø dispatcher (cid:1) Boä ñònh thôøi short-term ñöôïc goïi moãi khi coù moät trong caùc söï

kieän/interrupt sau xaûy ra:

Medium-term scheduling

(cid:1) Coâng vieäc naøy gaây ra phí toån

– Chuyeån ngöõ caûnh (söû duïng thoâng tin ngöõ caûnh trong PCB) – Chuyeån cheá ñoä ngöôøi duøng – Nhaûy ñeán vò trí thích hôïp trong chöông trình öùng duïng ñeå khôûi ñoäng laïi chöông trình (chính laø program counter trong PCB)

– Ngắt thôøi gian (clock interrupt) – Ngaét ngoaïi vi (I/O interrupt) – Lôøi goïi heä thoáng (operating system call) – Signal Chöông naøy seõ taäp trung vaøo ñònh thôøi ngaén haïn

5

6

Khoa KTMT

Khoa KTMT

1

– Dispatch latency: thôøi gian maø dispatcher döøng moät process vaø khôûi ñoäng moät process khaùc

Hai yeáu toá cuûa giaûi thuaät ñònh thôøi

Caùc tieâu chuaån ñònh thôøi CPU

(cid:1) Haøm choïn löïa (selection function): duøng ñeå choïn

(cid:1) User-oriented

process naøo trong ready queue ñöôïc thöïc thi (thöôøng döïa treân ñoä öu tieân, yeâu caàu veà taøi nguyeân, ñaëc ñieåm thöïc thi cuûa process,…), ví duï • w = toång thôøi gian ñôïi trong heä thoáng • e = thôøi gian ñaõ ñöôïc phuïc vuï • s = toång thôøi gian thöïc thi cuûa process (bao goàm caû “e”)

– Thôøi gian ñaùp öùng (Response time): khoaûng thôøi gian process nhaän yeâu caàu ñeán khi yeâu caàu ñaàu tieân ñöôïc ñaùp öùng (time- sharing, interactive system) → cöïc tieåu

(cid:1) System-oriented

– Thôøi gian quay voøng (hoaøn thaønh) (Turnaround time): khoaûng thôøi gian töø luùc moät process ñöôïc naïp vaøo heä thoáng ñeán khi process ñoù keát thuùc → cöïc tieåu – Thôøi gian chôø (Waiting time): toång thôøi gian moät process ñôïi trong ready queue → cöïc tieåu

7

8

Khoa KTMT

Khoa KTMT

Hai yeáu toá cuûa giaûi thuaät ñònh thôøi (tt)

Preemptive vaø Non-preemptive

(cid:1) Hàm định thời được thực hiện khi

(cid:1) Cheá ñoä quyeát ñònh (decision mode): choïn thôøi ñieåm thöïc

hieän haøm choïn löïa ñeå ñònh thôøi. Coù hai cheá ñoä – Khoâng tröng duïng (Non-preemptive)

(cid:2) Khi ôû traïng thaùi running, process seõ thöïc thi cho ñeán khi keát thuùc hoaëc bò blocked do yeâu caàu I/O

– Tröng duïng (Preemptive)

– Söû duïng CPU (processor utilization): ñònh thôøi sao cho CPU caøng baän caøng toát → cöïc ñaïi – Coâng baèng (fairness): taát caû process phaûi ñöôïc ñoái xöû nhö nhau – Thoâng löôïng (throughput): soá process hoaøn taát coâng vieäc trong moät ñôn vò thôøi gian → cöïc ñaïi.

(cid:2) Process ñang thöïc thi (traïng thaùi running) coù theå bò ngaét nöûa chöøng vaø chuyeån veà traïng thaùi ready bôûi heä ñieàu haønh

Thực hiện cơ chế nào khó hơn? Tại sao?

(cid:2) Chi phí cao hôn non-preemptive nhöng ñaùnh ñoåi laïi baèng thôøi gian ñaùp öùng toát hôn vì khoâng coù tröôøng hôïp moät process ñoäc chieám CPU quaù laâu.

9

10

Khoa KTMT

Khoa KTMT

Khaûo saùt giaûi thuaät ñònh thôøi

1. First-Come First-Served (FCFS)

(cid:1) Haøm löïa choïn: Tieán trình naøo yeâu caàu CPU tröôùc seõ ñöôïc caáp phaùt CPU tröôùc; Process seõ thöïc thi ñeán khi keát thuùc hoaëc bò blocked do I/O

CPU burst

load store add store read from file

moät chu kyø CPU-I/O

Process

(cid:1) Cheá ñoä quyeát ñònh: non-preemptive algorithm (cid:1) Hieän thöïc : söû duïng haøng ñôïi FIFO (FIFO queues)

I/O burst

Arrival Time

Service Time

wait for I/O

1

0

3

– Tieán trình ñi vaøo ñöôïc theâm vaøo cuoái haøng ñôïi – Tieán trình ñöôïc löïa choïn ñeå xöû lyù ñöôïc laáy töø ñaàu cuûa queues

CPU burst

inc store write to file

2

2

6

wait for I/O

I/O burst

3

4

4

10

15

20

0

5

4

6

5

CPU burst

5

8

2

load store add store read from file

I/O burst

P1 P2 P3 P4 P5

wait for I/O (cid:22)

run

add

(cid:1) Service time = thôøi gian process caàn CPU trong moät chu kyø

CPU-I/O

11

12

(cid:1) Process coù service time lôùn laø caùc CPU-bound process Khoa KTMT

Khoa KTMT

2

(1) Chuyển từ trạng thái running sang waiting (2) Chuyển từ trạng thái running sang ready (3) Chuyển từ trạng thái waiting, new sang ready (4) Kết thúc thực thi 1 và 4 không cần lựa chọn loại định thời biểu, 2 và 3 cần (cid:1) Trường hợp 1, 4 được gọi là định thời nonpreemptive (cid:1) Trường hợp 2, 3 được gọi là định thời preemptive

FCFS Scheduling

FCFS Scheduling

(cid:1) Giaû söû thôøi gian vaøo cuûa caùc tieán

(cid:1) Ví duï :

(cid:1) Giaû söû thöù töï vaøo cuûa caùc tieán

(cid:1) Ví duï:

trình laø

(cid:2) P2, P3, P1

(cid:1) Thôøi gian chôø :

(cid:2) P1, P2, P3 (cid:1) Thôøi gian chôø

(cid:2) P1 = 6; P2 = 0; P3 = 3;

(cid:1) Thôøi gian chôø trung bình

(cid:2) (6+0+3)/3 = 3 , toát hôn..

Process P1 P2 P3

Burst Time 24 3 3

(cid:2) P1 = 0; (cid:2) P2 = 24; (cid:2) P3 = 27;

Process P1 P2 P3

Burst Time 24 3 3

(cid:1) Thôøi gian chôø trung bình

(cid:2) (0+24+27)/3 = 17

Gantt Chart for Schedule

Gantt Chart for Schedule

P1

P2 P3

P2

P3

P1

0

0

3

6

24

27

30

30

13

14

Khoa KTMT

Khoa KTMT

2. Shortest-Job-First(SJF) Scheduling

2. Shortest-Job-First(SJF) Scheduling

(cid:1) Hai hình thöùc (Schemes):

(cid:1) Ñònh thôøi bieåu coâng vieäc ngaén nhaát tröôùc (cid:1) Khi CPU ñöôïc töï do, noù seõ caáp phaùt cho tieán trình yeâu caàu ít

trình laø

thôøi gian nhaát ñeå keát thuùc ( tieán trình ngaén nhaát)

(cid:1) Lieân quan ñeán chieàu daøi thôøi gian söû duïng CPU cho laàn tieáp theo cuûa moãi tieán trình. Söû duïng nhöõng chieàu daøi naøy ñeå laäp lòch cho tieán trình vôùi thôøi gian ngaén nhaát.

– Scheme 1: Non-preemptive( tieán trình ñoäc quyeàn CPU) (cid:2) Khi CPU ñöôïc trao cho quaù trình noù khoâng nhöôøng cho ñeán khi noù keát thuùc chu kyø xöû lyù cuûa noù – Scheme 2: Preemptive( tieán trình khoâng ñoäc quyeàn) (cid:2) Neáu moät tieán trình CPU môùi ñöôïc ñöa vaøo danh saùch vôùi

15

16

Khoa KTMT

Khoa KTMT

Non-Preemptive SJF Scheduling

Preemptive SJF Scheduling (hay Sortest Remaining Time First - SRTF)

(cid:1) Ví duï :

(cid:1) Ví duï 1:

Process Arrival TimeBurst Time 7 P1 4 P2 1 P3 4 P4

0 2 4 5

Process Arrival TimeBurst Time P1 P2 P3 P4

0 2 4 5

7 4 1 4

chieàu daøi söû duïng CPU cho laàn tieáp theo nhoû hôn thôøi gian coøn laïi cuûa tieán trình ñang xöû lyù noù seõ döøng hoaït ñoäng tieán trình hieän haønh (hình thöùc naøy coøn goïi laø Shortest- Remaining-Time-First (SRTF).) – SJF laø toái öu – cho thôøi gian chôø ñôïi trung bình toái thieåu vôùi moät taäp tieán trình cho tröôùc

Gantt Chart for Schedule

P1

P3

P2

P4

Gantt Chart for Schedule

0

P1

P2

P3

P2

P4

P1

7

8

12

16

0

5

7

11

2

4

16

Average waiting time = (0+6+3+7)/4 = 4

Process Arrival TimeBurst Time 8 P1 4 P2 9 P3 5 P4

0 1 2 3

Average waiting time = (9+1+0+2)/4 = 3

17

18

Khoa KTMT

Khoa KTMT

3

VD2:

Nhaän xeùt veà giaûi thuaät SJF

Nhaän xeùt veà giaûi thuaät SJF

(cid:1) Coù theå xaûy ra tình traïng “ñoùi” (starvation) ñoái vôùi caùc

process coù CPU-burst lôùn khi coù nhieàu process vôùi CPU- burst nhoû ñeán heä thoáng.

(cid:1) Tương ứng với mỗi process cần có độ dài của CPU burst tiếp theo (cid:1) Hàm lựa chọn: chọn process có độ dài CPU burst nhỏ nhất (cid:1) Chứng minh được: SJF tối ưu trong việc giảm thời gian đợi trung

bình

(cid:1) Cô cheá non-preemptive khoâng phuø hôïp cho heä thoáng

(cid:1) Nhược điểm: Cần phải ước lượng thời gian cần CPU tiếp theo của

time sharing (interactive)

process

(cid:1) Giaûi thuaät SJF ngaàm ñònh ra ñoä öu tieân theo burst time

(cid:1) Giải pháp cho vấn đề này?

(cid:1) Caùc CPU-bound process coù ñoä öu tieân thaáp hôn so vôùi I/O-bound process, nhöng khi moät process khoâng thöïc hieän I/O ñöôïc thöïc thi thì noù ñoäc chieám CPU cho ñeán khi keát thuùc

19

20

Khoa KTMT

Khoa KTMT

Dự đoán thời gian sử dụng CPU

Nhaän xeùt veà giaûi thuaät SJF

Độ dài CPU burst đo được

(Thời gian sử dụng CPU chính là độ dài của CPU burst) (cid:1) Trung bình tất cả các CPU burst đo được trong quá khứ (cid:1) Nhưng thông thường những CPU burst càng mới càng phản

ánh đúng hành vi của process trong tương lai

(cid:1) Một kỹ thuật thường dùng là sử dụng trung bình hàm mũ

Độ dài CPU burst dự đoán, a = ½ và τ với

0 = 10

(exponential averaging) – τn+1 = a tn + (1 - a) τn , 0 ≤ a ≤ 1 – τn+1 = a tn + (1- a) a tn-1 +…+ (1- a)jaτn-j +…+ (1- a)n+1aτ0 – Nếu chọn a = ½ thì có nghĩa là trị đo được tn và trị dự đoán τn

được xem quan trọng như nhau.

21

22

Khoa KTMT

Khoa KTMT

3. Priority Scheduling

Gaùn ñoä öu tieân

(cid:1) SJF laø moät giaûi thuaät ñònh thôøi söû duïng ñoä öu tieân vôùi ñoä

öu tieân laø thôøi-gian-söû-duïng-CPU-döï-ñoaùn

(cid:1) Gaùn ñoä öu tieân coøn döïa vaøo:

(cid:1) Moãi process seõ ñöôïc gaùn moät ñoä öu tieân (cid:1) CPU seõ ñöôïc caáp cho process coù ñoä öu tieân cao nhaát (cid:1) Ñònh thôøi söû duïng ñoä öu tieân coù theå:

– Preemptive hoaëc – Nonpreemptive

23

24

Khoa KTMT

Khoa KTMT

4

– Yeâu caàu veà boä nhôù – Soá löôïng file ñöôïc môû – Tæ leä thôøi gian duøng cho I/O treân thôøi gian söû duïng CPU – Caùc yeâu caàu beân ngoaøi ví duï nhö: soá tieàn ngöôøi duøng traû khi thöïc thi coâng vieäc

3. Priority Scheduling

4. Ñònh thôøi luaân phieân (Round Robin -RR)

(cid:1) Moãi process nhaän ñöôïc moät ñôn vò nhoû thôøi gian CPU

(cid:1) Vaán ñeà: trì hoaõn voâ haïn ñònh – process coù ñoä öu tieân

thaáp coù theå khoâng bao giôø ñöôïc thöïc thi

(cid:1) Giaûi phaùp: laøm môùi (aging) – ñoä öu tieân cuûa process seõ

(time slice, quantum time), thoâng thöôøng töø 10-100 msec ñeå thöïc thi. Sau khoaûng thôøi gian ñoù, process bò ñoaït quyeàn vaø trôû veà cuoái haøng ñôïi ready.

taêng theo thôøi gian

(cid:1) Vd:

(cid:1) Neáu coù n process trong haøng ñôïi ready vaø quantum time = q thì khoâng coù process naøo phaûi chôø ñôïi quaù (n − 1)q ñôn vò thôøi gian.

(cid:1) Hieäu suaát

(cid:1) Thôøi gian chôø ñôïi trung bình cuûa giaûi thuaät RR thöôøng

khaù lôùn nhöng thôøi gian ñaùp öùng nhoû

25

26

Khoa KTMT

Khoa KTMT

RR vôùi time quantum = 1

Ví duï Round Robin

(cid:1) Time Quantum = 20

Process Burst Time 53 P1 17 P2 68 P3 24 P4

Gantt Chart for Schedule

P1

P3

P4

P1

P2

P3

P4 P1

P3 P3

(cid:3) Thôøi gian turn-around trung bình cao hôn so vôùi SJF nhöng coù thôøi gian ñaùp öùng trung bình toát hôn. (cid:3) Öu tieân CPU-bound process

0

20

37

57

77

97 117 121 134

154 162

– Neáu q lôùn: RR ⇒ FCFS – Neáu q nhoû (q khoâng ñöôïc quaù nhoû bôûi vì phaûi toán chi phí chuyeån ngöõ caûnh)

turnaround time trung bình lôùn hôn SJF, nhöng ñaùp öùng toát hôn

27

28

Khoa KTMT

Khoa KTMT

Time quantum vaø context switch

Thời gian hoàn thành và quantum time

(cid:1) Thời gian hoàn thành trung bình (average turnaround time) không

quantum

chắc sẽ được cải thiện khi quantum lớn

Process time = 10

context switch

0

12

0

10

6

1

6

0

10

1

9

0

1

2

3

4

5

6

7

8

9

10

29

30

Khoa KTMT

Khoa KTMT

5

(cid:2) I/O-bound process thöôøng söû duïng raát ít thôøi gian cuûa CPU, sau ñoù phaûi blocked ñôïi I/O (cid:2) CPU-bound process taän duïng heát quantum time, sau ñoù quay veà ready queue ⇒ ñöôïc xeáp tröôùc caùc process bò blocked

Quantum time cho Round Robin*

Quantum vaø response time

(cid:1) Khi thực hiện process switch thì OS sẽ sử dụng CPU chứ không phải process

(cid:1) Quantum time phaûi lôùn hôn thôøi gian duøng ñeå xöû lyù clock interrupt (timer) vaø thôøi gian dispatching

(cid:1) Time slice ngắn thì đáp ứng nhanh

của người dùng (OS overhead) – Dừng thực thi, lưu tất cả thông tin, nạp thông tin của process sắp thực thi (cid:1) Performance tùy thuộc vào kích thước của quantum time (còn gọi là time slice), và hàm phụ thuộc này không đơn giản

(cid:1) Neân lôùn hôn thôøi gian töông taùc trung bình (typical interaction)

(cid:1) Time slice dài hơn thì throughput tốt hơn (do giảm phí tổn OS overhead) nhưng

– Vấn đề: có nhiều chuyển ngữ cảnh. Phí tổn sẽ cao.

31

32

Khoa KTMT

Khoa KTMT

Quantum time cho Round Robin

Round Robin

(cid:1) Quantum time và thời gian cho process switch:

thời gian đáp ứng lớn – Nếu time slice quá lớn, RR trở thành FCFS.

(cid:1) Nếu có n process trong hàng đợi ready, và quantum time là q, như vậy mỗi process sẽ lấy 1/n thời gian CPU theo từng khối có kích thước lớn nhất là q – Sẽ không có process nào chờ lâu hơn (n - 1)q đơn vị thời gian

(cid:1) RR sử dụng một giả thiết ngầm là tất cả các process đều có tầm

quan trọng ngang nhau – Không thể sử dụng RR nếu muốn các process khác nhau có độ ưu tiên khác

33

34

Khoa KTMT

Khoa KTMT

Round Robin: nhược điểm

5. Highest Response Ratio Next

(cid:1) Các process dạng CPU-bound vẫn còn được “ưu tiên”

time spent wait

time

– Nếu quantum time = 20 ms và thời gian cho process switch = 5 ms, như vậy phí tổn OS overhead chiếm 5/25 = 20% – Nếu quantum = 500 ms, thì phí tổn chỉ còn ≈ 1% (cid:2) Nhưng nếu có nhiều người sử dụng trên hệ thống và thuộc loại interactive thì sẽ thấy đáp ứng rất chậm – Tùy thuộc vào tập công việc mà lựa chọn quantum time nhau – Quantum time nên lớn trong tương quan so sánh với thời gian cho process switch – Ví dụ với 4.3 BSD UNIX, quantum time là 1 giây

=RR

+ ing expected service expected service time

(cid:1) Choïn process keá tieáp coù giaù trò RR (Response ratio) lôùn

nhaát.

(cid:1) Caùc process ngaén ñöôïc öu tieân hôn (vì service time nhoû)

35

36

Khoa KTMT

Khoa KTMT

6

– Ví dụ: (cid:2) Một I/O-bound process sử dụng CPU trong thời gian ngắn hơn quantum time và bị blocked để đợi I/O. Và (cid:2) Một CPU-bound process chạy hết time slice và lại quay trở về hàng đợi ready queue (ở phía trước các process đã bị blocked)

6. Multilevel Queue Scheduling

Multilevel Queue Scheduling*

(cid:1) Haøng ñôïi ready ñöôïc chia thaønh nhieàu haøng ñôïi rieâng

(cid:1) Ví dụ phân nhóm các quá trình

Độ ưu tiên cao nhất

bieät theo moät soá tieâu chuaån nhö – Ñaëc ñieåm vaø yeâu caàu ñònh thôøi cuûa process – Foreground (interactive) vaø background process,…

System Processes

(cid:1) Process ñöôïc gaùn coá ñònh vaøo moät haøng ñôïi, moãi haøng

ñôïi söû duïng giaûi thuaät ñònh thôøi rieâng

(cid:1) Heä ñieàu haønh caàn phaûi ñònh thôøi cho caùc haøng ñôïi.

Interactive Processes

– Fixed priority scheduling: phuïc vuï töø haøng ñôïi coù ñoä öu tieân

Batch Processes

Student Processes

– Time slice: moãi haøng ñôïi ñöôïc nhaän moät khoaûng thôøi gian chieám CPU vaø phaân phoái cho caùc process trong haøng ñôïi khoaûng thôøi gian ñoù. Ví duï: 80% cho haøng ñôïi foreground ñònh thôøi baèng RR vaø 20% cho haøng ñôïi background ñònh thôøi baèng giaûi thuaät FCFS.

Độ ưu tiên thấp nhất

37

38

Khoa KTMT

Khoa KTMT

7. Multilevel Feedback Queue

7. Haøng ñôïi phaûn hoài ña caáp Multilevel Feedback Queue

(cid:1) Ví duï: Coù 3 haøng ñôïi

(cid:1) Vaán ñeà cuûa multilevel queue

– process khoâng theå chuyeån töø haøng ñôïi naøy sang haøng ñôïi

– Q0 , duøng RR vôùi quantum 8 ms – Q1 , duøng RR vôùi quantum 16 ms – Q2 , duøng FCFS

khaùc ⇒ khaéc phuïc baèng cô cheá feedback: cho pheùp process di chuyeån moät caùch thích hôïp giöõa caùc haøng ñôïi khaùc nhau.

(cid:1) Multilevel Feedback Queue

– Phaân loaïi processes döïa treân caùc ñaëc tính veà CPU-burst – Söû duïng decision mode preemptive – Sau moät khoaûng thôøi gian naøo ñoù, caùc I/O-bound process vaø interactive process seõ ôû caùc haøng ñôïi coù ñoä öu tieân cao hôn coøn CPU-bound process seõ ôû caùc queue coù ñoä öu tieân thaáp hôn.

– Moät process ñaõ chôø quaù laâu ôû moät haøng ñôïi coù ñoä öu tieân thaáp coù theå ñöôïc chuyeån ñeán haøng ñôïi coù ñoä öu tieân cao hôn (cô cheá nieân haïn, aging).

39

40

Khoa KTMT

Khoa KTMT

So saùnh caùc giaûi thuaät

7. Multilevel Feedback Queue (tt)

(cid:1) Ñònh thôøi duøng multilevel feedback queue ñoøi hoûi phaûi

giaûi quyeát caùc vaán ñeà sau

– Soá löôïng haøng ñôïi bao nhieâu laø thích hôïp?

– Duøng giaûi thuaät ñònh thôøi naøo ôû moãi haøng ñôïi?

cao ñeán thaâp. Vaán ñeà: coù theå coù starvation.

thôøi nhö response time, hieäu suaát CPU, throughput,…

– Laøm sao ñeå xaùc ñònh thôøi ñieåm caàn chuyeån moät process ñeán haøng ñôïi cao hôn hoaëc thaáp hôn?

– Phöông phaùp ñònh löôïng so saùnh

– Khi process yeâu caàu ñöôïc xöû lyù thì ñöa vaøo haøng ñôïi

naøo laø hôïp lyù nhaát?

41

42

Khoa KTMT

Khoa KTMT

7

(cid:1) Giaûi thuaät ñònh thôøi naøo laø toát nhaát? (cid:1) Caâu traû lôøi phuï thuoäc caùc yeáu toá sau: – Taàn xuaát taûi vieäc (System workload) – Söï hoã trôï cuûa phaàn cöùng ñoái vôùi dispatcher – Söï töông quan veà troïng soá cuûa caùc tieâu chuaån ñònh

Đọc thêm

(cid:1) Policy và Mechanism (cid:1) Định thời trên hệ thống multiprocessor (cid:1) Đánh giá giải thuật định thời CPU (cid:1) Định thời trong một số hệ điều hành thông dụng

(cid:1) Nguồn: Operating System Concepts. Sixth Edition. John Wiley & Sons, Inc.

2002. Silberschatz, Galvin, Gagne

43

Khoa KTMT

8