Ch 2 process

41
บบบบบ บบบบบ 2 2 กกกกกกกกก กกกกกกกกก Process Process 1

Transcript of Ch 2 process

Page 1: Ch 2 process

บทท�� บทท�� 22

การจั�ดการ การจั�ดการ ProcessProcess

1

Page 2: Ch 2 process

2

การจัดการโปรเซส Process Management

• โปรเซส หมายถึ�ง โปรแกรมที่��ก�าลั�งเอ็�กซิ�คิ�วต์�อ็ย�

• ในขณะที่��โปรเซิสก�าลั�งเอ็�กซิ�คิ�วต์�อ็ย� น� 'นจัะม�การใช้)ที่ร�พยากร (Resource) ขอ็งระบบ เช้ น CPU, หน วยคิวามจั�า, ไฟลั�, อ็.ปกรณ�อ็�นพ.ต์/เอ็าต์�พ.ต์

• ในระบบ Multiprogramming อ็าจัประกอ็บด)วยโปรเซิสมากมาย

•OS จั�งม�หน)าที่��ในการจั�ดการโปรเซิสในระบบที่�'งหมด ไม ว าจัะเป/นการสร)าง ลับ การจั�ดเวลัา การจั�ดจั�งหวะแลัะการต์�ดต์ อ็ส0�อ็สารภายในโปรเซิส

Page 3: Ch 2 process

3

องค์�ประกอบของโปรเซส• โปรเซิสที่��สมบ�รณ�ม�อ็งคิ�ประกอ็บด�งน�'

1. ชื่��อและหมายเลขโปรเซส (Process ID)•เป/นหมายเลัขประจั�าโปรเซิสเพ0�อ็ก�าหนดลั�าด�บการเอ็�ก

ซิ�คิ�'วต์� 2. โค์�ดโปรแกรม (Program code) เป/น

โคิ)ดคิ�าส��งที่��เป/นภาษาเคิร0�อ็งที่��สามารถึเอ็�กซิ�คิ�วต์�ได)ที่�นที่� 3. ข�อม�ล (Data) เป/นข)อ็ม�ลัขอ็งโปรเซิสหน��ง หร0อ็อ็าจัใช้)ร วมก�บโปรเซิสอ็0�น ๆ ก�ได) 4. บล อกค์วบค์"มโปรเซส (Process Control Block : PCB) •เป/นเน0'อ็ที่��ขอ็งหน วยคิวามจั�าที่��ระบบปฏิ�บ�ต์�การก�าหนด

ไว)เพ0�อ็เก�บข)อ็ม�ที่��ส�าคิ�ญขอ็งโปรเซิสไว)

Page 4: Ch 2 process

4

องค์�ประกอบของโปรเซส– บล อกค์วบค์"มโปรเซส (Process Control

Block : PCB) OS จัะก�าหนดเน0'อ็ที่��บางส วนในหน วยคิวามจั�าเพ0�อ็ที่�าเป/น PCB

พอ็ยเต์อ็ร� สถึานะโปรเซิสหมายเลัขโปรเซิส

ร�จั�สเต์อ็ร�ข)อ็ม�ลัการจั�ด

เวลัาข)อ็ม�ลัหน วย

คิวามจั�าข)อ็ม�ลัแอ็�กเคิาต์�

ข)อ็ม�ลัสถึานะ I/O

:

Page 5: Ch 2 process

(Process Control Block : PCB)

41. พอยเตอร�(Pointer) ส�าหร�บช้�'ต์�าแหน งขอ็งโปรเซิสที่��อ็ย� ในหน วยคิวามจั�า แลัะต์�าแหน งขอ็งที่ร�พยากรที่��โปรเซิสคิรอ็บคิรอ็งอ็ย�

42 สถานะของโปรเซส(Process Status) แสดงสถึานะขอ็งโปรเซิสที่��เป/นอ็ย� ในป6จัจั.บ�น

5

Page 6: Ch 2 process

(Process Control Block : PCB)

43. หมายเลขโปรเซส(Process ID) เป/นหมายเลัขประจั�าต์�วขอ็งโปรเซิส

44. ตวนบจั'านวน(Program Counter) เป/นต์�วน�บที่��แสดงที่��อ็ย� ขอ็งคิ�าส��งต์ อ็ไปที่��จัะถึ�กประมวลัผลั

6

Page 7: Ch 2 process

(Process Control Block : PCB)

