SlideShare uma empresa Scribd logo
1 de 54
โครงสร้า งของ
กระบวนการ
Process Structure




โครงสร้างระบบและสถาปัตยกรรม
คอมพิวเตอร์
วิเ ชษฐ์ พลายมาศ
วัต ถุป ระสงค์ก ารเรีย นรู้


                     เพื่อศึกษาแนวคิดและโครงสร้างของ
                     กระบวนการในระบบคอมพิวเตอร์
                     เพื่อศึกษาการจัดการกระบวนการ การ
                     ประสานงานระหว่างกระบวนการ และการ
                     สื่อสารระหว่างกระบวนการ




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 2
Agenda


                     Process Concept
                     Process Scheduling
                     Operations on Processes
                     Cooperating Processes
                     Interprocess Communication




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 3
แนวคิด เกี่ย วกับ กระบวนการ
                                        (Process Concept)

                     กิจกรรมทุกอย่างทีหน่วยประมวลผลกลาง
                                      ่
                     กระทำานัน
                             ้
                        ในระบบเชิงกลุ่ม (batch) เรียกว่า งาน (job)
                        ในระบบแบ่งกันใช้เวลา (time-sharing) เรียกว่า
                         โปรแกรมผู้ใช้ (user program) หรือภารกิจ
                         (task)
                        คำาว่า งาน และ กระบวนการ (process) จึง
                         สามารถใช้แทนกันได้




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 4
Process Concept (cont.)


                     กระบวนการ คือโปรแกรมทีถูกกระทำาการ (a
                                           ่
                     program in execution)
                     กระบวนการจะประกอบด้วย:
                        program counter
                        stack
                        data section




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 5
Process Concept (cont.)


                     เมื่อกระบวนการถูกกระทำาการ จะถูกเปลี่ยน
                     สถานะ (state)
                     สถานะของกระบวนการ หมายถึง ขณะปัจจุบัน
                     ของกิจกรรมของกระบวนการ ประกอบด้วย
                        ใหม่ (new) กระบวนการทีเพิ่งถูกสร้างใหม่
                                                    ่
                        กำาลังดำาเนินงาน (running) ชุดคำาสั่งทีกำาลังถูกกระทำาการ
                                                                ่
                        รอ (waiting) กระบวนการที่กำาลังรอคอยเหตุการณ์บาง
                         อย่าง เช่น รอสัญญาณ รอให้ไอ/โอ เสร็จ
                        พร้อม (ready) กระบวนการที่กำาลังรอให้เข้าใช้หน่วย
                         ประมวลผล
                        สิ้นสุด (terminated) กระบวนการที่กระทำาการเสร็จแล้ว


วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 6
Diagram of Process State




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 7
บล็อ กควบคุม กระบวนการ
                                     (Process Control Block-PCB)

                     บล็อกควบคุมกระบวนการ จะประกอบด้วยข้อมูลที่
                     เกี่ยวกับ
                        สถานะกระบวนการ (process state)
                        ตัวนับโปรแกรม (program counter)
                        เรจิสเตอร์ของซีพียู (CPU register)
                        ข้อมูลการจัดลำาดับซีพียู (CPU-scheduling
                         information)
                        ข้อมูลการจัดการหน่วยความจำา (memory-
                         management information)
                        ข้อมูลบัญชีผใช้ (accounting information)
                                     ู้
                        ข้อมูลสถานะไอ/โอ (I/O status information)



วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 8
Process Control Block (PCB)




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 9
CPU Switch From Process to
                                      Process




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 10
คิว การจัด ลำา ดับ กระบวนการ
                                   (Process Scheduling Queues)
                     คิวงาน (Job queue) กลุ่มของทุกกระบวนการ
                     ในระบบ
                     คิวพร้อม (Ready queue) กลุ่มของทุก
                     กระบวนการทีฝังอยู่ในหน่วยความจำาหลักทีรอ
                                  ่                        ่
                     execute
                     คิวอุปกรณ์ (Device queues) กลุ่มของ
                     กระบวนการทังหมดที่กำาลังรออุปกรณ์ i/o
                                    ้
                     มีการย้ายกระบวนการไปมาระหว่างคิวต่างๆ
                     ข้างต้น


วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 11
Ready Queue And Various I/O Device
                                   Queues




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 12
Representation of Process
                                        Scheduling




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 13
ตัว จัด ลำา ดับ (Schedulers)


                     Long-term scheduler (or job scheduler)
                        ทำาหน้าที่คดเลือกกลุ่มกระบวนการขึนมาจากที่พกเก็บ
                                    ั                     ้         ั
                         ไปยังหน่วยความจำาหลักไปยังคิวพร้อม
                        ควบคุมดีกรีของการทำางานแบบหลายโปรแกรม
                         (degree of multiprogramming) ให้เหมาะสม
                     Short-term scheduler (or CPU scheduler)
                        ทำาหน้าที่คดเลือกกระบวนการที่พร้อมจะถูกกระทำาการ
                                    ั
                           ขึ้นมาหนึงกระบวนการให้เข้าใช้ซีพยู
                                    ่                      ี
                     ตัวจัดลำาดับระยะกลาง (medium-term
                     scheduler)
                        ทำาหน้าที่ขจัดกระบวนการออกจากหน่วยความจำา ช่วย
                           ลดดีกรีของการทำางานแบบหลายโปรแกรมลง


วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 14
การเพิ่มตัวจัดลำาดับระยะกลาง (Medium
                       Term Scheduling) มาช่วยในแถวคอย




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 15
Schedulers (cont.)


                     Short-term scheduler จะทำางานบ่อยมาก
                     (milliseconds) ⇒ (ต้องเร็ว).
                     Long-term scheduler ทำางานไม่บ่อยนัก (seconds,
                     minutes) ⇒ (อาจช้าได้)
                     long-term scheduler จะควบคุม degree of
                     multiprogramming.
                     กระบวนการส่วนใหญ่จะมีคุณลักษณะอยู่ 2 ประเภท
                        กระบวนการเน้นซีพียู (CPU-bound process) เป็นกระบวน
                         การที่เข้าครอบครองซีพียูนานแต่เกี่ยวพันกับอุปกรณ์ประเภท
                         ไอ/โอน้อย
                        กระบวนการเน้นไอ/โอ (I/O-bound process) ซึ่งเป็นกระ
                         บวนการที่ใช้เวลาซีพียูน้อยแต่ครอบครองไอ/โอนาน


วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 16
การสับ เปลี่ย น (swapping)


                     Medium Term Scheduling จะช่วยจัดสรร
                     กระบวนแบบเน้นซีพยูและแบบเน้น i/o ให้มี
                                         ี
                     ความสมดุลกันมากขึ้นในระบบ
                     โดยพยายามสลับเอากระบวนการที่ยงไม่  ั
                     จำาเป็นออกจากหน่วยความจำาไปเก็บไว้ในดิสก์
                     และสลับกระบวนการทีจำาเป็นจากดิสก์เข้ามา
                                           ่
                     ไว้ในหน่วยความจำา
                     เรียกกิจกรรมเช่นนีว่า การสลับเข้า/การสลับ
                                       ้
                     ออก (swap-in/swap-out)

วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 17
การสลับ บริบ ท (Context Switch)


                     เมื่อซีพียูจะเปลี่ยนไปยังกระบวนการอื่น จะต้อง
                     เก็บสถานะปัจจุบันของกระบวนการเดิมไว้ใน
                     PCB (process control box) ก่อน แล้วค่อย
                     โหลดสถานะของกระบวนการใหม่เข้ามา
                     ในการสลับบริบท ระบบจะเสียเวลา (มี overhead)
                     และยังทำางานไม่ได้ขณะทำาการสลับบริบท จึงมัก
                     ใช้ฮาร์ดแวร์ช่วย
                     PCB จะเก็บข้อมูล
                        ค่าของเรจิสเตอร์ในซีพียู
                        สถานะกระบวนการ
                        ข้อมูลการจัดการหน่วยความจำา



วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 18
การสร้า งกระบวนการ (Process Creation)

                     กระบวนการสามารถสร้างกระบวนขึ้นมาใหม่
                     ได้ในระหว่างการทำางานผ่าน system call
                     การสร้างกระบวนการ (create-process)
                        กระบวนการที่สร้างเรียกว่า กระบวนการแม่
                         (parent process)
                        กระบวนการที่ถูกสร้างเรียกว่า กระบวนการลูก
                         (children process) ของกระบวนการแม่นน ั้
                        แต่ละกระบวนการสามารถสร้างกระบวนลูกได้
                         อย่างไม่จำากัดในรูปแบบต้นไม้ (tree)




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 19
Process Creation (cont.)

                     ลักษณะการแบ่งปันทรัพยากร
                        ทั้ง Parent และ children จะใช้ทรัพยากรร่วมกัน
                         ทั้งหมด
                        children จะใช้ทรัพยากรในส่วนของ parent
                        ทั้ง Parent and child ไม่มการใช้ทรัพยากรร่วมกัน
                                                   ี
                     Execution
                        Parent และ children จะ execute พร้อมๆ กัน
                        Parent จะรอจนกระทั่ง children สิ้นสุด
                     Address space
                        Child เรียกใช้เลขทีอยู่เดียวกับ Parent
                                            ่
                        Children ทำาการบรรจุโปรแกรมเข้าไปไว้ในตำาแหน่งที่
                           อยู่ของกระบวนการ Parent


วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 20
การเลิก กระบวนการ
                                               (Process Termination)

                     เมื่อกระบวนการกระทำาการเสร็จสินแล้วก็จะลบ
                                                     ้
                     ตัวเอง (ผ่านทาง exit system call)
                     กระบวนการอาจคืนค่าผลลัพธ์บางอย่างกลับ
                     ไปยังกระบวนการแม่ (ผ่านทาง wait system
                     call) แล้วปลดปล่อยทรัพยากรทังหมด เช่น
                                                   ้
                     physical/virtual memory, file open, i/o
                     buffer
                     กระบวนการแม่สามารถยกเลิกกระบวนการ
                     ทั้งหมดของลูกได้ (abort) กระบวนการแม่ถูก
                     ยกเลิกโดยระบบปฏิบัติการหรือผู้ใช้

วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 21
การเลิก กระบวนการ
                                               (Process Termination)

                     การยกเลิกกระบวนการสามารถเกิดขึ้นหลาย
                     สาเหตุ
                        กระบวนการลูกเรียกใช้ทรัพยากรที่ไม่มสิทธิใช้
                                                              ี     ์
                        ภารกิจที่กระบวนการลูกทำาเสร็จสิ้นแล้วไม่จำาเป็นต้อง
                         ใช้กระบวนการลูกอีกต่อไป
                        กระบวนการแม่ออกจากระบบ และระบบปฏิบัติการไม่
                         อนุญาตให้กระบวนการลูกเข้าใช้ทรัพยากรอีกต่อไป
                     จำาเป็นต้องมีกลไกการเลิกแบบต่อเรียง
                     (cascading termination) เพื่อยกเลิก
                     กระบวนการย่อยแบบเป็นทอดๆ ในโครงสร้าง
                     แบบต้นไม้

วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 22
Processes Tree on a UNIX
                                   System




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 23
การประสานกระบวนการ
                                          (Cooperating Process)

                     กระบวนการสามารถทำางานไปพร้อมๆกับ
                     กระบวนการอื่นๆ ได้โดยอิสระต่อกัน หรืออาจ
                     ประสานงานกันได้
                        ถ้ากระบวนการเหล่านีไม่ได้ใช้ข้อมูลใดๆ ร่วมกัน
                                            ้
                         ทั้งแบบชั่วคราวและถาวร เรียกว่าอิสระต่อกัน
                         (independent)
                        ถ้าหากกระบวนการเหล่านั้นเกี่ยวข้องกัน มีการใช้
                         ข้อมูลร่วมกัน กิจกรรมของกระบวนการหนึ่งมีผล
                         ต่ออีกกระบวนการหนึ่ง เราเรียกว่ากระบวนการ
                         เหล่านี้ประสานงานกัน (cooperating)

วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 24
Cooperating Process (cont.)


                     ข้อดีของการที่กระบวนการมีสภาพแวดล้อมใน
                     การทำางานอย่างประสานกันมีหลายประการ ได้แก่
                        การแบ่งปันข้อมูล (information sharing)
                        เพิ่มความเร็วในการประมวลผล (computation
                         speedup)
                        สภาพมอดุลาร์ (modularity)
                        ความสะดวก (convenience)

                     ในการทำางานร่วมกันจำาเป็นต้องอาศัยกลไกการ
                     สื่อสารข้ามกระบวนการ (IPC) และการประสาน
                     เวลา (synchronization) เข้ามาช่วย

วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 25
การสือ สารระหว่า งกระบวนการ
                                   ่
                           (Interprocess Communication: IPC)

                     การส่งผ่านข่าวสาร (message-passing)
                     การตั้งชื่อ (naming)
                     การสื่อสารทางอ้อม (indirect
                     communication)
                     การประสานเวลา (synchronization)




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 26
Interprocess Communication (IPC)


                     Mechanism for processes to communicate and to
                     synchronize their actions.
                     Message system – processes communicate with
                     each other without resorting to shared variables.
                     IPC facility provides two operations:
                        send(message) – message size fixed or variable
                        receive(message)
                     If P and Q wish to communicate, they need to:
                        establish a communication link between them
                        exchange messages via send/receive
                     Implementation of communication link
                        physical (e.g., shared memory, hardware bus)
                        logical (e.g., logical properties)



วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 27
Implementation Questions


                     -จะทำาการติดตั้งสายการเชื่อมโยงได้อย่างไร
                     -สายการเชื่อมโยงหนึ่งเส้นสามารถใช้สื่อสารได้
                     มากกว่าหนึ่งกระบวนการหรือไม่
                     -ต้องมีจำานวนสายการเชื่อมโยงกระบวนการแต่ละ
                     คู่ได้กี่เส้น
                     -ความจุของสายควรมีขนาดเท่าไร
                     -ขนาดของข่าวสารที่ใช้สื่อสารกันจะมีรูปแบบ
                     คงที่หรือแปรผัน
                     -สายการเชื่อมโยงจะเป็นแบบเดี่ยว
                     (unidirectional) หรือแบบคู่ (bi-directional)

วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 28
Direct Communication


                     กระบวนการที่ต้องการสื่อจะต้องใช้ชื่อที่ชัดเจนทั้งฝั่ง
                     รับและฝั่งส่งในรูปแบบข้างล่างนี้
                        -send(P, message)                                   -ส่งข่าวสารไปยังกระบวนการ
                         P
                        -receive(Q, message)                                -รับข่าวสารจากกระบวนการ Q
                
                     การเชื่อมโยงการสื่อสารจะต้องมีคุณลักษณะ ดังนี้
                        ทั้งฝั่งรับและฝั่งส่งจะต้องติดตั้งการเชื่อมโยงระหว่างกันโดย
                         อัตโนมัติ
                        การเชื่อมโยงจะทำาเฉพาะคู่ของฝังรับและฝังส่งเท่านั้น
                                                          ่         ่
                        ฝั่งรับและฝั่งส่งจะมีการเชื่อมโยงเพียงเส้นเดียวเท่านั้น
                        สายการเชื่อมโยงสามารถใช้ได้ทั้งแบบทางเดี่ยวและทางคู่
                         แต่โดยทั่วไปใช้แบบทางคู่

วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 29
Indirect Communication

                       ข่าวสารจะถูกส่งและรับผ่านทาง mailbox
                       หรือport
                          mailbox จะมีเลขทีซึ่งไม่ซำ้ากัน (unique id) กำากับไว้
                                            ่
                          ทุกกระบวนการสามารถติดต่อสื่อสารถึงกันโดย
                              อาศัยmailbox ดังกล่าวนี้ ในบางกรณี อาจมีมากกว่า
                              หนึ่งกระบวนสามารถใช้ตู้ไปรษณีย์ร่วมกันได้
                       Operation ของ mailbox
                          การสร้างตู้ไปรษณีย์ใหม่
                          การส่งข่าวสารผ่านตู้ไปรษณีย์
                          การลบตู้ไปรษณีย์




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 30
Indirect Communication


                     Mailbox sharing
                        P1, P2, and P3 share mailbox A.
                        P1, sends; P2 and P3 receive.
                        Who gets the message?
                     Solutions
                        อนุญาตให้สายการเชื่อมโยงหนึ่งเส้นรองรับ
                         กระบวนการได้มากที่สุดเพียง 2 กระบวนการเท่านั้น
                        อนุญาตให้มเพียงกระบวนเดียวที่สามารถรับข่าวสาร
                                     ี
                         จากตู้ไปรษณีย์ ณ ขณะใดขณะหนึ่ง
                        ให้ระบบเป็นผูตัดสินใจชี้ขาดว่าจะเลือกให้กระบวนการ
                                       ้
                         ใดเป็นผูรับข่าวสารนั้น และแจ้งว่าใครเป็นผูรับไปให้ผู้
                                 ้                                 ้
                         ส่งทราบ


วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 31
การประสานเวลา
                                                      (synchronization)

                     การสื่อสารระหว่างกระบวนการจะอยู่ในรูปแบบที่
                     เรียกว่า การส่ง (send) และการรับ (receive)
                     สามารถออกแบบในการรับ-ส่งข่าวสารเป็นแบบ
                     บล็อก (blocking) หรือแบบนันบล็อก
                     (nonblocking)
                     แบบบล็อก (blocking) บางทีเรียกว่าการประสาน
                     เวลา (synchronous)
                     แบบนันบล็อก (nonblocking) บางทีเรียกว่า ไม่
                     ประสานเวลา (asynchronous) ก็ได้
                     การรับและการส่ง สามารถกำาหนดให้เป็นแบบ
                     บล็อก หรือนันบล็อก ก็ได้


วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 32
การปรับ อัต รา (buffering)


                     ข่าวสารจะถูกแลกเปลี่ยนโดยกระบวนการสื่อสาร
                     ซึ่งอยู่ในกองซ้อนชัวคราว (temporary queue)
                                          ่
                     เลือกวิธใดวิธีหนึ่งดังนี้
                              ี
                        ความจุค่าศูนย์ (zero capacity) ขนาดสูงสุดของกอง
                         ซ้อนมีคาเป็นศูนย์ หมายความว่า จะมีข่าวสารอยู่ในกอง
                                ่
                         ซ้อนได้เพียงชุดเดียวเท่านั้น
                        ความจุค่าจำากัด (bounded capacity) ขนาดความจุ
                         ของกองซ้อนมีคาจำากัดเท่ากับ n ดังนั้น จึงรองรับ
                                         ่
                         ข่าวสารได้มากถึง n จำานวนเท่าความจุ
                        ความจุค่าไม่จำากัด (unbounded capacity) จึงสามารถ
                         รองรับข่าวสารได้ทงหมดโดยผูส่งไม่จำาเป็นต้องหยุดรอ
                                             ั้       ้



วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 33
เธรด (Thread)


                     เดิม 1 กระบวนการ ควบคุม 1 เธรด เรียกว่ามีนำ้าหนักมาก
                     (heavyweight)
                     ปัจจุบน 1 กระบวนการ มีการออกเป็นส่วนย่อยๆ จำานวน
                           ั
                     มาก แต่ละส่วนย่อยเรียกว่า เธรด เรียกว่า กระบวนการนำ้า
                     หนักเบา (lightweight process)
                        แต่ละเธรดจะบรรจุไว้ด้วย หมายเลขเธรด, ตัวนับโปรแกรม, กลุ่ม
                         เรจิสเตอร์ และกองซ้อนที่ใช้
                        เธรดจะมีการใช้งานร่วมกันกับเธรดอืนๆ ภายใต้กระบวนการ
                                                           ่
                         เดียวกัน เช่น ส่วนรหัส, ข้อมูล
                        มีการใช้ทรัพยากรอืนของระบบปฏิบติการ อย่างเช่น การเปิด
                                            ่            ั
                         แฟ้ม และสัญญาณ (signal)
                     กระบวนการมีคณลักษณะเป็นแบบมัลติเธรด (multithread)
                                 ุ
                     สามารถควบคุมเธรดหลายเธรด จึงสามารถทำางานได้หลาย
                     งานไปพร้อมๆ กันได้ในเวลาเดียวกัน


วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 34
Thread (cont.)




                                 กระบวนการแบบเธรดเดียวกับมัลติเธรด

วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 35
Thread (cont.)


                     ประโยชน์ของมัลติเธรด
                        การโต้ตอบ
                        การใช้ทรัพยากรร่วมกัน
                        ประหยัด
                        การใช้ประโยชน์จากสถาปัตยกรรมแบบมัลติ
                           โปรเซสเซอร์




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 36
User Threads


                     Thread management done by user-level
                     threads library

                     Examples
                     - POSIX Pthreads
                     - Mach C-threads
                     - Solaris threads



วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 37
Kernel Threads


                     Supported by the Kernel

                     Examples
                     - Windows 95/98/NT/2000
                     - Solaris
                     - Tru64 UNIX
                     - BeOS
                     - Linux

วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 38
Multithreading Models


                     Many-to-One

                     One-to-One

                     Many-to-Many




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 39
Many-to-One


                     Many user-level threads mapped to
                     single kernel thread.

                     Used on systems that do not support
                     kernel threads.




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 40
Many-to-One Model




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 41
One-to-One


                     Each user-level thread maps to kernel
                     thread.

                     Examples
                     - Windows 95/98/NT/2000
                     - OS/2




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 42
One-to-one Model




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 43
Many-to-Many Model


                     Allows many user level threads to be
                     mapped to many kernel threads.
                     Allows the operating system to create a
                     sufficient number of kernel threads.
                     Solaris 2
                     Windows NT/2000 with the ThreadFiber
                     package



วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 44
Many-to-Many Model




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 45
Threading Issues


                     Semantics of fork() and exec() system
                     calls.
                     Thread cancellation.
                     Signal handling
                     Thread pools
                     Thread specific data




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 46
Pthreads


                     a POSIX standard (IEEE 1003.1c) API
                     for thread creation and synchronization.
                     API specifies behavior of the thread
                     library, implementation is up to
                     development of the library.
                     Common in UNIX operating systems.




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 47
Solaris 2 Threads




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 48
Solaris Process




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 49
Windows 2000 Threads


                     Implements the one-to-one mapping.
                     Each thread contains
                     - a thread id
                     - register set
                     - separate user and kernel stacks
                     - private data storage area




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 50
Linux Threads


                     Linux refers to them as tasks rather than
                     threads.
                     Thread creation is done through clone()
                     system call.
                     Clone() allows a child task to share the
                     address space of the parent task
                     (process)



วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 51
Java Threads


                     Java threads may be created by:

                        Extending Thread class
                        Implementing the Runnable interface


                     Java threads are managed by the JVM.




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 52
Java Thread States




วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 53
วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 54

Mais conteúdo relacionado

Mais procurados

โครงงานผลไม้องุ่น
โครงงานผลไม้องุ่นโครงงานผลไม้องุ่น
โครงงานผลไม้องุ่นkwan125
 
ตัวอย่างการเขียนโครงงาน5บท
ตัวอย่างการเขียนโครงงาน5บทตัวอย่างการเขียนโครงงาน5บท
ตัวอย่างการเขียนโครงงาน5บทSittidet Nawee
 
2.1 อุปกรณ์คอมพิวเตอร์
2.1 อุปกรณ์คอมพิวเตอร์2.1 อุปกรณ์คอมพิวเตอร์
2.1 อุปกรณ์คอมพิวเตอร์Chatree MChatree
 
ใบงาน-ส่วนประกอบของคอมพิวเตอร์
ใบงาน-ส่วนประกอบของคอมพิวเตอร์ใบงาน-ส่วนประกอบของคอมพิวเตอร์
ใบงาน-ส่วนประกอบของคอมพิวเตอร์Hikaru Sai
 
หน่วยการเรียนรู้ที่ 1 งานบ้าน แบบทดสอบ
หน่วยการเรียนรู้ที่ 1 งานบ้าน แบบทดสอบหน่วยการเรียนรู้ที่ 1 งานบ้าน แบบทดสอบ
หน่วยการเรียนรู้ที่ 1 งานบ้าน แบบทดสอบอ๋อ จ้า
 
Operating System Chapter 3
Operating System Chapter 3Operating System Chapter 3
Operating System Chapter 3Nuth Otanasap
 
ส่วนประกอบของคอมพิวเตอร์ฮาร์ดแวร์
ส่วนประกอบของคอมพิวเตอร์ฮาร์ดแวร์ส่วนประกอบของคอมพิวเตอร์ฮาร์ดแวร์
ส่วนประกอบของคอมพิวเตอร์ฮาร์ดแวร์พ่อ อาชีวะ
 
ทฤษฎีแรงจูงใจ
ทฤษฎีแรงจูงใจทฤษฎีแรงจูงใจ
ทฤษฎีแรงจูงใจPoy Thammaugsorn
 
ระบบสารสนเทศในโรงพยาบาล (March 12, 2018)
ระบบสารสนเทศในโรงพยาบาล (March 12, 2018)ระบบสารสนเทศในโรงพยาบาล (March 12, 2018)
ระบบสารสนเทศในโรงพยาบาล (March 12, 2018)Nawanan Theera-Ampornpunt
 
ข้อสอบปลายภาค50ข้อexcel 07 2558
ข้อสอบปลายภาค50ข้อexcel 07 2558ข้อสอบปลายภาค50ข้อexcel 07 2558
ข้อสอบปลายภาค50ข้อexcel 07 2558peter dontoom
 
ตัวอย่างบทที่1 บทนำ เล่มโปรเจ็ค
ตัวอย่างบทที่1 บทนำ เล่มโปรเจ็คตัวอย่างบทที่1 บทนำ เล่มโปรเจ็ค
ตัวอย่างบทที่1 บทนำ เล่มโปรเจ็คtumetr1
 
แนวคิด ทฤษฎีเกี่ยวกับการจัดการความรู้
แนวคิด ทฤษฎีเกี่ยวกับการจัดการความรู้แนวคิด ทฤษฎีเกี่ยวกับการจัดการความรู้
แนวคิด ทฤษฎีเกี่ยวกับการจัดการความรู้Kanyarat Okong
 
องค์ประกอบของคอมพิวเตอร์
องค์ประกอบของคอมพิวเตอร์องค์ประกอบของคอมพิวเตอร์
องค์ประกอบของคอมพิวเตอร์moemon12
 
ประโยชน์ของผังงาน
ประโยชน์ของผังงานประโยชน์ของผังงาน
ประโยชน์ของผังงานPannathat Champakul
 

Mais procurados (20)

แนวข้อสอบ 100 ข้อ
แนวข้อสอบ  100  ข้อแนวข้อสอบ  100  ข้อ
แนวข้อสอบ 100 ข้อ
 
โครงงานผลไม้องุ่น
โครงงานผลไม้องุ่นโครงงานผลไม้องุ่น
โครงงานผลไม้องุ่น
 
ตัวอย่างการเขียนโครงงาน5บท
ตัวอย่างการเขียนโครงงาน5บทตัวอย่างการเขียนโครงงาน5บท
ตัวอย่างการเขียนโครงงาน5บท
 
2.1 อุปกรณ์คอมพิวเตอร์
2.1 อุปกรณ์คอมพิวเตอร์2.1 อุปกรณ์คอมพิวเตอร์
2.1 อุปกรณ์คอมพิวเตอร์
 
ใบงาน-ส่วนประกอบของคอมพิวเตอร์
ใบงาน-ส่วนประกอบของคอมพิวเตอร์ใบงาน-ส่วนประกอบของคอมพิวเตอร์
ใบงาน-ส่วนประกอบของคอมพิวเตอร์
 
2
22
2
 
Ch06th
Ch06thCh06th
Ch06th
 
หน่วยการเรียนรู้ที่ 1 งานบ้าน แบบทดสอบ
หน่วยการเรียนรู้ที่ 1 งานบ้าน แบบทดสอบหน่วยการเรียนรู้ที่ 1 งานบ้าน แบบทดสอบ
หน่วยการเรียนรู้ที่ 1 งานบ้าน แบบทดสอบ
 
ศัพท์ที่เกี่ยวข้องกับเทคโนโลยี
ศัพท์ที่เกี่ยวข้องกับเทคโนโลยีศัพท์ที่เกี่ยวข้องกับเทคโนโลยี
ศัพท์ที่เกี่ยวข้องกับเทคโนโลยี
 
Operating System Chapter 3
Operating System Chapter 3Operating System Chapter 3
Operating System Chapter 3
 
OM Theory (Ch.2)
OM Theory (Ch.2)OM Theory (Ch.2)
OM Theory (Ch.2)
 
ส่วนประกอบของคอมพิวเตอร์ฮาร์ดแวร์
ส่วนประกอบของคอมพิวเตอร์ฮาร์ดแวร์ส่วนประกอบของคอมพิวเตอร์ฮาร์ดแวร์
ส่วนประกอบของคอมพิวเตอร์ฮาร์ดแวร์
 
ทฤษฎีแรงจูงใจ
ทฤษฎีแรงจูงใจทฤษฎีแรงจูงใจ
ทฤษฎีแรงจูงใจ
 
ระบบสารสนเทศในโรงพยาบาล (March 12, 2018)
ระบบสารสนเทศในโรงพยาบาล (March 12, 2018)ระบบสารสนเทศในโรงพยาบาล (March 12, 2018)
ระบบสารสนเทศในโรงพยาบาล (March 12, 2018)
 
