google logo
สนุก! ค้นหา สารบัญเว็บไทย ข่าว อีเมล์ หาเพื่อน คิวคิว ฟังเพลง คลาสสิฟายด์ ริงโทน สนุก! ทูลบาร์ ดูทั้งหมด>>
ดูบล็อกอื่น >
รูปโลโก้ S! Blogger เข้าสู่ระบบ สมัครสมาชิก

วิวัฒนาการของการจัดการข้อมูล Data » Information » Knowledge » Innovation Management

เขียนโดย MacroArt เมื่อ November 6, 2007 – 21:33 น.

เดืCPU CPU(Central Processing Unit) เป็นอุปกรณ์ที่ทำหน้าที่ประมวลผลข้อมูลและควบคุมการทำงาน
ของระบบคอมพิวเตอร์ วิวัฒนาการของ CPU ผ่านยุค (Generation) ต่างๆ มามากกว่า 20 ปี วันนี้
พลังประมวลผลได้พัฒนาเข้าสู่ความเร็ว 2 GHz แล้วซึ่งถือว่าสูงที่สุดใน Generation ที่ 7 นี้ และปี
2002 จะเป็นปีที่เข้าสู่ยุคที่ 8

ในปัจจุบัน CPU มีบริษัทที่ทำการพัฒนาและผลิตอยู่เพียง ไม่กี่รายนักได้แก่ค่ายยักษ์ใหญ่อย่าง Intel,ค่ายคู่กัดตลอด กาลอย่างAMD, หรือค่ายยักษ์เล็กนาม VIA-Cyrix, และ IDT Winchip แต่ที่ได้รับความนิยมในวงการและเป็นที่รู้ จักก็มี Intel และ AMD เท่านั้น ซึ่งทั้งสองนี้ต่างก็แข่งขัน พัฒนากำหนดรูปแบบและคุณลักษณะเฉพาะแยกออกจาก กัน ทำให้รูปแบบของ mainboard และ chipset จำเป็น
ต้องออกแบบให้แตกต่างกันตามไปด้วย ผลที่ตามมาก็คือ
ผู้ใช้ก็ต้องเลือกแยกกันอย่างเด็ดขาดว่าจะใช้เทคโนโลยี
CPU ของค่ายใด ซึ่งต่างพัฒนาความเร็วและสเถียรภาพ
ของระบบที่ไม่หนีห่างจากกันเท่าใดนัก

รูปแบบขา / Socketของ CPU
Socket 7 ใช้กับ CPU ที่มีขา 321 ขา ที่คงมีใช้จะมี intel รุ่น Pentium mmx, ของAMD รุ่น K5,
K6.K6-2, K6-III ของ Cyrix รุ่น 6X86MX, MII เป็นต้น
Socket 8 ใช้กับ CPU ที่มีขา 387 ขา มีใช้เฉพาะของ intel รุ่น Pentium Pro เท่านั้น
Socket 370 ใช้กับ CPU ที่มีขา 370 ขา มีใช้เฉพาะของ intel รุ่น Pentium III, Celeron
Socket A ใช้กับ CPU ที่มีขา 462 ขา มีใช้เฉพาะของ AMD ในรุ่น Athlon และ Duron
Socket 423 ใช้กับ CPU ที่มีขา 423 ขา มีใช้เฉพาะของ intel รุ่น Pentium 4 ซึ่งถือว่าใหม่ที่สุด
Slot 1 ใช้กับ CPU ที่มีขา 370 ขา มีใช้เฉพาะของ intel รุ่น Pentium III, Celeron อนที่แล้วผมไปสัมมนา Biz IT ที่ ม.เกษตรศาสตร์ ซึ่งเป็นงานสัมมนาฟรีที่จัดขึ้นทุกปีในช่วงเดือนตุลาคม ในช่วงเปิดการสัมมนามีวิทยากรคือ รศ.ยืน ภู่วรวรรณ มาบรรยายในหัวข้อ Innovation Management ซึ่ง อ.ยืน ได้กล่าวว่า…

เราเริ่มจากยุค Data Management ต่อมาจึงพัฒนาเป็น Information Management จนมาถึง Knowledge Management และในปัจจุบันกำลังเข้าสู่ Innovation Management

อ.ยืน ไม่ได้ขยายความประโยคนี้มากนัก แต่มันเป็นประโยคที่ฟังแล้วรู้สึกเห็นภาพมากๆ และอยากนำมาขยายความตามที่ผมเข้าใจครับ