o 45. ร�จั(สเตอร�(Register) ที่�าหน)าที่��เก�บข)อ็ม�ลัสถึานะระบบเม0�อ็ม�อ็�นเที่อ็ร�ร�พเก�ดข�'นเพ0�อ็ที่�าให)โปรแกรมสามารถึที่�างานต์ อ็ไปได)เม0�อ็กลั�บมาที่�างานอ็�กคิร�'ง ร�จั�สเต์อ็ร�จัะม�คิ าแลัะประเภที่ที่��เปลั��ยนแปลังได)ข�'นอ็ย� ก�บสถึาป6ต์ยกรรมขอ็งคิอ็มพ�วเต์อ็ร� ประเภที่ขอ็งร�จั�สเต์อ็ร�คิ0อ็ Accumulator, Index, Stack Pointer แลัะร�จั�สเต์อ็ร�ที่��วไป

7

Page 8: Ch 2 process

(Process Control Block : PCB)o 46. ข�อม�ลการจัดการเวลาซ�พ�ย�(CPU Scheduling Information) เป/นข)อ็ม�ลัที่��ประกอ็บด)วยลั�าด�บคิวามส�าคิ�ญขอ็งโปรเซิสที่��ถึ�กก�าหนดโดยระบบปฏิ�บ�ต์�การเม0�อ็โปรเซิสถึ�กสร)างข�'นมา สามารถึเปลั��ยนคิ าไปได) ซิ��งโปรเซิสใดที่��ม�คิวามส�าคิ�ญมากระบบปฏิ�บ�ต์�การจัะให)ส�ที่ธิ�มากกว าโปรเซิสอ็0�น เช้ นให)เวลัาซิ�พ�ย�นานกว า เป/นต์)น

8

Page 9: Ch 2 process

(Process Control Block : PCB)o 47. ข�อม�ลการจัดการหน)วยค์วามจั'า(Memory Management Information) เป/นข)อ็ม�ลัเก��ยวก�บหน วยคิวามจั�าที่��ระบบปฏิ�บ�ต์�การก�าหนดไว) เช้ นขนาดหน วยคิวามจั�า, คิ าขอ็งร�จั�สเต์อ็ร�, Page table แลัะ Segment table เป/นต์)น

9

Page 10: Ch 2 process

(Process Control Block : PCB) 48. ข�อม�ลแอ กเค์าต�(Account Information) เป/นข)อ็ม�ลัที่��อ็าจัประกอ็บด)วยจั�านวน CPU, เวลัาที่��ก�าหนด, หมายเลัขแอ็�กเคิาต์�, หมายเลัขโปรเซิส แลัะอ็0�นๆ

49 ข�อม�ลสถานะอ(นพ"ต/เอาต�พ"ต(I/O Status Information) เป/นข)อ็ม�ลัแสดงรายการขอ็งอ็.ปกรณ�อ็�นพ.ต์/เอ็าต์�พ.ต์ที่��โปรเซิสน�'ใช้) เป/นต์)น

10

Page 11: Ch 2 process

11

องค์�ประกอบของโปรเซส (ต)อ)

•โปรเซิสที่��สมบ�รณ�ม�อ็งคิ�ประกอ็บด�งน�' 5. PSW (Program Status Word)

เป/นต์�วคิวบคิ.มลั�าด�บการ เอ็�กซิ�คิ�วต์�คิ�าส��งขอ็งโปรเซิส แลัะเก�บข)อ็ม�ลัเก��ยวก�บสถึานะขอ็งโปรเซิส ที่��อ็ย� ขอ็งคิ�าส��งที่��จัะเอ็�กซิ�คิ�วต์�ต์ อ็ไป

6.ค์"ณสมบต(ของโปรเซส• ลั�าด�บคิวามส�าคิ�ญขอ็งโปรเซิส (Priority)•อ็�านาจัหน)าที่��ขอ็งโปรเซิส (Authority)•คิ.ณสมบ�ต์�อ็0�น ๆ

Page 12: Ch 2 process

ค์"ณสมบต(ของโปรเซสล'าดบค์วามส'าค์ญของโปรเซส (Priority)

โดยเม0�อ็โปรเซิสถึ�กสร)างข�'นมา ลั�าด�บคิวามส�าคิ�ญขอ็งโปรเซิสจัะถึ�กก�าหนดโดยระบบปฏิ�บ�ต์�ที่�นที่� สามารถึเปลั��ยนคิ าไปได) ซิ��งโปรเซิสใดที่��ม�คิวามส�าคิ�ญมากระบบปฏิ�บ�ต์�การจัะให)ส�ที่ธิ�มากกว าโปรเซิสอ็0�น

