วันอาทิตย์ที่ 31 พฤษภาคม พ.ศ. 2552

บทที่ 4 เรื่อง Process (กระบวนการ) OS

รายวิชาระบบปฏิบัติการ
บทที่ 4 เรื่อง Process (กระบวนการ)


กระบวนการคือ ?
กระบวนการคือโปรแกรมที่กำลังทำงานอยู่



สรุปจากเนื้อหาในบทเรียน




หน้าที่ 1

หน้า 1 รูป 1
เป็นรายละเอียดหัวข้อที่ต้องเรียนในบทนี้

หน้า 1 รูป 2
จากนี้ไปคำที่เจอบ่อยคือคำว่า Batch หรือการทำงานแบบกลุ่ม และ Jobs หรืองานนั่นเอง
และอีกคำที่จะเจอบ่อย ๆ จนจบวิชาก็คือ Time-sharde System หรือ Time Sharing System
ซึ่งก็คือระบบแบ่งส่วนเวลานั่นเอง
Jobs และ Process มีความหมายเดียวกันคือ งาน ซึ่งงาน ก็คือโปรแกรมที่กำลังทำงานอยู่

หน้า 1 รูป 3
เป็นรูปเชิงเปรียบเทียบง่าย ๆ โปรแกรมที่ยังไม่ทำงานเราก็จะเรียกว่าโปรแกรม
แต่หากโปรแกรมนั้น ๆ ทำงานแล้วเราจะเรียกโปรแกรมที่ทำงานอยู่ว่าโพรเซส
หากเทียบกัน โปรแกรมก็เหมือนสิ่งไม่มีชีวิต
ส่วนโพรเซสก็เปรียบเหมือนสิ่งมีชีวิตนั่นเอง








หน้าที่ 2

หน้า 2 รูป 1
เป็นตัวอย่างกระบวนการง่าย ๆ แบบเป็นสถานะ แสดงให้เห็นอย่างชัดเจน
ให้ทำความเข้าใจกับเส้นโยง
เมื่อโปรแกรมเริ่มทำงาน (new) ก็จะมาอยู่ในสถานะพร้อม (ready)
หลังจากนั้นจะมีการเลือกกระบวนการในหน่วยความจำมาครอบครอง CPU (scheduler dispatch)
เมื่อกระบวนการโดนเลือกแล้วก็จะเข้าสู่การทำงาน (running) ซึ่ง ณ. จุดนี้จะเห็นเส้นออกไปสองทาง
โดยเส้นทางแรกหากยังทำงานไม่เสร็จแล้วเกิด สัญญาณขัดจังหวะ (inturrupt) ก่อน งานที่ทำอยู่จะถูก
บันทึกสถานะเอาไว้แล้วกลับไปอยู่ในสถานะพร้อมอีกครั้ง เพื่อรอการทำงานรอบต่อไป
แต่หากงานในสถานะการทำงาน (running) ทำเสร็จก่อนเกิดสัญญาณขัดจังหวะ งานนั้นก็จะเข้าสู่สถานะ
สิ้นสุดการทำงาน (terminated) นี่คือส่วนของการประมวลผล
จะมีอีกเส้นหนึ่งจากสถานะ running ที่โยงไปยัง waiting เส้นนี้คือเส้นของการทำงานร่วมกับอุปกรณ์
ซึ่งงานที่อยู่ในสถานะ running สามารถเชื่อมต่อกับอุปกรณ์ได้ แต่ก็จะเป็นลักษณะการคอยแบบเรียงลำดับ
เมื่อมีการทำงานเสร็จในส่วยของ waiting กระบวนการนั้นก็จะถูกส่งเข้าสู่สถานะ ready อีกครั้ง

หน้าที่ 2 รูป 2 - 3
สถานะของกระบวนการจากภาพในรูปที่ 1 จะเห็นได้ว่ามีสถานะการณ์หลักเพียงห้าอย่างเท่านั้น (ในวงรี)
ซึ่งรูป 2-3 นี้ก็จะอธิบายแต่ละสถานะอย่างละเอียดอีกที









