SlideShare a Scribd company logo
บทที่  4  โปรเซส  Processes แนวคิดของโปรเซส  Process Concept การลำดับการทำงานของโปรเซส  Process Scheduling การปฏิบัติงานของโปรเซส  Operations on Processes การปฏิบัติงานร่วมกันของโปรเซส  Cooperating Processes การสื่อสารระหว่างโปรเซส  Interprocess Communication การสื่อสารในระบบไคลเอนท์เซอร์ฟเวอร์  Communication in Client-Server Systems
แนวคิดของโปรเซส  Process Concept การที่ระบบปฏิบัติการทำการเอ็กซ์ซีคิวท์หลายๆ โปรแกรมพร้อมกัน ระบบแบทช์  Batch system   งาน  ระบบแบ่งสรรเวลา  Time-shared systems   โปรแกรมของผู้ใช้ หรืองาน  หนังสือส่วนใหญ่ใช้ งานกับโปรเซส อธิบายแทนกันได้  โปรเซส โปรแกรมที่กำลังถูกเอ็กซ์ซีคิวท์ โดยการเอ็กซ์ซีคิวท์ชั่นโปรเซสมักกระทำในรูปแบบเชิงลำดับ  โปรเซสประกอบด้วย  โปรแกรมเคาน์เตอร์  program counter  แสต็ค  stack ส่วนของข้อมูล  data section
สถานะของโปรเซส  Process State เมื่อโปรเซสถูกเอ็กซ์ซีคิวท์ จะเกิดการเปลี่ยนสถานะต่างๆ ขึ้น เริ่ม  new   สถานะที่โปรเซสถูกสร้างขึ้น ทำงาน  running   คำสั่งต่างๆ ในโปรเซสถูกทำการเอ็กซ์ซีคิวท์  รอคอย  waiting   โปรเซสหยุดทำงานชั่วคราวหรือรอคอยเมื่อเกิดเหตุการณ์บางอย่างขึ้น  พร้อม  ready   โปรเซสรอที่จะกลับเข้าไปเพื่อการเอ็กซ์ซีคิวท์ต่อไป  สิ้นสุด  terminated   โปรเซสถูกเอ็กซ์ซีคิวท์เสร็จสิ้น จบการทำงาน
ไดอะแกรมแสดงการเปลี่ยนแปลงสถานะของโปรเซส  Diagram of Process State
บล๊อกควบคุมโปรเซส  Process Control Block (PCB) สารสนเทศที่สัมพันธ์กับแต่ละโปรเซส  สถานะของโปรเซส  Process state โปรแกรมเคาน์เตอร์ ตัวนับโปรแกรม  Program counter รีจีสเตอร์ของหน่วยประมวลผลกลาง  CPU registers สารสนเทศการจัดลำดับการทำงานของหน่วยประมวลผลกลาง  CPU scheduling information สารสนเทศของการบริหารจัดการหน่วยความจำ  Memory-management information สารสนเทศของการทำบัญชีต่างๆ  Accounting information สารสนเทศของสถานะของอินพุทเอ้าท์พุท  I/O status information
Process Control Block (PCB)
CPU Switch From Process to Process การที่หน่วยประมวลผลกลางเปลี่ยนการเอ็กซ์ซีคิวท์โปรเซสหนึ่งไปยังอีกโปรเซสหนึ่ง
คิวการจัดลำดับการทำงานของโปรเซส  Process Scheduling Queues คิวการทำงาน  Job queue   หมายถึงเซ็ตของทุกๆ โปรเซสในระบบ คิวพร้อมทำงาน  Ready queue   หมายถึง เซ็ตของทุกๆ โปรเซสที่ยังคงมีพื้นที่อยู่ในหน่วยความจำ พร้อมและรอคอยที่จะถูกทำการเอ็กซ์ซีคิวท์  คิวของอุปกรณ์  Device queues   หมายถึง เซ็ตของทุกๆ โปรเซสที่กำลังรอคอยเพื่อเข้าใช้งานอุปกรณ์อินพุทเอ้าท์พุท โปรเซสจะย้ายเปลี่ยนไปอยู่ได้ในทุกๆ คิวขึ้นอยู่กับสถานะการทำงาน
คิวพร้อมทำงาน และคิวของอุปกรณ์แบบต่างๆ  Ready Queue And Various I/O Device Queues
แสดงขั้นตอนการลำดับการทำงานของโปรเซส  Representation of Process Scheduling
การจัดลำดับการทำงาน  Schedulers ผู้จัดลำดับการทำงานระยะยาว  Long-term scheduler   ทำหน้าที่เลือกโปรเซสที่เหมาะสมไปไว้ยังคิวพร้อมการทำงาน  ผู้จัดลำดับการทำงานระยะสั้น  Short-term scheduler   หรือผู้จัดลำดับการทำงานหน่วยประมวลผลกลาง ทำหน้าที่เลือกโปรเซสที่เหมาะสมเพื่อทำการเอ็กซ์ซีคิวท์และใช้งานหน่วยประมวลผลกลาง
การจัดลำดับการทำงานแบบระยะกลาง  Addition of Medium Term Scheduling
ผู้จัดลำดับการทำงาน  Schedulers (Cont.) ผู้จัดลำดับการทำงานระยะสั้น  Short-term scheduler   จะถูกเรียกให้ทำงานบ่อยมากในระดับมิลลิวินาที จึงต้องทำงานเร็วมาก  ผู้จัดลำดับการทำงานระยะยาว  Long-term scheduler  จะถูกเรียกให้ทำงานไม่บ่อยเท่า ในระดับ วินาที และนาที จึงอาจทำงานช้ากว่า  ผู้จัดลำดับการทำงาน ระยะยาวทำการควบคุมความมากน้อยของการทำมัลติโปรแกรมมิ่ง  สามารถกำหนดขอบเขตและคำจำกัดความของโปรเซส ได้ดังนี้  โปรเซสที่ผูกพันอยุ่กับอินพุทเอ้าท์พุท  I/O- bound process   จะเสียเวลาอยู่กับอินพุทเอ้าท์พุท มากกว่าการคำนวณ โดยจะใช้งานหน่วยประมวลผลเพียงชั่วระยะเวลาสั้นๆ  โปรเซสที่ผูกพันอยู่กับหน่วยประมวลผล  CPU - bound process   จะเสียเวลาส่วนใหญ่อยู่กับการทำการคำนวณใดๆ เป็นส่วนใหญ่ โดยจะใช้งานหน่วยประมวลผลเป็นระยะเวลาที่ยาวนานกว่า
การสลับสภาพแวดล้อมในการทำงาน  Context Switch เมื่อหน่วยประมวลผลสลับการทำงานไปทำงานกับโปรเซสอื่น ระบบจำเป็นต้องบันทึกสถานะต่างๆ ของโปรเซสเดิมไว้ก่อน และต้องทำการโหลดหรือนำสถานะเดิมของโปรเซสที่จะนำมาเอ็กซ์ซีคิวท์ กลับขึ้นมาเป็นสภาพแวดล้อมในการทำงานอีกครั้ง  โดยเวลาที่ใช้ไปกับการสลับสภาพแวดล้อมในการทำงาน ถือเป็นต้นทุนอย่างหนึ่ง เนื่องจากระบบไม่สามารถทำงานอื่นได้ในขณะทำการสลับสภาพแวดล้อม  โดยเวลาที่ใช้ขึ้นกับการทำงานของฮาร์ดแวร์
การสร้างโปรเซส ใหม่ขึ้น  Process Creation โปรเซสต้นกำเนิด จะทำการสร้างโปรเซสลูก โดยการสร้างโปรเซสใดๆ จะอยู่ในรูปลำดับแบบต้นไม้  การแบ่งสรรทรัพยากร  Resource sharing โปรเซสต้นกำเนิดและโปรเซสลูกจะแบ่งสรรทรัพยากรทั้งหมดเพื่อใช้ทำงานร่วมกัน  โปรเซสลูกจะร่วมใช้ทรัพยากรส่วนหนึ่งของโปรเซสต้นกำเนิดของตนเอง  โปรเซสต้นกำเนิดและโปรเซสลูกไม่ได้แบ่งสรรทรัพยากรเพื่อใช้งานร่วมกัน  การเอ็กซ์ซีคิวท์  Execution โปรเซสต้นกำเนิดและโปรเซสลูกสามารถถูกเอ็กซ์ซีคิวท์ไปพร้อมๆ กัน  โปรเซสต้นกำเนิดจะคอยจนกว่าโปรเซสลูกจะสิ้นสุดการทำงาน
Process Creation (Cont.) พื้นที่ของแอดเดรส  Address space โปรเซสลูกจะซ้ำกับโปรเซสต้นกำเนิด  โปรเซสลูกมีโปรแกรมที่ทำการโหลดเข้าไปไว้ยังพื้นที่ของแอดเดรส  ตัวอย่างของยูนิกส์  ระบบฟอร์ค  fork  system   จะทำการเรียกเพื่อสร้างโปรเซสขึ้นใหม่  ระบบเอ็กซ์เซก  exec  system  ถูกเรียกหลังจาก ฟอร์คทำการนำโปรแกรมใหม่ไปไว้แทนที่ในพื้นที่หน่วยความจำสำหรับโปรเซส
โครงสร้างโปรเซสแบบต้นไม้ในระบบยูนิกซ์  Processes Tree on a UNIX System
การสิ้นสุดการทำงานของโปรเซส  Process Termination เมื่อโปรเซสทำการเอ็กซ์ซีคิวคำสั่งสุดท้าย และสอบถามระบบปฏิบัติการเพื่อตัดสินใจว่าจะสิ้นสุดการทำงาน  เอ้าพุทข้อมูลจากโปรเซสลูกไปยังโปรเซสต้นกำเนิด  ( ผ่านสถานะรอคอย )  ทรัพยากรที่ถูกใช้โดยโปรเซส จะถูกปลดปล่อยโดยระบบปฏิบัติการ  โปรเซสต้นกำเนิดอาจทำลายหรือหยุดการเอ็กซ์ซีคิวท์ของโปรเซสลูกได้  ( โดยการยกเลิก )  โปรเซสลูกอาจมีการใช้ทรัพยากรเกินกว่าที่กำหนด  งานที่ถูกมอบหมายให้กับโปรเซสลูกไม่ถูกเรียกใช้เป็นเวลานาน  หากโปรเซสต้นกำเนิดจบการทำงาน  ในระบบปฏิบัติการบางระบบไม่อนุญาตให้โปรเซสลูกสามารถทำงานต่อไปได้  โปรเซสลูกทั้งหมดก็จะต้องถูกทำลายหรือสิ้นสุดการทำงานไปด้วย หรือเรียกว่า การสิ้นสุดการทำงานเชิงสัมพันธ์
โปรเซสที่ปฏิบัติงานร่วมกัน  Cooperating Processes โปรเซสอิสระจะไม่สามารถกระทำการใดที่กระทบต่อหรือได้รับผลกระทบจากการเอ็กซ์ซีคิวท์ของโปรเซสอื่นๆ  โปรเซสที่ปฏิบัติงานร่วมกันจะสามารถกระทำการใดที่กระทบต่อหรือได้รับผลกระทบจากการเอ็กซ์ซีคิวท์ของโปรเซสอื่นๆ  ประโยชน์ของโปรเซสแบบทำงานร่วมกัน  แบ่งปันสารสนเทศ  Information sharing  การคำนวณมีความรวดเร็วมากยิ่งขึ้น  Computation speed-up สามารถแบ่งออกเป็นโมดูลได้  Modularity ความสะดวก  Convenience
ปัญหาของผู้ผลิตกับผู้บริโภค  Producer-Consumer Problem ตัวอย่างสาธิตของโปรเซสที่ทำงานร่วมกัน ผู้ผลิตโปรเซสจะผลิตสารสนเทศที่ถูกใช้โดยโปรเซสผู้บริโภค  บัฟเฟอร์ที่ไม่มีความสัมพันธ์กัน  unbounded-buffer   ในทางปฏิบัติจะไม่มีข้อจำกัดในด้านขนาดของบัฟเฟอร์  บัฟเฟอร์ทีมีความสัมพันธ์กัน  bounded-buffer   จะมีขนาดของบัฟเฟอร์ที่คงที่แน่นอน
IPC  การสื่อสารระหว่างโปรเซส  Interprocess Communication (IPC) กลไกวิธีที่โปรเซสใช้สื่อสารและการเข้าจังหวะในกิจกรรมใดๆ  ระบบการสื่อสารด้วยข้อความ คือการสื่อสารระหว่างโปรเซส โดยปราศจากการพึ่งพิงการแบ่งสรรตัวแปรใดๆ  การสื่อสารระหว่างโปรเซส โดยปฏิบัติการสองแบบ ส่งข้อความ  send ( message )   ขนาดของข้อความคงที่หรือแปรผัน รับข้อความ  receive ( message ) เมื่อโปรเซส  P  และ  Q  ต้องการสื่อสารกัน จำเป็นต้องมีสิ่งต่างๆ ดังนี้  สถาปนาการสื่อสารระหว่างสองโปรเซส แลกเปลี่ยนข้อความโดยการส่งและรับ การใช้งานการเชื่อมต่อการสื่อสาร เชิงกายภาพ เช่น แบ่งสรรหน่วยความจำ และการสื่อสารผ่านบัสของฮาร์ดแวร์  เชิงตรรก เช่น คุณสมบัติการส่งข้อมูลทางตรรก
คำถามในการนำไปใช้งาน Implementation Questions การเชื่อมต่อสถาปนาขึ้นอย่างไร  การเชื่อมต่อสามารถมีความสัมพันมากกว่าสองโปรเซสได้หรือไม่ สามารถมีจำนวนของการเชื่อมต่อได้มากเท่าไรระหว่างการสื่อสารของสองโปรเซส  อะไรคือความจุของการเชื่อมต่อ  ขนาดของข้อความในการสื่อสารที่การเชื่อมต่อสามารถใช้งานได้ทั้งแบบคงที่หรือแบบแปรผัน ใช่หรือไม่  ใช่การเชื่อมต่อหรือไม่ ที่สามารถมีได้ทิศทางเดียวหรือสองทิศทาง
การสื่อสารข้อมูลทางตรง Direct Communication มักกำหนดให้โปรเซสดังนี้  ส่ง ( P,  ข้อความ )  send  ( P, message )  ส่งข้อความไปยังโปรเซส  P รับ (Q,  ข้อความ )  receive ( Q, message )   รับข้อความจากโปรเซส  Q ลักษณะสำคัญของการเชื่อมต่อเพื่อการสื่อสาร การเชื่อมต่อถูกสถาปนาขึ้นโดยอัตโนมัติ การเชื่อมต่อที่สัมพันธ์กันเกิดจากการสื่อสารระหว่างโปรเซสหนึ่งคู่  ระหว่างการสื่อสารหนึ่งคุ่เกิดจากการเชื่อมต่อหนึ่งการเชื่อมต่อ การเชื่อมต่ออาจมีทิศทางเดียวแต่โดยส่วนมากเป้นแบบสองทิสทาง
การสื่อสารแบบทางอ้อม  Indirect Communication ข้อถูกส่งมาจากหรือรับมาจากตู้จดหมาย  ( อาจอ้างโดยพอร์ต )  ตู้จดหมายแต่ละแห่งมีเลขหมายเฉพาะเป็นของตนเอง โปรเซสจะสื่อสารกันได้เฉพาะที่แบ่งปันการใช้งานตู้จดหมายร่วมกัน  ลักษณะสำคัญของการเชื่อมต่อเพื่อการสื่อสาร  การเชื่อมต่อถูกสถาปนาขึ้นเฉพาะเมื่อโปรเซสแบ่งปันการใช้งานตู้จดหมายร่วมกัน  การเชื่อมต่ออาจสัมพันธ์กับหลายโปรเซส  โปรเซสแต่ละคู่อาจแบ่งปันการเชื่อมต่อเพื่อการสื่อสารหลายคู่  การเชื่อมต่ออาจเป็นได้ทั้งทิศทางเดียวหรือสองทิศทาง
การสื่อสารทางอ้อม   Indirect Communication การปฏิบัติงาน  สร้างตู้จดหมายขึ้นใหม่  ส่งและรับข้อความผ่านตู้จดหมาย ทำลายตู้จดหมายหลังใช้งานเสร็จสิ้น  คำจำกัดความอย่างง่าย ส่ง ( A,  ข้อความ )  send ( A, message )  ส่งข้อความไปยังตู้จดหมาย  A รับ (A,  ข้อความ )  receive ( A, message )  รับข้อความจากตู้จดหมาย  A
Indirect Communication การแบ่งปันตู้จดหมาย  P1, P2  และ  P3  แบ่งปันการใช้ตู้จดหมาย  A  ร่วมกัน  P1  ส่งข้อความ  P2, P3  รับข้อความ ใครเป็นผู้รับสาร โซลูชั่น  Solutions ทำให้การเชื่อมต่อสามารถมีความสัมพันธ์กันได้ถึงสองโปรเซส  ทำให้โปรเซสเพียงโปรเซสเดียวในเวลาหนึ่งทำการเอ็กซ์ซีคิวท์การรับข้อความ ทำให้ระบบสามารถเลือกผู้รับแบบไม่เฉพาะเจาะจง ผู้ส่งเป็นผู้ระบุว่าใครคือผู้รับ
การเข้าจังหวะสัมพันธ์  Synchronization การส่งผ่านข้อความอาจถูกบล๊อกหรือไม่บล๊อกก็ได้ การบล๊อก  Blocking   ถูกพิจารณาด้วยการเข้าจังหวะเชิงสัมพันธ์ การบล๊อกการส่ง  Blocking send   ผู้ส่งจะถูกบล๊อกจนกว่าข้อความจะถูกรับไป  การบล๊อกการรับ  Blocking receive   ผู้รับจะถูกบล๊อกจนกว่าข้อความจะพร้อมหรือถูกส่งมาเรียบร้อยแล้ว การไม่บล๊อก  Non-blocking   ถูกพิจารณาด้วยการเข้าจังหวะแบบไม่สัมพันธ์ การไม่บล๊อกการส่ง  Non-blocking   ผู้ส่งสามารถส่งข้อความไปโดยต่อเนื่องไม่ต้องรอ การไม่บล๊อกการรับ  Non-blocking   ผู้รับสามารรับข้อความที่สมบูรณ์หรือไม่รับเลย
การทำบัฟเฟอร์  Buffering คิวของข้อความที่ส่งในการเชื่อมต่อ กระทำด้วยวิธีใดวิธีหนึ่งจากสามวิธีดังนี้  ความจุเป็นศูนย์  Zero capacity   หรือศูนย์ข้อความ ผู้ส่งต้องคอยผู้รับ ความจุแบบจำกัด  Bounded capacity   โดยที่  n  ข้อความมีขนาดจำกัด ผู้ส่งต้องคอยเมื่อการเชื่อมต่อเต็ม ความจุแบบไม่จำกัด  Unbounded capacity  มีขนาดไม่จำกัด ผู้ส่งไม่จำเป็นต้องคอย
การสื่อสารของไคลเอนท์เซอร์ฟเวอร์  Client-Server Communication ซ๊อคเก็ต Sockets การเรียกโพรซีเยอร์ระยะไกล   Remote Procedure Calls การร้องขอแมทธอดระยะไกล  ( ในภาษาจาวา )  Remote Method Invocation (Java)
ซ๊อคเก็ต  Sockets ซ๊อคเก็ต หมายถึงจุดสิ้นสุดสำหรับการสื่อสาร  เป็นการเชื่อมโยงระหว่าง ไอพีแอดเดรส และพอร์ต  อาทิเช่น ซ๊อคเก็ต  161.25.19.8:1625  หมายถึง พอร์ต  1625  บนโฮสต์ที่  161.25.19.8 การสื่อสารประกอบขึ้นจาก คู่ของซ๊อคเก็ต
การสื่อสารแบบซ๊อคเก็ต  Socket Communication
การเรียกโพรซีเยอร์ระยะไกล  Remote Procedure Calls การเรียกโพรซีเยอร์ระยะไกล เป็นการเรียกโพรซีเยอร์เชิงนัยระหว่างโพรเซสบนระบบเครือข่าย  สตับส์  Stubs   หมายถึงพร๊อกซี่ฝั่งไคลเอนท์ ที่รองรับการทำงานการเรียกใช้โพรซีเยอร์บนเซิอร์ฟเวอร์  สตับฝั่งไคลเอนท์จะอยู่ที่เซอร์ฟเวอร์ และจัดสรรพารามิเตอร์ต่างๆ ให้เหมาะสม  สตับฝั่งเซอร์ฟเวอร์ จะรับข้อความ ทำการแกะข้อความออกจากแพค จัดสรรพารามิเตอร์ต่างๆให้เหมาะสม และแจ้งบอกโพรซีเยอร์บนเซอร์ฟเวอร์
การเอ็กซ์ซีคิวท์   Execution of RPC
Remote Method Invocation การร้องขอแมทธอดระยะไกล  ( ในภาษาจาวา )  Remote Method Invocation การร้องขอแมทธอดระยะไกล เป็นกลไกในภาษาจาวาที่แตกต่างจาก  RPC RMI  ทำให้โปรแกรมภาษาจาวาที่ทำงานอยู่บนเครื่องหนึ่งสามารถเรียกใช้แมทธอดจากออบเจ็กระยะไกลได้
การจัดเรียงพารามิเตอร์  Marshalling Parameters
เธรด  Threads เธรด หรือโปรเซสขนาดเล็ก เป็นหน่วยพื้นฐานของการเพิ่มประสิทธิภาพการทำงานของหน่วยประมวลผล ที่ประกอบด้วยสิ่งต่างๆ ดังนี้  โปรแกรมเคาน์เตอร์  program counter เซ็ตของรีจิสเตอร์  register set  พื้นที่ของแสต็ค   stack space แบ่งเธรดออกเป็นเธรดเพียร์ ดังนี้  ส่วนของโค้ด  code section ส่วนของข้อมูล  data section ทรัพยากรของระบบปฏิบัติการ  operating-system resources ทั้งหมดรวมเรียกว่างาน  โปรเซสขนาดปกติทั่วไป หมายถึงงานที่มีหนึ่งเธรด
Threads (Cont.) ในงานที่มีหลายเธรด หรือมัลติเธรด เมื่อเธรดของเซอร์ฟเวอร์หนึ่งถูกบล็อกและเข้าสู่สถานะรอคอย เธรดลำดับที่สองในงานเดียวกันก็จะสามารถทำงานได้  การปฏิบัติงานร่วมกันของเธรดหลายเธรดในงานเดียวกัน ทำให้ได้ผลลัพธ์และประสิทธิภาพเพิ่มมากขึ้น แอพพลิเคชั่นที่ต้องการการแบ่งสรรบัฟเฟอร์ทั่วไปร่วมกัน  ( ในผู้ผลิตและผู้บริโภค )  คือประโยชน์ที่ได้รับจากการนำเธรดมาใช้ เธรดรองรับรับกลไกการทำงานที่ทำให้โปรเซสแบบลำดับสามารถบล็อกการเรียกใช้ระบบเมื่อเกิดการทำงานแบบขนานขึ้น  เคอร์แนล ที่รองรับการทำงานแบบเธรด  ( แมค และโอเอสทู ) เธรดในระดับผู้ใช้ รองรับการทำงานบนเคอร์แนล ผ่านเซตของการเรียกใช้ไลบรารี่ ในระดับชั้นของผู้ใช้  การนำกลยุทธแบบไฮบริด ระหว่างระดับการทำงานของผู้ใช้และรองรับการทำงานแบบเธรดของเคอร์แนล
การทำงานหลายเธรดในงานหนึ่งๆ Multiple Threads within a Task
การทำงานของเธรดในโซลาริส  2 Threads Support in Solaris 2 โซลาริส  2 Solaris 2  เป็นยูนิกซ์รุ่นหนึ่งที่รองรับการทำงานแบบเธรดด้วยเคอร์แนลและระดับผู้ใช้ การทำงานหลายโปรเซสแบบสมมาตร และการจัดลำดับการทำงานแบบเรียลไทม์  LWP – intermediate level  ในระดับชั้นขั้นเริ่มต้นระหว่างเธรดของระดับผู้ใช้ และ เรดระดับเคอร์แนล  ความต้องการการใช้ทรัพยากร ของเธรดประเภทต่างๆ  เคอร์แนลเธรด  Kernel thread   หมายถึงโครงสร้างข้อมูลขนาดเล็ก และแสต็ก การสลับการทำงานของเธรด ไม่จำเป็นต้องการสารสนเทศในการเข้าถึงหน่วยความจำ ( เชิงสัมพันธ์รวดเร็ว ) LWP PCB  ด้วยการลงทะเบียนด้วยสารสนเทศ ข้อมูล บัญชี และหน่วยความจำ การสลับการทำงานระหว่าง  LWP  มีความสัมพันธ์ที่ช้า  เธรดในระดับผู้ใช้  User-level thread:  มีความต้องการเพียงแสต็คและโปรแกรมเคาน์เตอร์ ไม่ต้องการการทำงานการสลับเปลี่ยนการทำงานจากเคอร์แนล เคอร์แนลมองเพียงว่า  LWP  นั้นสามารถรองรับการทำงานเธรดระดับผู้ใช้
Solaris 2 Threads