Data Management คือการจัดการข้อมูลที่กระจัดกระจายอยู่รอบตัวเต็มไปหมด ให้อยู่ในรูปแบบที่เราสามารถเปิดดูข้อมูลได้ เพิ่มข้อมูลได้ แก้ไขข้อมูลได้ และลบข้อมูลได้ วิธีการจัดเก็บข้อมูลก็มีทั้งที่เป็นไฟล์และฐานข้อมูล สื่อที่ใช้จัดเก็บข้อมูลแบบดิจิตอลมีตั้งแต่เทปแม่เหล็กในสมัยก่อน จนสมัยนี้มีทั้งฮาร์ดดิสก์ ซีดี ดีวีดี เมมโมรี่การ์ดต่างๆ เป็นต้น

Information Management เป็นการต่อยอดขึ้นมาจาก Data Management เนื่องจากในองค์กรธุรกิจมีข้อมูลอยู่เป็นจำนวนมาก ฝ่ายขายก็มีข้อมูลลูกค้า ฝ่ายผลิตมีข้อมูลสินค้า ฝ่ายบัญชีมีข้อมูลการเงิน จะทำอย่างไรให้ข้อมูลเหล่านี้สร้างประโยชน์ในทางธุรกิจให้ได้มากที่สุด กุญแจสำคัญก็คือจะทำให้ข้อมูลทั้งหมดอยู่ในระบบหรือมาตรฐานเดียวกัน เพื่อลดความซ้ำซ้อนของข้อมูล (รวมถึงความซ้ำซ้อนของการเพิ่มหรือแก้ไขข้อมูล) ไม่ใช่ว่าฝ่ายขายคีย์ข้อมูลเข้าไปในระบบแล้ว แต่ฝ่ายบัญชีดันใช้คนละระบบ ทำให้ต้องคีย์ข้อมูลซ้ำอีก ซึ่งอาจจะเกิด human error ขึ้นได้ นอกจากนี้แล้วข้อมูลยังต้องถูกจัดระดับในการเข้าถึงด้วย ผู้บริหารกับพนักงานขายจะมีสิทธิ์ในการเข้าถึงข้อมูลได้ไม่เท่ากัน ด้วยความต้องการเหล่านี้ จึงได้เกิดซอฟท์แวร์ประเภท ERP (Enterprise Resource Planning) ขึ้น

Knowledge Management เกิดขึ้นโดยให้ความสำคัญกับคน ถึงแม้ว่าบริษัทจะบันทึกข้อมูลทางธุรกิจจำนวนมากไว้กับระบบคอมพิวเตอร์ที่เชื่อถือได้แล้ว แต่ก็ยังมีข้อมูลอีกเป็นจำนวนมากซึ่งอยู่กับตัวคน ถ้าเกิดว่าข้อมูลที่สำคัญอยู่กับคนเพียงคนเดียว แล้วคนนั้นลาออกไป บริษัทก็จะเกิดปัญหาขึ้นทันที ดังนั้นจึงต้องมีวิธีการนำข้อมูลที่อยู่กับคน ซึ่งเราเรียกกันว่าความรู้ มาเก็บไว้กับระบบของบริษัท เพื่อให้ทั้งองค์กรสามารถดำเนินงานต่อไปได้โดยไม่ต้องพึ่งพาคนเพียงคนเดียว นอกจากนี้แล้ว ยังต้องมีวิธีโน้มน้าวหรือกระตุ้นให้คนสามารถแบ่งปันความรู้หรือที่เรียกว่า Knowledge Sharing ให้กับผู้อื่นได้ง่ายด้วย

อ.ยืน ได้เล่าถึงเรื่อง Knowledge Sharing เนื่องจากมีผู้ถามขึ้นในงานสัมมนา อาจารย์เคยทำการทดลองโดยนำดอกไม้ช่อหนึ่งมาให้นักศึกษาคนหนึ่งดู แล้วให้นักศึกษาคนนั้นเขียนบรรยายลักษณะของดอกไม้ลงในกระดาษ A4 หนึ่งแผ่น จากนั้นอาจารย์ก็นำกระดาษแผ่นนั้นไปให้นักศึกษาอีกคนอ่านเพื่อวาดภาพดอกไม้ออกมา ซึ่งแน่นอนว่าภาพดอกไม้ที่วาดออกมาจะไม่เหมือนกับดอกไม้ต้นฉบับเลย นี่คือความยากของการทำ Knowledge Sharing

หลังจากที่นักศึกษาวาดภาพดอกไม้เสร็จแล้ว อาจารย์ก็จะเอาดอกไม้จริงมาให้ดู แล้วให้นักศึกษาคนนั้นเขียนคำบรรยายลง A4 อีกเช่นกัน แล้วก็เอากระดาษไปให้นักศึกษาคนที่สามวาดออกมาเป็นภาพ ซึ่งจะพบว่าภาพที่วาดออกมาจะเริ่มเหมือนกับต้นฉบับมากขึ้นเรื่อยๆ เมื่อมีการทำซ้ำแบบนี้ไปหลายๆ รอบ นี่ก็คือสิ่งที่เรียกว่า Learning Curve นั่นเอง