อ'านาจัหน�าท��ของโปรเซส (Authority) เป/นการบอ็กอ็�านาจัหน)าที่��ขอ็งโปรเซิสน�'นว าสามารถึที่�าอ็ะไรได)บ)าง ใช้)อ็.ปกรณ�อ็ะไรได)บ)าง เป/นต์)น

ค์"ณสมบต(อ��น ที่��ระบบปฏิ�บ�ต์�การก�าหนดให)ม�12

Page 13: Ch 2 process

13

สถานะของโปรเซส•ในขณะที่��เอ็�กซิ�คิ�วต์�โปรเซิสอ็ย� น� 'น โปรเซิส

จัะม�การเปลั��ยนแปลังสถึานะอ็ย� ต์ลัอ็ดเวลัาสามารถึแบ งสถึานะด�งน�'–สถานะเร(�มต�น (New) เป/นสถึานะที่��เร��มต์)น

สร)างโปรเซิส–สถานะพร�อม (Ready) เป/นสถึานะที่��

พร)อ็มจัะคิรอ็บคิรอ็งซิ�พ�ย� แต์ ย�งไม ม�การร�น–สถานะรน (Running) เป/นสถึานะที่��โปร

เซิสเข)าคิรอ็บคิรอ็งซิ�พ�ย�แลัะม�การเอ็�กซิ�คิ�วต์�คิ�าส��งในโปรแกรมขอ็งโปรเซิส

Page 14: Ch 2 process

14

สถานะของโปรเซส• สถานะรอ (Wait) เป/นสถึานะที่��โปรเซิสก�า

ลั�งรอ็เหต์.การณ�บางอ็ย าง เช้ น การรอ็ ส�ญญาณ การจั�ดการอ็�นพ.ต์/เอ็าต์�พ.ต์ด�ไวซิ�

• สถานะบล อก (Block) เป/นสถึานะที่��โปรเซิสต์)อ็งการใช้)อ็.ปกรณ�อ็�นพ.ต์/ เอ็าต์�พ.ต์ หร0อ็เก�ด

อ็�นเที่อ็ร�ร�พต์�ระหว างที่��ร �นโปรเซิส ซิ��งจัะต์)อ็งรอ็ให)ม�การจั�ดการอ็.ปกรณ�อ็�นพ.ต์/ เอ็าต์�พ.ต์หร0อ็จั�ดการอ็�นเที่อ็ร�ร�พต์�ให)เร�ยบร)อ็ยก อ็นจัะกลั�บไปสถึานะร�นได)ต์ อ็ไป

• สถานะส(,นส"ด (Terminate) เป/นสถึานะที่��หย.ดน��งอ็�นเก�ดจัากโปรเซิสถึ�กเอ็�กซิ�คิ�วต์�หมดที่.กคิ�าส��งในโปรแกรมแลั)ว

Page 15: Ch 2 process

15

สถานะของโปรเซส

เร��มต์)นnew

ร�นRunning

บลั�อ็กBlock

พร)อ็มReady

รอ็Wait

ส�'นส.ดTerminate

ยอ็มร�บให)ที่�างาน

อ็�นพ.ต์/เอ็าที่�พ.ต์หร0อ็อ็�เวนต์�เสร�จัแลั)ว

รอ็อ็�นพ.ต์/เอ็าต์�พ.ต์หร0อ็อ็�เวนต์�

ที่�างานเสร�จัส�'นแลั)วอ็�นเที่อ็ร�ร�พต์�

Scheduler dispatch

Page 16: Ch 2 process

16

ข,นตอนการเปล��ยนสถานะของโปรเซส• เม0�อ็ผ�)ใช้)ต์)อ็งการส งงานให)เคิร0�อ็งคิอ็มพ�วเต์อ็ร�ที่�างาน

OS จัะเป/นผ�)ที่��ร �บที่ราบคิวามต์)อ็งการน�' แลัะจัะเต์ร�ยมสร)างโปรเซิสให)ก�บงานใหม ที่��ถึ�กส งเข)ามา

• OS จัะต์)อ็งพ�จัารณาว าเน0'อ็ที่��หน วยคิวามจั�าหลั�กขอ็งระบบม�เพ�ยงพอ็หร0อ็ไม – ถึ)าเพ�ยงพอ็ก�จัะที่�าการสร)างโปรเซิสใหม โดยเก�บไว)ในหน วย

คิวามจั�าหลั�ก– ถึ)าไม เพ�ยงพอ็ก�จัะต์)อ็งรอ็จันกว าจัะม�โปรเซิสอ็0�นจับลังแลัะม�

เน0'อ็ที่��ในหน วยคิวามจั�าเหลั0อ็มากพอ็• เม0�อ็โปรเซิสถึ�กสร)างข�'นมาใหม จัะอ็ย� ในสถึานะพร)อ็ม

ก อ็น ย�งไม สามารถึเข)าไปใช้)งาน CPU ได)

Page 17: Ch 2 process

17

ข,นตอนการเปล��ยนสถานะของโปรเซส• สาเหต์.ที่��โปรเซิสไม สามารถึเข)าใช้)งาน CPU ได)ที่�นที่�

– เน0�อ็งจัากระบบคิอ็มพ�วเต์อ็ร�ในป6จัจั.บ�นเป/นระบบที่��ม�ผ�)ใช้)หลัายคินในเวลัาเด�ยวก�น

– ที่�าให)ม�โปรเซิสมากมายเก�ดข�'น ซิ��งโปรเซิสเหลั าน�'ต์)อ็งการใช้) CPU ที่�'งส�'น

– ต์)อ็งม�การจั�ดคิ�วแลัะแจั)งสถึานะพร)อ็มให)ก�บโปรเซิสไว)ก อ็น

– เม0�อ็โปรเซิสที่��ใช้)งาน CPU ที่�างานเสร�จัส�'นหร0อ็ถึ�กยกเลั�ก ที่�าให) CPU จัะว าง โปรเซิสต์ อ็ไปที่��อ็ย� ในคิ�วก�จัะเลั0�อ็นเข)าไปใช้) CPU (เปลั��ยนสถึานะจัากพร)อ็มเป/นสถึานะร�น )

– เหต์.การณ�ที่�'งหมดผ�)ที่��ที่�าหน)าที่��คิวบคิ.มการที่�างานคิ0อ็ OS

Page 18: Ch 2 process

18

ข,นตอนการเปล��ยนสถานะของโปรเซส

เร��มต์)น

ร�นพร)อ็ม

ส�'นส.ด

Page 19: Ch 2 process

19

ข,นตอนการเปล��ยนสถานะของโปรเซส

• กรณ�ที่��โปรเซิสใดใช้)เวลัาร�นเป/นเวลัานานก�จัะคิรอ็บคิรอ็งซิ�พ�ย�เป/นเวลัานาน

• ที่�าให)โปรเซิสอ็0�น ๆ เส�ยเวลัาในการรอ็นานเก�นไป• เพ0�อ็แก)ป6ญหาน�' OS จัะก�าหนดเวลัาในการอ็ย� ใน

สถึานะการร�นขอ็งที่.กโปรเซิสไว) เร�ยกว า “เวลาค์วนตม (Quantum time)”

• ถึ)าโปรเซิสใดใช้)เวลัาคิรอ็บคิรอ็ง CPU เก�นกว าเวลัาคิว�นต์�ม ระบบปฏิ�บ�ต์�การจัะย)ายโปรเซิสน�'นไปต์ อ็คิ�วใหม แลัะเปลั��ยนเป/นสถึานะพร)อ็ม แลัะน�าโปรเซิสที่��อ็ย� ในคิ�วต์ อ็ไปมาร�น

Page 20: Ch 2 process

20

ข,นตอนการเปล��ยนสถานะของโปรเซส

เร��มต์)น

ร�นพร)อ็ม

ส�'นส.ด

• ภายในระยะเวลัาคิว�นต์�ม ถึ)าโปรเซิสจับลัง โปรเซิสก�จัะอ็อ็กจัากระบบ ที่ร�พยากรต์ าง ๆ ที่��โปรเซิสคิรอ็บคิรอ็งก�จัะถึ�กส งคิ0นให)ก�บระบบ

เก�นเวลัาคิวอ็นต์�ม

Page 21: Ch 2 process

21

ข,นตอนการเปล��ยนสถานะของโปรเซส

• กรณ�ที่��โปรเซิสก�าลั�งอ็ย� ในสถึานะร�น ม�คิวามต์)อ็งการใช้)อ็.ปกรณ�อ็�นพ.ต์/เอ็าที่�พ.ต์ หร0อ็อ็าจัจัะเก�ดอ็�นเที่อ็ร�ร�พต์� (Interrupt) ข�'น

• OS ก�จัะย)ายโปรเซิสจัากสถึานะร�นไปอ็ย� ในสถึานะบลั�อ็ก แลัะด�งโปรเซิสที่��อ็ย� ในคิ�วต์ อ็ไปมาร�น

เร��มต์)น

ร�นพร)อ็ม

ส�'นส.ดบล อก

