การจัดการ process

ใบงานที่3
โดย นางสาว บุญสิตา อินทร์พรม รหัสนักศึกษา 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 เกินกว่าเวลาควันตัม ระบบปฏิบัติการจะย้ายโปรเซสนั้นไปต่อคิวใหม่และเปลี่ยนเป็นสถานะพร้อม และนำโปรเซสที่อยู่ในคิวต่อไปมารัน

    ภายในระยะเวลาควันตัม ถ้าโปรเซสจบลง โปรเซสก็จะออกจากระบบ ทรัพยากรต่างๆ ที่โปรเซสครอบครองก็จะถูกส่งคืนให้กับระบบ
    กรณีที่โปรเซสกำลังอยู่ในสถานะรัน มีความต้องการใช้อุปกรณ์อินพุต/เอาท์พุต หรืออาจจะเกิดอินเทอร์รัพต์ (Interrupt) ขึ้น
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)
กลไกการรับส่งข้อมูลผ่านทางหน่วยความจำร่วมนี้ OS จะไม่ช่วยจัดการให้โปรเซสที่ต้องการติดต่อกันจะต้องจัดการเอาเอง
 
 
มื่อโปรเซส A ต้องการติดต่อกับโปรเซส B    -โปรเซส B จะตรวจสอบได้เองว่าโปรเซส A นำข้อมูลไปวางไว้แล้วหรือยัง
   -ถ้าโปรเซส A ยังไม่ส่งข้อมูลมา โปรเซส B ก็จะยังไม่ดึงเอาข้อมูลมาใช้
   -นอกจากนั้นโปรเซส B ยังต้องสามารถตรวจสอบได้ว่าข้อมูลที่อยู่ในหน่วยความจำร่วมนั้น  เป็นข้อมูลเก่าที่เคยนำมาใช้แล้วหรือยัง
   -สำหรับโปรเซส A ถ้าจะส่งข้อมูลชุดใหม่ให้ โปรเซส A จะต้องตรวจสอบก่อนว่าข้อมูลชุดเดิมที่อยู่ในหน่วยความจำร่วมนั้นถูกนำไปใช้หรือยัง ถ้าถูกนำไปใช้แล้วก็จะนำข้อมูลชุดใหม่ทับลงไป

 โครงสร้างของพอร์ท

พอร์ทในปัจจุบันมี 3 แบบ
  • พอร์ทแบบคิว โครงสร้างของพอร์ทแบบนี้ข้อมูลชุดใดที่ถูกส่งเข้าพอร์ทก่อนจะถูกดึงออกไปก่อน ข้อมูลชุดใดที่ถูกส่งเข้าพอร์ททีหลังจะถูกดึงออกไปทีหลัง
  • พอร์ทแบบไปป์ มีลักษณะการทำงานเหมือนพอร์ทแบบคิว แต่ไปป์มีความยาวของพอร์ทไม่จำกัด ในขณะที่พอร์ทแบบคิวมีความยาวของพอร์ทคงที่
  • พอร์ทแบบแสต๊ก มีกลไกการทำงานโดยข้อมูลชุดใดที่ถูกส่งเข้าพอร์ทก่อนจะถูกดึงออกไปใช้ทีหลังก่อน ข้อมูลชุดใดที่ถูกส่งเข้าพอร์ททีหลังจะถูกดึงออกไปใช้ก่อน

การเข้าจังหวะของโปรเซส (Process Synchronization)

  •  ในการใช้ทรัพยากรโดยเฉพาะอย่างยิ่งข้อมูลอาจก่อให้เกิดปัญหาที่ทำให้การทำงานไม่ถูกต้อง
  • ตัวอย่าง
   -เริ่มต้นค่า X = 10
   -โปรเซสที่ 1 มีการเพิ่มค่า X จากเดิม 10
   -โปรเซสที่ 2 มีการลบค่า X ลง 10
   -ผลจากการทำงานจะเป็นดังนี้  (10+10-10) = 10







  •  จากรูปจะเห็นว่าถ้าโปรเซสที่ 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) 

อ้างอิงที่มา : 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)


 

ความคิดเห็น

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