กลับมาที่ยุคปัจจุบันก็คือยุคของ Innovation Management ซึ่งเป็นคำที่ค่อนข้างใหม่ แม้แต่ใน Wikipedia ก็ยังไม่มีคำนี้อยู่ในระบบ ผู้บริโภครายย่อยอย่างพวกเรามักจะคุ้นเคยกับคำว่านวัตกรรมในแง่ของผลิตภัณฑ์ (Product Innovation) อย่างเช่น iPod เป็นนวัตกรรมใหม่ของการฟังเพลง แต่ยังมีนวัตกรรมประเภทอื่นอีกที่เรามองไม่ค่อยเห็น เช่น นวัตกรรมด้านกระบวนการ (Process Innovation) ของ Dell ซึ่งเปลี่ยนวิธีการประกอบคอมพิวเตอร์ให้เป็นแบบ just-in-time จนกลายเป็นบริษัทขายคอมพิวเตอร์ยักษ์ใหญ่ของโลก หรือนวัตกรรมด้านโมเดลธุรกิจ (Business Model Innovation) ของ Google ที่ช่วยให้ผู้คนทั่วโลกสามารถซื้อโฆษณาออนไลน์ได้ง่ายๆ และได้ผล

หัวใจสำคัญของ Innovation Management อยู่ที่กระบวนการจัดการกับนวัตกรรมตั้งแต่จุดเริ่มต้นของความคิดไปจนถึงปลายทางที่ออกมาเป็นสินค้าให้กับลูกค้า จะทำอย่างไรให้คนในองค์กรมีความคิดริเริ่มสร้างสรรค์สิ่งใหม่ๆ ขึ้นมา จะมีวิธีคัดกรองความคิดจำนวนมากให้เหลือเฉพาะความคิดที่เป็นประโยชน์ต่อองค์กรได้อย่างไร (และต้องระวังไม่ให้เผลอโยนความคิดที่ดีทิ้งไปด้วย) จากความคิดที่คัดกรองแล้ว ก็ต้องถูกวิจัยและพัฒนาให้ออกมาเป็นผลิตภัณฑ์ และออกสู่ท้องตลาดในที่สุด ความคิดริเริ่มจำนวนนับหมื่นในตอนแรก อาจจะกลายเป็นสินค้าเพียงชิ้นเดียวในบั้นปลาย

หัวข้อหนึ่งที่น่าสนใจมากในเชิงของ Innovation Management ซึ่งเท่าที่ผมทราบมา ตอนนี้ยังไม่มีวิทยานิพนธ์ในระดับปริญญาเอกของที่ไหนที่ทำเรื่องนี้ นั่นก็คือ “จะรู้ได้อย่างไรว่าเมื่อไหร่ที่คนจะยอมรับนวัตกรรมที่เราสร้างขึ้นมา” บางทีเราคิดอะไรแปลกใหม่ขึ้นมาได้ แต่พอเผยแพร่ออกไปในวงกว้าง กลับกลายเป็นว่าคนทั่วไปไม่ยอมรับ แต่ถ้าหลังจากนั้นสัก 5 ปี สิ่งที่เราสร้างขึ้นมาถึงจะเริ่มเป็นที่ยอมรับในวงกว้าง

ลองดูกรณีของโมโตโรล่าที่มีความคิดจะทำโทรศัพท์เคลื่อนที่มาตั้งแต่ปี 1985 เพื่อช่วยให้คนทั้งโลกสามารถติดต่อสื่อสารถึงกันได้สะดวก โมโตโรล่าจึงตั้งบริษัทขึ้นมาดำเนินการในปี 1991 และมีสินค้าออกมาให้บริการครั้งแรกในปี 1998 ภายใต้ชื่อ Iridium ซึ่งเป็นโทรศัพท์ผ่านดาวเทียม แต่กลับมีผู้ใช้แค่หมื่นราย และค่าโทรศัพท์ก็แพงมาก สุดท้ายในปี 1999 บริษัทก็ล้มละลาย จะเห็นได้ว่าถึงแม้โมโตโรล่าจะมีวิสัยทัศน์ที่ดีเยี่ยมที่อยากให้คนทั้งโลกใช้โทรศัพท์เคลื่อนที่ แต่บริษัทขาดการจัดการนวัตกรรมที่ดี ไปเลือกใช้เทคโนโลยีที่มีข้อจำกัดหลายอย่าง และตลาดก็ไม่ยอมรับอีกด้วย

