Operating System 2

Download Report

Transcript Operating System 2

Operating System 2
By Juthawut Chantharamalee
Suan Dusit Rajabhat University (Computer Science)
1
บทที่ 8 กรณีศึกษา (Case Study):
ระบบปฏิ บัติการยูนิกซ์
(UNIX Operating System)
บทที่ 2
Suan Dusit Rajabhat University (Computer Science)
2
8.1 ประวัติความเป็ นมา (History)
 ระบบปฏิบตั กิ ารยูนกิ ซ์ (UNIX Operating System) มีต้นกาเนิดจาก
ห้องปฏิบตั กิ ารวิจยั Bell ประเทศสหรัฐอเมริกา โดย Ken Thompson และ
Dennis Ritchie ปี พ.ศ. 2512 โดย สถาบัน MIT
(Massascusetts Institute of Technology) ณ ห้องปฏิบตั กิ ารวิจยั
AT&T Bell Labs และบริษทั GE (General Electric) ร่วมกัน
พัฒนาโครงการ Multics ในปี 1960 เพือ่ พฒั นาระบบปฏิบตั กิ ารสาหรับใช้งาน
ร่วมกับ Mainframe Computer รุ่น GE 635 ได้พฒั นาให้
ระบบปฏิบตั กิ ารมีความสามารถทางานในลักษณะแบบโต้ตอบ (Interactive) และมี
ระบบทีช่ ่วยอานวยความสะดวกต่อการใช้แฟ้ม (File) และข้อมูล (Data) ร่วมกันได้
แต่เกิดปัญหาหลายประการ จนกระทัง่ Bell Labs ได้ถอนตัวออกจากโครงการ
Suan Dusit Rajabhat University (Computer Science)
3
8.1 ประวัติความเป็ นมา (History)
 แต่โครงการก็ยงั ดาเนินการต่อโดย Ken Thompson และ Dennis
Ritchie ได้ร่วมกันพัฒนาระบบปฏิบตั กิ ารใหม่ขน้ ึ มาเพือ่ ให้สามารถทางานบนเครือ่ ง
คอมพิวเตอร์รุ่น PDP-7 และใช้ชอื่ ว่าระบบปฏิบตั กิ ารทีร่ ่วมกันพัฒนาขึน้ มานีว้ ่า
ระบบปฏิบตั กิ ารยูนกิ ซ์ (UNIX Operating System) เพือ่ ให้ออกเสียง
ใกล้เคียงกับระบบ Multics ดังนัน้ ต้นกาหนดของระบบปฏิบตั กิ ารยูนกิ ซ์กค็ อื
Multics นัน่ เอง ไม่ว่าจะเป็ นชือ่ ระบบแฟ้มข้อมูล (File Name) ทีใ่ ช้ แนวคิดของ
ตัวแปรคาสัง่ (Shell) ระบบปฏิบตั กิ ารยูนกิ ซ์ได้มกี ารพัฒนาอย่างต่อเนือ่ งมาเป็ น
Version 2 เพือ่ ทางานบนเครือ่ งคอมพิวเตอร์รุ่น PDP-11/20 โดยใช้ภาษา
Assembly และได้พฒั นาปรับปรุงด้วยภาษาซี (C Language) และเผยแพร่
ไปสู่มหาวิทยาลัยต่างๆ ด้วย Version 6 ในปี ค.ศ. 1976
Suan Dusit Rajabhat University (Computer Science)
4
8.1 ประวัติความเป็ นมา (History)
 ในปี ค.ศ. 1978 Version 7 ก็ถูกพัฒนาออกมา ซึง่ เป็ นต้นแบบของ
ระบบปฏิบตั กิ ารยูนกิ ซ์ (UNIX Operating System) รุ่นใหม่ๆ ออกมา
ภายใต้ความรับผิดชอบของสถาบัน AT&T ซึง่ เป็ นองค์กรแม่ของ Bell Labs
ตลอดจนควบคุมการออกตัวระบบปฏิบตั กิ ารยูนกิ ซ์รุ่นใหม่ๆ ออกมาทาให้
ระบบปฏิบตั กิ ารยูนกิ ซ์กลายเป็ นผลิตภัณฑ์ทมี่ ใี ช้งานกันอย่างแพร่หลาบแทนทีจ่ ะเป็ น
เครือ่ งมือวิจยั ภายในสถาบัน ซึง่ ทางสถาบัน AT&T ก็ได้พฒั นาระบบปฏิบตั กิ าร
ยูนกิ ซ์ออกมาใช้งานภายนอก ภายใต้ชอื่ รุ่น System III ในปี 1982 และปี
1983 ก็ออกรุ่น System V และพัฒนาต่อมาเรือ่ ยๆ จนได้เป็ นระบบปฏิบตั ทิ ไี่ ด้รบั
ความนิยมในปัจจุบนั
Suan Dusit Rajabhat University (Computer Science)
5
8.1 ประวัติความเป็ นมา (History)
 หลังจากนัน้ ก็มผี ู ส้ นใจพัฒนาระบบปฏิบตั กิ ารยูนกิ ซ์ เพิม่ ขึน้ มาหลายแห่ง เช่น
