(อาจารย์พิเชนทร์) วันนี้เราจะพูดถึงหัวข้อของการจัดการ Process นะครับ เราเคยได้ยินไหม Process ครับ ถามหมู่ 1 เคยได้ยินไหมครับ คำนี้เรียนตั้งแต่มัธยม 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 ประมวลผล Process ใช่ไหมแล้วก็ออกไป Output นี่คือหลักการของมัน เขาบอกว่า Process คือโปรแกรมกำลังถูก Execute นั่นหมายความว่า... บางคนให้ความหมายว่าเป็นโปรแกรมที่เข้าไปครอบครอง CPU หรือเข้าไปใช้งาน CPU แล้วแต่เอกสารตำราแต่ละคนแต่งนะครับ คือ หลักการก็คือ โปรแกรมที่กำลังถูก Execute ในคอมพิวเตอร์เรา มันจะมีไฟล์อยู่ไฟล์หนึ่ง เป็นนามสกุล ไฟล์ทุกไฟล์ต้องมีนามสกุลดูรายละเอียดต่อไปนะครับ ก็คือนามสกุลที่ .exe เคยเห็นไหมเคยสังเกตไหมเวลาเราใช้หรือไม่รู้เปิดขึ้นมาใช้แล้วก็ปิดนะครับ เราอย่าไปดูในสไลด์อาจารย์มากนะ อาจารย์ก็พูดไปเรื่อยนะครับ มันไม่ได้อยู่ในนี้หรอก คราวนี้ถ้า Process ถ้าโปรแกรมเดียว โปรแกรม...ทำงานปุ๊บเป็นอย่างไรครับ ยุ่งยากไหม Input เสร็จ เข้าไปประมลผลเสร็จเข้าไปประมวลผลเสร็จ แสดงออก ถ้าโปรแกรมเดียวไม่มีปัญหานะครับ แต่ถ้าเมื่อไรก็ตามที่มีหลาย ๆ โปรแกรมทำงานพร้อมกัน ที่เขาบอกว่าเป็นระบบหลายโปรแกรมเขาบอก Process อาจเปรียบได้กับรถยนต์ คือ มีรถยนต์หลายคันและตัวของ CPU เอง ก็เปรียบเหมือนคนขับเหมือนกับว่า คอมพิวเตอร์เรามี CPU อยู่แค่ตัวเดียว แต่มีคนต้องการใช้งานเยอะ โปรแกรมเยอะ ต้องทำอย่างไรครับ วิธีการมัน ถ้าเป็นเรา เราทำอย่างไรครับ เช่น มีรถอยู่ 5 คันมีคนขับอยู่คนเดียว ทำอย่างไรจึงจะขับเข้าไปในเมืองพร้อมกันได้ พร้อมกันได้ลากรถ 4 คัน คนอื่นล่ะคนอื่นล่ะทำอย่างไรคนอื่นมีวิธีการอื่นไหมครับ หลักการคอมพิวเตอร์เวลาทำงานใช่ไหม โปรแกรมจะเข้าไปทำงาน เข้าไปครอบ CPU ได้ที่ละ 1 โปรแกรม ก็เหมือนคนเรานี่ขับรถ ขับได้ทีละคันจะลากจะพ่วงเหมือนเราว่าไม่ได้ตามหลักการนะ ทำไม่ได้ หลักการทำไม่ได้ทำอย่างไรดีล่ะ วิธีการก็คือขึ้นไปขับคันที่ 1 จากราชภัฏสกลนครแล้วไปจอดกลับมาขับครั้งที่ 2 ก็มา... คันที่ 3 คันที่ 4 คันที่ 5 นะครับ พอถึงขับไปใหม่ขับไปถึงหน้าประตูเมือง ย้อนไปที่ 2 3 4 5 อย่างนี้นะครับ แต่เวลาทำงานจริงเป็นอย่างไรครับ คอมพิวเตอร์ทำงานด้วยความเร็วสูงไหม หายใจทันไหมครับ ทันไหม ไม่น่าทันนะ การทำงานจริง ๆ มันจะทำงานเหมือนที่อาจารย์ยกตัวอย่างเมื่อกี้ ไปทีละคัน ๆ แต่พอมาทำงานจริงมันทำงานได้ความเร็วสูง มันเลยเหมือนประหนึ่งว่ามันไปพร้อม ๆ กันเลยนะครับ นี่คือหลักการทำงานของคอมพิวเตอร์ จะอย่างยกตัวอย่างนี้ ระบบหลายโปรแกรมก็เหมือนเป็น CPU เป็นคนขับโปรแกรมหลาย ๆ โปรแกรม เหมือนรถนะครับ ทำอย่างไรให้ไปด้วยความเร็วสูงคราวนี้มาดูองค์ประกอบของ Process นะครับ Process มีองค์ประกอบอะไรบ้าง พอเรียนจบบทนี้นะครับ นักศึกษาก็จะงงเริ่มงงนะ มันเริ่มเหมือนบทที่ 1 ใช่ไหม บทที่ 1 พื้นฐานนะครับ งงไม่ต้องตกใจครับ ค่อย ๆ ปรับนะครับ เราเพิ่งเข้าเรียนปี 1 นะครับ ปรับสภาพแวดล้อม ปรับสภาพหลาย ๆ อย่างนะครับ แล้วตอนนี้ห้องแล็ปเราก็ยังใช้ไม่ได้ใช่ไหมอาจารย์เข้าแจ้งหรือยังว่าใช้ได้เมื่อไร อาคาร 7 เราไม่แจ้งเพราะว่าเราไม่รู้ว่าจะใช้ได้เมื่อไรผมแวะไปเมื่อวานก็ไม่มีทีท่าว่าจะได้ใช้เลยนะคนทำก็นั่งทำง็อกแง็ก ๆ อยู่คน 2 คนเทอมนี้ผมว่าไม่น่าทันนะ น่าจะได้ใช้เทอมหน้านะครับ เทอมหน้าก็เราได้เครื่องใหม่มาเทอมหน้าก็ได้ใช้ ก็เป็นรุ่นพวกเราได้ใช้นะครับ เทอมหน้า องค์ประกอบตัวที่ 1 ของ Process นะครับ ก็คือ 1. Processทุกวตัวจะต้องมีชื่อและหมายเลขประจำตัวนะครับ Process IDนะครับ และจะต้องไม่ซ้ำกันนะครับ เหมือนชื่อ ไฟล์น่ะได้ไหมครับ ชื่อไฟล์นามสกุลไฟล์นะครับ องค์ประกอบ Process อีกตัวหนึ่ง คือ ชื่อและหมายเลขประจำตัวเหมือนหมายเลขบัตรประจำตัวเรานะ เราซ้ำกันได้ไหมครับ ได้ไหม ไม่ได้นะครับ แต่ถ้าถามย้อนกลับว่าชื่อและนามสกุลมีโอกาสซ้ำกันได้ไหม ได้นะครับ เพราะอะไรเช่น อาจจะมีพิเชน จันทร์ปุ่ม เหมือนกันเพราะอะไรครับ เพราะอาจจะมีญาติพี่น้องนามสกุลเหมือนกัน บังเอิญว่าชื่อพิเชนทร์มันเพราะ เลยตั้งเหมือนกันเลข 123 หลักห้ามซ้ำกันองค์ประกอบอันที่ 2 ของ Process ทุก Process มีโค้ดนะครับ เป็นโค้ดนะครับ เป็น code เป็นรหัสคำว่า "โค้ด" ก็คือจะต้อง Execute ได้ทันทีคือภาษาเครื่องแปล้รียบร้อยแล้วนะครับ องค์ประกอบอันที่ 3 ก็คือข้อมูล Data ข้อมูลนะครับ เขาบอกว่าโปรแกรมต้องการหรือจัดการข้อมูลอาจจะเป็นของ Process ใด Process หนึ่งหรืออาจจะใช้ข้อมูลร่วมกันกับ Process ใช้ร่วมกันได้ ตัวอย่างของ Processที่ใช้ข้อมูลร่วมกัน เช่น Process ในระบบฐานข้อมูลนะครับ เช่น ฐานข้อมูลระบบทะเบียนราชภัฏสกลนครอย่างนี้ เช่น เรามารายงานตัวเป็นนักศึกษานะครับ พอเราขึ้นทะเบียนปุ๊บพอเราไปห้องสมุดก็ใช้ฐานข้อมูลเดียวกันในการเงิน ก็ใช้ฐานข้อมูลชุดเดียวกันนะครับ ศูนย์คอมไปกองก็ฐานข้อมูลอันเดียวกันนะครับ โดยใช้ฐานข้อมูลร่วมกันนะครับ องค์ประกอบอันที่ 4 ของ Process ก็คือ Process Control Block นะครับ หรือบล็อกควบคุมโปรแกรมระบบปฎิบัติการจะกำหนดเนื้อที่บางส่วนกำหนดเนื้อที่บางส่วนในหน่วยความจำ ทำเป็น Process Contoln bO หรือ PCB นะครับ กำหนดไว้ทำไมนะครับ ก็คือ 1. กำหนดไว้เป็น Processกำหนดไว้เพื่อเป็นเก็บหมาเลขความสำคัญของ Process อยู่ใน PCB นะครับ ใน Process แต่ละตัวจะมีบล็อกควบคุมโปรแกรมหรือ PCB อยู่นะครับ ซึ่ง PCB นี้ก็จะเก็บสถานะของ Process แล้วก็เก็บลำดับความสำคัญของ Process เอาไว้นะครับ นอกจากนั้นก็ยังเก็บสารสนเทศที่เกี่ยวกับการจัดการหน่วยความจำของ Process ข้อมูลรับส่งข้อมูลของ Process หรือเก็บข้ามูลสำคัญของ Pro ใน PCB นั่นเองนะครับ พื้นที่จัดเก็บ คือ Register นะครับ Register คืออะไร Register ก็คือหน่วยความจำขนาดเล็กที่ในหน่วยความจำ ส่วนในรายละเอียดต่าง ๆ อาจารย์จะพูดในบทที่ 3, 4, 5 นะครับ อันนี้พูดคร่าว ๆ ก่อนให้พวกเรามอภาพกว้าง ๆ ครับผม ดูต่อนะครับ องค์ประกอบต่อมานะครับ ของ Process ก็คือนะครับ หรือ PSW นะครับ Program Status Words นะครับ เป็นตัวควบคุมลับดับของ Exci ของ Processมันจะบอกว่า Process นี้จะเข้าไปครอบครองCPU ลำดับที่เท่าไรนะครับ ต่อมานะครับ คุณสมบัติของ Process นะครับ แต่ละ Process จะมีคุณสมบัติดังต่อไปนี้นะครับ ก็คือ 1. Process ทุกตัวจะมีลำดับความสำคัญต่างกันนะครับ Process ทุก Process จะมีลำดับความสำคัญ เช่นProcess A อาจจะมีความสำคัญมากกว่า Process B หรือ Process ของผู้ดูแลรับอาจจะมีความสำคัญมากกว่าขของ User อย่างนี้ อันที่ 2คุณสมบัติอันที่ 2 อำนาจหน้าที่ Process ทุกตัวจะมีอำนาจหน้าที่ที่ต่างกัน เช่น Process ของผู้ดูแลระบบมีอนาจมากกว่าของ User อย่างนี้เป็นต้นนะครับ หรือคุณสมบัติอื่น ๆ ที่ OS กำหนดอันนี้ขึ้นอยู่กับ OS ครับ เช่น ใช้ Windows 8ใ ช้ Windows 10 ของ Process ก็จะต่างออกไป ยกตัวอย่างเช่นนะครับ Windoes 8 สามารถตั้งชื่อได้ความยาวกี่ตัวอักษรรู้ไหมเคยไหม อาจารย์จะยังไม่บอกว่ากี่ตัวอักษรนะเราสามารตั้งชื่อได้นะนะครับ กับ Windows 11ต่างกันไหม ลองดูนะ ลองดูจะไปลองตอนภาคปฏิบัติ ลองสิว่าเราถ้าเกิดเป็น Window Windows 11 สามารถตั้งชื่อความยาวกี่ตัวนะครับ นี่คือคุณสมบัติที่แต่ละตัวเป็นคนกำหนดนะครับ เมื่อกี้องค์ประกอบของ Process นะครับ คราวนี้องค์ประกอบของ Process นะครับ สไลด์นะครับ อยู่กับพี่พลอยนะพลอยค่อย เอาขึ้นให้น้องนะครัอาจารย์ลืมอัปลงในไลน์กลุ่มนะครับ แวะดูก่อนนะครับ คราวนี้มาดูสถานะของ Process นะครับ Process ก็แบ่งออกเป็นสถานะได้ดังต่อไปนนี้นะครับ สถานะพร้อมเป็นอย่างไรสถานะพร้อมเป็นสถานะพร้อมที่ Processพร้อมที่จะใช้ CPU ทันทีที่OS มอบหมายให้รอแล้ว เหมือนเรารอคิวแล้ว ยืนรอแล้วรอเข้าไปครอบครอง CPU หรือรอเข้าไปใช้งาน CPU เราเรียกว่า "สถานะพร้อม" เช่นเราจะไปเข้าห้องน้ำ ห้องน้ำเป็น CPU แล้วนะครับ เรายืนรอคิวนี่ เราพร้อมแล้ว พร้อมจะเข้าไปใช้งานเราเรียกว่า "สถานะพร้อม" นะครับ สถานะที่ 2 คือสถานะ runRun คืออะไร ครับ สถานะ Run เป็นสถานะ Process กำลังครอบครอง CPU อยู่ ก็คือเข้าไปครอบครอง CPU ที่เราเรียกว่า Run Progarm นี่คือสถานะ Run นะครับ สถานะที่ 3 นะครับ สถานะติดขัดเขาบอกว่าสถานะติดขัดเกิดจากการที่ Process หยุดรอเหตุการณ์ใดเหตุการณ์หนึ่งให้เกิดขึ้นโดย Process ไม่จำเป็นต้องใช้ CPU และมันต้องไปครอบครอง CPU เราไม่รู้เหตุการณ์นั้นคือเหตุการณ์อะไร ไม่รู้ยกตัวอย่างเช่นผมกับแม็กกี้หรือกับอุบลผมเป็น Process A ไปยืนรอคิวในสถานะพร้อม อุบลรอผมคนที่ 2คนที่ 2 ผมเปลี่ยนจากสถานะพร้อมเข้าเป็นสถานะ Run ก็คือเข้าไปครอบครอง CPU อุบลก็รออยู่สถานะพร้อม ในจังหวะที่ผมกำลังครอบครอง CPU อยู่ บังเอิญว่าผมจำเป็นจะต้องไปพิมพ์งาน ไปพิมพ์เอกสาร ช่วงที่พิมพ์เอกสาร ผมจะต้องออกไปที่พรินต์เตอร์ไปที่พรินเตอร์ แล้วช่วงที่ออกไปที่พรินเตอร์นี่ต้องใช้งาน CPU จังหวะนี่ล่ะครับ เรียกว่าสถานะติดขัดคือเกิดเหตุการณ์ที่ตัวของ Process ออกไปติดต่ออุปกรณ์รองข้าง จังหวะนี้อุบลก็จะเข้ามาแทนที่ผมนึกออกไหมนะครับ ถ้าเขาถามว่าสถานะติดขัดจากอะไร เราก็บอกว่าเกิดจากสถานะที่ Process เข้าไปครอบครอง CPU แล้วนะครับ แต่เกิดเหตที่ Process a ไม่จำเป็นจะต้องครอบครอง CPU ต่อหรือ ไปติดต่ออุปกรณ์ข้างนอกอุปกรณ์รอบข้างแทน ต้องปล่อย CPU ออกไป Process ใหม่ก็เข้ามาครองแทนที่นะครับ นี่คือสถานะติดขัดสถานะต่อมานะครับ สถานะพักเ ขาบอกสถานะพักก็คือาถานะ Process ไม่มีการทำงก็คือจบสมบูรณ์ เช่น ผมไปครอบครองCPU ทำงานเสร็จสิ้นแล้วปุ๊บ ออกจบเลย มาทำงานต่อ ได้พัก จบนะครับ ซึ่ง Process นั้นนะครับ สามารถที่จะเปลี่ยนสถานะหนึ่งเป็นสถานะหนึ่ง ได้ตลอดเวลานะครับ ขึ้นอยู่ว่า ณ ตรงนั้นอยู่ในสถานะอะไรอาจจะพร้อม พร้อมเสร็จเข้าไป Run Run เสร็จปุ๊บต้องไปติดต่ออุปกรณ์รอบข้างเป็นสถานะติดขัด พอติดขัดเสร็จก็กลับไปพร้อมใหม่ พร้อมเสร็จเข้าไป Run Runเสร็จแล้ว จบแล้วไปพักนะครับ มันจะเปลี่ยนไปอย่างนี้ตลอดเวลานะครับ อันนี้อาจารย์อธิบายไปแล้วนะครับ อันนี้อาจารย์ ฮธิบายไปแล้วนะครับ ลองดูรูปนะครับ เห็นไหมครับ ในรูปภาพอธิบายการเปลี่ยนสถานะของ Process ใช่ไหมเหมือนที่อาจายร์อธิบายไปเมื่อกี้ยืนต่อคิวเลย 1 2 3 4 5 พร้อมไหม พร้อมพอพร้อมเสร็จ ได้เวลา โอเค 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 โปรแกรม เราจะกด EscapeS Slacapกด F8 F9 ปุ๊บ นึกได้ผ่านไป 2 นาทีไม่ถูกกดยกเลิกแต่โปรแกรมเราทุกวันนี้ เราคลิกปุ๊บ ประมวลผลปั๊บมันมีความเร็วสูงนะครับ ตามรูปนี้นะครับ พยายามมองตามนะ เพราะว่าเราจะเรียนอีก 3 ครั้ง แล้วก็จะสอบกลางภาคนะครับ สอบกลางภาค พอสอบกลางภาคเสร็จอาจารย์ก็จะะยกคลาสไปอยู่อาคาร 7 เพื่อเรียนภาคปฏิบัตินะครับ ภาคปฎิบัติเราก็จะเรียนแค่สัปดาห์ละ 8 คน เราจะไม่เรียนทั้งห้องแบบนี้นะครับ คราวนี้มาดูอีกสถานะหนึ่งนะครับ ที่เราพูดไว้ก็คือสถานะติดขัดเห็นไหมครับ ดูรูป มาพร้อม เห็นไหม พร้อมปุ๊บ มา Run เข้าไป Run จะหมดเวลาควอนตัม หรือไม่หมดก็แล้วแต่ บังเอิญว่า Process นั้นไปติดต่อกับอุปกรณ์รอบข้าง เช่น ติดต่อกับ Printer ช่วงที่ติดต่อพรินเตอร์ไม่ได้ทำงานก็จะถูกผลักออกมาเป็นสถานะติดขัด พอติดขัดเสร็จก็จะย้อนกลับไปพร้อมใหม่นะครับ นี่คือสถานะติดขัด เขาบอกว่าการเปลี่ยนสถานะทั้ง 3 ของ Process ก็คือ พร้อม Run ติดขัดเป็นการเปลี่ยนในสภาพทั่วไปนะครับ พร้อมRun ติดขัดแต่ถ้าเกิดเหตุการณ์ที่ผิดปกติขึ้นในระบบปฏิบัติการหรือระบบคอมพิวเตอร์เรา ระบบปฏิบัติการอาจจะย้าย Process ใดสถานะหนึ่งให้ไปอยู่สถานะพักก็ได้ เพราะสถานะพักเราบอกว่ามันหยุดนิ่งเลยมันหยุดนิ่งเลย ไม่ทำงานต่อแล้ว ก็คือเข้าไป Run แล้วก็จบใช่ไหม แต่ถ้าเกิดเหตการณ์ขึ้นจากสถานะพร้อม Run ติดขัด ไปพักก็ได้นะครับ ซึ่งจะเกิดขึ้นได้ก็ด้วยสาเหตุดังต่อไปนี้นะครับ 1 เกิดการทำงานของระบบผิดพลาดเช่นสั่ง ๆ ไป ปรากฎว่าระบบ Errorปรากฏว่าระบบ Error ผิดพลาดไปกดสตางค์ 1,000 บาทออกมา 10,000 บาท ดีไหมโทมัส ดีไหมเอาไหม อย่าไปเอานะลูกเขาจับเจ้าเด้อต้องไปแจ้งธนาคารนะครับ นี่คือระบบผิดพลาด มันก็จะย้ายทุกอย่างไปที่สถานะพัก จนกว่าเหตุการณ์ปกติเริ่มต้นใหม่นะครับ สาเหตุอันที่ 2 นะครับ ที่จะเกิดสถานะพักนะครับ ผู้ใช้ต้องการหยุดการทำงานชั่วคราว ทำ ๆ อยู่เราสั่งหยุดอย่างนี้ มันก็จะไปอยู่สถานะพักเช่น Run อยู่กดยกเลิกสาเหตุอันที่ 3 นะครับ ในระบบมีงานมากเกินไปสั่งเข้าไป ๆ Over load แฮงค์ Error ก็ย้ายไปสถานะพักนะครับ นี่คือสาเหตุหลัก ๆ 3 สาเหตุทำให้การเปลี่ยนสถานะจากสถานะพร้อม Run ติดขัดไปอยู่ในสถานะพักนะครับ เห็นไหมครับ รูปจากรูปนะครับ พร้อม Run ติดขัดแต่ถ้าเกิดสาเหตุจากเมื่อกี้ ระบบเกิดทำงานผิดพลาด ผู้ใช้สั่งหยุดเองระบบทำงานมากเกินไปปุ๊บ มาพักเลยนะครับ ดังนั้นนะครับ เราก็สามารถแยกสถานะของ Process เป็น 2 ส่วนก็คือส่วนที่ 1 พร้อม Run ติดขัด 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 ย่อย ๆ ไปอีกเรื่อย ๆ ได้นะครับ เขาเรียกว่าการให้กำเนิดนึกออกไหม ตัวอย่างเช่นนะครับ อุบลต้องการเข้าไปครอบครอง CPU อุบลเป็น Process หนึ่งแล้วตัวอาจารย์เองเป็น OS เป็นระบบปฏิบัติเมื่ออุบลจะเข้าไปครอบครอง CPU หรือเข้าไปสถานะ Run อุบลจะถูกผม OS ตั้ง Process หนึ่งขึ้นมาเพื่อไปกำกับดูแลอุบลนะครับ นี่เราเรียกว่า "การให้กำเนิด" แต่พออุบลเข้าไปครอบครอง CPU แล้ว เข้าไปสถานะ Run แล้วอุบลก็จะมี 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มันก็จะไปรับที่หน่วยความจำนะครับ ซึ่งหน่วยความจำก็จะมี Adssdes แล้วเราจะรู้ได้อย่างไรครับ Process A ส่งอะไรมาให้เช็กจากอะไรครับ เช็กจากชื่อ จาก ID ใช่ไหม เพราะว่าชื่อของ Process แต่ละตัวก็จะมีรหัสด้วยนะครับ เห็นไหมครับ Process A นี่ มันจะส่งข้อมูลมานะครับ เราส่งไปให้หน่วยความจำร่วม Process A ก็ไปรับที่หน่วยความจำนะครับ การติดต่อกันระหว่างหน่อวยความจำระครับ นอกจากการใช้หน่วยควาามจำร่วมติดต่อระหว่าง Process นะครับ ก็ยังมีวิธีการที่สะดวกนะครับ แล้วก้นิยมใช้เป็นมาตราฐานนะครับ นั่นก็คือการใช้ช่องทางข้อมูลหรือเรียกง่าย ๆ ว่า Port นะครับ ติดต่อผ่าน Port รู้จัก Port นะPort parareal ต่อสายเข้าไปในเครื่องคอมพิวเตอร์เรานะครับ อันนี้ง่ายกว่านะครับ สะดวกกว่าเช่น เราต้องการส่งข้อมูลจากเครื่องของคนหนึ่งไปเครื่องอีกคนหนึ่งผ่านอะไร ผ่าน Port นะครับ คราวนี้วิธี่การส่งข้อมูลส่งข้อมูลทั้งผ่านหน่วยความจำร่วมแล้วก็ผ่านพอร์ตนั้นนะครับ ในเรื่องของโครงสร้างของพอร์ตก็มีหลายแบบนะครับ จะส่งแบบไหนนะครับ อันที่ 1 นะครับ โครสร้างของ Port แบบที่ 1 ก็คือแบบคิวนะครับ โครงสร้างแบบนี้ก็คือ ข้อมูลจะถูกดึงออกมาจาก Port ตามลำดับก่อน-หลังข้อมูลไหนส่งเข้ามาก่อนก็จะออกไปก่อน ก็คือแบบคิวเป็นคิวนะครับ เช่น ผมเข้าไปก่อนอุบลผมก็ออกก่อนอุบลนะครับ นี่คือโครงสร้างข้อมูลแบบพอร์ตง่าย ๆ ครับ เข้าก่อน ออกก่อนนะครับ โครงสร้างพอร์ตแบบที่ 2 ก็คือโครงสร้างแบบรูปข้างล่างใช่ไหมแบบ prit แบบมีการทำงานแบบคิว คือเข้าก่อนออกก่อน แต่มีข้อแตกต่างกับแบบคิวที่ว่าถ้าเป็นพอร์ตแบบไปป์จะมีความยาวของ Port ไม่จำกัดถ้าเป็นแบบคิวจะจำกัด เช่น พอร์ตแบบคิวแบบว่ามีขนาดของพอร์ต ความยาว 10 ช่องสมมตินะก็แสดงว่าเข้าไปได้แค่ 10 คิวนะครับ แต่ถ้าพอร์ตแบบไปท์โครงสร้างเหมือนพอร์ตแบบคิวก็จริง เข้าก่อนออกก่อน แต่จะมีความยาวของ Portนี่คือโครงสร้างแบบไปป์นะครับ โครงสร้าง Port แบบที่ 3 ก็คือ Stack นะครับ เป็นอย่างไรครับ แบบสแต็กStack คือ โครงสร้างที่ตรงข้ามกับแบบคิวเลยครับ ก็คือข้อมูลชุดใดที่ถูกส่งออกมาก่อนจะถูกดึงออกทีหลัง คือ เข้าก่อนออกทีหลังนะครับ นี่คือโครงสร้างแบบ Stack นะครับ นี่คือโครงสร้างของพอร์ตทั้ง 3 แบบนะครับ คราวนี้มาดูปัญหาของ Process นะครับ เมื่อมีการทำงานมากกว่า 1 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 หนึ่งนี่ครอบครองทรัพยากรตัวเองอยู่แต่อยากไปได้ทรัพยากรของคนอื่นคนอื่น แต่ตัวเองก็ไม่ยอมให้ทรัพยากรของตัวเองนะครับ นี่คือลักษณธการติดตายหรือเขาบอกว่าปัญหาการติดตายนั้น ไม่จำเป็นต้องเกิดจาก 2 Process อาจจะเกิดจากหลาย Process ก็ได้นะครับ มากกว่า 2 Process แต่ต้องมีเงื่อนไขดังนี้ เช่น 1. การครอบครองเป็นแบบตัดตอนไม่ได้อันนี้ก้ตัดตอนไม่ได้นะProcess A, Process B ก็ไม่ได้ Process C ก็ไม่ได้ไม่ไป ไม่มา นะครับ เงื่อนไขแบบที่ 2การครอบครองเป็นแบบไม่เกิดร่วมต่างคนต่างทำงาน ต่างคนต่างอยู่คนละส่วนปิดตายขึ้นนะครับ เงื่อนไขที่ 3 คือในการรอใช้ทรัพยากรเป็นการรอแบบวนรอบหรือวนรอบ หรือภาษาเขีียนโปรแกรมเราเรียกว่าวนลูป หรือวนรอบก็จะเกิดปัญหาการติดตายขึ้นนะครับ นี่คือปัญหา 3 ปัญหาที่เกิดขึ้นในระบบเราแต่เวลาเราออกแบบ OS ก็เกิดขึ้น หัวข้อสุดท้ายนะครับ ของบทนี้นะครับ เธรดนะครับ เขาบอกในระบบปฏิบัติการรุ่นใหม่ ๆ บางตัวซึ่งเราใช้แล้วนะครับ เราใช้แบบนี้อยู่นะครับ ถ้าเป็นสมัยก่อนยกไม่เกิดระบนะครับ เธรด ก็คือเป็นการที่ระบบปฏิบัติการแบ่งย่อย Processing ออกมาเป็นส่วน ๆ ดูรูปประกอบเลยนะครับ นี่... ทำไมไม่ขึ้นขวามือผมนะครับ กับ Process B Process A โค้ดโปรแกรมแล้วก็ข้อมูลองค์ประกอบอื่นเขียนโปรแกรมแบบไม่ใช่เธรด แต่พอเทรดปุ๊บมันจะแบ่งส่วนเทรด1, 2, 3, 4, 5 เป็นส่วนย่อยนะครับ เราแบ่ง มีประโยชน์อะไรนะครับ มันจะให้ทำงานเร็วขึ้น สามารถทำงานกับหน่วยความจำที่มีขนาดเล็กได้แก้ไขง่าย นี่คือหลักการเขียนโปรแกรมใน ณ ปัจจุบันนี้นะครับ เดี๋ยวพอเราเขียนโปรแกรมเราเรียนไปสัก ปี 2 ทำไมเราต้องมาเขียนเป็นแบบเทรดโบราณนะครับ เขียนทีเดียว 100 บรรทัด 500 บรรทัดเวลามีปัญหามาปุ๊บการแก้ไขปัญหานะครับ แก้ไขยากนะครับ นี่คือหลักการของการเขียนโปรแกรมแจ้งพวกเรานะครับ เมื่อกี้ได้พูดไปแล้วนะครับ สัปดาห์หน้านะครับ วันที่ 7 เราก็จะไปศึกษาดูงานนอกสถานที่นะครับ หมู่ 2 นะครับ หมู่ 2 หมู่ 1 ยังไม่ได้ไปนะครับ เราจะไปศึกษาดูงานที่นครพนม ผมจะพาไปที่บุสบานก่อนไปดูหมู่บ้านอะไรไม่รู้จำไม่ได้นะครับ พวกทำเกี่ยวกับพื้นเมือง แล้วก็จะพาไปพิพิธภัณฑ์สัตว์น้ำนครพนม ก็สัปดาห์หน้าก็หมู่ 1 ก็ต้องมาเรียน ก็เห็นพี่พลอยประสานไปที่อาจารย์อะไรนะที่เราเรียนน่ะ ตอนเช้าน่ะก็เรียนด้วยกันใช่ไหมเห็นว่าอาจารย์ว่าคณะก็ไหว้ครู แต่ว่าสัปดาห์หน้าเราไม่มีเรียนนะครับ ห้อง 1 นะมีเรียน แต่สัปดาห์หน้าหมู่ 2 เราจะไปนอกสถานที่จะพาไปดูอะไรนะ ไปดูปลาบึก เขาจะป้อนอาหารปลาบึกเอาอุบลไปให้อาหารปลา อุบลนะก็ไปทั้งวันนะครับ ก็แจ้งพวกเราไว้ สัปดาห์หน้าก็หยุดนะครับ สัปดาห์ถัดไปก็เจอกันนู้นเลยครับ นะครับ ก็ตอนนี้เราเปิดเทอมมาได้เดือนหนึ่งนะครับ เป้นอย้างไรครับ ปรับตัวได้ได้แล้วนะ บางคนก็ส่งงานไว้ที่โต๊ะนะครับ เดี๋ยวผมจะส่งคืนให้นะ ผมจะตรวจแล้วส่งคืนให้ ๆ เราเอาเก็บไว้อ่านสอบแบบฝึกหัดที่ผมให้ทำมีใครอยากจะถามอะไรเพิ่มเติมไหมครับ ครับ ถ้าไม่มีก็... Process พ่อเกิดอย่างไร Process พ่อเกิดขึ้นจากการที่เมื่อเวลาใดเวลาหนึ่ง เช่น เรา... สมมตินะ ๆ ผมเป็น Process ผมต้องการจะเข้าไป ครอบครองจะเข้าไปครอบครอง CPU ตัวของระบบปฏิบัติการจะสร้างProcess หนึ่งขึ้นมา เพื่อมากำกับผมไป จะพาเข้าไปครอบครอง CPU นะ นี่เป็นการให้กำเนิด เป้นการให้กำเนิดเพื่อพา Process เข้าไป ตรงนี้เรียกว่า Process พ่อนะครับ นี่คือหลักการของมันของมันนะครับ ครับ ก็ต้องขอบคุณพี่ล่ามมากนะครับ ที่ได้ให้การอนุเคราะห์เรามาอีก 1 สัปดาห์ สัปดาห์หน้าเราไม่ได้เจอกันนะครับ พี่ล่าม สัปดาห์หน้าจะพาน้อง ๆ ไปนอกสถานที่ก็ ถ้าไม่มีใครถามอะไรแล้วนะครับ ก็เจอกันสัปดาห์หน้านะครับ ไปดูงานนอกสถานที่กัน โอเคครับผม ไป