ของการจัดการProcess นะครับ เราเคยได้ยินไหม Process ครับ ถามหมู่ 1 เคยได้ยินไหมครับ คำนี้เรียนตั้งแต่มัธยม Process คืออะไรเอ่ย Process ครับ เขาบอกว่านะครับ เขาให้ความหมาย ความหมายเยอะแยะนะครับ แต่ความหมายนะครับ แต่ความหมายที่เราใช้กันนะครับ เอกสารยังไม่ได้หรืออยู่กับใคร เอกสารหมดหรือยัง อยู่กับใครครับเอกสาร เหลืออยู่กับใคร มีไหม อยู่กับใครครับ เอกสารเหลือน่ะ หมดไหมครับ บทที่ 2 น่ะอยู่กับใคร เหบลืออยู่กับใคร มันต้องเหลือสิ่มันต้อง 50 ชุดนะครับ ถ่ายมาอยู่ไหนล่ะห้อง 1 มันยังไม่เห็นเอกสารอาทิตย์ที่แล้ววางไว้ที่โต๊ะไหนหรือหมู่ 1หมู่ 1 หมู่ 1 ส่งไว้ที่ไหน ยังไม่ส่งใช่ไหม พ่อเห็เห็นแต่ของห้อง 2 แต่ผมตรวจแล้วนะครับ ผมตรวจแล้วก็คืนให้แล้วนะครับ ใครมาช้ามาเอานะครับ เอกสารที่ผมตรวจนะครับผม จะไม่ได้ตรวจให้ทุกข้อนะ ผมจะเซ็นเลย เซ็นให้เฉย ๆ นะครับ เป็นการตรวจเช็กแต่ละสัปดาห์แล้วก็เราเอาไว้อ่านสอบนะครับ เพราะว่าตอนนี้เราเรียน 2-3 สัปดาห์แล้วนะครับ จะครบเดือนแล้วเดี๋ยวสัปดาห์หน้านะครับ สัปดาห์หน้า ห้องหมู่ 2 จะไม่อยู่นะครับ ผมก็ไม่อยู่นะครับ สัปดาห์หน้าเราจะไม่มีเรียนนะครับ เราจะยกเลิกคลาสนะครับ เพราะว่าหมู่ 2 จะไปศึกษาดูงานข้างนอกนะครับ ผมก็ไปด้วยนะครับ ทั้งวันนะครับ สัปดาห์ถัดไปปิดใช่ไหมหยุด สัปดาห์ถัดไปอีกเรียน สัปดาห์ถัดไปหยุดอีก เดือนนี้หยุดเยอะนะครับ มาดูนะครับ Process นะครับ Process Process นะครับ เขาให้ความหมายว่า Process คือ โปรแกรมที่กำลังถูก Execute นะครับ คืออะไร เคยได้ยินไหมครับ เขาบอก Process คือ โปรแกรมที่กำลังถูก Execute เป็นอย่างไรครับ Execute ผมเชื่อว่าพวกเราจบมัธยมศึกษาปีที่ 6 มา มันต้องเคยได้ยินมาบ้างแล้ว เรียนหรือยัง เรียนหรือยังครับ หมู่ 1 เรียนแล้วใช่ไหมนะครับ ถามตอบด้วยเด้อ ถามน่ะตอบ มีปฏิสัมพันธ์ด้วยนะครับ เพราะเราทุกวันนี้นะครับ เราค่อนข้างขาดปฏิสัมพันธ์นะครับ ผมเข้าใจนะ พวกเราเป็น Generation ที่แตกต่างจากอาจานะครับ เราเจนอะไรครับ เรา Genaration อะไร Gen Y บ แม่นหรอใช่ไหม ใช่หรือ เรา Gen หรือGen อะไรดี ยังไม่รู้อีกตัวเอง Gen อะไร เดี๋ยวไปถามห้อง 2ยังไม่ถามห้อง 2 ถามห้อง 1 ก่อนตอนนี้พวกเรามีปัญหานะครับ เรื่องของความแตกต่างระหว่าง Genaretionรุ่นผมนี่ คุยกับพวกเรานี่ ไม่ค่อยรู้เรื่องจริงไหม เราคนละ Generationนะครับ แนวคิดต่างกัน รุ่นพวกเรานี่ความอดทนน้อยนะครับ รอได้ไหม รอไม่ได้นะครับ จะเอาเดี๋ยวนี้จะกินข้าวก็จะกินเดี๋ยวนี้ถ้าจะให้ไปต่อคิวก็ไม่ไปนะครับ เห็นไหมครับ มันถึงเกิดอะไรขึ้นมา ขายออนไลน์ พวกแก๊บ พวก Food Panda ใช่ไหม จากที่ผมอ่านนะครับ อ่านทดสอบก่อนเรียนพวกเรานะครับ ก็พื้นฐานเราก็พอ ๆ กันนะ พอ ๆ กันนะครับ ก็คือยังไม่เข้าใจความหมาย ยังไม่เข้าใจหลักการของคอมพิวเตอร์มากนะครับ ก็ไม่เป็นไรนะครับ เพราะว่าจริง ๆ อย่างที่ผมบอกเราควรจะจัดให้เรียนอยู่ชั้นปีที่ 3 นะครับ แต่เราก็มาจัดสะ ปี 1 เทอม 1ก็ไม่เป็นไรนะครับ ก็ปรับเอา เขาบอกว่า Process คือ โปรแกรมที่กำลังถูก Execute ถ้าเรามอง ก็คือสัปดาห์ก่อนใช่ไหม พอเราส่งข้อมูลจากคีย์บอร์ดใช่ไหมครับ ส่งจากคีย์บอร์ปุ๊บเข้าไปไหนครับ คิดตามครับ เข้าไปไหน คีย์บอร์ด คือ Input ใช่ไหม Input พอเข้าไปในคอมพิวเตอร์เราเรียกว่าเข้าไปอะไรไปประมวลผล ใช่ไหมครับ ประมวลผลเสร็จ ทำอะไรต่อ ก็ไปแสดงผลใช่ไหม นี่คือหลักของมัน Input ประมวลผล Process ใช่ไหม แล้วก็ออกไป Output นี่คือหลักการของมัน เขาบอกว่า Process คือ โปรแกรมที่กำลังถูก Execute นั่นหมายความว่า... บางคนให้ความหมายว่าเป็นโปรแกรมที่เข้าไปครอบครอง CPU หรือเข้าไปใช้งาน CPU แล้วแต่เอกสารตำราแต่ละคนแต่งนะครับ คือ หลักการ ก็คือคำว่า "Process" ก็คือโปรแกรมที่กำลังถูก Execute ในคอมพิวเตอร์เรา มันจะมีไฟล์อยู่ไฟล์หนึ่ง เป็นนามสกุล ไฟล์ทุกไฟล์ต้องมีนามสกุล เดี๋ยวดูรายละเอียดต่อไปนะครับ ก็คือนามสกุลที่ .exeเคยเห็นไหมเคยสังเกตไหมเวลาเราใช้ หรือไม่รู้เปิดขึ้นมาใช้แล้วก็ปิดนะครับ เราอย่าไปดูในสไลด์อาจารย์มากนะ อาจารย์ก็พูดไปเรื่อยนะ มันไม่ได้อยู่ในนี้หรอกนะครับ คราวนี้ถ้า Process ถ้าโปรแกรมเดียว โปรแกรม...ทำงานปุ๊บเป็นอย่างไรครับ ยุ่งยากไหม Input เสร็จ เข้าไปประมวลผลเสร็จ แสดงออก ถ้าโปรแกรมเดียวไม่มีปัญหานะครับ แต่ถ้าเมื่อไรก็ตามที่มีหลาย ๆ โปรแกรมทำงานพร้อมกัน ที่เขาบอกว่าเป็นระบบหลายโปรแกรมเขาบอก Process อาจเปรียบได้กับรถยนต์ คือ มีรถยนต์หลายคันนะครับ และตัวของ CPU เอง ก็เปรียบเหมือนคนขับ เหมือนกับว่าในคอมพิวเตอร์เรานี่มี CPU อยู่แค่ตัวเดียว แต่มีคนต้องการใช้งานเยอะ โปรแกรมเยอะ ต้องทำอย่างไรครับ วิธีการมัน ถ้าเป็นเรา เราทำอย่างไรครับ เช่น มีรถอยู่ 5 คันมีคนขับอยู่คนเดียว ทำอย่างไรจึงจะขับเข้าไปถึงในเมืพร้อมกันได้ลากรถ 4 คัน คนอื่นล่ะ คนอื่นล่ะทำอย่างไร คนอื่นมีวิธีการอื่นไหมครับ หลักการคอมพิวเตอร์เวลาทำงานใช่ไหม โปรแกรมจะเข้าไปทำงาน หรือเข้าไปครอบครอง CPU ได้ที่ละ 1 1 โปรแกรม ก็เหมือนคนเรานี่ขับรถ ขับได้ทีละคัน จะลากจะพ่วง ทำไม่ได้ หลักการทำไม่ได้ ทำอย่างไรดีล่ะ วิธีการก็คือขึ้นไปขับคันที่ 1 จากราชภัฏสกลนครแล้วไปจอดหน้าค่ายกฤษกลับมาขับครั้งที่ 2 ก็มา. คันที่ 4 คันที่ 5นะครับ พอถึงขับไปใหม่ขับไปถึงหน้าประตูเมือง ย้อนไปที่ 1, 2, 3, 4, 5 อย่างนี้นะครับ แต่เวลาทำงานจริงเป็นอย่างไรครับ คอมพิวเตอร์ทำงานด้วยความเร็วสูงไหม สูงไหม หายใจทันไหมครับ ทันไหม ไม่น่าทันนะ การทำงานจริง ๆ มันจะทำงานเหมือนที่อาจารย์ยกตัวอย่างเมื่อกี้ ไปทีละคัน ทีละคัน แต่พอมาทำงานจริง มันทำงานได้ความเร็วสูง มันเลยเหมือนประหนึ่งว่ามันไปพร้อม ๆ กันเลยนะครับ นี่คือหลักการทำงานของคอมพิวเตอร์นะครับ อย่างยกตัวอย่างนี้ ระบบCPU เป็นคนขับโปรแกรมหลาย ๆ โปรแกรม เหมือนรถนะครับ ทำอย่างไรให้ไปด้วยความเร็วสูงคราวนี้มาดูองค์ประกอบของ Process นะครับ Process มีองค์ประกอบอะไรบ้างนะครับ พอเรียนจบบทนี้นะครับ นักศึกษาก็จะงงนะครับ เริ่มงงนะ มันเริ่มเหมือนบทที่ 1 ใช่ไหม พื้นฐานนะครับ งงไม่ต้องตกใจครับ ค่อย ๆ ปรับนะครับ เพราะว่าเราเพิ่งเข้าเรียนปี 1 ปรับสภาพแวดล้อม ปรับสภาพหลาย ๆ อย่างนะครับ แล้วตอนนี้ห้องแล็บเราก็ยังใช้ไม่ได้ใช่ไหม อาจารย์เข้าแจ้งหรือยังว่าใช้ได้เมื่อไร อาคาร 7 เราไม่แจ้งเพราะว่าเราไม่รู้ว่าจะใช้ได้เมื่อไร ผมแวะไปเมื่อวานก็ไม่มีทีท่าว่าจะได้ใช้เลยนะ คนทำก็นั่งทำง็อกแง็ก ๆ อยู่คน 2 คนเทอมนี้ผมว่าไม่น่าทันนะ น่าจะได้ใช้เทอมหน้านะครับ เทอมหน้าก็เราอยากได้เทอมหน้า ก็เป็นรุ่นพวกเราได้ใช้นะครับ เทอมหน้าองค์ประกอบตัวที่ 1 ของ Process นะครับ ก็คือ 1. Processทุกตัวจะต้องมีชื่อ และหมายเลขประจำตัวนะครับ Process ID นะครับ และจะต้องไม่ซ้ำกันนะครับ เหมือนชื่อไฟล์น่ะ ชื่อไฟล์ซ้ำกันได้ไหม ได้ไหมครับ ชื่อไฟล์ นามสกุลไฟล์นะครับ องค์ประกอบ Process ตัวที่ คือชื่อและหมายเลขประจำตัว เหมือนหมายเลขบัตรประจำตัวเรานเราซ้ำกันได้ไหมครับ ได้ไหม ไม่ได้นะครับ แต่ถ้าถาม ย้อนกลับว่าชื่อและนามสกุลมีโอกาสซ้ำกันได้ไหม ได้นะครับ เพราะอะไรเช่น อาจจะมีพิเชน จันทร์ปุ่ม 5 คนก็ได้ เหมือนกันเพราะอะไรครับ เพราะอาจจะมีญาติพี่น้องนามสกุลเหมือนกัน บังเอิญว่าชื่อพิเชนทร์มันเพราะ เลยตั้งเหมือนกันเลข 123 หลักห้ามซ้ำกันองค์ประกอบอันที่ 2 ของ Process ทุก Process มีโค้ดนะครับ เป็นโค้ดนะครับ code เป็นรหัสคำว่า "โค้ด" ก็คือจะต้อง Execute ได้ทันทีคือภาษาเครื่องแปล้รียบร้อยแล้วนะครับ องค์ประกอบอันที่ 3 ก็คือข้อมูลData ข้อมูลนี้นะครับ เขาบอกว่าโปรแกรมต้องการหรือจัดการข้อมูลอาจจะเป็นของ Process ใด Process หนึ่งหรืออาจจะใช้ข้อมูลร่วมกันกับ Process กันได้ ตัวอย่างของ Processที่ใช้ข้อมูลร่วมกัน เช่นProcess ในระบบฐานข้อมูลนะครับ เช่น ฐานข้อมูลระบบทะเบียนราชภัฏสกลนคร เช่น เรามารายงานตัวเป็นนักศึกษาปั๊บนะครับ ขึ้นทะเบียนปุ๊บ พอเราไปห้องสมุดก็ใช้ฐานข้อมูลเดียวกัน ในการเงินก็ใช้ฐานข้อมูลชุดเดียวกันนะครับ ศูนย์คอมไปกองพัฒฯ ก็ฐานข้อมูลอันเดียวกันนะครับ โดยใช้ฐานข้อมูลร่วมกัน นะครับ องค์ประกอบอันที่ 4 ของ Process ก็คือProcess Control Block นะครับ หรือ Block ควบคุมโปรแกรม ระบบปฎิบัติการจะกำหนดเนื้อที่บางส่วนกำหนดเนื้อที่บางส่วนในหน่วยความจำ ทำเป็น ProcessControl Blockหรือ PCB นะครับ กำหนดไว้ทำไมนะครับ ก็คือ 1. กำหนดไว้เป็น Process กำหนดไว้เพื่อเป็นเก็บหมาเลขความสำคัญของ Processอยู่ใน PCB นะครับ ใน Process แต่ละตัวจะมีBlocikควบคุมโปรแกรมหรือ PCB อยู่นะครับ ซึ่ง PCB นี้ก็จะเก็บสถานะของ Processแล้วก็เก็บลำดับความสำคัญของ Process เอาไว้นะครับ นอกจากนั้นก็ยังเก็บสารสนเทศที่เกี่ยวกับการจัดการหน่วยความจำของ Process ข้อมูลการรับส่งข้อมูลของ Process หรือเก็บข้ามูลสำคัญของ Process ใน PCB นั่นเองนะครับ พื้นที่จัดเก็บ คือ Registerนะครับ Register คือ หน่วยความจำขนาดเล็กที่ในหน่วยความจำ ส่วนในรายละเอียดต่าง ๆ อาจารย์จะพูดในบทที่ 3, 4, 5 นะครับ อันนี้พูดคร่าว ๆ ก่อนให้พวกเรามอภาพกว้าง ๆ ครับผม ดูต่อนะครับ องค์ประกอบต่อมานะครับ ของ Process ก็คือ Program Status นะครับ หรือ PSW นะครับ Program Status Words นะครับ เป็นตัวควบคุมลับดับของ Execของ Processมันจะบอกว่า Process นี้จะเข้าไปครอบครองCPU ลำดับที่เท่าไรนะครับ ต่อมานะครับ คุณสมบัติของ Process นะครับ แต่ละ Process จะมีคุณสมบัติดังต่อไปนี้นะครับ ก็คือ 1. Process ทุกตัวจะมีลำดับความสำคัญ ต่างกันนะครับ Process ทุก Process จะมีลำดับความสำคัญ เช่น Process A อาจจะมีความสำคัญมากกว่า Process B หรือ Process ของผู้ดูแลระบบอาจจะมีความสำคัญมากกว่าของ User อย่างนี้ อันที่ 2 คุณสมบัติอันที่ 2 อำนาจหน้าที่ Process ทุกตัวจะมีอำนาจหน้าที่ที่ต่างกัน เช่น Processของผู้ดูแลระบบมีอำนาจมากกว่าของ User อย่างนี้เป็นต้นนะครับ หรือคุณสมบัติอื่น ๆ ที่ OS กำหนดอันนี้ขึ้นอยู่กับ OS ครับ ขึ้นอยู่ว่าเราใช้ OS อะไร เช่น ใช้ Windows 8 ใช้ Windows 10 คุณสมบัติของ OS ของ Process ก็จะต่างออกไป ยกตัวอย่างเช่นนะครับ Windoes 8สามารถตั้งชื่อได้ความยาวกี่ตัวอักษรรู้ไหมเคยไหม อาจารย์จะยังไม่บอกว่ากี่ตัวอักษรนะเราสามารตั้งชื่อได้นะนะครับ กับ Windows 11ต่างกันไหม ลองดูนะ ลองดู เดี๋ยวเราจะไปลองตอนภาคปฏิบัติ ลองสิว่าเราถ้าเกิดเป็น Windows 8 ตั้งชื่อได้กี่ตัว Windows 11 สามารถตั้งชื่อความยาวกี่ตัวนะครับ นี่คือคุณสมบัติที่แต่ละตัวเป็นคนกำหนดนะครับ เมื่อกี้องค์ประกอบของ Process นะครับ คราวนี้มาดูสถานะของ Process นะครับ สไลด์นะครับ อยู่กับพี่พลอยนะพลอยค่อย อัปขึ้นให้น้องนะครัอาจารย์ลืมอัปลงในไลน์กลุ่มนะครับ แวะดูก่อนนะครับ คราวนี้มาดูสถานะของ Process นะครับ Process ก็แบ่งออกเป็นสถานะได้ดังต่อไปนี้นะครับ 1. สถานะพร้อม สถานะพร้อมเป็นอย่างไรสถานะพร้อมเป็นสถานะพร้อมที่ Process พร้อมที่จะใช้ CPU ทันทีที่ OS มอบหมายให้ เรารอแล้ว เหมือนเรารอคิวแล้ว ยืนรอแล้วรอเข้าไปครอบครอง CPUหรือรอเข้าไปใช้งาน CPU เราเรียกว่า "สถานะพร้อม"เช่น เราจะไปเข้าห้องน้ำ ห้องน้ำเป็น CPU แล้วนะครับ เรายืนรอคิวเปนี่ เราพร้อมแล้ว พร้อมจะเข้าไปใช้งานเราเรียกว่า "สถานะพร้อม" นะครับ สถานะที่ 2 คือ สถานะ Run Run คืออะไร ครับ สถานะ Run เป็นสถานะProcess กำลังครอบครอง CPU อยู่ CPU อยู่ ก็คือเข้าไปครอบครอง CPUที่เราเรียกว่า Run Progarmนี่คือสถานะ Runนะครับ สถานะที่ 3 นะครับ 8สถานะติดขัดเขาบอกว่าสถานะติดขัดเกิดจากการที่ 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 ทีละตัวทีละตัว ทีลโปรแกรมทีละ 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 ยกเลิกทันนpกด F8 F9 ปุ๊บ นึกได้ผ่านไป 2 นาทีไม่ถูกกดยกเลิกแต่โปรแกรมเราทุกวันนี้ เราคลิกปุ๊บ ประมวลผลปั๊บมันมีความเร็วสูงนะครับ ตามรูปนี้นะครับ พยายามมองตามนะ เพราะว่าเราจะเรียนอีก 3 ครั้งแล้วก็จะสอบกลางภาคนะครับ สอบกลางภาค พอสอบกลางภาคเสร็จ อาจารย์ก็จะะยกคลาสไปอยู่อาคาร 7 เพื่อเรียนภาคปฏิบัตินะครับ ภาคปฎิบัติเราก็จะเรียนแค่สัปดาห์ละ 8 คน เราจะไม่เรียนทั้งห้องแบบนี้นะครับ คราวนี้มาดูอีกสถานะหนึ่งนะครับ ที่เราพูดไว้ก็คือสถานะติดขัด เห็นไหมครับ ดูรูปมาพร้อม เห็นไหมพร้อมปุ๊บ มา Run เข้าไป Run จะหมดเวลาควอนตัม หรือไม่หมดก็แล้วแต่ แต่บังเอิญว่า Process นั้นไปติดต่อกับอุปกรณ์รอบข้าง เช่น ติดต่อกับ Printer ช่วงที่ติดต่อพรินเตอร์ไม่ได้ทำงานก็จะถทุกผลักออกมาเป็นสถานะติดขัด พอติดขัดเสร็จก็จะย้อนกลับไปพร้อมใหม่นะครับ นี่คือสถานะติดขัดเขาบอกว่าการเปลี่ยนสถานะทั้ง 3 ของ Process ก็คือ พร้อม Run ติดขัด เป็นการเปลี่ยนในสภาพทั่วไปนะครับ พร้อม Run ติดขัดแต่ถ้าเกิดเหตุการณ์ที่ผิดปกติขึ้นในระบบปฏิบัติการหรือระบบคอมพิวเตอร์เรา ระบบปฏิบัติการอาจย้าย Process จากสถานะใดสถานะหนึ่งให้ไปอยู่สถานะพักก็ได้ เพราะสถานะพักเราบอกว่ามันหยุดนิ่งเลย ไม่ทำงานต่อแล้ว ก็คือเข้าไป Run แล้วก็จบใช่ไหม แต่ถ้าเกิดเหตุการณ์ผิดปกติขึ้นจากสถานะพร้อม Run ติดขัด ไปพักก็ได้นะครับ ซึ่งจะเกิดขึ้นได้ก็ด้วยสาเหตุดังต่อไปนี้นะครับ เกิดการทำงานของระบบผิดพลาด เช่น สั่ง ๆ ไป ปรากฎว่าระบบ Error ปรากฏว่าระบบ Error ผิดพลาดไปกดสตางค์ 1 บาทออกมา 10,000 บาท ดีไหมโทมัส ดีไหมเอาไหม อย่าไปเอานะลูกเขาจับเจ้าเด้อต้องไปแจ้งธนาคารนะครับ นี่คือระบบผิดพลาด มันก็จะย้ายทุกอย่างไปที่สถานะพัก จนกว่าเหตุการณ์ปกติ ก็จะกลับมา เริ่มต้นใหม่นะครับ สาเหตุอันที่ 2 นะครับ ที่จะเกิดสถานะพักนะครับ ผู้ใช้ต้องการหยุดการทำงานชั่วคราว ทำ ๆ อยู่เราสั่งหยุดอย่างนี้ มันก็จะไปอยู่สถานะพัก เช่น Run Run อยู่กดยกเลิกอย่างนี้ สาเหตุอันที่ 3 นะครับ ในระบบมีงานมากเกินไป สั่งเข้าไป สั่งเข้าไป สั่งเข้าไป Hang 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 ย่อยของ OS นึกออกไหมเขาบอกว่า Process เองก็มีเยอะแยะมากมายเลยในระบบของมันนะครับ ซึ่งเราสำหรับผู้ใช้สั่งงานปุ๊บ เช่น อุบลบอกอุบลต้องการเข้าไปครอบครอง CPU ระบบปฏิบัติการก็จะสร้าง Process หนึ่งขึ้นมาเข้ามาในระบบปฏิบัติการสำหรับงานนะครับ นั่นแสดงว่า Process ของอุบลนั้นก็เป็น Process ย่อยของระบบปฏิบัติการ นึกออกไหมครับ นึกตามนะนะครับ ซึ่ง Process OS ก็จะมีคุณสมบัติเหมือนอื่น ๆ ทั่วไปนะครับ เขาว่าดังนั้น Process อื่น ๆ สามารถมี Process ย่อย ๆ ไปอีกเรื่อย ๆ ได้นะครับ เขาเรียกว่าการให้กำเนิดนึกออกไหม ตัวอย่างเช่นนะครับ อุบลต้องการเข้าไปครอบครอง CPU อุบลเป็น Process หนึ่งแล้ว ตัวอาจารย์เองเป็น OS เป็นระบบปฏิบัติการ เมื่ออุบลจะเข้าไปครอบครอง CPU หรือเข้าไปสถานะ Run อุบลจะถูกผม OS ตั้ง Process หนึ่งขึ้นมาเพื่อไปกำกับดูแลอุบลนะครับ นี่เราเรียกว่า "การให้กำเนิด" แต่พออุบลเข้าไปครอบครอง CPU แล้ว เข้าไปในสถานะ Run แล้วนะครับ อุบลก็จะมี Process ย่อยแต่พออุบลเข้าไปแต่พออุบลเข้าไปครอบครอง CPU แล้ว เข้าไปในสถานะ Run แล้วนะครับ ครอบครอง CPU แล้ว เข้าไปในสถานะ Run แล้วนะครับ อุบลก็จะมี Process ย่อยอุบลก็จะมี Process ย่อยต่อไปอีก นึกออกไหม ซึ่งไม่รู้ว่ามีอะไรบ้าง เราไม่รู้นะครับ ซึ่งตัวของ Process ย่อยที่เราเรียกว่า "การให้กำเนิด" นั้นเราจะเรียกว่า "โปรเซสพ่อ" นะครับ ส่วน Process ย่อยที่สร้างต่อจาก Processผู้ให้กำเนิดเราเรียกว่า Process กำเป็นลำดับชั้นนะครับ เป็นลักษณะแบบโครงสร้างแบบต้นไม้ ดูรูปนี้เห็นไหมครับ นี่คือลำดับชั้นของ Process นะครับ หัวข้อต่อมานะครับ ความสัมพันธ์ระหว่าง Process เราไม่พักเลยนะพี่ล่ามคนเดียวนะครับ ขอพัก 5 นาทีนะครับ พี่ล่ามจะได้ไป ทานน้ำ ไปเข้าน้ำทานน้ำ แล้วก็เข้าห้องน้ำนะครับ พักก่อน 5 นาทีนะครับ เดี๋ยวเราต่ออีกประมาณ 15 สไลด์นะครับ (อาจารย์พิเชนทร์) ดูต่อนะครับ ความสัมพันธ์ระหว่าง Processนะครับ การทำงานของระบบคอมพิวเตอร์นั้นนะครับ ก็จะประกอบไปด้วย Process ต่าง ๆ นะครับ ทั้งของระบบแล้วของผู้ใช้นะครับ เมื่อมันมี Process มากมายทำงานพร้อม ๆ กันนะครับ จึงต้องมีการจัดการขึ้นนะครับ นอกจากการจัดการแล้วนะครับ เราก็ต้องมีการติดต่อระหว่างกันนะครับ เหมือนเรา เราอยู่ในห้องเรานะครับ เราจะต้องมีการติดต่อสัมพันธ์กันนะครับ คราวนี้เรามาดูหัวข้อความสัมพันธ์ระหว่าง Process นะครับ การติดต่อระหว่าง Process นั้น ก็คือหมายความว่า Process หนึ่งอาจต้องการใช้ข้อมูลของอีก Process หนึ่งจึงต้องมีการทำไมครับ ต้องมีการส่งข้อมูลหรือต้องการติดต่อกันระหว่าง Process นะครับ ซึ่งการติดต่อกันระหว่าง Process นั้นนะครับ ก็มีหลายวิธี หลายวิธี มาดูวิธีที่ 1 นะครับ ติดต่อกันโดยนะครับ ใช้หน่วยความจำร่วมนะครับ หมายความว่า เมื่อ Process หนึ่งต้องการส่ง 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 นะครับ ก็ยังมีวิธีการที่สะดวกนะครับ แล้วก็นิยมใช้เป็นมาตราฐานนะครับ นั่นก็คือการใช้ช่องทางข้อมูล หรือเรียกง่าย ๆ ว่า "พอร์ต" นะครับ ติดต่อผ่านพอร์ต รู้จัก Port นะ Port USB Port Pararalต่อสายเข้าไปในเครื่องคอทมพิวเตอร์เราผ้นะครับ อันนี้ง่ายกว่านะครับ สะดวกกว่าเช่น เราต้องการส่งข้อมูลจากเครื่องของคนหนึ่งไปเครื่องอีกคนหนึ่งผ่านอะไร ผ่านพอร์ตนะครับ คราวนี้วิธีการส่งข้อมูลทั้งผ่านหน่วยความจำร่วมแล้วก็ผ่านพอร์ตนั้นนะครับ ในเรื่องของโครงสร้างของพอร์ตก็มีหลายแบบนะครับ จะส่งแบบไหนนะครับ อันที่ 1 นะครับ โครสร้างของ Port แบบที่ 1 ก็คือแบบคิวนะครับ โครงสร้างแบบนี้ก็คือ ข้อมูลจะถูกดึงออกมาจากพอร์ตตามลำดับก่อน-หลังข้อมูลไหนส่งเข้ามาก่อนก็จะออกไปก่อน ก็คือแบบคิวเป็นคิวนะครับ เช่น ผมเข้าไปก่อนอุบลผมก็ออกก่อนอุบลนะครับ นี่คือโครงสร้างข้อมูลแบบพอร์ต ง่าย ๆ ครับ เข้าก่อน ออกก่อนนะครับ โครงสร้างพอร์ตแบบที่ 2 ก้คือโครงสร้างแบบรูปข้างล่างใช่ไหมแบบ Pipe นะครับ แบบ Pipe ก็มีโครงการทำงานการทำงานแบบคิว คือเข้าก่อนออกก่อน แต่มีข้อแตกต่างกับแบบคิวที่ว่าถ้าเป็นพอร์ตแบบไปป์จะมีความยาวของ Port ไม่จำกัดถ้าเป็นแบบคิวจะจำกันเช่น พอร์ตแบบคิวบอกว่ามีขนาดของพอร์ต ความยาว10 ช่องสมมตินะก็แสดงว่าเข้าไปได้แค่ 10 คิวนะครับ แต่ถ้าพอร์ตแบบไปป์โครงสร้างเหมือนพอร์ตแบบคิวก็จริง เข้าก่อนออกก่อน แต่จะมีความยาวของ Port นี่คือโครงสร้างแบบไปป์นะครับ โครงสร้าง Port แบบที่ 3 ก็คือแบบ Stack นะครับ เป็นอย่างไรครับ แบบสแต็กStack คือ โครงสร้างที่ตรงข้ามกับแบบคิวเลยครับ ก็คือข้อมูลชุดใดที่ถูกส่งออกมาก่อนจะถูกดึงออกทีหลัง คือ เข้าก่อนออกทีหลังนะครับ นี่คือโครงสร้างแบบ Stack นะครับ นี่คือโครงสร้างของพอร์ตทั้ง 3 แบบนะครับ คราวนี้มาดูปัญหาของ Process นะครับ เมื่อมีการทำงานมากกว่า 1 Process ขึ้นไปนะครับ มันย่อมทำให้เกิดปัญหาเกิดขึ้นในการใช้งาน ถ้ามีโปรแกรม 1 โปรแกรมทำงานในระบบคอมพิวเตอร์เรา ปัญหาก็ไม่เกิดขึ้นรนะครับ เมื่อมีหลาย ๆ โปรแกรมทำงานอยู่บนระบบเดียวกันมีการใช้ทรัพยากรแย่งกันใช้ มันย่อมเกิดปัญหาขึ้นนะครับ ดังนั้น มันจะต้องมีการจัดสรรการใช้ Process ขึ้นนะครับ ถึงอย่างไรก็ตามนะครับ ปัญหาของการทำงานที่เราจะกล่าวต่อไปนี้ มันจะต้องไม่เกิดขึ้นกับระบบของเรานะครับ ดังนั้น คนที่ออกแบบระบบปฏิบัติการจะต้องแก้ปัญหาดังต่อไปนี้ให้ได้นะครับ เวลาเราเขียนโปรแกรม เราจะต้องเลี่ยงปัญหาเหล่านี้ให้ได้นะครับ ปัญหาการทำงานของ Process อันดับแรกเลยนะครับ ก็คือปัญหาการตัดตอนนะครับ ปัญหาการตัดตอนเกิดจากอะไรครับ เกิดจากการที่ Process หนึ่ง ต้องการใช้ทรัพยากรของ Process แต่ปรากฏว่า Process นั้นมีลำกับความสำคัญน้อยกว่าจึงยอมปลดปล่อย หรือปล่อยให้ Process ที่มีระดับความสำคัญมากกว่าเข้าไปครอบครองตัว CPU แทนตัวมันเองนึกออกใช่ไหมครับ ก็คือ Process หนึ่ง อย่างเช่น ผมน่ะกำลังจะเข้าไปครอบครอง CPU แต่ปรากฏว่าอุบลเข้ามาต่อคิวผมบังเอิญว่าลำดับความสำคัญอุบลสำคัญมากกว่าผม ผมยอมให้อุบลเข้าไปแทนผม นี่เกิดการตัดตอนขึ้น ถ้าเราต้องการอธิบายให้เป็นวิชาการ อธิบายว่าเกิดจาการที่ Process ใด Process หนึ่งที่จะเข้าไปครอบครอง CPU หรือเข้าไปในสถานะ Run นั้นยอมให้ Process ที่มีลำดับความสำคัญมากกว่าเข้าไปแทนที่มัน มันก็จะเกิดการตัดตอนขึ้นนะครับ ซึ่งปัญหาตัวนี้นะครับ คนที่ออกแบบระบบปฏิบัติการจะต้องไม่ให้เกิดขึ้นนะครับปัญหาต่อมานอกจากปัญหาการตัดตอนแล้ว ปัญหาต่อมา ก็คือปัญหาการอดตาย หรือปัญหาการเลื่อนไปอย่างไม่มีสิ้นสุด หมายความว่าเมื่อเกิดการตัดตอนขึ้นใช่ไหม Process หนึ่งปล่อยให้ Process อีก Process หนึ่งที่มีความสำคัญมากกว่าเข้าไปครอบครอง CPU มัน แล้วแทนไปเรื่อย ๆ นี่เราเรียกว่าว่า "การอดตาย"เช่น ตัวอย่างเมื่อกี้ผมจะเข้าไปครอบครอง CPU แต่บังเอิญว่าอุบลมาต่อคิว อุบลมีลำดับความสำคัญมากกว่า อุบลเข้าไปแทนที่พออุบลเสร็จแล้ว ผมจะเข้าไปต่อ แต่ปรากฏว่าแม็กกี้มาต่อแล้วแม็กกี้มีความสำคัญมากกว่าผม แม็กกี้ก็เข้าไปแทนที่อีก พอแม็กกี้ออกมา ผมจะเข้าไปต่อ ปรากฎว่ามิ่งมาต่อ แล้วมิ่งมีความสำคัญมากกว่า มิ่งก็ก็คือรอไปไม่มีวันสิ้นสุด รอไปเรื่อย ๆ ไม่มีวันสิ้นสุดนะครับ ถ้าเป็นสมัยก่อนนะครับ ผมก็จะยกตัวอย่างให้พวกเราเห็นภาพชัดเจน ก็คือสมมติว่าที่อาคาร 7 เรานะครับ สร้างห้องน้ำมาใหม่นะครับ ห้องน้ำเปรียบเสมือน CPU สมมตินะผมจะเข้าเป็นคนแรกกำลังจะเปิดประตูเข้าไปห้องน้ำ ปรากฏว่าอุบล ไม่ใช่อุบลอธิการ สะกิดหลังพิเชนทร์ ๆ ผมขออญาตเข้าก่อน ผมมองไปข้างหลังอธิการใหญ่กว่าผมนี่เกิดการตัดตอนแต่พออธิการเข้าไปเสร็จปุ๊บปรากฏว่ามีคนสะกิดหลังอีกแล้ว ผู้ว่าฯ สะกิดหลังเป็นอย่างไรครับ ผู้ว่าเข้าไปนายอำเภอสกิดหลัง ผู้ว่าสกิดหลังเกิดการต้องตัดตอน พอตัดตอนเสร็จปุ๊บไม่มีโอกาสได้เข้า ก็เลยเป็นอดตายนะครับ นี่คือปัญหาหาที่ 2 ที่เกิดขึ้นกับ Process ของเรานะครับ ปัญหาที่ 3 เขาบอกว่าทำไมถึงให้เกิดการตัดตอนไม่ได้ หรือการอดตายไม่ได้ มันจะเกิดปัญหาขึ้น ถ้าทรัพยากรบางประเภท ถ้าเราปล่อยให้เกิดการตัดตอนจะเกิดปัญหาขึ้น เช่น เครื่องพิมพ์ ให้เรามองถึงเป็นเครื่องพิมพ์ที่เป็นหัวเข็ม เคยเห็นไหม มันจะดังแกร๊ก มันจะพรินต์ทีละบรรทัดเคยเห็นไหมครับ เครื่องพิมพ์แบบหัวเข็ม เหมือนเราไปซื้อของตามเซเว่นหรือเราไปจ่ายค่าเทอม มันจะพรินต์เป็นหัวเข็มออกมา ถ้าเราปล่อยให้เกิดการตัดตอนขึ้น เช่น ผมสั่งพรินต์ไปได้ 2 บรรทัดสั่งมา อุบลบอกว่าอุบลมีความสำคัญมากกว่าแล้วเกิดการตัดตอนบรรทัดที่ 3 จะกลายเป็นของอุบล ดังนั้น ห้ามให้มีเหตุการณ์นี้เกิดขึ้นนะครับ เพราะทรัพยากร บางอย่างมันให้เกิดขึ้นไม่ได้นะครับ ปัญหาต่อมานะครับ ปัญหาการติดตายดูรูปประกอบเลยนะครับ ปัญหาการติดตายคืออะไร ครับ ดูรูปเลย เมื่อ Process ใดก็แล้วแต่ ครอบครองทรัพยากรของตัวเองอยู่แล้วในขณะเดียวกันต้องการไปครอบครองทรัพยากรของเรา แต่ไม่ยอมให้ Process อื่น เข้ามาครอบครองทรัพยากรของตัวเองเหมือนกันนะครับ เช่น ผมบอกอุบลอาจารย์ยืมสตางค์ของอุบลหน่อย 1 ร้อยล้าน อุบลก็บอกเหมือนกัน อาจารย์ผมก็ยืมสตางค์อาจารย์หน่อย 200 แต่อุบลก็ไม่ควักให้ผมนะ ผมก็ไม่ควักให้อุบลเพราะเราก็ไม่มีทั้งคูนะคือ อยากได้สตางค์อุบล อุบลไม่ควักให้ นี่คือลักษณะการปิดตายก็คือ Process ใด Process หนึ่งนี่ครอบครองทรัพยากรตัวเองอยู่แต่อยากไปได้ทรัพยากรของคนอื่นคนอื่น แต่ตัวเองก็ไม่ยอมให้ทรัพยากรของตัวเองนะครับ นี่คือลักษณะการติดตายหรือ Dead Lock นะครับเขาบอกว่าปัญหาการติดตายนั้น ไม่จำเป็นต้องเกิดจาก 2 Process อาจจะเกิดจากหลาย Process ก็ได้นะครับ มากกว่า 2 Process แต่ต้องมีเงื่อนไขดังนี้นะครับ เช่น 1. การครอบครองเป็นแบบตัดตอนไม่ได้ อันนี้ก็ตัดตอนไม่ได้นะ Process A, Process B ก็ไม่ได้ Process C ก็ไม่ได้ Dead Lock เลย ติดตาย ไม่ไป ไม่มา นะครับ เงื่อนไขแบบที่ 2 การครอบครองเป็นแบบไม่เกิดร่วมต่างคนต่างทำงาน ต่างคนต่างอยู่คนละส่วนติดตายขึ้นนะครับ เงื่อนไขที่ 3 คือในการรอใช้ทรัพยากรเป็นการรอแบบวนรอบหรือวงรอบ หรือภาษาเขีียนโปรแกรมเราเรียกว่า "วนลูป" หรือ "วนรอบ"ก็จะเกิดปัญหาการปิดตายขึ้นนะครับ นี่คือปัญหา 3 ปัญหาที่เกิดขึ้นในระบบเราแต่เวลาเราออกแบบ OS ก็เกิดขึ้นหัวข้อสุดท้ายนะครับ หัวข้อสุดท้ายของบทนี้นะครับ เธรดนะครับ เขาบอกในระบบปฏิบัติการบางตัวซึ่งเราใช้แล้วนะครับ เราใช้แบบนี้อยู่นะครับ ถ้าเป็นสมัยก่อนยกไม่เกิดระบนะครับ เธรด ก็คือเป็นการที่ระบบปฏิบัติการแบ่งย่อย Process ออกเป็นส่วน ๆ ดูรูปประกอบเลยนะครับ นี่... ทำไมไม่ขึ้น ขวามือผมนะครับ กับ 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 สัปดาห์ สัปดาห์หน้าเราไม่ได้เจอกันนะครับพี่ล่าม สัปดาห์หน้าจะพาน้อง ๆ ไปนอกสถานที่ก็ถ้าไม่มีใครถามอะไรแล้วนะครับ ก็เจอกันสัปดาห์หน้านะครับ ไปดูงานนอกสถานที่กัน โอเคครับผมไป