การจัดการ process
ใบงานที่3
โดย นางสาว บุญสิตา อินทร์พรม รหัสนักศึกษา 6031280051
โปรเซส หมายถึง โปรแกรมที่กำลังเอ็กซิคิวต์อยู่
ในขณะที่โปรเซสกำลังเอ็กซิคิวต์อยู่นั้นจะมีการใช้ทรัพยากร (Resource) ของระบบ เช่น CPU, หน่วยความจำ, ไฟล์, อุปกรณ์ อินพุต/เอาต์พุต
ในระบบ Multiprogramming อาจประกอบด้วยโปรเซสมากมายโปรเซสมีอยู่ในลำดับชั้นพาเรนต์-ชายน์ โปรเซสที่เริ่มต้นโดยโปรแกรม หรือคำสั่งคือ โปรเซสพาเรนต์ และ โปรเซสชายน์ คือผลิตภัณฑ์ ของโปรเซสพาเรนต์ โปรเซสพาเรนต์หนึ่งสามารถมีได้หลายโปรเซสชายน์ แต่โปรเซสชายน์หนึ่งสามารถมีได้หนึ่งพาเรนต์เท่านั้น
องค์ประกอบของโปรเซส
1. ชื่อและหมายเลขโปรเซส (Process ID)
เป็นหมายเลขประจำโปรเซสเพื่อกำหนดลำดับการเอ็กซีคิ้วต์
2. โค้ดโปรแกรม (Program code) เป็นโค้ดคำสั่งที่เป็นภาษาเครื่องที่สามารถเอ็กซิคิวต์ได้ทันที
3. ข้อมูล (Data) เป็นข้อมูลของโปรเซสหนึ่ง หรืออาจใช้ร่วมกับโปรเซสอื่น ๆ ก็ได้
4. บล็อกควบคุมโปรเซส (Process Control Block : PCB)
เป็นเนื้อที่ของหน่วยความจำที่ระบบปฏิบัติการกำหนดไว้เพื่อเก็บข้อมูที่สำคัญของโปรเซสไว้
4.2 สถานะของโปรเซส(Process Status) แสดงสถานะของโปรเซสที่เป็นอยู่ในปัจจุบัน
4.3 หมายเลขโปรเซส(Process ID) เป็นหมายเลขประจำตัวของโปรเซส
4.4 ตัวนับจำนวน(Program Counter) เป็นตัวนับที่แสดงที่อยู่ของคำสั่งต่อไปที่จะถูกประมวลผล
4.5 รีจิสเตอร์(Register) ทำหน้าที่เก็บข้อมูลสถานะระบบเมื่อมีอินเทอร์รัพเกิดขึ้นเพื่อทำให้โปรแกรมสามารถทำงานต่อไปได้เมื่อกลับมาทำงานอีกครั้ง รีจิสเตอร์จะมีค่าและประเภทที่เปลี่ยนแปลงได้ขึ้นอยู่กับสถาปัตยกรรมของคอมพิวเตอร์ ประเภทของรีจิสเตอร์คือ Accumulator, Index, Stack Pointer และรีจิสเตอร์ทั่วไป
4.9 ข้อมูลสถานะอินพุต/เอาต์พุต(I/O Status Information) เป็นข้อมูลแสดงรายการของอุปกรณ์อินพุต/เอาต์พุตที่โปรเซสนี้ใช้ เป็นต้น
6.คุณสมบัติของโปรเซส
ลำดับความสำคัญของโปรเซส (Priority)
อำนาจหน้าที่ของโปรเซส (Authority)
คุณสมบัติอื่น ๆ
ขั้นตอนการเปลี่ยนสถานะของโปรเซส
ถ้าไม่เพียงพอก็จะต้องรอจนกว่าจะมีโปรเซสอื่นจบลงและมีเนื้อที่ในหน่วยความจำเหลือมากพอ
ภายในระยะเวลาควันตัม ถ้าโปรเซสจบลง โปรเซสก็จะออกจากระบบ ทรัพยากรต่างๆ ที่โปรเซสครอบครองก็จะถูกส่งคืนให้กับระบบ
กรณีที่โปรเซสกำลังอยู่ในสถานะรัน มีความต้องการใช้อุปกรณ์อินพุต/เอาท์พุต หรืออาจจะเกิดอินเทอร์รัพต์ (Interrupt) ขึ้น
OS ก็จะย้ายโปรเซสจากสถานะรันไปอยู่ในสถานะบล็อก และดึงโปรเซสที่อยู่ในคิวต่อไปมารัน
โปรเซสที่เป็นอิสระ ( Independent Processes) หมายถึงโปรเซสที่ไม่มีผลกระทบหรือไม่ได้รับผลกระทบจากโปรเซสอื่น
โปรเซสสื่อประสาน (Cooperating Processes) หมายถึงโปรเซสที่มีผลกระทบหรือได้รับผลกระทบจากโปรเซสอื่น
เมื่อโปรเซส A ต้องการติดต่อกับโปรเซส B
-โปรเซสที่ 1 มีการเพิ่มค่า X จากเดิม 10
-โปรเซสที่ 2 มีการลบค่า X ลง 10
-ผลจากการทำงานจะเป็นดังนี้ (10+10-10) = 10