ข้อสอบปลายภาค50ข้อexcel 07 2558
ข้อสอบปลายภาค50ข้อexcel 07 2558ข้อสอบปลายภาค50ข้อexcel 07 2558
ข้อสอบปลายภาค50ข้อexcel 07 2558
 
ตัวอย่างบทที่1 บทนำ เล่มโปรเจ็ค
ตัวอย่างบทที่1 บทนำ เล่มโปรเจ็คตัวอย่างบทที่1 บทนำ เล่มโปรเจ็ค
ตัวอย่างบทที่1 บทนำ เล่มโปรเจ็ค
 
แนวคิด ทฤษฎีเกี่ยวกับการจัดการความรู้
แนวคิด ทฤษฎีเกี่ยวกับการจัดการความรู้แนวคิด ทฤษฎีเกี่ยวกับการจัดการความรู้
แนวคิด ทฤษฎีเกี่ยวกับการจัดการความรู้
 
ข้อสอบคอมพิวเตอร์ PowerPoint +internet
ข้อสอบคอมพิวเตอร์ PowerPoint +internetข้อสอบคอมพิวเตอร์ PowerPoint +internet
ข้อสอบคอมพิวเตอร์ PowerPoint +internet
 
องค์ประกอบของคอมพิวเตอร์
องค์ประกอบของคอมพิวเตอร์องค์ประกอบของคอมพิวเตอร์
องค์ประกอบของคอมพิวเตอร์
 
ประโยชน์ของผังงาน
ประโยชน์ของผังงานประโยชน์ของผังงาน
ประโยชน์ของผังงาน
 

Destaque

Operating System Chapter 4
Operating System Chapter 4Operating System Chapter 4
Operating System Chapter 4Nuth Otanasap
 
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)krissapat
 
สิ่งแวดล้อมทางการเรียนรู้ กับ กระบวนทัศน์ใหม่ของการเรียนรู้
สิ่งแวดล้อมทางการเรียนรู้ กับ กระบวนทัศน์ใหม่ของการเรียนรู้สิ่งแวดล้อมทางการเรียนรู้ กับ กระบวนทัศน์ใหม่ของการเรียนรู้
สิ่งแวดล้อมทางการเรียนรู้ กับ กระบวนทัศน์ใหม่ของการเรียนรู้panisa thepthawat
 
Power BI Desktop screen tour in Thai
Power BI Desktop screen tour in ThaiPower BI Desktop screen tour in Thai
Power BI Desktop screen tour in ThaiPanaEk Warawit
 
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)krissapat
 
5 ca-memory structuret
5 ca-memory structuret5 ca-memory structuret
5 ca-memory structuretkrissapat
 
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)krissapat
 
9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)
9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)
9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)krissapat
 
5 ca-memory structuret
5 ca-memory structuret5 ca-memory structuret
5 ca-memory structuretkrissapat
 
บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อและเทคโนโลยีสารสนเทศเพื่อการเรียนรู้
บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อและเทคโนโลยีสารสนเทศเพื่อการเรียนรู้บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อและเทคโนโลยีสารสนเทศเพื่อการเรียนรู้
บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อและเทคโนโลยีสารสนเทศเพื่อการเรียนรู้Natcha Wannakot
 
บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อ และเทคโนโลยีสารสนเทศเพื่อการเรียนรู้
บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อ และเทคโนโลยีสารสนเทศเพื่อการเรียนรู้บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อ และเทคโนโลยีสารสนเทศเพื่อการเรียนรู้
บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อ และเทคโนโลยีสารสนเทศเพื่อการเรียนรู้panisa thepthawat
 

Destaque (12)

Operating System Chapter 4
Operating System Chapter 4Operating System Chapter 4
Operating System Chapter 4
 
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
 
สิ่งแวดล้อมทางการเรียนรู้ กับ กระบวนทัศน์ใหม่ของการเรียนรู้
สิ่งแวดล้อมทางการเรียนรู้ กับ กระบวนทัศน์ใหม่ของการเรียนรู้สิ่งแวดล้อมทางการเรียนรู้ กับ กระบวนทัศน์ใหม่ของการเรียนรู้
สิ่งแวดล้อมทางการเรียนรู้ กับ กระบวนทัศน์ใหม่ของการเรียนรู้
 
Ict
IctIct
Ict
 
Power BI Desktop screen tour in Thai
Power BI Desktop screen tour in ThaiPower BI Desktop screen tour in Thai
Power BI Desktop screen tour in Thai
 
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
 
5 ca-memory structuret
5 ca-memory structuret5 ca-memory structuret
5 ca-memory structuret
 
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
 
9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)
9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)
9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)
 
5 ca-memory structuret
5 ca-memory structuret5 ca-memory structuret
5 ca-memory structuret
 
บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อและเทคโนโลยีสารสนเทศเพื่อการเรียนรู้
บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อและเทคโนโลยีสารสนเทศเพื่อการเรียนรู้บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อและเทคโนโลยีสารสนเทศเพื่อการเรียนรู้
บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อและเทคโนโลยีสารสนเทศเพื่อการเรียนรู้
 
บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อ และเทคโนโลยีสารสนเทศเพื่อการเรียนรู้
บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อ และเทคโนโลยีสารสนเทศเพื่อการเรียนรู้บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อ และเทคโนโลยีสารสนเทศเพื่อการเรียนรู้
บทที่ 3 การออกแบบและพัฒนานวัตกรรม สื่อ และเทคโนโลยีสารสนเทศเพื่อการเรียนรู้
 

Semelhante a 4 ca-process structure

3 ca-computer system structure
3 ca-computer system structure3 ca-computer system structure
3 ca-computer system structurekrissapat
 
2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)
2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)
2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)krissapat
 
Com element [compatibility mode]
Com element [compatibility mode]Com element [compatibility mode]
Com element [compatibility mode]twatfangmin
 
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้นC:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น-
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1ninewnilubon
 
การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธี
การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธีการแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธี
การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธีSaranyu Srisrontong
 
องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์	องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์ Thanawut Rattanadon
 
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์Orapan Chamnan
 
โครงงาน
โครงงานโครงงาน
โครงงานwanuporn12345
 
Ch 1 introos
Ch 1 introosCh 1 introos
Ch 1 introosporpat21
 
โปรแกรมคอมพิวเตอร์
โปรแกรมคอมพิวเตอร์โปรแกรมคอมพิวเตอร์
โปรแกรมคอมพิวเตอร์Worapod Khomkham
 
Ch 2 process
Ch 2 processCh 2 process
Ch 2 processporpat21
 
หลักการทำงานของคอมพิวเตอร์
หลักการทำงานของคอมพิวเตอร์หลักการทำงานของคอมพิวเตอร์
หลักการทำงานของคอมพิวเตอร์พัน พัน
 
คำศัพท์ที่ควรทราบ
คำศัพท์ที่ควรทราบคำศัพท์ที่ควรทราบ
คำศัพท์ที่ควรทราบossaga
 
คอมพิวเตอร์และเทคโนโลยี
คอมพิวเตอร์และเทคโนโลยีคอมพิวเตอร์และเทคโนโลยี
คอมพิวเตอร์และเทคโนโลยีtee0533
 

Semelhante a 4 ca-process structure (20)

3 ca-computer system structure
3 ca-computer system structure3 ca-computer system structure
3 ca-computer system structure
 
2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)
2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)
2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)
 
Com element [compatibility mode]
Com element [compatibility mode]Com element [compatibility mode]
Com element [compatibility mode]
 
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้นC:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
Learnning02
Learnning02Learnning02
Learnning02
 
การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธี
การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธีการแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธี
การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธี
 
องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์	องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์
 
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
 
โครงงาน
โครงงานโครงงาน
โครงงาน
 
223333
223333223333
223333
 
Sallai pro
Sallai proSallai pro
Sallai pro
 
Project Sky
Project SkyProject Sky
Project Sky
 
C1
C1C1
C1
 
Ch 1 introos
Ch 1 introosCh 1 introos
Ch 1 introos
 
โปรแกรมคอมพิวเตอร์
โปรแกรมคอมพิวเตอร์โปรแกรมคอมพิวเตอร์
โปรแกรมคอมพิวเตอร์
 
Ch 2 process
Ch 2 processCh 2 process
Ch 2 process
 
หลักการทำงานของคอมพิวเตอร์
หลักการทำงานของคอมพิวเตอร์หลักการทำงานของคอมพิวเตอร์
หลักการทำงานของคอมพิวเตอร์
 
คำศัพท์ที่ควรทราบ
คำศัพท์ที่ควรทราบคำศัพท์ที่ควรทราบ
คำศัพท์ที่ควรทราบ
 
คอมพิวเตอร์และเทคโนโลยี
คอมพิวเตอร์และเทคโนโลยีคอมพิวเตอร์และเทคโนโลยี
คอมพิวเตอร์และเทคโนโลยี
 

