65
69 บบบบบ 3 Process Concept กกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกก (multiuser computer system) กกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกก (multics) กกกกกกกก 1690 กกกกกกกกกกกก กกกกกกกกกกกกก "กกกกกก" กกกกกกกกกกกกกกกกกกก - กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก - กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก - กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก - กกกกกกกกกกกกกกกกกกกกก (dispatchable) กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกก กกกกกกกกกกกกกกกกก กกกกกก กกก "กกกกกกก กกกกกกกกกกกกกกกกกกกกกกกก" กกกกกกกกกกกกกกกกก กกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกก กกกกกก กกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกก กกกกกกกกกกกกกกกกก (multiprogramming) กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กก กกกกก ก กกก กกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกก กกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกก (กกกกกกกกกกกกกกกก) กกกกกกกกกกกกกกกกกกกกกกก

Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

69

บทท 3

Process Concept

การศกษาเรองโปรเซส เปนหวใจของการทำาความเขาใจของระบบคอมพวเตอรทมผใชหลายคน (multiuser computer system) คำาวาโปรเซสถกใชครงแรกโดยผออกแบบระบบมลตกส (multics) ในทศวรรษ 1690 มการใหความหมายของคำาวา "โปรเซส" ไวหลายความหมายเชน

- โปรแกรมทกำาลงถกเอกซซคว - กจกรรมทมการทำางานสมพนธกน - สงทถกมอบหมายไปใหโปรเซสเซอรได - หนวยซงถกสงตอได (dispatchable) ยงไมมความหมายใดทเปนทยอมรบกนทกคน แตความหมายท

วา โปรเซส คอ "โปรแกรมทกำาลงถกเอกซซคว" นนถกใชบอยมากทสด ดงนนจงเอาความหมายนเปนความหมายของคำาวา โปรเซส เราอาจเปรยบเทยบโปรแกรมเหมอนกบรถยนตทจอดนงอยทพรอมทจะวงไป ในระบบหลายโปรแกรม (multiprogramming) โปรเซสอาจเปรยบกบรถยนตทวงออกจากจดเรมตน ถามหลายโปรเซสอยในระบบกเหมอนกบการทเรามรถหลายคนทจะตองออกวง ไปพรอม ๆ กน ตวซพยเปรยบไดกบคนขบรถ ถาซพยมตวเดยวกเหมอนกบคนขบรถมเพยงคนเดยว ดงนนเมอรถหลายคนออกวงการทคนขบคนเดยวจะพารถหลายๆ คนวงไปตองขบรถทละคนใหวงเดนหนาไปทละนด เวยนเปลยนไปจนครบทกคน จนถงจดหมายปลายทาง (โปรแกรมสนสดลง) นนคอเราสามารถมโปรเซสหลายๆ โปรเซสทำางานไปพรอม ๆ กนไดโดยมซพยเพยงตวเดยว

3.1 องคประกอบของโปรเซส

Page 2: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

70

1. หมายเลขโปรเซส (Process id) 2. โคดโปรแกรม (Program code) 3. ขอมล (Data) 4. บลอกควบคมโปรเซส (Process control block)

4.1 พอยเตอร (Pointer) 4.2 สถานะของโปรเซส (Process state) 4.3 หมายเลขโปรเซส (Program id) 4.4 ตวนบจำานวน (Program counter) 4.5 รจสเตอร (Register) 4.6 ขอมลการจดเวลาของซพย (CPU scheduling

information) 4.7 ขอมลการจดการหนวยความจำา (Memory

management information) 4.8 ขอมลแอกเคาต (Account information) 4.9 ขอมลสถานะอนพต/เอาตพต (I/O status

information)

3.1.1 Process คอ โดยความหมายในทางปฏบตแลว process หมายถง

โปรแกรมทกำาลงถกประมวลผล ในการทำางานทวไปในระบบคอมพวเตอรนนผใชอาจตองการเรยกใช word processor หรอ java compiler หรอโปรแกรมอน ซงโปรแกรมเหลานจะถกเปลยนใหเปน process ผานกระบวนการทไดกำาหนดไว ชวงชวตของโปรแกรมทกำาลงถก ประมวลผลนมอยหลายสถานะ (process state) และตวของ process เองกตองมทเกบ ขอมลทเกยวของกบตวมนเองซงเราเรยกสวนน วา process control block (PCB)

Page 3: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

71

Identifier หมายเลขประจำาตวของ processState สถานะของ process ขณะประมวลผลPriority สทธของ process เมอเปรยบเทยบกบ process

อนProgram counter

ตำาแหนงของการประมวลผลคำาสงถดไป

Memory pointers

ตวชหนวยความจำาท process ใชอย

Context data

ขอมลทอยใน register ของ process ขณะถกประมวลผล

I/O status information

ขอมลของ I/O ท process เกยวของ Accounting information ขอมลเกยวกบเวลาของ CPU ทprocess ใช, เวลาทใชไป, ชวงเวลาทสามารถใชได และอนๆ ทเกยวของ

3.1.2 สถานะของกระบวนการ (Process State) ระบบคอมพวเตอรแบบหลายโปรแกรม

(Multiprogramming) และแบบผใชหลายคน (Multiuser) จะมกระบวนการททำางาน อยในระบบหลายกระบวนการพรอม ๆ กน โดยทบางกระบวนการกำาลงขอเขาใชงานหนวยประมวลผลกลาง (CPU) บางกระบวน การกำาลงใชงานหนวยประมวลผลกลางอย บางกระบวนการกำาลงรองขออปกรณรบ - สงขอมลอย พฤตกรรมของกระบวนการเหลาน เรยกอกอยางวา "สถานะ กระบวนการ" (State of Process) กระบวนการ (Process) หมายถง คำาสงในโปรแกรม

Page 4: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

72

ทถกประมวลผลดวยหนวยประมวลผลกลางหรออกในหนง ณ เวลาใด ๆ จะมเพยงอยางมาหนงคำาสงทดำาเนนการอย สถานะของกระบวนการ (Process state) กระบวนการตาง ๆ ทกำาลงทำางานอยในระบบเดยวกนจะมการเปลยนแปลงสถานะของกระบวนการถง 5 สถานะดวยกน ซงสถานะดงกลาวจะถกกำาหนดขนโดยกจกรรม ณ เวลาปจจบนทกระบวนการนน ๆ กำาลงกระทำาอย โดยทแตละกระบวนการจะตกอยในสถานะใดสถานะหนงจากสถานะทง 5 ตอไปน

·  New กระบวนการใหมกำาลงถกสรางขน ·  Running กระบวนการกำาลงทำางานตามคำาสงใน

โปรแกรม ·  Waiting กระบวนการกำาลงรอคอยใหเหตการณบาง

อยางเกดขน ·  Ready กระบวนการกำาลงรอคอยทจะเขาใชหนวยประมวล

ผล · Terminate  กระบวนการเสรจสนการทำางาน

รปท 3.2 แสดงแผนภาพสถานการณของกระบวนการ

 

1. New เปนสถานะของกระบวนการใหมทกำาลงถกสรางขนหรอกระบวนการเลอกมา

Page 5: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

73

จาก หนวยความจำาสำารอง (Disk) ซงเปนคำาสงทผใชเรยกใชผาน Command  Interpreter แปลเปนคำาสงไปเรยกระบบปฏบตการใหดงขอมลหรอโปรแกรมมาตามคำาสงของผใชเพอเขามาประมวลผลในระบบ เมอคำาสงตาง ๆ ถกเรยกเขามา คำาสงเหลานนจะมาเขาแถวรอในแถวงาน (Job Queue) เตรยมเปลยนสถานะเพอทำางาน

2. Ready เปนสถานะของกระบวนการทเตรยมตวเขาไปใชงานหนวยประมวลผลกลางในสถานะนจะเปลยนมาจาก New หรอ Waiting หรอ Running กได กระบวนการทมาจาก New, Waiting หรอ Running จะเขาแถวคอยเพอเขาไปใชหนวยประมวลผลกลางแถวคอยนเราเรยกวา(Ready Queue)

3. Running เปนสถานะของกระบวนการทไดเขาไปใชงานหนวยประมวลผลกลาง ณ เวลาใดเวลาหนง จะมเพยง 1 กระบวนการเทานนทอยในสถานะนของระบบ 1 ระบบ (มเพยงกระบวนการเดยวเทานนทจะไดใชหนวยประมวลผลกลางของแตละระบบ) เนองจากขอจำากดของประมวลผลกลางทำางานดวยความเรวสงมาก จงไมมปญหาในเรองการรอ

4.Terminate เปนสถานะของกระบวนการทไดรบการประมวลผลเสรจเรยบรอยแลวหรอกระบวนการ มการทำางานทผดปกต เชน มการหารดวยศนยระบบจะหยดการทำางานของกระบวนการนน แลวแจงใหทราบถงขอผดพลาดทเกดขน (Error)

5. Waiting เปนสถานะของกระบวนการทไดเขาไปใชหนวยประมวลผลกลางแลว และมการเรยกใชอปกรณรบ - สงขอมลหรออปกรณตาง ๆ ซงทรพยากรเหลานนยงไมวาง หรอมกระบวนการอนใชอย (เนองจาก CPU ทำางานเรวกวาอปกรณรบ - สงขอมลมาก) กระบวนการเลานนจะเปลยนจาก Running มารอในสถานะนอาจมกระบวนการหลายกระบวนการรออย จงมการจดควในการรอทรพยากรตาง ๆ เรยกวา Device Queue หรอ Waiting Queue

Page 6: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

74

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

ระบบปฏบตการแทนกระบวนการตาง ๆ ดวยตารางขอมลของกระบวนการ PCB ซงกเปนระเบยนหรอตารางขอมลทใชเกบขอมลตางๆทเกยวของกบแตละกระบวนการโดยเฉพาะ ดงรปท 3.3

รปท 3.3 แสดงตารางขอมลประมวลผล

ขอมลตางๆทปรากฏใน PCB มดงตอไปน - สถานะของกระบวนการ (Process state)

กระบวนการตาง ๆ ทกำาลงทำางานอยในระบบเดยวกนจะมการเปลยนแปลงสถานะของกระบวนการถง 5 สถานะดวยกน ซงสถานะดงกลาวจะถกกำาหนดขนโดยกจกรรม ณ เวลาปจจบนทกระบวนการนน ๆ กำาลงกระทำาอย โดยทแตละกระบวนการจะตกอยในสถานะใดสถานะหนง

Page 7: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

75

- ตวชโปรแกรม (Program counter)ใชตวยอวา PC เปนตวชหรอควบคมลำาดบการทำางานตามคำา

สงในโปรแกรม ปกตจะทำางานโดยนบ 0,1,2,3.. ตามลำาดบ การนบดงกลาวจะชใหเหนตำาแหนงทอยของขอมลในหนวยความจำา ซงจะมการนำาไบตถดไปของขอมลออกมา - รจสเตอรของหนวยประมวลผล (CPU registers)

เปนหนวยความจำาชวคราวความเรวสง ทใชในการเกบคำาสงและขอมลสำาหรบการประมวลผลภายใน CPU (ดงรปท 3.4)

รจสเตอรจะอยภายในหนวยประมวลผลกลางและจะถกจดการและควบคมโดยหนวยควบคม (Control Unit) ซงจะใชเปนแหลงเกบขอมลและคำาสงภายในโปรแกรมทจะถกนำามาประมวลผล โดยทวไปแลวรจสเตอรจะแบงออกไดหลายแบบตามหนาทของรจสเตอรแตละ ตว

1.Instruction Register - เกบสวนของคำาสงโปรแกรม 2.Address Register - เกบสวน แอดเดรส ของคำาสง

โปรแกรม 3.Storage Register - เกบขอมลทโอนยายมาจาก RAM 4.Accumulator - เกบผลลพธจากการประมวลผลชวคราว

ชนดของรจสเตอร ใชเกบขอมลทจะทำาการประมวลผลในทนท ไดแก 1.Program Counter (PC) ใชเกบตำาแหนงของคำาสงถด

ไป 2.Instruction Register (IR) เกบคำาสง ทโหลดมาจาก

หนวยความจำา (เกบคำาสงปจจบน) 3.Memory Address Register (MAR) เกบตำาแหนง

ขอมลทจะอานเขยนหนวยความจำา 4.Memory Buffer Register (MBR) เกบขอมลทจะอาน

หรอเขยนลงหนวยความจำา

Page 8: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

76

