1 / 63

บทที่ 2

บทที่ 2. โครงสร้างระบบ.

Download Presentation

บทที่ 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. บทที่ 2 โครงสร้างระบบ

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

  3. 2.1 การให้บริการของระบบปฏิบัติการ (Operating-System Services) • ระบบปฏิบัติการจัดสภาพแวดล้อมให้กับการรันโปรแกรม มันจัดเตรียมให้บริการกับโปรแกรมและผู้ใช้โปรแกรมนั้น จัดให้บริการเฉพาะด้านจากระบบปฏิบัติการหนึ่งไปยังระบบปฏิบัติการหนึ่ง แต่เราสามารถระบุประเภทร่วมกันได้ การให้บริการของระบบปฏิบัติการถูกจัดเตรียมขึ้นเพื่อความสะดวกของโปรแกรมเมอร์ เพื่อให้งานเขียนโปรแกรมง่ายยิ่งขึ้น

  4. (Operating-System Services) • ส่วนติดต่อกับผู้ใช้ (User Interface) ระบบปฏิบัติการส่วนใหญ่จะมีส่วนติดต่อกับผู้ใช้ (UI) จุดเชื่อมต่อนี้สามารถทำงานได้หลายรูปแบบ หนึ่งคือ command-line interface (CLI) คือใช้คำสั่งเป็นข้อความสั้นๆและวิธีการป้อนคำสั่ง (กล่าวคือโปรแกรมอนุญาตให้มีการป้อนคำสั่งและแก้ไขคำสั่งได้) อีกอย่างคือ batch interface จะสั่งการและกำหนดทิศทางให้คำสั่งถูกเก็บลงแฟ้มข้อมูล (file) และแฟ้มข้อมูลนั้นจะถูกดำเนินการ ที่มีการใช้มากที่สุดคือ graphical user interface (GUI) ส่วนติดต่อเป็นระบบหน้าต่างกับอุปกรณ์ชี้ตำแหน่งไปยัง I/O เลือกจากเมนู รายการ ป้อนข้อความ บางระบบจัดเตรียมไว้สองถึงสามแบบ

  5. (Operating-System Services) • การรันโปรแกรม ระบบจะต้องสามารถโหลดโปรแกรมไปยังหน่วยความจำและรันโปรแกรมได้ โปรแกรมจะต้องสามารถสิ้นสุดการทำงานทั้งแบบปกติหรือไม่ปกติ (ระบุข้อผิดพลาด) • การดำเนินการ I/O โปรแกรมที่กำลังทำงานอยู่จะต้องการ I/O ซึ่งอาจจะเกี่ยวข้องกับแฟ้มข้อมูลหรืออุปกรณ์ I/O สำหรับการระบุอุปกรณ์อาจจะต้องการทำงานพิเศษ (เช่น การบันทึกลง CD หรือ DVD หรือหน้าจอ CRT ว่างๆ) เพื่อประสิทธิภาพและการป้องกัน ผู้มักจะไม่สามารถควบคุมทิศทางอุปกรณ์ I/O ได้ เพราะฉะนั้นระบบปฏิบัติการจะต้องจัดเตรียมวิธีการในการจัดการกับ I/O

  6. (Operating-System Services) • การจัดการระบบแฟ้มข้อมูล ระบบแฟ้มข้อมูลเป็นส่วนที่น่าสนใจ จริงๆแล้วโปรแกรมต้องการอ่านและเขียนแฟ้มข้อมูล มันต้องการสร้างและลบมันโดยใช้ชื่อ ค้นหาแฟ้มข้อมูลที่ให้มา และลงรายการแฟ้มข้อมูลนั้น ในที่สุดบางโปรแกรมมีการรวมระบบการจัดการการให้สิทธิ์หรือปฏิเสธการเข้าถึงแฟ้มข้อมูลหรือไดเรกทอรีบนพื้นฐานของการเป็นเจ้าของ

  7. (Operating-System Services) • การติดต่อสื่อสาร มีหลายโอกาสที่กระบวนการหนึ่งต้องการแลกเปลี่ยนข้อมูลกับหระบวนอื่นๆ อย่างเช่นการติดต่ออาจเกิดขึ้นระหว่างกระบวนต่างๆที่กำลังทำงานบนคอมพิวเตอร์เครื่องเดียวกัน หรือระหว่างกระบวนการที่กำลังทำงานบนคอมพิวเตอร์ที่อยู่ในระบบเดียวกัน โดยเครือข่ายคอมพิวเตอร์ การติดต่อสื่อสารอาจจะนำมาใช้ด้วยวิธีการแบ่งหน่วยความจำหรือวิธีการส่งข้อความ ซึ่งกลุ่มของข้อมูลจะเคลื่อนย้ายระหว่างกระบวนการโดยระบบปฏิบัติการ

  8. (Operating-System Services) • การตรวจจับข้อผิดพลาด ระบบปฏิบัติการต้องการที่จะรับรู้ข้อผิดพลาดที่เป็นไปได้ ข้อผิดพลาดอาจจะเกิดขึ้นใน CPU หรือหน่วยความจำของฮาร์ดแวร์ (เช่น ข้อผิดพลาดของหน่วยความจำหรือไฟดับ) ในอุปกรณ์ I/O (เช่น การอ่านข้อมูลจากเทปผิดพลาด การติดต่อล้มเหลวบนเครือข่าย หรือการขาดกระดาษในเครื่องพิมพ์) และผู้โปรแกรม (เช่น การเกิดค่าเกินขอบเขต การเข้าถึงตำแหน่งของหน่วยความจำที่ไม่ได้รับอนุญาต หรือใช้ CPU นานเกินไป) ข้อผิดพลาดแต่ละประเภทของระบบปฏิบัติการจะใช้การกระทำที่เหมาะสมเพื่อความถูกต้องและสอดคล้องในการคำนวณ ความสะดวกในการแก้จุดบกพร่องจะช่วยเพิ่มความสามารถของผู้ใช้และโปรแกรมเมอร์ให้ใช้ระบบอย่างมีประสิทธิภาพ

  9. (Operating-System Services) • การทำงานของระบบในกลุ่มอื่นไม่ได้มีไว้ช่วยเหลือผู้ใช้ แต่มีไว้สำหรับรับประกันประสิทธิภาพในการดำเนินการของระบบด้วยตัวมันเอง ระบบกับผู้ใช้หลายคนสามารถเพิ่มประสิทธิภาพโดยการแบ่งทรัพยากรของคอมพิวเตอร์ในกลุ่มผู้ใช้

  10. (Operating-System Services) • การจัดสรรทรัพยากร เมื่อมีผู้ใช้หลายคนหรือมีหลายงานกำลังทำงานอยู่ในเวลาเดียวกัน จะต้องมีการจัดสรรทรัพยากรในแต่ละส่วนของมัน ความแตกต่างของทรัพยากรถูกจัดการโดยระบบปฏิบัติการ (เช่น วัฏจักร CPU หน่วยความจำหลัก และสถานที่จัดเก็บแฟ้มข้อมูล) อาจจะต้องมีสถานที่จัดเก็บรหัสพิเศษ ในขณะที่อย่างอื่น (เช่น อุปกรณ์ I/O) อาจจะมีความต้องการทั่วไปมากกว่าและปล่อยรหัส ยกตัวอย่างในการตัดสินใจว่าจะใช้ CPU ให้ดีที่สุดได้อย่างไร ระบบปฏิบัติการมีตารางชุดคำสั่ง CPU ที่จะนำเข้าบัญชีความเร็วของ CPU งานจะต้องถูกรัน จำนวนการลงทะเบียนที่ใช้ได้ และปัจจัยอื่น ๆ นั่นอาจจะเป็นชุดคำสั่งที่จัดสรรไปยังเครื่องพิมพ์ โมเด็ม หน่วยเก็บข้อมูล USB และอุปกรณ์ต่อพ่วงอื่น ๆ

  11. (Operating-System Services) • บัญชี เราต้องกรเก็บร่องรอยการใช้ของผู้ใช้มีมากแค่ไหนและทรัพยากรคอมพิวเตอร์ประเภทอะไร การบันทึกนี้จะเก็บไว้ใช้เป็นบัญชี (เพื่อผู้ใช้สามารถเป็นบัญชีรายการ) หรือสถิติการรวบรวมการใช้งานอย่างง่าย สถิติการใช้งานอาจเป็นประโยชน์ให้กับนักวิจัยที่ต้องการตั้งค่าระบบใหม่เพื่อปรับปรุงการบริการ

  12. (Operating-System Services) • การป้องกันและความปลอดภัย เจ้าของข้อมูลจะถูกเก็บในผู้ให้ลายคน หรือระบบเครือข่ายคอมพิวเตอร์ที่อาจจะต้องการควบคุมการใช้ข้อมูล เมื่อแบ่งหลายกระบวนการทำงานร่วมกัน มันเป็นไปไม่ได้ที่หนึ่งกระบวนการจะเชื่อมต่อกับอื่น ๆ หรือกับระบบปฏิบัติการด้วยตนเอง การป้องกันมีต่อความมั่นใจที่เข้าถึงระบบทรัพยากรจะต้องถูกควบคุม ความปลอดภัยของระบบจากภายนอกก็มีความสำคัญด้วยเช่นกัน เช่นความปลอดภัยที่เริ่มขึ้นจากความต้องการพิสูจน์ตัวตนกับระบบ มักจะใช้วิธีการของรหัสผ่านเพื่อจะเข้าใช้ทรัพยากรของระบบ รวมถึงการป้องกันอุปกรณ์ I/O ภายนอก ประกอบด้วยโมเด็มและตัวแปลงเครือข่าย จากการพยายามเข้าใช้อย่างไม่ถูกต้องและบันทึกทั้งหมด เช่น การเชื่อมต่อสำหรับการตรวจจับการขัดจังหวะ ถ้าระบบมีการป้องกันและปลอดภัยจะต้องมีการระมัดระวังอยู่ตลอด วงจรนั้นจะต้องแข็งแรง • พอ ๆ กับจุดอ่อนที่สุดของมัน

  13. 2.2 ส่วนติดต่อกับผู้ใช้ที่ระบบจัดเตรียมไว้ (User Operating System Interface) • มีสองวิธีพื้นฐานสำหรับผู้ใช้ที่จะเชื่อมต่อกับระบบปฏิบัติการ เทคนิคหนึ่งคือการจัดเตรียม command-line interface หรือ command interpreter ซึ่งจะให้ผู้ใช้กำหนดการป้อนคำสั่งที่กระทำโดยระบบปฏิบัติการ วิธีที่สองจะให้ผู้ใช้เชื่อมต่อกับระบบปฏิบัติการด้วยวิธี graphical user interface หรือ GUI

  14. 2.2.1 ตัวแปลคำสั่ง (Command Interpreter) • ระบบปฏิบัติการบางระบบประกอบด้วยตัวแปลคำสั่งใน kernel เช่น Windows XP และ UNIX ตัวแปลคำสั่งจะทำหน้าที่เหมือนโปรแกรมพิเศษที่กำลังทำงานเมื่องานเริ่มขึ้น หรือเมื่อผู้ใช้เข้าสู่ระบบครั้งแรก (บนระบบที่ทำงานร่วมกัน) บนระบบประกอบด้วยตัวแปรภาษาหลายตัวซึ่งจะถูกเลือกจากผู้แปลที่เรียกว่า shell ยกตัวอย่างเช่น UNIX และ Linux shell ที่ผู้ใช้เลือกใช้มีหลากหลายชนิดแตกต่างกันไปประกอบด้วย Bourne shell, C shell, Bourne Again shell, Korn shel และอื่น ๆ shell ส่วนใหญ่จะมีฟังก์ชันการทำงานที่คล้ายกันแตกต่างกันเล็กน้อย ผู้ใช้ส่วนใหญ่มักเลือก shell ตามความต้องการของตน

  15. (Command Interpreter) • การติดต่อกับผู้ใช้แบบกราฟิกปรากฏครั้งแรกในส่วนของการวิจัยในช่วงต้น 1970s ที่ Xerox PARC ในตอนแรก GUI ปรากฏบนคอมพิวเตอร์ Xerox Alto ในปี 1973 อย่างไรก็ตามส่วนติดต่อแบบกราฟิกแพร่หลายอย่างกว้างขวางกับการปรากฏตัวของคอมพิวเตอร์ Apple Macintosh ในปี 1980s ส่วนติดต่อกับผู้ใช้ไปยังระบบปฏิบัติการ Macintosh (Mac OS) ได้ผ่านการเปลี่ยนแปลงมาหลายปี สิ่งสำคัญที่สุดคือการเลือกของ Aque interface ปรากฏกับ Mac OS X รุ่นแรกของ Window เวอร์ชัน 1.0 อยู่บนพื้นฐาน GUI interface ไปยังระบบปฏิบัติการ MS-DOS หลายเวอร์ชันของระบบ Window ที่กำลังดำเนินการ เวอร์ชันเริ่มต้นมีการสร้างการเปลี่ยนแปลงเบื้องหน้าไปยังการปรากฏของ GUI และปรับปรุงการทำงานให้ดีขึ้นประกอบด้วย Windows Explorer

  16. (Command Interpreter) • ตามหลักแล้วระบบ UNIX จะถูกควบคุมโดย command line interface ถึงแม้ว่าจะมีส่วนติดต่อกับผู้ใช้แบบ GUI ที่ใช้สามารถใช้งานได้อย่างหลากลหาย ประกอบด้วย Common Desktop Environment (CDE) และระบบ X-Windows ซึ่งเป็นรุ่นทั่วไปในเชิงพาณิชย์ของ UNIX ยกตัวอย่างเช่น Solaris และระบบ AIX ของ IBM อย่างไรก็ตามนั่นก็เป็นการพัฒนาที่สำคัญในการออกแบบ GUI จากหลายโครงการของ Opensource ยกตัวอย่างเช่น K Desktop Environment (KDE) และ GNOME desktop โดยโครงการของ GNU ทั้ง KDE และ GNOME desktop รันบน Linux และ UNIX หลายระบบ และใช้งานได้ภายใต้ลิขสิทธ์ของ Opensource ซึ่งหมายความว่า source code อยู่ใน public domain

  17. (Command Interpreter) • ทั้งสองตัวเลือกไม่ว่าจะเป็นการใช้ command line หรือ GUI interface ก็แล้วแต่ความพึงพอใจของแต่ละคน มีกฎมากมายโดยใช้ UNIX จำนวนมากชอบ command line interface มากพอๆกับที่พวกเขามักจัดเตรียม shell interface อย่างมีประสิทธิภาพ อีกทางหนึ่งผู้ใช้ Windows ส่วนใหญ่พอใจที่จะใช้ Windows GUI และมักจะไม่เคยใช้ MS-DOS shell interface ที่ผ่านมามีการเปลี่ยนแปลงมากมายโดยระบบปฏิบัติการ Macintosh จัดให้การศึกษาได้ดีในความแตกต่าง ในอดีต Mac OS ไม่มีการจัด command line interface ให้ มักจะต้องการให้ผู้ใช้เชื่อมต่อกับระบบปฏิบัติการโดยใช้ GUI อย่างไรก็ตามการปล่อยของ Mac OS X (ซึ่งในส่วนของเครื่องมือใช้ Unix kernel) ระบบปฏิบัติการปัจจุบันมีการจัดเตรียมทั้ง Aqua interface ใหม่ และ command line interface อีกด้วย

  18. 2.3 การเรียกระบบ (System Calls) • System calls จัดเตรียมส่วนติดต่อไปยังบริการสร้างให้ใช้งานได้โดยระบบปฏิบัติการ การเรียกนี้ใช้งานได้ทั่วไปเหมือนกับชุดคำสั่งที่เขียนขึ้นด้วย C และ C++ ถึงแม้ว่าบางอย่างเป็นงานระดับต่ำ (ยกตัวอย่างเช่น งานที่ฮาร์ดแวร์จะต้องถูกเข้าถึงได้โดยตรง) อาจจะต้องการเขียนโดยใช้คำสั่งภาษา assembly

  19. (System Calls) • ก่อนที่เราจะอภิปรายว่าระบบปฏิบัติการสามารถทำการเรียกระบบอย่างไร อย่างแรกให้ใช้ตัวอย่างเป็นการแสดงว่า system calls ถูกเรียกใช้อย่างไร เขียนโปรแกรมง่าย ๆ ขึ้นเพื่ออ่านข้อมูลจากไฟล์หนึ่งและกอบปี้ไปยังไฟล์อื่น ๆ ข้อมูลเข้าอย่างแรกที่โปรแกรมต้องการคือชื่อของไฟล์ทั้งสอง คือไฟล์ที่นำข้อมูลเข้าและไฟล์ที่นำข้อมูลออก ชื่อสามารถกำหนดได้หลายวิธีขึ้นอยู่กับการออกแบบระบบปฏิบัติการ สิ่งที่คล้ายกันคือโปรแกรมจะถามผู้ใช้ถึงชื่อของไฟล์ทั้งสอง ในระบบที่มีการทำงานร่วมกัน ความคล้ายกันคือจะต้องลำดับ system calls เริ่มจากเขียนข้อความที่แสดงว่าพร้อมบนหน้าจอและหลังจากนั้นจึงทำการอ่านตัวอักษรจากคีย์บอร์ดซึ่งระบุถึงสองไฟล์ พื้นฐานระบบเมาส์และไอคอนเมนูของชื่อไฟล์มักจะแสดงในหน้าต่าง ผู้ใช้สามารถใช้เมาส์เลือกตามรายชื่อและหน้าต่างก็จะเปิดไปยังชื่อเป้าหมายที่ถูกระบุ ขั้นตอนนี้ต้องการ I/O system calls มากมาย

  20. (System Calls) • ทันที่ได้รับชื่อทั้งสองไฟล์แล้วโปรแกรมจะเปิดไฟล์ที่นำข้อมูลเข้าและสร้างไฟล์ที่นำข้อมูลออก แต่ละการดำเนินการต้องการ system calls อื่นๆ มีเงื่อนไขข้อผิดพลาดที่เป็นไปได้สำหรับแต่ละการดำเนินการ เมื่อโปรแกรมพยายามที่จะเปิดไฟล์ที่นำข้อมูลเข้า มันอาจจะหาไฟล์ไม่เจอจากชื่อนั้นหรือไฟล์นั้นถูกป้องกันไม่ให้มีการเข้าถึงได้ ในกรณีนี้โปรแกรมจะแสดงข้อความบน console (ลำดับอื่นของ system calls) จากนั้นก็หยุดอย่างไม่ปกติ (system calls อื่นๆ) ถ้าไฟล์ที่นำข้อมูลเข้ายังอยู่ ดังนั้นเราจะต้องสร้างไฟล์ที่นำข้อมูลออกใหม่ เราอาจจะหาจากไฟล์ที่นำข้อมูลออกที่มีความพร้อมกับชื่อที่เหมือนกัน ตำแหน่งอาจะเป็นสาเหตุให้โปรแกรมล้มเหลว (system calls) หรือเราอาจจะลบไฟล์ที่มีอยู่ (system calls อื่น) และสร้างอันใหม่ขึ้นมา (system calls อื่น)

  21. (System Calls) • โปรแกรมเมอร์ส่วนใหญ่ไม่เคยเห็นลำดับของรายละเอียด ผู้พัฒนา application จะออกแบบโปรแกรมระหว่าง application programming interface (API) API จะระบุเซตของการทำงานที่สามารถทำงานได้ไปยัง application programmer ประกอบด้วยพารามิเตอร์ซึ่งไปแต่ละฟังก์ชันและส่งค่าคืน โปรแกรมเมอร์สามารถคาดหมายได้ API โดยทั่วไปทำงานกับ application programmer โดยส่วนใหญ่มี 3 ประเภท คือ Win32 API สำหรับ Windows systems, POSIX API สำหรับ POSIX-based systems (ซึ่งประกอบด้วยทุกเวอร์ชันของ UNIX, Linux และ Mac OS X) และ Java API สำหรับออกแบบโปรแกรมซึ่งรันอยู่บน java virtual machine

  22. (System Calls)

  23. (System Calls) • ผู้เรียกไม่จำเป็นต้องรู้ system call ถูกใช้อย่างไรหรือมันถูกทำอะไรในขณะที่ทำงาน ตรงกันข้ามมันต้องทำตาม API และเข้าใจว่าระบบปฏิบัติการจะทำอย่างไรให้เป็นผลลัพธ์ของการทำงานของ system call ดังนั้นรายละเอียดของ interface ของระบบปฏิบัติการมักจะถูกซ่อนจากโปรแกรมเมอร์โดย API และถูกจัดการโดย library ในขณะนั้น ความสัมพันธ์ระหว่าง API, system call interface และระบบปฏิบัติการแสดงให้เห็นในภาพที่ 2.2 ซึ่งแสดงให้เห็นว่าระบบปฏิบัติการจะเก็บ application ของผู้ใช้ที่เรียก system call open() ได้อย่างไร

  24. (System Calls)

  25. (System Calls) • วิธีการทั่วไป 3 อย่างถูกใช้ในการส่งพารามิเตอร์ให้กับระบบปฏิบัติการ วิธีการที่ง่ายที่สุดคือส่งพารามิเตอร์ใน register ในบางกรณีถึงแม้ว่าอาจจะมีพารามิเตอร์มากกว่า register ในกรณีนี้พารามิเตอร์จะถูกเก็บใน block หรือตารางของหน่วยความจำ และที่อยู่ของ block จะถูกส่งเป็น พารามิเตอร์ใน register (รูปที่ 2.3) วิธีการนี้ถกใช้โดย Linux และ Solaris พารามิเตอร์จะถูกเก็บด้วยหรือถูก push ลงใน stack โดยโปรแกรมและถูก pop ออกจาก stack โดยระบบปฏิบัติการ ระบบปฏิบัติการบางระบบชอบใช้ block หรือ stack เพราะวิธีการนี้ไม่จำกัดจำนวนหรือความยาวของพารามิเตอร์ที่จะส่ง

  26. (System Calls)

  27. 2.4 ประเภทของ System call • ส่วนนี้เป็นส่วนสำคัญที่ระบบปฏิบัติการที่สร้างขึ้นมาเพื่อเอ็กซิคิวต์โปรแกรม และให้การดำเนินการของโปรเซสเป็นไปตามความต้องการของผู้ใช้โดย system calls นี้จะกำหนดอินเทอร์เฟชระหว่างโปรเซสกับระบบปฏิบัติการที่สร้างด้วยคำสั่งภาษาแอสเซ็มบลีและแสดงอยู่ในคู่มือเพื่อให้ผู้ใช้ทราบและสามารถนำมาใช้ได้ ในบางระบบคำสั่งจำพวกนี้อาจจะสร้างด้วยภาษาระดับสูงก็ได้ System calls นี้อาจจะจัดเป็น 5 กลุ่มหลักคือการควบคุมโปรเซส, การจัดการกับไฟล์, การจัดการดีไวซ์, การบำรุงรักษาข้อมูล และการติดต่อสื่อสาร

  28. ประเภทของ System call • การควบคุมโปรเซส • – การ execute • – การหยุดปกติ (end) • – การหยุดไม่ปกติ (abort) • – การ load ข้อมูลเพิ่มเติม • – การ execute โปรเซสอีกครั้ง • – การจบโปรเซส • – การสร้างโปรเซสใหม่ • – แสดง attribute โปรเซส • – การปรับแต่ง โปรเซส • – การหยุดรอเวลา / event อื่น

  29. ประเภทของ System call • การจัดการไฟล์ • – การสร้างไฟล์ • – การลบไฟล์ • – การเปิด-ปิดไฟล์ • – การอ่าน-เขียนไฟล์ • – การเปลี่ยนตำแหน่งไฟล์

  30. ประเภทของ System call • การจัดการ device • – การร้องขอ device • – การปล่อย device สู่สภาพเดิม • – การอ่าน-เขียน และเปลี่ยนตำแหน่ง device • – รับค่าปรับแต่ง attribute ของระบบ • – การผูกติด+ปล่อย device กับ OS

  31. ประเภทของ System call • การบำรุงรักษาข้อมูล • – ถ่ายโอนข้อมูลระหว่างผู้ใช้กับ OS • – แสดงวัน-เวลาปัจจุบัน • แสดงข้อมูลระบบ , จำนวนผู้ใช้งาน, version ระบบ, เนื้อที่ว่างของหน่วยความจำและดิสก์ • การติดต่อสื่อสาร (โปรเซสในระบบ Computer เดียวกัน &โปรเซสระหว่างระบบ Computer ข้ามเครือข่าย) • – การเชื่อมต่อและยกเลิกการเชื่อมต่อ • – รับ-ส่ง message • – ข้อมูลสถานะ • – การถ่ายโอน • – การผูกติด+ปล่อย device

  32. ประเภทของ System call รูปที่ 2.4แสดงการทำงานของระบบ System call

  33. การควบคุมโปรเซส (Process control) • โปรเซส คือ โปรแกรมที่กำลังถูกเอ็กซิคิวซ์ เราอาจเปรียบเทียบโปรแกรมเหมือนกับรถยนต์ที่จอดนิ่งอยู่ ที่พร้อมที่จะวิ่งไปในระบบหลายโปรแกรม (Multiprogramming) • โปรเซสอาจเปรียบกับรถยนต์ที่วิ่งออกจากจุดเริ่มต้น ถ้ามีหลายโปรเซสอยู่ในระบบก็เหมือนกับการที่เรามีรถหลายคันที่จะต้องออกวิ่งไปพร้อม ๆ กัน ตัวซีพียูเปรียบได้กับคน • ขับรถยนต์ ถ้าซีพียูมีตัวเดียวก็เหมือนกับคนขับรถมีเพียงคนเดียว ดังนั้นเมื่อรถหลายคันออกวิ่งการที่คนขับรถคนเดียวจะพารถหลาย ๆ คันวิ่งไปต้องขับทีละคันให้วิ่งเดินหน้าไป • ทีละนิด เวียนเปลี่ยนไปจนครบทุกคัน จนถึงจุดหมายปลายทาง (โปรแกรมสิ้นสุดลง) นั้นคือ เรามีโปรเซสหลาย ๆ โปรเซสทำงานพร้อม ๆ กัน ได้โดยมีซีพียูเพียงตัวเดียว

  34. การจัดการไฟล์ (File Management) • การจัดการไฟล์เป็นหนึ่งในคอมโพเนนต์ของระบบปฏิบัติการที่เห็นได้ชัดเจน คอมพิวเตอร์สามารถจัดเก็บในสื่อที่แตกต่างกัน ไม่ว่าจะเป็นเทปแม่เหล็ก , ดิสก์ , สื่อแต่ละชนิดที่มีคุณสมบัติการจัดการทางกายภาพเฉพาะแบบ สื่อแต่ละชนิดจะถูกควบคุมด้วยอุปกรณ์ ที่มีคุณสมบัติเฉพาะแบบเช่นกัน คุณสมบัติเหล่านี้รวมถึง ความเร็ว ความจุ อัตราการโอนถ่ายข้อมูล และวิธีการแอ็กเซสข้อมูล เพื่อความสะดวกในการใช้งานระบบคอมพิวเตอร์นั้น สิ่งสุดท้ายเมื่อมีการใช้ไฟล์ได้หลาย ๆ คน อาจจะต้องมีการควบคุมผู้ที่สามารถใช้ไฟล์อีกด้วยระบบปฏิบัติการมีหน้าที่รับผิดชอบในกิจกรรมที่เกี่ยวกับการจัดการไฟล์ดังนี้

  35. (File Management) • • สร้างและการลบไฟล์ • • สร้างและการลบไดเรกทอรี • • สนับสนุนการจัดการไฟล์ในรูปแบบเดิม ๆ ที่ผ่านมา • • แมพไฟล์ไปยังสิ่งที่ใช้จัดเก็บข้อมูล • • แบ็คอัพหรือสร้างไฟล์สำรอง • • การจัดการอินพุต/เอาท์พุต (I/O System Management)

  36. การจัดการอุปกรณ์ (Device management) • อุปกรณ์ (device) คือ ส่วนประกอบของคอมพิวเตอร์ที่ไม่ใช่หน่วยประมวลผลกลางหรือหน่วยความจำหลัก เนื่องจากความต้องการและองค์ประกอบต่าง ๆ ในระบบใหญ่ ๆ ซับซ้อนเกินกว่าจะนิยามออกมาเป็นหลักเกณฑ์ทางคณิตศาสตร์ได้

  37. การบำรุงรักษาข้อมูล • ในหลาย ๆ System calls มีอยู่เพื่อวัตถุประสงค์ในการถ่ายโอนข้อมูลระหว่างผู้ใช้โปรแกรมกับระบบปฏิบัติการ เช่น ส่วนใหญ่ในระบบจะมี System calls ในการกลับไปยังเวลา และวันที่ปัจจุบัน แต่ในระบบอื่นอาจจะต้องมีการเรียกคืนข้อมูลเกี่ยวกับระบบ เช่น จำนวนผู้ใช้ปัจจุบันที่เวอร์ชันต่าง ๆ ของระบบปฏิบัติการ, จำนวนพื้นที่ว่างในหน่วยความจำและอื่น ๆ

  38. การติดต่อสื่อสาร • การติดต่อสื่อสาร เป็นที่ทราบอยู่แล้วว่าการติดต่อสื่อสารระหว่างโปรเซสมี 2 รูปแบบ คือ ระหว่างโปรเซสในระบบคอมพิวเตอร์เดี่ยวกันและการติดต่อสื่อสารระหว่างระบบคอมพิวเตอร์ข้ามเน็ตเวิร์คนั่นเอง โดยงานในกลุ่มนี้อาจจะเป็นการเชื่อมต่อและยกเลิกการเชื่อมต่อ, รับ-ส่งแมสเสจ, ข้อมูลสถานะ การถ่ายโอนรวมถึงการผูกและการปล่อยอุปกรณ์ เป็นต้น

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

  40. โปรแกรมระบบ • -การแก้ไขไฟล์ หลายข้อความที่ถูกรวบรวมอาจมีการสร้างและแก้ไขเนื้อหาของแฟ้มที่เก็บไว้ในดิสก์อื่น ๆ หรือการเก็บรักษาอุปกรณ์ • -สนับสนุนภาษาโปรแกรม คอมไพล์เลอร์, assemblers, debuggers และ interpreters ทั่วไปสำหรับการเขียนโปรแกรม • -การสื่อสาร โปรแกรมเหล่านี้ให้กลไกเสมือนสำหรับการสร้างการเชื่อมต่อระหว่างกระบวนการผู้ใช้และระบบคอมพิวเตอร์ • -การโหลด และการกระทำการโปรแกรม เมื่อโปรแกรมจะคอมไพล์นั้นจะต้องไดมีการโหลดไปยังหน่วยความจำที่พร้อมจะรัน ระบบอาจจะมีการโหลด, relocatable loaders , การเชื่อมต่อตัวแปลภาษาและครอบคลุมการโหลด

  41. การออกแบบระบบปฏิบัติการและการอิมพลีเมนต์ (Operating-System Design and Implementation) • ในส่วนนี้จะกล่าวถึงปัญหาที่เราประสบในการออกแบบและการอิมพลีเมนต์ระบบปฏิบัติการ ที่จะกล่าวถึงนี้ไม่ใช่การแก้ปัญหาเหล่านั้นที่สมบูรณ์แต่จะเป็นเพียงวิธีการพัฒนาให้ไปสู่ความสำเร็จเท่านั้น

  42. เป้าหมายของการออกแบบ • ปัญหาแรกของการออกแบบระบบ คือการกำหนดเป้าหมายและข้อจำกัด ในระดับสูงนั้นการออกแบบระบบจะถูกมีผลกระทบจากฮาร์ดแวร์และประเภทของระบบ นอกจากการออกแบบในระดับที่สูงที่สุดแล้วนั้น ความต้องการอาจจะยากมากที่จะกำหนด และความต้องการนั้นสามารถถูกแบ่งออกเป็นสองกลุ่มพื้นฐาน คือ เป้าหมายของผู้ใช้และเป้าหมายของระบบ

  43. กลไกและนโยบาย ลักการหนึ่งที่สำคัญคือการแยกนโยบายออกจากกลไก กลไกนั้นจะหมายถึง จะทำสิ่งนั้น ๆ ได้อย่างไร ส่วนนโยบายนั้นจะหมายถึง อะไรที่จะทำให้มันสำเร็จได้ ตัวอย่างเช่น เครื่องจับเวลาเป็นกลไกหนึ่งสำหรับการปกป้อง CPU อย่างมั่นใจ แต่การตัดสินใจว่าระยะเวลานานเท่าไรที่เครื่องจับเวลา การตัดสินใจเกี่ยวกับนโยบายเป็นสิ่งที่สำคัญสำหรับทุก ๆ การแบ่งส่วนทรัพยากร เมื่อไรก็ตามที่มันจำเป็นสำหรับการตัดสินใจในการแบ่งส่วนทรัพยากรหรือไม่ก็ตาม การตัดสินใจเกี่ยวกับนโยบายจะต้องถูกสร้างขึ้น เมื่อไรก็ตามที่มีคำถามว่า อย่างไร มีมากกว่า อะไร นั่นหมายความว่ากลไกนั้นจะต้องถูกกำหนดขึ้น

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

  45. โครงสร้างของระบบปฏิบัติการ (Operating-System Structure) ส่วน ประกอบที่ถูกเชื่อมต่อกันและถูกรวมกันเป็น kernelระบบใหญ่และซับซ้อนเหมือนกับระบบปฏิบัติการสมัยใหม่นั้น ต้องถูกออกแบบทางวิศวกรรมอย่างระมัดระวัง หากมันทำงานได้อย่างเหมาะสมและถูกเปลี่ยนแปลงอย่างง่าย วิธีการทั่วไปที่จะแบ่งหน้าที่การทำงานออกให้เป็นส่วนประกอบเล็ก ๆ

  46. โครงสร้างพื้นฐาน • ระบบที่เกี่ยวกับการค้าหลายระบบไม่มีโครงสร้างที่ดี อย่างเช่น ระบบปฏิบัติการที่เริ่มต้นจากการเป็นระบบเล็ก ๆ มีเพียงฟังก์ชันพื้นฐาน และเป็นระบบที่มีข้อจำกัด ต่อมาก็เติบโตขึ้นภายใต้ขอบเขตดั้งเดิม MS-DOS เป็นตัวอย่างของระบบหนึ่งที่ถูกออกแบบจากระบบเดิมและอิมพลีเมนต์โดยไม่กี่คนที่ไม่มีแนวคิด นั่นจึงทำให้มันเป็นที่นิยมมาก มันถูกเขียนเพื่อเตรียมฟังก์ชันการทำงานไว้ให้มากที่สุดในพื้นที่ที่น้อยที่สุด

  47. โครงสร้างที่มีข้อจำกัดคือ ระบบปฏิบัติการยูนิกซ์แบบแรกเริ่ม ยูนิกซ์เป็นระบบหนึ่งที่ในขั้นต้นถูกจำกัดด้วยฟังก์ชันการทำงานของฮาร์ดแวร์ มันประกอบด้วยสองส่วน คือ kernel และโปรแกรมของระบบต่าง ๆ ในส่วนของ kernel นั้นถูกแยกออกมาเป็นหน้าที่เกี่ยวกับส่วนเชื่อมและอุปกรณ์ไดรฟ์เวอร์ต่างๆ ซึ่งเพิ่มและขยายออกไปหลายปีเหมือนที่ยูนิกซ์ค่อย ๆ พัฒนา เราสามารถแสดงระบบปฏิบัติการยูนิกซ์แบบดั้งเดิมออกเป็นชั้นต่างๆ

  48. วิธีการแบ่งชั้น Layered Approach ด้วยการสนับสนุนทางฮาร์ดแวร์ที่เหมาะสม ระบบปฏิบัติการสามารถถูกแบ่งย่อยให้เป็นหลายส่วน ซึ่งเล็กกว่าและเหมาะสมมากกว่าการแบ่งสรรโดยระบบ MS-DOS หรือยูนิกซ์แบบดั้งเดิม ระบบปฏิบัติการสามารถจดจำได้มากกว่าการควบคุมคอมพิวเตอร์และแอพพลิเคชันต่างซึ่งใช้คอมพิวเตอร์นั้น ผู้อิมพลีเมนต์มีอิสระในการเปลี่ยนแปลงการทำงานภายในระบบ และการสร้างส่วนประกอบต่าง ๆ ของระบบปฏิบัติการ

  49. ระบบหนึ่ง ๆ นั้นสามารถถูกสร้างให้เป็นโมดูลได้หลายวิธี วิธีหนึ่งคือ layered approach คือการที่ระบบปฏิบัติการถูกแบ่งออกเป็นหลายระดับชั้น ในชั้นล่างสุด (ชั้นที่ 0) เป็นชั้นที่เกี่ยวกับฮาร์ดแวร์ ในชั้นสูงสุด (ชั้นที่ N) คือส่วนเชื่อมต่อกับผู้ใช้ ข้อจำกัดเหล่านี้มีสาเหตุมาจากการแบ่งชั้นที่ต่อต้านกลับเล็กน้อยในปีปัจจุบัน บางชั้นกับฟังก์ชันที่มากกว่าจะถูกออกแบบ การเตรียมโค้ดโมดูลจะเป็นประโยชน์อย่างมากขณะที่หลีกเลี่ยงปัญหาที่ยุ่งยากของการนิยามชั้นต่าง ๆ และปฏิกิริยา

More Related