University of California at Berkley ได้พฒั นา BSD UNIX
(Berkley Software Distribution) ต่อมาหน่วยงานกระทรวงกลาโหม
ของสหรัฐฯ (Defense Advanced Research Projects Agency
- DARPA) ได้ให้ทุนกับ Berkley ในการพัฒนาระบบปฏิบตั กิ ารยูนกิ ซ์และเกิด
Version 4BSD เพือ่ สนับสนุนการทางานในระบบเครือข่ายของ DARPA ซึง่ มี
โปรโตคอลทีใ่ ช้ในการติดต่อสือ่ สาร คือ TCP/IP และในปี ค.ศ. 1993 ได้พฒั นา
รุ่นต่อมาคือ Version 4.4 BSD ได้พฒั นาระบบปฏิบตั กิ ารยูนกิ ซ์ให้สามารถ
สนับสนุนการทางานของโปรโตคอล X.25 ด้วย ซึง่ ในเวลาต่อมา Berkley ก็
หยุดการพัฒนาระบบปฏิบตั กิ ารยูนกิ ซ์ลง
Suan Dusit Rajabhat University (Computer Science)
6
8.1 ประวัติความเป็ นมา (History)
 นอกจาก Berkley ทีเ่ ป็ นผู พ
้ ฒั นาระบบปฏิบตั กิ ารยูนกิ ซ์หลักแล้วยังมีผูพ้ ฒั นา
ระบบปฏิบตั กิ ารยูนกิ ซ์รายอืน่ ๆ อีกหลายรายด้วยกัน เช่น บริษทั ซันไมโครซิสเต็ม
(Sun Microsystem Co.,Ltd) ได้พฒั นาระบบปฏิบตั กิ ารยูนกิ ซ์โดยใช้ชอื่
ว่า SunOS และ Solaris บริษทั DEC ได้พฒั นาระบบปฏิบตั กิ ารยูนกิ ซ์แต่ใช้
ชือ่ ว่า Ultrix และเปลีย่ นชือ่ เป็ น OSF/1 บริษทั ไมโครซอฟต์พฒั นา
ระบบปฏิบตั กิ ารยูนกิ ซ์โดยใช้ชอื่ ว่า XENIX บริษทั ไอบีเอ็มพัฒนาระบบปฏิบตั กิ าร
ยูนกิ ซ์โดยใช้ชอื่ ว่า AIX เป็ นต้น แต่ไม่ว่าจะเป็ นค่ายใดก็ตาม ต่างก็ยดึ แนวทางของ
BSD UNIX (Berkley Software Distribution) หรือไม่กใ็ ช้
ระบบปฏิบตั กิ ารยูนกิ ซ์รุ่น System V มาพัฒนาต่อยอดด้วยกันทัง้ นัน้
Suan Dusit Rajabhat University (Computer Science)
7
8.1 ประวัติความเป็ นมา (History)
 ปัจจุบนั UNIX เป็ นเครือ่ งหมายการค้าทีจ่ ดทะเบียน (Registered
Trademark) ของหน่วยงานทีช่ อื่ The Open Group ซึง่ จะทาการ
กาหนด และรับรองมาตรฐานของระบบปฏิบตั กิ าร UNIX มี 2 ลักษณะ คือ
1.ระบบปฏิบตั กิ ารทีไ่ ด้มาตรฐาน UNIX เป็ นระบบปฏิบตั กิ ารทีใ่ ช้มาตรฐานของ The
Open Group ในการพัฒนาขึน้ มา เช่น Digital UNIX, SCO UNIX,
IBM's OpenEdition MVS
2.ระบบปฏิบตั กิ ารคล้าย UNIX (UNIX Compatible) เป็ นระบบปฏิบตั กิ าร
ทีม่ ลี กั ษณะคล้ายระบบ UNIX แต่ยงั ไม่ได้จดทะเบียนรับรองเป็ นทางการ เช่น Sun
Solaris, IBM AIX, Linux เป็ นต้น
Suan Dusit Rajabhat University (Computer Science)
8
8.2 เป้าหมายของการออกแบบ (The Gold of Design)
 ยูนกิ ซ์ (UNIX) เป็ นระบบปฏิบตั กิ ารขนาดใหญ่ ดังนัน้ เป้ าหมายหลักของการ