5.Accumulator (AC) เกบ ผลลพธจากการประมวลผลชวคราว - ขอมลในการจดตารางทำางานของหนวยประมวลผลกลาง (CPU-scheduling information) เมอใดกตามทซพยวาง ระบบปฏบตการจะเขามาเลอกโปรเซสตวใดตวหนงทพรอมอยในควเขามาใชซพย จะถกจดการดวยสวนท เรยกวา ตวจดตารางการทำางานระยะสน (Short-term scheduler) หรอ ตวจดตารางการทำางานของซพย (CPU Scheduler) - สารสนเทศเกยวกบการจดการหนวยความจำา (Memory-management information)

หนวยความจำาหลก เปนศนยกลางของการทำางานตาง ๆ ของระบบคอมพวเตอรในปจจบน ซงประกอบดวยทเกบขอมลยอยเปนไบต (Byte) หรอเวรด (Word) โดยแตละไบตจะมเลขทบอกตำาแหนง (Address) ของตวเอง การใชงานหนอยความจำาหลกทำาไดโดยการอานหรอเขยนขอมลทตำาแหนงตาง ๆ เหลาน ซงตามปกตหนวยประมวลกลางจะเปนผใชงาน (เพมเตมในบทท 8) - ขอมลทางการบญช (Accounting information) เปนขอมลทบอกวากระบวนการนถกเรยกใชบอยแคไหนเปนเวลา เทาใด - ขอมลสถานการณรบ-สงขอมล (I/O status information) เปนขอมลทบอกวากระบวนการเรยกใชอปกรณรบ สงขอมลอะไรบาง–

รปท 3.4 แสดงแผนภาพการสบเปลยนซพย จากกระบวนการหนงไปสอกกระบวนการหนง

3.2 Process Scheduling

Page 9: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

77

วตถของหลาย ๆ โปรแกรมจะมบางกระบวนการททำางานตลอดเวลาอย เพอประโยชนสงสดของซพย time sharing ของวตถจะมการสลบการเขาใชซพย โดยกระบวนการจะมความถตามขณะทผใชกำาลงตอบโตกบโปรแกรมใชงาน ทกำาลงทำางานอย วตถทจะทำางานจะถกเลอกโดย Process scheduler

รปท 3.5 ควทพรอมทำางานและ การเปลยนแปลงควของอปกรณ I/O

สำาหรบกระบวนการทมอยนนของโปรแกรมจะทำางานอยบนซพย ถามหลายกระบวนการทหลบอยจนกระทง ซพยมอสระจะสามารถกลบเขามายง Scheduler ไดอก Scheduling Queues

เมอกระบวนการไดเขาสระบบ มนจะถกนำาเขาไปใสไวใน job queue ซงจะประกอบดวย

Page 10: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

78

กระบวนการทงหมดทมอยในระบบ และกระบวนการจะถกนำาเขาสหนวยความจำาหลกเพอเตรยมตวและรอการเขาไปประมวลผล โดยจะขนอยกบรายการ ซงจะถกเรยกวา ready queue โดยควจะมรปแบบในการเกบทว ๆ ไปคอ แบบ ลงคลสต สวนหวของ ready queue จะประกอบไปดวย pointer สำาหรบชไปยงตำาแหนงแรก หรอตำาแหนงสดทายในรายการของ PCBs PCB จะรวมถง pointer ทจะชไปยงจด PCB ถดไปภายใน ready queue

ระบบจะถกรวมไปดวยควอน ๆ เมอกระบวนการอยในซพย มนจะทำางานซำาไปเรอย ๆ จนถงเหตการณทมนตองหลดออกไป กคอ การขดจงหวะ หรอ รอใหเกดเหตการณขนมาอกครง การแขงขนของการรองขอจาก I/O จะมวตถประสงคเพอใหกระบวนการสามารถทจะใชอปกรณรวมกนได อยางเชน ฮารดดสก ตงแตเมอมหลายกระบวนการอยภายในระบบ ฮารดดสกจะยงมากเมอ I/O รองขอการใชงานจากกระบวนการอน ๆ ทำาใหกระบวนการตองรอเพอทจะไดใชฮารดดสก รายการการรอของกระบวนการสำาหรบอปกรณ I/O จะถกเรยกวา device queue อยางดงแสดงในรปตวอยางท 3.5 พนฐานในการแสดงคำาอธบายของ queuing diagram จะดงแสดงในรปตวอยาง 3.6

รปกลองสเหลยมจตรสจะเปนการนำาแสนอคว ควจะมสองประเภทคอ ready queue และ เซตของ device queue วงกลมจะนำาเสนอในรปแบบของทรพยากรทจะนำาไปใหกบควและลกศรจะแสดงการไหลของกระบวนการในระบบ

กระบวนการทสรางขนมาใหมจะถกนำาไปใสใน ready queue มนจะรอไปจนกระทงถกเลอกขนมาทำางาน หรอ dispatched เมอกระบวนการถกนำาเขาไปทำางานบนซพย หนงในหลายๆเหตการณกจะสามารถเกดขนได

Page 11: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

79

รปท 3.6 Queuing diagram แสดงถงตารางการทำางานของกระบวนการ

กระบวนการสามารถทจะสรางกระบวนการยอยไดและสำาหรบการรอของกระบวนการยอยจะสนสดลงดวยตวมนเอง เราสามารถทจะลบกระบวนการออกจากซพยไดโดยการบงคบ ซงจะไดผลลพธของการขดจงหวะและจะถกนำาไปใสลงใน ready queue

ในหนง สอง กรณทเหตการณของกระบวนการทจะทำาการสลบจากสถานการณรอไปสสถานะพรอมและมนจะถกนำาไปใสใน ready queue กระบวนการจะทำางานตอเนองไปเปนวงจรจนกระทงสนสดการทำางาน และเมอเราลบออกจากควทงหมดแลว PCB และ ทรพยากรจะถกนำากลบคนมา

3.2.2 Schedulers กระบวนการจะมการหลดออกจาก scheduling queue

ตลอดวงจรชวตของมนเอง ระบบปฏบตการจะตองเลอกกระบวนการเขามาทำางานจากคว การเลอกกระบวนการนนจะเลอกจาก scheduler ทเหมาะสม

Page 12: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

80

บอยครงทระบบปฏบตสวนใหญ โดยในหลาย ๆ กระบวนการจะถกนำาเขามาทำางานโดยตรงได

Long term scheduler การเลอกกระบวนการจากสวนกลางและมนจะถกโหลดเขาไปในหนวยความจำาหลกสำาหรบการทำางานตอไป Short term scheduler การเลอกจะเลอกจากกระบวนการทมความพรอมในการทำางานแลวจะนำาเขาไปใหกบซพยประมวลผล ความแตกตางระหวาง scheduler และความถในการทำางานทงสองแบบคอ แบบสนจะตองคอยเลอกกระบวนการใหมใหกบซพยเสมอ กระบวนการอาจจะสามารถทำางานไดถาใชเวลาในลานวนาทเพยงเลกนอยกอนทจะรอการรองขอ I/O บอยครงทแบบสนจะใชเวลาในการทำางาน ในรอยลานวนาท โดยกอนทแบบสนจะทำางานนนจะตองทำางานดวยความรวดเรว ถาไดรบ สบลานวนาทในการตดสนใจในการทำางานของกระบวนการสำาหรบ รอยลานวนาท ดงนน 10/(100+10) + 9 เปอรเซนต ของการใชงานซพย ซงเปนพนฐานของการทำางานของ scheduler แบบยาวการทำางานจะมความถทตำา หนงนาทจะถกกระจายเพอสรางกระบวนการใหม แบบยาวนจะถกควบคมดวยตวเลขของกระบวนการในหนวยความจำา ถาคานนมความสมดล จากนนอตราคาเฉลยของการสรางกระบวนการจะตองเทากบอตราคาเฉลยของกระบวนการทออกไปจากระบบ แบบยาวอาจจะตองการคำารองขอเมอกระบวนการจะตองออกจากระบบ สงสำาคญสำาหรบแบบยาวคอจะตองระมดระวงในการเลอกกระบวนการ โดยทว ๆไปแลวกระบวนการสวนใหญจะสามารถอธบายขอบเขตของ I/O หรอขอบเขตของซพยได

ขอบเขต I/O ของกระบวนการคอ เวลาทใชในการทำางานนนมากกวาเวลาทใชในการคำานวณ

ขอบเขต ซพย ของกระบวนการคอ การสมการรองขอของ I/O ทไมแนนอนโดยจะใชเวลาสวนมากไปในการคำานวณ และนเปนสง

Page 13: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

81

สำาคญของการเลอกสำาหรบแบบยาว การผสมผสานกระบวนการระหวางขอบเขต I/O และขอบเขต ซพย ถาทกกระบวนการนนเปนแบบ ขอบเขต I/O ready queue จะวางและแบบสนนนจะทำาเพยงแคเลกนอย ถาทกกระบวนการเปนแบบ ขอบเขตซพย I/O จะรอจนกวาควจะวาง รวมทงอปกรณทไมไดใช และถาระบบนนไมมความสมดล ระบบจะทำาใหมประสทธภาพมากขนโดยการรวมทงขอบเขต ซพยและ ขอบเขต I/O

ในบางระบบอาจจะไมมตารางเวลาแบบยาว ตวอยางเชน ระบบ time sharing บน UNIX และ Microsoft Window ซงโดยทวไปแลวระบบสองประเภทนจะไมมตารางเวลาแบบยาว แตจะมการใสกระบวนการใหม ๆ ลงในหนวยความจำาสำาหรบตารางเวลาแบบสน ความสมดลของระบบขนอยกบการจำากดทางกายภาพ หรอขนอยกบการปรบแตงของผใชงาน ถาประสทธภาพอยในระดบทไมสามารถยอมรบได

บางระบบปฏบตการ ระบบ time sharing อาจจะเพมเขาไประหวางกลาง คอ medium term scheduler ดงแสดงในรปภาพตวอยางท 3.7 กญแจสำาคญของแบบกลางคอบางครงสามารถทำาประโยชนหรอลบกระบวนการออกจากหนวยความจำา และมการลดระดบได สดทายกระบวนการสามารถนำากลบเขามาใสในหนวยความจำาไดอก และยงสามารถทำางานไดอยางตอเนอง ซงวธททำาไดแบบนเรยกวา swapping กระบวนการทถก swapped out และ swapped in โดยแบบกลางนน การ Swapping อาจจะเปนสงจำาเปนในการพฒนาของ process mix หรอการเปลยนแปลงในหนวยความจำา ความตองการทมากเกนไปหรอนอกเหนอจากนจะไดอธบายไวในบทท 8

Page 14: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

82

3.2.3 context switch สญญาณการขดจงหวะของระบบปฏบตการเพอเปลยน

สถานะของซพยจากสถานะปจจบนและสถานะหนาทประจำาของ kernel การดำาเนนการจะเกดขนบอยครงขนอยกบวตถประสงคของระบบ เมอการขดจงหวะเกดขนระบบตองการจะเกบรกษาเนอหาของกระบวนการทกำาลงทำางานอยบนซพยในสถานะปจจบนเอาไว ดงนนการทจะกคนเนอหาเมอการประมวลผลเสรจแลวนน จำาเปนตองใหกระบวนการนนกลบมาทำางานอกครง เนอหาทถกนำาเสนอใน PCB ของกระบวนการ ซงจะรวมคาตาง ๆ ในซพยรจสเตอร,สถานะของกระบวนการ และการจดการขอมลของหนวยความจำา โดยทวไป state save ของสถานะปจจบนของซพย จะอยภายใน kernel หรอ โหมดของผใช และ state restore จะสำาหรบดำาเนนการในการกลบคนมาใหม

การสลบการใชงานซพยโดยกระบวนการอน ๆ ตองการประสทธภาพ state save ของกระบวนการปจจบน และ state restore ของกระบวนการทแตกตางกน ซงจะถกเรยกวา context switch เมอ context switch เกดขน kernel จะเกบรกษาเนอหาของกระบวนการเกาไวใน PCB และจะทำาการโหลดเนอหาทถกบนทกมาใสใหกบกระบวนการ

Page 15: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

83

ใหมทจะถกทำางาน เวลาของ context switch จะมอยเปนประจำา เพราะระบบไมสามารถทำางานไดในขณะทมการ switching โดยความเรวของเครองนนจะขนอยกบความเรวของหนวยความจำา ,จำานวนของรจสเตอร ทตองการคดลอก และตวชพเศษ โดยความเรวจะอยในลานวนาท