เรื่อง Innovation Management สามารถนำมาเชื่อมโยงสู่เรื่องของเว็บได้เหมือนกัน เชื่อได้เลยว่าถ้าใครทำ E-commerce เปิดร้านขายของบนอินเทอร์เน็ตสำหรับลูกค้าคนไทยตั้งแต่เมื่อ 5-10 ปีที่แล้ว ถ้าสายป่านไม่ยาวพอ อาจจะอยู่ไม่ถึงทุกวันนี้ เพราะในอดีตคนไทยยังไม่ยอมรับนวัตกรรมด้านการค้าในโลกยุคใหม่ แต่ในปัจจุบันนี้ก็เริ่มยอมรับกันมากขึ้น

ผมเชื่อว่ามีนักพัฒนาเว็บหลายคนที่ชอบดูโมเดลใหม่ๆ ของเว็บต่างประเทศ ถ้าโมเดลไหนได้รับความนิยม ก็จะทำการ clone และ localize มาให้คนไทยใช้กัน แต่สิ่งที่ต้องระวังก็คือถึงแม้ว่าโมเดลดังกล่าวจะได้รับความนิยมในต่างประเทศ ก็ไม่ได้หมายความว่ามันจะได้รับความนิยมในไทยด้วย บางอย่างอาจจะต้องใช้เวลา 2-3 ปี หรือบางอย่างอาจจะไม่ได้รับความนิยมเลยก็ได้

ความรู้เรื่องซีพียู CPU


     ซีพียู CPU (Central Processing Units) หรือ หน่วยประมวลผลกลาง คือส่วนที่เรียกว่าเป็นหัวใจของเครื่องคอมพิวเตอร์นั่นเอง เพราะการทำงานทั้งหมดไม่ว่าจะเป็นการคำนวณ การย้ายข้อมูล การตัดสินใจ ล้วนเกิดขึ้นที่นี่ทั่งสิ้น เพียงแต่ว่าซีพียูจะต้องมีอุปกรณ์อื่น ๆ ทำงานร่วมด้วย เพื่อให้สามารถติดต่อกับโลกภายนอกได้นั่นก็คือการับข้อมูลและแสดงผลข้อมูล
 
ซีพียู Intel Pentium
ซีพียู Intel Pentium III
ซีพียู Intel Celeron
ซีพียู Intel Celeron
 
ซีพียู Intel Pentium III แบบ Slot 1

ซีพียู Intel Pentium III แบบ Slot 1

ซีพียู AMD Athlon