ออกแบบระบบปฏิบตั กิ ารนีข้ น้ ึ มาเพือ่ ให้สามารถใช้งานในลักษณะการทางาน
Multitasking และเป็ นแบบ Multi-User คือ มีผูใ้ ช้หลาย ๆ คนพร้อมกัน
เป็ นระบบทีพ่ ฒั นามาใช้กบั เครือ่ งคอมพิวเตอร์ขนาดใหญ่ เช่น เครือ่ งเมนเฟรม
Workstation เครือ่ งไมโครคอมพิวเตอร์ธรรมดา ๆ ทีต่ ดิ ตัง้ UNIX
สามารถทางานรองรับเครือ่ งคอมพิวเตอร์ทมี่ ี User ต่อเชือ่ มเข้ามาได้มากถึง 120
ตัว ไปพร้อม ๆ กันและเหมาะสมสาหรับ Network นอกจากนัน้ ยังสามารถ
เคลือ่ นย้ายงานและแอพพลิเคชัน่ ไปมาระหว่าง Platform ได้ อีกทัง้ ยังสามารถย้าย
งานทีป่ ระมวลผลอยู่บน DOS หรือ windows มาใช้ประมวลผลบน UNIX
และยังมีUtility ทีช่ ่วยเพิม่ ประสิทธิภาพให้กบั UNIX อีกด้วย
Suan Dusit Rajabhat University (Computer Science)
9
8.3 การจัดการหน่วยความจา (Memory Management)
 เป็ นระบบปฏิบตั กิ ารยูนกิ ซ์ (UNIX) จะใช้วธิ กี ารจัดการหน่วยความจาโดยใช้เทคนิค
วิธกี ารสลับเข้า/ออก (Swapping) หรือเทคนิควิธจี ดั การเพจตามความต้องการ
(Demand Paging) โดยพิจารณาจากงาน (Task) หรือกระบวนการ
(Process) ทีเ่ ข้ามาใช้งานในระบบ ดังนี้
เทคนิควิธกี ารสลับเข้า/ออก (Swapping) จะเหมาะกับงานหรือกระบวนการ
ทีม่ ขี นาดเล็กโดยจะเก็บงานหรือกระบวนการทีต่ ้องการประมวลผล (Execute) ลงใน
หน่วยความจาหลัก (Main Memory) แต่วธิ กี ม็ ขี อ้ จากัดเกิดขึน้ ตรงทีว่ ่าการ
กาหนดขนาดของงานหรือกระบวนการทีเ่ ข้ามาประมวลผล
Suan Dusit Rajabhat University (Computer Science)
10
8.3 การจัดการหน่วยความจา (Memory Management)
 เช่น ถ้าระบบมีขนาดหน่วยความจา 256 MB ต้องใช้พน้ ื ทีส่ าหรับจัดเก็บ
ระบบปฏิบตั กิ ารขนาด 128 MB เหลือพืน้ ทีส่ าหรับกระบวนการอยู่ 128 MB ซึง่
ณ เวลาหนึง่ ถ้ามีงานหรือกระบวนการขนาดเท่ากับหน่วยความจาทีเ่ หลือแสดงว่าจะมี
เพียงกระบวนการเดียวเท่านัน้ ทีป่ ระมวลผลอยู่ หากกระบวนการอืน่ ทีม่ ขี นาดเล็กหรือไกล้
เคียงกับกระบวนการแรกต่อหยุดรอ (Wait) ให้กระบวนการแรกทางานเสร็จก่อนจึง
จะสลับเอากระบวนการอืน่ เข้ามาประมวลผลแทนกระบวนการเดิมทาให้ต้องเสียเวลาและใช้
ประสิทธิภาพของระบบไม่ดเี ท่าทีค่ วร
Suan Dusit Rajabhat University (Computer Science)
11
8.3 การจัดการหน่วยความจา (Memory Management)
 เทคนิควิธจี ดั การเพจตามความต้องการ (Demand Paging) เป็ นวิธกี าร
ทางานควบคู่กบั เทคนิคการจัดการหน่วยความจาเสมือน (Virtual Memory)
ทาให้งานหรือกระบวนการทีม่ ขี นาดใหญ่สามารถเข้ามาประมวลผลในหน่วยความจาทีเ่ ล็ก
กว่าได้ โดยนางานหรือกระบวนการทีต่ ้องการประมวลผลไว้ในหน่วยความจาหลักส่วน
งานหรือกระบวนการทีร่ อการประมวลผลถูกโหลดเข้าไปเก็บไว้ในหน่วยความจาสารอง
แสดงได้ดงั รูปที่ 8.1
Suan Dusit Rajabhat University (Computer Science)
12
รูปที่ 8.1 แสดงส่วนประกอบต่างๆ ของหน่วยความจาในระบบปฏิบตั กิ ารยูนกิ ซ์
Suan Dusit Rajabhat University (Computer Science)
13
8.3 การจัดการหน่วยความจา (Memory Management)
 จากรูปที่ 8.1 แสดงส่วนประกอบต่างๆ ของหน่วยความจาในระบบปฏิบตั กิ ารยูนกิ ซ์