เวลาของ context switch จะสงจะขนอยกบการสนบสนนจากฮารดแวร บางโปรเซสเซอรจะมหลาย ๆ รจสเตอร context switch จะเปนพนฐานของความตองการในการเปลยนแปลงตวชไปยงรจสเตอรปจจบน ถามหลายกระบวนการมากกวาเซทของรจสเตอร ระบบจะมทอาศยของการคดลอกขอมลของรจสเตอรจากหนวยความจำากอน ระบบปฏบตการมความซบซอนมากกวานน มนตองทำางานหลายอยางมากมาย โดย context switch จะสามารถพบไดในบทท 8 เชนเทคนคในการจดการหนวยความจำาขนสง และอาจจะตองการขอมลทมความพเศษเฉพาะ

3.3 ปฏบตการบนกระบวนการ (Operations on Processes)

กระบวนการในระบบสวนใหญสามารถดำาเนนการควบคกนไปและอาจมการสรางและลบแบบไดนามค ดงนนระบบเหลานจะตองจดกลไกสำาหรบการสรางและสนสดกระบวนการ ในสวนนเราจะสำารวจกลไกทเกยวของกบการสรางกระบวนการและอธบายกระบวนการสรางบนระบบยนกซและวนโดวส

Page 16: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

84

3.3.1 การสรางกระบวนการ (Process Creation) หนงกระบวนการอาจจะสรางหลายการบวนการใหม ดวยวธ

การสรางกระบวนการของซสเตมคอลในระหวางการดำาเนนการ การเรมสรางกระบวนการจะเรยกกระบวนการนวากระบวนการแม (parent process) และกระบวนการใหม ๆ จะเรยกกระบวนการนนวากระบวนการลก (children process) กระบวนการใหม ๆ อาจจะกลบมาสรางกระบวนการอน ๆ ไดอก ในรปแบบของตนไม (tree)

ระบบปฏบตการสวนใหญ (เชน ยนกซและตระกลของวนโดวสของระบบปฏบตการ) มรหสบงชกระบวนการแสดงตามตวบงช (process identifier หรอ pid) ทไมซำากน ซงปกตแลวจะเปนตวเลขจำานวนเตม รปท 3.8 แสดงตวอยางของตนไมสำาหรบระบบปฏบตการ Solaris แสดงชอและตวบงชของแตละกระบวนการ ใน Solaris กระบวนการทอยบนสด คอ กระบวนการ sched มตวบงชเทากบ 0 กระบวนการนสรางกระบวนการลกทหลากหลาย เชน pageout และ fsflush กระบวนการเหลานมหนาทในการจดการหนวยความจำาและระบบแฟม กระบวนการ sched ไดสรางกระบวนการ init ซงเปนรากของตนไมเปน parent เปนกระบวนการสำาหรบผใชทงหมดในกระบวนการ ในรปท 3.8 เราเหนกระบวนการลกของทงสองของ กระบวนการ init คอ inetd และ dtlogin โดย inetd จะทำาหนาทดานเครอขายการบรการ เชน telnet และ FTP สวน dtlogin จะทำาหนาทดานการเขาสระบบของผใชบนหนาจอ เมอผใชเขาสระบบ dtlogin จะสราง X-windows session (X-session) ขนมา และจะกลบมาสรางกระบวนการ std_shel โดยลกของ std_shel จะมคอมมานดไลนของผใช ซงกคอ C-shell หรอ csh ถกสรางขน คอมมานดไลนอนเตอรเฟสทผใชอางถงมหลายชนดในกระบวนการลก เชน คำาสง ls และ cat นอกจากนเรายงดกระบวนการ csh ดวยตวบงช 7778 แทนผใชทเขาสระบบโดยใช telnet ผใชเรมท Netscape

Page 17: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

85

browser (ตวบงชเทากบ 7785) และ emacs editor (ตวบงชเทากบ 8105)

บนยนกซสามารถดรายชอของกระบวนการตาง ๆ ดวยคำาสง ps ตวอยางเชน การปอนคำาสง ps –el จะแสดงขอมลทสมบรณสำาหรบกระบวนการทงหมดทถกใชงานในระบบ เปนเรองงายทจะสรางตนไมแสดงกระบวนการทคลายคลงกบภาพท 3.8 โดยการทำาซำากระบวนการแมทงหมดไปทางกระบวนการ init

โดยทวไปกระบวนการตองการทรพยากรบางอยางในดำาเนนการ (จำาพวก เวลาของ CPU, หนวยความจำา, ไฟล, I/O ของอปกรณ) เพอคำาสำาเรจของงาน เมอกระบวนการสรางกระบวนการยอย โดยทกระบวนการยอยอาจจะขอรบทรพยากรไดโดยตรงจากระบบปฏบตการ หรออาจจะบงคบขอจากเซตยอยของทรพยากรของกระบวนการแม กระบวนการแมตองมการแบงแยกสวนของทรพยากร เชน หนวยความจำาหรอไฟล ใหหลาย ๆ กระบวนการลก กระบวนการลกถกจำากดเปนเซตยอยทปองกนการเขาถงทรพยากรของกระบวนการแมใด ๆ ทดำาเนนการเกนขนาด เพราะสรางระบบของกระบวนการยอยมากเกนไป

Sched

pid = 0

initpid = 1

pageoutpid = 2

fsflushpid = 3

inetdpid = 140

telnetdaemonpid = 7776Csh

pid = 7778

Netscape

pid = 7785

emacspid = 8105 ls

pid = 2123

catpid = 2536

Cshpid = 1400

sdt_shelpid = 340

dtloginpid = 251

Xsession

pid = 294

Page 18: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

86

รปท 3.8 ตนไมของกระบวนการในระบบ Solaris ทวไป

นอกจากนลกษณะทางการภาพทแตกตางกนและทรพยากรทางตรรกะทไดรบเมอมการสรางขอมลขนตน อาจจะผานกระบวนการแมพรอมกบกระบวนการลก ตวอยางเชน เมอพจารณากระบวนการทผใชงานแสดงเนอหาของไฟล เชน img.jpg บนหนาจอของเทอรมนล เมอไดถกสรางขนกจะไดรบอนพตจากกระบวนการแม โดยมชอไฟลเปน img.jpg และจะใชชอไฟลทเปดและเขยนเนอหาออกมา มนอาจจะไดรบชอของอปกรณภายนอก บางระบบปฏบตการมองขามทรพยากรขอกระบวนการลกไดเลย ระบบดงกลาวกระบวนการใหมอาจเปดไฟล img.jpg สองไฟล และอปกรณเทอรมนล และสามารถถายโอนขอมลระวางสองกระบวนดงกลาวได

เมอสรางกระบวนการใหมสองกระบวนการมความเปนไปไดภายใตเงอนไขดงน

1. กระบวนการแมยงคงตองรนพรอมกบกระบวนการลก2. กระบวนการแมตองรอจนกระทงบางสวนหรอทงหมด

ของกระบวนการลกถกยกเลก นอกจากนความเปนไปไดททงสองกระบวนการจะอยในพนทของกระบวนการใหม

1. กระบวนการลกซำาซอนกบกระบวนการแม (มโปรแกรมและขอมลทคลายกนกบกระบวนการแม)

Page 19: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

87

2. กระบวนการลกมการโหลดโปรแกรมใหมใสลงในกระบวนการนน

3.4 การตดตอสอสารระหวางกระบวนการ (Interprocess Communication)

กระบวนการทดำาเนนการควบคกนในระบบปฏบตการอาจจะเปนกระบวนการอสระหรอทำางานรวมกนกบกระบวนการอน กระบวนการจะอสระ (independent) ถามนไมกระทบหรอไดรบผลกระทบตอกระบวนการอน ทกำาลงดำาเนนการอยในระบบปฏบตการ กระบวนการใด ๆ ทไมมการใชขอมลรวมกบกระบวนการอน นนละเปนอสระ กระบวนการกำาลงรวมมอกน (cooperating) ถามนกระทบหรอถกกระทบโดยกระบวนการอน ทกำาลงดำาเนนการอยบนระบบ อยางชดเจนคอ กระบวนการใด ๆ ทใชขอมลรวมกบกระบวนการอน นนละ กระบวนการกำาลงรวมมอกนมหลายสาเหตทตองจดหาสภาพแวดลอมเพออนญาตใหกระบวนการทำางานรวมกน

ใชขาวสารรวมกน มผใชหลายคนมความสนใจในขาวสารชนเดยวกน เราจำาเปนตองจดหาสภาพแวดลอมเพออนญาตใหเขาถงขาวสารเดยวควบคกนได

การประมวลผลเรวขน ถาเราตองการงานเฉพาะททำางานไดเรวกวาเดม เราจะตองพกมนไวในงานยอย แลวแตละอนจะดำาเนนการขนานกนไป สงเกตไดวาความเรวทเพมขนจะสำาเรจไดนนถาคอมพวเตอรมการประมวลผลแบบหลายกระบวนการ (multiple processing)

ประกอบขนจากหนวยยอย ๆ เราอาจจะตองการสรางระบบในรปแบบทแยกยอยได แบงหนาทของระบบกลายเปนกระบวนการยอยหรอเสนงาน (threads)

ความสะดวก ผใชแตละคนอาจจะทำางานหลายงานในเวลาเดยวกน เชน กำาลงแกไข กำาลงพมพ และกำาลงคอมไพลขนานกนอย

Page 20: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

88

การทำางานรวมกนของกระบวนการตองการกลไกการตดตอสอสารระหวางกระบวนการทจะสามารถอนญาตใหพวกมนแลกเปลยนขอมลและขาวสาร มอย 2 รปแบบพนฐานของการตดตอสอสารระหวางกระบวนการ: (1) ใชหนวยความจำารวมกน (shared memory) และ (2) การสงผานขอความ(message passing) ในรปแบบการใชหนวยความจำารวมกนพนทของหนวยความจำาจะถกแบงปนกนโดยกระบวนการททำางานรวมกน กระบวนการสามารถทจะแลกเปลยนขาวสารโดยการอานและการเขยนขอมลบนพนททใชรวมกน ในรปแบบการสงผานขอความ การตดตอสอสารเกดขนเพราะการรวมมอกนระหวางกระบวนการ เปรยบเทยบสองรปแบบการตดตอสอสารไดในรปท 3.13

ทงสองรปแบบจะตองแลกเปลยนสนทนารวมกนในระบบปฏบตการและหลายระบบนำาทงคไปใช

การสงผานขอความมประโยชนสำาหรบการแลกเปลยนขอมลทมจำานวนนอยกวาเพราะวาไมมความขดแยงทจำาเปนตองหลกเลยง การสงผานขอความนนงายทจะนำาไปทำาใหเกดผลกวาการใชหนวยความจำารวมกนสำาหรบการตดตอสอสารระหวางคอมพวเตอรการใชหนวยความจำารวมกนอนญาตใหใชความเรวสงสดและสะดวกในการสอสาร ดงนนมนสามารถทำาเสรจทความเรวหนวยความจำาภายในเครองคอมพวเตอร การใชหนวยความจำารวมกนเรวกวาการสงผานขอความ ในระบบการสงผานขอความถกทำาใหเปนผลโดยใช system calls และดงนนมนตองการเวลาอยางมากในการทำางาน ในสวนทตางกน ในระบบทใชหนวยความจำารวมกน system calls ตองการเพยงแคบรเวณทใชหนวยความจำารวมกนเทานน หนวยความจำาทใชงานรวมกนถกสรางขนครงหนง ทกการเขาถงถกเกบรกษาทการเขาถงหนวยความจำา routine และไมมการชวยเหลอจาก kernel ทถกเรยกรอง

Page 21: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

89

รปท 3.13 รปแบบการตดตอสอสาร (a) การสงผานขอความ (b) การใชหนวยความจำา รวมกน

3.4.1 ระบบใชหนวยความจำารวมกน (Shared-Memory Systems)

การตดตอสอสารระหวางกระบวนการทใชหนวยความจำารวมกนตองการกระบวนการทสอสารกนทสรางพนทของการแบงปนหนวยความจำารวมกน บรเวณหนวยความจำาทใชรวมกนมอยในทอยทวางของกระบวนการทสรางหนวยความจำารวมกนทแบงแยกออกมา กระบวนการใดทหวงจะใชหนวยความจำารวมกนจะตองเพมมนในทอยดวย โดยปกตแลวระบบปฏบตการจะปองกนกระบวนการหนงจากการเขาถงหนวยความจำาของกระบวนการอน การใชหนวยความจำารวมกนตองการสองหรอมากกวาสองกระบวนการทยนยอมกำาจดขอกำาหนดน พวกมนสามารถแลกเปลยนขาวสารโดยการอานและการเขยนขอมลในพนททใชรวมกน รปแบบของขอมลและตำาแหนงถกกำาหนดโดยกระบวนการเหลานและไมไดอยภายใตการควบคมของ