More Related Content

PPT
Operating System Chapter 2
PPT
Operating System Chapter 1
PPT
Operating System Chapter 3
PPT
1 ระบบคอมพิวเตอร์และระบบปฏิบัติการ
PPT
PPT
PPT
Ch07ath
PDF
พื้นฐานการออกแบบปฏิสัมพันธ์ (Interaction Design Basic)
Operating System Chapter 2
Operating System Chapter 1
Operating System Chapter 3
1 ระบบคอมพิวเตอร์และระบบปฏิบัติการ
Ch07ath
พื้นฐานการออกแบบปฏิสัมพันธ์ (Interaction Design Basic)

What's hot (20)

PDF
ซอฟต์แวร์ทางการศึกษา
PDF
Collaborative learning
PDF
2 4โครงสร้างผังงานทำซ้ำ
PDF
สรุปความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์
PDF
โครงงานโปรเจ็คเวิร์ค
PDF
SDN - OpenFlow protocol
PDF
แผนเรียนรู้วิชาพิมพ์ดีดไทยด้วยคอม 1
PPT
PDF
โครงงาน ระดับ ปวช. วิทยาลัยอาชีวศึกษาขอนแก่น
DOC
ใบความรู้ที่ 2 เรื่อง องค์ประกอบของระบบคอมพิวเตอร์
PPT
PDF
การเขียนผังงาน (Flowchart)
PPTX
บทที่ 1 ความรู้ทั่วไปเกี่ยวกับอุปกรณ์เคลื่อนที่เบื้องต้น.pptx
PDF
การปฏิสัมพันธ์และโมเดลปฏิสัมพันธ์ (Interaction and Interactive Model)
PDF
การออกแบบส่วนติดต่อผู้ใช้ (User Interface Design)
PPSX
ผลกระทบเชิงลบของนวัตกรรมและเทคโนโลยีสารสนเทศ
PDF
Ch7 การบัญชีกิจการอุตสาหกรรม
PDF
หลักการเขียนโปรแกรม
PDF
บทที่ 10 การประชุม
PDF
2.ส่วนคำนำ และสารบัญ
ซอฟต์แวร์ทางการศึกษา
Collaborative learning
2 4โครงสร้างผังงานทำซ้ำ
สรุปความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์
โครงงานโปรเจ็คเวิร์ค
SDN - OpenFlow protocol
แผนเรียนรู้วิชาพิมพ์ดีดไทยด้วยคอม 1
โครงงาน ระดับ ปวช. วิทยาลัยอาชีวศึกษาขอนแก่น
ใบความรู้ที่ 2 เรื่อง องค์ประกอบของระบบคอมพิวเตอร์
การเขียนผังงาน (Flowchart)
บทที่ 1 ความรู้ทั่วไปเกี่ยวกับอุปกรณ์เคลื่อนที่เบื้องต้น.pptx
การปฏิสัมพันธ์และโมเดลปฏิสัมพันธ์ (Interaction and Interactive Model)
การออกแบบส่วนติดต่อผู้ใช้ (User Interface Design)
ผลกระทบเชิงลบของนวัตกรรมและเทคโนโลยีสารสนเทศ
Ch7 การบัญชีกิจการอุตสาหกรรม
หลักการเขียนโปรแกรม
บทที่ 10 การประชุม
2.ส่วนคำนำ และสารบัญ
Ad