โดยกาหนดส่วนสแต็ก (Stack) และส่วนข้อมูล (Data) เป็ นส่วนเฉพาะทีง่ านและ
กระบวนการนัน้ ๆ ทางานเท่านัน้ เมือ่ ทางานเสร็จก็จะคืนพืน้ ทีห่ น่วยความจาทีใ่ ช้แล้วคืน
ระบบ ไล่ขน้ ึ ไปจนถึงส่วนบนสุดของหน่วนความจาจะเป็ นสแต็ก (Stack) ซึง่ ใช้เก็บ
ข้อมูลคาสัง่ ในการเรียก (Call) หรือคาสัง่ ในการขัดจังหวะ (Interrupt) ส่วน
การทางานของโค้ดโปรแกรม (Program Code) จะถูกแบ่งปัน (Share)
เพือ่ ให้ทุกกระบวนการ (Process) สามารถทีจ่ ะเรียกใช้งานได้แต่จะกาหนดสิทธิเฉพาะ
อ่านอย่างเดียว (Read) โดยโค้ดโปรแกรมจะถูกกันไว้ให้แต่ละกระบวนการทางานจน
เสร็จสิน้ โดยระบบปฏิบตั กิ ารยูนกิ ซ์จะใช้ตารางตัวอักษร (Text Table) สาหรับเก็บ
รอบ (Track) ของกระบวนการทีใ่ ช้งานโค้ดโปรแกรม
Suan Dusit Rajabhat University (Computer Science)
14
8.3 การจัดการหน่วยความจา (Memory Management)
 ขณะทีร่ ะบบปฏิบตั กิ ารยูนกิ ซ์ทางาน หน่วยความจาจะเก็บส่วนทีเ่ ป็ นคอร์เนล
(Kernel) ไว้ตลอดเวลา เพราะคอร์เนล (Kernel) เป็ นกลุม่ ของโปรแกรมที่
ทางานพืน้ ฐานและเก็บเฉพาะเพจ (Page) ทีจ่ าเป็ นต้องใช้ไว้หน่วยความจาเท่านัน้ โดย
คอร์เนล (Kernel) จะมีคาสัง่ เรียก (System Call) เพือ่ ค่อยให้บริการ
กระบวนการ (Process) ทีร่ ้องขอการทางานบางอย่าง เช่น การรับส่งข้อมูลระหว่าง
เครือข่าย การเรียกใช้อุปกรณ์ในการรับและแสดงผล (I/O Device) ข้อมูล
เป็ นต้น
Suan Dusit Rajabhat University (Computer Science)
15
8.4 การจัดการกระบวนการ (Process Management)
 ระบบปฏิบตั กิ ารยูนกิ ซ์ (UNIX Operating System) ภายในคอร์เนล
(Kernel) จะมีฟังก์ชนั (Function) ในการจัดการกระบวนการ (Process
Management) ทีเ่ กีย่ วข้องกับการจัดสรรเวลาในการใช้งานหน่วยประมวลผล
กลาง (Central Processing Unit: CPU) การจัดตารางการทางาน
(Process scheduling) ซึง่ จะเกีย่ วข้องกับการคัดเลือกกระบวนการ
(Process) ทีเ่ ปลีย่ นสถานะจาก สถานะพร้อม (Ready) เข้ามาประมวลผล
(Execute) ตามรูปแบบของอัลกอริทมึ และเวลาทีจ่ ดั สรรไว้ ซึง่ ส่วนใหญ่จะใช้
อัลกอริทมึ แบบแถวลาดับตามความสาคัญ (Priority Queue) ในการเลือก
กระบวนการ (Process) เข้ามาประมวลผล (Execute)
Suan Dusit Rajabhat University (Computer Science)
16
8.4 การจัดการกระบวนการ (Process Management)
 ส่วนกระบวนการ (Process) ทีใ่ ช้เวลาของ CPU มากจะถูกโหลดเข้าไปเก็บไว้ใน
หน่วยความจาสารองแทน เช่น ฮาร์ดดิสก์ (Hard disk) เป็ นต้น ระบบปฏิบตั กิ าร
ยูนกิ ซ์จะมีคาสัง่ สาหรับจัดการกระบวนการ ดังนี้
คาสั่ง Fork เป็ นคาสัง่ ทีย่ อมให้โปรแกรม a สามารถดาเนินการต่างกับโปรแกรม b
ได้ เช่น เปิ ดไฟล์ บันทึกข้อมูลของโปรแกรม b โดยแบ่งสาเนา (Copy) ออกเป็ น 2
ชุด เมือ่ มีการประมวลผล (Execute) จะสร้าง Process ID (PID) ขึน้ มา
ใหม่และจะมี PID ทีไ่ ม่ซ้ากัน
คาสั่ง Wait เป็ นคาสัง่ ทีบ่ อกให้กระบวนการ (Process) หยุดรอ
คาสั่ง Exec ใช้สาหรับสัง่ ให้โปรแกรมเริม่ ทาการประมวลผลใหม่
Suan Dusit Rajabhat University (Computer Science)
17
8.5 การจัดการอุปกรณ์ในการรับและแสดงผล
(I/O Device Management)
 ระบบปฏิบตั กิ ารยูนกิ ซ์ (UNIX Operating System) สามารถควบคุมการ
