ใบงานที่ 2 การจัดการ Process
ใบงานที่2
การจัดการ Process
นาย ธนาธิป เล็กกุล รหัส 6031280003
โปรเซส หมายถึง โปรแกรมที่กำลังเอ็กซิคิวต์อยู่
-ในขณะที่โปรเซสกำลังเอ็กซิคิวต์อยู่นั้นจะมีการใช้ทรัพยากร (Resource) ของระบบ เช่น CPU, หน่วยความจำ, ไฟล์, อุปกรณ์ อินพุต/เอาต์พุต
-ในระบบ Multiprogramming อาจประกอบด้วยโปรเซสมากมาย
-OS จึงมีหน้าที่ในการจัดการโปรเซสในระบบทั้งหมด ไม่ว่าจะเป็นการสร้าง ลบ การจัดเวลา การจัดจังหวะและการติดต่อสื่อสารภายในโปรเซส
ส่วนประกอบของโปรเซส
1. ชื่อและหมายเลขประจำตัว
เป็นชื่อหรือหมายเลขโปรเซส ซึ่งจะไม่มีการซ้ำกัน
2. คำสั่งโปรแกรม
เป็นคำสั่งที่สามารถรันได้ทันที (ภาษาเครื่อง)
3. ข้อมูล
คือ ข้อมูลที่โปรแกรมต้องการหรือนำไปใช้ประกอบการทำงาน ซึ่งข้อมูลนี้อาจจะเป็นข้อมูลของโปรเซสอื่นๆ ที่อาจใช้งานร่วมกันได้
4. บล็อกควบคุมโปรเซส (Process
Control Bolck : PCB )
PCB เป็นโตรงสร้างข้อมูลชนิดหนึ่งที่โอเอสสร้างขึ้นในหน่วยความจำเพื่อไว้เก็บข้อมูลสำคัญๆ ของโปรเซสต่างๆ ไว้ เช่น
- หมายเลขประจำตัวโปรเซส (Process Identification Number : Process ID
- สถานะโปรเซส Process State
- ลำดับความสำคัญของโปรเซส (Process Piority)
- พอยน์เตอร์ชี้ไปยังตำแหน่งที่อยู่ของโปรเซสในหน่วยความจำ (Location of Process)
- พอยน์เตอร์ชี้ไปยังทรัพยากรต่างๆ ที่โปรเซสครอบครอง (Current Resource and Limits)
- พื้นที่ที่เก็บค่าของรีจิสเตอร์ (Resgister save area)
- ช่วงเวลาสูงสุด เวลาสะสมในการทำงานของโปรเซส (Maximum run time and accumulated run time)
5. PSW (Program Status Words)เป็น ตัวควบคุมลำดับการรันคำสั่งของโปรเซส ซึ่งจะเก็บข้อมูลสถานะของโปรเซสแอดเดรสของคำสั่งต่อไปที่จะถูกรัน ซึ่งเปรียบ เสมือนโปรแกรม Counter
6. คุณสมบัติของโปรเซส
เป็นตัวกำหนดคุณสมบัติของแต่ละโปรเซส ซึ่งประกอบด้วย
- ลำดับความสำคัญ (Piority)โปรเซสแต่ละโปรเซสจะถูกกำหนดความสำคัญในขณะที่โปรเซสถูกสร้างขึ้น ความสำคัญโปรเซสนี้อาจเปลี่ยนแปลงได้หรือไม่ขึ้นอยู่กับตัวโอเอส แต่โอเอสจะให้สิทธิพิเศษกับโปรเซสที่มีความสำคัญสูง เช่น อาจให้ระยะเวลาในการครอบครองซีพียูที่ยาวนานกว่าโปรเซสอื่นๆ ทั่วไปหรือจะโปรเซสงานที่มีลำดับความสำคัญสูงเป็นอันดับแรกก่อน เป็นต้น
- อำนาจหน้าที่ (Authority) เป็นรายละเอียดที่บอกถึงโปรเซสนั้นๆ ว่าสามารถทำอะไรบ้าง ใช้อุปกรณ์ชิ้นไหนได้บ้าง ตัวอย่างเช่น โปรเซส เอ สามารถรับข้อมูลจากทุกๆโปรเซสในระบบได้ แต่ไม่สามารถใช้งานดิสก์ได้ เป็นต้น
- คุณสมบัติอื่นๆ ที่ตัวโอเอสเป็นตัวกำหนดให้มี
รูปที่ 2.3 Process Control Block (PCB)
อาจกล่าวได้ว่า PCB นี้เป็นศูนย์กลางในเก็บข้อมูลสำคัญทั้งหลายของทุกๆ โปรเซส เช่น ในระยะเวลาควอนตัม (Quantum time)
ที่กำลังโปรเซสงานหนึ่งอยู่ เมื่อครบเวลาแล้วแต่งานนั้นยังไม่เสร็จสิ้น
ก็จำเป็นต้องพักงานชั่วคราวเพื่อไปทำงานโปรเซสในลำดับต่อไปช่วงเวลานี้เป็นช่วงเวลาที่สำคัญมาก
เนื่องจากจะต้องเก็บข้อมูลสถานะต่างๆ ของโปรเซสนั้นไว้ใน PCB ก่อน ที่จะไปทำงานในโปรเซสอื่น ดังนั้นจะต้องพักงาน
ในโปรเซสนี้ชั่วคราวเพื่อไปทำงานในโปรเซสอื่น
แต่หลังจากกลับมาทำงานต่อจากโปรเซสเดิมที่พักชั่วคราวไว้
โอเอสหรือระบบปฏิบัติการจะต้องสามารถจัดการสานงานต่อจากงานเดิมได้
ดังนั้นหน้าที่ของโอเอสจะต้องเก็บสถานะและรายละเอียดสำคัญๆ
ของแต่ละโปรเซสไว้ใน PCB
สถานะของกระบวนการ (Process State)
ระบบคอมพิวเตอร์แบบหลายโปรแกรม (Multiprogramming)และแบบผู้ใช้หลายคน (Multiuser)จะมีกระบวนการที่
ทำงานอยู่ในระบบหลายกระบวนการพร้อมๆกันโดยที่บางกระบวนการกำลังขอเข้าใช้งานหน่วยประมวลผลกลาง (CPU)บาง
กระบวนการกำลังใช้งานหน่วยประมวลผลกลางอยู่บางกระบวนการกำลังร้องขออุปกรณ์รับ-ส่งข้อมูลอยู่พฤติกรรมของกระบวนการ
เหล่านี้เรียกอีกอย่างว่า "สถานะกระบวนการ"(State of Process)กระบวนการ(Process)หมายถึงคำสั่งในโปรแกรมที่ถูก
ประมวลผลด้วยหน่วยประมวลผลกลางหรืออีกในหนึ่ง ณ เวลาใดๆจะมีเพียงอย่างมาหนึ่งคำสั่งที่ดำเนินการอยู่สถานะของ
กระบวนการ(Processtate)กระบวนการต่างๆที่กำลังทำงานอยู่ในระบบเดียวกันจะมีการเปลี่ยนแปลงสถานะของกระบวนการถึง
5
สถานะด้วยกัน ซึ่งสถานะดังกล่าวจะถูกกำหนดขึ้นโดยกิจกรรม ณ
เวลาปัจจุบันที่กระบวนการนั้นๆกำลังกระทำอยู่โดยที่แต่ละ
กระบวนการจะตกอยู่ในสถานะใดสถานะหนึ่งจากสถานะทั้ง
5 ต่อไปนี้
New กระบวนการใหม่กำลังถูกสร้างขึ้น Running กระบวนการกำลังทำงานตามคำสั่งในโปรแกรม
Waiting กระบวนการกำลังรอคอยให้เหตุการณ์บางอย่างเกิดขึ้น
Ready กระบวนการกำลังรอคอยที่จะเข้าใช้หน่วยประมวลผล
Terminate กระบวนการเสร็จสิ้นการทำงาน orde�.. f.-..0�.0.�. windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>ตัวชี้หน่วยความจำที่ process ใช้อยู่Context dataข้อมูลที่อยู่ใน register ของ process ขณะถูกประมวลผลI/O status informationข้อมูลของ I/O ที่ process เกี่ยวข้องAccounting information ข้อมูลเกี่ยวกับเวลาของCPU ที่process ใช้, เวลาที่ใช้ไป, ช่วงเวลาที่สามารถใช้ได้และอื่นๆที่เกี่ยวข้อง
แสดงแผนภาพสถานการณ์ของกระบวนการ
1.New
เป็นสถานะของกระบวนการใหม่ที่กำลังถูกสร้างขึ้นหรือกระบวนการเลือกมาจากหน่วยความจำสำรอง(Disk)ซึ่งเป็นคำสั่งที่ผู้ใช้เรียกใช้ผ่าน Command Interpreterแปลเป็นคำสั่งไปเรียกระบบปฏิบัติการให้ดึงข้อมูลหรือโปรแกรมมาตามคำสั่งของผู้ใช้เพื่อเข้ามาประมวลผลในระบบ
เมื่อคำสั่งต่างๆถูกเรียกเข้ามาคำสั่งเหล่านั้นจะมาเข้าแถวรอในแถวงาน(Job
Queue) เตรียมเปลี่ยนสถานะเพื่อทำงาน2. Ready เป็นสถานะของกระบวนการที่เตรียมตัวเข้าไปใช้งานหน่วยประมวลผลกลางในสถานะนี้จะเปลี่ยนมาจาก New หรือ Waiting หรือ Running ก็ได้ กระบวนการที่มาจาก New, Waiting หรือ Running จะเข้าแถวคอยเพื่อเข้าไปใช้หน่วยประมวลผลกลางแถวคอยนี้เราเรียกว่า(Ready Queue)
3. Runningเป็นสถานะของกระบวนการที่ได้เข้าไปใช้งานหน่วยประมวลผลกลาง ณ เวลาใดเวลาหนึ่งจะมีเพียง 1 กระบวนการเท่านั้นที่อยู่ในสถานะนี้ของระบบ1ระบบ(มีเพียงกระบวนการเดียวเท่านั้นที่จะได้ใช้หน่วยประมวลผลกลางของแต่ละระบบ) เนื่องจากข้อจำกัดของประมวลผลกลางทำงานด้วยความเร็วสูงมาก จึงไม่มีปัญหาในเรื่องการรอ
4.Terminate เป็นสถานะของกระบวนการที่ได้รับการประมวลผลเสร็จเรียบร้อยแล้วหรือกระบวนการ มีการทำงานที่ผิดปกติ เช่น มีการหารด้วยศูนย์ระบบจะหยุดการทำงานของกระบวนการนั้น แล้วแจ้งให้ทราบถึงข้อผิดพลาดที่เกิดขึ้น (Error)
5. Waiting เป็นสถานะของกระบวนการที่ได้เข้าไปใช้หน่วยประมวลผลกลางแล้วและมีการเรียกใช้อุปกรณ์รับ - ส่งข้อมูลหรืออุปกรณ์ต่างๆซึ่งทรัพยากรเหล่านั้นยังไม่ว่างหรือมีกระบวนการอื่นใช้อยู่(เนื่องจาก CPU ทำงานเร็วกว่าอุปกรณ์รับส่งข้อมูลมาก)กระบวนการเล่านั้นจะเปลี่ยนจากRunningมารอในสถานะนี้อาจมีกระบวนการหลายกระบวนการรออยู่จึงมีการจัดคิวในการรอทรัพยากรต่างๆเรียกว่า Device Queue หรือ Waiting Queue
ตารางข้อมูลการประมวลผล (Process
Control Block)ระบบปฏิบัติการแทนกระบวนการต่างๆด้วยตารางข้อมูลของกระบวนการ PCB
ซึ่งก็เป็นระเบียนหรือตารางข้อมูลที่ใช้เก็บข้อมูลต่างๆที่เกี่ยวข้องกับแต่ละกระบวนการโดย
เฉพาะ
ดังรูปที่ 
แสดงตารางข้อมูลประมวลผล
ข้อมูลต่างๆที่ปรากฏใน PCB มีดังต่อไปนี้
- สถานะของกระบวนการ
(Process state)
กระบวนการต่างๆที่กำลังทำงานอยู่ในระบบเดียวกันจะมีการเปลี่ยนแปลงสถานะของกระบวนการถึง5สถานะด้วยกันซึ่งสถานะดังกล่าวจะถูกกำหนดขึ้นโดยกิจกรรม ณ
เวลาปัจจุบันที่กระบวนการนั้นๆกำลังกระทำอยู่โดยที่แต่ละกระบวนการจะตกอยู่ในสถานะใดสถานะหนึ่ง
- ตัวชี้โปรแกรม
(Program counter)
ใช้ตัวย่อว่า PC
เป็นตัวชี้หรือควบคุมลำดับการทำงานตามคำสั่งในโปรแกรมปกติจะทำงานโดยนับ 0,1,2,3.. ตามลำดับ การนับดังกล่าวจะชี้ให้เห็นตำแหน่งที่อยู่ของข้อมูลในหน่วยความจำซึ่งจะมีการนำไบต์ถัดไปของข้อมูลออกมา
- รีจิสเตอร์ของหน่วยประมวลผล
(CPU registers)
เป็นหน่วยความจำชั่วคราวความเร็วสูงที่ใช้ในการเก็บคำสั่งและข้อมูลสำหรับการประมวลผลภายในCPU
(ดังรูปที่ 3.4)
รีจิสเตอร์จะอยู่ภายในหน่วยประมวลผลกลางและจะถูกจัดการและควบคุมโดยหน่วยควบคุม (Control Unit) ซึ่งจะใช้เป็นแหล่งเก็บข้อมูลและคำสั่งภายในโปรแกรมที่จะถูกนำมาประมวลผลโดยทั่วไปแล้วรีจิสเตอร์จะแบ่งออกได้หลายแบบตามหน้าที่ของรีจิสเตอร์แต่ละ
ตัว
1.Instruction Register - เก็บส่วนของคำสั่งโปรแกรม
2.Address Register - เก็บส่วนแอดเดรสของคำสั่งโปรแกรม
3.Storage Register - เก็บข้อมูลที่โอนย้ายมาจากRAM
4.Accumulator - เก็บผลลัพธ์จากการประมวลผลชั่วคราว
ชนิดของรีจิสเตอร์ใช้เก็บข้อมูลที่จะทำการประมวลผลในทันทีได้แก่
1.Program Counter (PC) ใช้เก็บตำแหน่งของคำสั่งถัดไป
2.Instruction Register (IR) เก็บคำสั่งที่โหลดมาจากหน่วยความจำ(เก็บคำสั่งปัจจุบัน)
3.Memory Address Register (MAR) เก็บตำแหน่งข้อมูลที่จะอ่านเขียนหน่วยความจำ
4.Memory Buffer Register (MBR) เก็บข้อมูลที่จะอ่านหรือเขียนลงหน่วยความจำ
5.Accumulator (AC) เก็บ
ผลลัพธ์จากการประมวลผลชั่วคราว
-ข้อมูลในการจัดตารางทำงานของหน่วยประมวลผลกลาง(CPU-scheduling information)
เมื่อใดก็ตามที่ซีพียูว่างระบบปฏิบัติการจะเข้ามาเลือกโปรเซสตัวใดตัวหนึ่งที่พร้อมอยู่ในคิวเข้ามาใช้ซีพียูจะถูกจัดการด้วยส่วนที่
เรียกว่าตัวจัดตารางการทำงานระยะสั้น(Short-term
scheduler)หรือตัวจัดตารางการทำงานของซีพียู CPU Scheduler)
-สารสนเทศเกี่ยวกับการจัดการหน่วยความจำ(Memory-management information)
หน่วยความจำหลักเป็นศูนย์กลางของการทำงานต่างๆของระบบคอมพิวเตอร์ในปัจจุบันซึ่งประกอบด้วยที่เก็บข้อมูลย่อยเป็นไบต์(Byte)หรือเวิร์ด(Word)โดยแต่ละไบต์จะมีเลขที่บอกตำแหน่ง(Address)ของตัวเองการใช้งานหน่อยความจำหลักทำได้โดยการอ่านหรือเขียนข้อมูลที่ตำแหน่งต่างๆเหล่านี้ซึ่งตามปกติหน่วยประมวลกลางจะเป็นผู้ใช้งาน
(เพิ่มเติมในบทที่8)
- ข้อมูลทางการบัญชี(Accounting
information)เป็นข้อมูลที่บอกว่ากระบวนการนี้ถูกเรียกใช้บ่อยแค่ไหนเป็นเวลาเท่าใด
Process
Scheduling
วัตถุของหลายๆโปรแกรมจะมีบางกระบวนการที่ทำงานตลอดเวลาอยู่เพื่อประโยชน์สูงสุดของซีพียูtime sharingของวัตถุจะมีการสลับการเข้าใช้ซีพียูโดยกระบวนการจะมีความถี่ตามขณะที่ผู้ใช้กำลังตอบโต้กับโปรแกรมใช้งานที่กำลังทำงานอยู่วัตถุที่จะทำงานจะถูกเลือกโดยProcess scheduler
รูปที่ คิวที่พร้อมทำงานและ
การเปลี่ยนแปลงคิวของอุปกรณ์ I/O
สำหรับกระบวนการที่มีอยู่นั้นของโปรแกรมจะทำงานอยู่บนซีพียูถ้ามีหลายกระบวนการที่หลับอยู่จนกระทั่งซีพียูมีอิสระจะสามารถกลับเข้ามายัง Scheduler ได้อีก Scheduling Queuesเมื่อกระบวนการได้เข้าสู่ระบบ มันจะถูกนำเข้าไปใส่ไว้ใน job queue ซึ่งจะประกอบด้วย
กระบวนการทั้งหมดที่มีอยู่ในระบบ และกระบวนการจะถูกนำเข้าสู่หน่วยความจำหลักเพื่อเตรียมตัวและรอการเข้าไปประมวลผล โดยจะขึ้นอยู่กับรายการ ซึ่งจะถูกเรียกว่า ready queue โดยคิวจะมีรูปแบบในการเก็บทั่ว ๆ ไปคือ แบบ ลิงค์ลิสต์ ส่วนหัวของ ready queue จะประกอบไปด้วย pointer สำหรับชี้ไปยังตำแหน่งแรก หรือตำแหน่งสุดท้ายในรายการของ PCBs PCB จะรวมถึง pointer ที่จะชี้ไปยังจุด PCB ถัดไปภายใน ready queue

