More Related Content
Similar to Lecture16 (20)
Lecture16
- 2. Төхөөрөмжийн драйвер бүр нэг эсвэл хэд хэдэн оролт- гаралтын төхөөрөмжийг удирдаж болно. Түүнээс гадна төхөөрөмжийн драйвер тодорхой төхөөрөмжид хамаарагдахгүй үйлдэл хийж боно. Жишээ нь оролт-гаралтын урсгалыг шифрлэх, цөмийн өгөгдлийн бүтцэд хандах эрх олгох г.м. Хэрэглэгч шинэ драйвер суулгах эрхтэй тул цөмд хандан гэмтээж болно.
- 3. Цөм ба төхөөрөмжийн драйверын дээр гүйцэтгэгч систем байрлана. Гүйцэтгэгч систем хамааралгүй архитектуртай тул өөр машин руу зөөж болно. Гүйцэтгэгч систем 3 түвшинтэй. Хамгийн доод түвшин файлын систембаобъектын диспетчерагуулна. Файлын систем файл ба каталог удирдана. Объектын диспетчер цөмд танигдах объектууд болон процесс, программын урсгал, каталог, семафор, оролт-гаралтын төхөөрөмжүүд, тактын генратор удирдана. Объектын диспетчер мөн шинэ объектыг хаана байрлуулахыг удирдана.
- 4. Дараагийн түвшин 6 үндсэн хэсэгтэй: Оролт-гаралтын диспетчер оролт-гаралтын төхөөрөмж удирдан үйлчлэнэ. Ингэхдээ файлын систем хэрэглэх ба файлын систем төхөөрөмжийн драйвер ба объектын диспетчер хэрэглэнэ. Кэшийн диспетчер файлын блоктой ажиллах ба виртуал санах ойн диспетчерт алийг нь хадгалах алийг нь цааш хэрэглэхийг зааж өгнө. Түүнчлэн санах ой дахь файлыг удирдана. Windows XP хэд хэдэн файлын системтэй ажиллаж болох ба энэ тохиолдолд кэшийн диспетчер бүх файлын системийг удирдана. Ямар нэгэн фалын блок хэрэг болоход кэшийн диспетчерт хандана.
- 5. Хэрэв кэшийн диспетчер энэ блокийг өөртөө олохгүй бол харгалзах файлын системд хүсэлт явуулна. Файл процессийн хаягийн талбарт харагдах боломжтой тул кэшийн диспетчер виртуаль санах ойн диспетчертэй харилцаж зохицоно. Виртуал санах ойн диспетчер хүсэлтээр хуудас дүүргэх виртуал санах ойн архитектур үүсгэнэ.Хуудасны кадрын физик хаягт виртуаль хаяг яаж харагдахыг удирдана. Ингэж хамгаалалтын нэмэлтдүрэм үүсгэн процесс бүр зөвхөн хаягийн талбарт харгалзах хэсэгт л хандах болгоно. Мөн виртуаль санах ойд хамаарах хэд хэдэн системийн дуудлагыг боловсруулна.
- 6. Процессын диспетчер процесс ба программын урсгал удирдах ба үүсгэх арилгахыг ч шийднэ. Аюулгүй байдлын монитор АНУ-ын шар номонд заасан шаардлагыг хангасан механизмыг залгана. График төхөөрөмжийн интерфейсмонитор ба принтер дээрх дүрсийг удирдана.Системийн дуудлага хийн хэрэглэгчийн программ монитор, принтерт мэдээлэл бичих боломж олгоно. Мөн төхөөрөмжийн драйвераар хангана.
- 7. Хамгийн дээд түвшин — системийн алба ба гүйцэтгэгч системд интерфейс олгоно. Системийн алба системийн дуудлага хүлээн аван гүйцэтгэгч системийн бусад хэсгүүдийг дуудна. Цөмийн гадна хэрэглэгчийн программ ба хүрээллийн дэд систем байрлана. Хүрээллийн дэд систем байх шаардлага нь хэрэглэгчийн программ бие даан системийн дуудлага хийж чадахгүйтэй холбоотой.
- 8. Иймээс хүрээллийн дэд систем хэрэглэгчийн программ ажиллаж болох тодорхой дуудлагын функцийг экспортлоно. Эхэндээ ийм 3 дэд систем байсан: Win32 (Windows NT, Windows 2000, Windows XP ба Windows 95/98/ME), POSIX (UNIX зөөврийн программ) ба OS/2 (OS/2 зөөврийн программ). Одоо зөвхөн Win32 дэмжиж байгаа. Windows-ийнхавсралт Win32 ашиглаж системийн дуудлага хийнэ. Win32 дэд систем Win32-ийн дуудлага хүлээн авч системийн интерфейсийн сангийн модуль ашиглана (бараг л DLL-файл — шиг).
- 9. Windows XP-гийн үзүүлэх үйлчилгээ: интерфейс —программистыг системтэй холбох хэрэгсэл (системийн дуудлагаа бүгдийг нь дэлгээгүй ч Win32 API (Application Programming Interface ) дэлгэсэн.
- 10. Виртуаль санах ойн жишээUNIX-ийн виртул санах ой UNIX-ийн санах ойн загвар маш хялбар ба процесс бүр 3 сегменттэй: код, өгөгдөл ба стек. Шугаман хаягтай машинд код санах ойн доод хэсэгт дараа нь өгөгдөл байрлана. Стек санах ойн дээд хэсэгт байрлана. Кодын хэмжээтогтмол, өгөгдөл ба стек ихэсч багасч болно.
- 11. Хуудсан санах ой дэмждэг бол хаягийн бүх талбар хэрэглэгчийн программанд дүрслэгдэх хуудсуудад хуваагдана. Өөрөөр хэлбэл программын хэмжээ физик хаягийн хэмжээнээс их байж болно. Хуудсан санах ой дэмждэггүй UNIX параллелиар хэдэн ч хамаагүй процесс гүйцэтгэхийн тулд бүхэл процессийг диск санах ой 2-ын хооронд бүхлээр нь хуулна. Файл эсвэл файлын хэсгийг процессийн хаягийн талбарт харуулж болно. Жишээ нь хэрэв 12 Кбайт хэмжээтэй файл 144К виртуал хаяганд дүрслэгдэх бол 144К хаягтай cell-д энэ файлын эхний үг байрлана. Ингэж системийн дуудлага хийхгүй файлын оролт-гаралт хийж болно.
- 12. Файлын хэмжээ виртуал хаягийн орон зайгаас их байж болох тул файлыг биш нэг хэсгийг нь л харуулж болно. Үүний тулд эхлээд файлыг нээж файлын дескриптор fd (filedescriptor)-г авна. Дескриптор файлын идентификац хийнэ. Дараа нь процесс paddr = mmap(virtual_address, length, protection, flags, fd, file_offset) дуудлага хийнэ. Энэ дуудлага virtual_address хаягнаас эхлэн файл дотор file_offset шилжилттэй, length байттай файл дуудна. Параметр flags систем виртуал хаяг сонгон дараа нь paddrпараметрт буцаана.
- 13. Дүрслэгдэж буй хэсэг хуудсанд тэнцүү байхаас гадна бүхэл тоон хуудастай байна. Параметр protection хамгаалалтын түвшинг заах ба унших, бичих, гүйцэтгэх боломжийг заана. Энэ дүрслэлийг unmap командаар арилгаж болно. Хэдэн процесс зэрэг нэг файлыг дүрсэлж болно. Ингэж хуваах 2 арга бий: 1) Бүх хуудас дундынх тул нэг процессийн хийсэн өөрчлөлт нөгөөд харагдана. 2) Хуудаснууд аль нэг процесс хуудсанд өөрчлөлт оруулаагүй байх үед л дундынх байна. Процесс бичилт хийх гэж оролдоход хамгаалалтын алдаа заан ҮС өөрийнхөө copy-г өгч бичилт хийлгэнэ. Ийм схемийг бичилтэнд хуулах (copy on write) гэнэ.
- 14. Windows XP-ийн виртуал санах ой Windows XP хэрэглэгчийн процесс бүр өөрийн виртуаль хаягийн орон зайтой байж болно. Виртуаль хаягийн урт 32 бит тул процесс бүр 4 Гбайт виртуаль хаягийн орон зайтай байна. Доод 2 Гбайт процессийн код ба өгөгдөл; дээд 2 Гбайт санах ой цөмд хандах (хязгаарлагдмал) Серверт 3 Гбайт хэрэглэгчид, 1 Гбайт цөмд Хүсэлтээр хуудас дүүргэх виртуал орон зай тогтмол хэмжээтэй (4 Кбайт, Pentium 4).
- 15. Виртуаль хуудасны 3 төлөв байна: Чөлөөтэй (free), нөөцлөгдсөн (reserved) ашиглагдаж буй (committed). Чөлөөтэй хуудас тухайн агшинд хэрэглэгдээгүй тул хандахад хуудас байхгүй гэсэн алдаа заана. Процесс эхлэхэд бүх хуудаснууд нь чөлөөтэй төлөвт байна. Энэ нь программ ба эхний өгөгдөл хаягийн орон зайд дүрслэгдэх хүртэл үргэлжилнэ. Хэрэв код эсвэл өгөгдөл хуудсанд дүрслэгдвэл ийм хуудас ашиглагдаж буй болно. Ашиглагдаж буйхуудсанд хандахад энэ хуудас үндсэн санах ойд байвал амжилттай хандалт болно.
- 16. Хэрэв хуудас үндсэн санах ойд байхгүй бол алдаа зааж ҮС дискнээс хэрэгтэй хуудсыг дуудна. Виртуаль хуудас нөөцлөгдсөн төлөвт байвал түүнд нөөцлөгдсөн төлөв өөрчлөгдөх хүртэл хандаж болохгүй. Хуудасны төлөвөөс гадна өөр атрибутууд (жишээ нь, унших, бичих, гүйцэтгэх боломж) байна. Санах ойн дээд 64 Кбайт ба доод 64 Кбайт үргэлж чөлөөтэй байх тул заагчийн алдааг хайх боломжтой байна.
- 17. Ашиглагдаж буйхуудас бүр үндсэн санах ойд байхгүй үедээ дискэн дээр shadow үүсгэн хадгалагдана. Чөлөөтэй ба нөөцлөгдсөн хуудас shadow-гүй тул хандахад алдаа заана. Дискэн дээрх shadow хуудас нэг эсвэл хэдэн хуудсан файлыг нэгтгэсэн хэлбэртэй байна. ҮС хуудсан файлын аль хэсэгт виртуаль хуудас дүрслэгдэж байгааг хянана. Тексттэй файлshadow хуудас өгөгдлийн хуудас тусгай хуудсан файл ашиглана.
- 18. Windows XP файлыг шууд виртуаль санах ойн орон зайд дүрсэлж чадна. Хэрэв файл хаягийн орон зайд дүрсдэгдсэн бол санах ойд хандан уншиж бичиж болно. Санах ойд дүрслэгдсэн файл ашиглагдаж буй файл шиг үүсэх боловч shadow хуудас хуудсан файлд биш дискэн дэх файлд агуулагдана. Иймээс файл дүрслэгдэхэд санах ой дахь верс дискэн дээрх верстэй тохирохгүй байж болно (виртуаль хаягийн орон зайн сүүлийн бичилтээс болон). Гэхдээ файлын дүрслэл арчигдахад дискэн дээрх верс шинэчлэгдэнэ.
- 20. Lоck ба unlock функцууд 30 хуудас хүртэл хэмжээтэй санах ойг хуудсанд хуваахыг зөвшөөрнө. Real-time горимд ажиллах программд энэ чанар ашиглагдана. Сүүлийн 4 функц санах ойд дүрслэгдсэн файлыг удирдана. Файлыг дүрслэхийн тулд CreateFileMapping функц ашиглан объект үүсгэнэ. Энэ функц объект дүрслэгчийг буцааж өөр процесс ашиглах боломжгүй болгоно. Сүүлийн 2 функц файлын дүрслэл үүсгэж арилгана. OpenFileMapping өөр процесс ашиглаж буй файлыг дүрсэлнэ. Ингэж 2 эсвэл хэд хэдэн процесс хаягийн орон зайгаа хамтран хэрэглэнэ.