ทางานของอุ ปกรณ์ในการรับและแสดงผล (I/O Device Management)
ทีต่ ่างชนิดกันได้โดยใช้ไฟล์ชนิดพิเศษทีช่ อื่ ว่า “i-node” ทีอ่ ยู่ภายในไดเร็กทอรีซงึ่ เก็บ
ข้อมูลและรายละเอียดของอุ ปกรณ์ (Device Directory) ในขณะทีม่ กี ารรับส่ง
ข้อมูลระหว่างหน่วยความจาหลัก (Main Memory) กับอุ ปกรณ์ต่อพ่วง
(Peripheral Device) และมีโปรแกรมทีใ่ ช้ควบคุมการทางานของอุ ปกรณ์ทตี่ ดิ
ตัง้ อยู่ในระบบปฏิบตั กิ ารทีเ่ รียกว่า “อุ ปกรณ์ขบั (Device Driver)” ซึง่
โดยทัว่ ไปจะมีไฟล์ทเี่ กีย่ วข้องเพือ่ ใช้เก็บข้อมูลของอุ ปกรณ์อยู่ในไดเร็กทอรี
(Directory) ทีช่ อื่ ว่า /dev
Suan Dusit Rajabhat University (Computer Science)
18
8.5 การจัดการอุปกรณ์ในการรับและแสดงผล
(I/O Device Management)
 นอกจากนีร้ ะบบปฏิบตั กิ ารยูนกิ ซ์ยงั มีไฟล์ conf.c ทีใ่ ช้เก็บค่าพารามิเตอร์
(Parameter) สาหรับใช้ควบคุมทรัพยากรต่างๆ เช่น ขนาดของทีพ่ กั ข้อมูล
(Buffer) ของคอร์เนล (Kernel) หรือขนาดพืน้ ทีส่ าหรับการสลับ (Swap)
กระบวนการ (Process) เข้าหรือออกเมือ่ มีการเรียกใช้งานอุ ปกรณ์ในการรับและ
แสดงผล (I/O Device) เป็ นต้น โดยระบบปฏิบตั กิ ารยูนกิ ซ์แบ่งระบบ I/O
สาหรับจัดการอุ ปกรณ์ต่อพ่วงต่างๆ เป็ น 2 ประเภท ได้แก่
1. ระบบ I/O ทีเ่ กีย่ วข้องกับการจัดการอุ ปกรณ์ทเี่ ก็บข้อมูลเป็ นบล็อก (Block)
เช่น ดิกส์ (Disk) เทปแม่เหล็ก (Magnetic Tap) ซึง่ อาจจะเรียกอุ ปกรณกลุม่ นี้
ว่า อุ ปกรณ์ทสี่ ่งข้อมูลเป็ นบล็อก (Block Device) เป็ นต้น
Suan Dusit Rajabhat University (Computer Science)
19
8.5 การจัดการอุปกรณ์ในการรับและแสดงผล
(I/O Device Management)
 2. ระบบ I/O ทีเ่ กีย่ วข้องกับการจัดการอุ ปกรณ์ทเี่ ก็บข้อมูลเป็ นตัวอักษร
(Character) หรืออุ ปกรณ์ทเี่ ก็บข้อมูลแบบไม่เป็ นโครงสร้าง
(Unstructured I/O) เช่น เครือ่ งพิมพ์ (Printer) ซึง่ อาจจะเรียก
อุ ปกรณ์กลุม่ นีว้ ่า อุ ปกรณ์ทตี่ ้องติดต่อสือ่ สารเพือ่ ส่งข้อมูล
(Communication Device) หรืออุ ปกรณ์ทรี่ บั ส่งข้อมูลเป็ นตัวอักขระ
(Character Device) เป็ นต้น
Suan Dusit Rajabhat University (Computer Science)
20
8.6 การจัดการไฟล์ (File Management)
 การจัดการไฟล์ในระบบปฏิบตั กิ ารยูนกิ ซ์ (UNIX Operating System) จะ
ใช้วธิ กี ารจัดการไฟล์ในรูปแบบไดเร็กทอรีเ่ ดียว (Single Directory) แต่มหี ลาย
ระดับชัน้ (Multi-Level) เริม่ ตัง้ แต่รูท (root) ไล่ลงมาเรือ่ ย ๆ จนถึงผู ใ้ ช้ไฟล์
ต่าง ๆ ไม่ว่าจะเก็บลงในดิสก์ (Disk) ตัวไหน เทป (Tape) ม้วนไหน ก็จะรวมอยู่ใน
ไดเร็กทอรีเ่ ดียวกันทัง้ หมด
8.6.1 ประเภทของไฟล์ (File Type) โดยยูนกิ ซ์ (UNIX) แบ่งไฟล์
ออกได้เป็ น 3 ชนิด ได้แก่ ไฟล์ธรรมดา (Ordinary File) ไฟล์พเิ ศษ
(Special File) และ ไดเร็กทอรี (Directory) ดังนี้
Suan Dusit Rajabhat University (Computer Science)
21
8.6 การจัดการไฟล์ (File Management)
 1. ไฟล์ธรรมดา (Ordinary File) คือกลุม่ ของข้อมูลหลายๆ ไบต์วาง
