โดย นาย พัทธนันท์ อุรัตน์ รหัสนักศึกษา 6031280059
โปรเซส คือ โปรแกรมที่กำลังถูกเอ็กซิคิวซ์ เราอาจเปรียบเทียบโปรแกรมเหมือนกับรถยนต์ที่จอดนิ่งอยู่ ที่พร้อมที่จะวิ่งไปในระบบหลายโปรแกรม (Multiprogramming) โปรเซสอาจเปรียบกับรถยนต์ที่วิ่งออกจากจุดเริ่มต้น ถ้ามีหลายโปรเซสอยู่ในระบบก็เหมือนกับการที่เรามีรถหลายคันที่จะต้องออกวิ่งไปพร้อม ๆ กัน ตัวซีพียูเปรียบได้กับคนขับรถยนต์ ถ้าซีพียูมีตัวเดียวก็เหมือนกับคนขับรถมีเพียงคนเดียว ดังนั้นเมื่อรถหลายคันออกวิ่งการที่คนขับรถคนเดียวจะพารถหลาย ๆ คันวิ่งไปต้องขับทีละคันให้วิ่งเดินหน้าไปทีละนิด เวียนเปลี่ยนไปจนครบทุกคัน จนถึงจุดหมายปลายทาง (โปรแกรมสิ้นสุดลง) นั้นคือ เรามีโปรเซสหลาย ๆ โปรเซสทำงานพร้อม ๆ กัน ได้โดยมีซีพียูเพียงตัวเดียว
องค์ประกอบของโปรเซส ประกอบด้วย 6 ส่วนคือ
1. ชื่อและหมายเลขประจำตัว (Process ID)
เป็นชื่อหรือหมายเลขโปรเซส ซึ่งจะไม่มีการซ้ำกัน
2. คำสั่งโปรแกรม (Program Code)
เป็นคำสั่งที่สามารถรันได้ทันที (ภาษาเครื่อง)
3. ข้อมูล (Data)
คือ ข้อมูลที่โปรแกรมต้องการหรือนำไปใช้ประกอบการทำงาน ซึ่งข้อมูลนี้อาจจะเป็นข้อมูลของโปรเซสอื่นๆ ที่อาจใช้งานร่วมกันได้
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)
4.1 Pointer: ชี้ตำแหน่งของโปรเซสที่อยู่ในหน่วยความจำและตำแหน่งของ ทรัพยากร
ที่โปรเซสครอบครองอยู่
4.2 Process State: แสดงสถานะของโปรเซสที่เป็นอยู่ในปัจจุบัน
4.3 Process ID: หมายเลขประจำตัวของโปรเซส
4.4 Program Counter: ตัวนับที่แสดงที่อยู่ของคำสั่งต่อไปที่จะถูกเอ็กซิคิวต์สำหรับ
โปรเซส นี้
4.5 Register: เก็บข้อมูลสถานะระบบเมื่อมี Interrupt
4.6 CPU Scheduling Info: ข้อมูลลำดับความสำคัญของโปรเซส
4.7 Memory Management Info: ข้อมูลเกี่ยวกับหน่วยความจำที่ OS กำหนดไว้
4.8 Account Information: ข้อมูลประกอบด้วย จำนวน CPU, เวลาที่กำหนด,หมายเลข Account, หมายเลขโปรเซส
4.9 I/O Status Information: ข้อมูลที่แสดงรายการของอุปกรณ์ I/O ที่โปรเซสนี้ใช้
5. PSW (Program Status Word) เป็นตัวควบคุมลำดับการ เอ็กซิคิวต์คำสั่งของ โปรเซส และเก็บข้อมูลเกี่ยวกับสถานะของโปรเซส ที่อยู่ของคำสั่งที่จะเอ็กซิคิวต์ต่อไป
6.คุณสมบัติของโปรเซส
เป็นตัวกำหนดคุณสมบัติของแต่ละโปรเซส ซึ่งประกอบด้วย
- ลำดับความสำคัญ (Piority)โปรเซสแต่ละโปรเซสจะถูกกำหนดความสำคัญในขณะที่โปรเซสถูกสร้างขึ้น ความสำคัญโปรเซสนี้อาจเปลี่ยนแปลงได้หรือไม่ขึ้นอยู่กับตัวโอเอส แต่โอเอสจะให้สิทธิพิเศษกับโปรเซสที่มีความสำคัญสูง เช่น อาจให้ระยะเวลาในการครอบครองซีพียูที่ยาวนานกว่าโปรเซสอื่นๆ ทั่วไปหรือจะโปรเซสงานที่มีลำดับความสำคัญสูงเป็นอันดับแรกก่อน เป็นต้น
- อำนาจหน้าที่ (Authority) เป็นรายละเอียดที่บอกถึงโปรเซสนั้นๆ ว่าสามารถทำอะไรบ้าง ใช้อุปกรณ์ชิ้นไหนได้บ้าง ตัวอย่างเช่น โปรเซส เอ สามารถรับข้อมูลจากทุกๆโปรเซสในระบบได้ แต่ไม่สามารถใช้งานดิสก์ได้ เป็นต้น
- คุณสมบัติอื่นๆ ที่ตัวโอเอสเป็นตัวกำหนดให้มี
สถานะของโปรเซส
ในขณะที่เอ็กซิคิวต์โปรเซสอยู่นั้น โปรเซสจะมีการเปลี่ยนแปลงสถานะอยู่ตลอดเวลาสามารถแบ่งสถานะดังนี้
![]() | ||
โอเอสจะจัดสรรและจัดการโปรเซสจำนวนมากมายให้ทำงานได้อย่างไร |
1. Newคือโปรเวสที่เพิ่งสร้างขึ้น
2.Readyคือสถานะที่โปรเซสพร้อมที่จะใช้งานซีพียูทันทีที่โอเอสที่มอบหมายให้ โดยสถานะนี้อยู่
ในสถานะพร้อมที่จะรันเท่านั้น ยังไม่มีการรันหรือเอ็กซ์คิวต์แต่อย่างใด
3. Runningคือสถานะที่โปรเซสครอบครองซีพียู หรือซีพียูมีการเอ็กซ์คิวต์คำสั่งของโปรเซสนั้น
4. Waitingคือสถานะโปรเซสนั้นกำลังรอเหตุการณ์อะไรบ้างอย่าง
5. Blockคือสถานะที่เกิดการขัดจังหวะการอุปกรณ์อินพุต/เอาต์พุต ซึ่งก็คืออินเตอร์รัพต์
6.Terminatedคือสถานะของโปรเซสที่ประมวลผลเสร็จสิ้น
ขั้นตอนการเปลี่ยนแปลงการสถานะของโปรเซส
* เมื่อผู้ใช้ต้องการส่งงานให้เครื่องคอมพิวเตอร์ทำงาน OS จะเป็นผู้ที่รับทราบความต้องการนี้ และจะเตรียมสร้างโปรเซสให้กับงานใหม่ที่ถูกส่งเข้ามา
* OS จะต้องพิจารณาว่าเนื้อที่หน่วยความจำหลักของระบบมีเพียงพอหรือไม่
- ถ้าเพียงพอก็จะทำการสร้างโปรเซสใหม่โดยเก็บไว้ในหน่วยความจำหลัก
- ถ้าไม่เพียงพอก็จะต้องรอจนกว่าจะมีโปรเซสอื่นจบลงและมีเนื้อที่ในหน่วยความจำเหลือมากพอ
- ถ้าเพียงพอก็จะทำการสร้างโปรเซสใหม่โดยเก็บไว้ในหน่วยความจำหลัก
- ถ้าไม่เพียงพอก็จะต้องรอจนกว่าจะมีโปรเซสอื่นจบลงและมีเนื้อที่ในหน่วยความจำเหลือมากพอ
* เมื่อโปรเซสถูกสร้างขึ้นมาใหม่จะอยู่ในสถานะพร้อมก่อน ยังไม่สามารถเข้าไปใช้งาน CPU ได้
* สาเหตุที่โปรเซสไม่สามารถเข้าใช้งาน CPU ได้ทันที
- เนื่องจากระบบคอมพิวเตอร์ในปัจจุบันเป็นระบบที่มีผู้ใช้หลายคนในเวลาเดียวกัน
- ทำให้มีโปรเซสมากมายเกิดขึ้น ซึ่งโปรเซสเหล่านี้ต้องการใช้ CPU ทั้งสิ้น
- ต้องมีการจัดคิวและแจ้งสถานะพร้อมให้กับโปรเซสไว้ก่อน
- เมื่อโปรเซสที่ใช้งาน CPU ทำงานเสร็จสิ้นหรือถูกยกเลิก ทำให้ CPU จะว่าง โปรเซสต่อไปที่อยู่ในคิวก็จะเลื่อนเข้าไปใช้ CPU (เปลี่ยนสถานะจากพร้อมเป็นสถานะรัน)
- เหตุการณ์ทั้งหมดผู้ที่ทำหน้าที่ควบคุมการทำงานคือ OS
- เนื่องจากระบบคอมพิวเตอร์ในปัจจุบันเป็นระบบที่มีผู้ใช้หลายคนในเวลาเดียวกัน
- ทำให้มีโปรเซสมากมายเกิดขึ้น ซึ่งโปรเซสเหล่านี้ต้องการใช้ CPU ทั้งสิ้น
- ต้องมีการจัดคิวและแจ้งสถานะพร้อมให้กับโปรเซสไว้ก่อน
- เมื่อโปรเซสที่ใช้งาน CPU ทำงานเสร็จสิ้นหรือถูกยกเลิก ทำให้ CPU จะว่าง โปรเซสต่อไปที่อยู่ในคิวก็จะเลื่อนเข้าไปใช้ CPU (เปลี่ยนสถานะจากพร้อมเป็นสถานะรัน)
- เหตุการณ์ทั้งหมดผู้ที่ทำหน้าที่ควบคุมการทำงานคือ OS
![]() |
การเปลี่ยนสถานะ (State) ของโปรเซส |
ในสถานะ Running คือสถานะที่โปรเซสกำลังรันงานอยู่ เมื่อรันงานจนเสร็จสิ้นโปรเซสนั้นก็จะ Terminated หมายถึงการจบลงของโปรเซส ซึ่งการจบลงของโปรเซสนั้นอาจเกิดจากการรันงานจนเสร็จสิ้น หรือเกดิจากการยกเลิกการทำงานจากผู้ใช้ก็เป็นได้จากรูปที่ 2.5 เป็นรูปแบบการโปรเซสแบบง่ายๆ แต่ในกรณีที่มีหลายๆ โปรเซสต้องการใช้งานซีพียูเพื่อรันงานของตน เมื่อโปรเซสเปลี่ยนสถานะจาก Ready เป็น Running ซีพียูจะว่างก็ต่อเมื่อโปรเซสรันจบเท่านั้น ซึ่งหากโปรเซสนั้นมีช่วงระยะเวลาทำงานยาว ทำให้มีการครอบครองซีพียูยาวนาน ก็จะส่งผลให้โปรเซสอื่นๆ ที่อยู่ในสถานะ Ready รอคิวการใช้งานนาน ดังนั้นโอเอสจึงมีการกำหนดระยะเวลาควอนตัม (Quantum Time) ของแต่ละโปรเซสกล่าวคือหากมีครอบครองซีพียูจนครบระยะเวลาควอนตัม ก็จะทำการย้ายโปรเซสนั้นกลับไปอยู่สถานะ Ready เข้าไปต่อคิวใหม่ และนำโปรเซส Ready ที่อยู่ต้นคิวเข้ามารันในซีพียูแทน การทำงานจะทำงานในลักษณะเป็นรอบๆ วนไปเรื่อยๆ จนกระทั่งโปรเซสจบลงดังรูปต่อไปนี้
![]() |
การเปลี่ยนสถานะของโปรเซสระหว่าง Running และ Ready
|
กรณีที่ระบบมีงานมากเกินไป OS ไม่สามารถตอบสนองการทำงานของโปรเซสทั้งหมดได้
OS จะนำเอาโปรเซสบางโปรเซสไปเก็บไว้ในสถานะรอชั่วคราวก่อน รอจนจำนวนโปรเซสในระบบลดลงมาอยู่ในระดับปกติ จึงค่อยย้ายโปรเซสเหล่านั้นกลับมาทำงาน
ลำดับชั้นของโปรเซส (Process Hierarchy)
เมื่อผู้ใช้ส่งงานให้กับระบบรัน OS จะทำการสร้างโปรเซสสำหรับงานนั้นขึ้นมา
การทำงานของ OS ก็ถือว่าเป็นงานของระบบดังนั้นจะมีการสร้างโปรเซสขึ้นเหมือนกัน
นอกจากนั้นโปรเซสที่ถูกสร้างขึ้นก็สามารถสร้างโปรเซสย่อยได้
โปรเซสที่ให้กำเนิด เราเรียกว่าโปรเซสแม่ (parent process)
โปรเซสย่อยที่เกิดขึ้น เราเรียกว่าโปรเซสลูก (child process)
โดยทั่วไป เมื่อโปรเซสแม่จบลง โปรเซสต่าง ๆ ที่อยู่ภายใต้ตัวมันก็จะจบลงตามไปด้วย
แต่ OS บางตัวยอมให้โปรเซสแม่จบลง โดยที่โปรเซสลูกไม่ต้องจบลงตามไปด้วย ในกรณีนี้โปรเซสลูกก็จะไม่มีโปรเซสแม่
จากตัวอย่างในรูป โปรเซส A จะมีโปรเซสลูก 3 โปรเซสคือ B,C และ D
ถึงแม้ว่าโปรเซส A เป็นโปรเซสแม่ของโปรเซส B,C และ D แต่โปรเซส A ไม่ได้เป็นผู้ที่สร้างโปรเซส B,C และ D
ผู้ที่สร้างโปรเซสทั้งหมดได้แก่ OS ซึ่ง OS จะมีโปรเซสหนึ่งทำหน้าที่สร้างและยุติโปรเซส คือ “ตัวจัดคิวระยะยาว”
คำถาม
โปรเซส F,G,H นั้นถูกสร้างโดยโปรเซส D ใช่หรือไม่
ใครเป็นผู้ที่สร้างโปรเซส A
โปรเซสสื่อประสาน (Cooperating process)
โปรเซสที่ประมวลผลในระบบอาจเป็นได้มีได้ 2
- แบบคือโปรเซสอิสระ (Independent process) ซึ่งทำงานโดยไม่มีผลกระทบ หรือได้รับผลกระทบจากโปรเซสอื่น เป็นอิสระที่ไม่มีการแบ่งปันทรัพยากรร่วมกับใคร
- ส่วนโปรเซสสื่อประสาน (Cooperating process) อาจได้รับผลกระทบ หรือส่งผลกระทบต่อโปรเซสอื่น หรือกล่าวได้ว่ามีการใช้ทรัพยากรร่วมกับโปรเซสอื่น และเหตุที่ทำให้เกิดโปรเซสสื่อประสานอาจมีได้ดังนี้
เหตุผลที่ทำให้เกิดการประสานงานระหว่างโปรเซส
ต้องการใช้ข้อมูลร่วมกัน
ต้องการเพิ่มความเร็วในการคำนวณ
การติดต่อระหว่างโปรเซส (Interprocess communication)
เมื่อโปรเซส A ต้องการติดต่อกับโปรเซส B
โปรเซส A และ B จะต้องจองเนื้อที่ในหน่วยความจำในส่วนที่ว่างเอาไว้
ทั้ง 2 โปรเซสต้องรู้ว่าหน่วยความจำร่วมนี้อยู่ที่ใด
เมื่อโปรเซส A ส่งข้อมูลให้โปรเซส B ข้อมูลจะถูกส่งไปไว้ในหน่วยความจำร่วม
*เมื่อโปรเซสต้องการใช้ข้อมูลของโปรเซสอื่น โปรเซสที่ถูกร้องขอจะส่งข้อมูลไปให้ การที่โปรเซสต่าง ๆ มีการติดต่อกันเช่นนี้ เราเรียกว่า การติดต่อระหว่างโปรเซส
*โดยทั่วไปการติดต่อระหว่างโปรเซสนั้นจะใช้วิธีการคือ การใช้หน่วยความจำร่วม (Shared memory)
*กลไกการรับส่งข้อมูลผ่านทางหน่วยความจำร่วมนี้ OS จะไม่ช่วยจัดการให้โปรเซสที่ต้องการติดต่อกันจะต้องจัดการเอาเอง
เมื่อโปรเซส A ต้องการติดต่อกับโปรเซส B
- โปรเซส B จะตรวจสอบได้เองว่าโปรเซส A นำข้อมูลไปวางไว้แล้วหรือยัง
- ถ้าโปรเซส A ยังไม่ส่งข้อมูลมา โปรเซส B ก็จะยังไม่ดึงเอาข้อมูลมาใช้
- นอกจากนั้นโปรเซส B ยังต้องสามารถตรวจสอบได้ว่าข้อมูลที่อยู่ในหน่วยความจำร่วมนั้นเป็นข้อมูลเก่าที่เคยนำมาใช้แล้วหรือยัง
- สำหรับโปรเซส A ถ้าจะส่งข้อมูลชุดใหม่ให้ โปรเซส A จะต้องตรวจสอบก่อนว่าข้อมูลชุดเดิมที่อยู่ในหน่วยความจำร่วมนั้นถูกนำไปใช้หรือยัง ถ้าถูกนำไปใช้แล้วก็จะนำข้อมูลชุดใหม่ทับลงไป
นอกจากการใช้หน่วยความจำร่วมแล้วยังมีวิธีอื่นที่มีความสะดวกมากกว่าและเป็นมาตรฐาน คือการใช้พอร์ท (Port)
พอร์ท คือพื้นที่ในหน่วยความจำส่วนหนึ่งที่ OS จัดไว้เพื่อให้โปรเซสต่าง ๆ ใช้ร่วมกันได้
โดย OS จะทำหน้าที่เป็นผู้ให้จังหวะในการรับส่งข้อมูลให้กับแต่ละโปรเซส เช่น
ถ้าโปรเซส A ต้องการใช้ข้อมูลจากโปรเซส B OS จะเป็นผู้ค้นหาข้อมูล B จากพอร์ท ถ้าพบก็จะให้โปรเซส A รับข้อมูลไป แต่ถ้าไม่พบก็จะให้โปรเซสนั้นหยุดรอจนกว่าจะมีข้อมูลถูกส่งมาไว้ที่พอร์ท
พอร์ทในปัจจุบันมี 3 แบบ
พอร์ทแบบคิว โครงสร้างของพอร์ทแบบนี้ข้อมูลชุดใดที่ถูกส่งเข้าพอร์ทก่อนจะถูกดึงออกไปก่อน ข้อมูลชุดใดที่ถูกส่งเข้าพอร์ททีหลังจะถูกดึงออกไปทีหลัง
พอร์ทแบบไปป์ มีลักษณะการทำงานเหมือนพอร์ทแบบคิว แต่ไปป์มีความยาวของพอร์ทไม่จำกัด ในขณะที่พอร์ทแบบคิวมีความยาวของพอร์ทคงที่
พอร์ทแบบแสต๊ก มีกลไกการทำงานโดยข้อมูลชุดใดที่ถูกส่งเข้าพอร์ทก่อนจะถูกดึงออกไปใช้ทีหลังก่อน ข้อมูลชุดใดที่ถูกส่งเข้าพอร์ททีหลังจะถูกดึงออกไปใช้ก่อน
การเข้าจังหวะของโปรเซส (Process Synchronization)
ในการใช้ทรัพยากรโดยเฉพาะอย่างยิ่งข้อมูลอาจก่อให้เกิดปัญหาที่ทำให้การทำงานไม่ถูกต้อง
ตัวอย่าง
เริ่มต้นค่า X = 10
โปรเซสที่ 1 มีการเพิ่มค่า X จากเดิม 10
โปรเซสที่ 2 มีการลบค่า X ลง 10
ผลจากการทำงานจะเป็นดังนี้ (10+10-10) = 10
จากรูปจะเห็นว่าถ้าโปรเซสที่ 1 และ 2 มีการทำงานที่เป็นอิสระอาจทำให้ผลลัพธ์เกิดความผิดพลาดขึ้น
ดังนั้นเพื่อป้องกันความผิดพลาดที่เกิดขึ้น จะต้องมีการจัดจังหวะการทำงานให้กับแต่ละโปรเซสสำหรับการใช้ข้อมูลร่วมกัน
จากตัวอย่างควรกำหนดว่าเมื่อโปรเซสใดได้เข้ามาครอบครองข้อมูล โปรเซสอื่น ๆ ที่ต้องการใช้ข้อมูลตัวเดียวกันจะต้องหยุดรอให้โปรเซสแรกใช้งานให้เสร็จก่อน
จากรูปจะเห็นว่าถ้าโปรเซสที่ 1 และ 2 มีการทำงานที่เป็นอิสระอาจทำให้ผลลัพธ์เกิดความผิดพลาดขึ้น
ดังนั้นเพื่อป้องกันความผิดพลาดที่เกิดขึ้น จะต้องมีการจัดจังหวะการทำงานให้กับแต่ละโปรเซสสำหรับการใช้ข้อมูลร่วมกัน
จากตัวอย่างควรกำหนดว่าเมื่อโปรเซสใดได้เข้ามาครอบครองข้อมูล โปรเซสอื่น ๆ ที่ต้องการใช้ข้อมูลตัวเดียวกันจะต้องหยุดรอให้โปรเซสแรกใช้งานให้เสร็จก่อน
ปัญหาการทำงานของโปรเซส
ปัญหาที่ 1 : การอดตาย (Starvation) หรือ การเลื่อนไหลไปอย่างไม่มีวันสิ้นสุด (Infinite postponement)
ถ้าโปรเซส A และ B ต้องการใช้เครื่องพิมพ์พร้อมกัน โปรเซสที่จะได้ใช้ก่อนก็คือโปรเซสที่มีลำดับความสำคัญสูงกว่า
เช่น ถ้า โปรเซส B มีลำดับความสำคัญสูงกว่า A โปรเซส B ก็จะได้ใช้เครื่องพิมพ์ ส่วนโปรเซส A ต้องรอ
ในขณะที่โปรเซส A กำลังรอ ปรากฏว่ามีโปรเซสอื่น ๆ ที่มีลำดับความสำคัญสูงกว่าโปรเซส A ต้องการใช้เครื่องพิมพ์
สิ่งที่เกิดขึ้นกับโปรเซส A คือ โปรเซส A จะถูกโปรเซสอื่นแซงตลอดเวลา เราเรียกเหตุการณ์ที่เกิดขึ้นนี้ว่า “การอดตายของโปรเซส (Starvation) หรือ การเลื่อนไหลไปอย่างไม่มีวันสิ้นสุด (Infinite postponement)
ในขณะที่โปรเซส A กำลังรอ ปรากฏว่ามีโปรเซสอื่น ๆ ที่มีลำดับความสำคัญสูงกว่าโปรเซส A ต้องการใช้เครื่องพิมพ์
สิ่งที่เกิดขึ้นกับโปรเซส A คือ โปรเซส A จะถูกโปรเซสอื่นแซงตลอดเวลา เราเรียกเหตุการณ์ที่เกิดขึ้นนี้ว่า “การอดตายของโปรเซส (Starvation) หรือ การเลื่อนไหลไปอย่างไม่มีวันสิ้นสุด (Infinite postponement)
อ้างอิงแหล่งที่มา
http://www.chantra.sru.ac.th/OS.html
https://sites.google.com/site/operatingsystemeng1/swn-prakxb-khxng-por-1
https://sites.google.com/site/operatingsystemeng1/srup-thay-bth-thi2
https://sites.google.com/site/bthreiynbththi99/1/kar-pramwl-phl-hrux-por-ses
http://csnon04.blogspot.com/2008/03/2-thread.html
แบบฝึกหัดบทที่ 2
1.สถานะของโปรเซสมีอะไรบ้าง จงอธิบาย
ตอบ -New
คือโปรเวสที่เพิ่งสร้างขึ้น
-Ready
คือสถานะที่โปรเซสพร้อมที่จะใช้งานซีพียูทันทีที่โอเอสที่มอบหมายให้
โดยสถานะนี้อยู่ในสถานะพร้อมที่จะรันเท่านั้น
ยังไม่มีการรันหรือเอ็กซ์คิวต์แต่อย่างใด
-Running
คือสถานะที่โปรเซสครอบครองซีพียู หรือซีพียูมีการเอ็กซ์คิวต์คำสั่งของโปรเซสนั้น
-Waiting
คือสถานะโปรเซสนั้นกำลังรอเหตุการณ์อะไรบ้างอย่าง
-Block
คือสถานะที่เกิดการขัดจังหวะการอุปกรณ์อินพุต/เอาต์พุต ซึ่งก็คืออินเตอร์รัพต์
-Terminated
คือสถานะของโปรเซสที่ประมวลผลเสร็จสิ้น
2.เวลา Quantum Time คืออะไร
ตอบ - เวลาที่ขอใช้งาน CPU
3.ปัญหา DeadLock เกิดขึ้นได้อย่างไร
ตอบ -ทรัพยากรเป็นแบบใช้ร่วมกันไม่ได้
• 1 โปรเซสเท่าั้นั้นที่จะใช้ทรัพยากรได้ อีกโปรเซสต้องรอ
- ไม่มีการแทรกกลางคัน
• ทรัพยากรจะถูกคืนเมื่อโปรเซสต้องการค้น หากไ่ม่คืน OS ทำอะไรไม่ได้
• 1 โปรเซสเท่าั้นั้นที่จะใช้ทรัพยากรได้ อีกโปรเซสต้องรอ
- ไม่มีการแทรกกลางคัน
• ทรัพยากรจะถูกคืนเมื่อโปรเซสต้องการค้น หากไ่ม่คืน OS ทำอะไรไม่ได้
4.สถานะ Block เกิดขึ้นได้อย่างไร
ตอบ -โปรเซสต้องการใช้อุปกรณ์
อินพุต/เอาต์พุต หรือเกิดอินเทอร์รัพต์ระหว่างที่รันโปรเซส
ซึ่งจะต้องรอให้มีการจัดการอุปกรณ์อินพุต/เอาต์พุต
หรือจัดการอินเทอร์รับต์ให้เรียบร้อยก่อนจะกลับไปสถานะรันได้ต่อไป
5.การติดต่อกันระหว่าง Process เป็นหน้าที่ของโคร
ตอบ -โปรเซสสื่อประสาน (Cooperating Process)
6. พอร์ท มีกี่แบบอะไรบ้าง
ตอบ - 3 แบบ 1) พอร์ทแบบคิว
2) พอร์ทแบบไปป์
3) พอร์ทแบบสแต็ก
2) พอร์ทแบบไปป์
3) พอร์ทแบบสแต็ก
7.จงยกตัวอย่าง พอร์ทแบบสเต็ก
ตอบ - ข้อมูลชุดใดที่ถูกส่งเข้ามาก่อนจะถูกดึงออกทีหลัง ข้อมูลที่จะถูกดึงออกจากพอร์ทคือข้อมูลชุดหลังสุดที่ถูกส่งเข้ามาในพอร์ท
8.Mutual exclusion เกิดขึ้นได้อย่างไร
ตอบ - การกีดกั้นไม่ยอมให้โปรเซสใด ๆ เข้าใช้พื้นที่ที่เป็น Critical region
9.ปัญหาการอดตาย เกิดขึ้นได้อย่างไร
ตอบ - เมื่อโปรเซสใดโปรเซสหนึ่ง ต้องการใช้อุปกรณ์พร้อมกัน โปรเซสที่จะได้ใช้ก่อนก็คือโปรเซสที่มีลำดับความสำคัญสูงกว่า
10. องค์ประกอบของโปรเซส มีอะไรบ้าง
ตอบ - 1) หมายเลขโปรเซส 2) โค๊ดโปรแกรม 3) ข้อมูล 4) บล็อคควบคุมโปรเซส
5) PSW 6) คุณสมบัติของโปรเซส
ความคิดเห็น
แสดงความคิดเห็น