Tags:
Node Thumbnail

หลังจาก Windows XP เป็นต้นมา เราแทบไม่เห็นอาการ "จอฟ้า" หรือ Blue Screen of the Dead อันเลื่องชื่อของวินโดวส์สักเท่าไรนัก (ส่วนใหญ่ที่เจอเกิดจากฮาร์ดแวร์มีปัญหาเสียมาก) เว็บไซต์ ZDNet มีบทความเล่าว่าไมโครซอฟท์แก้ปัญหานี้ได้อย่างไรครับ

Byron Cook หัวหน้านักวิจัยของ Microsoft Research ในเคมบริดจ์ อธิบายวิธีแก้ปัญหาของไมโครซอฟท์ว่าเริ่มจากการวิเคราะห์สถิติการแครชของระบบ ซึ่งไมโครซอฟท์พบว่า 85% มาจากปัญหาไดรเวอร์ที่ไม่ได้เขียนโดยไมโครซอฟท์ แต่พัฒนาโดยผู้ผลิตฮาร์ดแวร์จำนวนมาก (และไม่เปิดเผยโค้ด) โจทย์วิจัยของไมโครซอฟท์จึงกลายเป็นการสร้างระบบปฏิบัติการที่ทนทานต่อปัญหาไดรเวอร์

ไมโครซอฟท์วิเคราะห๋ต่อแล้วพบว่าปัญหาไดรเวอร์แยกได้เป็น 3 กลุ่มใหญ่ๆ

  • เรียก API ของเคอร์เนลผิดพลาด เช่น บางครั้งเรียก API ของ IO ซ้ำสองที ทำให้ระบบแครช
  • ปัญหาหน่วยความจำ เช่น จองหน่วยความจำไม่พอสำหรับที่ไดรเวอร์ต้องการจริงๆ
  • ไดรเวอร์ติด infinite loop ทำให้เครื่องค้าง

ไมโครซอฟท์แก้ปัญหาเหล่านี้เป็นรายตัว โดยพัฒนาเครื่องมือมาช่วยวิเคราะห์ปัญหาไดรเวอร์แต่ละอย่างเป็นการเฉพาะ

  • Slam เป็นเครื่องมือไว้แก้ปัญหาแรก มันจะตรวจสอบคุณภาพของไดรเวอร์ในการเรียก API
  • Slayer แก้ปัญหาหน่วยความจำ โดยมันจะวิเคราะห์ data structure ที่ไดรเวอร์เรียกใช้ว่าเหมาะสมหรือไม่ หลังจากไมโครซอฟท์พัฒนาเครื่องมือนี้เสร็จ แล้วนำไปทดสอบกับเทมเพลตตัวอย่างไดรเวอร์ของไมโครซอฟท์ (ที่บริษัทฮาร์ดแวร์นำไปพัฒนาไดรเวอร์ต่อ) ก็พบว่าไดรเวอร์ไมโครซอฟท์มีปัญหาเสียเองด้วย เมื่อแก้ปัญหาของฝั่งไมโครซอฟท์แล้วก็พบว่าปัญหาเรื่องหน่วยความจำลดลงไปมาก
  • Terminator แก้ปัญหา infinite loop เรื่องนี้ไมโครซอฟท์อธิบายว่าปัญหา infinite loop ตรวจสอบให้ครบทุกกรณีได้ยากมาก แต่โชคดีว่าไฟล์ของไดรเวอร์โดยทั่วไปแล้วขนาดไม่ใหญ่มากนัก จึงยังอยู่ในระดับที่พอตรวจสอบได้

การแก้ปัญหาที่ระดับแกนของระบบปฏิบัติการโดยใช้เครื่องมือหลายอย่างนี้ ช่วยให้วินโดวส์รุ่นต่อๆ มาอย่าง Windows 7 และ 8 เสถียรขึ้นมาก

ที่มา - ZDNet

Get latest news from Blognone

Comments

By: tanapon000 on 2 October 2013 - 20:50 #635818
tanapon000's picture

win7 นี่ค้างน้อยมาก แม้โปรแกรมค้าง แต่ win7ก็ยังไม่ค้าง

By: StatusQuo
iPhoneWindows PhoneAndroidWindows
on 2 October 2013 - 20:53 #635820

3 อาชีพ​นี้​มีสกิลย่อย​อะไร​ให้​อัพเกรด​บ้างครับ​

By: Perl
ContributoriPhoneUbuntu
on 2 October 2013 - 20:59 #635824
Perl's picture