เรียงต่อกันไม่มโี ครงสร้างของข้อมูลใด ๆ เช่น ไฟล์ขอ้ มูล ไฟล์โปรแกรม เป็ นต้น การที่
ยูนกิ ซ์มองไฟล์เป็ นกลุม่ ของไบต์ทไี่ ม่มโี ครงสร้างข้อมูลนี้ สร้างความยืดหยุ่นในการ
ทางานของโปรแกรมต่าง ๆ โปรแกรมทีต่ ้องการเก็บข้อมูลไว้ในไฟล์ต้องจัดการเรือ่ ง
โครงสร้างข้อมูลเอาเองทัง้ หมด โปรแกรมจึงมีอสิ ระในการจัดโครงสร้างข้อมูลไฟล์ได้
อย่างเต็มที่
Suan Dusit Rajabhat University (Computer Science)
22
8.6 การจัดการไฟล์ (File Management)
 2. ไฟล์พเิ ศษ (Special File) คือไฟล์ทสี่ ามารถอ้างอิงไปถึงอุ ปกรณ์ต่างๆ
ในระบบ ยูนกิ ซ์มองอู ปกรณ์ต่าง ๆ ในระบบเป็ นไฟล์ เช่น เครือ่ งพิมพ์ 1 เครือ่ งเป็ น 1
ไฟล์ จอภาพ 1 จอภาพเป็ น 1 ไฟล์ ไฟล์เหล่านีจ้ ะติดต่อกับตัวขับอุ ปกรณ์ของ
อุ ปกรณ์นนั้ ๆ ดังนัน้ การทีจ่ ะส่งข้อมูลหรือรับข้อมูลจากอุ ปกรณ์ต่าง ๆ ต้องส่งหรือรับ
ข้อมูลผ่านทางไฟล์ของอุ ปกรณ์นนั้ ๆ ซึง่ วิธนี เ้ ี กิดผลดีในแง่ของการถ่ายเทข้อมูลของ
โปรเซสต่าง ๆ
Suan Dusit Rajabhat University (Computer Science)
23
8.6 การจัดการไฟล์ (File Management)
 3. ไฟล์ไดเร็กทอรี (Directory) คือ ไฟล์ทยี่ ูนกิ ซ์กาหนดโครงสร้างข้อมูล
ไว้ให้ โดยมีโครงสร้างเป็ น ไดเร็กทอรีของระบบคือ ข้อมูลหนึง่ ตัวจะประกอบไปด้วยชือ่
ไฟล์ และหมายเลขไอโหนดของไฟล์นนั้ นอกจากนี้ ไดเร็กทอรีย่ งั สามารถเชือ่ มโยงถึงกัน
ได้ด้วย ไดเร็กทอรีและไฟล์ทเี่ ก็บรวมอยู่ในดิสก์หรือเทป หรืออุ ปกรณ์อนื่ ๆ ทีไ่ ม่ได้เป็ นได
เร็กทอรีเดียวกันกับไดเร็กทอรีของยูนกิ ซ์ สามารถนามาต่อเชือ่ มโยงเข้ากับไดเร็กทอรี
ของระบบเป็ น ไดเร็กทอรีย่ ่อยหนึง่ ได้ โดยยูนกิ ซ์มคี าสัง่ พิเศษคือคาสัง่ mount เพือ่
ใช้เชือ่ มไดเร็กทอรีอนื่ เข้ากับไดเร็กทอรีของระบบ และในทานองเดียวกันยูนกิ ซ์กม็ คี าสัง่
unmount เพือ่ ตัดไดเร็กทอรีย่อยออกจากระบบทัง้ คาสัง่ mount และ
unmount นีม้ ปี ระโยชน์สาหรับการใช้ดสิ ก์ หรือเทปทีถ่ อดเข้าออกจากตัวขับได้
Suan Dusit Rajabhat University (Computer Science)
24
8.6 การจัดการไฟล์ (File Management)
 8.6.2 การตั้งชื่อไฟล์ในระบบปฏิ บต
ั ิการยูนิกซ์ ชือ่ ไฟล์ในระบบปฏิบตั กิ าร
ยูนกิ ซ์จะเป็ นแบบ Case Sensitive คือ การใช้อกั ษรตัวใหญ่และอักษรตัวเล็กจะมี
ความหมายทีไ่ ม่เหมือนกัน เช่น ROOT, root, Root และ Root จะถือว่าเป็ น
ชือ่ ไฟล์ทไี่ ม่เหมือนกัน ซึง่ ชือ่ ไฟล์ทใี่ ช้ในการตัง้ ชือ่ สามารถกาหนดความยาวได้ถงึ 255
ตัวอักษร โดยมีการใช้โครงสร้างต้นไม้ในการแสดงการอ้างถึงไดเร็กทอรี
(Directory) และไฟล์ต่างๆ จะเครือ่ งหมาย Slash (/) จากจุดบนสุด
(Root) ของโครงสร้างต้นไม้ ผ่านลาดับชัน้ (Level) ต่างๆ ลงมา แต่หาก
ต้องการอ้างอิงขึน้ ไปหนึง่ ระดับจากไดเร็กทรอรีปจั จุบนั (Current
Directory) จะใช้เครือ่ งหมาย 2 จุดติดกัน (..) แสดงดังรูปที่ 8.2
Suan Dusit Rajabhat University (Computer Science)
25
รูปที่ 8.2 แสดงตัวอย่างโครงสร้างลาดับชัน้ ของการจัดการไฟล์ในระบบปฏิบตั กิ ารยูนกิ ซ์
Suan Dusit Rajabhat University (Computer Science)
26
8.6 การจัดการไฟล์ (File Management)
 นอกจากนีร้ ะบบปฏิบตั กิ ารยูนกิ ซ์ (UNIX Operating System) ยังได้
