You are on page 1of 88

ระบบปฏิบ ัติการ

(Operating Systems)
น.ท.ไพศาล โมลิ สกุ ล
มงคล
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 1
บทที่ 15
ระบบปฏิบตั กิ าร
Windows 2000

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 2
ประวั
ประวัตตขิ ขิ อง
องWindows
Windows2000
2000
 ระบบปฏิบตั ิการของ Microsoft สำหรับเครื่ องเดสก์ทอปและแลปทอป
สามารถแบ่งเป็ น 3 ตระกูลคือ
 MS-DOS
 Windows (รวมทัง้ Windows 3.1/95/98/ME)
 Windows NT (รวมทัง้ Windows 2000)

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 3
MS-DOS
MS-DOS
 ในปี ค.ศ.1981 IBM ซึง่ เป็ นยักษ์ ใหญ่ในวงการคอมพิวเตอร์ ในขณะนันได้ ้
ผลิตเครื่ องคอมพิวเตอร์ สว่ นบุคคล หรื อ PC (Personal Computer)
 ระบบปฏิบต ั ิการเป็ นคำสัง่ บรรทัดเดียวที่ชื่อ MS-DOS 1.0
 ระบบปฏิบต ั ิการนี ้สร้ างโดยบริษัท Microsoft ใช้ ตวั แปลภาษา BASIC
สำหรับใช้ บน 8088 และ Z-80
 ระบบปฏิบต ั ิการประกอบด้ วย หน่วยความจำ 8 กิโลไบต์ใกล้ เคียงกับ
โมเดล CP/M ในช่วงเวลา 2 ปี ต่อมาระบบปฏิบตั ิการมีประสิทธิภาพสูงขึ ้น
เป็ น 24 กิโลไบต์ โดยใช้ MS-DOS 2.0 ที่ยงั คงเป็ นบรรทัดคำสัง่ ที่ขอยืมมา
จาก UNIX อยู่

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 4
MS-DOS
MS-DOS
 Intel ได้ ผลิตซีพียู 80286 ขึ ้นมา ทาง IBM จึงได้ สร้ าง PC/AT ในปี 1986
 โดยที่ AT มาจากคำว่า Advance Technology เนื่องจาก 80286 สามารถ

รันได้ ที่ความถี่ 8 เมกะเฮิร์ต (MHz) โดยใช้ หน่วยความจำได้ ถงึ 16


เมกะไบต์
 เครื่ องคอมพิวเตอร์ ทว ั่ ไปจะมีหน่วยความจำเพียง 1-2 เมกะไบต์เนื่องจาก
ในขณะนันหน่ ้ วยความจำมีราคาแพงนัน่ เอง
 ในช่วงนี ้จะใช้ MS-DOS 3.0 ที่ได้ รับการพัฒนาเพิ่มฟี เจอร์ ตา่ ง ๆ มากมาย
แต่ยงั คงเป็ นบรรทัดคำสัง่ อยู่

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 5
Windows
Windows3.1
3.1
 ในขณะที่ MS-DOS 3.0 เป็ นระบบปฏิบตั ิการของ PC ในช่วงนัน้ ผู้ใช้ ให้
ความสนใจและหลงไหลยูเซอร์ อินเทอร์ เฟซของ Apple Lisa ซึง่ ทำงานบน
Apple Mcintosh
 ทาง Microsoft จึงตัดสินใจที่จะเพิ่มเซลล์ของ MS-DOS สามารถทำงานใน

ลักษณะกราฟิ กยูเซอร์ อินเทอร์ เฟซ โดยตังชื


้ ่อว่า Windows
 เริ่ มวางจำหน่าย Windows 1.0 ในปี 1985 แต่ไม่ประสบความสำเร็ จ

 ปี 1987 Windows 2.0 ที่ออกแบบสำหรับ PC/AT ก็ออกวางตลาด แต่ไม่

ประสบความสำเร็ จมากนัก
 ปี 1980 ถึงเวลาของ Windows 3.0 ที่รันกับ 80386 จนมีเวอร์ ชน
ั 3.1 และ
3.11 ออกมา
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 6
Windows
Windows95/98/ME
95/98/ME
 Windows 95 ที่วางจำหน่ายในปี 1995 ก็ยงั คงแยกตัวออกจาก MS-DOS
ไม่สมบูรณ์ (ถึงแม้ จะถ่ายโอนมาจาก MS-DOS จนเข้ าใกล้ Windows แล้ ว
ก็ตาม)
 ถึงแม้ Windows 95 จะเป็ นระบบปฏิบต ั ิการที่ได้ รับการพัฒนาอย่างมาก
แล้ วก็ตามไม่วา่ จะเป็ นด้ านความจำเสมือน, การจัดการหน่วยความจำ และ
มัลติโปรแกรมมิ่ง
 Windows 95 ยังไม่ได้ เป็ นระบบปฏิบต ั ิการเต็มรูปแบบ มันยังคงมีโค้ ดแบบ
16 บิตภาษาแอสเซ็มบลีอยู่ และยังคงใช้ ระบบไฟล์แบบ MS-DOS อยู่
 สิง
่ หลักที่เห็นได้ ชดั ในการเปลี่ยนแปลงก็คือชื่อไฟล์ที่มีความยาวได้ มากกว่า
ระบบ 8+3 ตามระบบของ MS-DOS
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 7
Windows
Windows95/98/ME
95/98/ME
 Windows 98 ออกจำหน่าย MS-DOS (เวอร์ ชนั 7.1) ยังคงรวมตัวอยูใ่ น
โค้ ดถึงแม้ จะมีการแยกฟั งก์ชนั ออกมาจาก MS-DOS
 มีการกำหนดเลย์เอาต์ของดิสก์ (จากเดิม FAT-16 เป็ น FAT-32) ให้ รองรับ

ดิสก์ขนาดใหญ่แล้ วก็ตาม (จากเดิมไม่เกิน 2 กิกะไบต์ เป็ นไม่เกิน 2 เทอร์


ราไบต์)
 สำคัญก็คือ Windows 98 ไม่ได้ มีอะไรที่แตกต่างจาก Windows 95 มาก

นัก
 สิง
่ ที่แตกต่างหลัก ๆ อยูท่ ี่ยเู ซอร์ อินเทอร์ เฟซที่รวมเดสก์ทอปและ
อินเทอร์ เน็ตให้ ใกล้ ชิดกันมากยิ่งขึ ้น

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 8
Windows
Windows95/98/ME
95/98/ME
 ปั ญหาการใช้ งาน Windows 98 ยังคงมีอยู่ เนื่องมาจากการที่ไม่แยกตัว
ออกจาก MS-DOS อย่างเด็ดขาดนัน่ เอง
 ในปี 2000 Microsoft ทำให้ ผ้ ใู ช้ เกิดข้ อสงสัยและสับสน เนื่องจากก่อนหน้ า

นัน้ Microsoft ออกข่าวว่าจะไม่มีพฒ ั นา Windows 9x อีกแล้ ว


 แต่ก็มี Windows ME (Millennium Edition) ซึง ่ เป็ นเหมือนฝาแฝดของ
Windows 98 ออกมาหลังจาก Windows 2000 ไม่นาน
 ซึง
่ ใช้ ชื่อ Millennium ซึง่ แปลว่า 2000 เหมือนกันทำให้ สบั สน (ME ออกมา
เพื่อรักษาตลาดเดิมของ Windows 9x ไว้ )
 ซึง่ ส่วนมากเป็ นแก้ ไขบักที่มีใน Windows 98 และเพิ่มประสิทธิภาพด้ าน
กราฟิ ก, มัลติมีเดีย และเน็ตเวิร์ค
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 9
Windows
WindowsNT
NT
 ปี 1985 Microsoft และ IBM ร่วมกันพัฒนาระบบปฏิบตั ิการ OS/2 ที่เขียน
ด้ วยภาษาแอสเซ็มบลีสำหรับที่ใช้ โปรเซสเซอร์ เดียวบนซีพียู 80286
 ปี 1988 Microsoft ตัดสินใจที่จะเริ่ มต้ นใหม่ในการพัฒนา “ระบบใหม่” หรื อ

NT (New Technology) ที่สนับสนุน Application-Programming


Interface (API) ทัง้ OS/2 และ POSIX
 เดือนตุลาคม 1988 Microsoft จ้ าง Dave Cutler สถาปนิกระบบปฏิบต ั ิการ
DEC VAX/VMS เข้ ามาดูและระบบปฏิบตั ิการใหม่ที่วา่ นี ้
 ตามความโด่งดังของ Windows 3.0 เวอร์ ชน ั แรกของ NT คือ Windows NT
3.1 และ Windows NT 3.1 Advanced Server ซึง่ วางจำหน่ายในปี 1993

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 10
Windows
WindowsNT
NT
 ลักษณะเด่นก็คือระบบไฟล์แบบ NTFS (New Technology File System)
 ปี 1996 ทาง Microsoft ได้ พฒ ั นา Windows NT จนมาถึงเวอร์ ชนั 4.0 ซึง่
ระบบปฏิบตั ิการนี ้มีประสิทธิภาพสูงขึ ้น
 Windows NT 4.0 นี ้มีรูปแบบยูเซอร์ อินเทอร์ เฟซคล้ ายกับ Windows 95

 ผนวกโปรแกรมเว็บบราวเซอร์ เพื่อการใช้ งานอินเทอร์ เน็ตมาให้ ด้วยทำให้ ผ้ ู

ใช้ ตดั สินใจเปลี่ยนไปใช้ ได้ งา่ ยขึ ้น

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 11
Item Windows 95/98 Windows NT
Full 32-bit system  
Security  
Protect file mapping  
Private address space for each MS-DOS program  
Unicode  
Run on Intel 80x86 Intel 80x86, Alpha, MIPS,…
Multiprocessor support  
Re-entrant code inside OS  
Plug and play  
Power management  
FAT-32 file system  Optional
NTFS file system  
Win32 API  
Run all old MS-DOS program  
Some critical OS data writable by user  

ข้ อแตกต่ างระหว่ าง Windows 95/98 กับ Windows NT 4.0


ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 12
Windows
Windows2000
2000
 เดิมโค้ ดในการพัฒนาเวอร์ ชนั ต่อไปของ Windows NT 4.0 ใช้ ชื่อว่า
Windows NT 5.0
 ต่อมา Microsoft เปลี่ยนชื่อเป็ น Windows 2000 เพื่อต้ องการใช้ เป็ นชื่อ

กลางสำหรับผู้ใช้ Windows 98 และ Windows NT


 Windows 2000 เป็ นระบบปฏิบต ั ิการแบบมัลติยเู ซอร์ (multiuser) แบบ
32 บิตที่แท้ จริ ง
 ใช้ สถาปั ตยกรรม microkernel (เช่นเดียวกับ Mach) โดยแต่ละส่วนเป็ น

ส่วนหนึง่ ของระบบปฏิบตั ิการ และไม่เกิดผลกระทบกับส่วนอื่น แต่ละโปร


เซสมีแอ็ดเดรสเสมือนแบบ 32 บิตเป็ นของตนเอง

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 13
Windows
Windows2000
2000
 ในขณะที่ระบบปฏิบตั ิการใช้ โหมด Kernel โปรเซสของผู้ใช้ เป็ นโหมดยู