Page 22: Ch 2 process

22

ข,นตอนการเปล��ยนสถานะของโปรเซส

• กรณ�ที่��ระบบม�งานมากเก�นไป OS ไม สามารถึต์อ็บสนอ็งการที่�างานขอ็งโปรเซิสที่�'งหมดได)

• OS จัะน�าเอ็าโปรเซิสบางโปรเซิสไปเก�บไว)ในสถึานะรอ็ช้��วคิราวก อ็น รอ็จันจั�านวนโปรเซิสในระบบลัดลังมาอ็ย� ในระด�บปกต์� จั�งคิ อ็ยย)ายโปรเซิสเหลั าน�'นกลั�บมาที่�างาน

ร�นพร)อ็ม

รอ็บลั�อ็ก

Page 23: Ch 2 process

23

ล'าดบชื่,นของโปรเซส (Process Hierarchy)

• เม0�อ็ผ�)ใช้)ส งงานให)ก�บระบบร�น OS จัะที่�าการสร)างโปรเซิสส�าหร�บงานน�'นข�'นมา

• การที่�างานขอ็ง OS ก�ถึ0อ็ว าเป/นงานขอ็งระบบด�งน�'นจัะม�การสร)างโปรเซิสข�'นเหม0อ็นก�น

• นอ็กจัากน�'นโปรเซิสที่��ถึ�กสร)างข�'นก�สามารถึสร)างโปรเซิสย อ็ยได)

• โปรเซิสที่��ให)ก�าเน�ด เราเร�ยกว าโปรเซิสแม (parent process)

• โปรเซิสย อ็ยที่��เก�ดข�'น เราเร�ยกว าโปรเซิสลั�ก (child process)

Page 24: Ch 2 process

24

ล'าดบชื่,นของโปรเซส (Process Hierarchy)

• โดยที่��วไป เม0�อ็โปรเซิสแม จับลัง โปรเซิสต์ าง ๆ ที่��อ็ย� ภายใต์)ต์�วม�นก�จัะจับลังต์ามไปด)วย

• แต์ OS บางต์�วยอ็มให)โปรเซิสแม จับลัง โดยที่��โปรเซิสลั�กไม ต์)อ็งจับลังต์ามไปด)วย ในกรณ�น�'โปรเซิสลั�กก�จัะไม ม�โปรเซิสแม

A

B C D

E F G H

Page 25: Ch 2 process

25

ล'าดบชื่,นของโปรเซส (Process Hierarchy)

• จัากต์�วอ็ย างในร�ป โปรเซิส A จัะม�โปรเซิสลั�ก 3โปรเซิสคิ0อ็ B,C แลัะ D

• ถึ�งแม)ว าโปรเซิส A เป/นโปรเซิสแม ขอ็งโปรเซิส B,C แลัะ D แต์ โปรเซิส A ไม ได)เป/นผ�)ที่��สร)างโปรเซิส B,C แลัะ D

• ผ�)ที่��สร)างโปรเซิสที่�'งหมดได)แก OS ซิ��ง OS จัะม�โปรเซิสหน��งที่�าหน)าที่��สร)างแลัะย.ต์�โปรเซิส คิ0อ็ “ต์�วจั�ดคิ�วระยะยาว”

• คิ�าถึาม– โปรเซิส F,G,H น�'นถึ�กสร)างโดยโปรเซิส D ใช้ หร0อ็ไม – ใคิรเป/นผ�)ที่��สร)างโปรเซิส A

Page 26: Ch 2 process

26

โปรเซสส��อประสาน (Cooperating Processes)

• โปรเซิสที่��เอ็�กซิ�คิ�วต์�ในระบบน�'นม� 2 แบบ– โปรเซิสที่��เป/นอ็�สระ ( Independent Processes)

หมายถึ�งโปรเซิสที่��ไม ม�ผลักระที่บหร0อ็ไม ได)ร�บผลักระที่บจัากโปรเซิสอ็0�น

– โปรเซิสส0�อ็ประสาน (Cooperating Processes) หมายถึ�งโปรเซิสที่��ม�ผลักระที่บหร0อ็ได)ร�บผลักระที่บจัากโปรเซิสอ็0�น

• เหต์.ผลัที่��ที่�าให)เก�ดการประสานงานระหว างโปรเซิส– ต์)อ็งการใช้)ข)อ็ม�ลัร วมก�น– ต์)อ็งการเพ��มคิวามเร�วในการคิ�านวณ

Page 27: Ch 2 process

27

การต(ดต)อระหว)างโปรเซส (Interprocess communication)

• เม0�อ็โปรเซิส A ต์)อ็งการต์�ดต์ อ็ก�บโปรเซิส B – โปรเซิส A แลัะ B จัะต์)อ็งจัอ็งเน0'อ็ที่��ในหน วยคิวามจั�า

ในส วนที่��ว างเอ็าไว)– ที่�'ง 2 โปรเซิสต์)อ็งร� )ว าหน วยคิวามจั�าร วมน�'อ็ย� ที่��ใด– เม0�อ็โปรเซิส A ส งข)อ็ม�ลัให)โปรเซิส B ข)อ็ม�ลัจัะถึ�กส ง

ไปไว)ในหน วยคิวามจั�าร วม

หน วยคิวามจั�าร วม

โปรเซิส A

โปรเซิส B

ส งข)อ็ม�ลั ร�บข)อ็ม�ลั

ร�บข)อ็ม�ลั ส งข)อ็ม�ลั

Page 28: Ch 2 process

28

การต(ดต)อระหว)างโปรเซส (Interprocess communication)

• เม0�อ็โปรเซิสต์)อ็งการใช้)ข)อ็ม�ลัขอ็งโปรเซิสอ็0�น โปรเซิสที่��ถึ�กร)อ็งขอ็จัะส งข)อ็ม�ลัไปให) การที่��โปรเซิสต์ าง ๆ ม�การต์�ดต์ อ็ก�นเช้ นน�' เราเร�ยกว า การต(ดต)อระหว)างโปรเซส

• โดยที่��วไปการต์�ดต์ อ็ระหว างโปรเซิสน�'นจัะใช้)ว�ธิ�การคิ0อ็ การใชื่�หน)วยค์วามจั'าร)วม (Shared memory)

• กลัไกการร�บส งข)อ็ม�ลัผ านที่างหน วยคิวามจั�าร วมน�' OS จัะไม ช้ วยจั�ดการให)โปรเซิสที่��ต์)อ็งการต์�ดต์ อ็ก�นจัะต์)อ็งจั�ดการเอ็าเอ็ง

Page 29: Ch 2 process

29

การต(ดต)อระหว)างโปรเซส (Interprocess communication)

• เม0�อ็โปรเซิส A ต์)อ็งการต์�ดต์ อ็ก�บโปรเซิส B – โปรเซิส B จัะต์รวจัสอ็บได)เอ็งว าโปรเซิส A น�า

ข)อ็ม�ลัไปวางไว)แลั)วหร0อ็ย�ง– ถึ)าโปรเซิส A ย�งไม ส งข)อ็ม�ลัมา โปรเซิส B ก�จัะ

ย�งไม ด�งเอ็าข)อ็ม�ลัมาใช้)– นอ็กจัากน�'นโปรเซิส B ย�งต์)อ็งสามารถึต์รวจั

สอ็บได)ว าข)อ็ม�ลัที่��อ็ย� ในหน วยคิวามจั�าร วมน�'นเป/นข)อ็ม�ลัเก าที่��เคิยน�ามาใช้)แลั)วหร0อ็ย�ง

– ส�าหร�บโปรเซิส A ถึ)าจัะส งข)อ็ม�ลัช้.ดใหม ให) โปรเซิส A จัะต์)อ็งต์รวจัสอ็บก อ็นว าข)อ็ม�ลัช้.ดเด�มที่��อ็ย� ในหน วยคิวามจั�าร วมน�'นถึ�กน�าไปใช้)หร0อ็ย�ง ถึ)าถึ�กน�าไปใช้)แลั)วก�จัะน�าข)อ็ม�ลัช้.ดใหม ที่�บลังไป

Page 30: Ch 2 process

30

การต(ดต)อระหว)างโปรเซส (Interprocess communication)

• นอ็กจัากการใช้)หน วยคิวามจั�าร วมแลั)วย�งม�ว�ธิ�อ็0�นที่��ม�คิวามสะดวกมากกว าแลัะเป/นมาต์รฐาน คิ0อ็การใช้)พอ็ร�ที่ (Port)

• พอร�ท คิ0อ็พ0'นที่��ในหน วยคิวามจั�าส วนหน��งที่�� OS จั�ดไว)เพ0�อ็ให)โปรเซิสต์ าง ๆ ใช้)ร วมก�นได)

• โดย OS จัะที่�าหน)าที่��เป/นผ�)ให)จั�งหวะในการร�บส งข)อ็ม�ลัให)ก�บแต์ ลัะโปรเซิส เช้ น– ถึ)าโปรเซิส A ต์)อ็งการใช้)ข)อ็ม�ลัจัากโปรเซิส B OS จัะ