หลัง XP ก็ยังมีอยู่ (ส่วนตัวผมว่าเยอะกว่าเดิมด้วย) นั่นคือยุค Vista โดยเฉพาะ Driver การ์ดจอของ Nvidia นี่อย่างเน่า จะเปลี่ยน Driver กี่ตัวก็เน่า จนกระทั่ง SP2 มาถึงจะค่อยดีขึ้น แต่ ณ ตอนนั้น ทนไม่ไหวสุดๆ ต้อง Downgrade มาใช้ Windows Server 2003 แทน (ใช้งานแบบ Workstation)

ใครใช้การ์ดจอแยกกับ Vista ยุคแรกแล้ว Display ไม่ล่มนี่โครต Rare
(รู้สึกว่า Vista ยุคแรกตอนนั้นไม่มีฟีเจอร์ auto recovery แบบนี้ด้วย)

No Description

By: hoolala
Android
on 2 October 2013 - 21:06 #635830 Reply to:635824

ใน Window 7 ของผมขึ้นอย่างนี้บ่อยมาก (ใช้ Nvidia เหมือนกัน) แต่ผมนึกว่าเกี่ยวกับการ์ดจอมันร้อนจน overheat ซะอีก เพราะเท่าที่สังเกตจะเกิดขึ้นเวลาที่มีการประมวลผลกราฟฟิกเยอะ ๆ เช่น ดูหนัง+เล่นเกม พร้อมกัน

By: Fasndee
ContributorAndroidWindows
on 2 October 2013 - 22:05 #635863 Reply to:635830
Fasndee's picture

เป็นเช่นกันครับ ผมคิดว่าเป็นปัญหาเกี่ยวกับ driver นะ เพราะ driver บางรุ่นไม่เป็นเลย แต่ Nvidia ออก driver รุ่นหลัง ๆ มานี้มีปัญหาเกือบหมด


เพจตัวอย่างผลงานถ่ายภาพ / วีดีโอ

By: sakuraba
Windows PhoneWindows
on 2 October 2013 - 22:29 #635879 Reply to:635830
sakuraba's picture

เช่นกันครับ เป็นบ่อยเหมือนกันครับ แต่มักจะเป็นตอนเล่นเน็ตด้วย firefox เล่นเกมไม่เป็นอะไร

By: Be1con
ContributorWindows PhoneWindowsIn Love
on 2 October 2013 - 21:19 #635838 Reply to:635824
Be1con's picture

ขนาดใน Windows 7 ที่โรงเรียนยัง Crash ด้านกราฟิกบ่อยเลยครับ Windows 8 ของผมยังเคยมีเลย


Coder | Designer | Thinker | Blogger

By: Perl
ContributoriPhoneUbuntu
on 2 October 2013 - 21:24 #635841 Reply to:635838
Perl's picture

Driver ครับ ตั้งแต่ 7 มาแทบไม่เจอแล้ว
ยิ่งบอกว่าโรงเรียนนี่ ผมยังแอบคิดในใจเลยว่าลง Driver ตั้งแต่ Chipset แล้วหรือยัง..

By: mr_tawan
ContributoriPhoneAndroidWindows
on 3 October 2013 - 04:04 #636020 Reply to:635824
mr_tawan's picture

ของผมเป็นกับ Windows 7 ใช้ AMD Radeon HD7790 ครับ บ่อยมากด้วย แต่อาจจะเกิดจากการที่ผมใช้ HD5770 มาก่อนแล้วเปลี่ยนการ์ดโดยที่ไม่ได้ติดตั้ง Windows ใหม่ด้วยล่ะมั้ง

ทุกวันนี้ใช้ Windows 8 กับ Catalyst 13.10beta ก็ไม่เจอนะ เจอแค่ Firefox ภาพเละบ้างบางที


  • 9tawan.net บล็อกส่วนตัวฮับ
By: textre
iPhoneWindows PhoneAndroidBlackberry
on 3 October 2013 - 12:36 #636220 Reply to:636020
textre's picture

ตัว Beta Driver ผมไม่ใช้ครับ (ตามคำแนะนำของเพื่อนใน ocz ฮะ) ณ ตอนนี้ใช้ 13.9 Final เสถียรดีครับบน Windows 8.1 การ์ดจอ Radeon HD5770 เก่าแล้วล่ะ

ส่วน 7790 นี่ เอ่อ... เห็นว่ามีปัญหาในหลายๆ คนที่เจอจนแถบต้องเคลมแล้วเคลมอีก แต่ก็ไม่ทุกคนครับ
เอาจริงๆ ในการอัพข้ามรุ่น ยังไงซะก็ควรถอน Driver เก่าออกก่อนครับ แล้วค่อยลง Driver ใหม่ ล้าง Driver เก่าให้เกลี้ยงๆ เลย (รวมไปถึงรุ่นใหม่ที่เพิ่งลง) เพื่อให้ Windows Detect hardware ใหม่ไปด้วยในตัว ;)

