การจัดการเกี่ยวกับกระบวนการ(Process Management)

1.การทำงานของกระบวนการ(Process Execution)

กระบวนการทำงานภายใต้สภาวะแวดล้อมของคอมพิวเตอร์ในลักษณะหนึ่งๆ อาจเปลียนไปตามระบบย่อย(โปรแกรม) ของระบบปฏิบัติการและทรัพยากรที่ใช้การทำงานกระบวนการนั้น เช่น เวลาการทำงานของหน่วยประมวลผล หน่วยความจำปฐมภูมิ แฟ้มข้อมูล อุปกรณ์อืนพุต/เอาท์พุต ช่องสัญญาณบนเครื่อข่ายคอมพิวเตอร์
1.1สถานะของกระบวนการ(Process states)
5-state model คือ new,ready,running,blocked,exit
เริ่มจากnew กระบวนการแรกที่ถูกสร้างขึ้นจากกระบวนการหลัก(parent process)ของระบบทุกๆกระบวนการล้วนเป็นกระบวนการลูก(child process) เพื่อกระทำตามที่ถูกกำหนดหีือร้องขอ เทื่อกระบวนการเสร็จภาระกิจ  ก็จะคืนทรัพยากรทั้งหมดให้กลับระบบและถูกลบทิ้งไป 
     กระบวนดารหลักอันแรกถูกสร้างขึ้นจาก bootstrap program ในระหว่างเครื่องเปิดใหม่มี 2 กระบวนการที่เป็น resident processหรือ swapper และ init (ซึ่งเป็นกระบวนการหลักที่สร้างlogin shell ให้กระบวนการลูก) เมื่อระบบทำการเข้าสู่สถานะ  multiuser level กระบวนการหลัก initจะสร้าง(spawn) กระบวนการและเปลือกระบบเพื่อรองรับสภาวะการกระทำแบบหลายผู้ใช้(multiuser) กระบวนการลูกเหล่านี้มีสภาพเป็นnew ที่คอยรับคำสั่งร้องขอ หรือเรียกใช้งานจากผู้ใช้(เช่น loginเข้าสู้ระบบ) หนึ่งในกระบวนการลูกที่ถูกสร้างขึ้นเพื่อกระทำคำสั่ง คือ กระบวนการจัดกำหนดการ(scheduling process) หรือscheduler
    กระบวนการลุกยอมรับคำสั่ง/คำร้องขอข้างต้น scheduler ก็จะกำหนดการเข้าแถวคอยให้แก่กระบวนการลูก เพื่อเข้าสู่การประมวลผลในหน่วยประมวลผล กระบวนการลุกได้รับการยอมรับ(admit)เข้าสู้แถวคอย สถานะมันจะเปลี่ยนเป็น ready
   สมมุติว่า หน่วยประมวลผลไม่มีงานค้าง กระบวนการสถานะready จะถูกส่ง(dispatch) เข้าสู่การปรุะมวลผล ทันที กลายเป็นสถานะrunning เมื่อประมวลผลเสร็จก็จะถูกปล่อย(release) สู่ระบบเอาท์พุตต่อไป เป็นสิ้นสุดของกระบวนการคือ exit  หากกระบวนการนี้มีความยาวกว่าจะประมวลผลเสร็จครั้งเดียว ความหมายของครั้งเดียวในนาทีนี้คือ ใช้เวลาประมวลผลนานกว่าที่กำหนดไว้ เช่น เกิน 3 miliseconds ที่ตั้งไว้จะเกิดการขัดจังหวะของนาฬิกา กระบวนการถูกพักการประมวล(timeout) และส่งผลกลับไปยังหน่วยความจำปฐมภูมิ(หรือทุติยภูมิบริเวณ swap-space) สถานะก็จะกลับไปสู่ ready อีกครั้งและเข้าสู่แถวคอยรอการประมวลผลต่อไป
     ระหว่างการประมวลบางครั้งอาจเรียกใช้ทรัพยากรหรือต้องการร้องขอบริการลักษณะจากระบบปฏิบัติการ  เช่น เรียกใช้เทป  รออ่านข้อมูลจากแป้นพิมพ์หรือร้องขอให้ระบบสร้างไดเร็คทอรี่ไหม่บนหน่วยความจำทุติยภูมิ งานดังกล่าวจำเป็นต้องมีกระบวนการควบคุมผ่านกลไลการขัดจังหวะ เพื่อส่งกระบวนการร้องขอนั้นๆ(ซึ่งเป็นกระบวนการใหม่) เข้าสู่แถวคอยการประมวล กระบวนการนี้ต้องเปลี่ยนจาก runningเป็น Blocked จนกว่าที่รอคอยจะเกิด (event occurs) คือได้รับการตอบสนองของระบบกระบวนการนี้จะเปลี่ยนสถานะเป็น ready อีกครั้งหนึ่งและกลับสู่แถวคอยเพื่อรอการจัดกำหนดการประมวลผลจาก scheduler ต่อไป
     จะเห็นได้ว่า 5สถานะ มีกลไกหรือขั้นตอนเพื่อป้องกันความผิดพลาดที่อาจเกิดต่อกระบวนการใดกระบวนการหนึ่ง และประสานงาน หากมีการขัดข้องสามารถแก้ไขหรือกู้ (recover)สถานการณ์เพื่อลดการเกิดความเสียหายให้น้อยที่สุดเท่าที่เป็นไปได้

