บทที่ 2 process and thread 2 2551 [โหมดความเข้า ...¸šท... ·...
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