เซอร์ ที่ได้ รับการป้องกันอย่างสมบูรณ์ แต่ละโปรเซสจะมี thread เท่าไรก็ได้
 ด้ านเน็ตเวิร์ค Windows 2000 ได้ เพิ่ม X.500-based directory สนับสนุน

ด้ านเน็ตเวิร์คดีขึ ้น, สนับสนุนดีไวซ์ Plug-and-play, ระบบไฟล์แบบใหม่ที่


สนับสนุน hierarchical storage, และระบบไฟล์แบบกระจาย
 Windows 2000 มี 4 เวอร์ ชน ั ให้ เลือกใช้ งานตามความเหมาะสม
 เวอร์ ชนั แรกเป็ น Professional ที่เหมาะสำหรับผู้ใช้ งานทัว่ ไป
 Server
 Advanced Server
 Datacenter Server
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 14
Windows
Windows2000
2000
 ทัง้ 3 เวอร์ ชนั ต่างกันที่จำนวนซีพียแู ละหน่วยความจำที่สนับสนุน
 แต่เวอร์ ชน
ั Server และ Advanced Server สามารถปรับแต่งสำหรับ
ไคลเอ็นต์-เซิร์ฟเวอร์ แอปพลิเคชัน
 และทำหน้ าที่เป็ นแอปพลิเคชันเซิร์ฟเวอร์ สำหรับ NetWare และ Microsoft

LANs
 สำหรับ Windows 2000 Datacenter Server สนับสนุนโปรเซสเซอร์ ถง ึ 32
ตัว หน่วยความจำถึง 64 กิกะไบต์

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 15
เวอร์ ชัน หน่ วยความจำ จำนวน ไคล์ เอ็นต์ ขนาด เหมาะ
สูงสุด ซีพยี ู สูงสุด คลัสเตอร์ สำหรับ
Professional 4 กิกะไบต์ 2 10 0 Response
time
Server 4 กิกะไบต์ 4 ไม่จำกัด 0 Throughp
ut
Advanced 8 กิกะไบต์ 8 ไม่จำกัด 2 Throughp
Server ut
Datacenter 64 กิกะไบต์ 32 ไม่จำกัด 4 Throughp
ut

Windows 2000 Datacenter Server สน ับสนุนโปรเซสเซอร์ถงึ 32


ต ัว หน่วยความจำถึง 64 กิกะไบต์
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 16
หลั
หลักกการออกแบบ
การออกแบบ
 ความสามารถในการขยายระบบ
 สามารถเคลื่อนย้ายได้
 เชื่ อถือได้

 คอมแพติเบิล
 ประสิ ทธิ ภาพ

 การสนับสนุ นหลายภาษา

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 17
ความสามารถในการขยายระบบ
ความสามารถในการขยายระบบ
 ความสามารถในการขยายระบบเป็ นความสามารถของระบบปฏิบตั ิการ
เพื่อก้ าวให้ ทนั กับเทคโนโลยีทางด้ านคอมพิวเตอร์ ที่เปลี่ยนไป
 การเปลี่ยนของเทคโนโลยีทำให้ ผ้ พ ู ฒั นาออกแบบ Windows 2000 โดยใช้
สถาปั ตยกรรมเลเยอร์
 โปรแกรมที่เขียนสำหรับ MS-DOS, Microsoft Windows และ POSIX

สามารถรันกับ Windows 2000 ในสภาพแวดล้ อมที่เหมาะสม


 ไม่วา่ จะเป็ นระบบไฟลใหม่, อินพุต/เอาต์พตุ ดีไวซ์ใหม่ และอุปกรณ์ สำหรับ
เน็ตเวิร์คใหม่สามารถเพิ่มเข้ าในระบบได้ ถงึ แม้ ระบบจะกำลังทำงานอยู่
ก็ตาม

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 18
สามารถเคลื
สามารถเคลือ่ อ่ นย้
นย้าายได้
ยได้
 สามารถเคลื่อนย้ ายได้ ถ้ามันสามารถย้ ายจากสถาปั ตยกรรมฮาร์ ดแวร์ หนึง่ ไปอีกส
ถาปั ตย์หนึง่ ที่มีการเปลี่ยนแปลงเพียงเล็กน้ อยได้
 ระบบปฏิบต ั ิการ UNIX ที่ระบบส่วนใหญ่เขียนด้ วยภาษา C และ C++ ทุกโค้ ดจะ
แยกเก็บไว้ ใน Dynamic Link Library (DLL) ที่เรี ยกว่า Hardware-Abstraction
Layer (HAL)
 โดยที่ DLL เป็ นไฟล์ที่เก็บข้ อมูลเพื่อแม็พกับแอ็ดเดรสของโปรเซส

 DLL จะเป็ นส่วนหนึง ่ ของโปรเซส เลเยอร์ ด้านบนของ Windows 2000 จะขึ ้นกับ
HAL มากกว่าฮาร์ ดแวร์
 ทำให้ Windows 2000 สามารถเคลื่อนย้ ายได้ HAL จะจัดการฮาร์ ดแวร์ โดยตรง

ทำให้ การแยกตัวของ Windows 2000 กับฮาร์ ดแวร์ แตกต่างกันตามแพตฟอร์ มที่รัน

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 19
เชืเชื่อ่อถืถืออได้
ได้
 ความเชื่อถือได้ เป็ นความสามารถที่จะแก้ ไขข้ อผิดพลาดที่เกิดขึ ้น
 รวมทังความสามารถที
้ ่ระบบปฏิบตั ิการจะป้องกันตัวเองและผู้ใช้ จาก
ซอฟต์แวร์ ที่ประสงค์ร้าย
 Windows 2000 จะต่อต้ านการรุ กรานโดยใช้ การป้องกันทางฮาร์ ดแวร์

สำหรับหน่วยความจำเสมือน และกลไกการป้องกันทางซอฟต์แวร์ สำหรับ


รี ซอร์ สของระบบปฏิบตั ิการ
 Windows 2000 ยังระบบไฟล์เป็ น NTFS (New Technology File

System) ที่ก้ คู ืนได้ อตั โนมัติจากข้ อผิดพลาดของระบบไฟล์ที่เกิดจากระบบ


ล่ม

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 20
คอมแพติ
คอมแพติเเบิบิลล
 Windows 2000 มีความคอมแพติเบิลกับแอปพลิเคชันที่ได้ มาตรฐาน
IEEE 1003.1 (POSIX)
 ดังนันสามารถคอมไพล์
้ และรันแอปพลิเคชันบน Windows 2000 ได้ โดยไม่
ต้ องเปลี่ยนซอร์ สโค้ ด
 Windows 2000 ยังสามารถรันโปรแกรมที่คอมไพล์สำหรับสถาปั ตยกรรม

X86 ที่รัน MS-DOS, Windows 16 บิต, OS/2, LAN Manager และ


Windows 32 บิต
 environmental subsystem เหล่านี ้สนับสนุนระบบไฟล์มากมาย รวมทัง้

FAT16 ของ MS-DOS, HPFS ของ OS/2, ISO9660 CD และ NTFS

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 21
ประสิ
ประสิททธิธิภภาพ
าพ
 Windows 2000 ถูกออกแบบให้ มีประสิทธิภาพสูง ระบบย่อยที่ทำให้
Windows 2000 สามารถสื่อสารกับระบบอื่นได้ อย่างมีประสิทธิภาพคือ
Local-Procedure-Call (LPC)
 ในระบบย่อยของ Windows 2000 เป็ น thread ที่มีสท ิ ธิสงู ทำให้ ระบบ
โต้ ตอบกับเหตุการณ์ภายนอกได้ รวดเร็ว
 เมื่อ Windows 2000 ถูกออกแบบให้ เป็ นมัลติโปรเซสซิ่งแบบสมมาตร

ทำให้ คอมพิวเตอร์ เครื่ องหนึง่ จัดการ thread ได้ หลาย thread พร้ อมกันใน
เวลาเดียวกัน
 การขยายระบบของ Windows 2000 ยังมีข้อจำกัดเมื่อเทียบกับ UNIX

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 22
การสนั
การสนับบสนุ
สนุนนหลายภาษา
หลายภาษา
 Windows 2000 ยังถูกออกแบบสำหรับการใช้ งานได้ หลายประเทศ มัน
สนับสนุนภาษาต่าง ๆ ผ่านทาง National Language Support API (NLS)
 โดย NLS API นี ้จะมีรูทีนพิเศษที่จด ั รูปแบบวันเวลา, เงินตราตามการปรับ
ที่เปลี่ยนไป
 ใน Windows 2000 จะใช้ การเปรี ยบเทียบสตริ งเพื่อกำหนดเป็ นคาแรก

เตอร์ ที่แตกต่างกัน
 ชุดคาแรกเตอร์ พิเศษที่วา่ นี ้เป็ น UNICODE ซึง่ Windows 2000 จะ
สนับสนุนคาแรกเตอร์ แบบ ANSI โดยการแปลงเป็ นคาแรกเตอร์ แบบ
UNICODE ก่อนที่จะจัดการกับมัน (แปลง 8 บิตเป็ น 16 บิต)

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 23
โครงสร้
โครงสร้าางระบบ
งระบบ
 สถาปั ตยกรรมของ Windows 2000 เป็ นเลเยอร์ ของโมดูล
 เลเยอร์ หลัก ๆ คือ HAL, Kernel และ Executive
 ทุกเลเยอร์ จะรันใน protected mode และกลุม่ ของระบบย่อยที่รันใน user
mode
 ระบบย่อยใน user model แบ่งออกเป็ น 2 กลุม ่ ใหญ่คือ
 environmental subsystem (จำลองเป็ นระบบปฏิบตั ิการที่แตกต่างกัน)
 protection subsystem (ที่มีฟังก์ชนั สำหรับการรักษาความปลอดภัย)

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 24
บล็อกไดอะแกรมของ Widnows 2000

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 25
Hardware-Abstraction
Hardware-AbstractionLayer
Layer(HAL)
(HAL)
 HAL เป็ นเลเยอร์ ของซอฟต์แวร์ ที่ซอ่ นฮาร์ ดแวร์ ที่แตกต่างจากเลเยอร์ ด้าน
บนของระบบปฏิบตั ิการ
 เพื่อให้ Windows 2000 สามารถเคลื่อนย้ ายได้ HAL จะเอ็กพอร์ ตอินเท

อร์ เฟซแบบ virtual-machine


 ที่ใช้ โดย Kernel, Executive และดีไวซ์ไดร์ เวอร์ ข้ อได้ เปรี ยบของการมี

เลเยอร์ แบบนี ้ก็คือระบบต้ องการดีไวซ์ไดร์ เวอร์ เพียง 1 เดียว


 สำหรับเหตุผลด้ านประสิทธิภาพแล้ ว อินพุต/เอาต์พต ุ ไดร์ เวอร์ (รวมทัง้
กราฟิ กไดร์ เวอร์ บน Windows 2000) สามารถแอ็กเซสฮาร์ ดแวร์ ได้ โดยตรง

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 26
Kernel
Kernel
 Kernel ของ Windows 2000 สร้ าง Executive และระบบย่อย kernel จะไม่
ทำงานจนหน่วยความจำหมด
 การเอ็กซิคิวต์ก็จะไม่ได้ รับสิทธิพิเศษก่อนเลย kernel รับผิดชอบ 4 ด้ านคือ
 การจัดเวลาของ thread
 การแก้ อินเทอร์ รัพต์
 การซินโครไนซ์ของโปรเซสเซอร์ ระดับล่าง
 การแก้ คืนเมื่อระบบล่ม
 Kernel เป็ น object oriented ใน object type ของ Windows 2000 เป็ น
ระบบที่กำหนดประเภทข้ อมูลที่เป็ นชุดของแอ็ตตริ บิวต์ (หรื อค่าข้ อมูล) และ
ชุดของเมธอด (ฟั งก์ชนั หรื อโอเปอเรชัน)
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 27
Kernel
Kernel
 ตัวอย่างของ object เหล่านี ้คือ
 event object จะใช้ บนั ทึกเหตุการณ์ที่เกิดขึ ้นและทำการซินโครไนซ์บางแอ็กชัน
 mutant object จะควบคุมการเกิด mutual exclusion ใน kernel-mode และ
user-mode
 mutex object จะมีเฉพาะใน kernel-mode จะช่วยไม่ให้ เกิด deadlock
 semaphore object จะทำหน้ าที่เหมือนตัวนับเพื่อควบคุมจำนวน thread ที่ใช้
รี ซอร์ ส
 thread object จะเป็ นสิง่ ที่รันโดย kernel และมีความสัมพันธ์กบั process
object
 timer object จะติดตามเวลาและสัญญาณการขอเวลานอกเมื่อระบบใช้ เวลา
นานๆ และต้ องการอินเทอร์ รัพต์

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 28
Kernel
Kernel
 ชุดที่สองของ kernel object ประกอบด้ วย control object ที่มี
 Asynchronous Procedure Call (APC) เป็ นสิง่ ที่ระบบใช้ ในการหยุด thread ที่
กำลังเอ็กซิคิวต์อยูแ่ ละใช้ เรี ยกโปรซีเดอร์
 interrupt object เป็ นออปเจ็กต์ที่รวม interrupt service routine ไว้ สำหรับ
interrupt source
 power notify object เป็ นออปเจ็กต์ที่ระบบใช้ เรี ยกรูทีนพิเศษโดยอัตโนมัติเมื่อ
ไฟฟ้าขัดข้ อง
 power status object เป็ นออปเจ็กต์ตรวจสอบสถานะของไฟฟ้าว่าขัดข้ องหรื อไม่
 process object จะทำหน้ าที่แสดงตำแหน่งหน่วยความจำเสมือนและควบคุม
ข้ อมูลสำคัญเพื่อเอ็กซิคิวต์ชดุ ของ thread ที่สมั พันธ์กบั โปรเซส
 profile object ทำหน้ าที่เก็บค่าเวลาที่ใช้ ในแต่ละชุดของโค้ ด

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 29
Threadและการจั
Thread และการจัดดเวลา
เวลา
 สำหรับสถานะของ thread นันจะมี
้ 6 สถานะดังนี ้
 Ready : เป็ นสถานะที่พร้ อมในการรัน
 Standby : เป็ นสถานะที่ thread เกิด ready และมี priority สูงสุด
 Running : เป็ นสถานะที่รัน thread ซึง่ ก็คือการเอ็กซิคิวต์ในโปรเซสเซอร์
นัน่ เอง
 Waiting : เป็ นสถานะที่หยุดคอยสัญญาณ เช่น การใช้ อินพุต/เอาต์พตุ สิ ้นสุด
แล้ ว
 Transition : เป็ นสถานะที่ thread ใหม่รอคอยการใช้ รีซอร์ สสำหรับการเอ็กซิ
คิวต์
 Terminated : เป็ นสถานะที่ thread เสร็จสิ ้นการเอ็กซิคิวต์แล้ ว

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 30
Threadและการจั
Thread และการจัดดเวลา
เวลา
 สำหรับการจัด priority ก่อนหลังในระบบจะมี dispatcher แบ่ง priority
เป็ น 32 ระดับ
 เรี ยงลำดับการเอ็กซิคิวต์ thread ก่อนหรื อหลัง priority ดังกล่าวนี ้เป็ นออก

เป็ น 2 ชัน้ คือ


 variable class ที่กำหนดระดับไว้ ที่ 0-15
 real-time class ที่ประกอบด้ วย thread ที่มี priority ระหว่าง 16-31
 การลดลงของ priority ของ thread ขึ ้นกับข้ อจำกัดของซีพียู เมื่อ thread ที่
มี priority เป็ น variable class ถูกปลดปล่อยจากสถานะ wait แล้ ว
dispatcher จะเพิ่ม priority ให้
 Windows 2000 ไม่ใช่ระบบปฏิบต ั ิการที่เน้ น thread แบบเรี ยลไทม์

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 31
ข้ข้ออยกเว้
ยกเว้นนและการอิ
และการอินนเทอร์
เทอร์รรัพัพต์ต์
 Windows 2000 กำหนดสถาปั ตยกรรมที่เป็ นข้ อยกเว้ นแบบอิสระไว้ รวมถึง
การใช้ หน่วยความจำผิดวิธี
 ปั ญหาร้ ายแรงกับระบบในลักษณะจอสีฟ้าที่เรี ยกว่า “blue screen of

death” ซึง่ เป็ นผลให้ ระบบล่มได้


 เนื่องจาก environmental subsystem (เช่นระบบ POSIX) สามารถสร้ าง

debugger port และ exception port ในทุกโปรเซสที่มนั สร้ างขึ ้นมาได้ ถ้ า


มีการลงทะเบียน debugger port ไว้ แล้ วข้ อแก้ ไขจะถูกส่งไปพอร์ ตนัน้
 หรื อไม่มีวิธีแก้ ไขข้ อยกเว้ นนัน
้ dispatcher จะพยายามจะแก้ ไขปั ญหาที่
เหมาะสมที่สดุ ให้ ถ้ าไม่พบวิธีแก้ ไข debugger จะเรี ยกอีกครัง้ หนึง่ เพื่อให้
จับข้ อผิดพลาดที่เกิดขึ ้น

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 32
ระดับอินเทอร์ รัพต์ ประเภทอินเทอร์ รัพต์
31 Machine check or bus error
30 Power fail
29 Interprocessor notification (request another processor to
act; e.g., dispatch a processor or update the TLB)
28 Clock (used to keep track of time)
27 Profile
3-26 Traditional PC IRQ hardware interrupts
2 Dispatch and deferred procedure call (DPC)(kernel)
1 Asynchronous procedure call (APC)
0 passive
ระดับแสดงอินเทอร์ รัพต์ ด้านฮาร์ ดแวร์ ผ่านทาง HAL
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 33
การซิ
การซินนโครไนซ์
โครไนซ์โโปรเซสเซอร์
ปรเซสเซอร์รระดั
ะดับบล่ล่าางง
 ความรับผิดชอบส่วนที่สามของ kernel คือมีการซินโครไนซ์โปรเซสเซอร์
ระดับล่าง
 ปกติกลไกของ Asynchronous Procedure Call (APC) จะคล้ ายกับกลไก

ของ DPC
 APC ถูกจัดเข้ าคิวได้ ทงใน
ั ้ system thread หรื อ user thread ถึงแม้ วา่
user-mode APC จะถูกเอ็กซิคิวต์เฉพาะเมื่อ thread ประกาศตัวเองเป็ น
alertable
 ปกติแล้ ว APC มีประสิทธิภาพสูงกว่า DPC ตรงที่ APC สามารถครอบ

ครองและคอยออปเจ็กต์, ทำให้ เกิด page fault และเรี ยก system service


ได้
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 34
การซิ
การซินนโครไนซ์
โครไนซ์โโปรเซสเซอร์
ปรเซสเซอร์รระดั
ะดับบล่ล่าางง
 เนื่องจาก APC เอ็กซิคิวต์ในพื ้นที่ของ target thread ทำให้ executive
ของ Windows 2000 ใช้ APC สำหรับการโปรเซสอินพุต/เอาต์พตุ
 เนื่องจาก Windows 2000 สามารถรันเครื่ องที่เป็ นมัลติโปรเซสเซอร์ แบบ

สมมาตร
 ดังนัน้ kernel ต้ องป้องกัน thread ทังสองจากการเปลี
้ ่ยนของข้ อมูลที่แชร์
กันในเวลานัน้
 โดย kernel จะใช้ spinlocks ที่อยูใ่ นหน่วยความจำเพื่อให้ เกิด mutual

exclusion ของมัลติโปรเซสเซอร์

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 35
การกูก้ ก้ ลัลับบเมืเมื่อ่อไฟตก
การกู ไฟตก
 ความรับผิดชอบข้ อสุดท้ ายของ kernel คือการแก้ ไขปั ญหาไฟตก อินเท
อร์ รัพต์ที่เกิดจากไฟตกเป็ น priority สูงสุด
 อันดับสองที่แจ้ งระบบปฏิบต ั ิการเมื่อไฟตก โดย power-notify object
 วิธีการทำให้ ดีไวซ์ไดร์ เวอร์ ลงทะเบียนรู ทีนไว้ ก่อน เมื่อเกิดปั ญหาก็ จะเรี ยก

รูทีนนี ้เพื่อนำค่าเดิมมาใช้ เพื่อมัน่ ใจได้ วา่ ดีไวซ์รับค่าสถานะที่ถกู ต้ องในการ


คืนค่ากลับ
 สำหรับระบบแบ็คอัพแบ็ตเตอรี่ power-status object มีประโยชน์มาก

ก่อนเข้ าขันวิ้ กฤต ไดร์ เวอร์ จะพิจารณา power-status object ที่ตรวจสอบ


ว่าเกิดไฟตกหรื อไม่

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 36
Executive
Executive
 คอมโพเนนต์ในระดับเดียวกันสามารถเรี ยกใช้ งานได้ คอมโพเนนต์ทงั ้ 10 มี
ดังนี ้
 Object manager จะทำหน้ าที่จดั การทุกออปเจ็กต์ที่ระบบปฏิบตั ิการรู้จกั รวมถึง
โปรเซส, thread, ไฟล์, ไดเรกทอรี , semaphore, ดีไวซ์อินพุต/เอาต์พตุ และอื่น
 I/O manager เป็ นเฟรมเวิร์คสำหรับจัดการดีไวซ์อินพุต/เอาต์พตุ
และอินพุต/เอาต์พตุ เซอร์ วิส มันยังเตรี ยมดีไวซ์ให้ ระบบโดยการเรี ยกไดร์ เวอร์ ที่
เหมาะสมกับอุปกรณ์อินพุตฝเอาต์พตุ
 Process manager จะทำหน้ าที่ให้ บริ การโปรเซสและ thread ที่รวมทังการสร้
้ าง,
การลบ และการใช้ โปรเซสและ thread ขึ ้นอยูก่ บั กลไกการจัดการมากกว่าวิธี
การนำไปใช้ Process manager จะสร้ างโปรเซส และ thread ของ kernel

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 37
Executive
Executive
 Plug-and-Play manager ในระบบปฏิบตั ิการจะทำหน้ าที่แจ้ งเตือนเมื่อมีดี
ไวซ์ใหม่เชื่อมต่อกับระบบทันทีที่บตู ระบบขึ ้นมา แต่ในบางดีไวซ์สามารถเชื่อม
ต่อได้ ในขณะที่ระบบกำลังทำงานอยู่
 Power manager ทำหน้ าที่จดั การเกี่ยวกับพลังงานในระบบทังหมด ้ ตังแต่

การปิ ดมอนิเตอร์ , หยุดการใช้ ดิสก์เมื่อระบบไม่ได้ รับการตอบสองจากผู้ใช้ ใน
เวลาที่กำหนด สำหรับเครื่ องแลปทอป Power manager จะตรวจสอบการใช้
ไฟในแบ็ตเตอรี่ และจะแจ้ งเตือนเมื่อไฟเหลือน้ อยเพื่อให้ คณ ุ เตรี ยมการ
 Configuration manager ทำหน้ าที่จดั การคอนฟิ กเุ รชันของระบบโดยจะ
จัดการลงในรี จิสตรี (registry) ทังการเพิ
้ ่มคีย์ใหม่ หรื อการพิจารณาคีย์เมื่อมี
การร้ องขอ

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 38
Executive
Executive
 Local Procedure Call manager ทำหน้ าที่ในการส่งผ่านคำร้ องขอและ
ผลลัพธ์ระหว่างโปรเซสของไคลเอ็นต์และเซิร์ฟเวอร์ ในเครื่ องเดียวกัน งาน
เฉพาะคือระบบจะใช้ LPC เพื่อร้ องขอเซอร์ วิสจากระบบย่อยของ Windows
2000
 การสร้ างช่อง LPC เทคนิคการส่งผ่านแมสเสจอาจจะเป็ นแบบใดแบบ
หนึง่ ใน 3 แบบ
 เทคนิคแรกเหมาะสำหรับแมสเสจขนาดเล็ก (ไม่เกิน 256 ไบต์) ในกรณีนี ้คิว
แมสเสจของพอร์ ตจะใช้ เป็ นสื่อเก็บข้ อมูลขนาดกลาง และแมสเสจจะถูก
ก็อปปี จ้ ากโปรเซสหนึง่ ไปยังโปรเซสอื่น

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 39
Executive
Executive
 เทคนิคที่สองสำหรับสื่อเก็บข้ อมูลขนาดใหญ่ ในกรณีนี ้จะสร้ างออปเจ็กต์
เพื่อใช้ ในการแชร์ หน่วยความจำด้ วย แมสเสจที่สง่ ผ่านคิวแมสเสจของพอร์ ต
ประกอบด้ วยพอยเตอร์ และขนาดที่อ้างถึงออปเจ็กต์ของส่วนนัน้
 เทคนิคการส่งผ่านแมสเสจของ LPC แบบที่สามนี ้เรี ยกว่า quick LPC ซึง่ ใช้
ในการแสดงส่วนที่เป็ นกราฟิ กของระบบย่อย Win32 เมื่อไคล์เอ็นต์ร้องขอ
quick LPC
 เซิร์ฟเวอร์ จะสร้ างออปเจ็กต์ขึ ้นมา 3 ออปเจ็กต์คือ
 dedicate server thread จะช่วยขจัดปั ญหาการทับซ้ อนในการพิจารณาว่า
thread ของไคลเอ็นต์ใดเรี ยกเซิร์ฟเวอร์ kernel จะจัดเวลาในการใช้ งานเพื่อ
เพิ่มประสิทธิภาพให้ ระบบ

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 40
Executive
Executive
 section object เป็ นออปเจ็กต์ขนาด 64 กิโลไบต์ ที่ให้ แมสเสจ LPC ส่งผ่าน
แมสเสจ โดยไม่ต้องก็อปปี เ้ นื่องจากมีการแชร์ หน่วยความจำ
 even-pair object ซึง่ เป็ นซินโครไนซ์ออปเจ็กต์ที่ระบบย่อย Win32 ใช้ เมื่อ
thread ของไคล์เอ็นต์ก็อปปี แ้ มสเสจไปยังเซิร์ฟเวอร์ Win32 หรื อกลับกัน
ออปเจ็กต์นี ้ช่วยขจัดปั ญหาการทับซ้ อนในการใช้ พอร์ ตเพื่อส่งผ่านแมสเสจที่
ประกอบด้ วยพอยเตอร์ และขนาด

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 41
Environmental
EnvironmentalSubsystem
Subsystem
 Environmental Subsystem เป็ นโปรเซสแบบ user-mode ที่อยูด่ ้ านบน
ของ Executive ของ Windows 2000
 แต่ละ Environmental Subsystem จะมี 1 API หรื อ application

environment ใน Windows 2000 ใช้ ระบบย่อย Win32 เป็ นระบบหลัก


 Environmental subsystem ใช้ เทคนิคของ LPC เพื่อให้ kernel บริ การโปร

เซส
 สิง
่ นี ้ทำให้ Windows 2000 มีความแข็งแกร่ง เพราะสามารถตรวจสอบ
ความถูกต้ องของพารามิเตอร์ ที่สง่ ผ่านไปยัง system call ได้ ก่อนที่จะมีรูที
นของ kernel ร้ องขอ
 Windows 2000 ไม่ยอมรับแอปพลิเคชันจาก API ต่างระบบกัน

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 42
Environmental
EnvironmentalSubsystem
Subsystem
 Win32 แบ่งกลุม่ แอปพลิเคชันเป็ น 2 กลุม่ คือ
 เป็ นกราฟิ ก
 ตัวอักษร
 แอปพลิเคชันที่เป็ นตัวอักษรจะแสดงผลเป็ นแอสกี ้โค้ ดในรูปแบบ 80x24
 Win32 จะแปลงผลลัพธ์ ของแอปพลิเคชันแบบตัวอักษรเป็ นกราฟิ กที่แ สดง

ในวินโดว์
 เมื่อใดก็ตามที่มีการเรี ยกรู ทีนเพื่อแสดงผล environmental subsystem จะ

เรี ยกรูทีน Win32 เพื่อแสดงตัวอักษร


 การแปลงนี ้ใช้ ได้ กบ
ั แอปพลิเคชันบน MS-DOS เช่นเดียวกับแอปพลิเคชัน
บน POSIX
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 43
การจั
การจัดดการโปรเซส
การโปรเซสและ
และthread
thread
 Windows 2000 โปรเซสก็คือแอปพลิเคชันที่กำลังเอ็กซิคิวต์ และ thread
เป็ นหน่วยหนึง่ ของโค้ ดที่จดั เวลาโดยระบบปฏิบตั ิการ
 โปรเซสประกอบด้ วย thread 1 thread หรื อมากกว่าก็ได้
 โปรเซสจะเริ่ มต้ นเมื่อโปรเซสอื่นเรี ยกรู ทีน CreateProcess รู ทีนนี ้จะโหลด

Dynamic Link Libraries (DLL) ที่โปรเซสต้ องการใช้ งาน


 และสร้ าง primary thread นอกจากนี ้ thread ยังสามารถสร้ างจาก

ฟั งก์ชนั CreateThread
 thread จะสร้ างด้ วยสแต็กของตัวเอง ซึง่ สแต็กนี ้จะมีขนาดมาตรฐานเป็ น

1 เมกะไบต์

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 44
การจั
การจัดดการโปรเซส
การโปรเซสและ
และthread
thread
 ทุก DLL หรื อไฟล์ที่สามารถเอ็กซิคิวต์ได้ จะถูกโหลดไว้ ที่เนื ้อที่แอ็ดเดรส
ของโปรเซสที่กำหนดโดย instance handle
 ค่าของ instance handle เป็ นค่าของแอ็ดเดรสเสมือนที่ไฟล์นนโหลด ั้
แอปพลิเคชันสามารถรับค่า handle ของโมดูลในแอ็ดเดรสโดยการส่งผ่าน
ค่าของโมดูลไปยัง GetModuleHandle
 ชื่อที่สง่ มามีคา่ เป็ น NULL แอ็ดเดรสของโปรเซสจะถูกส่งกลับไป จะไม่มี
การนำเนื ้อที่แอ็ดเดรสล่างสุด 64 กิโลไบต์ไปใช้
 ดังนันโปรแกรมที
้ ่ผิดพลาดในการพยายามอ้ างอิงตำแหน่งพอยเตอร์ ของ
NULL จะไม่ยินยอมให้ แอ็กเซส

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 45
การจั
การจัดดการโปรเซส
การโปรเซสและ
และthread
thread
 ในสภาวะแบบ Win32 เป็ นพื ้นฐานของโมเดลการจัดเวลาของ Windows
2000
 Win32 แบ่งกลุม
่ priority เป็ น 4 กลุม่ คือ
 IDLE_PRIORITY_CLASS (priority ระดับ 4)
 NORMAL_PRIORITY_CLASS (priority ระดับ 8)
 HIGH_PRIORITY_CLASS (priority ระดับ 13)
 REALTIME_PRIORITY_CLASS (priority ระดับ 24)
 Windows 2000 ยังแบ่งแยกระหว่างโปรเซสแบบฟอร์ กราวนด์ที่ปัจจุบนั
กำลังถูกเลือกอยูบ่ นจอภาพและโปรเซสแบบแบ็คกราวนด์ที่ปัจจุบนั ไม่ได้
ถูกเลือก

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 46
การจั
การจัดดการโปรเซส
การโปรเซสและ
และthread
thread
 thread จะเริ่ มต้ นด้ วยค่า priority เบื ้องต้ นที่กำหนดโดยคลาส แต่คา่
priority นี ้สามารถเปลี่ยนแปลงได้ โดยฟั งก์ชนั SetThreadPriority
 ฟั งก์ชนั นี ้นำอาร์ กิวเมนต์ที่กำหนดค่า priority ให้ สมั พันธ์กบั ค่า priority
เบื ้องต้ นของคลาสดังนี ้
 THREAD_PRIORITY_LOWEST : base – 2
 THREAD_PRIORITY_BELOW_NORMAL : base – 1
 THREAD_PRIORITY_NORMAL : base + 0
 THREAD_PRIORITY_ABOVE_NORMAL : base + 1
 THREAD_PRIORITY_HIGHEST : base + 2

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 47
การจั
การจัดดการโปรเซส
การโปรเซสและ
และthread
thread
 Kernel มีคลาสเกี่ยวกับ priority อยู่ 2 คลาสคือ
 16-31 สำหรับคลาสแบบ real-time
 0-15 สำหรับคลาสแบบ variable-priority
 THREAD_PRIORITY_IDLE จะกำหนดให้ คา่ priority เป็ น 16 สำหรับ
thread แบบ real-time
 กำหนดให้ เป็ น 1 สำหรับ thread แบบ variable-priority

 ส่วน THREAD_PRIORITY_TIME_CRITICAL จะกำหนดค่า priority เป็ น