1.2 บล็อกควบคุมกระบวนการ (process control block)

ในการสลับงานเข้าออกระบบดำเนินการจากจุดที่ทำค้างไว้ได้ทันที่ โดยอาศัยPCB ประกอบด้วย 3 กลุ่ม คือprocess identification, processor state information , process control information เก็บข้อมูลไว้ดังนี้



แต่ระบบเก็บข้อมูลเพิ่มมากหรือน้อยขึ้นอยู่กับการออกแบบPCB ที่รองรับการทำงานหน่วยประมวลผล เช่น program status word, process stack, created resources,no. of children ข้อมูลเหล่านี้จำเป็นต่อการควบคุมการทำงานของกระบวนการ จนกว่าการกระทำเสร็จสิ้นจึงจะถูกลบทิ้งหรือบันทึกไว้ในลักษณะใดลักษณะหนึ่งสำหรับใช้ในระบบบัญชีต่อไป
       ดังนั้นทุกครั้งที่สลับงานเข้า/ออก จะสำรองPCBผนวกเข้ากับตัวกระบวนการ ก่อนสลับออกจากหน่วยประมวลผลกระบวนการถูกสลับเข้าสู่หน่วยประมวลอีกครั้ง โดยอ่านข้อมูลผ่านPCB เรียกค่าต่างๆที่จำเป็นกลับคืนมาเพื่อดำเนินการต่อจากจุดพักคราวที่แล้วได้ทันที

1.3ปฐมฐานของการควบคุมกระบวนการ(Process control primitives)

ในการสร้งกระบวนการใหม่มีกระบวนการหลักเริ่มต้น เป็นผู้ร้องขอOSคือlogin process จากนั้นกระบวนการใหม่(กระบวนการลูก) ก็จะสร้างกระบวนการใหม่(หลาน,หลาน) ถัดไปOSมี process conrol primitives ดำเนินกระบวนการใหม่ใจกลางระบบ ได้แก่
  • crate ทำหน้าที่สร้างและจัดสรรทรัพยากรที่จำเป็นได้แก่กระบวนการใหม่ เช่น process ID(PID),PCB,หน่วยความจำ process image
  • suspend พักสถานะของกระบวนการที่กระทำการในใจกลางระบบไว้
  • activate ส่ง (dispatch) กระบวนการสู่การประมวลผล
  • destroy ทำลายกระบวนการหลังสิ้นสุดการกระทำการและคืนทรัพยกรให้แก่OS
  • change priority เปลี่ยนสถานะหรือความสำคัญของกระบวนการตามขั้นตอนการกระทำการ
    primitivesเป็นส่วนหนึ่งของระบบดำเนินการที่ควบคุมการทำงานของกระบวนการต่างๆ 5สถานะ ภายใต้กระบวนการ(Process management)

2.การจัดการกำหนดของกระบวนการ(Process Scheduling)

OSทำให้หน่วยประมวลผลทำงานตลอดเวลาโดยไม่มีเวลาว่าง(idle time)แม้แต่เสี้ยววินาที เพือบรรลุผลต้องมีแนวคิด
  • short-term scheduling
  • medium-term scheduling
  • long-term scheduling

แนวคิดกำหนดการ(Scheduling concepts)

มีข้อสังเกตคือ
1.กระบวนการหลักเสร็จก่อนกระบวนการลูก เพราะไม่มีการคอยกัน
2.กระบวนการลูกไม่อยู่ในสายการควบคุมและการใช้ทรัพยกรร่วมกันกับกระบวนการหลักเลย  กระบวนการลูกจะ clone ทรัพยากรของกระบวนการหลัก ซึ่งจะเหมือนกันเฉพาะวินาทีแรกที่สร้างเสร็จ  เมื่อกระบวนการลูกเริ่มทำงานด้วยตัวเอง คุณสมบัติก็จะเปลี่ยนไปทันที





preemptive scheduling and non-preemptive scheduling

กำหนดการถูกปรับเมื่อกระบวนการทำการในหน่วยประมวลผล
(1)เสร็จสิ้นการทำงานและเลิกใช้หน่วยประมวล
(2)เปลี่ยนจากสถานะ running เป็นready/blockedเนื่องจากtimeout/event wait รอให้เหตุการณ์ใดเหตุการณ์หนึ่งเกิด scheduler ต้องจัดกระบวนการใหม่เพื่อไม่ให้หน่วยประมวลผลว่าง ปรับกำหนดการที่เรียกว่า non preemptive scheduling 










































































































































































































































































































































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