Similar to Operating System Chapter 4 (20)

PPT
งานนำเสนอ1
PDF
องค์ประกอบของระบบคอมพิวเตอร์
PDF
NETWORK SERVICEOPENSSH + NTP + SQUID
DOCX
โครงาน
DOCX
โครงงาน
PDF
โครงงาน
PDF
เรื่องระบบปฏิบัติการ
PPTX
คอมพิวเตอร์พื้นฐาน บทที่ 3
DOCX
โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์
PPT
ความรู้เกี่ยวกับระบบปฏิบัติการ
PPTX
ซอฟต์แวร์และภาษาคอมพิวเตอร์
DOCX
223333
DOCX
โครงงาน
PPT
ความรู้เกี่ยวกับระบบปฏิบัติการ
PPT
ความรู้เกี่ยวกับระบบปฏิบัติการ
PPT
ความรู้เกี่ยวกับระบบปฏิบัติการ
PPT
4 ca-process structure
DOCX
โครงงาน
งานนำเสนอ1
องค์ประกอบของระบบคอมพิวเตอร์
NETWORK SERVICEOPENSSH + NTP + SQUID
โครงาน
โครงงาน
โครงงาน
เรื่องระบบปฏิบัติการ
คอมพิวเตอร์พื้นฐาน บทที่ 3
โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์
ความรู้เกี่ยวกับระบบปฏิบัติการ
ซอฟต์แวร์และภาษาคอมพิวเตอร์
223333
โครงงาน
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
4 ca-process structure
โครงงาน
Ad