31 สำหรับ thread แบบ real-time


 กำหนดให้ เป็ น 15 สำหรับ thread แบบ variable-priority และ Kernel จะ

ปรับค่า priority ของ thread ตลอดเวลาขึ ้นอยูก่ บั ว่า thread


ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 48
การจั
การจัดดการโปรเซส
การโปรเซสและ
และthread
thread
 Thread สามารถสร้ างได้ ในสภาวะ Suspended ทำให้ thread ไม่สามารถ
เอ็กซิคิวต์จนกว่า thread อื่นจะทำให้ มนั เอ็กซิคิวต์ได้ ผา่ นทางฟั งก์ชนั
ResumeThread
 ฟั งก์ชน
ั SuspendThread จะทำในสิง่ ตรงกันข้ าม ทังสองฟั ้ งก์ชนั จะเซ็ตตัว
นับ
 ถ้ า thread ถูก suspend เป็ นครัง้ ที่สองจะต้ องใช้ ฟังก์ชน ั ResumeThread
สองครัง้ จึงจะทำงานได้
 Fiber เป็ นโค้ ดแบบ user-mode ที่รับการจัดเวลาในการเอ็กซิคิวต์ จากอัล

กอริทมึ การจัดเวลาตามที่ผ้ ใู ช้ กำหนด โปรเซสหนึง่ ๆ

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 49
การจั
การจัดดการโปรเซส
การโปรเซสและ
และthread
thread
 ข้ อแตกต่างประการหลักระหว่าง thread กับ fiber ก็คือ
 thread สามารถเอ็กซิคิวต์ได้ พร้ อม ๆ กันได้ หลาย thread
 แต่สำหรับ fiber จะได้ รับอนุญาตให้ เอ็กซิคิวต์ได้ เพียง fiber เดียวในเวลานัน้
ถึงแม้ ฮาร์ ดแว์จะเป็ นแบบมัลติโปรเซสเซอร์ ก็ตาม
 กลไกนี ้มีอยูใ่ นระบบปฏิบตั ิการ Windows 2000 เช่นเดียวกับที่มีอยูใ่ น
แอปพลิเคชันบน UNIX ที่เขียนขึ ้นมาสำหรับโมเดล fiber-execution
สำหรับ Windows 2000 จะมีการสร้ าง fiber โดยอาจจะเรี ยกฟั งก์ชนั
ConvertThreadToFiber หรื อ CreateFiber ก็ได้

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 50
การจั
การจัดดการหน่
การหน่ววยความจำ
ยความจำ
 การใช้ หน่ วยความจำเสมือน : แอปพลิเคชันจะใช้ ฟังก์ชนั VirtualAlloc
ในการสงวนหรื อใช้ หน่วยความจำเสมือน ส่วนคำสัง่ ตรงข้ ามคือ
VirtualFree เพื่อเลิกใช้ หน่วยความจำ
 แมพหน่ วยความจำเป็ นไฟล์ : วิธีนี ้เป็ นอีกวิธีหนึง ่ ที่แอปพลิเคชันใช้ หน่วย
ความจำโดยแมพเนื ้อที่หน่วยความจำเป็ นไฟล์ การแมพหน่วยความจำนี ้
เป็ นประโยชน์เมื่อโปรเซส 2 โปรเซสมีการแชร์ หน่วยความจำ
 Heap : เมื่อโปรเซสใน Win32 เริ่ มต้ นขึ ้น จะสร้ าง default heap ขนาด 1

เมกะไบต์ เนื่องจากฟั งก์ชนั ของ Win32 หลายฟั งก์ชนั ใช้ default heap การ
แอ็กเซส heap เป็ นการซินโครไนซ์เพื่อป้องกันโครงสร้ างข้ อมูลของ heap
จากอันตรายเมื่ออัปเดทพร้ อมกันจาก thread หลาย thread
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 51
การจั
การจัดดการหน่
การหน่ววยความจำ
ยความจำ
 Thread-local storage : วิธีที่สี่นี ้เป็ นวิธีการใช้ หน่วยความจำของ
แอปพลิเคชัน ฟั งก์ชนั ที่ขึ ้นอยูก่ บั ข้ อมูลแบบโกลบอลหรื อไดนามิกโดยปกติ
จะทำงานไม่ถกู ต้ องในสภาวะ multithreaded

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 52
การจั
การจัดดการอุ
การอุปปกรณ์
กรณ์ออินินพุพุตต/เอาต์
/เอาต์พพตุ ตุ
 เป้าหมายหลักของระบบอินพุต/เอาต์พตุ ของ Windows 2000 ก็คือสร้ าง
เฟรมเวิร์คสำหรับดูแลอุปกรณ์อินพุต/เอาต์พตุ ที่มีอยูห่ ลากหลาย
 อุปกรณ์ ที่เป็ นอินพุตในปั จจุบน ั มีทงคี
ั ้ ย์บอร์ ด, เมาส์, จอยสติ๊ก, สแกนเนอ
ร์ , กล้ องดิจิตอล, เครื่ องอ่านบาร์ โค้ ด และไมโครโฟน
 อุปกรณ์ ที่เป็ นเอาต์พต ุ มีทงมอนิ
ั ้ เตอร์ , เครื่ องพิมพ์, พล็อตเตอร์ , เครื่ อง
บันทึกซีดี และการ์ ดเสียง นอกจากนี ้ยังมีสื่อที่ใช้ ในการจัดเก็บข้ อมูล เช่น
ฟล็อปปี ดิสก์, ฮาร์ ดดิสก์, ซีดีรอม, ดีวีดี และเทป
 Windows 2000 ได้ ถก ู ออกแบบด้ วยเฟรมเวิร์คธรรมดาที่ทำให้ อปุ กรณ์
สามารถเชื่อมต่อระบบได้ อย่างง่ายดาย

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 53
การจั
การจัดดการอุ
การอุปปกรณ์
กรณ์ออินินพุพุตต/เอาต์
/เอาต์พพตุ ตุ
 อุปกรณ์อินพุต/เอาต์พตุ ใน Windows 2000 ถูกดูแลด้ วย I/O manager ซึง่
ทำงานร่วมกับ Plug-and-Play manager
 แนวคิดหลักเบื ้องหลังระบบ PnP ก็คือบัสของระบบซึง่ ใน Windows 2000

มีหลากหลาย เช่น PC card, PCI, USB, IEEE 1394 และ SCSI บัสเหล่า
นี ้ออกแบบขึ ้นมาทำงานกับ PnP
 PnP manager จะส่งสัญญาณไปยังสล็อตต่าง ๆ และตรวจสอบว่า

อุปกรณ์นนมีั ้ การแสดงตัวว่าเป็ น PnP หรื อไม่


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

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 54
การจั
การจัดดการอุ
การอุปปกรณ์
กรณ์ออินินพุพุตต/เอาต์
/เอาต์พพตุ ตุ
 I/O manager ยังทำงานร่วมกับ Power manager โดยทำให้ อปุ กรณ์ปิด-
เปิดในสภาวะที่กำหนด เช่น เมื่อไม่แตะต้ องคีย์บอร์ ด หรื อเมาส์จะทำให้
มอนิเตอร์ ดบั ไป จนเมื่อสัมผัสอีกครัง้ มอนิเตอร์ จะสว่างเหมือนเดิม
 ในทันทีที่มีการร้ องขอข้ อมูลจากโปรเซสของผู้ใช้ ระบบจะส่งไปยัง cache

manager ก่อนเพื่อตรวจสอบว่ามีข้อมูลที่ต้องการในแคชหรื อไม่


 ถ้ าข้ อมูลที่ร้องขอมานันไม่
้ มีในแคชก็จะให้ I/O manager เรี ยกไดร์ เวอร์ เพื่อ
รับข้ อมูลจากดิสก์ตอ่ ไป แต่ถ้ามีข้อมูลเหล่านันในแคชแล้
้ วก็จะนำไปใช้ ได้
ทันที
 ฟีเจอร์ ในอนาคตที่น่าสนใจอีกอย่างหนึง ่ ของ Windows 2000 คือการ
สนับสนุน dynamic disk
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 55
การจั
การจัดดการอุ
การอุปปกรณ์
กรณ์ออินินพุพุตต/เอาต์
/เอาต์พพตุ ตุ
 ดิสก์เหล่านี ้อาจจะขยายเป็ นหลายพาร์ ติชนั หรื อหลายดิสก์ได้ ทนั ทีโดยไม่
ต้ องบูตเครื่ องใหม่
 วิธีที่ thread จะทราบว่าอินพุต/เอาต์พต
ุ ทำงานเสร็ จหรื อยัง
 ประการแรกก็คือการกำหนดออปเจ็กต์ของอีเวนต์ในทันทีที่มีการเรี ยกใช้
 ประการอื่นก็คือการกำหนดคิวสำหรับอีเวนต์ที่เสร็จสมบูรณ์แล้ วซึง่ จะส่งมา
จากระบบเมื่ออินพุต/เอาต์พตุ ทำงานเสร็จแล้ ว
 ประการที่สามก็คือมีโปรซีเดอร์ ให้ ระบบเรี ยกกลับเมื่ออินพุต/เอาต์พตุ ทำงาน
เสร็จแล้ ว
 Windows 2000 มี API เป็ นร้ อยสำหรับอุปกรณ์ที่หลากหลาย เช่น เมาส์,
การ์ ดเสียง หรื อเทป

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 56
กลุม่ API คำอธิบาย
การจัดการวินโดว์ สร้ าง, ลบ และจัดการวินโดว์
เมนู สร้ าง, ลบเมนู และเมนูบาร์ รวมทังป๊้ อบอัพเมนู
ไดอะล็อกบ็อกซ์ แสดงไดอะล็อกบ็อกซ์เพื่อรับข้ อมูลจากผู้ใช้
การวาดและการระบายสี แสดงจุด, ลากเส้ น วาดรูปทรงเรขาคณิต
เท็กซ์ แสดงเท็กซ์ที่มีฟอนต์, ขนาด สีและเอ็ฟเฟ็ กต์อื่น ๆ
บิตแมพและไอคอน วางภาพบิตแมพและไอคอนบนจอภาพ
สี จัดการชุดของสีที่มีอยู่
คลิปบอร์ ด เชื่อมโยงข้ อมูลภายในแอปพลิเคชัน และระหว่างแอปพลิเคชัน
อินพุต รับข้ อมูลจากคีย์บอร์ ดและเมาส์

กลุ่มของ Win32 API

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 57
การจั
การจัดดการอุ
การอุปปกรณ์
กรณ์ออินินพุพุตต/เอาต์
/เอาต์พพตุ ตุ
 ไดร์ เวอร์ ที่เขียนเพื่อให้ เข้ ากับโมเดลของ WDM ต้ องมีคณ
ุ สมบัติดงั นี ้
 ให้ สนับสนุนคำร้ องขอของอินพุต/เอาต์พตุ ที่เข้ ามาในรูปแบบมาตรฐาน
 ต้ องเป็ นพื ้นฐานของออปเจ็กต์ซงึ่ เป็ นส่วนหนึง่ ของ Windows 2000
 ยอมให้ อปุ กรณ์ PnP ติดตังหรื