By: oatsmart
iPhoneWindows PhoneAndroidWindows
on 3 October 2013 - 07:59 #636042 Reply to:635824
oatsmart's picture

ผม ATI 5650 ไม่เคยเจอ

By: mementototem
ContributorJusci's WriterAndroidWindows
on 5 October 2013 - 19:59 #637557 Reply to:635824
mementototem's picture

ของผม HD6570 เจออยู่เรื่อย ๆ ครับ


Jusci - Google Plus - Twitter

By: devilblaze
iPhoneAndroidWindows
on 2 October 2013 - 21:01 #635827
devilblaze's picture

win7 ผมเคยจอฟ้า กับเครื่องเก่า เวลารันคลิปบน youtube ซึ่งมันจะเรียกใช้ gpu ช่วยประมวลผล ทั้ง ie firefox chrome
สงสัยต้องเป็นที gpu แน่ๆ เพราะมันรุ่นเก่า ( core2 + Radeon4670 driver 13.1) แต่ปิดฟังก์ชั่นนั้นไป ก็ไม่ค้างอีกเลย

ส่วนเครื่องใหม่ไม่มีปัญหา แผ่นwin7เดียวกัน

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 2 October 2013 - 21:12 #635833
PaPaSEK's picture

ชอบมากครับ บทความประเทืองปัญญาดี

By: addib2010
iPhoneAndroid
on 3 October 2013 - 12:02 #636202 Reply to:635833

+1 ชอบอ่านบทความแนวนี้เหมือนกันครับ อธิบายเรื่องยากๆ ยุ่งๆ แล้วสรุปออกมาให้เข้าใจง่าย ได้กระชับดี

By: panurat2000
ContributorSymbianUbuntuIn Love
on 2 October 2013 - 21:21 #635840
panurat2000's picture

ไมโครซอฟท์วิเคราะห๋ต่อแล้วพบว่าปัญหาไดรเวอร์แยกได้เป็น 3 กลุ่มใหญ่ๆ

วิเคราะห๋ => วิเคราะห์

By: McKay
ContributorAndroidWindowsIn Love
on 2 October 2013 - 21:27 #635843
McKay's picture

การเข้ามาของ WinSXS ในยุค post 98 SE ด้วยครับ(บน 98SE มีแต่ messenger ตัวเดียวหรือโปรแกรมอื่นๆไม่กี่ตัว)

อย่างไรก็ตาม มันก็เป็นสาเหตุที่ทำให้ระบบหนักขึ้นด้วย -0-


Russia is just nazi who accuse the others for being nazi.
someone once said : ผมก็ด่าของผมอยู่นะ :)

By: UltimaWeapon
Windows PhoneRed HatWindowsIn Love
on 2 October 2013 - 23:56 #635925 Reply to:635843
UltimaWeapon's picture

อันนั้นมัน User mode ไม่ใช่เหรอคับ

By: McKay
ContributorAndroidWindowsIn Love
on 3 October 2013 - 01:09 #635962 Reply to:635925
McKay's picture

User SxS start@XP, OS core DLL SxS start@Vista krub(hence the much bigger OS size of vista,7,8)

sry can't type in Thai, just finished installing Windows krub.


Russia is just nazi who accuse the others for being nazi.
someone once said : ผมก็ด่าของผมอยู่นะ :)

By: UltimaWeapon
Windows PhoneRed HatWindowsIn Love
on 3 October 2013 - 08:24 #636048 Reply to:635962
UltimaWeapon's picture

DLL พวกนั้นมันก็รันใน User mode อยู่ดีนะคับ ไม่ได้รันใน Kernel mode ต่อให้เกิดอะไรขึ้นใน User mode ตัว Kernel ก็ไม่ตายอยู่ดี

By: McKay
ContributorAndroidWindowsIn Love
on 3 October 2013 - 12:10 #636201 Reply to:636048
McKay's picture

C:\Windows\WinSxS ลองเข้าไปดูเองเลยครับ ถ้า driver อย่าง ACPI, etc.. ไม่เกี่ยวกับ kernel ผมก็ไม่รู้จะว่ายังไงแล้วหล่ะครับ

หรือลอง grant owner แล้ว ลบไฟล์ในนั้นดูครับ พวก acpi,acpitime,audioendpoint,basicdisplay,basicrender,c_processor พวกนี้ ไหนๆ driver จริงๆมันก็อยู่ใน C:\Windows\system32 อยู่แล้ว ลบในนี้ก็คงไม่เป็นไรหรอกมั้งครับ


Russia is just nazi who accuse the others for being nazi.
someone once said : ผมก็ด่าของผมอยู่นะ :)

