--- title: ฝึก PE ระบบปฏิบัติการและเทคโนโลยี 30/06/2022 นาโน subtitle: date: วันจันทร์ที่ 15 สิงหาคม 2565 เวลา 09.00 น. --- (ข้อความสดจากระบบถอดความเสียงพูดทางไกล) ของการจัดการProcess นะครับ เราเคยได้ยินไหมProcessครับ ถามหมู่ 1 เคยได้ยินไหมครับ คำนี้เรียนตั้งแต่มัธยม Process คืออะไร เอ่ย Process Process ครับ เขาบอกว่านะครับ เขาให้ความหมาย ความหมายเยอะแยะนะครับ แต่ความหมายที่เราใช้กันนะครับ เอกสารยังไม่ได้หรือ อยู่กับใคร เอกสารหมดหรือยัง อยู่กับใครครับเอกสาร เหลืออยู่กับใคร มีไหม อยู่กับใครครับ เอกสารเหลือน่ะ บทนี้ บทที่ 2 น่ะ อยู่กับใคร เหลืออยู่กับใคร มันต้องเหลือสิ มันตั้ง 50 ชุดนะครับ ถ่ายมา อยู่ไหนล่ะ ห้อง 1 มันยังไม่เห็น เอกสารอาทิตย์ที่แล้ว วางไว้ที่โต๊ะไหน หรือหมู่ 1 หมู่ 1 หมู่ 1ยังไม่ส่งใช่ไหม เห็นแต่ของห้อง 2 แต่ผมตรวจแล้วนะครับผม ตรวจแล้ว ก็คืนให้แล้วนะครับ ใครมาช้ามาเอา นะครับ เอกสารที่ผมตรวจนะครับผม จะไม่ได้ตรวจให้ทุกขอนะครับ ผมจะเซ็นให้เฉย ๆ นะครับ เป็นการตรวจเช็กแต่ละสัปดาห์ แล้วก็เราเอาไว้อ่านสอบนะครับ เพราะว่าตอนนี้เราเรียน 2-3 สัปดาห์แล้วนะครับ จะครบเดือนแล้ว เดี๋ยวสัปดาห์หน้านะครับ ห้องหมู่ 2 จะไม่อยู่นะครับ ผมก็ไม่อยู่นะครับ สัปดาห์หน้าเราไม่มีเรียนนะครับ วิชานี้ เราจะยกเลิกคลาสนะครับ เพราะว่าหมู่ 2 จะไปศึกษาดูงานข้างนอกนะครับ ผมก็ไปด้วยนะครับ ทั้งวันนะครับ สัปดาห์ถัดไปปิดใช่ไหม หยุด สัปดาห์ถัดไปอีก เรียน สัปดาห์ถัดไปหยุดอีก เดือนนี้หยุดเยอะนะครับ มาดูนะครับ Process นะครับ Process Process เขาให้ความหมายว่า Process คือ โปรแกรมที่กำลังถูก Execute Execute คืออะไร เคยได้ยินไหมครับ เขาบอก Process คือ โปรแกรมที่กำลังถูก Execute เป็นอย่างไรครับ Execute ผมเชื่อว่าพวกเราจบมัธยมศึกษาปีที่ 6 มา มันต้องเคยได้เรียนแล้วใช่ไหม คอมพิวเตอร์พื้นฐษน เรียนหรือยัง เรียนหรือยังครับ หมู่ 1 เรียนแล้วใช่ไหม นะครับ ถามตอบด้วยเด้อ ถามตอบ มีปฏิสัมพันธ์ด้วยนะครับ เพราะเราทุกวันนี้นะครับ เราค่อนข้างขาดปฏิสัมพันธ์นะครับ ผมเข้าใจนะ พวกเราเป็น Generation ที่ต่างจากอาจารย์นะครับ เราเจนอะไรครับ เรา Genaration อะไรGen Y หรือ แม่นหรือ ใช่ไหม ใช่หรือ เรา Gen y หรือ Gen อะไรดี ยังไม่รู้อีกตัวเอง Gen อะไร เดี๋ยวไปถามห้อง 2 ยังไม่ถามห้อง 2 ถามห้อง 1 ก่อน ตอนนี้พวกเรามีปัญหานะครับ เรื่องของความแตกต่างระหว่าง Genaretion รุ่นผมนี่ คุยกับพวกเรานี่ ไม่ค่อยรู้เรื่อง จริงไหมอุบล จริงไหม เราคนละ Generation นะครับ รุ่นพวกเรานี่ ความอดทนน้อยนะครับ รอได้ไหม รอไม่ได้นะครับ จะเอาเดี๋ยวนี้ จะกินข้าวก็จะกินเดี๋ยวนี้ ถ้าจะให้ไปต่อคิว ก็ไม่ไป เห็นไหมครับ มันถึงเกิดอะไรขึ้นมา ขายพวก Grab พวก Food Panda ใช่ไหม จากที่ผมอ่านนะครับ อ่านทดสอบก่อนเรียนพวกเรา ก็พื้นฐานพอ ๆ กันนะ พอ ๆ กันนะ นะครับ ก็คือยังไม่เข้าใจความหมาย ยังไม่เข้าใจหลักการของคอมพิวเตอร์มาก ก็ไม่เป็นไรนะครับ จริง ๆ อย่างที่ผมบอกนะครับ เราควรจะจัดให้เรียนอยู่ชั้นปีที่ 3 นะครับ แต่เราก็มาจัด ปี 1 เทอม 1 ก็ไม่เป็นไรนะครับ ก็ปรับเอา เขาบอกว่า Processโปรแกรมที่กำลังถูก Execute ถ้าเรามอง ก็คือสัปดาห์ก่อนใช่ไหม พอเราส่งข้อมูลจากคีย์บอร์ดใช่ไหมครับ ส่งจากคีย์บอร์ปุ๊บเข้าไปไหนครับ คิดตาม เข้าไปไหน คีย์บอร์ด คือ Input ใช่ไหม Input พอเข้าไปในคอมพิวเตอร์เราเรียกว่าเข้าไปอะไร ไปประมวลผลใช่ไหมครับ ประมวลผลเสร็จทำอะไรต่อ ก็ไปแสดงผลใช่ไหม นี่คือหลักของมัน Input ประมวลผล Process ใช่ไหม แล้วก็ออกไป Output เขาบอกว่า Process คือ โปรแกรมกำลังถูก Execute นั่นหมายความว่า... บางคนให้ความหมายว่าเป็นโปรแกรมที่เข้าไปครอบครอง CPU หรือเข้าไปใช้งาน CPU แล้วแต่เอกสารตำราแต่ละคนแต่ง นะครับ คือ หลักการ คำว่า "Process" ก็คือโปรแกรมที่กำลังถูก Execute ในคอมพิวเตอร์เรา มันจะมีไฟล์อยู่ไฟล์หนึ่ง เป็นนามสกุล ไฟล์ทุกไฟลืต้องมีนามสกุล ดูรายละเอียดต่อไปนะครับ ก็คือนามสกุลที่ .exe เคยเห็นไหม เคยสังเกตไหม เวลาเราใช้คอมพิวเตอร์ หรือไม่รู้ เปิดขึ้นมาใช้แล้วก็ปิดนะครับ เราอย่าไปดูในสไลด์อาจารย์มากนะ อาจารย์ก็พูดไปเรื่อยนะ มันไม่ได้อยู่ในนี้หรอก คราวนี้ถ้า Process ถ้าโปรแกรมเดียว โปรแกรมเดิมนี่ ทำงานปุ๊บ เป็นอย่างไรครับ ยุ่งยากไหม Imput เสร็จ เข้าไปประมวลผลเสร็จ แสดงออก ถ้าโปรแกรมเดียวไม่มีปัญหานะครับ แต่ถ้าเมื่อไรก็ตาม ที่มีหลาย ๆ โปรแกรมทำงานพร้อมกัน ที่เขาบอกว่าเป็นระบบหลายโปรแกรม เขาบอก Process อาจเปรียบได้กับรถยนต์ ก็คือมีรถยนต์หลายคัน และตัวของCPU เอง ก็เปรียบเหมือนคนขับ เหมือนกับว่าคอมพิวเตอร์เรามี CPU ตัวเดียว แต่มีคนต้องการใช้งานเยอะ โปรแกรมเยอะ ต้องทำอย่างไรครับ วิธีการมัน ถ้าเป็นเรา เราทำอย่างไรครับ เช่น มีรถอยู่ 5 คัน มีคนขับอยู่คนเดียว ทำอย่างไรจึงจะขับเข้าเมืองพร้อมกันได้ ลากรถ 4 คัน คนอื่นล่ะ คนอื่นล่ะ ทำอย่างไร คนอื่นมีวิธีการอื่นไหมครับ หลักการคอมพิวเตอร์ เวลาทำงานใช่ไหม โปรแกรมจะเข้าไปทำงาน เข้าไปครอบครองCPU ได้ที่ละ 1 โปรแกรม ก็เหมือนคนเรานี่ ขับรถ ขับได้ทีละคัน จะลาก จะพ่วง ทำไม่ได้ หลักการทำไม่ได้ ทำอย่างไรดีล่ะ วิธีการ ก็คือขึ้นไปขับคันที่ 1 จากราชภัฏสกลนคร แล้วไปจอดค่ายกฤต กลับมาขับครั้งที่ 2 ก็มา... คันที่ 4 คันที่ 5นะครับ พอถึงขับไปใหม่ขับไปถึงหน้าประตูเมือง ย้อนไปที่ 1, 2, 3, 4, 5 อย่างนี้ นี่คือหลักการนะครับ แต่เวลาทำงานจริงเป็นอย่างไรครับ คอมพิวเตอร์ทำงานด้วยความเร็วสูงไหม หายใจทันไหมครับ ทันไหม ไม่น่าทันนะ การทำงานจริง ๆ มันจะทำงานเหมือนที่อาจารย์ยกตัวอย่างเมื่อกี้ ไปทีละคัน ไปทีละคัน แต่พอมาทำงานจริง ๆ มันทำงานได้ความเร็วสูง มันเลยเหมือนประหนึ่งว่ามันไปพร้อม ๆ กันเลย นะครับ นี่คือหลักการทำงานของคอมพิวเตอร์อย่างยกตัวอย่างนี้ ระบบ CPU เป็นคนขับโปรแกรมหลาย ๆ โปรแกรม เหมือนรถนะครับ ทำอย่างไรให้ไปด้วยความเร็วสูง คราวนี้มาดูองค์ประกอบของ Process นะครับ Process มีองค์ประกอบอะไรบ้างนะครับ พอเรียนจบบทนี้นะครับ นักศึกษาก็จะงง เริ่มงงนะ มันเริ่มเหมือนบทที่ 1 ใช่ไหม พื้นฐานนะครับ งง ไม่ต้องตกใจครับ ค่อย ๆ ปรับนะครับ ปรับสภาพแวดล้อม ปรับสภาพหลาย ๆ อย่างนะครับ แล้วตอนนี้ห้องแล็บเราก็ยังใช้ไม่ได้ ใช่ไหม อาจารย์เข้าแจ้งหรือยังว่าใช้ได้เมื่อไร อาคาร 7 เรา ไม่แจ้ง เพราะว่าเราไม่รู้ว่าจะใช้ได้เมื่อไร ผมแวะไปเมื่อวานก็ไม่มีทีท่าว่าจะได้ใช้เลยนะ คนทำก็นั่งทำง็อกแง็ก ๆ อยู่คน 2 คน เทอมนี้ผมว่าไม่น่าทันนะ น่าจะได้ใช้เทอมหน้านะครับ เทอมหน้าก็เราอยากได้เทอมหน้า ก็เป็นรุ่นพวกเราได้ใช้นะครับ เทอมหน้า องค์ประกอบตัวที่ 1 ของ Process นะครับ ก็คือ 1. Processทุกตัวจะต้องมีชื่อและหมายเลขประจำตัวนะครับ Process ID นะครับ และจะต้องไม่ซ้ำกันนะครับ เหมือนชื่อไฟล์น่ะ ชื่อไฟล์ซ้ำกันได้ไหม ได้ไหมครับ ชื่อไฟล์ นามสกุลไฟล์นะครับ องค์ประกอบ Process อีกตัวหนึ่ง คือ ชื่อและหมายเลขประจำตัว เหมือนหมายเลขบัตรประจำตัวเรา เราซ้ำกันได้ไหมครับ ได้ไหม ไม่ได้นะครับ แต่ถ้าถามย้อนกลับว่าชื่อและนามสกุลมีโอกาสซ้ำกันได้ไหม ได้นะครับ เพราะอะไรเช่น อาจจะมีพิเชนทร์ จันทร์ปุ่ม เหมือนกัน เพราะอะไรครับ เพราะอาจจะมีญาติพี่น้องนามสกุลเหมือนกัน บังเอิญว่าชื่อพิเชนทร์มันเพราะ เลยตั้งเหมือนกัน เลข 13 หลักห้ามซ้ำกัน องค์ประกอบอันที่ 2 ของ Process ทุก Process มีโค้ดนะครับ เป็นโค้ดนะครับ เป็น code เป็นรหัสคำว่า "โค้ด" ก็คือจะต้อง Execute ได้ทันที คือ ภาษาเครื่อง แปลเรียบร้อยแล้วนะครับ องค์ประกอบอันที่ 3 ก็คือข้อมูล Data Data ข้อมูลนี้นะครับ เขาบอกว่าโปรแกรมต้องการหรือจัดการข้อมูล อาจจะเป็นของ Process ใด Process หนึ่ง หรืออาจจะใช้ข้อมูลร่วมกันกับ Processใช้ร่วมกันได้ ตัวอย่างของ Processที่ใช้ข้อมูลร่วมกัน เช่นProcess ในระบบฐานข้อมูลนะครับ เช่น ฐานข้อมูลระบบงานทะเบียนราชภัฏสกลนคร อย่างนี้ เช่น เรามารายงานตัวเป็นนักศึกษานะครับ ขึ้นทะเบียนปุ๊บ พอเราไปห้องสมุด ก็ใช้ฐานข้อมูลเดียวกัน ในการเงิน ก็ใช้ฐานข้อมูลชุดเดียวกันนะครับ ศูนย์คอม (พิวเตอร์) ไปกองพัฒฯ ก็ฐานข้อมูลอันเดียวกันนะครับ โดยใช้ฐานข้อมูลร่วมกันนะครับ องค์ประกอบอันที่ 4 ของ Process ก็คือProcess Control Block นะครับ หรือบล็อกควบคุมโปรแกรม ระบบปฏิบัติการจะกำหนดเนื้อที่บางส่วนในหน่วยความจำ ทำเป็น Process Contoln block หรือ PCB นะครับ กำหนดไว้ทำไมนะครับ ก็คือ 1. กำหนดไว้เป็น Processกำหนดไว้เพื่อเป็นปัจจุบัน เก็บหมายเลขประจำตัวของ Process เก็บหมายเลขความสำคัญของ Process อยู่ใน PCB นะครับ ใน Process แต่ละตัวจะมีบล็อกควบคุมโปรแกรมหรือ PCB อยู่นะครับ ซึ่ง PCB นี้ก็จะเก็บสถานะของ Process แล้วก็เก็บลำดับความสำคัญของ Process เอาไว้นะครับ นอกจากนั้นก็ยังเก็บสารสนเทศที่เกี่ยวกับการจัดการหน่วยความจำของ Process ข้อมูลรับส่งข้อมูลของ Process หรือเก็บข้อมูลสำคัญของ Process ใน PCB นั่นเองนะครับ พื้นที่จัดเก็บ คือ Registerนะครับ Register คือ หน่วยความจำขนาดเล็ก ที่ในหน่วยความจำ ส่วนในรายละเอียดต่าง ๆ อาจารย์จะพูดในบทที่ 3, 4, 5 นะครับ อันนี้พูดคร่าว ๆ ก่อน ให้พวกเรามองภาพกว้าง ๆ นะครับ ดูต่อนะครับ องค์ประกอบต่อมานะครับ ของ Process ก็คือ Program Status Word นะครับ หรือ PSW นะครับ Program Status Words นะครับ เป็นตัวควบคุมลับดับของ Execute ของ Process มันจะบอกว่า Process นี้ จะเข้าไปครอบครองCPU ลำดับที่เท่าไรนะครับ ต่อมานะครับ คุณสมบัติของ Process นะครับ Process แต่ละ Processจะมีคุณสมบัติดังต่อไปนี้นะครับ ก็คือ 1. Process ทุกตัวจะมีลำดับความสำคัญต่างกันนะครับ Process ทุก Process จะมีลำดับความสำคัญ เช่นProcess A อาจจะมีความสำคัญมากกว่า Process B หรือ Process ของผู้ดูแลระบบ อาจจะมีความสำคัญมากกว่า Process ของ User อย่างนี้ อันที่ 2 คุณสมบัติอันที่ 2 อำนาจหน้าที่Process ทุกตัว จะมีอำนาจหน้าที่ที่ต่างกัน เช่น Processของผู้ดูแลระบบ มีอำนาจมากกว่าของ User อย่างนี้เป็นต้นนะครับ หรือคุณสมบัติอื่น ๆ ที่OS กำหนด อันนี้ขึ้นอยู่กับ OS ครับ เราใช้ OS อะไร เช่น ใช้ Windows 8 ใช้ Windows 10 คุณสมบัติของ Process ก็จะต่างออกไป ยกตัวอย่างเช่นนะครับ Windoes 8 สามารถตั้งชื่อได้ความยาวกี่ตัวอักษรรู้ไหม เคยไหม อาจารย์จะยังไม่บอกว่ากี่ตัวอักษรนะ เราสามารตั้งชื่อได้ ชื่อไฟล์นะครับ กับ Windows 11 ต่างกันไหม ลองดูนะ ลองดู จะไปลองตอนภาคปฏิบัติ ลองสิว่าเรา ถ้าเกิดเป็น Windows 11 สามารถตั้งชื่อความยาวกี่ตัวนะครับ นี่คือคุณสมบัติที่แต่ละตัว OS เป็นคนกำหนดนะครับ เมื่อกี้องค์ประกอบของ Process นะครับ คราวนี้มาดูสถานะของ Process นะครับ สไลด์นะครับ อยู่กับพี่พลอยนะ พลอยค่อยอัป (โหลด) ขึ้นให้น้องนะครับ อาจารย์ลืมอัปฯ ลงในไลน์กลุ่มนะครับ แวะดูก่อนนะครับ คราวนี้มาดูสถานะของ Process นะครับ Process ก็แบ่งออกเป็นสถานะได้ดังต่อไปนนี้นะครับ สถานะพร้อม สถานะพร้อมเป็นอย่างไรสถานะพร้อม เป็นสถานะพร้อมที่ Processพร้อมที่จะใช้ CPU ทันทีที่OS มอบหมายให้ ยืนแล้ว รอแล้ว เหมือนเรารอคิวแล้ว ยืนรอแล้ว รอเข้าไปครอบครอง CPU หรือรอเข้าไปใช้งาน CPU เราเรียกว่า "สถานะพร้อม" เช่นเราจะไปเข้าห้องน้ำ ห้องน้ำเป็น CPU สมมตินะ พร้อมแล้วนะครับ เรายืนรอคิวนี่ เราพร้อมแล้ว พร้อมจะเข้าไปใช้งาน เราเรียกว่า "สถานะพร้อม" นะครับ สถานะที่ 2 คือสถานะ Run Run คืออะไรครับ สถานะ Run เป็นสถานะProcess กำลังครอบครอง CPU อยู่ ก็คือเข้าไปครอบครอง CPU ที่เราเรียกว่า "Run Progarm" นี่คือสถานะ Runนะครับ สถานะที่ 3 นะครับ สถานะติดขัด เขาบอกว่าสถานะติดขัดเกิดจากการที่ Process หยุดรอเหตุการณ์ใดเหตุการณ์หนึ่งให้เกิดขึ้น โดย Process ไม่จำเป็นต้องใช้ CPU และไม่ต้องไปครอบครอง CPU เราไม่รู้เหตุการณ์นั้นคือเหตุการณ์อะไร ไม่รู้ ยกตัวอย่างเช่น ผมกับแม็กกี้หรือกับอุบล ผมเป็น Process A ไปยืนรอคิวในสถานะพร้อม อุบลรอผมคนที่ 2 ผมเปลี่ยนจากสถานะพร้อม เป็นสถานะ Run ก็คือเข้าไปครอบครอง CPU อุบลก็รออยู่ รออยู่สถานะพร้อม ในจังหวะที่ผมกำลังครอบครอง CPU อยู่ บังเอิญว่าผมจำเป็นจะต้องไปพิมพ์งาน ไปพิมพ์เอกสาร ช่วงที่พิมพ์เอกสาร ผมจะต้องออกไปที่พรินต์เตอร์ แล้วช่วงที่ออกไปที่พรินเตอร์นี่ ตัวผมเองต้องไม่ใช้งาน CPU จังหวะนี่ล่ะครับ เรียกว่า "สถานะติดขัด" คือ เกิดเหตุการณ์ที่ตัวของ Processออกไปติดต่ออุปกรณ์รองข้าง จังหวะนี้อุบลก็จะเข้ามาแทนที่ผม นึกออกไหมนะครับ ถ้าเขาถามว่าสถานะติดขัดเกิดจากอะไร เราก็บอกว่าเกิดจากสถานะที่ Process เข้าไปครอบครอง CPU แล้วนะครับ แต่เกิดเหตที่ Process เอง ไม่จำเป็นจะต้องครอบครอง CPU ต่อ หรือไปติดต่ออุปกรณ์ข้างนอก อุปกรณ์รอบข้างแทน ต้องปล่อย CPU ออกไป Process ใหม่ก็เข้ามาครองแทนที่นะครับ นี่คือสถานะติดขัด สถานะต่อมานะครับ สถานะพัก เขาบอกสถานะพัก ก็คือาถานะ Process ไม่มีการทำงานใด ๆ เลย ก็คือจบ สมบูรณ์ เช่น ผมไปครอบครองCPU ทำงานเสร็จสิ้นแล้วปุ๊บ ออก จบเลย มาทำงานต่อ ได้พัก จบนะครับ ซึ่ง Process นั้นนะครับ สามารถที่จะเปลี่ยนสถานะหนึ่ง ไปสถานะหนึ่งได้ตลอดเวลา นะครับ ขึ้นอยู่ว่า ณ ตรงนั้นอยู่ในสถานะอะไร อาจจะพร้อม พร้อมเสร็จ เข้าไป Run Run เสร็จปุ๊บ ต้องไปติดต่ออุปกรณ์รอบข้าง เป็นสถานะติดขัด พอติดขัดเสร็จกลับไปพร้อมใหม่ พร้อมเสร็จ เข้าไป Run Runเสร็จแล้ว จบแล้วไปพักนะครับ มันจะเปลี่ยนไปอย่างนี้ตลอดเวลานะครับ อันนี้อาจารย์อธิบายไปแล้วนะครับ สไลด์เมื่อกี้ครับ ลองดูรูปนะครับ เห็นไหมครับ ในรูปภาพอธิบาย การเปลี่ยนสถานะของ Process ใช่ไหม เหมือนที่อาจายร์อธิบายไปเมื่อกี้ ยืนต่อคิวเลย 1 2 3 4 5 พร้อมไหม พร้อม พอพร้อมเสร็จ ได้เวลา เข้าไป Run โอเค Runทีละตัว ทีละโปรแกรม ทีละ Processe ถ้ามีอะไรเกิดขึ้น จบครับ พักเลย นี่คือการเปลี่ยนสถานะของ Process แต่ถ้าเกิดเหตุการณ์ใดเหตุการณ์หนึ่งขึ้นนะครับ เพราะอะไรครับ รูปนี้ รูปนี้ มาพร้อม มา Run แล้วก็จบ ถ้าสมมติว่าProcess แต่ละตัวเข้าไป Run ใช้เวลาไม่เท่ากัน จะเกิดอะไรขึ้นนะ เช่นProcess A เช่น ผม พร้อม เข้าไป Run 2 วินาที แล้วก็จบ มีอะไรเกินขึ้นไหม ไม่มี คราวนี้อุบล อุบลมาต่อคิว มาพร้อม อุบลเข้าไป Run ปุ๊บ อุบลบอกผมใช้เวลา 3 ชั่วโมง เป็นอย่างไรครับ เราก็จบใช่ไหม คราวนี้ มิ่ง 3 คนที่ 3 มา ต่อคิวพร้อม แต่ปรากฏว่ามิ่งต้องการใช้เวลาแค่1 วินาที แตต้องรออุบล 3 ชั่วโมง ถึงค่อยจบ นึกออกไหม นึกภาพตามนะดังนั้น ในระบบคอมพิวเตอร์ของเรานั้น มันจะต้องไม่ให้เกิดเหตุการณ์นี้เกิดขึ้น มันจึงต้องกำหนดเวลาขึ้นมา คุณจะต้องเข้าไปเวลานี้แล้วจบนะ เราเรียกเวลานี้ว่า "เวลาควอนตัม" ถ้าย้อนถามกลับว่าเวลาควอนตัมคืออะไร คืออะไรครับ คือ เวลาที่ถูกกำหนดไว่ว่า Process แต่ละตัวสามารถเข้าไปครอบครองCPU ได้เป็นเวลาเท่าไหร่ หรือนานเท่าไหร่ เช่น เรากำหนดเวลา ควอนตัม 5 วินาที สมมตินะ 5 วินาที แสดงว่าProcess ทุกตัวจะสามารถเข้าไปครอบครองได้ 5 วินาที เช่น เมื่อกี้อย่างเมื่อกี้ ผม Process A เข้าไป3 วิ (นาที) จบไหม จบ เพราะว่าเราให้ 5 วินาทีใช่ไหม ควอนตัม อุบลก็จะเข้าไปได้แค่ 5 วิฯ แล้วอุบลต้องย้อนกลับไปพร้อมใหม่ เพิ่มให้มิ่งเข้าไปใหม่นี่คือหลักการของมันนะครับ มันก็จะเกิดรูปนี้ขึ้น ใช่ไหมนี่นะครับ พร้อม พออเราเอาเวลาควอนตัมมาจับ เข้าไป Run ได้แค่ 5 วิฯ นะ ถ้าเกินนั้นกลับไปพร้อมใหม่ มันเลยทำให้เกิดระบบหลายโปแกรมนะครับ แต่เวลาเราทำงานกับคอมพิวเตอร์ มันเป็นอย่างไรครับ แต่ในความรู้สึกเราเป็นอย่างไรครับ มันทำงานด้วยความเร็วสูง มันเลยเหมือนประหนึ่งว่าอย่างนี้จริงหรือ ใช่ไหม เราหายใจแทบไม่ทัน เวลาประมวลผล สมัยที่อาจารย์เรียนเขียนโปรแกรมนะครับ เมื่อเกือบ 30 ปีที่แล้วนะ เวลาเรา Run โปรแกรม เราจะกด Escape ยกเลิกทันนะ กด F8 F9 ปุ๊บ นึกได้ผ่านไป 2 นาทีไม่ถูกกดยกเลิกแต่โปรแกรมเราทุกวันนี้ เราคลิกปุ๊บ ประมวลผลปั๊บมันมีความเร็วสูงนะครับ ตามรูปนี้นะครับ พยายามมองตามนะ พยายามมองตาม เพราะว่าเราจะเรียนอีก 3 ครั้ง แล้วก็จะสอบกลางภาคนะครับ สอบกลางภาค พอสอบกลางภาคเสร็จ อาจารย์ก็จะยกคลาสไปอยู่อาคาร 7 เพื่อเรียนภาคปฏิบัติ นะครับ ภาคปฏิบัติเราก็จะเรียนแค่สัปดาห์ละ 8 คน เราจะไม่เรียนทั้งห้องแบบนี้นะครับ คราวนี้มาดูอีกสถานะหนึ่งนะครับ ที่เราพูดไว้ ก็คือสถานะติดขัด เห็นไหมครับ ดูรูป มาพร้อม เห็นไหม พร้อมปุ๊บ มา Run เข้าไปRun จะหมดเวลาควอนตัม หรือไม่หมดก็แล้วแต่ แต่บังเอิญว่า Process นั้นไปติดต่อกับอุปกรณ์รอบข้าง ติดต่อกับ Printer ช่วงที่ติดต่อพรินเตอร์ไม่ได้ทำงาน ก็จะถูกผลักออกมาเป็นสถานะติดขัด พอติดขัดเสร็จ ก็จะย้อนกลับไปพร้อมใหม่นะครับ นี่คือสถานะติดขัด เขาบอกว่าการเปลี่ยนทั้ง 3 ของ Process ก็คือ พร้อม Run ติดขัด เป็นการเปลี่ยนในสภาพทั่วไปนะครับ พร้อม Run ติดขัด อย่างนี้ แต่ถ้าเกิดเหตุการณ์ที่ผิดปกติขึ้นในระบบปฏิบัติการ หรือระบบคอมพิวเตอร์เรา ระบบปฏิบัติการอาจจะย้าย Process ใด สถานะหนึ่ง ให้ไปอยู่สถานะพักก็ได้ เพราะสถานะพักเราบอกว่ามันหยุดนิ่งเลย มันหยุดนิ่งเลย ไม่ทำงานต่อแล้ว ก็คือเข้าไป Run แล้วก็จบใช่ไหม แต่ถ้าเกิดเหตการณ์ขึ้น จากสถานะพร้อม Run ติดขัด ไปพักก็ได้นะครับ ซึ่งจะเกิดขึ้นได้ก็ด้วยสาเหตุดังต่อไปนี้นะครับ 1. เกิดการทำงานของระบบผิดพลาด เช่นสั่ง ๆ ไป ปรากฏว่าระบบ Error ผิดพลาด ไปกดสตางค์ 1 บาท ออกมา 10,000 บาท ดีไหมโทมัส ดีไหม เอาไหม อย่าไปเอานะลูก เขาจับเจ้าเด้ ต้องไปแจ้งธนาคารนะครับ นี่คือระบบผิดพลาด มันก็จะย้ายทุกอย่างไปสถานะพัก จนกว่าเหตุการณ์ปกติ เริ่มต้นใหม่นะครับ สาเหตุอันที่ 2 นะครับ ที่จะเกิดสถานะพักนะครับ ผู้ใช้ต้องการหยุดการทำงานชั่วคราว ทำ ๆ อยู่ เราสั่งหยุดอย่างนี้ มันก็จะไปอยู่สถานะพัก เช่น Run อยู่กดยกเลิก สาเหตุอันที่ 3 นะครับ ในระบบมีงานมากเกินไป สั่งเข้าไป สั่งเข้าไป สั่งเข้าไป Over load Hank Error ก็ย้ายไปสถานะพักนะครับ นี่คือสาเหตุหลัก ๆ 3 สาเหตุ ทำให้การเปลี่ยนสถานะ จากสถานะพร้อม Run ติดขัด ไปอยู่ในสถานะพร้อท เห็นไหมครับ รูปจากรูปนะครับ พร้อมRun ติดขัดแต่ถ้าเกิดสาเหตุจากเมื่อกี้ ระบบเกิดทำงานผิดพลาด ผู้ใช้สั่งหยุดเอง ระบบทำงานมากเกินไป ปุ๊บ มาพักเลยนะครับ ดังนั้นนะครับ เราก็สามารถแยกสถานะของ Process เป็น 2 ส่วน ก็คือส่วนที่ 1 พร้อม Run ติดขัด ใช่ไหม ส่วนที่ 2 คือ พักนะครับ คราวนี้มาดูลำดับชั้นของ Process นะครับ Process ก็มีลำดับชั้นนะครับ เขาบอกว่าระบบปฏิบัติการ หรือ OS นะครับ ผมใช้คำย่อว่า OS เขาบอกว่า OS เอง ก็ประกอบด้วย หลาย ๆ Process ถ้าหลายคนสับสน ถ้าอาจาย์ครับ Process เราจะเรียกว่าโปรแกรมได้ไหม ได้ไหม ได้ไหมครับ บางคนไม่รู้เหมือนกัน เขาบอกว่า OS เอง ก็ประกอบไปด้วยหลายProcess 1 2 3 เยอะแยะมากมาย เมื่อผู้ใช้สั่งงาน เอาสีอะไรดี พื้นสีดำไปไม่เป็นเลยนะครับ ไม่เป็นอะไร ดูต่อ เขาบอกว่าเมื่อ Process ประกอบด้วย หลายขั้นตอนนั้นนะครับ เมื่อผู้ใช้สั่งงานหรือให้โปรแกรม RunOS หรือระบบปฏิบัติการจะ สร้าง Process สำหรับงานนั้นขึ้นมานะครับ ซึ่ง Process สำหรับผู้ใช้นี่นะครับ เป็น Process ย่อยของนึกออกไหม เขาบอกว่า Process เองก็มีเยอะแยะมากมาย ของมันนะครับ ซึ่งเราสำหรับผู้ใช้สั่งงานปุ๊บ เช่น อุบลบอกอุบลต้องการเข้าไปครอบครอง CPU ระบบปฏิบัติการก็จะสร้าง Process หนึ่ง เข้ามาในระบบปฏิบัติการ สำหรับงานนะครับ นั่นแสดงว่าProcess ของอุบลนั้น ก็เป็น Process ย่อยของระบบปฏิบัติการ นึกออกไหมครับ นึกตามนะ นะครับ ซึ่ง Process OS ก็จะมีคุณสมาบัติเหมือน Process อื่น ๆ ทั่วไปนะครับ เขาว่าดังนั้น Process อื่น ๆ สามารถมี Process ย่อย ๆ ไปอีกเรื่อย ๆ ได้นะครับ เขาเรียกว่า "การให้กำเนิด" นึกออกไหม ตัวอย่างเช่นนะครับ อุบลต้องการเข้าไปครอบครอง CPU อุบลเป็น Process หนึ่งแล้ว ตัวอาจารย์เองเป็น OS เป็นระบบปฏิบัติการ เมื่ออุบลจะเข้าไปครอบครอง CPU หรือเข้าไปสถานะ Run เข้าไปสถานะ Run จะถูกผม OS ตั้ง Process หนึ่งขึ้นมา เพื่อไปกำกับดูแลอุบล นะครับ นี่เราเรียกว่า "การให้กำเนิด" แต่พออุบลเข้าไปครอบครอง CPU แล้ว เข้าไปสถานะ Run แล้ว อุบลก็จะมี Process ย่อยต่อไปอีก นึกออกไหม ซึ่งไม่รู้ว่ามีอะไรบ้าง เราไม่รู้ ซึ่งตัวของ Process ย่อย ที่เราเรียกว่า "การให้กำเนิด" นั้น เราจะเรียกว่า "Process พ่อ" นะครับ ส่วน Process ย่อยที่สร้างต่อจาก Processผู้ให้กำเนิด เราเรียกว่า Process ล^เป็นลำดับชั้นนะครับ เป็นลักษณะแบบโครงสร้างแบบต้นไม้ ดูรูปนี้เห็นไหมครับ นี่คือลำดับชั้นของ Process นะครับ นี่คือลำดับย่อของ Porcess หัวข้อต่อมานะครับ ความสัมพันธ์ระหว่าง Process เราไม่พักเลยนะ พี่ล่ามคนเดียวนะครับ ขอพัก 5 นาทีนะครับ ขอพัก 5 นาที พี่ล่ามจะได้ไป ทานน้ำ แล้วก็เข้าห้องน้ำนะครับ พักก่อน 5 นาทีนะครับ เดี๋ยวเราต่ออีกประมาณ 15 สไลด์นะครับ (อาจารย์พิเชนทร์) ดูต่อนะครับ ความสัมพันธ์ระหว่าง Process นะครับ การทำงานของระบบคอมพิวเตอร์นั้นนะครับ จะประกอบไปด้วย Process ต่าง ๆ นะครับ ทั้งของระบบและของผู้ใช้นะครับ เมื่อมันมี Process มากมายทำงานพร้อม ๆ กันนะครับ ต้องมีกาาจัดการขึ้นนะครับ นอกจากการจัดการแล้ว เราก็ต้องมีการติต่อระหว่างกัน เหมือนเรา เราอยู่ในห้องเรานะครับ เราจะต้องมีการติดต่อสัมพันธ์กันนะครับ คราวนี้เรามาดูหัวข้อความสัมพันธ์ระหว่าง Process นะครับ การติดต่อระหว่าง Process นั่นหมายความว่า Process หนึ่ง อาจต้องการใช้ข้อมูลของอีก Process หนึ่ง จึงต้องทำไมครับ ต้องมีการส่งข้อมูลหรือต้องการติดต่อกัน ระหว่าง Process นะครับ ซึ่งการติดต่อกันระหว่าง Process นั้นนะครับ ก็มีหลายวิธี มาดูวิธีที่ 1 นะครับ ติดต่อกันโดยใช้หน่วยความจำร่วมนะครับ หมายความว่า เมื่อ Process หนึ่ง ต้องการหรือส่งข้อมูลไปให้อีก Process หนึ่ง มันจะส่งข้อมูลผ่านหน่วยความจำร่วม ฟังก่อนนะครับ ฟังก่อนนะครับ อย่าเพิ่งคุยกันครับ จะจบแล้ว อีกแค่ 10 สไลด์นะครับ ฟังหรือเปล่าครับ นี่ ฟังหรือเปล่า บอกเงียบก่อนนะครับ ฟังก่อน อย่าเพิ่งคุยกันเสียงดังนะครับ เดี๋ยวมันจะไม่เข้าใจนะครับ เวลาสอบ เรามัวแต่ลอกในหน้าจอนี่ บางทีมันพอเวลาไปสอบนะครับ มันจะตอบไม่ได้นะครับ เดี๋ยวสอบกลางภาคก็จะรู้คะแนนตัวเองว่าเป็นอย่างไร ผมบอกแล้วนะครับ ว่าข้อสอบผมนั้นมีทั้งหมด 8 ชุดนะครับ ผมให้นั่งสอบแบบติดกันเลยนะครับ ข้อสอบคนละชุดนะครับ ถ้าเราไม่เข้าใจ เราจะไม่สามารถเขียนอธิบายได้ ดูนะครับ ความสัมพันธ์อันที่ 1 ก็คือเวลามันติดต่อหากัน มันจะใช้หน่วยความจำร่วมกัน ดูรูปข้างล่างเลยนะครับ Process A ต้องการส่งข้อมูลไปให้ Process B มันทำกันอย่างไรนะครับ วิธีการ ก็คือ Process Aส่งไปแล้ว จัดส่งไปที่หน่วยความจำนะครับ ส่งไปที่หน่วยความจำ เมื่อ Process B ต้องการจะไปรับข้อมูลจาก Process A มันก็จะไปรับที่หน่วยความจำนะครับ ซึ่งหน่วยความจำก็จะมี Address อยู่ แล้วเราจะรู้ได้อย่างไรครับ Process A ส่งอะไร มาให้เช็กจากอะไรครับ เช็กจากชื่อ จาก ID ใช่ไหม เพราะว่าชื่อของ Process แต่ละตัวก็จะมีรหัสด้วยนะครับ เห็นไหมครับ Process A นี่ มันจะส่งข้อมูลมานะครับ เราส่งไปให้หน่วยความจำร่วม Process A ก็ไปรับที่หน่วยความจำนะครับ การติดต่อกันระหว่างหน่วยความจำนะครับ นอกจากการใช้หน่วยควาามจำร่วม ในการติดต่อระหว่าง Process นะครับ ก็ยังมีวิธีการที่สะดวกกว่านะครับ แล้วก็นิยมใช้เป็นมาตราฐานนะครับ นั่นก็คือการใช้ช่องทางข้อมูล หรือเรียกง่าย ๆ ว่า พอร์ตนะครับ ติดต่อผ่านพอร์ต รู้จักพอร์ตนะ USB Port parareal ต่อสายเข้าไปในเครื่องคอมพิวเตอร์ เรานะครับ อันนี้ง่ายกว่านะครับ สะดวกกว่า เช่น เราต้องการส่งข้อมูลจากเครื่องของคนหนึ่ง ไปเครื่องอีกคนหนึ่ง ผ่านอะไร ผ่านพอร์ตนะครับ คราวนี้วิธี่การส่งข้อมูล ทั้งผ่านหน่วยความจำร่วมแล้วก็ผ่านพอร์ตนั้นนะครับ ในเรื่องของโครงสร้างของพอร์ตก็มีหลายแบบนะครับ จะส่งแบบไหนนะครับ อันที่ 1 นะครับ โครสร้างของ Port แบบที่ 1 ก็คือแบบคิว นะครับ โครงสร้างแบบนี้ ก็คือข้อมูลจะถูกดึงออกมาจากพอร์ตตามลำดับก่อน-หลัง ข้อมูลไหนส่งเข้ามาก่อนก็จะออกไปก่อน ก็คือแบบคิวเป็นคิว นะครับ เช่น ผมเข้าไปก่อนอุบล ผมก็ออกก่อนอุบลนะครับ นี่คือโครงสร้างข้อมูลแบบพอร์ต ง่าย ๆ ครับ เข้าก่อน ออกก่อนนะครับ โครงสร้างพอร์ตแบบที่ 2 ก็คือโครงสร้างแบบ Pyte รูปข้างล่างใช่ไหม แบบ prite แบบมีการทำงานแบบคิว คือเข้าก่อนออกก่อน แต่มีข้อแตกต่างกับแบบคิวที่ว่าถ้าเป็นพอร์ตแบบไปป์ จะมีความยาวของ Port ไม่จำกัด ถ้าเป็นแบบคิวจะจำกัด เช่น พอร์ตแบบคิวบอกว่ามีขนาดของพอร์ต ความยาว10 ช่อง สมมตินะ ก็แสดงว่าเข้าไปได้แค่ 10 คิวนะครับ แต่ถ้าพอร์ตแบบไปป์ โครงสร้างเหมือนพอร์ตแบบคิวก็จริง เข้าก่อนออกก่อน แต่จะมีความยาวของ Port นี่คือโครงสร้างแบบไปป์นะครับ โครงสร้าง Port แบบที่ 3 ก็คือStack นะครับ เป็นอย่างไรครับ แบบ Stack Stack คือ โครงสร้างที่ตรงข้ามกับแบบคิวเลยครับ ก็คือข้อมูลชุดใดที่ถูกส่งออกมาก่อน จะถูกดึงออกทีหลัง คือ เข้าก่อนออกทีหลังนะครับ นี่คือโครงสร้างแบบStack นะครับ นี่คือโครงสร้างของพอร์ตทั้ง 3 แบบนะครับ คราวนี้มาดูปัญหาของ Process นะครับ เมื่อมีการทำงานมากกว่า 1 Process ขึ้นไปนะครับ มันย่อมทำให้เกิดปัญหาเกิดขึ้นในการใช้งาน เมื่อมีโปรแกรมทำงานในระบบคอมพิวเตอร์เรา ปัญหาก็ไม่เกิดขึ้นนะครับ เมื่อมีหลาย ๆ โปรแกรมทำงานอยู่บนระบบเดียวกัน มีการใช้ทรัพยากร แย่งกันใช้ มันย่อมเกิดปัญหาขึ้นนะครับ ดังนั้น มันจะต้องมีการจัดสรรการใช้ Process ขึ้นนะครับ ถึงอย่างไรก็ตาม ที่เราจะกล่าวต่อไปนี้ มันจะต้องไม่เกิดขึ้นกับระบบของเรานะครับ ดังนั้น คนที่ออกแบบระบบปฏิบัติการจะต้องแก้ปัญหาดังต่อไปนี้ให้ได้ เวลาเราเขียนโปรแกรม เราจะต้องเลี่ยงปัญหาเหล่านี้ให้ได้นะครับ ปัญหาการทำงานของ Process อันดับแรกเลยนะครับ ก็คือปัญหาการตัดตอน นะครับ ปัญหาเกิดจากอะไรครับ เกิดจากการที่ Process หนึ่ง ต้องการใช้ทรัพยากรของ Process แต่ปรากฏว่า Process นั้น มีลำดับความสำคัญน้อยกว่า จึงยอมปลดปล่อย Process ที่มีระดับความสำคัญมากกว่าเข้าไปครอบครองตัว CPU แทนตัวมันเอง นึกออกใช่ไหมครับ ก็คือ Process หนึ่ง อย่างเช่น ผมกำลังจะเข้าไปครอบครองCPU แต่ปรากฏว่าอุบลเข้ามาต่อคิวผม บังเอิญว่าลำดับความสำคัญอุบลสำคัญมากกว่าผม ผมยอมให้อุบลเข้าไปแทนผม นี่เกิดการตัดตอนขึ้น ให้เป็นวิชาการ อธิบายว่าเกิดจาการที่ Process ใด Process หนึ่ง ที่จะเข้าไปครอบครอง CPU หรือเข้าไปในสถานะ Run นั้น ยอมให้ Process ที่มีลำดับความสำคัญมากกว่าเข้าไปแทนที่มัน มันก็จะเกิดการตัดตอนขึ้นนะครับ ซึ่งปัญหาตัวนี้นะครับ คนที่ออกแบบระบบปฏิบัติการจะต้องไม่ให้เกิดขึ้นนะครับ ปัญหาต่อมานะครับ นอกจากปัญหาการตัดตอนแล้ว ปัญหาต่อมา ก็คือปัญหาการอดตาย หรือปัญหาการเลื่อนไปอย่างไม่มีสิ้นสุด หมายความว่าเมื่อเกิดการตัดตอนขึ้น Process หนึ่ง ปล่อยให้ Process อีก Process หนึ่ง ที่มีความสำคัญมากกว่า เข้าไปครอบคลอง CPU มัน แล้วแทนไปเรื่อย ๆ นี่เราเรียกว่า "การอดตาย" เช่น ตัวอย่างเมื่อกี้ผมจะเข้าไปครอบครอง CPU แต่บังเอิญว่าอุบลมาต่อคิว อุบลมีลำดับความสำคัญมากกว่า อุบลเข้าไปแทนที่ พออุบลเสร็จแล้ว ผมจะเข้าไปต่อ แต่ปรากฏว่าแม็กกี้มาต่อ แล้วแม็กกี้มีความสำคัญมากกว่าผม ก็เข้าไปแทนที่อีก พอแม็กกี้ออกมา ผมจะเข้าไปต่อ ปรากฏว่ามิ่งมาต่อ แล้วมิ่งมีความสำคัญมากกว่า มิ่งก็ก็คือรอไปไม่มีวันสิ้นสุด รอไปเรื่อย ๆ ไม่มีวันสิ้นสุดนะครับ ถ้าเป็นสมัยก่อนนะครับ ผมก็จะยกตัวอย่างให้พวกเราเห็นภาพชัดเจน สมมติว่าที่อาคาร 7 เรานะครับ สร้างห้องน้ำมาใหม่ ห้องน้ำเปรียบเสมือน CPU สมมตินะ ผมจะเข้าเป็นคนแรก กำลังจะเปิดประตูเข้าไปห้องน้ำ ปรากฏว่าอุบล ไม่ใช่อุบล อธิการ (บดี) สะกิดหลัง พิเชนทร์ ๆ ผมขออนุญาตเข้าก่อน ผมมองไปข้างหลัง อธิการฯ ใหญ่กว่าผม นี่เกิดการตัดตอน แต่พออธิการฯ เข้าไปเสร็จปุ๊บ ปรากฏว่ามีคนสะกิดหลังอีกแล้ว ผู้ว่า (ราชการ)สะกิดหลัง เป็นอย่างไรครับ ผู้ว่าฯ เข้าไป นายอำเภอสะกิดหลัง ผู้ว่าสะกิดหลัง เกิดการต้องตัดตอน พอตัดตอนเสร็จปุ๊บไม่มีโอกาสได้เข้า ก็เลยเป็นอดตายนะครับ นี่คือปัญหาหาที่ 2 ของเรานะครับ ปัญหาที่ 3 เขาบอกว่าทำไมถึงให้เกิดการตัดตอนไม่ได้ หรือการอดตายไม่ได้ มันจะเกิดปัญหาขึ้น ถ้าทรัพยากรบางประเภท ถ้าเราปล่อยให้เกิดการตัดตอน จะเกิดปัญหาขึ้น เช่น เครื่องพิมพ์ ให้เรามองถึงเครื่องพิมพ์ที่เป็นหัวเข็ม เคยเห็นไหม มันจะดังแกร๊ก มันจะพรินต์ทีละบรรทัด เคยเห็นไหมครับ เครื่องพิมพ์แบบหัวเข็ม เหมือนเราไปซื้อของตามเซเว่นอะไรอย่างนี้ หรือเราไปจ่ายค่าเทอม มันจะพรินต์เป็นหัวเข็มออกมา ถ้าเราปล่อยให้เกิดการตัดตอนขึ้น เช่น ผมสั่งพรินต์ไปได้ 2 บรรทัด สั่งมา อุบลบอกว่าอุบลมีความสำคัญมากกว่า แล้วเกิดการตัดตอน บรรทัดที่ 3 จะกลายเป็นของอุบล ดังนั้น ห้ามให้มีเหตุการณ์นี้เกิดขึ้นนะครับ เพราะทรัพยากรบางอย่างให้เกิดขึ้นไม่ได้นะครับ ปัญหาต่อมานะครับ ปัญหาการติดตาย ดูรูปประกอบเลยนะครับ ปัญหาการติดตายคืออะไรครับ ดูรูปเลย เมื่อ Processใดก็แล้วแต่ ครอบครองทรัพยากรของตัวเองอยู่ แล้วในขณะเดียวกัน ต้องการไปครอบครองทรัพยากรของเรา แต่ไม่ยอมให้ Process อื่น เข้ามาครอบครองทรัพยากรของตัวเอง เหมือนกันนะครับ เช่น ผมบอกอุบล อาจารย์ยืมสตางค์ของอุบลหน่อย 1 ร้อยล้าน อุบลก็บอกเหมือนกัน อาจารย์ ผมก็ยืมตังอาจารย์หน่อย 2 ร้อยล้าน แต่อุบลก็ไม่ควักให้ผมนะ ผมก็ไม่ควักให้อุบล เพราะเราก็ไม่มีทั้งคู่นะ คือ อยากได้สตางค์อุบล อุบลไม่ควักให้ นี่คือลักษณะการปิดตาย ก็คือ Process ใด Process หนึ่งนี่ ครอบครองทรัพยากรตัวเองอยู่ แต่อยากไปได้ทรัพยากรของคนอื่น แต่ตัวเองก็ไม่ยอมให้ทรัพยากรของตัวเองนะครับ นี่คือลักษณะการติดตายหรือ Dead Rock นะครับ เขาบอกว่าปัญหาการติดตายนั้น ไม่จำเป็นต้องเกิดจาก 2 Process อาจจะเกิดจากหลาย Process ก็ได้นะครับ มากกว่า 2 Process แต่ต้องมีเงื่อนไขดังนี้ เช่น 1. การครอบครองเป็นแบบตัดตอนไม่ได้ อันนี้ก็ตัดตอนไม่ได้นะ Process A ก็ไม่ได้ Process B ก็ไม่ได้ Process C ก็ไม่ได้ ไม่ไป ไม่มา นะครับ เงื่อนไขแบบที่ 2 การครอบครองเป็นแบบไม่เกิดร่วม ต่างคนต่างทำงาน ต่างคนต่างอยู่คนละส่วน ติดตายขึ้นนะครับ เงื่อนไขที่ 3 คือในการรอใช้ทรัพยากร เป็นการรอแบบวนรอบ หรือวนรอบ หรือภาษาเขีียนโปรแกรม เราเรียกว่า "วนลูป" หรือ "วนรอบ" ก็จะเกิดปัญหาการปิดตายขึ้นนะครับ นี่คือปัญหา 3 ปัญหาที่เกิดขึ้นในระบบเรา แต่เวลาเราออกแบบ OS ก็เกิดขึ้น หัวข้อสุดท้ายนะครับ ของบทนี้นะครับ เธรดนะครับ เขาบอกในระบบปฏิการยังใช้แบบนี้อยู่ บางตัวซึ่งเราใช้แล้วนะครับ เราใช้แบบนี้อยู่นะครับ ถ้าเป็นสมัยก่อนยังไม่เกิดระบบนะครับ เธรด ก็คือเป็นการที่ระบบปฏิบัติการแบ่งย่อย Processing ออกมาเป็นส่วน ๆ ดูรูปประกอบเลยนะครับ นี่... ทำไมไม่ขึ้น ขวามือผมนะครับ Process A กับ Process B Process A โค้ดโปรแกรม แล้วก็ข้อมูลองค์ประกอบอื่น ๆ เขียนโปรแกรมแบบไม่ใช่เธรด แต่พอเทรดปุ๊บ มันจะแบ่งส่วนเทรด 1, 2, 3, 4, 5 เป็นส่วนย่อยนะครับ เราแบ่ง มีประโยชน์อะไร นะครับ มันจะให้ทำงานเร็วขึ้น สามารถทำงานกับหน่วยความจำที่มีขนาดเล็กได้ แก้ไขง่าย นี่คือหลักการเขียนโปรแกรมใน ณ ปัจจุบันนี้นะครับ เดี๋ยวพอเราเขียนโปรแกรม เราเรียนไปสัก ปี 2 ทำไมเราต้องมาเขียนเป็นแบบเทรด โบราณนะครับ เขียนทีเดียว 100 บรรทัด 500 บรรทัด เวลามีปัญหามาปุ๊บ การแก้ไขปัญหานะครับ แก้ไขยากนะครับ นี่คือหลักการของการเขียนโปรแกรม แจ้งพวกเรานะครับ เมื่อกี้ได้พูดไปแล้วนะครับ สัปดาห์หน้านะครับ เราก็จะไปศึกษาดูงานนอกสถานที่นะครับ หมู่ 2 นะครับ หมู่ 2 หมู่ 1 ยังไม่ได้ไปนะครับ เราจะไปศึกษาดูงานที่นครพนม ผมจะพาไปที่บุสบานก่อน ไปดูหมู่บ้านอะไรไม่รู้จำไม่ได้นะครับ พวกทำเกี่ยวกับพื้นเมือง แล้วก็จะพาไปพิพิธภัณฑ์สัตว์น้ำนครพนม ก็สัปดาห์หน้าก็หมู่ 1 ก็ต้องมาเรียน ก็เห็นพี่พลอยประสานไปที่อาจารย์อะไรนะที่เราเรียนน่ะ ตอนเช้าน่ะ ก็เรียนด้วยกันใช่ไหม เห็นว่าอาจารย์ว่าคณะมนุษย์ฯ ก็ไหว้ครู แต่ว่าสัปดาห์หน้าเราไม่มีเรียนนะครับ ห้อง 1 นะมีเรียน แต่สัปดาห์หน้าหมู่ 2เราจะไปนอกสถานที่ จะพาไปดูอะไรนะ ไปดูปลาบึก เขาจะป้อนอาหารปลาบึก เอาอุบลไปให้อาหารปลา อุบลนะ ก็ไปทั้งวันนะครับ ก็แจ้งพวกเราไว้ สัปดาห์หน้าก็หยุด นะครับ สัปดาห์ถัดไปก็เจอกันโน้นเลยครับ นะครับ ก็ตอนนี้เราเปิดเทอมมาได้เดือนหนึ่งนะครับ เป็นอย่างไรครับ ปรับตัวได้ได้แล้วนะ บางคนก็ส่งงานไว้ที่โต๊ะนะครับ เดี๋ยวผมจะส่งคืนให้นะ ผมจะตรวจแล้วส่งคืนให้ ส่งคืนให้ เราเอาเก็บไว้อ่านสอบ แบบฝึกหัดที่ผมให้ทำมีใครอยากจะถามอะไรเพิ่มเติมไหมครับ ครับ ถ้าไม่มีก็... Process พ่อเกิดอย่างไร Process พ่อเกิดขึ้นจากิ การที่เมื่อเวลาใดเวลาหนึ่ง เช่น เรา... สมมตินะ ๆ ผมเป็น Process ผมต้องการจะจะเข้าไปครอบครอง CPU ตัวของระบบปฏิบัติการจะสร้างProcess หนึ่งขึ้นมา เพื่อมากำกับผมไป จะพาเข้าไปครอบครอง CPU นะ นี่เป็นการให้กำเนิด เป็นการให้กำเนิด เพื่อพา Process เข้าไป ตรงนี้เรียกว่า "Process พ่อ" นะครับ นี่คือหลักการของมัน นะครับ ครับ ก็ต้องขอบคุณพี่ล่ามมากนะครับ ที่ได้ให้การอนุเคราะห์เรามาอีก 1 สัปดาห์ สัปดาห์หน้าเราไม่ได้เจอกันนะครับ พี่ล่าม สัปดาห์หน้าจะพาน้อง ๆ ไปนอกสถานที่ ก็ ถ้าไม่มีใครถามอะไรแล้วนะครับ ก็เจอกันสัปดาห์หน้านะครับ ไปดูงานนอกสถานที่กัน โอเคครับผม ไป [สิ้นสุดการถอดความ]