การจัดการ Process

ใบงานที่ 3 การจัดการ Process

โดย เอกมนตรี กระดุมผล

การจัดการโปรเซส  Process Management

  *  โปรเซส หมายถึง โปรแกรมที่กำลังเอ็กซิคิวต์อยู่
รูปภาพที่เกี่ยวข้อง*  ในขณะที่โปรเซสกำลังเอ็กซิคิวต์อยู่นั้นจะมีการใช้ทรัพยากร (Resource) ของระบบ เช่น CPU, หน่วยความจำ, ไฟล์, อุปกรณ์ อินพุต/เอาต์พุต

*  ในระบบ Multiprogramming อาจประกอบด้วยโปรเซสมากมาย

*  OS จึงมีหน้าที่ในการจัดการโปรเซสในระบบทั้งหมด ไม่ว่าจะเป็นการสร้าง ลบ การจัดเวลา การจัดจังหวะและการติดต่อสื่อสารภายในโปรเซส


องค์ประกอบของโปรเซส

โปรเซสที่สมบูรณ์มีองค์ประกอบดังนี้

1. ชื่อและหมายเลขโปรเซส (Process ID)
เป็นหมายเลขประจำโปรเซสเพื่อกำหนดลำดับการเอ็กซีคิ้วต์
2. โค้ดโปรแกรม (Program code) เป็นโค้ดคำสั่งที่เป็นภาษาเครื่องที่สามารถเอ็กซิคิวต์ได้ทันที
3. ข้อมูล (Data) เป็นข้อมูลของโปรเซสหนึ่ง หรืออาจใช้ร่วมกับโปรเซสอื่น ๆ ก็ได้
4. บล็อกควบคุมโปรเซส (Process Control Block : PCB) เป็นเนื้อที่ของหน่วยความจำที่ระบบปฏิบัติการกำหนดไว้เพื่อเก็บข้อมูที่สำคัญของโปรเซสไว้
5. PSW (Program Status Word) เป็นตัวควบคุมลำดับการ เอ็กซิคิวต์คำสั่งของโปรเซส และเก็บข้อมูลเกี่ยวกับสถานะของโปรเซส ที่อยู่ของคำสั่งที่จะเอ็กซิคิวต์ต่อไป
6.คุณสมบัติของโปรเซส
ลำดับความสำคัญของโปรเซส (Priority)
อำนาจหน้าที่ของโปรเซส (Authority)
คุณสมบัติอื่น ๆ
   
-บล็อกควบคุมโปรเซส (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) เป็นข้อมูลแสดงรายการของอุปกรณ์อินพุต/เอาต์พุตที่โปรเซสนี้ใช้ เป็นต้น

คุณสมบัติของโปรเซส

ลำดับความสำคัญของโปรเซส (Priority) โดยเมื่อโปรเซสถูกสร้างขึ้นมา ลำดับความสำคัญของโปรเซสจะถูกกำหนดโดยระบบปฏิบัติทันที สามารถเปลี่ยนค่าไปได้ ซึ่งโปรเซสใดที่มีความสำคัญมากระบบปฏิบัติการจะให้สิทธิมากกว่าโปรเซสอื่น

อำนาจหน้าที่ของโปรเซส (Authority) เป็นการบอกอำนาจหน้าที่ของโปรเซสนั้นว่าสามารถทำอะไรได้บ้าง ใช้อุปกรณ์อะไรได้บ้าง เป็นต้น
คุณสมบัติอื่น ที่ระบบปฏิบัติการกำหนดให้มี

สถานะของโปรเซส 