By: bow_der_kleine
WriterAndroidUbuntu
on 2 October 2013 - 21:40 #635846
bow_der_kleine's picture

เป็นบทความที่ดีมากครับ

ผมเข้าใจว่า ปัญหาสองอย่างแรกไม่น่าจะเจอใน Linux/UNIX ครับ เรื่อง IO, API บน Linux/UNIX มันมอง I/O ทุกอย่าง รวมถึง network และ hardware เป็นไฟล์หมด เกิดมีอะไรเน่าขึ้นมา ผลก็คือ เหมือนไฟล์เน่าไปหนึ่งไฟล์ ไม่ส่งผลกับระบบโดยรวม

ส่วนเรื่องปัญหาหน่วยความจำมัน kernel มัน detect ให้อยู่แล้ว หากมีปัญหาอะไรขึ้นมามันก็จะขึ้น segmentation fault แล้ว process นั้นก็จะโดนฆ่าอัตโนมัติ ซึ่งส่งผลให้ driver เน่าได้ แต่ระบบโดยรวมยังอยู่

By: UltimaWeapon
Windows PhoneRed HatWindowsIn Love
on 2 October 2013 - 23:59 #635927 Reply to:635846
UltimaWeapon's picture

วรรคแรกไม่ใช่มั้งคับ - -' อันนั้นมันเป็น Kernel Object ที่สามารถใช้งานโดย User land ได้นะคับ

ส่วนวรรคสองนี่ Driver มันถูกโหลดเข้าไปใน Address space เดียวกับ Kernel นะคับ อธิบายง่ายๆก็คือมันเป็น Process เดียวกับ Kernel ถ้า Driver ตาย แล้ว Kernel ไม่สามารถรับมือได้ ระบบก็จะตาย

By: stan
ContributoriPhoneAndroidUbuntu
on 3 October 2013 - 09:16 #636059 Reply to:635846
stan's picture

Driver ใน linux มันเป็น Kernel Module ถ้ามีอะไรพลาดจน memory protection ของ kernel อุดไม่อยู่ ก็จะเกิดอาการ "แกนกลาง ตื่นตระหนก" (Kernel Panic) ขึ้นมา แต่ก็มีบาง driver ที่เป็น User mode เช่น virtual filesystem บางตัว

By: WarHammeR_TH
iPhone
on 3 October 2013 - 10:42 #636137
WarHammeR_TH's picture

ยอมรับเลยว่า Windows 7 ทำได้ดีมากจริง ๆ ตั้งแต่ใช้มา เคยจอฟ้าแค่ 2-3 ครั้งเท่านั้น

By: btoy
ContributorAndroidWindows
on 3 October 2013 - 10:58 #636159
btoy's picture

รุ่นใหม่ๆปัญหาน้อยจริงๆ เจอจาก hw ซะส่วนใหญ่


..: เรื่อยไป

By: Aphorist
AndroidUbuntuWindows
on 3 October 2013 - 12:14 #636207
Aphorist's picture

อันนี้ไม่ได้คิดจะดราม่านะครับ แต่มีคนเคยถามว่า ทำไม Mac กับ Windows ความเสถียรถึงต่างกัน

ผมก็เคยอธิบายให้เพื่อนผมฟัง(ที่ชื่นชอบ Mac มาก ๆ) ว่า

Mac พัฒนาฮาร์ดแวร์และซอฟต์แวร์เอง ความเข้ากันได้ของระบบ จึงมีสูงมาก

ส่วน windows ต้องซัพพอร์ตให้ครอบจักรวาลเลยทีเดียว

ส่วนตัวผมสรุปว่า Microsoft โคตรเก่ง และ Windows ก็ไม่ได้ห่วย

By: textre
iPhoneWindows PhoneAndroidBlackberry
on 3 October 2013 - 12:40 #636224
textre's picture

จอฟ้า เคยเจอกับ Windows 7
1. มาจาก Ram - เสีย - -* KingMax 4GB เน่า ทั้งๆ ที่เพิ่งซื้อไม่ถึงเดือน ฟ้าบรรลัย
2. Driver Wireless Card - Engineus เหมือนไม่เสถียรพอบน Windows 7 ใช้ๆ อยู่ฟ้าแระ

เคยเจอคนมาด่าว่าผมเอาโปรแกรมแปะแล้วเขาไปลอง เขาบอกว่าไวรัสเลยทำให้จอฟ้า เขาก็จับหน้าจอที่ฟ้ามาแปะ
พอดูปั๊ปอ้าว ไอ้!! นี่ ไม่เช็คนี่หว่า Error จาก Driver การ์ดจอ ATi - -* เวรฮะ