More from Nuth Otanasap (20)

PPT
กองทุนท่าจีน
PPT
มาตรฐานผลการเรียนรู้
PPT
SA Chapter 14
PPT
SA Chapter 13
PPT
SA Chapter 12
PPT
SA Chapter 11
PPT
SA Chapter 10
PPT
SA Chapter 9
PPT
SA Chapter 8
PPT
SA Chapter 7
PPT
SA Chapter 6
PPT
SA Chapter 5
PPT
SA Chapter 4
PPT
SA Chapter 3
PPT
SA Chapter 2
PPT
Ec2009 ch01 overview of electronic commerce
PPT
Ec2009 ch14 creating and launching
PPT
Ec2009 ch15 e commerce strategy
PPT
Ec2009 ch12 legal ethical and social
PPT
Ec2009 ch11 electronic payment systems
กองทุนท่าจีน
มาตรฐานผลการเรียนรู้
SA Chapter 14
SA Chapter 13
SA Chapter 12
SA Chapter 11
SA Chapter 10
SA Chapter 9
SA Chapter 8
SA Chapter 7
SA Chapter 6
SA Chapter 5
SA Chapter 4
SA Chapter 3
SA Chapter 2
Ec2009 ch01 overview of electronic commerce
Ec2009 ch14 creating and launching
Ec2009 ch15 e commerce strategy
Ec2009 ch12 legal ethical and social
Ec2009 ch11 electronic payment systems

