17
บทที่7 ระบบปฏิบัติการ: 887130 887130 Platform Technology Platform Technology คณะวิทยาการสารสนเทศ มหาวิทยาลัยบูรพา Ver. 1.0 ระบบปฏิบัติการ: กระบวนการ (Process)

บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

บทที่ 7ระบบปฏิบัติการ:

887130 887130 Platform TechnologyPlatform Technology

คณะวิทยาการสารสนเทศ มหาวิทยาลัยบูรพา

Ver. 1.0

ระบบปฏิบัติการ: กระบวนการ (Process)

Page 2: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

� กระบวนการ (Processes)� เส้นงาน (Threads)� ใบงาน

สารบัญ

2 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

Page 3: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

Page 4: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

� กระบวนการ คือ โปรแกรมที่กําลังทํางานอยู่� การสื่อสารนั้นจะเกิดขึ้นระหว่างกระบวนการกับกระบวนการ� เมื่อมีการเปิดโปรแกรมทํางาน ระบบปฏิบัติการจะสร้าง

กระบวนการขึ้นมาใหม่ทุกครั้ง

4 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

กระบวนการขึ้นมาใหม่ทุกครั้ง� โดยที่ระบบปฏิบัติการจะควบคุมกระบวนการโดยใช้ ตาราง

ควบคุม ที่เรียกว่า Process Control Block (PCB) ซึ่งในนั้นจะมีข้อมูลต่างๆ เช่น ตัวนับของโปรแกรม, รีจิสเตอร์, ลําดับความสําคัญ, สิทธิ, แฟ้มเอกสารที่เปิด ฯลฯ

Page 5: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

5 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

Page 6: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

� ในขณะหนึ่ง ๆ จะมีเพียง 1 กระบวนการเท่านั้นที่กําลังทํางานอยู่� แต่อาจจะมีหลายกระบวนการที่อยู่ในสถานะพร้อม (ready)

6 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

แต่อาจจะมีหลายกระบวนการที่อยู่ในสถานะพร้อม (ready) หรือ รอคอย (waiting)

Page 7: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

7 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

Page 8: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

� กระบวนการแต่ละกระบวนการจะทํางานอยู่ในช่วงที่อยู่ของตนเอง ไม่ก้าวก่ายซึ่งกันและกัน

� นอกจากนั้นแล้ว ยังมีการแยกระหว่าง user mode กับkernel mode เพื่อความปลอดภัย

8 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

kernel mode เพื่อความปลอดภัย� ในการสร้าง, จัดตารางเวลา และการสื่อสารกันโดยใช้

การจัดการช่วงที่อยู่นั้น มีความยุ่งยากและสิ้นเปลืองมาก

� วิธีแก้คือ เส้นงาน (Threads)

Page 9: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

� เส้นงาน คือ การทํางานในส่วนหนึ่งของทั้งโปรแกรม (เป็นส่วนหนึ่งของกระบวนการ)� หมายความว่า ในหนึ่งกระบวนการนั้น สามารถมีหลาย ๆ

เส้นงาน ที่ทํางานพร้อมกันได้

9 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

เส้นงาน ที่ทํางานพร้อมกันได้� เส้นงานนั้น จะมีแค่ข้อมูลบอกสถานภาพของ CPU เท่านั้น

เช่น register, stack pointer� ข้อมูลส่วนอื่นๆ เช่น แฟ้มเอกสารที่เปิด, สิทธิ ฯลฯ นั้น จะ

ถูกจัดการร่วมกันสําหรับกระบวนการ

Page 10: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

� เส้นงานจึงสามารถเข้าถึงทรัพยากรของเส้นงานอื่น ๆ ได้ � ซึ่งในการนี้ สําคัญคือ การประสานงานกันของเส้นงานนั้น ผู้เขียน

โปรแกรมจะต้องทําเอง� ข้อดี

10 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

� ข้อดี� ทําให้การทํางานในระบบประมวลผลแบบกระจายมีประสิทธิภาพ

มากขึ้น� การใช้ system calls มีความสะดวกขึ้น

� ข้อเสีย� มีความยุ่งยากในการเขียนโปรแกรมพอสมควร

Page 11: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

� เปรียบเทียบระหว่าง กระบวนการ กับ เส้นงาน

11 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

(a) ก���ก�� (b) ��������� A. Tanenbaum: Modern Operating Systems 2nd ed.

Page 12: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

� การทํางานของเส้นงาน� แยกกันทํางานตามที่ได้ถูกโปรแกรมเอาไว้

12 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

Thread 1

Thread 2

Thread 3

����� A. Tanenbaum: Modern Operating Systems 2nd ed.

Page 13: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

� การใช้เส้นงานในระบบเดี่ยว� มีการใช้ thread packet ในการสร้าง, ทําลาย และ

ประสานเวลาโดยใช ้Mutexes

13 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

� สร้างได้ทั้งใน user space และ kernel space ซึ่งใน kernel space จะเรียกว่า กระบวนการรุ่นน้ําหนักเบา (Lightweight Process: LWP)

� มีการใช้งานร่วมกันของ thread และ LWP

Page 14: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

� การใช้เส้นงานในระบบเดี่ยว

14 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

����� A. Tanenbaum: Modern Distributed Systems 2nd ed.

Page 15: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

� เส้นงาน กับ LWP� เมื่อมีการใช้ system calls� ข้อมูลและ stack ของ kernel จะถูกกําหนดขึ้น� LWP จะถูกเชื่อมเข้ากับเส้นงานโดยใช้ตารางเส้นงาน

15 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

� LWP จะถูกเชื่อมเข้ากับเส้นงานโดยใช้ตารางเส้นงาน � การประสานงานนี้ จะใช้ mutex (mutual exclusion) เป็นตัว

ช่วย� เมื่อ thread เรียกใช้ system calls� LWP ที่เกี่ยวข้องจะถูกเรียกใช้งาน� ระบบปฏิบัติการสามารถที่จะเปลี่ยน LWP ได้ ซึ่งจะเปลี่ยน

thread ได้ด้วย

Page 16: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

� เส้นงาน กับ LWP� เมื่อมีการใช้ system calls� ข้อมูลและ stack ของ kernel จะถูกกําหนดขึ้น� LWP จะถูกเชื่อมเข้ากับเส้นงานโดยใช้ตารางเส้นงาน

16 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)

� LWP จะถูกเชื่อมเข้ากับเส้นงานโดยใช้ตารางเส้นงาน � การประสานงานนี้ จะใช้ mutex (mutual exclusion) เป็นตัว

ช่วย� เมื่อ thread เรียกใช้ system calls� LWP ที่เกี่ยวข้องจะถูกเรียกใช้งาน� ระบบปฏิบัติการสามารถที่จะเปลี่ยน LWP ได้ ซึ่งจะเปลี่ยน

thread ได้ด้วย

Page 17: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:

คําถาม

17 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)