Handling Faults
• Some faults are handled by “fixing” the exceptional condition
and returning to the faulting context
• Page faults cause the OS to place the missing page into memory
• Fault handler resets PC of faulting context to re-execute instruction
that caused the page fault
• Some faults are handled by notifying the process
• Fault handler changes the saved context to transfer control to a usermode
handler on return from fault
• Handler must be registered with OS
• Unix signals
• SIGSEGV, SIGALRM, SIGTERM, etc.
• The kernel may handle unrecoverable faults by killing
the user process
• Program faults with no registered handler
• Halt process, write process state to file, destroy process
• In Unix, the default action for many signals (e.g.,
SIGSEGV)
• What about faults in the kernel?
• Dereference NULL, divide by zero, undefined instruction
• These faults considered fatal, operating system crashes
• Unix panic, Windows “Blue screen of death”
• Kernel is halted, state dumped to a core file, machine locked up
System Calls
• For a user program to do something “privileged” (e.g.,
I/O) it must call an OS procedure
• Known as crossing the protection boundary, or a protected
procedure call
• Hardware provides a system call instruction that:
• Causes an exception, which vectors to a kernel handler
• Passes a parameter determining the system routine to call
• Saves caller state (PC, registers, etc.) so it can be restored
• Returning from system call restores this state
• Requires hardware support to:
• Restore saved state, reset mode, resume execution
System Call Functions
• Process control
• Create process, allocate memory
• File management
• Create, read, delete file
• Device management
• Open device, read/write device, mount device
• Information maintenance
• Get time
• Programmers generally do not use system calls directly
• They use runtime libraries (e.g., stdio.h)
Directly using system call?
• Write assembly code
• Hard
• Poor portability
• write different version for different architecture
• write different version for different OSes
• Application programmers use library
• Libraries written by elves
การจัดการความผิดปกติ•ความผิดพลาดบางอย่างจะถูกจัดการโดย "แก้ไข" เงื่อนไขพิเศษและกลับไปที่บริบทfaulting •หน้าทำให้เกิดความผิดพลาดของระบบปฏิบัติการที่จะวางหน้าที่ขาดหายไปในหน่วยความจำ•จัดการความผิดพลาดรีเซ็ตเครื่องคอมพิวเตอร์ของ faulting บริบทอีกครั้งดำเนินการเรียนการสอนที่ทำให้เกิดหน้าความผิด•ความผิดพลาดบางอย่างที่ได้รับการจัดการโดยแจ้งกระบวนการ•จัดการความผิดพลาดการเปลี่ยนแปลงบริบทที่บันทึกไว้ในการถ่ายโอนการควบคุมไปยังusermode จัดการกับผลตอบแทนจากความผิด•จัดการจะต้องลงทะเบียนกับระบบปฏิบัติการ•สัญญาณUnix • SIGSEGV, SIGALRM, SIGTERM ฯลฯ•เคอร์เนล อาจจัดการกับความผิดพลาดที่ไม่สามารถกู้คืนโดยการฆ่ากระบวนการผู้ใช้•ความผิดพลาดของโปรแกรมที่ไม่มีการจัดการการลงทะเบียน•กระบวนการหยุดเขียนรัฐกระบวนการในการยื่นทำลายกระบวนการ•ในUnix, การกระทำเริ่มต้นสำหรับสัญญาณจำนวนมาก (เช่นSIGSEGV) •สิ่งที่เกี่ยวกับความผิดพลาดใน kernel ? • NULL dereference หารด้วยศูนย์การเรียนการสอนที่ไม่ได้กำหนด•ความผิดพลาดเหล่านี้ถือว่าร้ายแรงระบบปฏิบัติการเกิดปัญหาความตื่นตระหนก• Unix, Windows "หน้าจอสีฟ้าแห่งความตาย" •เคอร์เนลหยุดรัฐทิ้งไปยังแฟ้มหลักเครื่องล็อคขึ้นโทรระบบ•สำหรับผู้ใช้โปรแกรมที่จะทำบางสิ่งบางอย่าง "สิทธิพิเศษ" (เช่นI / O) จะต้องเรียกขั้นตอนการปฏิบัติการ•เป็นที่รู้จักกันข้ามพรมแดนการป้องกันหรือการป้องกันการเรียกขั้นตอน•ฮาร์ดแวร์ให้การเรียนการสอนระบบโทร: •สาเหตุข้อยกเว้นซึ่ง เวกเตอร์ที่จะจัดการเคอร์เนล•ผ่านพารามิเตอร์ที่กำหนดระบบประจำที่จะเรียก•ประหยัดรัฐโทร(PC ทะเบียน ฯลฯ ) เพื่อที่จะสามารถเรียกคืน•กลับมาจากการเรียกคืนระบบรัฐนี้•ต้องมีการสนับสนุนฮาร์ดแวร์ที่: •เรียกคืนสถานะที่บันทึกไว้ ตั้งค่าโหมดกลับมาดำเนินการฟังก์ชั่นระบบCall •การควบคุมกระบวนการ•กระบวนการสร้างจัดสรรหน่วยความจำ•การจัดการไฟล์•สร้าง, อ่าน, ลบไฟล์•การจัดการอุปกรณ์•อุปกรณ์เปิดอ่านอุปกรณ์/ เขียนติดอุปกรณ์•การบำรุงรักษาข้อมูล•รับเวลา•โปรแกรมเมอร์โดยทั่วไปจะไม่ใช้ระบบเรียกโดยตรง•พวกเขาใช้ห้องสมุดรันไทม์ (เช่น stdio.h) โดยตรงโดยใช้สายระบบ? •เขียนรหัสประกอบ•ฮาร์ด•พกพาแย่•เขียนรุ่นที่แตกต่างกันสำหรับสถาปัตยกรรมที่แตกต่างกัน•เขียนรุ่นแตกต่างกันสำหรับระบบปฏิบัติการที่แตกต่างกัน•การเขียนโปรแกรมแอพลิเคชันใช้ห้องสมุดห้องสมุด•เขียนโดยเอลฟ์
การแปล กรุณารอสักครู่..