หน้าที่ 3

หน้า 3 รูป 1
เป็นรูปแสดงตารางข้อมูลการประมวลผล (Process Control Block : PCB)
หลัก ๆ อยากให้ดูส่วนสำคัญสองตัวคือ
Process state ก็คือสถานะของกระบวนการ ดังที่กล่าวมาในหน้าสอง ที่มีอยู่ 5 สถานะนั่นเอง
ต่อมาคือ Process Number คือตัวชี้โปรแกรม เป็นการรันหมายเลข Process ซึ่งจะไม่ซ้ำกัน

หน้า 3 รูป 2
เป็นรูปแสดงการสลับงานหรือที่เรียกว่า context switch ซึ่งจากในภาพจะมีกระบวนการสองตัว
คือกระบวนการ p0 และกระบวนการ p1 ซึ่งจะมีการบันทึกตำแหน่งล่าสุดของการทำงาน
แล้วจึงสลับงาน เมื่อสลับงานก็จะครอบครอง CPU ไปเรื่อยจนกว่าจะเกิด interrupt
หลังจากเกิด interrupt แล้วก็จะบันทึกตำแหน่งงานที่ค้างไว้ของกระบวนการที่ทำอยู่
แล้วจึงเรียกข้อมูลที่บันทึกไว้ของงานเดิมออกมาเพื่อทำงานต่อสลับกันไปแบบนี้เรื่อย ๆ จนกว่างานเสร็จ

หน้า 3 รูป 3
หน้านี้ไม่ค่อยมีรายละเอียดเพิ่มเติม อ่านจากในรูปได้เลย








หน้าที่ 4

หน้า 4 รูป 1-3
ไม่ค่อยมีเนื้อหา เพราะเนื้อหาอยู่ในภาพอยู่แล้ว









หน้าที่ 5

หน้า 5 รูป 1
เป็นหัวข้อเกี่ยวกับการเปลี่ยนงานหรือ context switch ซึ่งได้ผ่าน ๆ มาแล้วในหน้า 3 รูป 2
อยากให้เน้นว่าการเปลี่ยนงานบ่อย ๆ ไม่ดี เพราะทำให้ประสิทธิภาพลดลง
เพราะแทนที่จะได้ใช้เวลาระหว่างสับเปลี่ยนไปประมวลผล ก็ต้องมาเสียเวลาโดยใช่เหตุ

หน้า 5 รูป 2
หัวข้อแรกที่ว่าโครงสร้างแบบต้นไม้ มีตัวอย่างอยู่ในหน้าที่ 6 รูปที่ 2

หน้า 5 รูป 3
จากข้อย่อยที่สองเกี่ยวกับกระบวนการลูก
หากกระบวนการลูกถูกยกเลิก กระบวนการลูกอื่น ๆ หรือกระบวนการแม่ก็ยังสามารถทำงานต่อไปได้
แต่หากยกเลิกกระบวนการแม่ กระบวนการลูกทั้งหมดจะถูกทำลายไปด้วย








หน้าที่ 6

หน้า 6 รูป 1-3
ไม่มีอะไรน่าสนใจเท่าไหร่ ผ่าน ๆ ไปได้











หน้าที่ 7

หน้า 7 รูป 2
คำว่า Producer-Consumer Problem ความหมายก็คือ ปัญหาผู้ผลิต - ผู้บริโภค
จะเห็นได้ว่ามีหัวข้อย่อยว่า ความจุแบบไม่จำกัด อยากให้เน้นว่าความจุแบบไม่จำกัดนี้ไม่มีจริงใน
ระบบคอมพิวเตอร์ ซึ่งความจุแบบไม่จำกัดนี้เป็นได้เพียงทฤษฎีเท่านั้น








หน้าที่ 8