้ อถอนออกได้ ตลอดเวลา
 ยอมให้ มีการจัดการจาก Power manager
 สามารถปรับแต่งได้ ในเรื่ องของการใช้ รีซอร์ ส
 นำไปใช้ ในรูปแบบมัลติโปรเซสเซอร์ ได้
 สามารถเคลื่อนย้ ายไปมาระหว่าง Windows 98 และ Windows 2000 ได้

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 58
ระบบไฟล์
ระบบไฟล์ใในนWindows
Windows2000
2000
 Windows 2000 สนับสนุนระบบไฟล์หลายรูปแบบที่สำคัญคือ FAT-16
(File Allocation Table), FAT-32, NTFS (New Technology File System)
และ OS/2 HPFS โดยที่ FAT-16
 นอกจากนี ้ Windows 2000 ยังสนับสนุนระบบไฟล์แบบอ่านอย่างเดียว

(read-only) สำหรับ CDROM และ DVD และมีความเป็ นไปได้ ด้วยที่


ระบบที่กำลังทำงานอยูใ๋ นระบบหนึง่ สามารถแอ็กเซสระบบไฟล์ได้ หลาย
ระบบในเวลาเดียวกัน
 ชื่อไฟล์เดี่ยว ๆ ในระบบไฟล์ NTFS มีขนาดไม่เกิน 255 ตัวอักษร แต่ถ้ารวม

พาธจะมีขนาดได้ มากถึง 32,767 ตัวอักษร ชื่อไฟล์เป็ นยูนิโค้ ด (Unicode)

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 59
ระบบไฟล์
ระบบไฟล์ใในนWindows
Windows2000
2000
 ชื่อไฟล์ NTFS ไม่ใช่เป็ นการเรี ยงไบต์เป็ นเส้ นตรงเหมือน FAT-32 และไฟล์
UNIX แต่ไฟล์ NTFS ประกอบด้ วยแอ็ตตริ บิวต์หลายแอ็ตตริ บิวต์
 แต่ละแอ็ตตริ บิวต์แสดงในรู ป stream ของไบต์ ไฟล์สว ่ นมากมี stream สัน้
(เช่นชื่อไฟล์และ object ID แบบ 64 บิต) ตามด้ วย stream ยาวของข้ อมูล
 ไฟล์หนึง ่ ๆ สามารถประกอบด้ วย stream ข้ อมูล 2 stream ขึ ้นไปก็ได้
 แต่ละ stream มีชื่อที่ประกอบด้ วย ชื่อไฟล์ , โคลอน, และชื่อ stream เช่น

apple:stream1 แต่ละ stream มีขนาดเป็ นของตนเองและเป็ นอิสระจาก


stream อื่น
 สำหรับแนวคิดที่มีหลาย stream ในไฟล์ยืมมาจากแอปเปิ ลแม็คอินทอช ที่

ไฟล์มี 2 stream ที่เรี ยกว่า data fork และ resource fork


ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 60
ระบบไฟล์
ระบบไฟล์ใในนWindows
Windows2000
2000
 stream ของไฟล์ มีวตั ถุประสงค์การใช้ มากกว่าเพื่อให้ คอมแพติเบิลกับแม็
คอินทอช
 การใช้ stream อีกแบบหนึง ่ ใช้ ในเวิร์ดโปรเซสเซอร์ โปรแกรมเหล่านี ้ส่วน
มากจะสร้ างไฟล์เอกสารเป็ น 2 เวอร์ ชนั คือ
 stream ที่ใช้ ชวั่ คราวในระหว่างแก้ ไข (ไม่มีชื่อ stream)
 ส่วนอีก stream หนึง่ จะใช้ เมื่อผู้ใช้ ทำงานเสร็จแล้ ว (มีชื่อ stream) ทังสอง

เวอร์ ชนั จะใช้ ชื่อไฟล์เดียวกัน, ข้ อมูลการรักษาความปลอดภัยเดียวกัน
 ฟั งก์ชนั Win32 API สำหรับจัดการไฟล์และไดเรกทอรี ก็จะคล้ าย ๆ กับใน
UNIX

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 61
ระบบไฟล์
ระบบไฟล์ใในนWindows
Windows2000
2000
 เพียงแต่มีพารามิเตอร์ มากกว่าเท่านัน้ รวมทังโมเดลในการรั
้ กษาความ
ปลอดภัยที่ตา่ งกัน
 การเปิดไฟล์จะให้ คา ่ แฮนเดิลสำหรับการอ่านและเขียนไฟล์ สำหรับ
แอปพลิเคชันที่เป็ นกราฟิ กจะไม่มีการกำหนดแฮนเดิลของไฟล์ไว้ ก่อน
 สำหรับฟั งก์ชน ั ของ Win32 API ทังในการจั
้ ดการไฟล์และไดเรกทอรี เมื่อ
เปรี ยบเทียบกับคำสัง่ ของ UNIX
 พื ้นฐานที่สด
ุ ของระบบไฟล์ NTFS คือ volume ซึง่ สร้ างโดยยูทิลีตี ้ในการ
บริ หารระบบ Windows 2000
 ส่วนประกอบใน volume จะเป็ นไฟล์, ไดเรกทอรี และโครงสร้ างข้ อมูลที่อาจ

จะเป็ นส่วนหนึง่ ของดิสก์, ดิสก์ทงหมด


ั้
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 62
Win32 API UNIX คำอธิบาย
CreateFile Open สร้ างไฟล์ หรื อเปิ ดไฟล์ที่มีอยูแ่ ล้ ว
DeleteFile Unlink ลบไฟล์ที่มีอยูแ่ ล้ ว
CloseHandle Close ปิ ดไฟล์
ReadFile Read อ่านข้ อมูลจากไฟล์
WriteFile Write เขียนข้ อมูลลงไฟล์
SetFilePointer Iseek กำหนดตำแหน่งพอยเตอร์ ในไฟล์
GetFileAttributes Stat แสดงค่าคุณสมบัติของไฟล์
LockFile Fcntl ล็อกพื ้นที่ของไฟล์เพื่อให้ เกิด muatual exclusion
UnlockFile Fcntl ปลดล็อกจากการล็อกพื ้นที่ไฟล์ที่ทำไว้
CreateDirectory Mkdir สร้ างไดเรกทอรี ใหม่
RemoveDirectory Rmdir ลบไดเรกทอรี ว่าง
FindFirstFile Opendir เริ่มอ่านสิ่งที่อยูใ่ นไดเรกทอรี
FindNextFile Readdir อ่านสิ่งต่อไปที่อยูใ่ นไดเรกทอรี
MoveFile Rename ย้ ายไฟล์จากไดเรกทอรี หนึง่ ไปยังไดเรกทอรี หนึง่
SetCurrentDirectory chdir เปลี่ยนไดเรกทอรี ที่ใช้ งานอยูใ่ นปั จจุบนั

ฟังก์ ชันของ Win32 API เมือ่ เปรียบเทียบกับคำสั่ งของ UNIX


ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 63
ระบบไฟล์
ระบบไฟล์ใในนWindows
Windows2000
2000
 โครงสร้ างข้ อมูลหลักในแต่ละ volume คือ MFT (Master File Table) ซึง่
เป็ นเรกคอร์ ดขนาด 1 กิโลไบต์ของไบต์ที่เรี ยงต่อกันไป
 แต่ละเรกคอร์ ดของ MFT จะแสดงไฟล์ 1 ไฟล์ หรื อไดเรกทอรี 1 ไดเรกทอรี ที่

มีแอตตริ บิวต์ เช่น ชื่อของไฟล์ หรื อเวลาที่จดั เก็บ รวมทังลิ


้ สต์ของเนื ้อที่ดิสก์
ที่แบ่งช่วงไว้
 ในระบบไฟล์ NTFS ไม่ได้ แยกดิสก์ออกเป็ นเซ็กเตอร์ (sector) แต่จะใช้

คลัสเตอร์ (cluster) ในการกำหนดหน่วยของดิสก์


 NTFS ใช้ Logical Cluster Number (LCN) เป็ นแอ็ดเดรสของดิสก์ โดย

กำหนดเป็ นหมายเลขคลัสเตอร์ จากจุดเริ่ มต้ นของดิสก์ไปจนถึงจุดสุดท้ าย


ของดิสก์
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 64
เน็เน็ตตเวิเวิรร์ค์ค
 เน็ตเวิร์คคอมโพเนนต์ใน Windows 2000 ทำให้ มีการส่งข้ อมูล, การติดต่อ
ระหว่างโปรเซส, การแชร์ ไฟล์ข้ามเน็ตเวิร์ค
 เน็ตเวิร์คใน Windows 2000 เรามักจะกล่าวถึงอินเทอร์ เฟซภายในเน็ตเวิร์ค

ที่มี 2 รูปแบบคือ
 Network Device Interface Specification (NDIS)
 และ Transport Driver Interface (TDI)
 NDIS นี ้พัฒนาขึ ้นมาในปี 1989 โดยความร่วมมือระหว่างไมโครซอฟต์ และ
3Com
 แยกเน็ตเวิร์คอะแด็ปเตอร์ จากโปรโตคอล Transport ซึง
่ จะไม่มีผลกระทบ
กับส่วนอื่น
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 65
เน็เน็ตตเวิเวิรร์ค์ค
 อื่น NDIS อยูร่ ะหว่างเลเยอร์ data-link control และ media-access
control
 ในโมเดล OSI และมีหลายโปรโตคอลที่สามารถทำงานได้ หลายเน็ตเวิร์ค

อะแด็ปเตอร์ ที่ตา่ งกัน


 สำหรับ TDI ในเทอมของโมเดล OSI นันจะเป็ ้ นอินเทอร์ เฟซระหว่างเลเยอร์
Transport (เลเยอร์ ที่ 4) และเลเยอร์ Session (เลเยอร์ ที่ 5)
 TDI สนับสนุนการส่งข้ อมูลทังแบบ
้ connection-based และ
connectionless และมีฟังก์ชนั หลากหลายในการส่งข้ อมูลหลายประเภท

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 66
โปรโตคอล
โปรโตคอล
 Windows 2000 มาพร้ อมกับเน็ตเวิร์คโปรโตคอลหลายรูปแบบ ที่น่า
สนใจมีดงั นี ้
 SMB : โปรโตคอล SMB (Server Message Block) โปรโตคอล SMB มี
แมสเสจ 4 ประเภทคือ
1. แมสเสจ Session control (คำสัง่ เพื่อเริ่มต้ นและจบการเชื่อมต่อเพื่อแชร์
รี ซอร์ สที่เซิร์ฟเวอร์ )
2. แมสเสจ File (เพื่อแอ็กเซสไฟล์ที่เซิร์ฟเวอร์ )
3. แมสเสจ Printer (เพื่อส่งข้ อมูลไปยังคิวการพิมพ์ที่อยูห่ า่ งไกล และรับข้ อ
มูลสเตตัสกลับมา)
4. แมสเสจ Message (ใช้ ในการติดต่อสื่อสารกับเวิร์สเตชันอื่น)
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 67
โปรโตคอล
โปรโตคอล
 NetBIOS : โปรโตคอล NetBIOS (Network Basic Input/Output System)