ในขณะที่เอ็กซิคิวต์โปรเซสอยู่นั้น โปรเซสจะมีการเปลี่ยนแปลงสถานะอยู่ตลอดเวลาสามารถแบ่งสถานะดังนี้

 -สถานะเริ่มต้น (New) เป็นสถานะที่เริ่มต้นสร้างโปรเซส
 -สถานะพร้อม (Ready) เป็นสถานะที่พร้อมจะครอบครองซีพียู แต่ยังไม่มีการรัน
 -สถานะรัน (Running) เป็นสถานะที่โปรเซสเข้าครอบครองซีพียูและมีการเอ็กซิคิวต์คำสั่งในโปรแกรมของโปรเซส
 -สถานะรอ (Wait) เป็นสถานะที่โปรเซสกำลังรอเหตุการณ์บางอย่าง เช่น การรอสัญญาณ การจัดการอินพุต/เอาต์พุตดีไวซ์
 -สถานะบล็อก (Block) เป็นสถานะที่โปรเซสต้องการใช้อุปกรณ์อินพุต/เอาต์พุต หรือเกิดอินเทอร์รัพต์ระหว่างที่รันโปรเซส ซึ่งจะต้องรอให้มีการจัดการอุปกรณ์อินพุต/เอาต์พุต หรือจัดการอินเทอร์รัพต์ให้เรียบร้อยก่อนจะกลับไปสถานะรันได้ต่อไป
 -สถานะสิ้นสุด (Terminate) เป็นสถานะที่หยุดนิ่งอันเกิดจากโปรเซสถูกเอ็กซิคิวต์หมดทุกคำสั่งในโปรแกรมแล้ว

ขั้นตอนการเปลี่ยนสถานะของโปรเซส

-เมื่อผู้ใช้ต้องการส่งงานให้เครื่องคอมพิวเตอร์ทำงาน OS จะเป็นผู้ที่รับทราบความต้องการนี้ และจะเตรียมสร้างโปรเซสให้กับงานใหม่ที่ถูกส่งเข้ามา
 
-OS จะต้องพิจารณาว่าเนื้อที่หน่วยความจำหลักของระบบมีเพียงพอหรือไม่
   *ถ้าเพียงพอก็จะทำการสร้างโปรเซสใหม่โดยเก็บไว้ในหน่วยความจำหลัก
   *ถ้าไม่เพียงพอก็จะต้องรอจนกว่าจะมีโปรเซสอื่นจบลงและมีเนื้อที่ในหน่วยความจำเหลือมากพอ
 
-เมื่อโปรเซสถูกสร้างขึ้นมาใหม่จะอยู่ในสถานะพร้อมก่อน ยังไม่สามารถเข้าไปใช้งาน CPU ได้

-สาเหตุที่โปรเซสไม่สามารถเข้าใช้งาน CPU ได้ทันที
 -เนื่องจากระบบคอมพิวเตอร์ในปัจจุบันเป็นระบบที่มีผู้ใช้หลายคนในเวลาเดียวกัน 

 -ทำให้มีโปรเซสมากมายเกิดขึ้น ซึ่งโปรเซสเหล่านี้ต้องการใช้ CPU ทั้งสิ้น

 -ต้องมีการจัดคิวและแจ้งสถานะพร้อมให้กับโปรเซสไว้ก่อน

 -เมื่อโปรเซสที่ใช้งาน CPU ทำงานเสร็จสิ้นหรือถูกยกเลิก ทำให้ CPU จะว่าง โปรเซสต่อไปที่อยู่ในคิวก็จะเลื่อนเข้าไปใช้ CPU (เปลี่ยนสถานะจากพร้อมเป็นสถานะรัน)

 -เหตุการณ์ทั้งหมดผู้ที่ทำหน้าที่ควบคุมการทำงานคือ OS

-กรณีที่โปรเซสใดใช้เวลารันเป็นเวลานานก็จะครอบครองซีพียูเป็นเวลานาน

-ทำให้โปรเซสอื่น ๆ เสียเวลาในการรอนานเกินไป

-เพื่อแก้ปัญหานี้ OS จะกำหนดเวลาในการอยู่ในสถานะการรันของทุกโปรเซสไว้ เรียกว่า “เวลาควันตัม (Quantum time)
-ถ้าโปรเซสใดใช้เวลาครอบครอง CPU เกินกว่าเวลาควันตัม ระบบปฏิบัติการจะย้ายโปรเซสนั้นไปต่อคิวใหม่และเปลี่ยนเป็นสถานะพร้อม และนำโปรเซสที่อยู่ในคิวต่อไปมารัน

-ภายในระยะเวลาควันตัม ถ้าโปรเซสจบลง โปรเซสก็จะออกจากระบบ ทรัพยากรต่าง ๆ ที่โปรเซสครอบครองก็จะถูกส่งคืนให้กับระบบ

-กรณีที่โปรเซสกำลังอยู่ในสถานะรัน มีความต้องการใช้อุปกรณ์อินพุต/เอาท์พุต หรืออาจจะเกิดอินเทอร์รัพต์ (Interrupt) ขึ้น