ซีพียู AMD Athlon

 

     หน้าที่ของ CPU (Central Processing Units) คือปฏิบัติตามชุดคำสั่งและควบคุมการโอนย้ายและประมวลผลข้อมูลทั้งหมด ส่วนต่างๆของซีพียูแยกเป็น ส่วนได้ดังนี้

     1. ระบบเลขฐานสอง หรือ ไบนารี (Binary) ประกอบด้วยตัวเลข 2 ตัวคือ 0 กับ 1 มีความหมายว่า ใช่ หรือ ไม่ใช่ หรือ ถูก ผิด คำสั่งทุกคำสั่งที่ ไมโครโพรเซสเซอร์รับมาประกอบจากคำสั่งหลายๆคำสั่งที่โปรแกรมเมอร์คอมไพล์มาจากภาษาใดภาษาหนึ่ง เช่น (BASIC, COBAL, C) เป็นต้น ก่อนที่คอมพิวเตอร์จะเข้าใจคำสั่งเหล่านี้ จะต้องแปลงให้เป็นไบนารีก่อน ซึ่งเป็นกระบวนการที่เกิดขึ้นใน decode unit ของไมโครโพรเซสเซอร์
     2. แอดเดรส คือตัวเลขที่ใช้กำหนดตำแหน่งที่อยู่ของข้อมูลในหน่วยความจำ หรือ Storage ข้อมูลที่ซีพียูประมวลผลจะแสดงด้วยแอดเดรสของข้อมูล ไม่ใช่ค่าจริงๆของข้อมูล
     3. บัส ชุดของเส้นลวดนำไฟฟ้าที่เป็นทางเดินของข้อมูลจากจุดหนึ่งไปยังอีกจุดหนึ่งบัสในคอมพิวเตอร์คือบัสข้อมูล (Data bus) หรือระบบบัส (system bus) ซึ่งเป็นเส้นทางผ่านของข้อมูลจากอุปกรณ์อินพุต/เอาต์พุต หน่วยความจำหลักและซีพียู ภายในซีพียูเองก็มีบัสภายในที่ใช้ส่งผ่านข้อมูลระหว่าง หน่วยต่างๆ ที่อยู่ภายในที่ใช้ส่งผ่านข้อมูลระหว่างหน่วยต่างๆ ที่อยู่ภายในโครงสร้างย่อยในชิป
     4. หน่วยความจำแคช แคชมีความสำคัญมากต่อซีพียู เพราะหากไม่มีหน่วยความจำที่เรียกว่าแคชแล้ว โปรเซสเซอร์ก็จะเสียเวลาส่วนใหญ่สำหรับการ หยุดรอข้อมูลจากแรมซึ่งทำงานช้ากว่าแคชมาก โปรเซสเซอร์จะมีแคช 2 แบบคือ แคชระดับหนึ่ง (Primary cache หรือ L1) และแคชระดับสอง (secondary cache หรือ L2) ต่างกันตรงตำแหน่ง โดย L1 cache อยู่บนซีพียู เรียกว่า on-die cache ส่วน L2 cache อยู่บนเมนบอร์ด เรียกว่า off-die แต่ในปัจจุบัน L2 cache เป็น on-die กันแล้ว หน่วยความจำแคชเป็นที่เก็บคำสั่งและข้อมูลก่อนที่จะส่งให้ซีพียู
     5. ความเร็วสัญญาณนาฬิกา หมายถึงจำนวนรอบที่ซีพียูทำงานเมื่อสัญญาณนาฬิกาในเครื่องผ่านไปหนึ่งช่วงสัญญาณนาฬิกาแสดงด้วยหน่วย เมกะเฮิรตซ์ (MHz) หรือเท่ากับ 1 ล้านรอบต่อวินาที (โปรเซสเซอร์คนละชนิดหรือคนละรุ่นถึงแม้จะมีสัญญาณนาฬิกาเท่ากัน แต่อาจเร็วไม่เท่ากันก็ได้ เพราะมีโครงสร้างภายในและชุดคำสั่งที่แตกต่างกัน)
     6. รีจิสเตอร์ เป็นหน่วยความจำไดนามิกขนาดเล็กที่มีบทบาทสำคัญในโครงสร้างของโปรเซสเซอร์ รีจิสเตอร์ใช้เก็บข้อมูลที่ถูกประมวลผลไว้จนกว่าจะ พร้อมที่จะส่งไปคำนวณ หรือส่งไปแสดงผลให้แก่ยูสเซอร์
     7. ทรานซิสเตอร์ เป็นจุดเชื่อมต่อแบบ 3ทางอยู่ภายในวงจรของโปรเซสเซอร์ ประกอบด้วยชั้นของวัสดุที่เป็นขั้วบวก และขั้วลบ ซึ่งสามารถขยายกระ แสไฟฟ้าให้เพิ่มขึ้น หรือขัดขวางไม่ให้กระแสไฟฟ้าเคลื่อนที่ต่อ
     8. Arithmetic logic unit (ALU) เป็นส่วนหนึ่งของซีพียู ใช้ในการคำนวณผลทางคณิตศาสตร์และการเปรียบเทียบเชิงตรรกะ การเปรียบเทียบ เชิงตรรกะเป็นการเปรียบเทียบค่าไบนารีเพื่อหาว่า ควรจะส่งสัญญาณไฟฟ้าผ่านเกตบางตัวในวงจรของโปรเซสเซอร์หรือไม่ การทำงานอยู่ในรูปแบบของ”ถ้า x เป็นจริง และ y เป็นเท็จ แสดงว่า z เป็นจริง”
     9. Floating - Point Unit (FPU) มีหน้าที่จัดการกับการคำนวณทางคณิตศาสตร์ที่ซับซ้อนที่เกี่ยวกับเลขทศนิยม หรือตัวเลขที่เป็นเศษส่วน การคำนวณเลขทศนิยมมักเกิดขึ้นเมื่อพีซีรันโปรแกรมพวกกราฟฟิก เช่นโปรแกรม CAD หรือเกมส์ 3 มิติ
     10. Control Unit หลังจากที่ซีพียูรับชุดคำสั่งหรือข้อมูลที่ผู้ใช้ป้อนเข้ามาแล้ว หน่วยควบคุมนี้จะรับหน้าที่พื้นฐาน 4 อย่างด้วยกันคือ
          fetch โดยการส่งแอดเดรสของคำสั่งถัดไป ไปยังแอดเดรสบัส แล้วนำค่าที่ได้ไปเก็บไว้ในแคชคำสั่งภายในซีพียู
          decode โดยส่งคำสั่งปัจจุบันจากแคชคำสั่งไปยัง decode unit
          execute เริ่มกระบวนการคำนวณทางคณิตศาสตร์และตรรกะภายใน ALU และควบคุมการไหลของข้อมูลไปยังจุดหมายปลายทางที่เหมาะสม
          store บันทึกผลลัพธ์จากคำสั่งไว้ในรีจิสเตอร์หรือหน่วยความจำที่เหมาะสม
     11. Decode unit รับหน้าที่ดึงคำสั่งภาษาเครื่องจากแคชคำสั่ง และเปลี่ยนให้อยู่ในรูปไบนารีโค้ด เพื่อให้ ALU สามารถนำไปใช้ประมวลผล

     ซีพียูในเครื่องพีซีทั่วไปจะเป็นชิปไอซี (IC-Integrated Circuit) ตัวเล็กขนาดวางบนฝ่ามือได้ซึ่งเรียกว่าไมโครโพรเซสเซอร์ ในตระกูลที่เริ่มต้นพัฒนาโดยบริษัท อินเทล ที่เรียกกันว่าตระกูล 80×86 (x หมายถึงตัวเลขใด ๆ) เริ่มต้นตั้งแต่ 8086,80286,80386,80486 จนถึงรุ่นใหม่ที่ตอนพัฒนาใช้ชื่อรหัสว่า P5 แต่พอวางตลาดจริงก็เปลี่ยนชื่อจากเดิมที่จะเป็น80586 หรือ 586 ไปเป็น”เพนเทียม” (Pentium) ด้วยเหตุผลทางการค้าทีว่าชื่อ 586 เป็นเพียงตัวเลข 3 ตัว ไม่สามารถสงวนสิทธิ์การใช้งานและห้ามการลิกเลียนแบบในฐานะเครื่องหมายการค้าได้ รวมถึงรุ่นล่าสุดที่พุฒนาต่อจาก Pentium หรือ P6 คือ ตระกูล ซึ่งประกอบด้วย Pentium Pro และ Pentium II Pentium III, Pentium 4 processor และ ในขณะเดียวกันก็เริ่มมีซีพียูจกบริษัทคู่แข่งอกจำหน่าย นั่นคือ Advance Micro Device หรือ AMD และยังรวมถึงรายย่อยอีก 2 ราย คือ Cyrix และ IDT ซึ่งทั้งสองรายนี้ปัจจุบันขายกิจการให้ VIA ซึ่งเป็นผู้ผลิตชิปเซ็ตรายใหญ่ของไต้หวันไปแล้ว

 
        
        