การจัดการข้อบกพร่องข้อบกพร่อง
- จัดการ " แก้ไข "
เงื่อนไขพิเศษและกลับไป faulting บริบท
- หน้าผิดเพราะระบบปฏิบัติการที่ขาดหายไปหน้าในความทรงจำ
- ผู้จัดการรีเซ็ตคอมพิวเตอร์ของรอยเลื่อนของเปลือกโลกผิดบริบทอีกครั้งรันสอน
ที่ทำให้หน้าผิด
- ข้อบกพร่องได้รับการจัดการโดยการแจ้งให้ทราบกระบวนการ
- ความผิดของผู้ดูแลเปลี่ยนช่วยบริบทที่จะโอนการควบคุมผู้ดูแล usermode
-
ผลตอบแทนจากผู้ดูแลผิดต้องลงทะเบียนกับระบบปฏิบัติการ Unix สัญญาณ
-
- sigsegv sigalrm sigterm และอื่น ๆ , ,
- เคอร์เนลอาจจัดการไม่สามารถกู้คืนความผิดพลาดโดยการฆ่ากระบวนการ
-
ผู้ใช้โปรแกรมผิดไม่มีผู้ดูแล
- ลงทะเบียน หยุดกระบวนการเขียนสถานะกระบวนการไฟล์ทำลายกระบวนการ
- ใน UNIX ,การกระทำเริ่มต้นสำหรับสัญญาณหลาย ( เช่น sigsegv
-
) สิ่งที่เกี่ยวกับข้อผิดพลาดในเคอร์เนล ?
- การสลายตัวตามธรรมชาติ null หารด้วยศูนย์ undefined สอน
- เหล่านี้ข้อบกพร่อง , ถือว่าร้ายแรง ระบบปฏิบัติการโครม
- ยูนิกซ์ panic Windows " หน้าจอสีฟ้าแห่งความตาย "
- เมล็ดคือหยุดรัฐทิ้งเป็นแฟ้มหลัก เครื่องล็อคขึ้น
- ระบบสายสำหรับผู้ใช้โปรแกรมจะทำอะไร " อภิสิทธิ์ "
( เช่นI / O ) มันต้องเรียก OS ขั้นตอน
- เรียกว่าข้ามขอบเขตการป้องกันหรือป้องกัน
- ขั้นตอนการโทรฮาร์ดแวร์มีการเรียกระบบการเรียนการสอน :
- สาเหตุข้อยกเว้นซึ่งเป็นพาหะในการเคอร์เนลผู้ดูแล
- ผ่านพารามิเตอร์กำหนดระบบตามปกติ โทรประหยัดโทร
- สถานะ พีซี , ทะเบียน , ฯลฯ ) เพื่อให้มันสามารถเรียกคืน
- กลับมาจากการเรียกระบบเรียกคืนรัฐ
- ต้องมีฮาร์ดแวร์ที่สนับสนุน :
- เรียกคืนบันทึกรัฐ , โหมดการตั้งค่า ต่อ
ระบบเรียกฟังก์ชันการควบคุมกระบวนการ
-
-
- สร้างกระบวนการที่จัดสรรหน่วยความจำการจัดการไฟล์
- สร้าง , อ่าน , ลบไฟล์
-
- เปิดอุปกรณ์การจัดการอุปกรณ์อ่าน / เขียนติดอุปกรณ์
- อุปกรณ์ ข้อมูลการบำรุงรักษา
-
รับโปรแกรมเมอร์ - เวลาโดยทั่วไปจะไม่ใช้ระบบสายโดยตรง
- พวกเขาใช้ห้องสมุด Runtime ( เช่น stdio . H )
โดยตรงใช้เรียกระบบ
-
- เขียนรหัสประกอบยาก -
- จนพกพาเขียนเวอร์ชั่นที่แตกต่างกันสำหรับแต่ละรุ่นแตกต่างกันสถาปัตยกรรม
เขียนต่างกันในแต่ละ oses
-
รับสมัครโปรแกรมเมอร์ใช้ห้องสมุด - ห้องสมุดที่เขียนโดยเอลฟ์
การแปล กรุณารอสักครู่..