-OS ก็จะย้ายโปรเซสจากสถานะรันไปอยู่ในสถานะบล็อก และดึงโปรเซสที่อยู่ในคิวต่อไปมารัน
-กรณีที่ระบบมีงานมากเกินไป 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 Processes) 

-โปรเซสที่เอ็กซิคิวต์ในระบบนั้นมี 2 แบบ
  -โปรเซสที่เป็นอิสระ ( Independent Processes) หมายถึงโปรเซสที่ไม่มีผลกระทบหรือไม่ได้รับผลกระทบจากโปรเซสอื่น
  -โปรเซสสื่อประสาน (Cooperating Processes) หมายถึงโปรเซสที่มีผลกระทบหรือได้รับผลกระทบจากโปรเซสอื่น
-เหตุผลที่ทำให้เกิดการประสานงานระหว่างโปรเซส
  -ต้องการใช้ข้อมูลร่วมกัน
  
  -ต้องการเพิ่มความเร็วในการคำนวณ

การติดต่อระหว่างโปรเซส (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

ผลการค้นหารูปภาพสำหรับ การเข้าจังหวะของโปรเซส (Process Synchronization) 


ผลการค้นหารูปภาพสำหรับ การเข้าจังหวะของโปรเซส (Process Synchronization)
-จากรูปจะเห็นว่าถ้าโปรเซสที่ 1 และ 2  มีการทำงานที่เป็นอิสระอาจทำให้ผลลัพธ์เกิดความผิดพลาดขึ้น
-ดังนั้นเพื่อป้องกันความผิดพลาดที่เกิดขึ้น จะต้องมีการจัดจังหวะการทำงานให้กับแต่ละโปรเซสสำหรับการใช้ข้อมูลร่วมกัน
-จากตัวอย่างควรกำหนดว่าเมื่อโปรเซสใดได้เข้ามาครอบครองข้อมูล โปรเซสอื่น ๆ ที่ต้องการใช้ข้อมูลตัวเดียวกันจะต้องหยุดรอให้โปรเซสแรกใช้งานให้เสร็จก่อน
-การป้องกันโปรเซสอื่น ๆ เข้ามาใช้ทรัพยากรซึ่งมีโปรเซสหนึ่งครอบครองอยู่แล้วเรียกว่า การไม่เกิดร่วม (Mutual exclusion)
-ในช่วงเวลาที่โปรเซสเข้าไปครอบครองทรัพยากรแบบการไม่เกิดร่วมนี้เรียกว่า โปรเซสนั้นอยู่ในย่านวิกฤต (Critical region หรือ Critical Section)


ปัญหาการทำงานของโปรเซส

-ปัญหาที่ 1 : การอดตาย (Starvation) หรือ การเลื่อนไหลไปอย่างไม่มีวันสิ้นสุด (Infinite postponement)
  -ถ้าโปรเซส A และ B ต้องการใช้เครื่องพิมพ์พร้อมกัน โปรเซสที่จะได้ใช้ก่อนก็คือโปรเซสที่มีลำดับความสำคัญสูงกว่า
  -เช่น ถ้า โปรเซส B มีลำดับความสำคัญสูงกว่า A โปรเซส B ก็จะได้ใช้เครื่องพิมพ์ ส่วนโปรเซส A ต้องรอ
  -ในขณะที่โปรเซส A กำลังรอ ปรากฏว่ามีโปรเซสอื่น ๆ ที่มีลำดับความสำคัญสูงกว่าโปรเซส A ต้องการใช้เครื่องพิมพ์
  -สิ่งที่เกิดขึ้นกับโปรเซส A คือ โปรเซส A จะถูกโปรเซสอื่นแซงตลอดเวลา เราเรียกเหตุการณ์ที่เกิดขึ้นนี้ว่า “การอดตายของโปรเซส (Starvation) หรือ การเลื่อนไหลไปอย่างไม่มีวันสิ้นสุด (Infinite postponement)
-ปัญหาที่ 2 : วงจรอับ หรือ การติดตาย (Deadlock)
 


แบบฝึกหัดบทที่ 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)

ที่มา 

https://sites.google.com/site/operatingsystemeng1/swn-prakxb-khxng-por-1

http://oknation.nationtv.tv/blog/surawit/2008/08/20/entry-6

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การจัดการไฟล์

ตัวอย่างระบบปฏิบัติการ

ระบบหน่วยความจำเสมือน