More Related Content
Similar to Lecture12 (20)
Lecture12
- 2. Параллель боловсруулалтын виртуаль командууд Хэд хэдэн процессийг зэрэг гүйцэтгэхийн тулд тусгай виртуаль команд ашиглана. Параллель боловсруулалт хийхэд олон процессортой машин хэрэглэнэ, эсвэл процессорыг олон процесст хуваан ажиллуулна.
- 3. Процесс үүсгэх Программ аль процессийн хэсэг болон ажиллах ёстой. Энэ процесс бусад процессуудын адил хаягийн төлөв болон орон зайтай байх ба үүгээр нь дамжуулан хандана. Төлөв нь командын тоолуур, программын төлөвийн үг, стек заагч болон ерөнхий зориулалтын регистр г.м. байна. Ихэнх үйлдлийн систем динамикаар процесс үүсгэж тасална. Шинэ процесс үүсгэхийн тулд системийн дуудалт хийнэ. Энэ дуудлага нь дуудагдсан программын клон программ үүсгэнэ эсвэл анхдагч процесст шинэ процессийн анхны төлөвийг заана (ө.х. анхны хаяг өгнө). Зарим тохиолдолд анхдагч процесс үүссэн процессийг бүхэлд нь эсвэл хэсэгчлэн хянана. Анхдагч процесс виртуаль командаар үүссэн процессийг дуудах, шалгах, зогсоох, дуусгах зэргийг зөвшөөрнө. Зарим тохиолдолд анхдагч процесс үүссэн процессыг огт хянахгүй энэ 2 процесс хоорондоо хамааралгүй ажиллана.
- 4. “Уралдах” төлөв Параллель процессийг синхрончлох шаардлага их гардаг. Үндсэн санах ойн ерөнхий буферээр харилцан ажиллах 2 процесс авч үзье. 1-р процессийг producer, 2-р процессийг consumer гэе. Producer жирийн тоонууд гарган нэг нэгээр нь буферт хадгална. Consumer энэ тоонуудыг нэг нэгээр нь буферээс арилган хэвлэнэ. Энэ процесс өөр өөр хурдтай. Буфер дүүрснийг producer мэдмэгц процессийг зогсоон хүлээлгийн горимд орж consumer-ээс дохио хүлээнэ. Consumer тоо арилгаад producer –т ажиллагаагаа эхэл гэсэн дохио өгнө. Буфер хоосроход consumer ажиллагаагаа зогсооно. Producer хоосон буферт тоо байрлуулаад consumer-т дохио өгнө. Цагираг буфер ашиглавал:
- 5. in заагч дараагийн хоосон үгийг заана (producer тоо хийх) out заагч дараагийн арилгах тоог заана. in=outбол буфер хоосон (a) Producerхэдэн тоо гаргасан (б), consumer хэдэн тоо арилгасан (в), буферийн ажиллагааны завсрын шат (г-е).
- 7. Дээрх программ алдаа гаргана: буферт ганц тоо 21 дэх элементэд байхад in=22, out=21 (a). producer Р1 алхамд хялбар тоо хайж, харин consumer С5 алхамд 20 дахь байрлалаас тоо хэвлэнэ. Consumer тоо хэвлэж дуусаад С1 алхамыг шалган С2 алхамд сүүлийн тоог буферээс авна. Consumer тоог хэвлэн дараа нь С1 алхам руу очин in ба out-г шалгана (б). Consumerin ба out-г дуудсан ч шалгагаагүй байхад producer дараагийн хялбар тоог олно.
- 8. Энэ тоогоо Р3 алхамд буферт хийн Р4-д in-г нэгээр нэмэгдүүлнэ. Одоо in=23,out=22 болно. Р5 алхамд in=*next(out) болсон буюу буфер 1 л элементтэй. Үүнээс үндэслэн producer буруу дүгнэлт хийн resume процедур дуудна (в). Энэ хугацаанд consumer ажилласан хэвээр байгаа тул resume процедур дуудах нь худлаа болж producer дараагийн тоог хайна. Consumer ажиллаж байхад producer процедур дуудаж байгааг “уралдах” төлөв гэнэ. Процедур амжилттай болох эсэх нь in ба out-г шалгах уралдаанд аль нь түрүүлэхээс хамаарна.
- 11. UNIX үйлдлийн систем UNIX үйлдлийн системийг 70-аад онд Bell LabsPDP-7 компьютерт зориулж гаргасан. Анхны хувилбар нь (Ken Thompson) ассемблер дээр байсан ба 2-р хувилбараас (PDP-11) эхлэн (Dennis Ritchie) С дээр бичигдсэн. POSIX (Portable Operating System IX) буюу Р1003 стандарттай Үйлдийн систем хэрэглэгчийн интерфейс эсвэл коммандын интерпретатортой байдаг бол Unix–ийн интерпретатор тусдаа программ байна.
- 12. POSIX стандарт хэдэн хэсэгтэй ба хэсэг бүр нь UNIX-ийн тодорхой хэсгүүдийг хамарна. Р1003.1-системийн дуудлага Р1003.2- үндсэн программууд г.м.
- 14. Аппарат хангамжийг файлын системээс төхөөрөмжийн драйверууд зааглана. Гэхдээ нэг драйвер нөгөө драйверуудыг тооцолгүй бичигдсэн. Иймээс драйвер бичихэд модулийн зарчмыгбарихын тулд оролт-гаралтын урсгал (stream) гэсэн бүтцийг зохиосон. Ингэснээр хэрэглэгчийн процесс болон төхөөрөмжийн хооронд 2 урсгалт оролт-гаралт үүсгэн нэг эсвэл хэд хэдэн төхөөрөмж холбож болно.
- 15. UNIX системийн бүтэц Драйверын дээр файлын систем байх ба файл, каталог, дискний блокийн байрлал, хамгаалалтыг удирдах гэх мэт функцийг гүйцэтгэнэ. Файлын систем кэш блок (blockcache) гэж нэрлэгдэх блоктой.
- 16. Бас нэг хэсэг нь — процесс удирдах механизм. Энэ хэсэг олон үүрэгтэй ба процессуудын харилцан ажиллагааг удирдан (InterProcess Communication, IPC) синхрончилж уралдах төлөвийг үүсэхээс зайлсхийлгэнэ. Процесс удирдах код приоритетэд үндэслэн процессыг төлөвлөнө. Мөн программын тасалдалын дохио (асинхрон) боловсруулна. Түүнээс гадна санах ойг удирдана.
- 17. UNIX хуудас дүүргэх виртуал санах ойтой (жишээ нь, хэд хэдэн процесс санах ойн ерөнхий зайг ашиглаж болно). Анхны UNIX верс 24 эсвэл 25 мөр 80 ASCII-тэмдэгттэй текст горимтой байсан ба сүүлд Motif гэсэн хэрэглэгчийн график интерфейс нэмэгдсэн (Graphical UserInterface, GUI).
- 19. Аппаратын абстракцын түвшин: бодит төхөөрөмжийн дутагдалтай талуудыг арилган үйлдлийн системд абстракт төхөөрөмж болгон харуулна. Ингэж загварчлагдах төхөөрөмж: микросхемийн гадна байрлах кэш, тактын генератор, оролт-гаралтын шинүүд, тасалдалтын контроллер, DMAконтроллер. Аппаратын абстракцын түвшний дээр цөм болон төхөөрөмжүүдийн драйверийн түвшин байрлана. Цөм болон төхөөрөмжүүдийн драйвер хэрэгтэй тохиолдолд шууд аппарат хангамжид хандаж болно.
- 20. Цөм: цөмийн объектуудыг дэмжин, тасалдалт, булаах боловсруулалт, процесс синхрончлох, процессор синхрончлох, олон процессорт системд хугацааг удирдана. Цөмийн үндсэн үүрэг— үйлдлийн системийн бусад хэсгийг аппарат хангамжаас хамааралгүй буюу зөөврийн болгох. Цөм түр оролт-гаралтын төхөөрөмжид удирдлагаа шилжүүлж болох ч үргэлжүндсэн санах ойд байрлана.