Page 22: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

90

ระบบปฏบตการ กระบวนการนน ๆ จะแนใจไดวาพวกมนไมไดเขยนทตำาแหนงเดยวกน

ลองพจารณาปญหาผผลต - ผใช(producer - consumer) ซงเปนตวอยางทเกดขนบอยสำาหรบการทำางานรวมกนของกระบวนการ กระบวนการผผลตจะสรางขาวสารทถกใชโดยกระบวนการผใช ตวอยางเชน คอมไพเลอรอาจจะสรางรหสแอสเซมบลทซงถกใชโดยแอสเซมเบอร ลำาดบตอมาแอสเซมเบอรอาจจะสรางสวนของวตถทถกใชโดยผโหลด(loader) ปญหาผผลต - ผใช เปรยบไดกบแบบจำาลองผใชบรการ - ผใหบรการ(client - server) โดยปกตเราคดวาผใหบรการ(server) เปนผผลต และผใชบรการเปนผใช ตวอยางเชน ผใหบรการเวบ(web server) สรางจดเตรยมเอกสาร html และรปภาพทจะถกอานโดยเวบบราวเซอรของผใชบรการทรองขอทรพยากร

วธแกปญหาผผลต - ผใชอยางหนงคอใชหนวยความจำารวมกน อนญาตใหผผลตและผใชทำางานควบคกนได เราตองมบฟเฟอรของสงของทสามารถเตมโดยผผลตและทำาใหวางโดยผใช บฟเฟอรนมอยในบรเวณหนวยความจำาทใชรวมกนโดยกระบวนการผผลตและผใช ผผลตสามารถสรางของอยางหนงในขณะทผใชใชของอยางอนอย ผผลตและผใชจะเกดขนพรอม ๆ กน ดงนนผใชจะไมพยายามใชสงของทยงไมไดสราง

มบฟเฟอร 2 ชนดทใชคอ บฟเฟอรไมจำากด(unbounded buffer) ตงอยในบฟเฟอรทไมไดจำากดขนาด ผใชอาจจะคอยสงของใหม ๆ แตผผลตสามารถสรางสงใหม ๆ อยเสมอ บฟเฟอรจำากด (bounded buffer) กคอ บฟเฟอรทมการจำากดขนาดคงท กรณนผใชจะตองรอใหบฟเฟอรวางกอนและผผลตกตองรอถาบฟเฟอรเตม

มาดอยางใกลชดวา ทำาอยางไรบฟเฟอรจำากดจงสามารถทำาใหเกดกระบวนการใชหนวยความจำารวมกนได ตวแปรตอไปนอยใน

Page 23: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

91

บรเวณหนวยความจำาทใชรวมกนโดยกระบวนการผผลตและกระบวนการผใช

#define BUFFER_SIZE 10typedef struct {

. . .}item;item buffer[BUFFER_SIZE];int in = 0;int out = 0;

บฟเฟอรทใชรวมกนนถกทำาใหเปนอารเรยวงกลมดวยตวช 2 ตว :in และ out ตวแปร in ชไปยงตำาแหนงวางถดไปใน buffer ตวแปร out ชไปยงตำาแหนงแรกทเตมในบฟเฟอร บฟเฟอรวางเมอ in เทากบ out

(in = = out) และบฟเฟอรเตมเมอ ((in + 1) % BUFFER_SIZE) = = out

โคดสำาหรบกระบวนการผผลตและกระบวนการผใชแสดงในรปท 3.14 และ 3.15 ตามลำาดบ

กระบวนการผผลตมตวแปรทองถนคอ nextProduced ทซงสงของใหมทถกสรางจะถกเกบไวทน กระบวนการผใชจะมตวแปรทองถน nextConsumed เปนทซงสงของทถกใชจะถกเกบไว แผนการนอนญาตใหมสงของไดมากทสดในบฟเฟอรเทากบ BUFFER_SIZE - 1 ทเวลาเดยวกน

ในตวอยางนมปญหาอยางหนงคอ ไมมความสมพนธกบทอยเลยทงกระบวนการผผลตและกระบวนการผใชทพยายามจะเขาถงบฟเฟอรทใชรวมกนพรอม ๆ กน

item nextProduced;while (true) {

/* produce an item in nextProduced */

Page 24: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

92

while (((in + 1) % BUFFER_SIZE) = = out); /* do nothing */

buffer[in] = nextProduced;in = (in + 1) % BUFFER_SIZE;

}รปท 3.14 กระบวนการผผลต

item nextConsumed;while (true) {

while (in = = out) ; /* do nothing */

nextConsumed = buffer[out];out = (out + 1) % BUFFER_SIZE ;/* consume the item in nextConsumed */

}รปท 3.15 กระบวนการผใช

3.4.2 ระบบสงผานขอความ (Message-Passing Systems)

ในขอท 3.4.1 เราแสดงใหเหนวากระบวนการรวมมอกนอยางไรจงสามารถตดตอสอสารกนไดในสภาพแวดลอมใชหนวยความจำารวมกน วธอนททำาใหเกดผลสำาเรจเหมอนกนสำาหรบระบบปฏบตการทมงมนเตรยมการในการทำางานรวมกนของกระบวนการหนงเพอตดตอสอสารกบกระบวนการอน ๆ โดยใช การสงผานขอความ

การสงผานขอความจะจดหากลไกทอนญาตใหกระบวนการตดตอสอสารกนและทำางานพรอมกนโดยไมใชทอยเดยวกนและโดยเฉพาะอยางยงมประโยชนในการกระจายสภาพแวดลอม ทซง

Page 25: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

93

กระบวนการตดตอสอสารกนอาจจะอยบนคอมพวเตอรคนละเครองกนทเชอมตอโดยเครอขาย ตวอยางเชน โปรแกรมแชท (chat) ทใชบนเวรลไวดเวบถกออกแบบสำาหรบใหผคนไดมสวนรวมในการตดตอสอสารซงกนและกนโดยแลกเปลยนขอความกน

คณสมบตของการสงผานขอความนนไดเตรยมไวอยางนอย 2 อยางคอ สง(ขอความ) (send(message)) และรบ(ขอความ) (receive(message)) ขอความถกสงโดยกระบวนการหนงซงสามารถกำาหนดขนาดคงทหรอเปลยนแปลงขนาดได ถากำาหนดขนาดขอความคงทจะสามารถสงได การทำาใหเกดผลจะงาย ๆ ตรงไปตรงมา แตทำาใหงานเขยนโปรแกรมยากกวา ในทางกลบกนขอความทเปลยนแปลงขนาดไดตองการความซบซอนในการทำาใหเกดผลมากกวา แตกลบกลายเปนวางานเขยนโปรแกรมนนงาย นคอชนดของการแลกเปลยนทเกดขนบอย ๆ โดยตลอดการออกแบบระบบปฏบตการ

ถากระบวนการ P และ Q ตองการจะสอสารกนมนจะตองสงและรบขอความจากซงกนและกน การเชอมตอการสอสาร(communication link) จะตองคงอยระหวางกระบวนการทงสอง การเชอมตอนสามารถทจะทำาไดหลากหลายวธ เรามความสมพนธกบมนไมใชดวยการเชอมตอแบบกายภาพแตเปนแบบตรรกะ มหลากหลายวธการสำาหรบการเชอมตอแบบตรรกะและการดำาเนนการ send() / receive()

- การสอสารแบบทางตรงและแบบทางออม (Direct or indirect communication)

- การสอสารแบบพรอมกนหรอแบบไมพรอมกน (Synchronous or asynchronous communication)

- อตโนมตหรอบฟเฟอรอยางชดเจน (Automatic or explicit buffering)

Page 26: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

94

3.4.2.1 Naming กระบวนการทตองการในการตดตอสอสารจะตองมทาง

ทสามารถทำาใหสอสารถงกนและกนได สงเหลานนสามารถใชตดตอสอสารไดทงทางตรงและทางออม ในการตดตอสอสารทางตรงทกกระบวนการตองการทจะสอสารจะตองมชอของผรบและผสง ทมความชดเจน เชน

- การสง (P, message), สงขอความถงการประมวลผล P

- การรบ (Q, message), รบขอความจากการประมวลผล Q

การเชอมตอในการตดตอสอสารแบบนจะตองมคณสมบตดงตอไปน

- การเชอมตอ คอ การสรางระบบฐานมนคงแบบอตโนมตระหวางทก ๆ สวนของการประมวลผลทตองการตดตอสอสาร ในการประมวลผลตองการรเพยงขอมลของแตละบคคลทจะตดตอสอสาร

- การเชอมตอเปนการเกยวเนองกบความเปนจรงสองการประมวลผล

- ระหวางแตละสวนของการประมวลผลยงคงมอยอยางแนนอนในหนงการ เชอมตอ

แบบแผนอนนซงแสดงออกมาอยางมสดสวนในทอยของผสงและผรบ จะตองมชอในทอน ของการตดตอสอสารดวย ความหลากหลายของแบบแผนงานอยางมสดสวนในทอย ทมชอผสงเพยงเทานนและการรบไมจำาเปนวาจะตองมชอผสงในแบบแผนน การสงและการรบ มความชดเจนดงตอไปน

Page 27: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

95

- การสง (P, message), สงขอความถงการประมวลผล P

- การรบ (id, message), รบขอความจากทก ๆ การประมวลผล ความแตกตางของขอมลเฉพาะบคคลเปนการจดระบบชอของการประมวลผลกบการตดตอสอสารมการพดถงสถานทดวย

ขอเสยเปรยบของแบบแผนทงสองอยางน (การมสดสวนรองรบและการไมมระบบสดสวน

รองรบ) เปนเกณฑจำากดของระบบการประมวลผลทมผลลพธแบบกำาหนด การเปลยนแปลงของขอมลสวนตวของการประมวลผลบางทบางทกอจำาเปนตอการสอบของขอกำาหนดการประมวลผลอน ๆ ทงหมด ขอมลอางองทงหมดถงขอมลสวนตวเดมตองถกพบ ดงนนจงเกดการพฒนาเปนขอมลสวนตวอนใหม ในทางทวไป อยางเชน เทคนคของ code ทยาก ๆ ซงขอมลสวนตวนนจะตองมกระบวนการทชดแจงเปนความตองการทนอยลงมากกวาเทคนคกอใหเกดการตดตอสอสารทางออม ตามมา

การตดตอสอสารทางออมขอความจะสงถงและรบจากเมลบอกซหรอชองทางเมลบอกซ สามมารถทจะแสดงการสรป เชน หวเรองถงขอความสามารถเปนสถานท ๆ ประมวลผลและจากขอความสามารถลบออกจากแตละเมลบอกซ ความพเศษของแตละขอมลสวนตว ตวอยาง เชน ขอมล POSIX เปนแถวใชจำานวนเตมของขอมลสวนตวในเมลบอกซ ในแบบแผนน การประมวลผลสามารถตดตอสอสารกบการประมวลผลอยางอนผานตวเลขทแตกตางกนคนละเมลบอกซได อยางไรกตามการสงและการรบอยางมสดสวนรองรบตองเปนแบบดงตอไปน

- การสงขอความ A, ถงเมลบอกซ A- การรบขอมล A, รบขอมลจากเมลบอกซ A

ในแบบแผนนการเชอมการสอสารตองมคณสมบต ดงน

Page 28: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

96

- การเชอมตอแบบมนคงระหวางแตละคของการประมวลผลเทานน ถาคจำานวนของคตองการทจะแบงเมลบอกซกน

- การเชอมตออาจจะตองมความสมพนธมากกวาสองการประมวลผล

- ระหวางคแตละคของการประมวลผลการตดตอสอสาร บางทอาจจะมตวเลขของความแตกตางของการเชอมตอกบแตละการเชอมตอในการตอบรบของหนงเมลบอกซ

ขณะนการสนบสนนการประมวลผลนน P1, P2, และ P3 ทงหมดจะตองแบงเมลบอกซ A

การประมวลผล P1 สงขอความถง A, ระหวางคของ P2 และ P3 การจดการรบจาก A ซงการประมวลผลจะรบขอความสงโดย P1 การตอบตดสนโดย การตอบสนองของวธทเราเลอก