หน้า 8 รูป 2
เธรด (Thread) ก็คือกระบวนการย่อยที่เกิดในกระบวนการหลัก
จริง ๆ แล้วหากจะนอกเรื่องหน่อย ก็สามารถขยายความคำว่าเธรดได้อีกมาก ยกตัวอย่างเช่น

OS สมัยใหม่จะมีการทำงานในรูปแบบ Multi Thread เช่น
โปรแกรม Web Browser (โปรแกรมเปิดเวบไซต์)
ก็จะมีเธรดย่อย คือเธรดส่วนของการแสดงข้อความ ส่วนของการแสดงรูปภาพ
เธรดที่ทำหน้าที่ดึงข้อมูลจากเครือข่าย ฯลฯ
หรือที่ใกล้ตัวก็เช่น Microsoft Word ก็จะมีส่วนของเธรดที่แสดงข้อความแสดงรูปภาพ
เธรดที่ใช้รอรับข้อมูลจากคีย์บอร์ด


User & Kernel Thread
แบ่งตามระดับการสนับสนุน

- User Thread
• ได้รับการสนับสนุนจาก Kernel อยู่ด้านบน และอยู่ใน Library ของ Thread ในระดับผู้ใช้
• มีการจัดการในระดับผู้ใช้ ให้สามารถสร้างและจัดการได้เร็วโดยไม่ใช้ Kernel

- Kernel Thread
• สนับสนุนจาก OS
• Kernel จะสร้าง จัดเวลา จัดการเธรด ในพื้นที่ของ Kernel เอง
• ทำงานได้ช้ากว่า User Thread
• ถ้าเธรดเกิดการบล๊อค System Call ระบบจะยังคงทำงานได้ โดย Kernel อื่นมาทดแทน
• พบได้ใน Windows NT , Windows Server , ฯลฯ










หน้าที่ 9

หน้า 9 รูป 1-3
ไม่มีอะไรน่าสนใจ หรือใครจะนั่งแปลก็ตามใจ










หน้าที่ 10

หน้า 10 รูป 2
สำคัญทั้งหมด แต่ไม่จำเป็นต้องสรุปเพิ่ม

หน้า 10 รูป 3
ตรงที่ว่า สร้างเส้นทางการเชื่อมต่อระหว่างกัน นั่นหมายความว่า ต้องมีการสร้าง connection ก่อน
จึงจะรับส่งข้อความระหว่างกันได้











หน้าที่ 11

หน้า 11 รูป 2
เนื้อหาตามในภาพ ซึ่งการสื่อสารโดยตรงใช้ในกรณีการสื่อสารทางเดียว

หน้า 11 รูป 3
เนื้อหาตามในภาพอีกเช่นกัน แต่จะใช้ในกรณีสองกระบวนการขึ้นไป
ซึ่งกรณีของ Windows XP จะใช้การสื่อสารได้ทั้งแบบทางเดียว และแบบสองทาง










หน้าที่ 12

หน้า 12 รูป 1-3
เนื้อหาตามในหนังสือยังไม่มีอะไรต้องเพิ่มเติม











หน้าที่ 13

หน้า 13 รูป 1
จะเห็นได้ว่ามีลักษณะความจุแบบไร้ขอบเขต
แต่อย่างที่กล่าวไว้ข้างต้นว่าความจุแบบนี้ไม่มีจริง เพราะคอมพิวเตอร์มีข้อจำกัด

หน้า 13 รูป 2
ส่วนของข้อยกเว้น
• การยกเลิกกระบวนการ เช่น การดาวน์โหลดข้อมูลยังไม่เสร็จแล้วยกเลิก
• ข้อความสูญหาย เช่น กรณีส่งผ่านระบบเครือข่ายอาจเกิดการสูญหายของข้อมูลได้
• ข้อความเสียหาย เช่น กรณีโดนแฮก หรือ สัญญาณส่งมาไม่ดี


















จบไปอีกบท

ไม่มีความคิดเห็น:

แสดงความคิดเห็น