-เช่น ถ้า โปรเซส B มีลำดับความสำคัญสูงกว่า A โปรเซส B ก็จะได้ใช้เครื่องพิมพ์ ส่วนโปรเซส A ต้องรอ
https://www.ibm.com/support/knowledgecenter/th/ssw_aix_72/com.ibm.aix.osdevice/processes.htm
1.1. New คือโปรเซสที่เพิ่งสร้างขึ้น 1.2. Ready คือสถานะที่โปรเซสพร้อมที่จะใช้งานซีพียูทันที่ที่โอเอสมอบหมายให้ โดยสถานะนี้อยู่ในสถานะพร้อมที่จะรันเท่านั้นยังไม่มีการรันหรือเอ็กซ์คิวต์แต่อย่าง
1.3. Running คือสถานะที่โปรเซสครอบครองซีพียู หรือซีพียูมีการเอ็กซ์คิวต์คำสั่งของโปรเซสนั้น
1.4. Waiting คือสถานะที่โปรเซสนั้นกำลังรอเหตุการณ์อะไรบางอย่าง
1.5. Block คือสถานะที่เกิดการขัดจังหวะจากอุปกรณ์อินพุต/เอาต์พุต ซึ่งก็คือการอินเตอร์รัพต์
1.6. Terminated คือสถานะของโปรเซสที่ประมวลผลเสร็จสิ้น
• 1 โปรเซสเท่าั้นั้นที่จะใช้ทรัพยากรได้ อีกโปรเซสต้องรอ
- ไม่มีการแทรกกลางคัน
• ทรัพยากรจะถูกคืนเมื่อโปรเซสต้องการค้น หากไ่ม่คืน OS ทำอะไรไม่ได้
โดย: นามสมมุติ IP: 110.171.57.47 14 พฤศจิกายน 2555 12:00:22 น.
6.1 พอร์ทแบบคิว
6.2 พอร์ทแบบไปท์
6.3 พอร์ทแบบสแต็ก
2. โค้ดโปรแกรม (Program code)
3. ข้อมูล (Data)
4. บล็อกควบคุมโปรเซส (PCB : Process control block)
5. เวิร์ดสถานะโปรแกรม (PSW : Program Status Word)
6. คุณสมบัติของโปรเซส (Properties of process)
โดย นางสาว บุญสิตา อินทร์พรม รหัสนักศึกษา 6031280051
โปรเซส หมายถึง โปรแกรมที่กำลังเอ็กซิคิวต์อยู่
ในขณะที่โปรเซสกำลังเอ็กซิคิวต์อยู่นั้นจะมีการใช้ทรัพยากร (Resource) ของระบบ เช่น CPU, หน่วยความจำ, ไฟล์, อุปกรณ์ อินพุต/เอาต์พุต
ในระบบ Multiprogramming อาจประกอบด้วยโปรเซสมากมายโปรเซสมีอยู่ในลำดับชั้นพาเรนต์-ชายน์ โปรเซสที่เริ่มต้นโดยโปรแกรม หรือคำสั่งคือ โปรเซสพาเรนต์ และ โปรเซสชายน์ คือผลิตภัณฑ์ ของโปรเซสพาเรนต์ โปรเซสพาเรนต์หนึ่งสามารถมีได้หลายโปรเซสชายน์ แต่โปรเซสชายน์หนึ่งสามารถมีได้หนึ่งพาเรนต์เท่านั้น
องค์ประกอบของโปรเซส
1. ชื่อและหมายเลขโปรเซส (Process ID)
เป็นหมายเลขประจำโปรเซสเพื่อกำหนดลำดับการเอ็กซีคิ้วต์
2. โค้ดโปรแกรม (Program code) เป็นโค้ดคำสั่งที่เป็นภาษาเครื่องที่สามารถเอ็กซิคิวต์ได้ทันที
3. ข้อมูล (Data) เป็นข้อมูลของโปรเซสหนึ่ง หรืออาจใช้ร่วมกับโปรเซสอื่น ๆ ก็ได้
4. บล็อกควบคุมโปรเซส (Process Control Block : PCB)
เป็นเนื้อที่ของหน่วยความจำที่ระบบปฏิบัติการกำหนดไว้เพื่อเก็บข้อมูที่สำคัญของโปรเซสไว้
บล็อกควบคุมโปรเซส (Process Control Block : PCB) OS จะกำหนดเนื้อที่บางส่วนในหน่วยความจำเพื่อทำเป็น PCB
(Process Control Block : PCB)
4.1 พอยเตอร์(Pointer) สำหรับชี้ตำแหน่งของโปรเซสที่อยู่ในหน่วยความจำ และตำแหน่งของทรัพยากรที่โปรเซสครอบครองอยู่4.2 สถานะของโปรเซส(Process Status) แสดงสถานะของโปรเซสที่เป็นอยู่ในปัจจุบัน
4.3 หมายเลขโปรเซส(Process ID) เป็นหมายเลขประจำตัวของโปรเซส
4.4 ตัวนับจำนวน(Program Counter) เป็นตัวนับที่แสดงที่อยู่ของคำสั่งต่อไปที่จะถูกประมวลผล
4.5 รีจิสเตอร์(Register) ทำหน้าที่เก็บข้อมูลสถานะระบบเมื่อมีอินเทอร์รัพเกิดขึ้นเพื่อทำให้โปรแกรมสามารถทำงานต่อไปได้เมื่อกลับมาทำงานอีกครั้ง รีจิสเตอร์จะมีค่าและประเภทที่เปลี่ยนแปลงได้ขึ้นอยู่กับสถาปัตยกรรมของคอมพิวเตอร์ ประเภทของรีจิสเตอร์คือ Accumulator, Index, Stack Pointer และรีจิสเตอร์ทั่วไป
4.6
ข้อมูลการจัดการเวลาซีพียู(CPU Scheduling Information)
เป็นข้อมูลที่ประกอบด้วยลำดับความสำคัญของโปรเซสที่ถูกกำหนดโดยระบบปฏิบัติการเมื่อโปรเซสถูกสร้างขึ้นมา
สามารถเปลี่ยนค่าไปได้
ซึ่งโปรเซสใดที่มีความสำคัญมากระบบปฏิบัติการจะให้สิทธิมากกว่าโปรเซสอื่น
เช่นให้เวลาซีพียูนานกว่า เป็นต้น
4.7 ข้อมูลการจัดการหน่วยความจำ(Memory Management Information) เป็นข้อมูลเกี่ยวกับหน่วยความจำที่ระบบปฏิบัติการกำหนดไว้ เช่นขนาดหน่วยความจำ, ค่าของรีจิสเตอร์, Page table และ Segment table เป็นต้น
4.8
ข้อมูลแอ็กเคาต์(Account Information) เป็นข้อมูลที่อาจประกอบด้วยจำนวน
CPU, เวลาที่กำหนด, หมายเลขแอ็กเคาต์, หมายเลขโปรเซส และอื่นๆ
4.9 ข้อมูลสถานะอินพุต/เอาต์พุต(I/O Status Information) เป็นข้อมูลแสดงรายการของอุปกรณ์อินพุต/เอาต์พุตที่โปรเซสนี้ใช้ เป็นต้น
5.
PSW (Program Status Word) เป็นตัวควบคุมลำดับการ
เอ็กซิคิวต์คำสั่งของโปรเซส และเก็บข้อมูลเกี่ยวกับสถานะของโปรเซส
ที่อยู่ของคำสั่งที่จะเอ็กซิคิวต์ต่อไป
6.คุณสมบัติของโปรเซส
ลำดับความสำคัญของโปรเซส (Priority)
อำนาจหน้าที่ของโปรเซส (Authority)
คุณสมบัติอื่น ๆ
คุณสมบัติของโปรเซส
ลำดับความสำคัญของโปรเซส (Priority)
โดยเมื่อโปรเซสถูกสร้างขึ้นมา
ลำดับความสำคัญของโปรเซสจะถูกกำหนดโดยระบบปฏิบัติทันที
สามารถเปลี่ยนค่าไปได้
ซึ่งโปรเซสใดที่มีความสำคัญมากระบบปฏิบัติการจะให้สิทธิมากกว่าโปรเซสอื่น
อำนาจหน้าที่ของ โปรเซส (Authority) เป็นการบอกอำนาจหน้าที่ของโปรเซสนั้นว่าสามารถทำอะไรได้บ้าง ใช้อุปกรณ์อะไรได้บ้าง เป็นต้น
คุณสมบัติอื่น ที่ระบบปฏิบัติการกำหนดให้มี
ในขณะที่เอ็กซิคิวต์โปรเซสอยู่นั้น โปรเซสจะมีการเปลี่ยนแปลงสถานะอยู่ตลอดเวลาสามารถแบ่งสถานะดังนี้
- สถานะเริ่มต้น (New) เป็นสถานะที่เริ่มต้นสร้างโปรเซส
- สถานะพร้อม (Ready) เป็นสถานะที่พร้อมจะครอบครองซีพียู แต่ยังไม่มีการรัน
- สถานะรัน (Running) เป็นสถานะที่โปรเซสเข้าครอบครองซีพียูและมีการเอ็กซิคิวต์คำสั่งในโปรแกรมของโปรเซส
- สถานะรอ (Wait) เป็นสถานะที่โปรเซสกำลังรอเหตุการณ์บางอย่าง เช่น การรอสัญญาณ การจัดการอินพุต/เอาต์พุตดีไวซ์
สถานะบล็อก (Block) เป็นสถานะที่โปรเซสต้องการใช้อุปกรณ์อินพุต/เอาต์พุต หรือเกิดอินเทอร์รัพต์ระหว่างที่รันโปรเซส ซึ่งจะต้องรอให้มีการจัดการอุปกรณ์อินพุต/เอาต์พุต หรือจัดการอินเทอร์รัพต์ให้เรียบร้อยก่อนจะกลับไปสถานะรันได้ต่อไป
ขั้นตอนการเปลี่ยนสถานะของโปรเซส
- เมื่อผู้ใช้ต้องการส่งงานให้เครื่องคอมพิวเตอร์ทำงาน OS จะเป็นผู้ที่รับทราบความต้องการนี้ และจะเตรียมสร้างโปรเซสให้กับงานใหม่ที่ถูกส่งเข้ามา
- OS จะต้องพิจารณาว่าเนื้อที่หน่วยความจำหลักของระบบมีเพียงพอหรือไม่
ถ้าไม่เพียงพอก็จะต้องรอจนกว่าจะมีโปรเซสอื่นจบลงและมีเนื้อที่ในหน่วยความจำเหลือมากพอ
- เมื่อโปรเซสถูกสร้างขึ้นมาใหม่จะอยู่ในสถานะพร้อมก่อน ยังไม่สามารถเข้าไปใช้งาน CPU ได้
- สาเหตุที่โปรเซสไม่สามารถเข้าใช้งาน CPU ได้ทันที
เนื่องจากระบบคอมพิวเตอร์ในปัจจุบันเป็นระบบที่มีผู้ใช้หลายคนในเวลาเดียวกัน
ทำให้มีโปรเซสมากมายเกิดขึ้น ซึ่งโปรเซสเหล่านี้ต้องการใช้ CPU ทั้งสิ้น
ต้องมีการจัดคิวและแจ้งสถานะพร้อมให้กับโปรเซสไว้ก่อน
เมื่อโปรเซสที่ใช้งาน CPU ทำงานเสร็จสิ้นหรือถูกยกเลิก ทำให้ CPU จะว่าง โปรเซสต่อไปที่อยู่ในคิวก็จะเลื่อนเข้าไปใช้ CPU (เปลี่ยนสถานะจากพร้อมเป็นสถานะรัน)
เหตุการณ์ทั้งหมดผู้ที่ทำหน้าที่ควบคุมการทำงานคือ OS - กรณีที่โปรเซสใดใช้เวลารันเป็นเวลานานก็จะครอบครองซีพียูเป็นเวลานาน
ทำให้โปรเซสอื่น ๆ เสียเวลาในการรอนานเกินไป
เพื่อแก้ปัญหานี้ OS จะกำหนดเวลาในการอยู่ในสถานะการรันของทุกโปรเซสไว้ เรียกว่า “เวลาควันตัม (Quantum time)”
ถ้าโปรเซสใดใช้เวลาครอบครอง CPU เกินกว่าเวลาควันตัม ระบบปฏิบัติการจะย้ายโปรเซสนั้นไปต่อคิวใหม่และเปลี่ยนเป็นสถานะพร้อม และนำโปรเซสที่อยู่ในคิวต่อไปมารัน
ภายในระยะเวลาควันตัม ถ้าโปรเซสจบลง โปรเซสก็จะออกจากระบบ ทรัพยากรต่างๆ ที่โปรเซสครอบครองก็จะถูกส่งคืนให้กับระบบ
OS ก็จะย้ายโปรเซสจากสถานะรันไปอยู่ในสถานะบล็อก และดึงโปรเซสที่อยู่ในคิวต่อไปมารัน
- กรณีที่ระบบมีงานมากเกินไป OS ไม่สามารถตอบสนองการทำงานของโปรเซสทั้งหมดได้
OS จะนำเอาโปรเซสบางโปรเซสไปเก็บไว้ในสถานะรอชั่วคราวก่อน รอจนจำนวนโปรเซสในระบบลดลงมาอยู่ในระดับปกติ จึงค่อยย้ายโปรเซสเหล่านั้นกลับมาทำงาน - เมื่อผู้ใช้ส่งงานให้กับระบบรัน OS จะทำการสร้างโปรเซสสำหรับงานนั้นขึ้นมา
- การทำงานของ OS ก็ถือว่าเป็นงานของระบบดังนั้นจะมีการสร้างโปรเซสขึ้นเหมือนกัน
- นอกจากนั้นโปรเซสที่ถูกสร้างขึ้นก็สามารถสร้างโปรเซสย่อยได้
- โปรเซสที่ให้กำเนิด เราเรียกว่าโปรเซสแม่ (parent process)
- โดยทั่วไป เมื่อโปรเซสแม่จบลง โปรเซสต่าง ๆ ที่อยู่ภายใต้ตัวมันก็จะจบลงตามไปด้วย
- แต่ OS บางตัวยอมให้โปรเซสแม่จบลง โดยที่โปรเซสลูกไม่ต้องจบลงตามไปด้วย ในกรณีนี้โปรเซสลูกก็จะไม่มีโปรเซสแม่โปรเซสย่อยที่เกิดขึ้น เราเรียกว่าโปรเซสลูก(childprocess)
- จากตัวอย่างในรูป โปรเซส A จะมีโปรเซสลูก 3 โปรเซสคือ B,C และ D
- ถึงแม้ว่าโปรเซส A เป็นโปรเซสแม่ของโปรเซส B,C และ D แต่โปรเซส A ไม่ได้เป็นผู้ที่สร้างโปรเซส B,C และ D
- ผู้ที่สร้างโปรเซสทั้งหมดได้แก่ OS ซึ่ง OS จะมีโปรเซสหนึ่งทำหน้าที่สร้างและยุติโปรเซส คือ “ตัวจัดคิวระยะยาว”
- คำถามโปรเซส F,G,H นั้นถูกสร้างโดยโปรเซส D ใช่หรือไม่ใครเป็นผู้ที่สร้างโปรเซส A
โปรเซสสื่อประสาน (Cooperating Processes)
โปรเซสที่เอ็กซิคิวต์ในระบบนั้นมี 2 แบบโปรเซสที่เป็นอิสระ ( Independent Processes) หมายถึงโปรเซสที่ไม่มีผลกระทบหรือไม่ได้รับผลกระทบจากโปรเซสอื่น
โปรเซสสื่อประสาน (Cooperating Processes) หมายถึงโปรเซสที่มีผลกระทบหรือได้รับผลกระทบจากโปรเซสอื่น
เหตุผลที่ทำให้เกิดการประสานงานระหว่างโปรเซส
- ต้องการใช้ข้อมูลร่วมกัน
- ต้องการเพิ่มความเร็วในการคำนวณ
การติดต่อระหว่างโปรเซส (Interprocess communication)
เมื่อโปรเซส A ต้องการติดต่อกับโปรเซส B
- โปรเซส A และ B จะต้องจองเนื้อที่ในหน่วยความจำในส่วนที่ว่างเอาไว้ทั้ง 2 โปรเซสต้องรู้ว่าหน่วยความจำร่วมนี้อยู่ที่ใด
- เมื่อโปรเซส A ส่งข้อมูลให้โปรเซส B ข้อมูลจะถูกส่งไปไว้ในหน่วยความจำร่วม
- เมื่อโปรเซสต้องการใช้ข้อมูลของโปรเซสอื่น โปรเซสที่ถูกร้องขอจะส่งข้อมูลไปให้ การที่โปรเซสต่าง ๆ มีการติดต่อกันเช่นนี้ เราเรียกว่า การติดต่อระหว่างโปรเซส
- โดยทั่วไปการติดต่อระหว่างโปรเซสนั้นจะใช้วิธีการคือ การใช้หน่วยความจำร่วม (Shared memory)
มื่อโปรเซส A ต้องการติดต่อกับโปรเซส B
-โปรเซส B จะตรวจสอบได้เองว่าโปรเซส A นำข้อมูลไปวางไว้แล้วหรือยัง
-ถ้าโปรเซส A ยังไม่ส่งข้อมูลมา โปรเซส B ก็จะยังไม่ดึงเอาข้อมูลมาใช้
-นอกจากนั้นโปรเซส B ยังต้องสามารถตรวจสอบได้ว่าข้อมูลที่อยู่ในหน่วยความจำร่วมนั้น เป็นข้อมูลเก่าที่เคยนำมาใช้แล้วหรือยัง
-สำหรับโปรเซส A ถ้าจะส่งข้อมูลชุดใหม่ให้ โปรเซส A จะต้องตรวจสอบก่อนว่าข้อมูลชุดเดิมที่อยู่ในหน่วยความจำร่วมนั้นถูกนำไปใช้หรือยัง ถ้าถูกนำไปใช้แล้วก็จะนำข้อมูลชุดใหม่ทับลงไป