จัดเตรียมคาสัง่ สาหรับเรียกดูรายละเอียดในไดร์กทอรี โดยเรียกดูผ่านคาสัง่ ls (ย่อ
มาจากคาสัง่ List) ซึง่ มีรายละเอียดทีเ่ กีย่ วข้องดังนี้
- l เป็ นการกาหนดให้แสดงผลลัพธ์แบบยาว (Long Format)
- a แสดงไฟล์ขอ้ มูลทัง้ หมด
- F แสดงเครือ่ งหมาย / หลังชือ่ ไดเร็กทอรีและแสดงเครือ่ งหมาย * หลังไฟล์ท ี่
กาลังประมวลผล (Execute) ได้
Suan Dusit Rajabhat University (Computer Science)
27
8.6 การจัดการไฟล์ (File Management)
 ระบบปฏิบตั กิ ารยูนกิ ซ์ (UNIX Operating System) สามารถกาหนดสิทธิ์
ในการเข้าถึงไฟล์ในแต่ละชุดได้ดฃั ตัวอย่างต่อไปนี้
r-- หมายถึง อ่านอย่างเดียว
rw- หมายถึง อ่านและเขียนได้
r-x หมายถึง อ่านและประมวลผล (Execute) ได้
rwx หมายถึง อ่าน เขียนและประมวลผล (Execute) ได้
Suan Dusit Rajabhat University (Computer Science)
28
8.6 การจัดการไฟล์ (File Management)
 8.6.3 คาสั่งต่างๆ ในระบบในระบบปฏิ บต
ั ิการยูนิกซ์ โดยจัดการผ่านระบบ
โหมดคาสัง่ (Command Mode) ซึง่ คาสัง่ ต่างๆ จะอยู่ในรูปตัวอักษรย่อที่
ผู ใ้ ช้งานสามารถจดจาคาสัง่ ได้ง่าย โดยรูปแบบคาสัง่ มีดงั นี้
โดยที่ command หมายถึง คาสัง่ ของยูนกิ ซ์ (UNIX) ทีต่ ้องการใช้
argument หมายถึง ทางเลือกของคาสัง่
filename หมายถึง ไดเร็กทอรีหรือเส้นทาง
คาสัง่ ทีส่ าคัญและมักใช้งานอยู่เป็ นประจาในระบบปฏิบตั กิ ารยูนกิ ซ์ แสดงได้ดงั ตารางที่ 8.2
Suan Dusit Rajabhat University (Computer Science)
29
ตารางที่ 8.2 แสดงคาสัง่ ต่างๆ ทีเ่ กีย่ วข้องกับการจัดไฟล์ในระบบปฏิบตั กิ ารยูนกิ ซ์
Suan Dusit Rajabhat University (Computer Science)
30
8.6 การจัดการไฟล์ (File Management)
8.6.4 Shell และ Script File
Script File (Command File/Shell File) ใช้เพือ่ ทางานเดิม
ซ้าๆ แต่ละคาสัง่ ภายในไฟล์ซงึ่ มีรูปแบบการทางานดังนี้
1. การประมวลผลแบบต่อเนื่อง (Synchronous Execution)
จะทางานตามลาดับ โดยทาทีล่ ะคาสัง่ ต่อเนือ่ งกันไปจนเสร็จสิน้ จึงจะสามารถรับคาสัง่ จาก
ผู ใ้ ช้เข้ามาประมวลผลใหม่ได้ เรียกการทางานในลักษณะนีว้ ่า Foreground Mode
2. การประมวลผลแบบไม่ต่อเนื่อง (Asynchronous Execution)
จะทางานแบบไม่เป็ นลาดับ โดยสามารถรับคาสัง่ จากผู ใ้ ช้เข้ามาประมวลผลใหม่ได้โดยไม่ต้อง
คานึงถึงว่าคาสัง่ ทีป่ ระมวลผลก่อนหน้าจะแล้วเสร็จ เรียกการทางานในลักษณะนีว้ ่า
Background Mode
Suan Dusit Rajabhat University (Computer Science)
31
8.6 การจัดการไฟล์ (File Management)
Shell จะทาหน้าทีร่ บั คาสัง่ จากผู ใ้ ช้ เพือ่ ส่งให้กบั ระบบปฏิบตั กิ ารทางานตามคาสัง่ ทีผ่ ู ใ้ ช้
กาหนดไว้ เช่น
1. Bourne Shell (sh) เป็ น Shell มาตรฐานทีม่ ใี นระบบปฏิบตั กิ ารยูนกิ ซ์
ทุกเวอร์ชนั (Version)
2. C Shell (csh) พัฒนามาจากภาษาซี (C Language) มีประสิทธิภาพ
การทางานสูงกว่า Bourne Shell
3. Korn Shell (ksh) เป็ น Shell ทีน่ า Bourne Shell และ C
Shell มาปรับปรุงให้มปี ระสิทธิภาพการทางานสูงกว่า Shell ทัง้ สองและเพิม่ คุณสมบัต ิ
ให้สามารถเขียน Shell Script ได้ง่ายแต่ตวั โปรแกรมทีใ่ ช้เขียนมาขนาดใหญ่
Suan Dusit Rajabhat University (Computer Science)
32
8.6 การจัดการไฟล์ (File Management)
4. Bourne Again Shell (bash) เป็ น Shell ทีน่ า Bourne
Shell มาพัฒนาต่อจนกลายเป็ น Shell มาตรฐานของระบบปฏิบตั กิ ารลีนุกซ์
(Linux Operating System) สามารถประมวลผล (Run) ได้ทงั้ Script
File ของ Bourne Shell และ C Shell
Suan Dusit Rajabhat University (Computer Science)
33
*สรุป*
 ยูนกิ ซ์ (UNIX) เป็ นระบบปฏิบตั กิ ารทีม่ คี วามยืดหยุ่น (Flexibility) สามารถ