- อนญาตการเชอมอยางเกยวความเกยวพนกบสองการประมวลผลอยางมากทสด

- อนญาตอยางมากทสดของหนงการประมวลผลในเวลาจดการกระบวนการรบ

- อนญาตระบบในการเลอกโดยไมใชเกณฑซงการประมวลผลจะรบขอความ (มทง P2

และ P3 แตไมใชทงสองทจะรบขอมลได ) ระบบมกจะมตวเลขเปนสดสวนในการ เลอก ซงการประมวลผลจะรบขอความ (ม round robin ซงประมวลผลจะไดขอความทไดรบกลบคนมา ) บางทระบบจะไดรบขอมลสวนตวของ

ผรบถงผสงการเปนเจาของของเมลบอกซอาจจะเปนดวยกนทงคโดยการ

ประมวลผล หรอโดยระบบกระบวนการ ถาเมลบอกซถกเปนเจาของดวยการประมวลผล (นนคอ เมลบอกซเปนสวนหนงของทอยของ

Page 29: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

97

ชองวางของการประมวลผล) หลงจากนนพวกทผดแปลกระหวางการเปนเจาของ (ผซงสามารถรบขอความไดจากเมลบอกซนเทานน ) และผใช (ผซงสามารถสงขอความสเมลบอกซไดเทานน ) ตงแตแตละเมลบอกซมเจาของทงหมด สามมารถเปนสงทไมเอาไปปะปนกน เกยวกบผรบขอความทถกสงในเมลบอกซน เมอมการประมวลผลนนเจาของเมลบอกซสดทาย เมลบอกซทสญหาย การประมวลผลบางทนนตอมาในการตดตอกน เมลบอกซนนเปนเจาของโดยระบบกระบวนการมการคงอยของเจาของของมนในเวลาน และไมมการแนบไฟลไปสสวนตาง ๆ ของการประมวลผล ระบบกระบวนการจะตองมการจดการกบเครองกลนนจะอนญาตใหการประมวลผลไดทำาตาม ดงน

- สรางเมลบอกซใหม- สงและรบขอความไดในเมลบอกซ- ลบเมลบอกซ

การประมวลผลนนการสรางเมลบอกซใหมนน เมลบอกซของผเปนเจาของโดยการละเลยในขนตอนแรก เจาของนนเปนผประมวลผลสามารถรบขอความไดในเมลบอกซ อยางไรกตามสวนของเจาของ และสวนของผรบมสทธพเศษบางทอาจจะผานไปสการประมวลผลอนสมควรจะถกไดเรยกขนมาใช แนนอนการเตรยมสามารถหาผลลพธไดในผรบหลาย ๆ ฝายของแตละเมลบอกซ

3.4.2.2 Syschronization การตดตอสอสารระหวางการประมวลผลสถานททเรยก

วาผสงและผรบแบบมสดสวนรองรบ มความแตกตางในการออกแบบการจดการสำาหรบการสนบสนนแตละสดสวนขอความทผานบางทถกขดขวาง หรอไมขดขวางมกจะทราบไดโดยระบบทมของการจดการขอมลอยางมสดสวนรองรบและไมมสดสวนรองรบ

Page 30: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

98

- การขดขวางการสง การสงการประมวลผลเปนการขดขวางจนกระทงขอความนนไดถกรบ โดยการประมวลผลรองรบหรอโดยเมลบอกซ

- ไมขดขวางการสง การประมวลผลการสงเปนขอความและผลลพธของกระบวนการ

- การขดขวางการรบ ผรยจะถกขดขวางจนกระทงขอความเทาทจะทำาได

- การไมขดขวางการรบ ผรบจะไดรบขอความทถกตองดวยหรอขอความทไมไดใชดวย

ความแตกตางของการรวมกนของการสงและการรบเปนสงทเปนไปไมได เมอทงคของการสงและการรบและการขดขวาง พวกเรามทนดพบกนระหวางผสงและผรบ ทางออกของผผลตและลกคาทมปญหาทกลายมาเปนสงทนารำาคาญ เมอพวกเราถกขดขวางการสงและการรบอยางไมเปนระบบ ผผลตเทานนทเรยกการอางถงการถกขดขวางการสง และรอจนกระทงขอความไดถกสงไปสผรบหรอเมลบอกซ เชนเดยวกน เมอลกคาเทานนไดรบ มนจะถกขดขวางจนกระทงขอความสามารถคนหาไดพบ

หมายเหต โครงสรางของ synchronous และ asynchronous เกดขนบอยในกระบวนการระบบตวเลข I/O ดงเชนจะเหนจากขอความน

3.4.2.3 buffering การตดตอสอสารทงทางตรงและทางออม ขอความจะ

เปลยนโดยกระบวนการการตดตอสอสารแบเปนแถวยาวอยแบบชวคราว โดยพนฐานแถวยาวแตละแถวสามารถเปนการสนบสนนดวยกนสามทางคอ

- Zero Capacity แถวยาวมความยาวของศนย ดวยเหตนการเชอมตอโดยไม

Page 31: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

99

สามารถมขอความรออยไดในนน ในกรณน ผสงตองถกขดขวางจนกระทงจะไดรบขอความ