เป็ น hardware-abstraction interface สำหรับเน็ตเวิร์คที่พฒ ั นามาในช่วง
1980 ใช้ กบั เครื่ องคอมพิวเตอร์ ที่ใช้ MS-DOS และกลายเป็ นอินเทอร์ เฟ
ซมาตรฐานสำหรับเน็ตเวิร์คโปรแกรมมิ่ง
 NetBEUI : โปรโตคอล NetBEUI (NetBIOS Extended User Interface)
พัฒนาโดย IBM เมื่อ 1985 โดยเป็ นเน็ตเวิร์คโปรโตคอลที่ใช้ งานง่าย, มี
ประสิทธิภาพ และเชื่อมต่อได้ ถงึ 254 เครื่ อง ถูกกำหนดให้ เป็ นดีฟอลต์
โปรโตคอลบน Windows 95 และ Windows for workgroup ใน Windows
2000 ใช้ NetBEUI เมื่อต้ องการแชร์ รีซอร์ สบนเน็ตเวิร์คเหล่านี ้

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 68
โปรโตคอล
โปรโตคอล
 PPTP : โปรโตคอล PPTP (Point-to-Point Tunneling Protocol) มีอยูใ่ น
Windows 2000 เพื่อติดต่อสื่อสารระหว่างรี โมทแอ็กเซสเซิร์ฟเวอร์ โมดูลที่
รันบนเครื่ องเซิร์ฟเวอร์ ของ Windows 2000 และไคลเอ็นต์อื่น ที่เชื่อมต่อ
ผ่านทางอินเทอร์ เน็ต
 DLC : โปรโจคอล DLC (Data-Link Control) นี ้ Windows 2000 นำมาใช้
ในการแอ็กเซสกับเมนเฟรมของ IBM และเครื่ องพิมพ์ของ HP ที่เชื่อมต่อ
โดยตรงทางเน็ตเวิร์ค นอกนันก็ ้ ไม่ได้ ใช้ อะไรเพิ่มเติม
 AppleTalk : โปรโตคอลนี ้ถูกออกแบบโดย Apple เพื่อประหยัดค่าใช้ จ่ายใน
การเชื่อมต่อทำให้ เครื่ องแม็คอินทอชแชร์ ไฟล์กนั ได้ และทำให้ Windows
2000 สามารถแชร์ ไฟล์และเครื่ องพิมพ์กบั เครื่ องแม็คอินทอชผ่านทาง
AppleTalk นี ้ได้ เช่นกัน
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 69
กลไกการโปรเซสแบบกระจาย
กลไกการโปรเซสแบบกระจาย
 กลไกที่สนับสนุนการโปรเซสแบบกระจายบน Windows 2000 มีดงั นี ้คือ
 NetBIOS ใน Windows 2000 ทำให้ แอปพลิเคชันสามารถติดต่อสื่อสารข้ าม
เน็ตเวิร์คโดยใช้ NetBEUI, NWLink และ TCP/IP
 Named pipes เป็ นกลไกแบบ connection-oriented message แต่เดิมถูก
พัฒนาเป็ นอินเทอร์ เฟซระดับสูงของ NetBIOS เพื่อเชื่อมต่อข้ ามเน็ตเวิร์ค โปร
เซสสามารถใช้ named pipes ในการติดต่อกับโปรเซสอื่นบนเครื่ องเดียวกัน
 Mailslots เป็ นกลไกแบบ connectionless messaging ใช้ ในการส่งผ่าน
แอปพลิเคชัน เช่น การค้ นหาคอมโพเนนต์บนเน็ตเวิร์ค นอกจากนี ้ยังใช้ กบั
Windows 2000 Computer Browser อีกด้ วย
 Winsock เป็ น Windows 2000 socket API เป็ นอินเทอร์ เฟซแบบ session-
layer ที่คอมแพติเบิลกับ UNIX socket
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 70
กลไกการโปรเซสแบบกระจาย
กลไกการโปรเซสแบบกระจาย
 RPC (Remote Procedure Protocol) เป็ นกลไกแบบไคลเอ็นต์เซิร์ฟเวอร์ ที่
ทำให้ แอปพลิเคชันจากเครื่ องหนึง่ เรี ยกโปรซีเดอร์ ไปอีกเครื่ องหนึง่ ได้ ไคลเอ็นต์
จะเรี ยกโปรซีเดอร์ ของตนเอง (รูทีนย่อย) ที่แพ็กอาร์ กิวเมนต์ลงในแมสเสจแล้ ว
ส่งข้ ามเน็ตเวิร์คไปยังโปรเซสที่กำหนด เมื่อถึงฝั่ งเซิร์ฟเวอร์ จะขยายแพ็กออก
เรี ยกโปรซีเดอร์ แล้ วแพ็กผลลัพธ์ลงในแมสเสจแล้ วส่งกลับไปฝั่ งไคลเอ็นต์ เมื่อ
ไคลเอ็นต์ได้ รับแมสเสจแล้ วจะขยายแพ็กผลลัพธ์ RPC ออก แล้ วส่งผลลัพธ์นนั ้
ไปให้ ผ้ เู รี ยก แพ็กของอาร์ กิวเมนต์นี ้บางครัง้ เรี ยกว่า marshalling
 MIDL (Microsoft Interface Definition Language) เป็ นภาษาที่ออกแบบโดย
ไมโครซอฟต์เพื่ออธิบายชื่อของรี โมทโปรซีเดอร์ , อาร์ กิวเมนต์ และผลลัพธ์ คอม
ไพเลอร์ ของภาษานี ้จะสร้ างไฟล์ ที่เป็ นเฮดเดอร์ ที่แจ้ งรายละเอียดสำหรับรี โมท
โปรซีเดอร์

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 71
กลไกการโปรเซสแบบกระจาย
กลไกการโปรเซสแบบกระจาย
 COM เป็ นกลไกสำหรับการติดต่อสื่อสารภายในโปรเซสที่พฒ ั นาสำหรับ
Windows ออปเจ็กต์ COM จะมีการกำหนดอินเทอร์ เฟซเพื่อจัดการกับข้ อมูล
ในออปเจ็กต์ Windows 2000 มีสว่ นขยายที่เรี ยกว่า DCOM ที่นำมาใช้ บน
เน็ตเวิร์คกับกลไก RPC เป็ นวิธีการพัฒนาแอปพลิเคชันแบบกระจายRPC

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 72
โดเมน
โดเมน
 ในหลักการของโดเมน (Domain) แต่ก่อนโดเมนเหล่านี ้ไม่มีความสัมพันธ์
ระหว่าง DNS (Domain Name System) ที่แทนชื่อโฮสต์อินเทอร์ เน็ตกับ IP
Address
 ปั จจุบน
ั มีความสัมพันธ์กนั มากขึ ้น ในโดเมนของ Windows 2000 ประกอบ
ด้ วยเซิร์ฟเวอร์ และเวิร์คสเตชันที่แชร์ ทงรี
ั ้ ซอร์ ส
 ปั จจุบนั Windows 2000 ใช้ โปรโตคอล Kerberos สำหรับ trust และ
authennication
 แต่เดิม Windows NT ใช้ หลักการการควบคุมโดเมนหลักและสำรอง

 ปั จจุบน ั ทุกเซิร์ฟเวอร์ ในโดเมนเป็ นตัวควบคุมโดเมนได้ นอกจากนี ้แต่เดิม


ต้ องเซ็ตอัพ trust ระหว่างโดเมนในลักษณะทางเดียว
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 73
โดเมน
โดเมน
 ใน Windows 2000 ใช้ ลกั ษณะลำดับชันโดยอิ้ งกับ DNS และยอมให้ สง่
ผ่าน trust ขึ ้น-ลงตามลำดับชันได้้
 วิธีนี ้ทำให้ ลดจำนวน trust ที่ต้องการสำหรับ n โดเมน จาก n*(n-1) เป็ น 0

เวิร์คสเตชันในโดเมนกำหนด trust ให้ กบั การควบคุมโดเมนเพื่อให้ ข้อมูลที่


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

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 74
Name
NameSolution
Solutionในเน็
ในเน็ตตเวิเวิรร์ค์คTCP/IP
TCP/IP
 เน็ตเวิร์ค IP คำว่า Name Solution หมายถึงขันตอนการแปลงชื
้ ่อ
คอมพิวเตอร์ ไปเป็ น IP address
 เช่ น เปลี่ยนจาก www.asiaaccess.net.th ไปเป็ น 203.145.0.1

 ใน Windows 2000 มีหลายวิธีในการใช้ Name Solution รวมทัง้


 Windows Internet Name Services (WINS)
 Broadcast Name Solution, Domain Name System (DNS)
 host file
 LMHOSTS file
 แต่ละวิธีใช้ ระบบปฏิบตั ิการได้ หลากหลาย ในที่นี ้เราจะกล่าวเฉพาะ WINS
เท่านัน้
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 75
Name
NameSolution
Solutionในเน็
ในเน็ตตเวิเวิรร์ค์คTCP/IP
TCP/IP
 ในระบบ WINS จะต้ องใช้ เซิร์ฟเวอร์ ตงแต่ ั ้ 2 เซิร์ฟเวอร์ ขึ ้นไปที่ดแู ลฐาน
ข้ อมูลแบบไดนามิกของการเปลี่ยนชื่อเป็ น IP address
 เนื่องจากมีการใช้ เซิร์ฟเวอร์ ตงั ้ 2 เซิร์ฟเวอร์ ขึ ้นไป ทำให้ WINS สามารถ

แก้ ไขการล่มของระบบได้
 Name Solution สามารถกระจายไปยังเครื่ องหลาย ๆ เครื่ องได้

 ใน WINS ใช้ Dynamic Host-Configuration Protocol (DHCP) ที่อป ั เดท


แอ็ดเดรสอัตโนมัติในฐานข้ อมูล WINS
 เริ่ มต้ นที่ไคลเอ็นต์ DHCP เริ่ มทำงาน มันจะแผ่แมสเสจ discover ออกไป

แต่ละเซิร์ฟเวอร์ DHCP ที่ได้ รับแมสเสจจะตอบออกไปด้ วยแมสเสจ offer ที่


ประกอบด้ วย IP address และข้ อมูลคอนฟิ กเุ รชัน ไปยังไคลเอ็นต์
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 76
Name
NameSolution
Solutionในเน็
ในเน็ตตเวิเวิรร์ค์คTCP/IP
TCP/IP
 หลังจากนันไคลเอ็
้ นต์จะเลือกคอนฟิ กเุ รชันมา 1 แบบ แล้ วส่งแมสเสจ
request ไปยังเซิร์ฟเวอร์ DHCP ที่เลือกไว้
 หลังจากนันเซิ ้ ร์ฟเวอร์ DHCP จะตอบไปด้ วย IP address และข้ อมูลกุเร
ชันที่ให้ ไปแล้ วกับการจองแอ็ดเดรสนัน้
 การจองทำให้ ไคลเอ็นต์ได้ สท ิ ธิในการใช้ แอ็ดเดรสนันในช่