เป/นผ�)คิ)นหาข)อ็ม�ลั B จัากพอ็ร�ที่ ถึ)าพบก�จัะให)โปรเซิส A ร�บข)อ็ม�ลัไป แต์ ถึ)าไม พบก�จัะให)โปรเซิสน�'นหย.ดรอ็จันกว าจัะม�ข)อ็ม�ลัถึ�กส งมาไว)ที่��พอ็ร�ที่

Page 31: Ch 2 process

31

โค์รงสร�างของพอร�ท• พอ็ร�ที่ในป6จัจั.บ�นม� 3 แบบ

– พอร�ทแบบค์(ว โคิรงสร)างขอ็งพอ็ร�ที่แบบน�'ข)อ็ม�ลัช้.ด ใดที่��ถึ�กส งเข)าพอ็ร�ที่ก อ็นจัะถึ�กด�งอ็อ็กไปก อ็น ข)อ็ม�ลั

ช้.ดใดที่��ถึ�กส งเข)าพอ็ร�ที่ที่�หลั�งจัะถึ�กด�งอ็อ็กไปที่�หลั�ง

– พอร�ทแบบไปป/ ม�ลั�กษณะการที่�างานเหม0อ็นพอ็ร�ที่ แบบคิ�ว แต์ ไปป:ม�คิวามยาวขอ็งพอ็ร�ที่ไม จั�าก�ด ใน

ขณะที่��พอ็ร�ที่แบบคิ�วม�คิวามยาวขอ็งพอ็ร�ที่คิงที่��– พอร�ทแบบแสต0ก ม�กลัไกการที่�างานโดยข)อ็ม�ลัช้.ดใด

ที่��ถึ�กส งเข)าพอ็ร�ที่ก อ็นจัะถึ�กด�งอ็อ็กไปใช้)ที่�หลั�ง ก อ็นข)อ็ม�ลัช้.ดใดที่��ถึ�กส งเข)าพอ็ร�ที่ที่�หลั�งจัะถึ�กด�งอ็อ็กไปใช้)ก อ็น

ส งข)อ็ม�ลัเข)าพอ็ร�ที่ข)อ็ม�ลัอ็อ็กจัากพอ็ร�ที่

Page 32: Ch 2 process

32

การเข�าจังหวะของโปรเซส (Process Synchronization)

• ในการใช้)ที่ร�พยากรโดยเฉพาะอ็ย างย��งข)อ็ม�ลัอ็าจัก อ็ให)เก�ดป6ญหาที่��ที่�าให)การที่�างานไม ถึ�กต์)อ็ง

• ต์�วอ็ย าง– เร��มต์)นคิ า X = 10– โปรเซิสที่�� 1 ม�การเพ��มคิ า X จัากเด�ม 10– โปรเซิสที่�� 2 ม�การลับคิ า X ลัง 10– ผลัจัากการที่�างานจัะเป/นด�งน�' (10+10-10)

= 10

Page 33: Ch 2 process

33

การเข�าจังหวะของโปรเซส (Process Synchronization)

10

10X=X+

20

-10

10

โปรเซิสที่�� 1 โปรเซิสที่�� 2

โปรเซิสที่�� 1 ที่�างานเสร�จัก อ็นโปรเซิสที่�� 2

X=10X=20 X=20 X=10

Page 34: Ch 2 process

34

การเข�าจังหวะของโปรเซส (Process Synchronization)

10

-10

0

10X=X+

10

โปรเซิสที่�� 2 โปรเซิสที่�� 1

โปรเซิสที่�� 2 ที่�างานเสร�จัก อ็นโปรเซิสที่�� 1

X=10X=0 X=0 X=10

Page 35: Ch 2 process

35

การเข�าจังหวะของโปรเซส (Process Synchronization)

10X=X+

10

-10

0 หร0อ็ 20โปรเซิสที่�� 1

โปรเซิสที่�� 2

โปรเซิสที่�� 1 แลัะโปรเซิสที่�� 2 ที่�างานใกลั)เคิ�ยงก�น

X=10

X=10 X=0

X=20

Page 36: Ch 2 process

36

การเข�าจังหวะของโปรเซส (Process Synchronization)

• จัากร�ปจัะเห�นว าถึ)าโปรเซิสที่�� 1 แลัะ 2 ม�การที่�างานที่��เป/นอ็�สระอ็าจัที่�าให)ผลัลั�พธิ�เก�ดคิวามผ�ดพลัาดข�'น

• ด�งน�'นเพ0�อ็ป=อ็งก�นคิวามผ�ดพลัาดที่��เก�ดข�'น จัะต์)อ็งม�การจั�ดจั�งหวะการที่�างานให)ก�บแต์ ลัะโปรเซิสส�าหร�บการใช้)ข)อ็ม�ลัร วมก�น

• จัากต์�วอ็ย างคิวรก�าหนดว าเม0�อ็โปรเซิสใดได)เข)ามาคิรอ็บคิรอ็งข)อ็ม�ลั โปรเซิสอ็0�น ๆ ที่��ต์)อ็งการใช้)ข)อ็ม�ลัต์�วเด�ยวก�นจัะต์)อ็งหย.ดรอ็ให)โปรเซิสแรกใช้)งานให)เสร�จัก อ็น

Page 37: Ch 2 process

37

การเข�าจังหวะของโปรเซส (Process Synchronization)

• การป=อ็งก�นโปรเซิสอ็0�น ๆ เข)ามาใช้)ที่ร�พยากรซิ��งม�โปรเซิสหน��งคิรอ็บคิรอ็งอ็ย� แลั)วเร�ยกว า การไม)เก(ดร)วม (Mutual exclusion)

• ในช้ วงเวลัาที่��โปรเซิสเข)าไปคิรอ็บคิรอ็งที่ร�พยากรแบบการไม เก�ดร วมน�'เร�ยกว า โปรเซิสน�'นอ็ย� ในย านว�กฤต์ (Critical region หร�อ Critical Section)

Page 38: Ch 2 process

38

ป1ญหาการท'างานของโปรเซส•ป1ญหาท�� 1 : การอดตาย (Starvation) หร�อ การเล��อนไหลไปอย)างไม)ม�วนส(,นส"ด (Infinite postponement)–ถึ)าโปรเซิส A แลัะ B ต์)อ็งการใช้)เคิร0�อ็งพ�มพ�

พร)อ็มก�น โปรเซิสที่��จัะได)ใช้)ก อ็นก�คิ0อ็โปรเซิสที่��ม�ลั�าด�บคิวามส�าคิ�ญส�งกว า

– เช้ น ถึ)า โปรเซิส B ม�ลั�าด�บคิวามส�าคิ�ญส�งกว า A โปรเซิส B ก�จัะได)ใช้)เคิร0�อ็งพ�มพ� ส วนโปรเซิส A ต์)อ็งรอ็

Page 39: Ch 2 process

39

ป1ญหาการท'างานของโปรเซส–ในขณะที่��โปรเซิส A ก�าลั�งรอ็ ปรากฏิว าม�

โปรเซิสอ็0�น ๆ ที่��ม�ลั�าด�บคิวามส�าคิ�ญส�งกว าโปรเซิส A ต์)อ็งการใช้)เคิร0�อ็งพ�มพ�

–ส��งที่��เก�ดข�'นก�บโปรเซิส A คิ0อ็ โปรเซิส A จัะถึ�กโปรเซิสอ็0�นแซิงต์ลัอ็ดเวลัา เราเร�ยกเหต์.การณ�ที่��เก�ดข�'นน�'ว า “การอดตายของโปรเซส (Starvation) หร�อ การเล��อนไหลไปอย)างไม)ม�วนส(,นส"ด (Infinite postponement)

Page 40: Ch 2 process

40

ป1ญหาการท'างานของโปรเซส• ป1ญหาท�� 2 : วงจัรอบ หร�อ การต(ดตาย

(Deadlock)ที่ร�พยากร A

ที่ร�พยากร B

โปรเซิส 1 โปรเซิส 2

คิรอ็บคิรอ็ง

คิรอ็บคิรอ็งต์)อ็งการ

ต์)อ็งการ

Page 41: Ch 2 process

แบบฝึ3กหดบทท�� 21 . สถานะของโปรเซสม�อะไรบ�าง จังอธิ(บาย2. เวลา Quantum Time ค์�ออะไร3. ป1ญหา DeadLock เก(ดข5,นได�อย)างไร4. สถานะ Block เก(ดข5,นได�อย)างไร5. การต(ดต)อกนระหว)าง Process เป6นหน�าท��ของโค์ร6. พอร�ท ม�ก��แบบอะไรบ�าง7. จังยกตวอย)าง พอร�ทแบบสเต ก8. Mutual exclusion เก(ดข5,นได�อย)างไร9. ป1ญหาการอดตาย เก(ดข5,นได�อย)างไร1 0 .องค์�ประกอบของโปรเซส ม�อะไรบ�าง

41