กระบวนการที่สร้างขึ้นมาใหม่จะถูกนำไปใส่ใน ready queue มันจะรอไปจนกระทั่งถูกเลือกขึ้นมาทำงาน หรือ dispatched เมื่อกระบวนการถูกนำเข้าไปทำงานบนซีพียู หนึ่งในหลายๆเหตุการณ์ก็จะสามารถเกิดขึ้นได้
.
Queuing diagram แสดงถึงตารางการทำงานของกระบวนการ
กระบวนการสามารถที่จะสร้างกระบวนการย่อยได้และสำหรับการรอของกระบวนการย่อยจะสิ้นสุดลงด้วยตัวมันเองเราสามารถที่จะลบกระบวนการออกจากซีพียูได้โดยการบังคับซึ่งจะได้ผลลัพธ์ของการขัดจังหวะและจะถูกนำไปใส่ลงใน
readyqueue
ในหนึ่งสองกรณีที่เหตุการณ์ของกระบวนการที่จะทำการสลับจากสถานการณ์รอไปสู่สถานะพร้อมและมันจะถูกนำไปใส่ใน
ready queueกระบวนการจะทำงานต่อเนื่องไปเป็นวงจรจนกระทั่งสิ้นสุดการทำงานและเมื่อเราลบออกจากคิวทั้งหมดแล้วPCB และทรัพยากรจะถูกนำกลับคืนมา
สถานะของโปรเซส
ระบบมัลติโปรแกรมมิ่ง คือ การจัดให้ process สามารถเข้าประมวลผลได้ตลอดเวลา
ระบบแบ่งเวลา คือ การสลับ process เข้าใช้ CPU บ่อย เท่าที่ผู้ใช้รู้สึกว่าทุก process ตอบสนองได้ตลอดเวลา
1. Device queue คือ การจัดคิวของโปรเซสต่าง ๆ เช่น คิวของ I/O คิวของการรอ child process หรือคิวของอินเทอร์รัพต์ เป็นต้น
เมื่อกระบวนการเข้าไปในระบบ จะถูกส่งเข้า job queue ซึ่ง queue จะรวบรวม process ทั้งหมดในระบบ และมีคำหลาย ๆ คำเกี่ยวกับการเข้าคิว เช่น ready, blocked และ running แต่ถ้า process รอเข้า I/O devices จะเรียกว่า device queue ซึ่งทุกอุปกรณ์จะมี device queue ของตนเอง
processes จะย้ายไปมาระหว่าง queue ต่าง ๆ โดยระบบปฏิบัติการมีหน้าที่เลือกตามวัตถุประสงค์ และความเหมาะสม ซึ่งถูกจัดการโดย scheduler สำหรับแต่ละ Device queue ต่างก็มี scheduler ของตนเอง และมี scheduler ส่วนกลาง ควบคุมการทำงานของ process ทั้งหมดอีกครั้งหนึ่ง
2. Contect switch คือ การทำงานที่ขึ้นกับความสามารถของฮาร์ดแวร์ เป็นการเลื่อน process ไปยังคิวต่อไป ในกรณีที่มีจำนวนโปรเซสมากกว่าชุดของรีจิสเตอร์ที่มีอยู่ ระบบจะคัดลอกโปรเซสส่วนเกินไปเป็นอีกชุดหนึ่ง เพื่อให้โปรเซสที่จำเป็นต้องเข้ามาได้ใช้รีจิสเตอร์ปัจจุบันได้ สำหรับรายละเอียดการจัดการโปรเซสขึ้นกับความสามารถของ OS เป็นเทคนิคที่หลีกเลี่ยงปัญหาคอขวดของระบบ
หลังประมวลผล Process หนึ่งเรียบร้อย ต้องย้ายไปยัง Process ใหม่ หรือ การย้ายจากหน่วยประมวลผลไปยังอีกกระบวนการหนึ่ง ต้องการ saving the stat of the old process and loading the saved state for the new process ซึ่งงานนี้ถูกเรียกว่า context switch สำหรับคำว่า context of process อาจแทนด้วย PCB of a process
Mutual exclusion
คือ การกีดกั้น ในบริเวณ หรือส่วนของโปรแกรมที่ process เข้าครอบครองรีซอร์ส ซึ่งเรียกว่า Critical region ซึ่งการกีดกั้นก็คือการไม่ยอมให้ process ใด ๆ เข้าใช้พื้นที่
ระบบแบ่งเวลา คือ การสลับ process เข้าใช้ CPU บ่อย เท่าที่ผู้ใช้รู้สึกว่าทุก process ตอบสนองได้ตลอดเวลา
1. Device queue คือ การจัดคิวของโปรเซสต่าง ๆ เช่น คิวของ I/O คิวของการรอ child process หรือคิวของอินเทอร์รัพต์ เป็นต้น
เมื่อกระบวนการเข้าไปในระบบ จะถูกส่งเข้า job queue ซึ่ง queue จะรวบรวม process ทั้งหมดในระบบ และมีคำหลาย ๆ คำเกี่ยวกับการเข้าคิว เช่น ready, blocked และ running แต่ถ้า process รอเข้า I/O devices จะเรียกว่า device queue ซึ่งทุกอุปกรณ์จะมี device queue ของตนเอง
processes จะย้ายไปมาระหว่าง queue ต่าง ๆ โดยระบบปฏิบัติการมีหน้าที่เลือกตามวัตถุประสงค์ และความเหมาะสม ซึ่งถูกจัดการโดย scheduler สำหรับแต่ละ Device queue ต่างก็มี scheduler ของตนเอง และมี scheduler ส่วนกลาง ควบคุมการทำงานของ process ทั้งหมดอีกครั้งหนึ่ง