- Bounded Capacity แถวยาวจะมแถวยาวทมความยาวแนนอนมจำานวนจำากด ดวยเหตน ทงหมดของขอมลสามารถอยในทของมนได ถาแถวยาวไมเตม เมอขอความใหมถกสง ขอความทถกสงไปยงสถานทในแถวยาว (ทงคของขอความจะถกคดลอกหรอถก โดยปราศจากการรอคอยการเชอมตอของ Capacity เปนความยาวทแนนอนมจำากด อยางไรกตาม ถาการเชอมตอนนเตม ผสงจะตองขดขวางจนกระทงทวางสามารถถกหาไดไดพบในแถวยาวนน

- Unbounded Capacity ความยาวของแถวสามารถจะเปนไปไดอยางไมสนสด ดวยเหตน จำานวนตอของขอความสามารถรอในตวของมนได ผสงกไมเคยทถกขดขวาง

The Zero Capacity ประเดนนบางครงอางถงระบบขอความระบบขอความกบไมผสมหรอปะปนสวนประเดนอน การอางถงระบบจะตองมการผสมหรอปะปนกบระบบอตโนมตดวย

3.5 ตวอยางการใชการตดตอสอสารระหวางกนในระบบปฏบตการตาง ๆ

ในทนจะขอยกตวอยางระบบปฏบตการ 3 ตว คอ ระบบปฏบตการ POSIX API ระบบปฏบตการ Mach และระบบปฏบตการ Window XP

1. ระบบปฏบตการ POSIX APIระบบปฏบตการ POSIX API มกลไกการตดตอสอสาร

ระหวางโปรเซสหลายวธ

Page 32: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

100

ในทนเราจะพจารณาเฉพาะรปแบบการใชหนวยความจำารวมกน โปรเซสสามารถทจะสรางพนทหนวยความจำาทใชรวมกนไดดวยคำาสงระบบ shmget () ซงจะสงคากลบมาเปนตวเลขทระบบกำาหนดใหใชอางถงพนทดงกลาวได ดงนนเมอโปรเซสใดตองการใชพนทนกตองอางดวยหมายเลขทระบบกำาหนดใหและตองใชคำาสงระบบ shmat () เพอใหมการเชอมโยงไปยงพนทนนพรอมกบสงคาตวชทเกบตำาแหนงพนททสรางขนกลบมา โปรเซสอนทใชพนทหนวยความจำารวมกนจะสามารถเหนการเปลยนแปลงตาง ๆ ทเกดขนในพนทนนได เมอเสรจสนการทำางานโปรเซสจะยกเลกการเชอมโยงโดยใชคำาสงระบบ shmdt () และจะทำาการคนพนทใหแกระบบดวยคำาสงระบบ shmctl ()

2. ระบบปฏบตการ Machระบบปฏบตการ Mach ไดรบการพฒนามาจากมหา

วทยาลยคารเนกเมลลอนโดยสวนแกนจะสนบสนนการตดตอสอสารเพอการทำางานรวมกนดวยการใชระบบการสงผานขอความซงจะรบและสงผานทางพอรต

การทำางานของคำาสงในระบบจะอาศยขอความ เมอมงานหนงเกดขนกจะมพอรต 2 พอรตเกดขนตามมาดวย คอ พอรตสวนแกนและพอรตโนตฟาย โดยสวนแกนนนจะตดตอสอสารกบงานนนโดยใชพอรตสวนแกน และเมอสวนแกนสงขอสงเกตของการเกดเหตการณตาง ๆ ไปยงพอรตสวนโนตฟาย คำาสงระบบทง 3 ทจำาเปนตอการถายทอดขอความ ไดแกคำาสงตอไปน

1. คำาสง msg_send ใชในการสงขอความไปยงพอรต2. คำาสง msg_receive ใชในการรบขอความ3. คำาสง msg_rpc ใชในการสงขอความแลวรอ

ขอความตอบกลบจากผสงดวย

Page 33: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

101

คำาสงระบบ port_allocate ใชสรางพอรตใหมและจองเนอทสำาหรบแถวคอย

ขอความ ซงจำานวนขอความสงสดในแถวคอยทกำาหนดใหโดยอตโนมต คอ 8 ขอความ แถวทคอยในพอรตจะยงวางอยในตอนเรมตน เมอมการสงขอความเขามาจะมการทำาสำาเนาเกบขอความนนไวในพอรต โดยททกขอความจะมลำาดบความสำาคญเทาเทยมกน และขอความตาง ๆ ทสงมาจากทเดยวกนจะถกจดเขาแถวรอตามลำาดบ ขอความทเขามากอนกจะออกไปกอนตามคว แตตวระบบนนจะไมมการรบประกนถงลำาดบทแทจรงของขอความ อยางเชน กรณทขอความนนถกสงมาจากผสง 2 คน อาจมลำาดบในแถวทรอแบบใดกได

ภายในตวขอความนนประกอบไปดวย สวนตนของขอความทมขนาดคงท โดยจะบอกความยาวของอความและชอของพอรต 2 ชอ คอ เปนชอพอรตทจะสงขอความไปถง กบชอพอรตของผสงขอความตอบกลบมา สวนถดมานนเปนสวนขอความทมขนาดแตกตางกนไปตามกลมของขอมลทสง

คำาสง send และ receive เปนคำาสงทคอนขางจะมความยดหยน อยางเชน เมอมการสงขอความมายงพอรต ถาพอรตนนยงไมเตม กจะสำาเนาขอความนนมาไวทพอรต แตถาหากวาพอรตนนเตมแลว ผสงสามารถเลอกทจะทำาได 4 ทางดงตอไปน

1. รอไปเรอย ๆ จนกวาจะมทวางในพอรต2. รออยางมากเพยงแค n มลลวนาท3. ไมรอ4. เกบขอความไวชวคราว โดยใหระบบปฏบตการสามารถ

ทจะเกบขอความไวได 1 ขอความ และเมอมการสงขอความลงไปในพอรตไดแลว กจะมขอความสงกลบมาใหยงผสง

Page 34: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

102

ในทางเลอกตวสดทายนนมความสำาคญตองานของเซรฟเวอรมาก เชน ไดรฟเวอรของเครองพมพ หลงจากทำางานทรองขอสำาเรจแลว อาจจะตองสงขอความกลบไปยงงานทรองขอบรการนนและยงสามารถทจะทำางานใหแกผรองขออน ๆ ตอไปอกได ถงแมวาพอรตตอบรบของผรองขอบรการนนมนจะเตมแลวกตาม

คำาสง receive นนจะตองมการกำาหนดพอรตหรอชดของพอรตทใชในการรบขอความนนดวย ชดของพอรตเปนพอรตของกลมซงสามารถทจะจดเขามาอยในกลมเดยวกนไดและปฏบตการทำางานเหมอนกบวาเปนพอรตเดยวสำาหรบจดประสงคของงานนน ๆ ใชคำาสงระบบ port_status สงคาจำานวนขอความในพอรตนน ทงนคำาสง receive พยายามทจะรบขอความจาก (1) พอรตใด ๆ ในกลมหรอชดของพอรต หรอวา (2) พอรตทระบชอนน ถาไมมขอความสงมา ผรบอาจจะรออยอยางมาก n มลลวนาทหรออาจจะไมรอกได

ปญหาหลกของระบบสงผานขอความ คอ มประสทธภาพตำา เนองมาจากวาตองมการทำาสำาเนาขอความของผทสงมาไวทพอรตกอน และจากพอรตไปยงผรบ ระบบปฏบตการ Mach จงใชวธการเชอมโยงพนทตำาแหนงของหนวยความจำาทมขอความของผสงเขากบพนทตำาแหนงของหนวยความจำาของผรบ ทำาใหตวขอความไมไดเกดการสำาเนาขนจรง การจดการหนวยความจำาแบบนจำาทำาใหประสทธภาพการทำางานดขนมากแตจะเกดขนไดบนระบบทสงขอความกนภายในระบบเทานน

3. ระบบปฏบตการ Window XPระบบปฏบตการ Window XP เปนตวอยางการ

ออกแบบทสมยใหมมความเปนโมดลมากขน โดยจดใหมระบบยอยสนบสนนการทำางานและตดตอกบโปรแกรมประยกตไดดวยกลไกการสงผานขอความ อาจจะพจารณาไดวาโปรแกรมประยกตเปนผรองขอบรการจากระบบยอยของเซรฟเวอร และ Window XP ใชพอรต

Page 35: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

103

เพอการตดตงและเชอมตอระหวางโปรเซส 2 โปรเซสแบบเดยวกนกบ ระบบปฏบตการ Mach ดงนนผรองขอบรการทเรยกใชระบบยอยจำาเปนทจะตองมชองทางการสอสารดวยพอรตทจดใหใช โดยท Window XP จะใชพอรต 2 ประเภท คอ พอรตเชอมตอกบพอรตสอสาร ซงพอรตเชอมตอนนเปนวตถทไดกำาหนดไวใหทกโปรเซสสามารถตดตอไดเพอใชจดตงชองทางการสอสาร โดยการสอสารมการทำางานดงตอไปน

- ผรองขอบรการเปดชองทางเชอมไปยงพอรตสอสารของระบบยอย

- ผรองขอบรการสงคำารองขอเพอการตดตอ- เซรฟเวอรสรางพอรตสอสารสวนตว 2 พอรตและสง

ทางเชอมพอรตใดพอรตหนงไปทผรองขอบรการ

- ผรองขอบรการและเซรฟเวอรใชพอรตทเชอมตอกนนน เพอสงขอความและรบคำาตอบกลบมา

Window XP ใชเทคนคการสงผานขอความ 2 รปแบบโดยแบบทงายทสดจะใชสำาหรบขอความทมขนาดไมเกน 256 ไบต คอ จะใชแถวคอยขอความของพอรตเปนทเกบขอความและสำาเนาขอความจากโปรเซสหนงไปใหอกโปรเซสหนง ถาตองการสงขอความทมขนาดใหญขนจะตองสงผานพนทหนวยความจำารวม

3.6 การสอสารในระบบ client-serverในหวขอท 3.4 เราอธบายเกยวกบกระบวนการทสามารถ

สอสารโดยการใชหนวยความจำารวมกนได เทคนคนสามารถใชการสอสารในระบบ client-server ในหวขอนเรามวธอนๆอก 3 อยางจากการสอสารใน ระบบ client-server คอ socket, remote procedure calls (RPCs) และ Java’s remote method invocation(RMI)

Page 36: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

104

3.6.1Socket Socket คอการกำาหนดจดสนสดของการสอสาร การ

สอสารแบบคของกระบวนการเหนอกวาเครอขายทใช socket ค เปนสวนหนงของกระบวนการ socket เปนการกำาหนดโดย IP Address เชอมเขาดวยกนกบ port number โดยทวไปแลว socket จะใชสถาปตยกรรมของ client-server ซง server จะรอการเรยก(request)ของ client โดยฟงจาก port ทกำาหนด การเรยก(request)เปนการไดรบ(accept) server ไดรบการเชอมตอจาก socket จาก client แปลวาการเชอมตอสมบรณ server จะเปลยนแปลงบรการทสำาคญเชน telnet ftp และ http ซงฟงมาจาก well-known port (telnet server ฟงจาก port 23, ftp server ฟงจาก port 21 และ web หรอ http, server ฟงจาก port 80) port ทงหมดนตำากวา 1024 พจารณาจาก well known port ซงใชเปนบรการพนฐาน

เมอกระบวนการ client เรมจะมการเรยกการเชอมตอ จะมการเพมของ port โดย host computer port นจะมตวเลขทมากกวา 1024 เชน ถา client บน host X มIP Address 146.86.5.20 มการสรางการเชอมตอกบ web server (จะรวาอยทport 80) ทaddress 161.25.19.8 host X อาจจะเพม port 1625 การเชอมตอจะประกอบดวย socket ของทงค (146.86.5.20:1625) บน host X และ (161.25.19.8:80) บน web server สถานการณแบบนตวอยางอยในหวขอ 3.17 packet น ระหวาง host จะประกาศการจดสรรของกระบวนการพนฐานบน port number ปลายทาง

การเชอมตอทงหมดเปนหนงเดยว ดงนนถากระบวนการอนบน host X มการสรางการเชอมตออน ๆ กบ web server เหมอน ๆ กนจะมการเพม port number มากกวา 1024 และไม

Page 37: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

105

เทากบ 1625 แนใจวาทงหมดของการเชอมตอประกอบดวยความเปนหนงเดยวของ socket ทงคดงนนโปรแกรมตวอยางทใช C ตวอยาง เราจะยกตวอยาง socket ทใชในจาวา จาวาจะจดการเชอมตอไปทsocket ไดงายกวาและม library เยอะมากสำาหรบเครอขาย

จาวาจดชนดของ socket ไว 3 อยาง 1.Connection-oriented (TCP) socket เปนการ implement กบคลาส socket 2.Connection (UDP) socket ใชคลาส DatagramSocket ในทสดคลาส MulticastSocket เปนคลาสยอยของคลาส DatagramSocket 3.multicast socket จดขอมลสงใหผไดรบ (receive) ไดหลาย ๆ socket

ตวอยางทอธบายขอมล server ใช connection-oriented TCP socket operation จดให client เรยกการเปลยนวนทและเวลาจาก server server จะฟง port 6013 ถงแมวา port มตวเลขอะไรกไดทมากวา 1024 เมอการเชอมตอไดรบ server จะสงวนทและเวลาของ clientimport java.net.*;import java.io.*;public class DateServer{ public static void main(String[] args){ try{ ServerSocket sock=new ServerSocket(6013);

//now listen for connections while(true){ socket client=sock.accept();

PrintWriter pout =new PrintWriter(client.getOutputStream(),true); //write the Date to the socket pout.println(new java.util.Date().toString());

Page 38: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

106

//close the socket and resume //listening for connections client.close(); } } catch (IOException ioe){ System.err.println(ioe); } }}

รปท 3.16

เวลาของ server จะแสดงในตวอยาง 3.18 server สราง Socket โดยกำาหนดจะฟง port เลข 6013 server จะเรมฟง port จาก method accept() server block บน method accept() รอการเชอมตอเรยกจาก client เมอมการเรยกการเชอมตอจะไดรบ accept() จะสง socket server สามารถใชการสอสารกบ client

รายละเอยดของการสอสาร server กบ socket เหมอนจะเอาอยาง server แรกสราง PrintWriter object มนจะใชการสอสารกบ client PrintWriter object จดให server เขยน socket ใช method เปนประจำา print() และ println() สำาหรบแสดงผล กระบวนการ server สงวนทไปท client เรยก method println() มนจะเขยนวนทท socket server จะปด socket ท client และฟงการเรยกรองมากกวานน

การสอสารของ client กบ server โดยการสราง socket และการเชอมตอ port บนการฟงของ server พวกเราจะมการทำาใหมผลเหมอน client ในโปรแกรมจาวาแสดงในตวอยาง 3.19 client สราง socket และเรยกการเชอมตอกบ server ท IP Address 127.0.0.1 บน port 6013 การเชอมตอเปนตวทำา client สามารถอานจาก socket ใช stream ปกต หลงจากไดรบ

Page 39: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

107

วนทจาก server client จะปด socket IP Address 127.0.0.1 เปน IP Address 127.0.0.1 มนจะเชอมกบตวมนเอง กลไกนจดให client และ server บน host ทเหมอน ๆ กนการสอสารการใช TCP/IP protocol IP Address 127.0.0.1 แทนท IP Address ของ host อน ๆการแสดงผลของวนทเครองแมขาย นอกจากนน IP Address ชอ host ยงอยเหมอน www.westminstercollege.edu สามารถใชไดด

การสอสารการใช socket ถงแมวาปกตและมประสทธภาพ เปนการพจารณาระดบตำาของการสอสารระหวางกระบวนการแบบกระจาย เหตผลหนงเปน socket ทไมมโครงสรางของ bytes เปนการเปลยนแปลงระหวางการสอสาร thread มนเปนหนาทของ client หรอ server กำาหนดโครงสรางบนขอมล ในสองบทยอยตอไปเรามองท method ระดบสงกวาของการสอสาร remote procedure calls (RPCs) และ remote method invocation(RMI)import java.net.*;import java.io.*;public class DateClient{

public static void main(String[] args){try{

//make connection to server socketSocket sock=new

Socket(“127.0.0.1”,6013);InputStream

in=sock.getInputStream();BufferedREader bin=new

BufferedReader(new InputStreamReader(in));//read the date from the socketString line;

Page 40: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

108

while((line=bin.readLine())!=null)System.out.println(line);

//close the socket connectionsock.close();

}catch(IOException ioe){

System.err.println(ioe);}

}}

รปท 3.17

เกรดความรความรทวไปเกยวกบ Port สำาหรบพวก Application ในชน layer สง ๆ ทใช TCP

(Transmission Control Protocol) หรอ UDP (User Datagram Protocol) จะมหมายเลข Port หมายเลขของ Port จะเปนเลข 16 bit เรมตงแต 0 ถง 65535 หมายเลข Port ใชสำาหรบตดสนวา service ใดทตองการเรยกใช ในทางทฤษฎ หมายเลข Port แตละหมายเลขถกเลอกสำาหรบ service ใดๆ ขนอยกบ OS (operating system) ทใช ไมจำาเปนตองเหมอนกน แตไดมกำาหนดขนใหใชคอนขางเปนมาตรฐานเพอใหมการตดตอการสงขอมลทดขน ทาง Internet Assigned Numbers Authority (IANA) เปนหนวยงานกลางในการประสานการเลอกใช Port วา Port หมายเลขใดควรเหมาะสำาหรบ Service ใด และไดกำาหนดใน Request For Comments (RFC') 1700 ตวอยางเชน เลอกใช TCP Port หมายเลข 23 กบ Service Telnet และเลอกใช UDP Port หมายเลข 69 สำาหรบ Service Trivial File transfer Protocol (TFTP) ตวอยางตอไปนเปนบางสวนของ File/etc/services แสดงใหเหนวา หมายเลข Port แตละหมายเลขไดถกจบคกบ Transport Protocol หนงหรอสอง

Page 41: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

109

Protocol ซงหมายความวา UPP หรอ TCP อาจจะใช หมายเลข Port เดยวกนกได เนองจากเปน Protocol ทตางกน

ทงนหมายเลข Port ถกจดแบงเปน 2 ประเภท ตามทไดกำาหนดใน RFC' 1700 (รายละเอยด Download และศกษาไดท http://ftp.isi.edu/in-notes/rfc1700.txt) คอ well known Ports และ Registered Ports

Well Known Ports คอจะเปน Port ทระบบสวนใหญกำาหนดใหใชโดย Privileged User (ผใชทมสทธพเศษ) โดย port เหลานใชสำาหรบการตดตอระหวางเครองทมระบบเวลาทยาวนาน วตถประสงคเพอให service แกผใช (ทไมรจกหรอคนเคย) แปลกหนา จงจำาเปนตองกำาหนด Port ตดตอสำาหรบ Service นน ๆ

Registered Ports จะเปน Port หมายเลข 1024 ขนไป ซง IANA ไมไดกำาหนดไว

ตวอยางการใช Portแตละ Transport layer segment จะมสวนยอยท

ประกอบไปดวยหมายเลข Port ของเครองปลายทาง โดยทเครองปลายทาง (Destination host) จะใช Port นในการสงขอมลใหใชกบ Application ไดถกตอง หนาทในการสงหรอแจกจาย Segment ของขอมลใหตรงกบ Application เรยกวาการ "Demultiplexing"  ในทางกลบกนเครองตนทาง (Source

Page 42: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

110

host) ทำาหนาทในการรวบรวมขอมลจาก Application และเพม header เพอสราง segment เรยกวา  "Multiplexing" หรอถายกตวอยางเปนภาษาทว ๆ ไป คอ ในแตละบานจะมคน 1 คนรบผดชอบเกบจดหมายจากกลองจดหมาย ถาเปนการ Demultiplexing คน ๆ นนจะแจกจายจดหมายทจาหนาซองใหสอดคลองกบบคคลนน ๆ ในบาน ในทางตรงกนขาม ถาเปนการ Multiplexing คน ๆ นนกจะรวบรวมจดหมายจากสมาชกในบานและทำาหนาทสงออกไป Demultiplexing ตามรปท 3.18

รปท 3.18

หมายเลข Port จะอยใน 32 bit แรกของ TCP และ UDP header โดยท 16 bit แรกเปนหมายเลข Port ของเครองตนทาง ขณะท 16 bit ตอมาเปนหมายเลข Port ของเครองปลายทาง ดงแสดงในรปท 3.19

รปท 3.19

TCP หรอ UDP จะดทขอมลหมายเลข Port ใน header เพอพจารณาวา Application ใดทตองการขอมลนน ๆ หมายเลข Port ทงตนทางและปลายทางจำาเปนตองมเพอใหเครองปลายทางมความสามารถทจะรน process มากกวา 1 process ในเวลาเดยวกน

Page 43: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

111

ตามทไดกลาวในขางตน "Well know Ports" เปน Port ทคอนขางมาตรฐาน ทำาใหเครองทอยไกลออกไป (Remote Computer) สามารถรไดวาจะตดตอกบทาง Port หมายเลขอะไรสำาหรบ Service เฉพาะนน ๆ  อยางไรกตามยงม Port อกประเภททเรยกวา Dynamically Allocated Port ซง Port ประเภทนไมไดถก assign ไวแตเดม แตจะถก assign เมอจำาเปน  Port ประเภทนใหความสะดวกและความคลองตวสำาหรบระบบทมผใชหลาย ๆ คนพรอม ๆ กน ระบบจะตองใหความมนใจวาจะไม assign หมายเลข Port ซำากน

ยกตวอยาง สมมตวามผใชตองการใช Service Telnet ทางเครองตนทาง(Source host)จะทำาการ assign ใหหมายเลข Dynamic Port (เชน 3044) โดยทหมายเลข Port ปลายทางคอ 23 เครองจะ assign หมายเลข Port ปลายทางเปน 23 เพราะวาเปน Well Known Port สำาหรบ Service Telnet จากนนเครองปลายทางจะทำาการตอบรบกลบโดยใช Port หมายเลข 23 เปนหมายเลขตนทาง และหมายเลข Port 3044 เปนหมายเลขปลายทางกลมของหมายเลข Port และหมายเลข IP เราเรยกวา Socket ซงจะเปนตวบงชทเฉพาะเจาะจงสำาหรบ Network process หนงเดยวทมอยในทงระบบ Internet คของ Socket ทประกอบดวย Socket หนงตวสำาหรบตนทาง และอกตวสำาหรบปลายทางสามารถใชบรรยายถงคณลกษณะของ Connection oriented protocols

ยกตวอยางเชน ถาผใชคนท 2 ตองการใช Service Telnet จากเครองปลายทางเครองเดยวกน ผใชนนกจะไดรบการ assign หมายเลข Port ตนทางทแตกตางกนออกไป โดยมหมายเลข Port ปลายทางเหมอนกนกบผใชคนแรกดงรปท 3 จะเหนไดวาการจบคของหมายเลข Port และหมายเลข IP ทงตนทางและปลายทางสามารถทำาใหแยกความแตกตางของ Internet connection

Page 44: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

112

ระหวางเครองตนทาง (Source host)และเครองปลายทาง(Destination host) ได

รปท 3.20

Active และ Passive Portsสงสดทายทจะตองกลาวถงเกยวกบ Port กคอ ความแตกตาง

ระหวาง Active และ Passive Port ในการใชการตดตอดวย TCP สามารถกระทำาได 2 วธคอ Passive และ Active Connection Passive connection คอ การตดตอท Application process สงให TCP รอหมายเลข Port สำาหรบการรองขอการตดตอจาก Source Host เมอ TCP ไดรบการรองขอแลวจงทำาการเลอกหมายเลข Port ให แตถาเปนแบบ Active TCP กจะให Application process เปนฝายเลอกหมายเลข Port ใหเลย

หมายเลข port คออะไร หมายเลข port คอเลขฐาน 16 บต ตงแต 0 ถง 65535 หมายเลข port แตละหมายเลขจะถกกำาหนดโดยเฉพาะจาก OS (Operating Systems) เชน เลอกใช TCP Port หมายเลข 23 กบ Service Telnet และเลอกใช UDP Port หมายเลข 69 สำาหรบ Service Trivial File transfer Protocol (TFTP)

Page 45: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

113

Well known Ports คออะไร Well Known Ports คอจะเปน Port ทระบบสวนใหญ กำาหนดใหใชโดย Privileged User (ผใชทมสทธพเศษ) โดย port เหลาน ใชสำาหรบการตดตอระหวางเครองทมระบบเวลาทยาวนาน วตถประสงคเพอให service แกผใช (ทไมรจกหรอคนเคย) แปลกหนา จงจำาเปนตองกำาหนด Port ตดตอสำาหรบ Service นนๆ

Registered Ports ละคออะไร Registered Ports จะเปน Port หมายเลข 1024 ขนไปตวอยางการใช Port Transport layer segment ทประกอบไปดวยหมายเลข Port ของเครองปลายทาง โดยทเครองปลายทาง (Destination host) จะใช Port นในการสงขอมลใหกบ Application ไดถกตอง หมายเลข Port จะอยใน 32 bit แรกของ TCP และ UDP header โดยท 16 bit แรกเปนหมายเลข Port ของเครองตนทาง ขณะท 16 bit ตอมาเปนหมายเลข Port ของ เครองปลายทาง Well know Ports เปน Port ทคอนขางมาตรฐาน ทำาใหเครอง Remote Computer สามารถรไดวาจะตดตอกบทาง Port หมายเลขอะไรสำาหรบ Service นน ๆ กลมของหมายเลข Port และ หมายเลข IP เราเรยกวา Socket ทประกอบดวย Socket หนงตว สำาหรบตนทาง และอกตว สำาหรบปลายทาง ความแตกตางระหวาง Active และ Passive Port  ในการใชการตดตอดวย TCP สามารถกระทำาได 2 วธคอ Passive และ Active Connection Passive connection คอ การตดตอท Application process สงให TCP รอหมายเลข Port สำาหรบ การรองขอการตดตอ จาก Source Host เมอ

Page 46: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

114

TCP ไดรบการรองขอแลวจงทำาการเลอกหมายเลข Port ให แตถาเปนแบบ Active TCP กจะให Application process เปนฝายเลอกหมายเลข Port ใหเลย 

รปท 3.21

3.6.2 กระบวนการรองขอระยะไกล (Remote Procedure Calls)

หนงในรปแบบทวไปทสดของการบรการระยะไกล(remote service) คอ ตวอยาง RPC ซงเราจะทำาการอภปรายกนไปในหวขอ 3.5.2 RPC ไดรบออกแบบเปนวธการนามธรรมของกลไกในการรองขอสำาหรบใชระหวางระบบกบการตดตอเครอขาย มนจะมความคลายคลงกนในหลาย กลไกของ RPC ดงอธบายในหวขอ 3.4 และมนมกจะสรางทดานบนของระบบดงกลาว อยางไรกตาม เนองจากเรากำาลงตดตอกบสภาพแวดลอมทกระบวนการจะรนบนระบบทแยกจากกน เราตองใชแบบแผนของขอความสอสารเพอการใหบรการระยะไกล ตรงขามกบสถานทใน IPC ขอความแลกเปลยนในการสอสาร RPC เปนโครงสรางทดและเปนเชนนนไมแคเพยงแพกเกจของขอมล แตละขอความคอทอยทม RPC คอยฟงพอรตในระบบระยะไกลและแตละอนนนจะประกอบไปดวยตวระบฟงกชนเพอรนและพารามเตอรทจะผานคาไปยงฟงกชนนน จากนนฟงกชนถกรนตามทขอ และเอาตพตใดๆกจะถกสงกลบไปยงผรองขอในขอความทแยกตางหาก

Page 47: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

115

พอรต คอ หมายเลขทรวมทเรมตนของหอขอความ (message packet) แตทวา ระบบตามปกตนนจะมเพยงหนงทอยเครอขาย มนสามารถมไดหลายพอรตภายในทอยนน เพอมนจะไดสนบสนนในหลายๆ บรการเครอขายทแตกตางกน ถากระบวนการระยะไกลตองการใหบรการ จะเปนขอความไปยงทอยของพอรตทเหมาะสม ตวอยาง ในกรณทระบบตองการใหระบบอนสามารถแสดงรายการของผใชปจจบน มนจะมสวนสนบสนน เชน ม RPC แนบพอรต เชน พอรต 3027 หลาย ๆ ระบบระยะไกลสามารถขอรบขอมลทจำาเปน(นนคอ รายการของผใชปจจบน) โดยการสง ขอความ RPC ไปยงพอรต 3027 บนผใหบรการ ขอมลจะไดรบในขอความตอบกลบ

อรรถศาสตร(วชาทวาดวยความหมายของคำา) ของ RPCs ยอมใหผรบบรการไปทขนตอนการยนคำารองในโฮสตระยะไกล(remote) ตามทจะยนคำารองในขนตอนของทองถน (local) ระบบ RPC ซอนรายละเอยดทยอมใหการสอสารเกดขนโดยการให stup ในดานของไคลเอนต (client) โดยปกต แยก stup อยระยะไกลแยกตางหากสำาหรบแตขนตอน เมอ client รองขอกระบวนการระยะไกล ระบบ RPC จะไปทำาการเรยก stup ทเหมาะสมผานเปนพารามเตอรทเหมาะสมใหแกขนตอนระยะไกล stup นจะคนหาพอรตบนเซรฟเวอรและจดรปแบบพารามเตอร การจดรปแบบพารามเตอรเกยวกบการบรรจพารามเตอรในรปแบบทมนสามารถทจะสงผานทางเครอขาย แลว stup จะสงขอความไปยง server ทใชผานขอความ คลายกน stup ในฝงเซรฟเวอรไดรบขอความนและเปนขนตอนบนเซรฟเวอร หากจำาเปนสงคนคาผานกลบไปท client โดยใชเทคนคเดยวกน

ปญหาหนงทตองกงวลกบความแตกตางในการแสดงขอมลบน client และ server พจารณาการแสดงขอมลจำานวนเตมแบบ 32 บต บางระบบ(รจกกนในชอ big-endian) ใชแอดเดรส

Page 48: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

116

หนวยความจำาสงในการจดเกบไบตทสำาคญมากทสด ในขณะทระบบอน ๆ (รจกกนใน little-endian) เกบไบตทสำาคญนอยทสดทแอดเดรสหนวยความจำาสง เพอแกความแตกตางน หลายระบบ RPC กำาหนดอปกรณอสระแทนขอมล สงดงกลาวเปนทรจกกนใน external data representation(XDR) ในดานไคลเอนตพารามเตอรของการจดการรปแบบเกยวกบการแปลงอปกรณโดยอาศยขอมลภายใน XDR กอนทจะถกสงไปยงเซรฟเวอร ในดานเซรฟเวอร ขอมล XDR ไมไดถกจดการรปแบบและแปลงอปกรณ(ขนอยกบการนำาเสนอสำาหรบเซรฟเวอร)

อกหนงปญหาสำาคญเกยวกบอรรถศาสตรของการเรยก ทขนตอนทองถนลมเหลวเฉพาะภายใตสถานการณสดโตง RPCs สามารถลมเหลว หรอซำาและรนมากกวาหนงครง อนเปนผลมาจากขอผดพลาดทวไปของเครอขาย ทางหนงแอดเดรสทปญหานจะไดสำาหรบระบบปฏบตการเพอใหแนใจวาขอความถกแสดงทนทเมอเหมอนกนแทนทจะเมอมนมากทสด ทองถนสวนใหญขนตอนการเรยกมเมอการทำางานเหมอนกน แตกมความยากในการปรบใช

เรมแรก พจารณา เมอมากทสด นเปนความหมายของคำา“ ”ทสามารถมนใจโดยทมการเกยวพนเวลาใหกบแตละขอความ เซรฟเวอรตองเกบประวตเวลาทงหมดของขอความแลวประมวลผลหรอมขนาดใหญทมประวตเพยงพอเพอใหแนใจวาทตรวจพบเปนขอความทซำา ขอความขาเขาทมการลงเวลาแลวในอดตถกละเวน client สามารถสงขอความหนงหรอมากกวาหนงครงและมนใจไดวามนเทานนทถกรน

สำาหรบ เมอเหมอนกน เราตองการทจะลบความเสยงท“ ”เซรฟเวอรไมไดรบการรองขอ เพอบรรลจดประสงคน เซรฟเวอรตองใช เมอมากทสด ซงเปนโปรโตคอลทอธบายไปขางตนแตยง“ ”ตองรบทราบในสวนลกคาททำาการเรยก RPC คอไดรบและรน ขอความตอบกลบเหลานเปนปกตตลอดเครอขาย client จะตองซำา

Page 49: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

117

แตละ RPC เรยกเปนระยะ ๆ จนกวาจะไดรบการตอบกลบของการเรยก

ปญหาสำาคญทนากงวลของการสอสารระหวางเซรฟเวอรและไคลแอนต กบมาตรฐานขนตอนการเรยก บางรปแบบของการผกมดระหวางการเชอมโยง โหลด หรอ เวลาประมวลผล เพอทจะชอของขนตอนการเรยกจะถกแทนทดวยหนวยความจำาทอยของการเรยก ทสถานการณ RPC ตองการคลายคลงกบการผกพนของไคลเอนตและพอรตเซรฟเวอร แตอยางไรลกคาทราบหมายเลขพอรตบนเซรฟเวอรหรอไม ระบบไมไดมขอมลทงหมดเกยวกบการอน ๆ เพราะมนไมไดแบงปนหนวยความจำา

สองวธการทวไป วธแรก การผกมดขอมลอาจถกกำาหนดกอน ในรปแบบของการแกไขพอรตทอย ทเวลาคอมไพล ท RPC ยงคงมหมายเลขพอรตทเกยวของกบมน เมอโปรแกรมถกประมวลผลเซรฟเวอรไมสามารถเปลยนหมายเลขพอรตของการรองขอบรการ ลำาดบทสอง การผกพนสามารถทำาไดแบบไดนามคโดยกลไกการนดพบ ตามปกต ระบบปฏบตการมการนดพบ(มกเรยกวา แมสอ (matchmaker) ) จำาลองใน RPC พอรตทแนนอน แลว client สงขอความทมชอของ RPC เพอขอนดพบพอรตแอดเดรสจำาลองของ RPC ทจำาเปนตองรน หมายเลขพอรตถกคนคา และ RPC calls สามารถสงถงพอรตจนกวากระบวนการจะสนสด(หรอเซรฟเวอรเกดการผดพลาด) วธนตองใชเหนอสดของคำาขอเรมตนแตมความยดหยนกวาวธแรก

RPC โครงการทมประโยชนในการใชระบบแฟมทมการกระจาย ระบบดงกลาวสามารถดำาเนนการเปนชด RPC จำาลอง และ client ขอความทมการกระจายไปยงระบบแฟมพอรตบนเซรฟเวอรทแฟมการดำาเนนการทจะเกดขน ขอความประกอบดวยการดำาเนนการกบดสกทจะดำาเนนการ การดำาเนนการดสกอาจจะมการอาน การเขยน การเปลยนชอ การลบ หรอสถานะ ทตรงกบไฟลตามปกตท

Page 50: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

118

เกยวของกบ system calls สงคากลบเปนขอความทประกอบดวยขอมลใดๆทเกดจากการเรยกนน ซงรนโดย DEF ในนามของ client ตวอยาง ขอความอาจมการรองขอไปยงการโอนทงแฟมไปยง client หรอถกจำากดโดยบลอกคำาของาย ๆ ในกรณหลง เชน หลายๆการขออาจจำาเปนหากทงไฟลถกโอน

โชคด ระดบของการเอาออกซง RMI ททำาให stup และ skeleton โปรงใส ยอมใหนกพฒนาจาวาเขยนโปรแกรมทรองขอวธแบบกระจาย เชนเดยวกบทพวกเขารองขอในทองถน มนมความสำาคญอยางยง อยางไรกตาม เพอเขาใจเพยงไมกกฎเกยวกบพฤตกรรมของการผานพารามเตอร

ถาการแปลงรปแบบพารามเตอรเปนวตถทองถนจะผานการคดลอกโดยใชเทคนคทรจกกนใน object serialization อยางไรกตาม ถาพารามเตอรเปนวตถระยะไกล จะผานคาโดยการอางอง ในตวอยางคอ ถา A เปนวตถทองถน และ B เปนวตถระยะไกล A คอ การตอเนองกน และ ผานโดยการคดลอก และ B ถกผานโดยการอางอง นในการเปดใหเซรฟเวอรวธการรองขอบนวตถระยะไกล B

ถาวตถทองถนถกผานคาพารามเตอรไปยงวตถระยะไกล จะตอง implement ในสวนของ interface java.io.Serializable หลายวตถในแกนกลางของ java API การ implement Serializable ซงสามารถทจะใชกบ RMI วตถ ตอเนองกนยอมใหสถานะของวตถทเขยนไปยงสายไบต

3.6.3 วธการรองขอระยะไกล (Remote Method Invocation) วธการองขอระยะไกล(RMI) เปนจาวาทมคณสมบตคลาย

กบ RPCs RMI ยอมใหเทรดรองขอวตถระยะไกล วตถจะถกพจารณาวาเปนระยะไกลถามนอยในเครองจาวาทเสมอนแตกตางกน(JVM) ดงนนวตถระยะไกลอาจแตกตางกนใน JVM บนเครอง

Page 51: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

119

คอมพวเตอรเครองเดยวกนหรอการเชอมตอโฮสระยะไกลโดยเครอขาย

RMI และ RPCs แตกตางในสองวธพนฐานลำาดบแรก RPCs สนบสนนขนตอนการเขยนโปรแกรม ขนตอนทเฉพาะระยะไกลหรอฟงกชนสามารถถกเรยก ตรงกนขาม RMI จะอยบนพนฐานของวตถ มนสนบสนนการรองขอของ method บนวตถระยะไกล ลำาดบสองพารามเตอรไปยงขนตอนระยะไกลมโครงสรางขอมลสามญใน RPCs กบ RMI มนเปนไปไดทจะผานวตถเปนพารามเตอรไปยงขนตอนระยะไกล RMI ทำาใหสำาหรบผใชเพอพฒนาโปรแกรมจาวาทไดรบการกระจายขามเครอขาย

เพอใหวธระยะไกลโปรงใสทงไคลแอนตและเซรฟเวอร RMI สรางวตถระยะไกลโดยใช stup และ skeleton โดย stup คอ proxy สำาหรบวตถระยะไกล มนอยในไคลแอนต เมอไคลแอนตรองขอวธการระยะไกล stup สำาหรบวตถระยะไกลกจะถกเรยก ฝงไคลแอนต stup จะเปนตวรบผดชอบในการสรางพสดทประกอบดวยชอของวธการทจะรองขอบนเซรฟเวอร และ พารามเตอรการแปลงขอความสำาหรบวธ แลว stup จะสงพสดนไปยงเซรฟเวอรซง skeleton สำาหรบวตถระยะไกลจะไดรบมน skeleton จะรบผดชอบในการถอดรปแบบพารามเตอรและวธการรองขอในเซรฟเวอร skeleton ทแปลงรปแบบแลวจะสงคากลบไปเปนพสดและสงกลบพสดนไปยงไคลแอนต stup กจะทำาการถอดรปแบบขอความแลวสงคากลบผานใหกบไคลแอนต

ชวยใหดการทำางานของกระบวนการนอยางชดเจนขน สมมต client ตองการรองขอวธการระยะไกล วตถเซรฟเวอรมสญลกษณเปน someMethod (Object, Object) ซงคนคาเปน จรง กบ เทจ client ประมวลผลประโยค

Boolean val = server.someMethod(A,B); การเรยก someMethod () กบพารามเตอร A และ B

รองขอ stup สำาหรบวตถระยะไกล การแปลงขอความ stup ภายใน

Page 52: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

120

พสดพารามเตอร A และ B และชอของ method ซงคอการรองขอบนเซรฟเวอร แลวสงพสดนไปยงเซรฟเวอร skeleton บนเซรฟเวอรถอดรปแบบพารามเตอรและรองขอ method someMethod () การ implement จรงมในเซรฟเวอร เมอวธการเสรจสมบรณแปลงรปแบบ skeleton คนคาเปน จรง หรอเทจ จาก someMethod () และ สงคานกลบไปยงไคลแอนต ถอดรปแบบ stup นคนคาและสงผานไปยงไคลแอนต

สรปโปรเซสหมายถงโปรแกรมในขณะทำางานรวมกนทงโครงสราง

ขอมลแวดลอมตาง ๆ ทจำาเปนตอการทำางานนน ในระบบประมวลผลกลมหรอระบบแบงกนใชเวลาโปรเซสเปนภาคการทำางานในหนวยความจำาของโปรแกรมซงปกตเกบไวในแหลงเกบขอมล เชน ดสก

Page 53: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

121

โปรเซสสรางขนไดจากโปรเซสเดม ซงมาอาจจะมาจากการเขาใชระบบของผใชเครอง ในยนกซโดยทวไปแลวจะสรางโปรเซสใหมดวยคำาสงระบบ fork() นอกจากการสนสดการทำางานปกต โปรเซสอาจหยดการทำางานไดจากกการอางหนวยความจำานอกขอบเขต หรออาจจะใชงานคำาสงทไมไดรบอนญาต หรออปกรณเขาออกเกดความผดพลาดรายแรงในการทำางาน

วงชวตของแตละโพรเซสเรมตนเมอถกสรางขนมาใหม ระบบปฎบตการจะเตรยมขอความตาง ๆ เชน พนทในหนวยความจำาสำาหรบรหสคำาสง ขอมล แสตก และขอมลอน ๆ เพอควบคมการทำางานใหเรยบรอยจากนนสถานะจะเปลยนไปเปนพรอมทำางาน และเมอถงเวลาททำางาน ระบบปฎบตการจะสลบหนวยประมวลผลใหมาทำางานทโปรเซสน ซงจะทำาโดยสวนโปรแกรมเลอกจายงานของตวระบบปฎบตการเอง โดยจะมการเกบคารจสเตอรตาง ๆ ของหนวยประมวลผลลงใน PCB ของโปรเซสทกำาลงทำางานอย และยาย PCB ไปตอในควทเหมาะสม จากนนจะนำาคาตาง ๆ ใน PCB ของโปรเซสทถกเลอกไปใสในรจสเตอรตาง ๆ กอนทโปรเซสจะเรมตนทำางาน วงชวตของโปรเซสจะวนเวยนแบบนจนกระทงมการใชงานหรอรอขอมลจากอปกรณเขาออกหรอเหตการณบางอยาง สถานะจะเปลยนเปนรอ จนเกดเหตการณนนแลวจะเปลยนสถานเปนพรอมทำางานและมาตอในแถวคอยพรอมทำางานอกครง เมอโปรเซสสนสดการทำางานจะเปลยนสถานเปนสนสดและระบบปฎบตการจะจดการดงทรพยากรตาง ๆ กลบคนมา

การสลบโปรเซสจะเกดขนเมอเกดการขดจงหวะ เชน อปกรณเขาออกหรอนาฬกาเพอคมไมใหโปรเซสทำางานนานเกนไปหรออาจเกดการสลบโปรเซสเมอโปรเซสททำางานอยนนเกดความผดพลาด เชน การหารดวยศนย นอกจากนยงอาจเกดสลบโปรเซสไดจากการเรยกใชคำาสงระบบ เพอใชบรการของระบบปฎบตการ เชน เมอใชอปกรณเขาออกจะทำาใหสถานะเปลยนเปนรออปกรณ

Page 54: Process คืออะไรbls.buu.ac.th/~f52325/report_last_semester/%BA%B7%… · Web viewProcess Concept การศ กษาเร องโปรเซส เป นห วใจของการทำความเข

122

การสอสารระหวางโปรเซสชวยใหโปรเซสตาง ๆ สอสารถงกนและกนและประสานจงหวะการสอสารได วธการทวไปในการสอสารระหวางโปรเซส เชน การสงสารระหวางกนโดยใชคำาสง send(message) และ receive(message) โดยมทงการรบและสงทงทางตรงและทางออม