Operating System Chapter 4

  • 1. บทที่ 4 โปรเซส Processes แนวคิดของโปรเซส Process Concept การลำดับการทำงานของโปรเซส Process Scheduling การปฏิบัติงานของโปรเซส Operations on Processes การปฏิบัติงานร่วมกันของโปรเซส Cooperating Processes การสื่อสารระหว่างโปรเซส Interprocess Communication การสื่อสารในระบบไคลเอนท์เซอร์ฟเวอร์ Communication in Client-Server Systems
  • 2. แนวคิดของโปรเซส Process Concept การที่ระบบปฏิบัติการทำการเอ็กซ์ซีคิวท์หลายๆ โปรแกรมพร้อมกัน ระบบแบทช์ Batch system งาน ระบบแบ่งสรรเวลา Time-shared systems โปรแกรมของผู้ใช้ หรืองาน หนังสือส่วนใหญ่ใช้ งานกับโปรเซส อธิบายแทนกันได้ โปรเซส โปรแกรมที่กำลังถูกเอ็กซ์ซีคิวท์ โดยการเอ็กซ์ซีคิวท์ชั่นโปรเซสมักกระทำในรูปแบบเชิงลำดับ โปรเซสประกอบด้วย โปรแกรมเคาน์เตอร์ program counter แสต็ค stack ส่วนของข้อมูล data section
  • 3. สถานะของโปรเซส Process State เมื่อโปรเซสถูกเอ็กซ์ซีคิวท์ จะเกิดการเปลี่ยนสถานะต่างๆ ขึ้น เริ่ม new สถานะที่โปรเซสถูกสร้างขึ้น ทำงาน running คำสั่งต่างๆ ในโปรเซสถูกทำการเอ็กซ์ซีคิวท์ รอคอย waiting โปรเซสหยุดทำงานชั่วคราวหรือรอคอยเมื่อเกิดเหตุการณ์บางอย่างขึ้น พร้อม ready โปรเซสรอที่จะกลับเข้าไปเพื่อการเอ็กซ์ซีคิวท์ต่อไป สิ้นสุด terminated โปรเซสถูกเอ็กซ์ซีคิวท์เสร็จสิ้น จบการทำงาน
  • 5. บล๊อกควบคุมโปรเซส Process Control Block (PCB) สารสนเทศที่สัมพันธ์กับแต่ละโปรเซส สถานะของโปรเซส Process state โปรแกรมเคาน์เตอร์ ตัวนับโปรแกรม Program counter รีจีสเตอร์ของหน่วยประมวลผลกลาง CPU registers สารสนเทศการจัดลำดับการทำงานของหน่วยประมวลผลกลาง CPU scheduling information สารสนเทศของการบริหารจัดการหน่วยความจำ Memory-management information สารสนเทศของการทำบัญชีต่างๆ Accounting information สารสนเทศของสถานะของอินพุทเอ้าท์พุท I/O status information
  • 7. CPU Switch From Process to Process การที่หน่วยประมวลผลกลางเปลี่ยนการเอ็กซ์ซีคิวท์โปรเซสหนึ่งไปยังอีกโปรเซสหนึ่ง
  • 8. คิวการจัดลำดับการทำงานของโปรเซส Process Scheduling Queues คิวการทำงาน Job queue หมายถึงเซ็ตของทุกๆ โปรเซสในระบบ คิวพร้อมทำงาน Ready queue หมายถึง เซ็ตของทุกๆ โปรเซสที่ยังคงมีพื้นที่อยู่ในหน่วยความจำ พร้อมและรอคอยที่จะถูกทำการเอ็กซ์ซีคิวท์ คิวของอุปกรณ์ Device queues หมายถึง เซ็ตของทุกๆ โปรเซสที่กำลังรอคอยเพื่อเข้าใช้งานอุปกรณ์อินพุทเอ้าท์พุท โปรเซสจะย้ายเปลี่ยนไปอยู่ได้ในทุกๆ คิวขึ้นอยู่กับสถานะการทำงาน
  • 11. การจัดลำดับการทำงาน Schedulers ผู้จัดลำดับการทำงานระยะยาว Long-term scheduler ทำหน้าที่เลือกโปรเซสที่เหมาะสมไปไว้ยังคิวพร้อมการทำงาน ผู้จัดลำดับการทำงานระยะสั้น Short-term scheduler หรือผู้จัดลำดับการทำงานหน่วยประมวลผลกลาง ทำหน้าที่เลือกโปรเซสที่เหมาะสมเพื่อทำการเอ็กซ์ซีคิวท์และใช้งานหน่วยประมวลผลกลาง
  • 13. ผู้จัดลำดับการทำงาน Schedulers (Cont.) ผู้จัดลำดับการทำงานระยะสั้น Short-term scheduler จะถูกเรียกให้ทำงานบ่อยมากในระดับมิลลิวินาที จึงต้องทำงานเร็วมาก ผู้จัดลำดับการทำงานระยะยาว Long-term scheduler จะถูกเรียกให้ทำงานไม่บ่อยเท่า ในระดับ วินาที และนาที จึงอาจทำงานช้ากว่า ผู้จัดลำดับการทำงาน ระยะยาวทำการควบคุมความมากน้อยของการทำมัลติโปรแกรมมิ่ง สามารถกำหนดขอบเขตและคำจำกัดความของโปรเซส ได้ดังนี้ โปรเซสที่ผูกพันอยุ่กับอินพุทเอ้าท์พุท I/O- bound process จะเสียเวลาอยู่กับอินพุทเอ้าท์พุท มากกว่าการคำนวณ โดยจะใช้งานหน่วยประมวลผลเพียงชั่วระยะเวลาสั้นๆ โปรเซสที่ผูกพันอยู่กับหน่วยประมวลผล CPU - bound process จะเสียเวลาส่วนใหญ่อยู่กับการทำการคำนวณใดๆ เป็นส่วนใหญ่ โดยจะใช้งานหน่วยประมวลผลเป็นระยะเวลาที่ยาวนานกว่า
  • 14. การสลับสภาพแวดล้อมในการทำงาน Context Switch เมื่อหน่วยประมวลผลสลับการทำงานไปทำงานกับโปรเซสอื่น ระบบจำเป็นต้องบันทึกสถานะต่างๆ ของโปรเซสเดิมไว้ก่อน และต้องทำการโหลดหรือนำสถานะเดิมของโปรเซสที่จะนำมาเอ็กซ์ซีคิวท์ กลับขึ้นมาเป็นสภาพแวดล้อมในการทำงานอีกครั้ง โดยเวลาที่ใช้ไปกับการสลับสภาพแวดล้อมในการทำงาน ถือเป็นต้นทุนอย่างหนึ่ง เนื่องจากระบบไม่สามารถทำงานอื่นได้ในขณะทำการสลับสภาพแวดล้อม โดยเวลาที่ใช้ขึ้นกับการทำงานของฮาร์ดแวร์
  • 15. การสร้างโปรเซส ใหม่ขึ้น Process Creation โปรเซสต้นกำเนิด จะทำการสร้างโปรเซสลูก โดยการสร้างโปรเซสใดๆ จะอยู่ในรูปลำดับแบบต้นไม้ การแบ่งสรรทรัพยากร Resource sharing โปรเซสต้นกำเนิดและโปรเซสลูกจะแบ่งสรรทรัพยากรทั้งหมดเพื่อใช้ทำงานร่วมกัน โปรเซสลูกจะร่วมใช้ทรัพยากรส่วนหนึ่งของโปรเซสต้นกำเนิดของตนเอง โปรเซสต้นกำเนิดและโปรเซสลูกไม่ได้แบ่งสรรทรัพยากรเพื่อใช้งานร่วมกัน การเอ็กซ์ซีคิวท์ Execution โปรเซสต้นกำเนิดและโปรเซสลูกสามารถถูกเอ็กซ์ซีคิวท์ไปพร้อมๆ กัน โปรเซสต้นกำเนิดจะคอยจนกว่าโปรเซสลูกจะสิ้นสุดการทำงาน
  • 16. Process Creation (Cont.) พื้นที่ของแอดเดรส Address space โปรเซสลูกจะซ้ำกับโปรเซสต้นกำเนิด โปรเซสลูกมีโปรแกรมที่ทำการโหลดเข้าไปไว้ยังพื้นที่ของแอดเดรส ตัวอย่างของยูนิกส์ ระบบฟอร์ค fork system จะทำการเรียกเพื่อสร้างโปรเซสขึ้นใหม่ ระบบเอ็กซ์เซก exec system ถูกเรียกหลังจาก ฟอร์คทำการนำโปรแกรมใหม่ไปไว้แทนที่ในพื้นที่หน่วยความจำสำหรับโปรเซส
  • 18. การสิ้นสุดการทำงานของโปรเซส Process Termination เมื่อโปรเซสทำการเอ็กซ์ซีคิวคำสั่งสุดท้าย และสอบถามระบบปฏิบัติการเพื่อตัดสินใจว่าจะสิ้นสุดการทำงาน เอ้าพุทข้อมูลจากโปรเซสลูกไปยังโปรเซสต้นกำเนิด ( ผ่านสถานะรอคอย ) ทรัพยากรที่ถูกใช้โดยโปรเซส จะถูกปลดปล่อยโดยระบบปฏิบัติการ โปรเซสต้นกำเนิดอาจทำลายหรือหยุดการเอ็กซ์ซีคิวท์ของโปรเซสลูกได้ ( โดยการยกเลิก ) โปรเซสลูกอาจมีการใช้ทรัพยากรเกินกว่าที่กำหนด งานที่ถูกมอบหมายให้กับโปรเซสลูกไม่ถูกเรียกใช้เป็นเวลานาน หากโปรเซสต้นกำเนิดจบการทำงาน ในระบบปฏิบัติการบางระบบไม่อนุญาตให้โปรเซสลูกสามารถทำงานต่อไปได้ โปรเซสลูกทั้งหมดก็จะต้องถูกทำลายหรือสิ้นสุดการทำงานไปด้วย หรือเรียกว่า การสิ้นสุดการทำงานเชิงสัมพันธ์
  • 19. โปรเซสที่ปฏิบัติงานร่วมกัน Cooperating Processes โปรเซสอิสระจะไม่สามารถกระทำการใดที่กระทบต่อหรือได้รับผลกระทบจากการเอ็กซ์ซีคิวท์ของโปรเซสอื่นๆ โปรเซสที่ปฏิบัติงานร่วมกันจะสามารถกระทำการใดที่กระทบต่อหรือได้รับผลกระทบจากการเอ็กซ์ซีคิวท์ของโปรเซสอื่นๆ ประโยชน์ของโปรเซสแบบทำงานร่วมกัน แบ่งปันสารสนเทศ Information sharing การคำนวณมีความรวดเร็วมากยิ่งขึ้น Computation speed-up สามารถแบ่งออกเป็นโมดูลได้ Modularity ความสะดวก Convenience
  • 20. ปัญหาของผู้ผลิตกับผู้บริโภค Producer-Consumer Problem ตัวอย่างสาธิตของโปรเซสที่ทำงานร่วมกัน ผู้ผลิตโปรเซสจะผลิตสารสนเทศที่ถูกใช้โดยโปรเซสผู้บริโภค บัฟเฟอร์ที่ไม่มีความสัมพันธ์กัน unbounded-buffer ในทางปฏิบัติจะไม่มีข้อจำกัดในด้านขนาดของบัฟเฟอร์ บัฟเฟอร์ทีมีความสัมพันธ์กัน bounded-buffer จะมีขนาดของบัฟเฟอร์ที่คงที่แน่นอน
  • 21. IPC การสื่อสารระหว่างโปรเซส Interprocess Communication (IPC) กลไกวิธีที่โปรเซสใช้สื่อสารและการเข้าจังหวะในกิจกรรมใดๆ ระบบการสื่อสารด้วยข้อความ คือการสื่อสารระหว่างโปรเซส โดยปราศจากการพึ่งพิงการแบ่งสรรตัวแปรใดๆ การสื่อสารระหว่างโปรเซส โดยปฏิบัติการสองแบบ ส่งข้อความ send ( message ) ขนาดของข้อความคงที่หรือแปรผัน รับข้อความ receive ( message ) เมื่อโปรเซส P และ Q ต้องการสื่อสารกัน จำเป็นต้องมีสิ่งต่างๆ ดังนี้ สถาปนาการสื่อสารระหว่างสองโปรเซส แลกเปลี่ยนข้อความโดยการส่งและรับ การใช้งานการเชื่อมต่อการสื่อสาร เชิงกายภาพ เช่น แบ่งสรรหน่วยความจำ และการสื่อสารผ่านบัสของฮาร์ดแวร์ เชิงตรรก เช่น คุณสมบัติการส่งข้อมูลทางตรรก
  • 22. คำถามในการนำไปใช้งาน Implementation Questions การเชื่อมต่อสถาปนาขึ้นอย่างไร การเชื่อมต่อสามารถมีความสัมพันมากกว่าสองโปรเซสได้หรือไม่ สามารถมีจำนวนของการเชื่อมต่อได้มากเท่าไรระหว่างการสื่อสารของสองโปรเซส อะไรคือความจุของการเชื่อมต่อ ขนาดของข้อความในการสื่อสารที่การเชื่อมต่อสามารถใช้งานได้ทั้งแบบคงที่หรือแบบแปรผัน ใช่หรือไม่ ใช่การเชื่อมต่อหรือไม่ ที่สามารถมีได้ทิศทางเดียวหรือสองทิศทาง
  • 23. การสื่อสารข้อมูลทางตรง Direct Communication มักกำหนดให้โปรเซสดังนี้ ส่ง ( P, ข้อความ ) send ( P, message ) ส่งข้อความไปยังโปรเซส P รับ (Q, ข้อความ ) receive ( Q, message ) รับข้อความจากโปรเซส Q ลักษณะสำคัญของการเชื่อมต่อเพื่อการสื่อสาร การเชื่อมต่อถูกสถาปนาขึ้นโดยอัตโนมัติ การเชื่อมต่อที่สัมพันธ์กันเกิดจากการสื่อสารระหว่างโปรเซสหนึ่งคู่ ระหว่างการสื่อสารหนึ่งคุ่เกิดจากการเชื่อมต่อหนึ่งการเชื่อมต่อ การเชื่อมต่ออาจมีทิศทางเดียวแต่โดยส่วนมากเป้นแบบสองทิสทาง
  • 24. การสื่อสารแบบทางอ้อม Indirect Communication ข้อถูกส่งมาจากหรือรับมาจากตู้จดหมาย ( อาจอ้างโดยพอร์ต ) ตู้จดหมายแต่ละแห่งมีเลขหมายเฉพาะเป็นของตนเอง โปรเซสจะสื่อสารกันได้เฉพาะที่แบ่งปันการใช้งานตู้จดหมายร่วมกัน ลักษณะสำคัญของการเชื่อมต่อเพื่อการสื่อสาร การเชื่อมต่อถูกสถาปนาขึ้นเฉพาะเมื่อโปรเซสแบ่งปันการใช้งานตู้จดหมายร่วมกัน การเชื่อมต่ออาจสัมพันธ์กับหลายโปรเซส โปรเซสแต่ละคู่อาจแบ่งปันการเชื่อมต่อเพื่อการสื่อสารหลายคู่ การเชื่อมต่ออาจเป็นได้ทั้งทิศทางเดียวหรือสองทิศทาง
  • 25. การสื่อสารทางอ้อม Indirect Communication การปฏิบัติงาน สร้างตู้จดหมายขึ้นใหม่ ส่งและรับข้อความผ่านตู้จดหมาย ทำลายตู้จดหมายหลังใช้งานเสร็จสิ้น คำจำกัดความอย่างง่าย ส่ง ( A, ข้อความ ) send ( A, message ) ส่งข้อความไปยังตู้จดหมาย A รับ (A, ข้อความ ) receive ( A, message ) รับข้อความจากตู้จดหมาย A
  • 26. Indirect Communication การแบ่งปันตู้จดหมาย P1, P2 และ P3 แบ่งปันการใช้ตู้จดหมาย A ร่วมกัน P1 ส่งข้อความ P2, P3 รับข้อความ ใครเป็นผู้รับสาร โซลูชั่น Solutions ทำให้การเชื่อมต่อสามารถมีความสัมพันธ์กันได้ถึงสองโปรเซส ทำให้โปรเซสเพียงโปรเซสเดียวในเวลาหนึ่งทำการเอ็กซ์ซีคิวท์การรับข้อความ ทำให้ระบบสามารถเลือกผู้รับแบบไม่เฉพาะเจาะจง ผู้ส่งเป็นผู้ระบุว่าใครคือผู้รับ
  • 27. การเข้าจังหวะสัมพันธ์ Synchronization การส่งผ่านข้อความอาจถูกบล๊อกหรือไม่บล๊อกก็ได้ การบล๊อก Blocking ถูกพิจารณาด้วยการเข้าจังหวะเชิงสัมพันธ์ การบล๊อกการส่ง Blocking send ผู้ส่งจะถูกบล๊อกจนกว่าข้อความจะถูกรับไป การบล๊อกการรับ Blocking receive ผู้รับจะถูกบล๊อกจนกว่าข้อความจะพร้อมหรือถูกส่งมาเรียบร้อยแล้ว การไม่บล๊อก Non-blocking ถูกพิจารณาด้วยการเข้าจังหวะแบบไม่สัมพันธ์ การไม่บล๊อกการส่ง Non-blocking ผู้ส่งสามารถส่งข้อความไปโดยต่อเนื่องไม่ต้องรอ การไม่บล๊อกการรับ Non-blocking ผู้รับสามารรับข้อความที่สมบูรณ์หรือไม่รับเลย
  • 28. การทำบัฟเฟอร์ Buffering คิวของข้อความที่ส่งในการเชื่อมต่อ กระทำด้วยวิธีใดวิธีหนึ่งจากสามวิธีดังนี้ ความจุเป็นศูนย์ Zero capacity หรือศูนย์ข้อความ ผู้ส่งต้องคอยผู้รับ ความจุแบบจำกัด Bounded capacity โดยที่ n ข้อความมีขนาดจำกัด ผู้ส่งต้องคอยเมื่อการเชื่อมต่อเต็ม ความจุแบบไม่จำกัด Unbounded capacity มีขนาดไม่จำกัด ผู้ส่งไม่จำเป็นต้องคอย
  • 29. การสื่อสารของไคลเอนท์เซอร์ฟเวอร์ Client-Server Communication ซ๊อคเก็ต Sockets การเรียกโพรซีเยอร์ระยะไกล Remote Procedure Calls การร้องขอแมทธอดระยะไกล ( ในภาษาจาวา ) Remote Method Invocation (Java)
  • 30. ซ๊อคเก็ต Sockets ซ๊อคเก็ต หมายถึงจุดสิ้นสุดสำหรับการสื่อสาร เป็นการเชื่อมโยงระหว่าง ไอพีแอดเดรส และพอร์ต อาทิเช่น ซ๊อคเก็ต 161.25.19.8:1625 หมายถึง พอร์ต 1625 บนโฮสต์ที่ 161.25.19.8 การสื่อสารประกอบขึ้นจาก คู่ของซ๊อคเก็ต
  • 32. การเรียกโพรซีเยอร์ระยะไกล Remote Procedure Calls การเรียกโพรซีเยอร์ระยะไกล เป็นการเรียกโพรซีเยอร์เชิงนัยระหว่างโพรเซสบนระบบเครือข่าย สตับส์ Stubs หมายถึงพร๊อกซี่ฝั่งไคลเอนท์ ที่รองรับการทำงานการเรียกใช้โพรซีเยอร์บนเซิอร์ฟเวอร์ สตับฝั่งไคลเอนท์จะอยู่ที่เซอร์ฟเวอร์ และจัดสรรพารามิเตอร์ต่างๆ ให้เหมาะสม สตับฝั่งเซอร์ฟเวอร์ จะรับข้อความ ทำการแกะข้อความออกจากแพค จัดสรรพารามิเตอร์ต่างๆให้เหมาะสม และแจ้งบอกโพรซีเยอร์บนเซอร์ฟเวอร์
  • 34. Remote Method Invocation การร้องขอแมทธอดระยะไกล ( ในภาษาจาวา ) Remote Method Invocation การร้องขอแมทธอดระยะไกล เป็นกลไกในภาษาจาวาที่แตกต่างจาก RPC RMI ทำให้โปรแกรมภาษาจาวาที่ทำงานอยู่บนเครื่องหนึ่งสามารถเรียกใช้แมทธอดจากออบเจ็กระยะไกลได้
  • 36. เธรด Threads เธรด หรือโปรเซสขนาดเล็ก เป็นหน่วยพื้นฐานของการเพิ่มประสิทธิภาพการทำงานของหน่วยประมวลผล ที่ประกอบด้วยสิ่งต่างๆ ดังนี้ โปรแกรมเคาน์เตอร์ program counter เซ็ตของรีจิสเตอร์ register set พื้นที่ของแสต็ค stack space แบ่งเธรดออกเป็นเธรดเพียร์ ดังนี้ ส่วนของโค้ด code section ส่วนของข้อมูล data section ทรัพยากรของระบบปฏิบัติการ operating-system resources ทั้งหมดรวมเรียกว่างาน โปรเซสขนาดปกติทั่วไป หมายถึงงานที่มีหนึ่งเธรด
  • 37. Threads (Cont.) ในงานที่มีหลายเธรด หรือมัลติเธรด เมื่อเธรดของเซอร์ฟเวอร์หนึ่งถูกบล็อกและเข้าสู่สถานะรอคอย เธรดลำดับที่สองในงานเดียวกันก็จะสามารถทำงานได้ การปฏิบัติงานร่วมกันของเธรดหลายเธรดในงานเดียวกัน ทำให้ได้ผลลัพธ์และประสิทธิภาพเพิ่มมากขึ้น แอพพลิเคชั่นที่ต้องการการแบ่งสรรบัฟเฟอร์ทั่วไปร่วมกัน ( ในผู้ผลิตและผู้บริโภค ) คือประโยชน์ที่ได้รับจากการนำเธรดมาใช้ เธรดรองรับรับกลไกการทำงานที่ทำให้โปรเซสแบบลำดับสามารถบล็อกการเรียกใช้ระบบเมื่อเกิดการทำงานแบบขนานขึ้น เคอร์แนล ที่รองรับการทำงานแบบเธรด ( แมค และโอเอสทู ) เธรดในระดับผู้ใช้ รองรับการทำงานบนเคอร์แนล ผ่านเซตของการเรียกใช้ไลบรารี่ ในระดับชั้นของผู้ใช้ การนำกลยุทธแบบไฮบริด ระหว่างระดับการทำงานของผู้ใช้และรองรับการทำงานแบบเธรดของเคอร์แนล
  • 39. การทำงานของเธรดในโซลาริส 2 Threads Support in Solaris 2 โซลาริส 2 Solaris 2 เป็นยูนิกซ์รุ่นหนึ่งที่รองรับการทำงานแบบเธรดด้วยเคอร์แนลและระดับผู้ใช้ การทำงานหลายโปรเซสแบบสมมาตร และการจัดลำดับการทำงานแบบเรียลไทม์ LWP – intermediate level ในระดับชั้นขั้นเริ่มต้นระหว่างเธรดของระดับผู้ใช้ และ เรดระดับเคอร์แนล ความต้องการการใช้ทรัพยากร ของเธรดประเภทต่างๆ เคอร์แนลเธรด Kernel thread หมายถึงโครงสร้างข้อมูลขนาดเล็ก และแสต็ก การสลับการทำงานของเธรด ไม่จำเป็นต้องการสารสนเทศในการเข้าถึงหน่วยความจำ ( เชิงสัมพันธ์รวดเร็ว ) LWP PCB ด้วยการลงทะเบียนด้วยสารสนเทศ ข้อมูล บัญชี และหน่วยความจำ การสลับการทำงานระหว่าง LWP มีความสัมพันธ์ที่ช้า เธรดในระดับผู้ใช้ User-level thread: มีความต้องการเพียงแสต็คและโปรแกรมเคาน์เตอร์ ไม่ต้องการการทำงานการสลับเปลี่ยนการทำงานจากเคอร์แนล เคอร์แนลมองเพียงว่า LWP นั้นสามารถรองรับการทำงานเธรดระดับผู้ใช้

Editor's Notes

  • #2: Chapter 4: Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems