Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
บทที่ 7ระบบปฏิบัติการ:
887130 887130 Platform TechnologyPlatform Technology
คณะวิทยาการสารสนเทศ มหาวิทยาลัยบูรพา
Ver. 1.0
ระบบปฏิบัติการ: กระบวนการ (Process)
� กระบวนการ (Processes)� เส้นงาน (Threads)� ใบงาน
สารบัญ
2 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
� กระบวนการ คือ โปรแกรมที่กําลังทํางานอยู่� การสื่อสารนั้นจะเกิดขึ้นระหว่างกระบวนการกับกระบวนการ� เมื่อมีการเปิดโปรแกรมทํางาน ระบบปฏิบัติการจะสร้าง
กระบวนการขึ้นมาใหม่ทุกครั้ง
4 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
กระบวนการขึ้นมาใหม่ทุกครั้ง� โดยที่ระบบปฏิบัติการจะควบคุมกระบวนการโดยใช้ ตาราง
ควบคุม ที่เรียกว่า Process Control Block (PCB) ซึ่งในนั้นจะมีข้อมูลต่างๆ เช่น ตัวนับของโปรแกรม, รีจิสเตอร์, ลําดับความสําคัญ, สิทธิ, แฟ้มเอกสารที่เปิด ฯลฯ
5 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
� ในขณะหนึ่ง ๆ จะมีเพียง 1 กระบวนการเท่านั้นที่กําลังทํางานอยู่� แต่อาจจะมีหลายกระบวนการที่อยู่ในสถานะพร้อม (ready)
6 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
แต่อาจจะมีหลายกระบวนการที่อยู่ในสถานะพร้อม (ready) หรือ รอคอย (waiting)
7 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
� กระบวนการแต่ละกระบวนการจะทํางานอยู่ในช่วงที่อยู่ของตนเอง ไม่ก้าวก่ายซึ่งกันและกัน
� นอกจากนั้นแล้ว ยังมีการแยกระหว่าง user mode กับkernel mode เพื่อความปลอดภัย
8 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
kernel mode เพื่อความปลอดภัย� ในการสร้าง, จัดตารางเวลา และการสื่อสารกันโดยใช้
การจัดการช่วงที่อยู่นั้น มีความยุ่งยากและสิ้นเปลืองมาก
� วิธีแก้คือ เส้นงาน (Threads)
� เส้นงาน คือ การทํางานในส่วนหนึ่งของทั้งโปรแกรม (เป็นส่วนหนึ่งของกระบวนการ)� หมายความว่า ในหนึ่งกระบวนการนั้น สามารถมีหลาย ๆ
เส้นงาน ที่ทํางานพร้อมกันได้
9 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
เส้นงาน ที่ทํางานพร้อมกันได้� เส้นงานนั้น จะมีแค่ข้อมูลบอกสถานภาพของ CPU เท่านั้น
เช่น register, stack pointer� ข้อมูลส่วนอื่นๆ เช่น แฟ้มเอกสารที่เปิด, สิทธิ ฯลฯ นั้น จะ
ถูกจัดการร่วมกันสําหรับกระบวนการ
� เส้นงานจึงสามารถเข้าถึงทรัพยากรของเส้นงานอื่น ๆ ได้ � ซึ่งในการนี้ สําคัญคือ การประสานงานกันของเส้นงานนั้น ผู้เขียน
โปรแกรมจะต้องทําเอง� ข้อดี
10 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
� ข้อดี� ทําให้การทํางานในระบบประมวลผลแบบกระจายมีประสิทธิภาพ
มากขึ้น� การใช้ system calls มีความสะดวกขึ้น
� ข้อเสีย� มีความยุ่งยากในการเขียนโปรแกรมพอสมควร
� เปรียบเทียบระหว่าง กระบวนการ กับ เส้นงาน
11 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
(a) ก���ก�� (b) ��������� A. Tanenbaum: Modern Operating Systems 2nd ed.
� การทํางานของเส้นงาน� แยกกันทํางานตามที่ได้ถูกโปรแกรมเอาไว้
12 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
Thread 1
Thread 2
Thread 3
����� A. Tanenbaum: Modern Operating Systems 2nd ed.
� การใช้เส้นงานในระบบเดี่ยว� มีการใช้ thread packet ในการสร้าง, ทําลาย และ
ประสานเวลาโดยใช ้Mutexes
13 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
� สร้างได้ทั้งใน user space และ kernel space ซึ่งใน kernel space จะเรียกว่า กระบวนการรุ่นน้ําหนักเบา (Lightweight Process: LWP)
� มีการใช้งานร่วมกันของ thread และ LWP
� การใช้เส้นงานในระบบเดี่ยว
14 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
����� A. Tanenbaum: Modern Distributed Systems 2nd ed.
� เส้นงาน กับ LWP� เมื่อมีการใช้ system calls� ข้อมูลและ stack ของ kernel จะถูกกําหนดขึ้น� LWP จะถูกเชื่อมเข้ากับเส้นงานโดยใช้ตารางเส้นงาน
15 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
� LWP จะถูกเชื่อมเข้ากับเส้นงานโดยใช้ตารางเส้นงาน � การประสานงานนี้ จะใช้ mutex (mutual exclusion) เป็นตัว
ช่วย� เมื่อ thread เรียกใช้ system calls� LWP ที่เกี่ยวข้องจะถูกเรียกใช้งาน� ระบบปฏิบัติการสามารถที่จะเปลี่ยน LWP ได้ ซึ่งจะเปลี่ยน
thread ได้ด้วย
� เส้นงาน กับ LWP� เมื่อมีการใช้ system calls� ข้อมูลและ stack ของ kernel จะถูกกําหนดขึ้น� LWP จะถูกเชื่อมเข้ากับเส้นงานโดยใช้ตารางเส้นงาน
16 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
� LWP จะถูกเชื่อมเข้ากับเส้นงานโดยใช้ตารางเส้นงาน � การประสานงานนี้ จะใช้ mutex (mutual exclusion) เป็นตัว
ช่วย� เมื่อ thread เรียกใช้ system calls� LWP ที่เกี่ยวข้องจะถูกเรียกใช้งาน� ระบบปฏิบัติการสามารถที่จะเปลี่ยน LWP ได้ ซึ่งจะเปลี่ยน
thread ได้ด้วย
คําถาม
17 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)