บทที่5 CPU Scheduling

posted on 18 Aug 2008 05:08 by 490702464037

แนวความคิดพื้นฐาน (Basic Concept)

                แนวคิดของ Multiprogramming ที่สัมพันธ์กันอย่างง่าย คือ กระบวนการจะทำงานจนกระทั่งถึงเวลาต้องรอ ระบบปฏิบัติการจะเอาหน่วยประมวลผลกลางออกมาจากกระบวนการนั้น และให้หน่วยประมวลผลกลางแก่กระบวนการอีกกระบวนการหนึ่งแทน

แสดงการสลับลำดับของช่วงประมวลผลและช่วงรับส่งข้อมูล

ถึงแม้ว่าช่วงเวลาประมวลผลของแต่ละกระบวนการจะมีค่าแตกต่างกัน แต่โดยส่วนใหญ่จะให้ผลคล้ายกราฟในรูป ดังนี้

แสดงฮิสโตรแกรมของช่วงเวลาประมวลผล

ตัวจัดตารางการทำงานของหน่วยประมวลผลกลาง (CPU Scheduler)

                เมื่อหน่วยประมวลผลกลางว่างง ระบบก็จะเลือกกระบวนการจากแถวพร้อม เพื่อให้ทำงานในหน่วยประมวลผลกลางต่อไป โดยใช้ตัวจัดตารางระยะสั้น หรือตัวจัดตารางการทำงานของหน่วยประมวลผล

                ในการจัดตารางหน่วยประมวลผลกลาง ระบบจะต้องตัดสินใจหรือเลือกเมื่อมีเหตุการณ์หนึ่งเกิดขึ้น คือ

1.       เมื่อกระบวนการเปลี่ยนสถานะจาก กำลังทำงาน ไปเป็น กำลังรอคอย

2.       เมื่อกระบวนการเปลี่ยนสถานะจาก กำลังทำงาน ไปเป็น สถานะพร้อม

3.       เมื่อกระบวนการเปลี่ยนสถานะจาก กำลังรอคอย ไปเป็น สถานะพร้อม

4.       เมื่อกระบวนการสิ้นสุด

ตัวส่งต่อ (Dispatcher)

                เป็นโปรแกรมที่ย้ายการควบคุมไปยังกระบวนการใหม่ โดยมีขั้นตอนดังนี้

1.       เปลี่ยนงาน

2.       เปลี่ยนไปเป็นช่วงผู้ใช้

3.       ย้ายการควบคุมไปที่บรรทัดคำสั่งในโปรแกรมผู้ใช้ เพื่อรีสตาร์ทโปรแกรมนั้น

เกณฑ์ในการจัดตาราง (Scheduling Criteria)