4 ca-process structure

  • 2. วัต ถุป ระสงค์ก ารเรีย นรู้ เพื่อศึกษาแนวคิดและโครงสร้างของ กระบวนการในระบบคอมพิวเตอร์ เพื่อศึกษาการจัดการกระบวนการ การ ประสานงานระหว่างกระบวนการ และการ สื่อสารระหว่างกระบวนการ วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 2
  • 3. Agenda Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 3
  • 4. แนวคิด เกี่ย วกับ กระบวนการ (Process Concept) กิจกรรมทุกอย่างทีหน่วยประมวลผลกลาง ่ กระทำานัน ้  ในระบบเชิงกลุ่ม (batch) เรียกว่า งาน (job)  ในระบบแบ่งกันใช้เวลา (time-sharing) เรียกว่า โปรแกรมผู้ใช้ (user program) หรือภารกิจ (task)  คำาว่า งาน และ กระบวนการ (process) จึง สามารถใช้แทนกันได้ วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 4
  • 5. Process Concept (cont.) กระบวนการ คือโปรแกรมทีถูกกระทำาการ (a ่ program in execution) กระบวนการจะประกอบด้วย:  program counter  stack  data section วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 5
  • 6. Process Concept (cont.) เมื่อกระบวนการถูกกระทำาการ จะถูกเปลี่ยน สถานะ (state) สถานะของกระบวนการ หมายถึง ขณะปัจจุบัน ของกิจกรรมของกระบวนการ ประกอบด้วย  ใหม่ (new) กระบวนการทีเพิ่งถูกสร้างใหม่ ่  กำาลังดำาเนินงาน (running) ชุดคำาสั่งทีกำาลังถูกกระทำาการ ่  รอ (waiting) กระบวนการที่กำาลังรอคอยเหตุการณ์บาง อย่าง เช่น รอสัญญาณ รอให้ไอ/โอ เสร็จ  พร้อม (ready) กระบวนการที่กำาลังรอให้เข้าใช้หน่วย ประมวลผล  สิ้นสุด (terminated) กระบวนการที่กระทำาการเสร็จแล้ว วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 6
  • 7. Diagram of Process State วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 7
  • 8. บล็อ กควบคุม กระบวนการ (Process Control Block-PCB) บล็อกควบคุมกระบวนการ จะประกอบด้วยข้อมูลที่ เกี่ยวกับ  สถานะกระบวนการ (process state)  ตัวนับโปรแกรม (program counter)  เรจิสเตอร์ของซีพียู (CPU register)  ข้อมูลการจัดลำาดับซีพียู (CPU-scheduling information)  ข้อมูลการจัดการหน่วยความจำา (memory- management information)  ข้อมูลบัญชีผใช้ (accounting information) ู้  ข้อมูลสถานะไอ/โอ (I/O status information) วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 8
  • 9. Process Control Block (PCB) วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 9
  • 10. CPU Switch From Process to Process วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 10
  • 11. คิว การจัด ลำา ดับ กระบวนการ (Process Scheduling Queues) คิวงาน (Job queue) กลุ่มของทุกกระบวนการ ในระบบ คิวพร้อม (Ready queue) กลุ่มของทุก กระบวนการทีฝังอยู่ในหน่วยความจำาหลักทีรอ ่ ่ execute คิวอุปกรณ์ (Device queues) กลุ่มของ กระบวนการทังหมดที่กำาลังรออุปกรณ์ i/o ้ มีการย้ายกระบวนการไปมาระหว่างคิวต่างๆ ข้างต้น วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 11
  • 12. Ready Queue And Various I/O Device Queues วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 12
  • 13. Representation of Process Scheduling วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 13
  • 14. ตัว จัด ลำา ดับ (Schedulers) Long-term scheduler (or job scheduler)  ทำาหน้าที่คดเลือกกลุ่มกระบวนการขึนมาจากที่พกเก็บ ั ้ ั ไปยังหน่วยความจำาหลักไปยังคิวพร้อม  ควบคุมดีกรีของการทำางานแบบหลายโปรแกรม (degree of multiprogramming) ให้เหมาะสม Short-term scheduler (or CPU scheduler)  ทำาหน้าที่คดเลือกกระบวนการที่พร้อมจะถูกกระทำาการ ั ขึ้นมาหนึงกระบวนการให้เข้าใช้ซีพยู ่ ี ตัวจัดลำาดับระยะกลาง (medium-term scheduler)  ทำาหน้าที่ขจัดกระบวนการออกจากหน่วยความจำา ช่วย ลดดีกรีของการทำางานแบบหลายโปรแกรมลง วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 14
  • 15. การเพิ่มตัวจัดลำาดับระยะกลาง (Medium Term Scheduling) มาช่วยในแถวคอย วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 15
  • 16. Schedulers (cont.) Short-term scheduler จะทำางานบ่อยมาก (milliseconds) ⇒ (ต้องเร็ว). Long-term scheduler ทำางานไม่บ่อยนัก (seconds, minutes) ⇒ (อาจช้าได้) long-term scheduler จะควบคุม degree of multiprogramming. กระบวนการส่วนใหญ่จะมีคุณลักษณะอยู่ 2 ประเภท  กระบวนการเน้นซีพียู (CPU-bound process) เป็นกระบวน การที่เข้าครอบครองซีพียูนานแต่เกี่ยวพันกับอุปกรณ์ประเภท ไอ/โอน้อย  กระบวนการเน้นไอ/โอ (I/O-bound process) ซึ่งเป็นกระ บวนการที่ใช้เวลาซีพียูน้อยแต่ครอบครองไอ/โอนาน วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 16
  • 17. การสับ เปลี่ย น (swapping) Medium Term Scheduling จะช่วยจัดสรร กระบวนแบบเน้นซีพยูและแบบเน้น i/o ให้มี ี ความสมดุลกันมากขึ้นในระบบ โดยพยายามสลับเอากระบวนการที่ยงไม่ ั จำาเป็นออกจากหน่วยความจำาไปเก็บไว้ในดิสก์ และสลับกระบวนการทีจำาเป็นจากดิสก์เข้ามา ่ ไว้ในหน่วยความจำา เรียกกิจกรรมเช่นนีว่า การสลับเข้า/การสลับ ้ ออก (swap-in/swap-out) วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 17
  • 18. การสลับ บริบ ท (Context Switch) เมื่อซีพียูจะเปลี่ยนไปยังกระบวนการอื่น จะต้อง เก็บสถานะปัจจุบันของกระบวนการเดิมไว้ใน PCB (process control box) ก่อน แล้วค่อย โหลดสถานะของกระบวนการใหม่เข้ามา ในการสลับบริบท ระบบจะเสียเวลา (มี overhead) และยังทำางานไม่ได้ขณะทำาการสลับบริบท จึงมัก ใช้ฮาร์ดแวร์ช่วย PCB จะเก็บข้อมูล  ค่าของเรจิสเตอร์ในซีพียู  สถานะกระบวนการ  ข้อมูลการจัดการหน่วยความจำา วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 18
  • 19. การสร้า งกระบวนการ (Process Creation) กระบวนการสามารถสร้างกระบวนขึ้นมาใหม่ ได้ในระหว่างการทำางานผ่าน system call การสร้างกระบวนการ (create-process)  กระบวนการที่สร้างเรียกว่า กระบวนการแม่ (parent process)  กระบวนการที่ถูกสร้างเรียกว่า กระบวนการลูก (children process) ของกระบวนการแม่นน ั้  แต่ละกระบวนการสามารถสร้างกระบวนลูกได้ อย่างไม่จำากัดในรูปแบบต้นไม้ (tree) วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 19
  • 20. Process Creation (cont.) ลักษณะการแบ่งปันทรัพยากร  ทั้ง Parent และ children จะใช้ทรัพยากรร่วมกัน ทั้งหมด  children จะใช้ทรัพยากรในส่วนของ parent  ทั้ง Parent and child ไม่มการใช้ทรัพยากรร่วมกัน ี Execution  Parent และ children จะ execute พร้อมๆ กัน  Parent จะรอจนกระทั่ง children สิ้นสุด Address space  Child เรียกใช้เลขทีอยู่เดียวกับ Parent ่  Children ทำาการบรรจุโปรแกรมเข้าไปไว้ในตำาแหน่งที่ อยู่ของกระบวนการ Parent วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 20
  • 21. การเลิก กระบวนการ (Process Termination) เมื่อกระบวนการกระทำาการเสร็จสินแล้วก็จะลบ ้ ตัวเอง (ผ่านทาง exit system call) กระบวนการอาจคืนค่าผลลัพธ์บางอย่างกลับ ไปยังกระบวนการแม่ (ผ่านทาง wait system call) แล้วปลดปล่อยทรัพยากรทังหมด เช่น ้ physical/virtual memory, file open, i/o buffer กระบวนการแม่สามารถยกเลิกกระบวนการ ทั้งหมดของลูกได้ (abort) กระบวนการแม่ถูก ยกเลิกโดยระบบปฏิบัติการหรือผู้ใช้ วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 21
  • 22. การเลิก กระบวนการ (Process Termination) การยกเลิกกระบวนการสามารถเกิดขึ้นหลาย สาเหตุ  กระบวนการลูกเรียกใช้ทรัพยากรที่ไม่มสิทธิใช้ ี ์  ภารกิจที่กระบวนการลูกทำาเสร็จสิ้นแล้วไม่จำาเป็นต้อง ใช้กระบวนการลูกอีกต่อไป  กระบวนการแม่ออกจากระบบ และระบบปฏิบัติการไม่ อนุญาตให้กระบวนการลูกเข้าใช้ทรัพยากรอีกต่อไป จำาเป็นต้องมีกลไกการเลิกแบบต่อเรียง (cascading termination) เพื่อยกเลิก กระบวนการย่อยแบบเป็นทอดๆ ในโครงสร้าง แบบต้นไม้ วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 22
  • 23. Processes Tree on a UNIX System วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 23
  • 24. การประสานกระบวนการ (Cooperating Process) กระบวนการสามารถทำางานไปพร้อมๆกับ กระบวนการอื่นๆ ได้โดยอิสระต่อกัน หรืออาจ ประสานงานกันได้  ถ้ากระบวนการเหล่านีไม่ได้ใช้ข้อมูลใดๆ ร่วมกัน ้ ทั้งแบบชั่วคราวและถาวร เรียกว่าอิสระต่อกัน (independent)  ถ้าหากกระบวนการเหล่านั้นเกี่ยวข้องกัน มีการใช้ ข้อมูลร่วมกัน กิจกรรมของกระบวนการหนึ่งมีผล ต่ออีกกระบวนการหนึ่ง เราเรียกว่ากระบวนการ เหล่านี้ประสานงานกัน (cooperating) วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 24
  • 25. Cooperating Process (cont.) ข้อดีของการที่กระบวนการมีสภาพแวดล้อมใน การทำางานอย่างประสานกันมีหลายประการ ได้แก่  การแบ่งปันข้อมูล (information sharing)  เพิ่มความเร็วในการประมวลผล (computation speedup)  สภาพมอดุลาร์ (modularity)  ความสะดวก (convenience) ในการทำางานร่วมกันจำาเป็นต้องอาศัยกลไกการ สื่อสารข้ามกระบวนการ (IPC) และการประสาน เวลา (synchronization) เข้ามาช่วย วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 25
  • 26. การสือ สารระหว่า งกระบวนการ ่ (Interprocess Communication: IPC) การส่งผ่านข่าวสาร (message-passing) การตั้งชื่อ (naming) การสื่อสารทางอ้อม (indirect communication) การประสานเวลา (synchronization) วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 26
  • 27. Interprocess Communication (IPC) Mechanism for processes to communicate and to synchronize their actions. Message system – processes communicate with each other without resorting to shared variables. IPC facility provides two operations:  send(message) – message size fixed or variable  receive(message) If P and Q wish to communicate, they need to:  establish a communication link between them  exchange messages via send/receive Implementation of communication link  physical (e.g., shared memory, hardware bus)  logical (e.g., logical properties) วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 27
  • 28. Implementation Questions -จะทำาการติดตั้งสายการเชื่อมโยงได้อย่างไร -สายการเชื่อมโยงหนึ่งเส้นสามารถใช้สื่อสารได้ มากกว่าหนึ่งกระบวนการหรือไม่ -ต้องมีจำานวนสายการเชื่อมโยงกระบวนการแต่ละ คู่ได้กี่เส้น -ความจุของสายควรมีขนาดเท่าไร -ขนาดของข่าวสารที่ใช้สื่อสารกันจะมีรูปแบบ คงที่หรือแปรผัน -สายการเชื่อมโยงจะเป็นแบบเดี่ยว (unidirectional) หรือแบบคู่ (bi-directional) วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 28
  • 29. Direct Communication กระบวนการที่ต้องการสื่อจะต้องใช้ชื่อที่ชัดเจนทั้งฝั่ง รับและฝั่งส่งในรูปแบบข้างล่างนี้  -send(P, message) -ส่งข่าวสารไปยังกระบวนการ P  -receive(Q, message) -รับข่าวสารจากกระบวนการ Q   การเชื่อมโยงการสื่อสารจะต้องมีคุณลักษณะ ดังนี้  ทั้งฝั่งรับและฝั่งส่งจะต้องติดตั้งการเชื่อมโยงระหว่างกันโดย อัตโนมัติ  การเชื่อมโยงจะทำาเฉพาะคู่ของฝังรับและฝังส่งเท่านั้น ่ ่  ฝั่งรับและฝั่งส่งจะมีการเชื่อมโยงเพียงเส้นเดียวเท่านั้น  สายการเชื่อมโยงสามารถใช้ได้ทั้งแบบทางเดี่ยวและทางคู่ แต่โดยทั่วไปใช้แบบทางคู่ วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 29
  • 30. Indirect Communication ข่าวสารจะถูกส่งและรับผ่านทาง mailbox หรือport  mailbox จะมีเลขทีซึ่งไม่ซำ้ากัน (unique id) กำากับไว้ ่  ทุกกระบวนการสามารถติดต่อสื่อสารถึงกันโดย อาศัยmailbox ดังกล่าวนี้ ในบางกรณี อาจมีมากกว่า หนึ่งกระบวนสามารถใช้ตู้ไปรษณีย์ร่วมกันได้ Operation ของ mailbox  การสร้างตู้ไปรษณีย์ใหม่  การส่งข่าวสารผ่านตู้ไปรษณีย์  การลบตู้ไปรษณีย์ วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 30
  • 31. Indirect Communication Mailbox sharing  P1, P2, and P3 share mailbox A.  P1, sends; P2 and P3 receive.  Who gets the message? Solutions  อนุญาตให้สายการเชื่อมโยงหนึ่งเส้นรองรับ กระบวนการได้มากที่สุดเพียง 2 กระบวนการเท่านั้น  อนุญาตให้มเพียงกระบวนเดียวที่สามารถรับข่าวสาร ี จากตู้ไปรษณีย์ ณ ขณะใดขณะหนึ่ง  ให้ระบบเป็นผูตัดสินใจชี้ขาดว่าจะเลือกให้กระบวนการ ้ ใดเป็นผูรับข่าวสารนั้น และแจ้งว่าใครเป็นผูรับไปให้ผู้ ้ ้ ส่งทราบ วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 31
  • 32. การประสานเวลา (synchronization) การสื่อสารระหว่างกระบวนการจะอยู่ในรูปแบบที่ เรียกว่า การส่ง (send) และการรับ (receive) สามารถออกแบบในการรับ-ส่งข่าวสารเป็นแบบ บล็อก (blocking) หรือแบบนันบล็อก (nonblocking) แบบบล็อก (blocking) บางทีเรียกว่าการประสาน เวลา (synchronous) แบบนันบล็อก (nonblocking) บางทีเรียกว่า ไม่ ประสานเวลา (asynchronous) ก็ได้ การรับและการส่ง สามารถกำาหนดให้เป็นแบบ บล็อก หรือนันบล็อก ก็ได้ วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 32
  • 33. การปรับ อัต รา (buffering) ข่าวสารจะถูกแลกเปลี่ยนโดยกระบวนการสื่อสาร ซึ่งอยู่ในกองซ้อนชัวคราว (temporary queue) ่ เลือกวิธใดวิธีหนึ่งดังนี้ ี  ความจุค่าศูนย์ (zero capacity) ขนาดสูงสุดของกอง ซ้อนมีคาเป็นศูนย์ หมายความว่า จะมีข่าวสารอยู่ในกอง ่ ซ้อนได้เพียงชุดเดียวเท่านั้น  ความจุค่าจำากัด (bounded capacity) ขนาดความจุ ของกองซ้อนมีคาจำากัดเท่ากับ n ดังนั้น จึงรองรับ ่ ข่าวสารได้มากถึง n จำานวนเท่าความจุ  ความจุค่าไม่จำากัด (unbounded capacity) จึงสามารถ รองรับข่าวสารได้ทงหมดโดยผูส่งไม่จำาเป็นต้องหยุดรอ ั้ ้ วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 33
  • 34. เธรด (Thread) เดิม 1 กระบวนการ ควบคุม 1 เธรด เรียกว่ามีนำ้าหนักมาก (heavyweight) ปัจจุบน 1 กระบวนการ มีการออกเป็นส่วนย่อยๆ จำานวน ั มาก แต่ละส่วนย่อยเรียกว่า เธรด เรียกว่า กระบวนการนำ้า หนักเบา (lightweight process)  แต่ละเธรดจะบรรจุไว้ด้วย หมายเลขเธรด, ตัวนับโปรแกรม, กลุ่ม เรจิสเตอร์ และกองซ้อนที่ใช้  เธรดจะมีการใช้งานร่วมกันกับเธรดอืนๆ ภายใต้กระบวนการ ่ เดียวกัน เช่น ส่วนรหัส, ข้อมูล  มีการใช้ทรัพยากรอืนของระบบปฏิบติการ อย่างเช่น การเปิด ่ ั แฟ้ม และสัญญาณ (signal) กระบวนการมีคณลักษณะเป็นแบบมัลติเธรด (multithread) ุ สามารถควบคุมเธรดหลายเธรด จึงสามารถทำางานได้หลาย งานไปพร้อมๆ กันได้ในเวลาเดียวกัน วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 34
  • 35. Thread (cont.) กระบวนการแบบเธรดเดียวกับมัลติเธรด วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 35
  • 36. Thread (cont.) ประโยชน์ของมัลติเธรด  การโต้ตอบ  การใช้ทรัพยากรร่วมกัน  ประหยัด  การใช้ประโยชน์จากสถาปัตยกรรมแบบมัลติ โปรเซสเซอร์ วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 36
  • 37. User Threads Thread management done by user-level threads library Examples - POSIX Pthreads - Mach C-threads - Solaris threads วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 37
  • 38. Kernel Threads Supported by the Kernel Examples - Windows 95/98/NT/2000 - Solaris - Tru64 UNIX - BeOS - Linux วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 38
  • 39. Multithreading Models Many-to-One One-to-One Many-to-Many วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 39
  • 40. Many-to-One Many user-level threads mapped to single kernel thread. Used on systems that do not support kernel threads. วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 40
  • 41. Many-to-One Model วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 41
  • 42. One-to-One Each user-level thread maps to kernel thread. Examples - Windows 95/98/NT/2000 - OS/2 วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 42
  • 43. One-to-one Model วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 43
  • 44. Many-to-Many Model Allows many user level threads to be mapped to many kernel threads. Allows the operating system to create a sufficient number of kernel threads. Solaris 2 Windows NT/2000 with the ThreadFiber package วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 44
  • 45. Many-to-Many Model วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 45
  • 46. Threading Issues Semantics of fork() and exec() system calls. Thread cancellation. Signal handling Thread pools Thread specific data วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 46
  • 47. Pthreads a POSIX standard (IEEE 1003.1c) API for thread creation and synchronization. API specifies behavior of the thread library, implementation is up to development of the library. Common in UNIX operating systems. วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 47
  • 48. Solaris 2 Threads วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 48
  • 49. Solaris Process วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 49
  • 50. Windows 2000 Threads Implements the one-to-one mapping. Each thread contains - a thread id - register set - separate user and kernel stacks - private data storage area วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 50
  • 51. Linux Threads Linux refers to them as tasks rather than threads. Thread creation is done through clone() system call. Clone() allows a child task to share the address space of the parent task (process) วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 51
  • 52. Java Threads Java threads may be created by:  Extending Thread class  Implementing the Runnable interface Java threads are managed by the JVM. วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 52
  • 53. Java Thread States วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 53
  • 54. วิเ ชษฐ์ พลายมาศ | โครงสร้างระบบและสถาปัตยกรรมคอมพิวเตอร์ | โครงสร้างของระบบคอมพิวเตอร์ | 54