บทที่7 ระบบปฏิบัติการ: กระบวนการ...
TRANSCRIPT
![Page 1: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/1.jpg)
บทที่ 7ระบบปฏิบัติการ:
887130 887130 Platform TechnologyPlatform Technology
คณะวิทยาการสารสนเทศ มหาวิทยาลัยบูรพา
Ver. 1.0
ระบบปฏิบัติการ: กระบวนการ (Process)
![Page 2: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/2.jpg)
� กระบวนการ (Processes)� เส้นงาน (Threads)� ใบงาน
สารบัญ
2 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
![Page 3: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/3.jpg)
บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
![Page 4: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/4.jpg)
� กระบวนการ คือ โปรแกรมที่กําลังทํางานอยู่� การสื่อสารนั้นจะเกิดขึ้นระหว่างกระบวนการกับกระบวนการ� เมื่อมีการเปิดโปรแกรมทํางาน ระบบปฏิบัติการจะสร้าง
กระบวนการขึ้นมาใหม่ทุกครั้ง
4 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
กระบวนการขึ้นมาใหม่ทุกครั้ง� โดยที่ระบบปฏิบัติการจะควบคุมกระบวนการโดยใช้ ตาราง
ควบคุม ที่เรียกว่า Process Control Block (PCB) ซึ่งในนั้นจะมีข้อมูลต่างๆ เช่น ตัวนับของโปรแกรม, รีจิสเตอร์, ลําดับความสําคัญ, สิทธิ, แฟ้มเอกสารที่เปิด ฯลฯ
![Page 5: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/5.jpg)
5 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
![Page 6: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/6.jpg)
� ในขณะหนึ่ง ๆ จะมีเพียง 1 กระบวนการเท่านั้นที่กําลังทํางานอยู่� แต่อาจจะมีหลายกระบวนการที่อยู่ในสถานะพร้อม (ready)
6 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
แต่อาจจะมีหลายกระบวนการที่อยู่ในสถานะพร้อม (ready) หรือ รอคอย (waiting)
![Page 7: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/7.jpg)
7 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
![Page 8: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/8.jpg)
� กระบวนการแต่ละกระบวนการจะทํางานอยู่ในช่วงที่อยู่ของตนเอง ไม่ก้าวก่ายซึ่งกันและกัน
� นอกจากนั้นแล้ว ยังมีการแยกระหว่าง user mode กับkernel mode เพื่อความปลอดภัย
8 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
kernel mode เพื่อความปลอดภัย� ในการสร้าง, จัดตารางเวลา และการสื่อสารกันโดยใช้
การจัดการช่วงที่อยู่นั้น มีความยุ่งยากและสิ้นเปลืองมาก
� วิธีแก้คือ เส้นงาน (Threads)
![Page 9: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/9.jpg)
� เส้นงาน คือ การทํางานในส่วนหนึ่งของทั้งโปรแกรม (เป็นส่วนหนึ่งของกระบวนการ)� หมายความว่า ในหนึ่งกระบวนการนั้น สามารถมีหลาย ๆ
เส้นงาน ที่ทํางานพร้อมกันได้
9 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
เส้นงาน ที่ทํางานพร้อมกันได้� เส้นงานนั้น จะมีแค่ข้อมูลบอกสถานภาพของ CPU เท่านั้น
เช่น register, stack pointer� ข้อมูลส่วนอื่นๆ เช่น แฟ้มเอกสารที่เปิด, สิทธิ ฯลฯ นั้น จะ
ถูกจัดการร่วมกันสําหรับกระบวนการ
![Page 10: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/10.jpg)
� เส้นงานจึงสามารถเข้าถึงทรัพยากรของเส้นงานอื่น ๆ ได้ � ซึ่งในการนี้ สําคัญคือ การประสานงานกันของเส้นงานนั้น ผู้เขียน
โปรแกรมจะต้องทําเอง� ข้อดี
10 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
� ข้อดี� ทําให้การทํางานในระบบประมวลผลแบบกระจายมีประสิทธิภาพ
มากขึ้น� การใช้ system calls มีความสะดวกขึ้น
� ข้อเสีย� มีความยุ่งยากในการเขียนโปรแกรมพอสมควร
![Page 11: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/11.jpg)
� เปรียบเทียบระหว่าง กระบวนการ กับ เส้นงาน
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 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/12.jpg)
� การทํางานของเส้นงาน� แยกกันทํางานตามที่ได้ถูกโปรแกรมเอาไว้
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 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/13.jpg)
� การใช้เส้นงานในระบบเดี่ยว� มีการใช้ 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 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/14.jpg)
� การใช้เส้นงานในระบบเดี่ยว
14 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)
����� A. Tanenbaum: Modern Distributed Systems 2nd ed.
![Page 15: บทที่7 ระบบปฏิบัติการ: กระบวนการ (Process)prajaks/web/sites/default/files/class/files/... · บทที่ 7 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/15.jpg)
� เส้นงาน กับ 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 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/16.jpg)
� เส้นงาน กับ 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 ระบบปฏิบัติการ:](https://reader033.vdocuments.site/reader033/viewer/2022041500/5e2131aaec528b496375a190/html5/thumbnails/17.jpg)
คําถาม
17 จาก 17บทที่ 7 ระบบปฏิบัติการ: กระบวนการ (Process)