วิธีการจัดตารางการทำงานของหน่วยประมวลผลกลางที่แตกต่างกัน ซึ่งเราจะเลือกใช้วิธีการต่างๆให้เหมาะสมกับแต่ละสถานการณ์ มีดังนี้

·         ประสิทธิผลการใช้หน่วยประมวลผลกลาง

·         อัตราปริมาณงาน

·         วงรอบการทำงาน

·         เวลารอคอย

·         เวลาตอบสนอง

การจัดตารางการทำงานแบบมาก่อน – ได้ก่อน (First Come Served Scheduling/ FCFS)

                กระบวนการใดได้ร้องขอหน่วยประมวลผลกลางก่อน ก็จะได้รับหน่วยประมวลผลกลางตามที่ร้องขอ โดยขั้นตอนวิธีในการทำงานดังนี้

                     กระบวนการ (Process)                                             เวลาทำงาน (Burst Time)

P                                                                                                           24

P                                                                                                           3

P                                                                                                           3

P

P

P

·         การรอคอยของกระบวนการ  P = 24, P = 3, P = 3

·         เวลารอคอยโดยเฉลี่ย (0 + 24 + 27) / 3 = 17

การจัดตารางการทำงานแบบงานสั้นที่สุดได้ก่อน (Short Job First Scheduling / SJF)

                เมื่อหน่วยประมวลผลกลางว่างลง ก็จะเลือกกระบวนการที่จะต้องทำงานสั้นที่สุดมาทำงานต่อไป ถ้ามีหลายกระบวนการมีเวลาเท่ากัน ให้เลือกกระบวนการแบบก่อนได้ก่อน โดยขั้นตอนวิธีในการทำงานดังนี้

                                 กระบวนการ (Process)                        เวลาทำงาน (Burst Time)

P                                                                     6

P                                                                     8

P                                                                     7

P₄                                                                                      3

P₄

P

P

P

·         การรอคอยของกระบวนการ  P = 3, P = 16, P = 19, P₄ = 0

·         เวลารอคอยโดยเฉลี่ย (3 + 16 + 9 + 0) / 4 = 7

การจัดตารางการทำงานแบบศักดิ์สูงได้ก่อน (Priority Scheduling)

                กระบวนการที่จะได้เข้าใช้หน่วยประมวลผลกลาง คือ กระบวนการที่มีศักดิ์สูงที่สุด ถ้ากระบวนการใดมีศักดิ์เท่ากันแล้วระบบจะให้กระบวนการที่มีศักดิ์เท่ากันนั้นทำงานแบบมาก่อนได้ก่อน

กระบวนการ (Process)                เวลาทำงาน (Burst Time)                      ศักดิ์ (Priority)

P                                                       10                                                                 3

P₂                                                        1                                                                   8

P                                                          2                                                                  7

P₄                                             1                                                 3

P₅                                                5                                                 2

 

P

P₅

P

P P₄

·         เวลารอคอยโดยเฉลี่ย (6 + 0 + 16 + 18 + 1) / 5 = 8.2

การจัดตารางการทำงานแบบเวียนเทียน (Round Robin Scheduling / RR)

การทำงานในระบบแบ่งส่วนเวลา โดยขั้นตอนวิธีของการจัดตารางการทำงานในวิธีนี้เริ่มจากการแบ่งเวลาออกเป็นหน่วยเล็กๆ และจัดให้เข้าแถวพร้อมของระบบโครงสร้างเป็นแถวรอแบบวงกลม โดยเรียงกันแบบมาก่อนออกก่อน

                              กระบวนการ (Process)                              เวลาทำงาน (Burst Time)

P                                                                      24

P                                                                       3

P                                                                       3

P

P

P

P P P P P

 การจัดตารางการทำงานแบบแถวคอยหลายระดับ (Multilevel Queue Scheduling)

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

                ในระบบมีแถวพร้อมอยู่ 5 แถว ดังนี้

  • งานของระบบ
  • งานแบบโต้ตอบ
  • งานแก้ไขข้อมูล
  • งานแบบกลุ่ม
  • งานของนักศึกษา

 