-ถ้าโปรเซส A ยังไม่ส่งข้อมูลมา โปรเซส B ก็จะยังไม่ดึงเอาข้อมูลมาใช้
-นอกจากนั้นโปรเซส B ยังต้องสามารถตรวจสอบได้ว่าข้อมูลที่อยู่ในหน่วยความจำร่วมนั้น เป็นข้อมูลเก่าที่เคยนำมาใช้แล้วหรือยัง
-สำหรับโปรเซส A ถ้าจะส่งข้อมูลชุดใหม่ให้ โปรเซส A จะต้องตรวจสอบก่อนว่าข้อมูลชุดเดิมที่อยู่ในหน่วยความจำร่วมนั้นถูกนำไปใช้หรือยัง ถ้าถูกนำไปใช้แล้วก็จะนำข้อมูลชุดใหม่ทับลงไป
โครงสร้างของพอร์ท
พอร์ทในปัจจุบันมี 3 แบบ- พอร์ทแบบคิว โครงสร้างของพอร์ทแบบนี้ข้อมูลชุดใดที่ถูกส่งเข้าพอร์ทก่อนจะถูกดึงออกไปก่อน ข้อมูลชุดใดที่ถูกส่งเข้าพอร์ททีหลังจะถูกดึงออกไปทีหลัง
- พอร์ทแบบไปป์ มีลักษณะการทำงานเหมือนพอร์ทแบบคิว แต่ไปป์มีความยาวของพอร์ทไม่จำกัด ในขณะที่พอร์ทแบบคิวมีความยาวของพอร์ทคงที่
- พอร์ทแบบแสต๊ก มีกลไกการทำงานโดยข้อมูลชุดใดที่ถูกส่งเข้าพอร์ทก่อนจะถูกดึงออกไปใช้ทีหลังก่อน ข้อมูลชุดใดที่ถูกส่งเข้าพอร์ททีหลังจะถูกดึงออกไปใช้ก่อน
การเข้าจังหวะของโปรเซส (Process Synchronization)
- ในการใช้ทรัพยากรโดยเฉพาะอย่างยิ่งข้อมูลอาจก่อให้เกิดปัญหาที่ทำให้การทำงานไม่ถูกต้อง
- ตัวอย่าง
-โปรเซสที่ 1 มีการเพิ่มค่า X จากเดิม 10
-โปรเซสที่ 2 มีการลบค่า X ลง 10
-ผลจากการทำงานจะเป็นดังนี้ (10+10-10) = 10
- จากรูปจะเห็นว่าถ้าโปรเซสที่ 1 และ 2 มีการทำงานที่เป็นอิสระอาจทำให้ผลลัพธ์เกิดความผิดพลาดขึ้น
- ดังนั้นเพื่อป้องกันความผิดพลาดที่เกิดขึ้น จะต้องมีการจัดจังหวะการทำงานให้กับแต่ละโปรเซสสำหรับการใช้ข้อมูลร่วมกัน
- จากตัวอย่างควรกำหนดว่าเมื่อโปรเซสใดได้เข้ามาครอบครองข้อมูล โปรเซสอื่น ๆ ที่ต้องการใช้ข้อมูลตัวเดียวกันจะต้องหยุดรอให้โปรเซสแรกใช้งานให้เสร็จก่อน
- การป้องกันโปรเซสอื่น ๆ เข้ามาใช้ทรัพยากรซึ่งมีโปรเซสหนึ่งครอบครองอยู่แล้วเรียกว่า การไม่เกิดร่วม (Mutual exclusion)
- ในช่วงเวลาที่โปรเซสเข้าไปครอบครองทรัพยากรแบบการไม่เกิดร่วมนี้เรียกว่า โปรเซสนั้นอยู่ในย่านวิกฤต (Critical region หรือ Critical Section)
ปัญหาการทำงานของโปรเซส
ปัญหาที่ 1 : การอดตาย (Starvation) หรือ การเลื่อนไหลไปอย่างไม่มีวันสิ้นสุด (Infinite postponement)
-เช่น ถ้า โปรเซส B มีลำดับความสำคัญสูงกว่า A โปรเซส B ก็จะได้ใช้เครื่องพิมพ์ ส่วนโปรเซส A ต้องรอ
- ในขณะที่โปรเซส A กำลังรอ ปรากฏว่ามีโปรเซสอื่น ๆ ที่มีลำดับความสำคัญสูงกว่าโปรเซส A ต้องการใช้เครื่องพิมพ์
- สิ่งที่เกิดขึ้นกับโปรเซส A คือ โปรเซส A จะถูกโปรเซสอื่นแซงตลอดเวลา เราเรียกเหตุการณ์ที่เกิดขึ้นนี้ว่า “การอดตายของโปรเซส (Starvation) หรือ การเลื่อนไหลไปอย่างไม่มีวันสิ้นสุด (Infinite postponement)
ปัญหาที่ 2 : วงจรอับ หรือ การติดตาย (Deadlock)
อ้างอิงที่มา : http://www.chantra.sru.ac.th/OS.html
https://www.ibm.com/support/knowledgecenter/th/ssw_aix_72/com.ibm.aix.osdevice/processes.htm
แบบฝึกหัดบทที่ 2
1.สถานะของโปรเซสมีอะไรบ้าง จงอธิบาย
1.1. New คือโปรเซสที่เพิ่งสร้างขึ้น 1.2. Ready คือสถานะที่โปรเซสพร้อมที่จะใช้งานซีพียูทันที่ที่โอเอสมอบหมายให้ โดยสถานะนี้อยู่ในสถานะพร้อมที่จะรันเท่านั้นยังไม่มีการรันหรือเอ็กซ์คิวต์แต่อย่าง
1.3. Running คือสถานะที่โปรเซสครอบครองซีพียู หรือซีพียูมีการเอ็กซ์คิวต์คำสั่งของโปรเซสนั้น
1.4. Waiting คือสถานะที่โปรเซสนั้นกำลังรอเหตุการณ์อะไรบางอย่าง
1.5. Block คือสถานะที่เกิดการขัดจังหวะจากอุปกรณ์อินพุต/เอาต์พุต ซึ่งก็คือการอินเตอร์รัพต์
1.6. Terminated คือสถานะของโปรเซสที่ประมวลผลเสร็จสิ้น
2. เวลา Quantum Time คืออะไร
-Quantum time หรือ Time Quantum เป็นการจัดการอัลกอริทึมในตารางโปรเซสในหัวข้อ Round Rodin(RR) ที่ใช้นโยบายแบบ Preemptive Scheduling Policy โดยการทำงานนี้จะยินยอมให้มีการแซงคิวได้ตามช่วงเวลาที่กำหนดใน Time slice หรือ เรียกอีกอย่างว่า Time Quantum โดยจำเป็นต้องกำหนดค่า Time slice ได้ล่วงหน้าว่าจะให้มีค่าเป็นเท่าไร ข้ัอดี คือ จะะไม่มี Process ใดผูกขาดการใช้งานโปรเซสเซอร์ไว้ได้3. ปัญหา DeadLock เกิดขึ้นได้อย่างไร
- ทรัพยากรเป็นแบบใช้ร่วมกันไม่ได้• 1 โปรเซสเท่าั้นั้นที่จะใช้ทรัพยากรได้ อีกโปรเซสต้องรอ
- ไม่มีการแทรกกลางคัน
• ทรัพยากรจะถูกคืนเมื่อโปรเซสต้องการค้น หากไ่ม่คืน OS ทำอะไรไม่ได้
4. สถานะ Block เกิดขึ้นได้อย่างไร
-อุปกรณ์ input output เกิดขัดข้อง เช่น การเชื่อมต่อ เครื่องprintterโดย: นามสมมุติ IP: 110.171.57.47 14 พฤศจิกายน 2555 12:00:22 น.
5. การติดต่อกันระหว่าง Process เป็นหน้าที่ของโคร
- ในระบบคอมพิวเตอร์ที่มีการประมวลผลในรูปแบบ Mutiprograming จะมีกระบวนการหนึ่งที่มีความสำคัญต่อการทำงานของ Process ต่างๆ คือการติดต่อสือสารระหว่าง Process โดยระบบที่วเชื่อมโยงกันในรูปแบบเครือข่าย ซึ่งอาจมีเครื่องคอมพิวเตอร์หรือหน่วยประมวลผลจำนวนมาก รวมทั้งการแบ่งปันทรัพยากร และใช้งาน Process ร่วมกันได้ การติดต่อสื่อสารระหว่าง Process หรือเรีียกว่า Interprocess Communication (IPC) คือกระบวนการที่ Process หนึ่งติดต่อกับอีก Process หนึ่ง6. พอร์ท มีกี่แบบอะไรบ้าง
- มี 3 แบบ6.1 พอร์ทแบบคิว
6.2 พอร์ทแบบไปท์
6.3 พอร์ทแบบสแต็ก
7. จงยกตัวอย่าง พอร์ทแบบสเต็ก
-พอร์ทแบบคิว,พอร์ทแบบไปบ์,พอร์ทแบบแสต๊ก8. Mutual exclusion เกิดขึ้นได้อย่างไร
-ปัญหานี้เกิดจาก การที่ระบบไม่อนุญาตให้ Process ใดๆตั้งแต่2 Process เข้าไปใช้ทรัพยากรพร้อมกันได้ ซึ่งสามารถแก้ไขได้ คือ การแบ่งทรัพยากรให้กับ Process ใช้งานร่วมกันได้ เช่น การแชร์ไฟล์ข้อมูล โดยกำหนดให้ Process ที่ต้องการเข้าถึงสามารถเข้าอ่านข้อมูลได้อย่างเดียว9. ปัญหาการอดตาย เกิดขึ้นได้อย่างไร
การทำงานร่วมกันของโปรเซสหลายโปรเซส (ในระบบมับติโปรแกรรรมมิ่ง) เพื่อ โปรเซสต้องการใช้ทรัพยากร จะต้องร้องขอทรัพยากรจากระบบ โดยสามรถขอใช้ทรัพยากรให้ได้จำนวนมากที่สุด เพื่อ ให้ไปเซสสามารถทำงานได้เสร็สสิ้น10. องค์ประกอบของโปรเซส มีอะไรบ้าง
1. หมายเลขโปรเซส (Process id)2. โค้ดโปรแกรม (Program code)
3. ข้อมูล (Data)
4. บล็อกควบคุมโปรเซส (PCB : Process control block)
5. เวิร์ดสถานะโปรแกรม (PSW : Program Status Word)
6. คุณสมบัติของโปรเซส (Properties of process)
ความคิดเห็น
แสดงความคิดเห็น