ทีจ่ ะแก้ไขหรือปรับปรุงให้เข้ากับระบบอืน่ ได้ตามต้องการ รองรับการทางานทัง้ ในระบบงาน
ภายในองค์กรขนาดกลางและองค์กรขนาดใหญ่ เป็ นระบบทีม่ ี Open Source ทา
ให้ผูพ้ ฒั นาหรือผู ท้ สี่ นใจสามารถทีจ่ ะเข้าไปค้นคว้าและทาการศึกษาได้ด้วยต้นเอง อีกทัง้
ยังเป็ นระบบปฏิบตั กิ ารทีไ่ ม่ยดึ ติดกับอุ ปกรณ์ (Device) หรือฮาร์ดแวร์
(Hardware) ทีเ่ กีย่ วกับกับระบบอีกด้วย
Suan Dusit Rajabhat University (Computer Science)
34
*สรุป*
 การจัดการหน่วยความจา (Memory Management) ระบบปฏิบตั กิ าร
ยูนกิ ซ์ (UNIX Operating System) (UNIX) จะใช้วธิ กี ารจัดการ
หน่วยความจาโดยใช้เทคนิควิธกี ารสลับเข้า/ออก (Swapping) หรือเทคนิควิธี
จัดการเพจตามความต้องการ (Demand Paging) โดยพิจารณาจากงาน
(Task) หรือกระบวนการ (Process) ทีเ่ ข้ามาใช้งานในระบบโดยใช้เทคนิควิธกี าร
สลับเข้า/ออก (Swapping) จะเหมาะกับงานหรือกระบวนการทีม่ ขี นาดเล็กโดยจะ
เก็บงานหรือกระบวนการทีต่ ้องการประมวลผล (Execute) ลงในหน่วยความจา
หลัก (Main Memory) แต่วธิ กี ม็ ขี อ้ จากัดเกิดขึน้ ตรงทีว่ ่าการกาหนดขนาด
ของงานหรือกระบวนการทีเ่ ข้ามาประมวลผล
Suan Dusit Rajabhat University (Computer Science)
35
*สรุป*
 การจัดการไฟล์ในระบบปฏิบตั กิ ารยูนกิ ซ์ (UNIX Operating System) จะ
ใช้วธิ กี ารจัดการไฟล์ในรูปแบบไดเร็กทอรีเ่ ดียว (Single Directory) แต่มหี ลาย
ระดับชัน้ (Multi-Level) เริม่ ตัง้ แต่รูท (root) ไล่ลงมาเรือ่ ย ๆ จนถึงผู ใ้ ช้ไฟล์
ต่าง ๆ ไม่ว่าจะเก็บลงในดิสก์ (Disk) ตัวไหน เทป (Tape) ม้วนไหน ก็จะรวมอยู่ใน
ไดเร็กทอรีเ่ ดียวกันทัง้ หมด โดยยูนกิ ซ์ (UNIX) แบ่งไฟล์ออกได้เป็ น 3 ชนิด ได้แก่
ไฟล์ธรรมดา (Ordinary File) ไฟล์พเิ ศษ (Special File) และ ไดเร็กทอรี
(Directory)
Suan Dusit Rajabhat University (Computer Science)
36
The End
Lesson 8
Suan Dusit Rajabhat University (Computer Science)
37