แสดงการจัดตารางแบบแถวคอยหลายระดับ

 การจัดตารางการทำงานแบบจัดลำดับหลายระดับแบบเลื่อนชั้นได้ (Multilevel Feedback Queue Scheduling)

                การจัดตารางการทำงานแบบจัดลำดับหลายระดับแบบเลื่อนชั้นได้นี้ จะมีวิธีการในการทำงานที่แก้ข้อเสียดังกล่าว โดยเมื่อกระบวนการใดใช้เวลาในการทำงานกับหน่วยประมวลผลกลางนานเกินไป กระบวนการนั้นจะถูกย้ายลงไปในแถวที่มีค่าศักดิ์ต่ำกว่าแถวเดิม วิธีนี้จะทำให้กระบวนการที่เน้นการรับส่งข้อมูล และกระบวนการโต้ตอบถูกจัดอยู่ในแถวพร้อมที่มีศักดิ์สูงขึ้นในทำนองเดียวกันเมื่อกระบวนการใดกระบวนการหนึ่งรอคอยอยู่เป็นเวลานานมากแล้วในแถวที่มีศักดิ์ต่ำ กระบวนการนั้นก็สามารถที่จะย้ายไปต่อในแถวที่มีศักดิ์สูงขึ้นได้ ซึ่งวิธีการดังกล่าวเป็นรูปแบบหนึ่งของการเพิ่มศักดิ์

แสดงการจัดลำดับหลายระดับแบบเลื่อนชั้นได้

                การทำงานโดยวิธีการจัดตารางการทำงานแบบจัดลำดับหลายระดับแบบเลื่อนชั้นได้นี้ ถูกกำหนดโดยพารามิเตอร์ดังนี้

  • จำนวนแถวพร้อม
  • ขั้นตอนวิธีในการจัดตารางการทำงานของแต่ละแถว
  • วิธีที่จะใช้ในการพิจารณาเพื่อที่จะยกระดับให้กระบวนการที่มีค่าศักดิ์สูงขึ้น
  • วิธีที่จะใช้ในการพิจารณาเพื่อที่จะลดระดับให้กระบวนการที่มีค่าศักดิ์น้อยลง
  • วิธีที่จะใช้ในการพิจารณาว่า เมื่อกระบวนการเช้ามาในระบบ ควรจะให้อยู่ในแถวใด

การจัดตารางการทำงานสำหรับหลายหน่วยประมวลผล (Multiple Processor Scheduling)

            ถ้าหน่วยประมวลผลมีหลายแบบ วิธีการจัดตารางก็จะถูกจำกัดมาก แต่ละหน่วยประมวลผลก็จะมีแถวคอยเป็นของตนเอง เพราะกระยวนการต่างๆย่อมมีลักษณะเฉพาะที่จะทำงานได้ในหน่วยประมวลผลแบบหนึ่งแบบเดียว กระบวนการจึงต้องเข้าไปทำงานตามหน่วยประมวลผลที่เหมาะสม โดยแยกแถวคอยกันเอง

                ถ้าหน่วยประมวลผลเป็นแบบเดียวกันหมด เราสามารถเฉลี่ยแบ่งงานกันทำได้ดีขึ้น โดยอาจให้มีแถวคอยแยกแต่ละหน่วยประมวลผล แต่วิธีนี้อาจทำให้หน่วยประมวลผลบางตัวว่างงาน ในขณะที่บางตัวงานหนัก เราจึงควรใช้แถวคอยร่วมแถวเดียวกันให้ทุกๆ กระบวนการเข้าแถวคอยเดียวกันหมด เมื่อมีหน่วยประมวลผลใดว่าง ก็จะให้รับงานไปจากแถวคอยนี้

                การจัดแถวคอยร่วมนี้ อาจแบ่งได้เป็น 2 วิธี

  1. ให้หน่วยประมวลผลแต่ละตัวจัดตารางการทำงานเอง
  2. กำหนดให้หน่วยประมวลผลหนึ่งมีหน้าที่จัดตารางการทำงานโดยเฉพาะ

การจัดตารางการทำงานแบบตอบสนองฉับพลัน (Real Time Scheduling)

                การจัดตารางการทำงานแบบตอบสนองฉับพลันนี้แบ่งเป็น 2 ประเภท คือ

  • Hard Real time System ต้องการเวลาที่คงที่แน่นอน ตายตัว
  • Soft Real time System เป็นระบบที่ทำงานโดยไม่ต้องมีเวลามาจำกัด

การประเมินอัลกอริทึม (Algorithm Evaluation)

                วิธีการจัดตารางมีหลายวิธี แต่ละวิธีมีตัวแปรและลักษณะเฉพาะ ทำให้การเลือกวิธีที่เหมาะสมหรือดีที่สุดทำได้ยาก

                ขั้นแรกจำเป็นต้องกำหนดคุณสมบัติก่อนว่า ต้องการคุณลักษณะใด มีค่าเท่าใด เช่น

  • ให้ได้ประสิทธิผลการใช้หน่วยประมวลผลสูงสุดที่เวลาตอบสนองนานที่สุด ไม่เกิน 1 วินาที
  • ให้มีอัตรางานเสร็จสูงที่สุด โดยที่วงรอบการทำงาน เป็นสัดส่วนโดยตรงกับการประมวลผลจริง
  • แสดงการประเมินของตัวจัดตารางของหน่วยประมวลผล

 

 

 

คอมเมนท์