2. Contect switch คือ การทำงานที่ขึ้นกับความสามารถของฮาร์ดแวร์ เป็นการเลื่อน process ไปยังคิวต่อไป ในกรณีที่มีจำนวนโปรเซสมากกว่าชุดของรีจิสเตอร์ที่มีอยู่ ระบบจะคัดลอกโปรเซสส่วนเกินไปเป็นอีกชุดหนึ่ง เพื่อให้โปรเซสที่จำเป็นต้องเข้ามาได้ใช้รีจิสเตอร์ปัจจุบันได้ สำหรับรายละเอียดการจัดการโปรเซสขึ้นกับความสามารถของ OS เป็นเทคนิคที่หลีกเลี่ยงปัญหาคอขวดของระบบ
หลังประมวลผล Process หนึ่งเรียบร้อย ต้องย้ายไปยัง Process ใหม่ หรือ การย้ายจากหน่วยประมวลผลไปยังอีกกระบวนการหนึ่ง ต้องการ saving the stat of the old process and loading the saved state for the new process ซึ่งงานนี้ถูกเรียกว่า context switch สำหรับคำว่า context of process อาจแทนด้วย PCB of a process
Mutual exclusion
คือ การกีดกั้น ในบริเวณ หรือส่วนของโปรแกรมที่ process เข้าครอบครองรีซอร์ส ซึ่งเรียกว่า Critical region ซึ่งการกีดกั้นก็คือการไม่ยอมให้ process ใด ๆ เข้าใช้พื้นที่
โปรเซสสื่อประสาน (Cooperating process)
โปรเซสที่ประมวลผลในระบบอาจเป็นได้มีได้ 2 แบบคือโปรเซสอิสระ (Independent
process) ซึ่งทำงานโดยไม่มีผลกระทบ หรือได้รับผลกระทบจากโปรเซสอื่น
เป็นอิสระที่ไม่มีการแบ่งปันทรัพยากรร่วมกับใคร ส่วนโปรเซสสื่อประสาน
(Cooperating process) อาจได้รับผลกระทบ หรือส่งผลกระทบต่อโปรเซสอื่น
หรือกล่าวได้ว่ามีการใช้ทรัพยากรร่วมกับโปรเซสอื่น 4 การปฏิบัติการบนโปรเซส
5 โปรเซสสื่อประสาน (Cooperating process)
7 แบบของการประมวลผล 1. การประมวลผลแบบเดี่ยว (Single processing) หรือ Sequential processing (one result / m cycles) 2. การประมวลผลแบบพหุ (Multi processing) หรือ Pipelining (one result / cycle) 3. การประมวลผลแบบขนาน (Parallel processing) หรือ Parallel processing (n results / m cycles) อ้างอิง:www.chantra.sru.ac.th
แบบฝึกหัดบทที่
2
1.สถานะของโปรเซสมีอะไรบ้างจงอธิบาย
ตอบ สถานะต่างๆ ในการทำงานของโปรเซสจะมีสถานะใดสถานะหนึ่งเท่านั้น ซึ่งจะมีหลายสถานะด้วยกัน ดังนี้
รูปที่ 2.4 โอเอสจะจัดสรรและจัดการโปรเซสจำนวนมากมายให้ทำงานได้อย่างไร
1. New
คือโปรเวสที่เพิ่งสร้างขึ้น
2.Ready
คือสถานะที่โปรเซสพร้อมที่จะใช้งานซีพียูทันทีที่โอเอสที่มอบหมายให้
โดยสถานะนี้อยู่ในสถานะพร้อมที่จะรันเท่านั้น
ยังไม่มีการรันหรือเอ็กซ์คิวต์แต่อย่างใด
3. Running
คือสถานะที่โปรเซสครอบครองซีพียู หรือซีพียูมีการเอ็กซ์คิวต์คำสั่งของโปรเซสนั้น
4. Waiting
คือสถานะโปรเซสนั้นกำลังรอเหตุการณ์อะไรบ้างอย่าง
5. Block
คือสถานะที่เกิดการขัดจังหวะการอุปกรณ์อินพุต/เอาต์พุต ซึ่งก็คืออินเตอร์รัพต์
6.Terminated
คือสถานะของโปรเซสที่ประมวลผลเสร็จสิ้น
2.เวลาQuanyum timeคืออะไร
ตอบ เวลาควอนตัม(Quantum Time) คือระยะเวลาที่ระบบปฏิบัติการกำหนดไว้ให้กับโปรเซสในการอยู่ในสถานะ Running ของโปรเซสซึ่งจะเป็นระยะเวลาหน่วยเล็กที่สุด
3.ปัญหาDeadLockเกิดขึ้นได้อย่างไร
ตอบ การติดตายเกิดจากสาเหตุ 4 ประการ ดังนี้ 1.การบังคับไม่ให้โปรเซสเข้าใช้ทรัพยากร ทำให้โปรเซสอื่นๆ ไม่สามารถเข้าใช้ทรัพยากรในขณะที่ทรัพยากรนั้นถูกครอบครองโดยโปรเซสใดโปรเซสหนึ่งอยู่ 2.การครองทรัพยากรค้างไว้ในขณะที่ร้องขอใช้ทรัพยากรอีกอย่างหนึ่ง 3.การที่ไม่สามารถปลดปล่อยทรัพยากรที่ครองอยู่ได้ เนื่องจากจะก่อให้เกิดความเสียหายต่องานที่กำลังทำอยู่
4.สถานะBlockเกิดขึ้นได้อย่างไร
ตอบ เกิดการขัดจังหวะจากอุปกรณ์อินพุต/เอาต์พุต ซึ่งก็คือการอินเตอร์รัพต์
5.การติดต่อกันระหว่างProcessเปนหน้าที่ของใคร
ตอบ หน่วยความจำร่วม
6.พอร์ทมีกี่เเบบอะไรบ้าง
ตอบ 3เเบบ
1.พอร์ทเเบบคิว
2.พอร์ตเเบบไปป์
3.พอร์ทเเบบเเสต๊ก
7.จงยกตัวอย่างพอร์ตเเบบเเสต๊ก
ตอบ ข้อมูลชุดใดที่ถูกส่งเข้ามาก่อนจะถูกดึงออกทีหลัง ข้อมูลที่จะถูกดึงออกจากพอร์ทคือข้อมูลชุดหลังสุดที่ถูกส่งเข้ามาในพอร์ท
8. Mutual exclusion เกิดขึ้นได้อย่างไร
ตอบ การกีดกั้นไม่ยอมให้โปรเซสใด ๆ เข้าใช้พื้นที่ที่เป็น Critical region
9. ปัญหาการอดตายเกิดขึ้นได้อย่างไร ตอบ เมื่อโปรเซสใดโปรเซสหนึ่ง ต้องการใช้อุปกรณ์พร้อมกัน โปรเซสที่จะได้ใช้ก่อนก็คือโปรเซสที่มีลำดับความสำคัญสูงกว่า
10. องค์ประกอบของโปรเซส มีอะไรบ้าง
ตอบ 1) หมายเลขโปรเซส 5) PSW 2) โค๊ดโปรแกรม 6) คุณสมบัติของโปรเซส 3) ข้อมูล 4) บล็อคควบคุมโปรเซส |
ความคิดเห็น
แสดงความคิดเห็น