้ วงเวลาที่กำหนด
 เมื่อเวลาการจองหมดไปครึ่ งหนึง ่ ไคลเอ็นต์พยายามที่จะต่อเวลาสำหรับ
แอ็ดเดรสนัน้ แต่ถ้าไม่มีการต่อเวลาแอ็ดเดรสนัน้ ไคลเอ็นต์จะต้ องได้ จอง
แอ็ดเดรสใหม่

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 77
การจั
การจัดดการแคช
การแคช
 Windows 2000 มี cache manager ดูแลแคชเพื่อให้ มีประสิทธิภาพสูงขึ ้น
โดยใช้ หลักการเหมือน ๆ กับระบบปฏิบตั ิการ
 งานของ cache manager คือการเก็บรักษากลุม ่ ของระบบไฟล์ที่ใช้ งาน
ล่าสุดในหน่วยความจำเพื่อลดเวลาการแอ็กเซสสิง่ ที่เหมือนกัน
 ใน Windows 2000 มีเพียงแคชแบบรวมการเพียงแคชเดียวที่ ทำงานได้ กบ ั
ทุกระบบไฟล์ไม่วา่ จะเป็ น NTFS, FAT-16, FAT-32
 เป้าหมายหลักการออกแบบแคชแบบรวมการสำหรับระบบไฟล์ที่หลาก

หลาย
 cache manager จะว่าอยูใ่ นตำแหน่งที่ไม่ธรรมดา มันไม่ได้ เป็ นส่วนหนึง

ของระบบไฟล์
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 78
การจั
การจัดดการแคช
การแคช
 แคชใน Windows 2000 จัดในรูปแบบบล็อกเสมือน (virtual block) ไม่ใช่
บล็อกทางกายภาพ
 รู ปแบบแคชเดิมนันจะเก็
้ บรักษาบล็อกในรูปแบบแอ็ดเดรส 2 ส่วน (พาร์ ติ
ชัน, บล็อก)
 โดยที่ตวั เลขแรกจะแสดงดีไวซ์และพาร์ ติชนั
 ส่วนตัวเลขที่สองแทนหมายเลขบล็อกภายในพาร์ ติชนั นัน้
 การทำงานของcache manager คือ เมื่อไฟล์ถกู อ้ างอิง cache manager
จะแมพไฟล์ไว้ ที่พื ้นที่ขนาด 256 กิโลไบต์บนแอ็ดเดรสเสมือนของ kernel
 ถ้ าไฟล์นนขนาดใหญ่
ั้ กว่า 256 กิโลไบต์จะแมพเพียงบางส่วนของไฟล์นนั ้

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 79
การจั
การจัดดการแคช
การแคช
 cache manager สามารถใช้ ได้ นนจะพิ ั้ จารณาในขณะที่บตู เครื่ องและขึ ้น
อยูก่ บั ขนาดหน่วยความจำที่มีอยู่
 แต่ถ้า cache manager ใช้ เนื ้อที่แอ็ดเดรสเสมือนจนหมด 256 กิโลไบต์ มัน

จะไม่แมพไฟล์เก่าก่อนที่จะแมพไฟล์ใหม่
 ในขณะที่ไฟล์ถก ู แมพไปนัน้ cache manager จะทำตามคำร้ องขอโดยการ
ก็อปปี จ้ ากเนื ้อที่แอ็ดเดรสเสมือนของ kernel ไปยังบัฟเฟอร์ ของผู้ใช้
 ถ้ าบล็อกข้ อมูลที่ก็อปปี ไ้ ปนันไม่
้ ใช่หน่วยความจำทางกายภาพ จะเกิด
page fault ซึง่ ทำให้ memory manager จะจัดการไปตามปกติ
 ส่วน cache manager ไม่ต้องกลัวว่าบล็อกข้ อมูลจะอยูใ่ นแคชหรื อไม่ การ

ก็อปปี ก้ ็จะยังคงดำเนินต่อไป
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 80
การจัดการของ Cache Manager กับฮาร์ ดแวร์

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 81
การจั
การจัดดการแคช
การแคช
 ในกรณีของระบบไฟล์ NTFS บนดิสก์แบบ SCSI และระบบไฟล์ FAT-32
บนดิสก์แบบ IDE เมื่อโปรเซสอ่านไฟล์ คำร้ องขอจะส่งตรงไปยัง cache
manager ถ้ าบล็อกข้ อมูลที่ต้องการมีอยูใ่ นแคช มันจะทำการก็อปปี ไ้ ปยัง
ผู้ใช้ ทนั ที
 แต่ถ้าไม่มี cache manager จะเกิด page fault เมื่อพยายามก็อปปี ้ เมื่อมี

การแก้ ไข page fault แล้ วบล็อกของข้ อมูลจะถูกก็อปปี ไ้ ปยังโปรเซสที่เรี ยก


 ผลการออกแบบนี ้ cache manager จะไม่ทราบจำนวนเพจที่แมพลง

หน่วยความจำทางกายภาพ หรื อแม้ แต่ขนาดของแคช


 มีเพียง memory manager เท่านันที้ ่ทราบ

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 82
การจั
การจัดดการแคช
การแคช
 คุณสมบัติอีกประการหนึง่ ของ cache manager คือการรักษาระหว่างไฟล์
ที่แมพกับหน่วยความจำและไฟล์ที่เปิ ดสำหรับการอ่านหรื อเขียน
 ในสภาวะที่โปรเซสหนึง ่ เปิ ดไฟล์หนึง่ ขึ ้นมาเพื่ออ่านและเขียน และโปรเซสที่
สองแมพไฟล์นนไปยั ั ้ งแอ็ดเดรสหนึง่ จะมีอะไรเกิดขึ ้นถ้ าโปรเซสที่สองเขียน
ลงไฟล์นนโดยตรงในทั
ั้ นที
 หลังจากนันโปรเซสแรกอ่
้ านบล็อกข้ อมูลที่เพิ่งจะเปลี่ยนแปลงนัน้ แล้ วมัน
จะได้ รับข้ อมูลเก่าหรื อไม่ คำตอบคือไม่ เพราะทังสองกรณี้ (เปิ ดไฟล์และ
แมพไฟล์) cache manager จะแมพเนื ้อที่แอ็ดเดรสเสมือนขนาด 256 กิโล
ไบต์ลงไฟล์

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 83
การจั
การจัดดการแคช
การแคช
 ในกรณีของการแมพไฟล์ ทัง้ cache manager และโปรเซสของผู้ใช้ จะแชร์
หน่วยความจำเพจนัน้
 เมื่อมีการอ่านไฟล์ cache manager เพียงแค่ก็อปปี เ้ พจนันจากหน่
้ วย
ความจำไปยังบัฟเฟอร์ ของผู้ใช้ เท่านัน้
 ทำให้ ได้ รับข้ อมูลที่เป็ นสภาวะปั จจุบน
ั เนื่องจาก cache manager ใช้
ข้ อมูลเพจเดียวกับโปรเซสที่แมพไฟล์นนั่ เอง

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 84
การรั
การรักกษาความปลอดภั
ษาความปลอดภัยย
 Windows 2000 ได้ รับขันการรั
้ กษาความปลอดภัยของระบบระดับ C2
จากกระทรวงกลาโหมสหรัฐฯ
 Windows 2000 มีการรักษาความปลอดภัยในระดับที่ระบบปฏิบต ั ิการพึง
มีอยูแ่ ล้ ว นอกจากการใช้ ชื่อล็อกอินและรหัสผ่านสำหรับการเข้ าสูร่ ะบบซึง่
เป็ นสิง่ พื ้นฐาน
 ใน Windows 2000 ผู้ใช้ ทก ุ คนจะถูกกำหนดด้ วย SID (Security ID) ซึง่
SID เป็ นเลขฐานสองที่มีสองส่วนคือ ส่วนหัวสัน้ ๆ แล้ วตามด้ วยตัวเลขสุม่
หลายตัว แต่ละ SID

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 85
การรั
การรักกษาความปลอดภั
ษาความปลอดภัยย
 เมื่อผู้ใช้ เริ่ มต้ นโปรเซส ทังโปรเซสและ
้ thread จะรันภายใต้ SID ของผู้ใช้
นัน้ ระบบรักษาความปลอดภัยส่วนมากถูกออกแบบเพื่อให้ มนั่ ใจว่าแต่ละ
ออปเจ็กต์จะถูกแอ็กเซสโดย thread ได้ เฉพาะ SID ที่อนุญาตเท่านัน้
 แต่ละโปรเซสจะมี access token ที่กำหนด SID และคุณสมบัติอื่น เช่น

เฮดเดอร์ , เวลาหมดอายุ, กลุม่ , SID ของผู้ใช้ , SID ของกลุม่ , ข้ อจำกัดต่าง



 ที่สำคัญก็คือเป็ นการบอกว่าใครเป็ นเจ้ าของโปรเซส เมื่อผู้ใช้ ลอ็ กเข้ ามาใน
ระบบจะมีการกำหนด access token เริ่มต้ นให้ กบั โปรเซส
 โดยที่ access token ของโปรเซสจะเริ่ มนำไปใช้ กบ ั ทุก ๆ thread

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 86
การรั
การรักกษาความปลอดภั
ษาความปลอดภัยย
 thread สามารถรับ access token ที่แตกต่างในระหว่างที่เอ็กซิคิวต์ได้ ใน
กรณีที่ access token ของ thread ทับซ้ อนกับ access token ของโปรเซส
 thread ของไคลเอ็นต์สามารถส่งผ่าน access token ไปยัง thread ของ

เซิร์ฟเวอร์ ได้ เพื่อยินยอมให้ เซิร์ฟเวอร์ แอ็กเซสไฟล์ที่มีการป้องกันและ


ออปเจ็กต์อื่นของไคลเอ็นต์ กลไกนี ้เรี ยกว่า “impersonation”
 ทุกออปเจ็กต์จะมี security descriptor ที่สม ั พันธ์กบั ตัวมันเองที่บอกว่าใคร
สามารถทำปฏิบตั ิการใดได้
 security descriptor ประกอบด้ วยเฮดเดอร์ ที่ตามด้ วย DACL

(Discretionary Access Control List) พร้ อมด้ วย ACE (Access Control


Elements) หนึง่ หรื อมากกว่าได้
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 87
การรั
การรักกษาความปลอดภั
ษาความปลอดภัยย
 โดยมีสว่ นประกอบหลัก 2 ส่วนคือ
 การยอมรับ (Allow)
 การปฏิเสธ (Deny)
 การยอมรับจะเป็ นการกำหนด SID และบิตแมพที่กำหนดว่าสามารถ
ปฏิบตั ิโปรเซสใดตาม SIDบนออปเจ็กต์นนได้
ั้
 การปฏิเสธทำงานตรงข้ าม (คือไม่สามารถปฏิบต ั ิได้ ) เช่น กำหนดให้ แดง
แอ็กเซสไฟล์ไม่ได้ , ดำสามารถอ่าน/เขียนได้
 กลไกในการควบคุมการแอ็กเซสใน Windows 2000 ขึ ้นอยูก ่ บั security
descriptor

ระบบปฏิบต
ั ก
ิ าร (Operating Systems) 88

You might also like