บทที่ 2 process and thread 2 2551 [โหมดความเข้า ...¸šท... ·...

18
O ti ti Operating perating System ystem System ystem Semester 2, 2008 W kit S t by Worrakit Sanpote http://www.ict.pyo.nu.ac.th/nuttapons/OS.html Process & Process & Thread Thread Process กระบวนการ กระบวนการ (Process) (Process) เปนคาสงเอกซวของโปรแกรม (a program in execution) (a program in execution) เปนคาสงเอกซควของโปรแกรม (a program in execution) (a program in execution) มีการทํางานแบบเปนลําดับ OS vs. Process หนาที ของ หนาที ของ OS OS ที มีตอ ที มีตอ Process Process สร างโปรเซส สรางโปรเซส ลบโปรเซสทั้งของระบบและของผูใช การประสานงาน (synchronize) (synchronize) โปรเซส การตดตอสอสารภายในโปรเซส การตดตอสอสารภายในโปรเซส

Upload: others

Post on 25-Jan-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • OO titiOOperatingperatingSSystemystem

    p gp gSSystemystem

    Semester 2, 2008

    W kit S tby

    Worrakit Sanpote

    http://www.ict.pyo.nu.ac.th/nuttapons/OS.html

    Process &Process & ThreadThread

    Process

    กระบวนการ กระบวนการ (Process)(Process)เปนคําสั่งเอ็กซีคิวของโปรแกรม (a program in execution)(a program in execution)เปนคาสงเอกซควของโปรแกรม (a program in execution)(a program in execution)มีการทํางานแบบเปนลําดับ

    OS vs. Process

    ่่ ่่ หนาที่ของ หนาที่ของ OS OS ที่มตีอ ที่มตีอ ProcessProcessสรางโปรเซสสรางโปรเซสลบโปรเซสทั้งของระบบและของผูใชการประสานงาน (synchronize)(synchronize) โปรเซสการติดตอสื่อสารภายในโปรเซส การตดตอสอสารภายในโปรเซส

  • Process

    Data

    PCB

    Data

    ProgramProcess

    Program

    Operating System

    Processor

    ExecutableMemory

    รูปที่แสดงการรันโปรแกรมประยุกตผานทาง รูปที่แสดงการรันโปรแกรมประยุกตผานทาง OSOS

    Process State

    ้้สถานะของโปรเซส สถานะของโปรเซส (Process State)(Process State) มี มี 4 4 สถานะ ดังนี้สถานะ ดังนี้NewNew :: โปรเซสใหมถกสรางขึ้นNewNew :: โปรเซสใหมถูกสรางขนRunningRunning : : โปรเซสทํางาน (ในหนวยประมวลผลกลาง)WaitingWaiting : : โปรเซสกําลังรอคอยใหเหตุการณบางอยางเกิดขึ้น ReadyReady :: โปรเซสรอคอยที่จะเขาใชหนวยประมวลผลกลางReadyReady :: โปรเซสรอคอยทจะเขาใชหนวยประมวลผลกลางTerminateTerminate :: โปรเซสเสร็จสิ้นการทํางาน

    Process State

    dnew terminatedadmitted

    interruptexit

    admitted

    ready runningscheduler dispatchscheduler dispatch

    I/O or event completion I/O or event wait

    waiting

    รูปที่แสดงแผนภาพสภานะของกระบวนการรูปที่แสดงแผนภาพสภานะของกระบวนการ

    Process Control Block

    ตารางขอมลการปร มวลผล ตารางขอมลการปร มวลผล (Process Control Block : PCB)(Process Control Block : PCB)ตารางขอมูลการประมวลผล ตารางขอมูลการประมวลผล (Process Control Block : PCB)(Process Control Block : PCB)

    ระบบปฏิบัติการแทนกระบวนการตางๆ ดวยตารางขอมลของโปรเซส ระบบปฏบตการแทนกระบวนการตางๆ ดวยตารางขอมูลของโปรเซส (PCB : Process Control Block)(PCB : Process Control Block) หรือเรียกอีกอยางหนึ่งวา Task Task C t l Bl kC t l Bl k ึ่ ป ี ื ี่ใ ็ ี่Control BlockControl Block ซึงเปนระเบียนหรือตารางขอมูลทีใชเก็บขอมูลตางๆ ทีเกี่ยวของกับแตละโปรเซส

  • Process Control Block

    pointer Processpointer stateProcess numberProcess counter

    i tregisters

    scheduling memoryscheduling memoryaccount I/O status

    รูปแสดงรูปแสดง Process Control Block Process Control Block

    Process Control Block

    องคประกอบของ องคประกอบของ Process Control BlockProcess Control BlockPointerPointer

    ้ ่ชีตําแหนงของโปรเซสที่อยูในหนวยความจํา และตําแหนงของ resource ที่โปรเซสเซอรครอบครองอยููProcess stateProcess state

    โป ี่ ป ป ัแสดงสถานะของโปรเซสทีเปนอยูปจจุบันProcess IDProcess IDrocess Drocess Dหมายเลขประจําตัวของโปรเซส

    Process Control Block

    Program CounterProgram Counter่ ่ ่ ่ตัวนับที่แสดงที่อยูถัดไปของคําสั่งที่จะถูก executeexecute

    RegisterRegisterRegisterRegister ทําหนาที่เก็บขอมูลสถานะระบบเมื่อเกิดการ interruptinterruptSchedulingScheduling

    ขอมลที่เกีย่วลําดับความสําคัญของโปรเซส ขอมูลทเกยวลาดบความสาคญของโปรเซส

    Process Control Block

    MemoryMemoryMemoryMemory ขอมูลเกี่ยวกับหนวยความจํา เชน ขนาดของหนวยความจํา, คาของ

    registerregister, , page tablepage table และ segment tablesegment table เปนตนAccountAccountAccountAccount

    ขอมูลที่ประกอบไปดวยจํานวน CPUCPU,, เวลาที่กาํหนด,, หมายเลข accountaccount เปนตนI/O statusI/O statusI/O statusI/O status

    ขอมูลที่แสดงรายการของ I/O deviceI/O device ที่โปรเซสนี้ใช

  • Process Control Block

    รูปแสดงการสับเปลี่ยนการทํางานของโปรเซสรูปแสดงการสับเปลี่ยนการทํางานของโปรเซส

    Process Scheduling

    การจัดตารางของกระบวนการ การจัดตารางของกระบวนการ (Process Scheduling)(Process Scheduling)การจดตารางของกระบวนการ การจดตารางของกระบวนการ (Process Scheduling)(Process Scheduling) การทํางานแบบ multiprogrammingmultiprogramming คือ การให CPUCPU ทํางานได

    อยางมีประสิทธิผลสูงสุด โดยการจัดใหมีกระบวนการเขาไปทํางานในหนวยประมวลผลกลางตลอดเวลา ในระบบที่มีหนวยประมวลผลเดียว (Uniprocessor System) (Uniprocessor System) จะมีี ั้ ี่ใ ป ไ เพียง 1 กระบวนการเทานันทีใชงานหนวยประมวลผลกลางได

    Scheduling Queue

    กระบวนการเขาสระบบ กระบวนการเขาสูระบบ

    กระบวนการจะถูกจัดใหอยูในแถวคอย (Job Queue)

    ส ํ ั กระบวนการเขาสูหนวยความจาหลก

    กระบวนการถูกเก็บอยูในรายการแบบเชื่อมโยง (Link list) “ เรียกวา “ แถวพรอม (Ready queue) ””

    Process Scheduling

    แถวพรอม แถวพรอม ((Ready queueReady queue) ) เปนคิวของกระบวนการที่อยในหนวยความจําหลัก พรอมทํางาน เปนควของกระบวนการทอยูในหนวยความจาหลก พรอมทางาน

    ทันที รอคอยเพื่อที่จะเขาใชหนวยประมวลผลกลางเพื่อทํางานตอไป เก็บ pointerpointer ที่ชี้ไปยัง PCBPCB เกบ pointerpointer ทชไปยง PCBPCB แตละ PCBPCB ก็จะมี pointerpointer ที่ชี้ไปยัง PCBPCB ถัดไป

  • Process Control Block

    รูปแสดงแถวพรอมและอุปกรณรับรูปแสดงแถวพรอมและอุปกรณรับ--สงขอมูลตางๆสงขอมูลตางๆ

    Process Scheduling

    แถวอุปกรณ แถวอุปกรณ ((Device queueDevice queue) ) เปนคิวของกระบวนการที่รอตอบสนองจากการใช I/O DeviceI/O Device เปนควของกระบวนการทรอตอบสนองจากการใช I/O DeviceI/O Device แตละ II//O DeviceO Device จะมีคิวเปนของตนเอง เก็บ pointerpointer ที่ชี้ไปยัง PCBPCB

    PCBPCB ็ ี i ti t ี่ ี้ไป ั PCBPCB ั ไป แตละ PCBPCB ก็จะมี pointerpointer ทีชีไปยง PCBPCB ถดไป

    Queuing diagram

    ปป (Q i di )(Q i di ) รูปแสดงแผนภาพของแถวคอย รูปแสดงแผนภาพของแถวคอย (Queuing diagram)(Queuing diagram)

    Schedulers

    ตัวจัดตารางการทํางาน ตัวจัดตารางการทํางาน (Schedulers)(Schedulers) กระบวนการหนึ่งๆ จะถูกยายจากแถวคอยหนึ่งไปยังอีกแถวคอยหนึ่ง

    ตวจดตารางการทางาน ตวจดตารางการทางาน (Schedulers)(Schedulers)

    ตลอดเวลา โดยมีระบบปฏิบัติการเปนผูเลือกกระบวนการจากแถวคอยแตละแถวออกมา ซึ่งจะทํากระทําโดยตัวจัดตาราง ((SchedulerScheduler))(( ))

    ตัวจัดตารางระยะยาว (Long-term scheduler) : เลือกโปรเซส จากหนวยเก็บขอมูล เขาสูหนวยความจําหลัก

    ตัวจัดตารางระยะสั้น (Short-term scheduler หรือ CPU ตวจดตารางระยะสน (Short term scheduler หรอ CPU scheduler) : เลือกโปรเซสที่อยูในแถวพรอม เพื่อเขาใชหนวย

    ประมวลผลกลาง ประมวลผลกลาง

  • Schedulers

    ระบบปฏิบัติการบางระบบ เชน Time-Sharing System จะมีการจัดตารางการทํางานในระดับกลางเพิ่มขึ้นมาอีก ซึ่งเรียกวา “ ตัวจัดตารางระยะกลาง (Medium-term scheduler) ” โดยมีหนาที่ดังนี้

    ยายโปรเซสออกมาจากหนวยความจําหลัก และนําโปรเซสที่ถกยาย ยายโปรเซสออกมาจากหนวยความจาหลก และนาโปรเซสทถูกยาย กลบัเขามาในหนวยความจําใหมอีกครั้งเมื่อถึงเวลาที่เหมาะสม เรียก

    ี ี้ “ ี ่ “ วิธีการนีวา “ การยายที (Swapping) “

    Schedulers

    รูปแสดงการเพิ่มตัวจัดตารางระยะกลางเขาไปในแผนภาพของแถวคอยรูปแสดงการเพิ่มตัวจัดตารางระยะกลางเขาไปในแผนภาพของแถวคอย

    Context Switch

    คอนเท็กซสวิตช คอนเท็กซสวิตช (Context Switch)(Context Switch)

    เมื่อ CPU รันโปรเซสจนเสร็จเรียบรอยแลวจะตองมีการสวิตชไปรัน

    คอนเทกซสวตช คอนเทกซสวตช (Context Switch)(Context Switch)

    เมอ CPU รนโปรเซสจนเสรจเรยบรอยแลวจะตองมการสวตชไปรนโปรเซสในคิวถัดไป และจะตองเก็บคาสถานะของโปรเซสเดิม และนําเอา โป ใ ิ ี้ ี “ ็ ิ คาสถานะของโปรเซสใหมมาลง การสวิตชนีเรียกวา “ คอนเท็กซสวิตช

    (Context Switch) ”

    Context Switch

    CPUCPUOld Thread DescriptorOld Thread Descriptor

    CPUCPU

    New Thread DescriptorNew Thread Descriptor

    รูปแสดงการทํา รูปแสดงการทํา Context SwitchContext Switch

  • Operation on Process

    11.. การสรางกระบวนการ การสรางกระบวนการ (Process Creation)(Process Creation)11. . การสรางกระบวนการ การสรางกระบวนการ (Process Creation)(Process Creation) โปรเซสจะสรางโปรเซสใหม โดยผานทาง System CallSystem Callกระบวนการใหมที่ถูกสรางขึ้นเรียกวา ““ กระบวนการลูกกระบวนการลูก (Children (Children Process)Process) ””Process)Process)

    กระบวนการที่เปนผูสรางเรียกวา ““ กระบวนการแมกระบวนการแม (Parent(ParentProcess) Process) “ “

    มีหนาที่แบงทรัพยากรใหกระบวนการยอยแตละตัวมหนาทแบงทรพยากรใหกระบวนการยอยแตละตวใหกระบวนการยอยแตละตัวใชทรัพยากรรวมกัน

    ใหกระบวนการยอยใชทรัพยากรสวนเฉพาะของกระบวนการแม

    Operation on Process

    รูปแสดงโครงสรางของโปรเซสในระบบ รูปแสดงโครงสรางของโปรเซสในระบบ UNIXUNIX

    Operation on Process

    หลังจากที่สรางกระบวนการยอยแลว กระบวนการแมอาจทํางานได 2 วิธีดังนี้หลงจากทสรางกระบวนการยอยแลว กระบวนการแมอาจทางานได 2 วธดงน

    กระบวนการแมทํางานพรอมๆ กนั (Concurrent)(Concurrent) ไปกับกระบวน กระบวนการแมทางานพรอมๆ กน (Concurrent)(Concurrent) ไปกบกระบวนการลูก

    ั่ ั้ ิ้ กระบวนการแมรอคอยจนกระทังกระบวนการลูกทังหมดสินสุดการ ทํางาน

    Operation on Process

    การระบพื้นทีว่างของกระบวนการใหมทําได 2 วิธี คือการระบุพนทวางของกระบวนการใหมทาได 2 วธ คอ

    กระบวนการลูกทําสําเนา (Duplicate)(Duplicate) มาจากกระบวนการแมู ( p )( p ) กระบวนการลูกมีโปรแกรมโหลด AddressAddress ใหกับตัวมันเอง

  • Operation on Process

    22 การเสร็จสิ้นกระบวนการ การเสร็จสิ้นกระบวนการ (Process Termination)(Process Termination)22. . การเสรจสนกระบวนการ การเสรจสนกระบวนการ (Process Termination)(Process Termination)

    จะเกดิขึ้นเมื่อโปรเซสทํางานเสร็จหรือถกยกเลิก จะเกดขนเมอโปรเซสทางานเสรจหรอถูกยกเลกเรียกใชคําสั่ง Exit จาก System Call

    ่ เรียกใชคําสั่ง Abort จาก System Call ใชสําหรับกระบวนการ แมกับกระบวนการลูกเทานั้นู

    ในระบบสวนใหญเมื่อกระบวนการแมสิ้นสุดลง กระบวนการลูก ิ้ ี ิ ี้ “ ิ โ ตองสนสุดดวย เรยกการยกเลกแบบนวา การยกเลกแบบลกูโซ

    (Cascading Termination) ”

    Operation on Process

    กระบวนการแมอาจจะยกเลิกการทํางานของกระบวนการลกดวยเหตผลดังนี้กระบวนการแมอาจจะยกเลกการทางานของกระบวนการลูกดวยเหตุผลดงน

    กระบวนการลูกใชทรัพยากรมากเกินไปู กระบวนการแมไมตองการใหกระบวนการลูกตัวนี้ทํางานอีกตอไป

    ็ ้ ป ไ ใ กระบวนการแมทํางานเสร็จสิน ระบบปฏิบัติการจะไมอนุญาตให กระบวนการลูกทํางานตอ

    Operation on Process

    33 การทํางานรวมกันของกระบวนการ การทํางานรวมกันของกระบวนการ (Cooperating Processes)(Cooperating Processes)33. . การทางานรวมกนของกระบวนการ การทางานรวมกนของกระบวนการ (Cooperating Processes)(Cooperating Processes)

    โปรเซสที่ทํางานในระบบปฏิบัติการ สามารถแบงตามลักษณะของการโปรเซสททางานในระบบปฏบตการ สามารถแบงตามลกษณะของการปฏิบัติงานออกเปน 2 ประเภท ดังนี้

    ิ กระบวนการอิสระ (Independence Processes) เปนกระบวนการที่ไมมีผลกระทบตอกระบวนการอื่นในระบบ

    กระบวนการที่ตองทํางานรวมกัน (Cooperation Processes) ่ ่เปนกระบวนการทีมีผลกระทบตอกระบวนการอืนในระบบ เชน

    ตองมีการแบงขอมูลใหกระบวนการอื่นที่เปนกระบวนการรวม

    Operation on Process

    เหตผลที่ตองจัดเตรียมสิ่งแวดลอมใหกับกระบวนการที่ตองทํางานรวมกันเหตุผลทตองจดเตรยมสงแวดลอมใหกบกระบวนการทตองทางานรวมกน

    1. การรวมกันใชขอมูลขาวสาร (Information Sharing) เชน การแชรไฟล

    2 การคํานวณรวดเร็วขึ้น (Computation Speedup) ทําไดโดย2. การคานวณรวดเรวขน (Computation Speedup) ทาไดโดยการแตกงานออกเปนสวนยอยๆ แลวใหแตละสวนทํางานขนานกันไปไป

  • Operation on Process

    3. ระบบยอย (Modularity) สรางระบบใหอยูในรูปแบบของระบบยอยหรือโมดลแลวแบงหนาที่ตางๆ ของการทํางานออกเปนหนาที่ยอยหรอโมดูลแลวแบงหนาทตางๆ ของการทางานออกเปนหนาทละ 1 กระบวนการ

    4. ความสะดวกสบาย (Convenience) สามารถทํางานหลายๆ งานไดในเวลาเดยีวกัน เชน แกไขขอมูล พิมพขอมูลและแปลภาษาไปู ูพรอมๆ กัน

    Operation on Process

    44 การสื่อสารระหวางกระบวนการ การสื่อสารระหวางกระบวนการ (Interprocess Communication)(Interprocess Communication)44. . การสอสารระหวางกระบวนการ การสอสารระหวางกระบวนการ (Interprocess Communication)(Interprocess Communication)

    IPC (Interprocess Communication) จัดเตรียมกลไกในการติด ( p ) ตอสื่อสารและประสานงานกับกจิกรรมตางๆ ของกระบวนการ

    (M ) ป ิ ื่ ระบบขอความ (Message) เปนระบบติดตอสือสารของกระบวนการ ที่ IPC สนับสนุน ประกอบไปดวยฟงกชันการทํางาน 2 สวน คือ

    Send (message) Receive (message)

    Communication Link ใชรับสงขอความ (message) สําหรับการ ติดตอและประสานการทํางานระหวางกระบวนการ ตดตอและประสานการทางานระหวางกระบวนการ

    Operation on Process

    การลิงค การลิงค (Link)(Link)ทาง Physical เชน ผานทางหนวยความจํารวม

    การลงค การลงค (Link)(Link)ทาง Physical เชน ผานทางหนวยความจารวม ทาง Logical เชน ผานทางคุณสมบัติตางๆ ของตรรกะ

    Operation on Process

    การรับหรือสง และการใชลิงคในทาง Logical มีหลายวิธี ดังนี้g การติดตอสื่อสารทางตรง (Direct Communication) หรือทางออม

    (I di t C i ti )(Indirect Communication)

    การติดตอสื่อสารเปนแบบ Symmetric หรือ Asymmetric ที่พักขอมูล (Buffer) เปนแบบอัตโนมัติ (Automatic) หรือแบบ

    ชัดเจนแนนอน (Explicit) ชดเจนแนนอน (Explicit) สงโดยการคัดลอก (Copy) หรือสงโดยการอางอิง (Reference) ขอความเปนขนาดคง (Fixed-sized) หรือแบบแปรผัน

    (Variable-sized)(Variable-sized)

  • Operation on Process

    การตั้งชื่อ การตั้งชื่อ (Naming)(Naming)กระบวนการที่จะติดตอสื่อสารกัน จําเปนจะตองอางชื่อของผรับ

    การตงชอ การตงชอ (Naming)(Naming)กระบวนการทจะตดตอสอสารกน จาเปนจะตองอางชอของผูรบและผูสง

    ่ ่การอางชื่อสามารถที่จะทําโดยตรง (Direct Communication)หรือทางออม (Indirect Communication) ก็ได

    Operation on Process

    ื่ โื่ โ (Di t C i ti )(Di t C i ti )การสอสารโดยตรงการสอสารโดยตรง (Direct Communication)(Direct Communication) ในการสื่อสารโดยตรง กระบวนการที่จะสงหรือรับขอความ จะตอง ในการสอสารโดยตรง กระบวนการทจะสงหรอรบขอความ จะตอง

    ระบุชื่อผูรับและผูสงใหชัดเจน โดยใชคําสั่ง

    send (P, message) = send to P ( , g )receive (Q, message) = receive from Q

    Operation on Process

    ลิงค (Link) ในระบบการสื่อสารโดยตรงจะมีคุณสมบตัิ คือ( ) ุ ลิงคจะเกิดขึ้นอัตโนมัติ โดยที่แตละกระบวนการตองรูชื่อของอีก

    ่ กระบวนหนึ่งดวย ลิงค 1 ลิงคจะเชื่อมตอระหวาง 2 กระบวนการเทานั้น ลงค 1 ลงคจะเชอมตอระหวาง 2 กระบวนการเทานน ลิงคอาจเปนทางเดียว แตโดยปกติมักเปนแบบ 2 ทาง

    Operation on Process

    ตัวอยางโปรแกรมทีใ่ชการติดตอสื่อสารโดยตรง (Direct Communication)( )

    repeatrepeat

    produce an item in nextp

    send (consumer, nextp);til f luntil false;

    ป โ ใ ํ ั่ป โ ใ ํ ั่ S dS dรูปแสดงการสงขอความโดยใชคําสัง รูปแสดงการสงขอความโดยใชคําสัง SendSend

  • Operation on Process

    repeat

    receive (producer nextc); receive (producer, nextc);

    consume the item in nextc

    until false;

    รูปแสดงการรับขอความโดยใชคําสั่ง รูปแสดงการรับขอความโดยใชคําสั่ง receivereceiveูู

    Operation on Process

    ื่ ื่ (I di t C i ti )(I di t C i ti )การสอสารทางออมการสอสารทางออม (Indirect Communication)(Indirect Communication) ขอความจะถกสงและรับจากกลองรับจดหมาย (Mailboxes) ขอความจะถูกสงและรบจากกลองรบจดหมาย (Mailboxes) กลองรับจดหมายแตละกลองจะมีเลขเฉพาะ (Unique identification) กระบวนการ 2 กระบวนการติดตอสื่อสารกันไดถามีกลองจดหมาย

    รวมกัน (Share mailbox) รวมกน (Share mailbox)

    send (B, message) = send to mailbox B receive (A, message) = receive from mailbox Areceive (A, message) receive from mailbox A

    Operation on Process

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

    จะตองติดตอกันผานทางกลองรับจดหมาย 1 กลอง ลิงคอาจเปนแบบทางเดียวหรือเปนแบบ 2 ทาง

    Operation on Process

    Question ?Quest oถากระบวนการ P1, P2, P3 ใชกลองรับจดหมาย A รวมกัน P1

    ่สงขอความให A ในขณะที่ P2 และ P3 ตองการรับขอความจาก A กระบวนการไหนที่จะไดรับขอความที่สงมาจาก P1 ?

    วิธีการดําเนินการ้ ยอมใหมีการลิงคทั้ง 2 กระบวนการ

    ยอมใหมีการรับขอความไดเพียงครั้งละ 1 กระบวนการ ยอมใหมการรบขอความไดเพยงครงละ 1 กระบวนการยอมใหระบบเลือกวากระบวนการใดที่จะเขารับขอความ

  • Operation on Process

    ระบบปฏิบัติการก็มีกลองรับจดหมายเปนของตนเอง โดยมกีลไกที่อนญาตใหระบบปฏบตการกมกลองรบจดหมายเปนของตนเอง โดยมกลไกทอนุญาตใหกระบวนการใชกลองรับจดหมายได ดังนี้

    สรางกลองรับจดหมายใหม สงและรับขอความผานทางกลองรับจดหมาย สงและรบขอความผานทางกลองรบจดหมาย ทําลายกลองรับจดหมาย

    Operation on Process

    รูปแบบของ Mailboxู1. Mailbox แบบ Queue

    ขอมลเขา ขอมลออกจากขอมูลเขาMailbox

    ขอมูลออกจากMailbox

    คุณสมบัติี ั ํ FIFO (Fi t I Fi t O t) มีลกษณะการทํางานแบบ FIFO (First In First Out)

    ขนาดของ Box จะคงที่

    Operation on Process

    2. Mailbox แบบ Pipe 2. Mailbox แบบ Pipe

    ขอมูลเขาMailbox

    ขอมูลออกจากMailbox

    คุณสมบัติ มีลักษณะการทํางานแบบ FIFO (First In First Out)

    ขนาดของ Box จะยืดหยนได ขนาดของ Box จะยดหยุนได

    Operation on Process

    3. Mailbox แบบ Stack 3. Mailbox แบบ Stack

    ขอมูลเขาูMailbox

    ขอมูลออกจากMailbox คุณสมบัติ

    ี มีลักษณะการทํางานแบบ FILO (First In Last Out)

  • Operation on Process

    การพักขอมลู (Buffer)ู ( )ในการสรางลิงค นอกจากเปนการกําหนดเสนทางขอมูลแลว ลิงค

    ่ ่ยังมีความจุขอความที่สามารถเก็บไวไดชั่วคราว โดยแบงความจุไดเปน 3 ลักษณะ ดังนี้

    ความจุศูนย (Zero capacity) ความยาวของแถวเปน 0 ความจุแบบมีขอบเขต (Bounded capacity) ความยาวของ

    แถวเปน n ความจุแบบไรขอบเขต (Unbounded capacity) ความยาวของแถวเปนไมจํากัด ของแถวเปนไมจากด

    Operation on Process

    ขอยกเวน (Exception Condition)( p )การยกเลิกกระบวนการ (Process Terminates)

    1. ผูรับกระบวนการ P อาจรอขอความจากกระบวนการ Q ซึ่งถูกิ ไป โ ี่ ิ ื ไ ็ ใ Pยกเลกิไปแลว โดยทีระบบอาจจะยกเลกิหรือไมก็แจงให P ทราบ

    วา Q ถูกยกเลิกไปแลว2. กระบวนการ P สงขอความไปยัง Q ที่ถกูยกเลกิไป P ยังคงทํางาน

    ตอไป P โดยที่ P ตองการรวาขอความที่สงไปไดรับการประมวล ตอไป P โดยท P ตองการรูวาขอความทสงไปไดรบการประมวล ผลที่ Q หรือยัง

    Operation on Process

    ขอความสูญหาย (Lost Messages)

    1 ป ิ ั ิ ื ใ 1. ระบบปฏิบัติการตองสืบคนการหลนหายและสงขอความใหมอีกครั้ง

    2. สงขอความใหมอีกครั้ง หากยังตองการสง3 ใ ส ั้ ไป3. ตองแจงใหกระบวนการของผูสงทราบวาขอความนนหายไป

    แลว กระบวนการของผูสงจะเปนผูเลือกเองวาจะสงไปใหม

    Operation on Process

    ขอความเสียหาย (Scramble Messages)1 ส ึ ื ั สี ื ไ ื่1. ขอความอาจสงถงมอผูรบ แตเสยหายหรออานไมรูเรอง2. การตรวจดูวาขอความเสียหายหรือไมนั้น จะใชผลบวกรวม

    (Checksum), ความคลายคลึงกัน (Parity) และ CRC

  • Operation on Process

    Windows NT สนับสนุนการทํางานในสภาวะหลากหลาย (Multiple) หรือระบบยอย (Subsystem) ซึ่งโปรแกรมประยกตจะ(Multiple) หรอระบบยอย (Subsystem) ซงโปรแกรมประยุกตจะสื่อสารกันผานกลไกการสงขอความ โดยขอความที่ผานไปมาใน Windo s NT จะถกเรียกวา “ตัวดําเนินการภายใน (Local Proced reWindows NT จะถูกเรยกวา “ตวดาเนนการภายใน (Local Procedure Call Facility : LPC)”

    Operation on Process

    การติดตอสือ่สารกนัของ Windows NT ทําไดดงันี้

    ไคลเอนตเปดชองทางการติดตอ (Connection Port) ของระบบยอย

    ส ส do s

    ไคลเอนตเปดชองทางการตดตอ (Connection Port) ของระบบยอยไคลเอนตรองขอการติดตอ

    เซิรฟเวอรรองขอการติดตอ เซิรฟเวอรสรางชองทางการติดตอสื่อสาร (Communication Port) เซรฟเวอรสรางชองทางการตดตอสอสาร (Communication Port) สวนตัวขึ้นมา 2 ชอง และสงคืนชองกลบัไปใหไคลเอนต 1 ชองไ ่ ่ ไคลเอนตและเซิรฟเวอรจะใชชองในการสือสารเพือสงขอความหรือเรียกและฟงการตอบกลับ (Reply)

    Thread

    Thread

    “ Th d “ ป ป โป

    Thread

    “ Thread “ เปนสวนประกอบยอยของโปรเซส (Minimal Process) หรือเรียกอีกอยางหนึ่งวา “ LightWeight Process (LWP) ”

    Thread

    PCBThreadData

    P

    Thread

    Thread PCB

    ProgramProcess

    Thread PCB

    Operating System

    รูปแสดงความสัมพันธระหวาง รูปแสดงความสัมพันธระหวาง ProcessProcess และและ ThreadThread

  • Thread

    Thread ประกอบไปดวยหมายเลข Thread (Thread ID)

    Thread ประกอบไปดวยหมายเลข Thread (Thread ID)ตัวนับ (Counter) เพื่อติดตามใหทราบคําสั่งตอไปที่จะ

    texecute

    ชุดของ Register เพื่อเก็บคาตัวแปรที่ทํางานอยูมี Stack เพื่อเก็บประวัติการ execute

    Thread

    รปแสดงสวนประกอบของ รปแสดงสวนประกอบของ Thread Thread ที่เปนแบบที่เปนแบบ singlesingle--threadedthreadedูู ggและและ multithreadedmultithreaded

    Thread

    ตัวอยางโปรแกรมที่ทํางานแบบ Multithreaded

    รูปแสดงโปรแกรมรูปแสดงโปรแกรม word processor word processor ที่มีที่ม ี 3 3 threadsthreads

    Thread

    ขอไดเปรียบของ Multithread

    1 การตอบสนอง (Responsiveness)

    ขอไดเปรยบของ Multithread

    1. การตอบสนอง (Responsiveness)2. การแบงบันทรัพยากร (Resource Sharing)3. ความประหยัด (Economy)4 การเอื้อประโยชนของสถาปตยกรรม multiprocessors4. การเออประโยชนของสถาปตยกรรม multiprocessors

  • User Thread

    User Thread

    อยใน library ของ Thread ในระดับของผใช (User)

    User Thread

    อยูใน library ของ Thread ในระดบของผูใช (User)สามารถจัดการกับ Thread ไดดวยตนเอง โดยไมตองไดรับการสนับสนุนจาก Kernelการสราง Thread และการจัดเวลา Thread จะกระทําเสร็จสิ้นการสราง Thread และการจดเวลา Thread จะกระทาเสรจสน

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

    User Thread

    รูปแสดงการทํางานของ รูปแสดงการทํางานของ User ThreadUser Thread

    Kernel Thread

    Kernel ThreadKernel Thread

    ไดรับการสนับสนนโดยตรงจากระบบปฏิบตัิการไดรบการสนบสนุนโดยตรงจากระบบปฏบตการมีการสราง จัดการเวลา และจัดการ Thread ภายในพื้นที่ของ Kernel เองถา Thread เกิดการบล็อก System Call ทําให Kernelถา Thread เกดการบลอก System Call ทาให Kernelจัดการนําเอา Thread อื่นเขามา Execute แทน

    Kernel Thread

    รูปแสดงการทํางานของ รูปแสดงการทํางานของ Kernel ThreadKernel Thread

  • Multithreading Model

    โมเดลของ Multithreadingโมเดลของ Multithreading

    โมเดล Many-to-Oneโมเดล Many-to-Oneโมเดล One-to-Oneโมเดล Many-to-Many

    Multithreading Model

    โมเดล Many-to-Oneโมเดล Many to One

    โมเดลที่ใช Kernel Thread 1 หนวยกับ User Threadโมเดลทใช Kernel Thread 1 หนวยกบ User Threadหลายหนวย

    ้ ่การจัดการ Thread อยูในพื้นที่ของผูใช (User Space)ถา Thread บล็อก System Call โปรเซสทั้งหมดจะถกถา Thread บลอก System Call โปรเซสทงหมดจะถูกบล็อกไปดวยใ ั ีไ่ ัใชกับระบบทไีมสนับสนุน Kernel Thread

    Multithreading Model

    รูปแสดงโมเดล รูปแสดงโมเดล Many-to-One

    Multithreading Model

    โมเดล One-to-Oneโมเดล One to One

    โมเดลที่ Kernel Thread และ User Thread จะจับคกันโมเดลท Kernel Thread และ User Thread จะจบคูกนแบบ 1 ตอ 1มีการทํางานของ Thread แบบขนานมีการจํากัดจํานวน Threadมการจากดจานวน Threadยินยอมให Thread อื่นทํางานตอไปได ถา Thread บล็อก System Call

    โมเดลที่ใชระบบนี้ ไดแก Windows NT, Windows Xp, p

  • Multithreading Model

    รปแสดงโมเดล รปแสดงโมเดล One to Oneรูปแสดงโมเดล รูปแสดงโมเดล One-to-One

    Multithreading Model

    โมเดล Many-to-Manyโมเดล Many to Many

    โมเดลที่อาจมีจํานวน User Thread มากกวาหรือเทากับโมเดลทอาจมจานวน User Thread มากกวาหรอเทากบจํานวนของ Kernel Thread ก็ได

    ่สราง User Thread ไดมากตามที่ผูใชตองการเมื่อ Thread เกดิการบล็อก System Call แลว Kernelเมอ Thread เกดการบลอก System Call แลว Kernelจะจัดเวลาเพื่อนํา Thread อื่นมาทํางานกอนไดโ ี่ใ ี้ ไ โมเดลทีใชระบบนี ไดแก Solaris 2, UNIX

    Multithreading Model

    ป โป โ M t Mรูปแสดงโมเดล รูปแสดงโมเดล Many-to-Many