SlideShare a Scribd company logo
CS207
Үйлдлийн систем
Лекц 2
Давхцал
Процесс, хуулбар процесс, хаягийн
огторгуй
А.Хүдэр
elearn.sict.edu.mn
Lec 3.29/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Үйлдлийн системийн түүх
• Яагаад судлах ёстой вэ?
– ТХ-ийн хязгаарлалт ҮС-д яаж нөлөөлснийг ойлгох?
• Хэд хэдэн ялгаатай үе шатууд:
– ТХ үнэтэй, Хүний хөдөлмөр хямд
» Eniac, … Multics
– ТХ хямд, Хүний хөдөлмөр үнэтэй
» PCs, Workstations, GUI-ийн үүсэл
– ТХ асар хямд, Хүний хөдөлмөр асар үнэтэй
» Хаа сайгүй төхөөрөмж, Өргөн тархсан сүлжээ
• ТХ өөрчлөгдөхийн хэрээр ҮС дагаж хурдтай өөрчлөгддөг.
– Багц  Multiprogramming  Timeshare  Graphical UI 
Хаа сайгүй төхөөрөмж  Cyberspace/Metaverse/??
– Шинж чанарууд аажмаар жижиг болж хувирч байна.
• Өнөөдрийн нөхцөл байдал 60-аад он шиг болж байна.
– Жижиг OS: 100K мөр/ Том: 10M мөр (5M browser!)
– 100-1000 хүн-жил
Lec 3.39/8/10 Kubiatowicz CS162 ©UCB Fall 2010
ҮС-ийн зарчим болон шинж чанарын шилжилт
Lec 3.49/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Агуулга
• ҮС-ийн бүтцийн тухай ярьж дуусгана.
• Бид олон бодлогын горимыг яаж хийдэг вэ?
• Процесс гэж юу вэ?
• Хуулбар процесс болон хаягийн огторгуй ямар
хамааралтай вэ?
Note: Some slides and/or pictures in the following are
adapted from slides ©2005 Silberschatz, Galvin, and Gagne
Note: Some slides and/or pictures in the following are
adapted from slides ©2005 Silberschatz, Galvin, and Gagne.
Many slides generated from my lecture notes by Kubiatowicz.
Lec 3.59/8/10 Kubiatowicz CS162 ©UCB Fall 2010
UNIX системийн бүтэц
User Mode
Kernel Mode
Hardware
Програм
Стандарт сан
Lec 3.69/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Микро кернел бүтэц
• Кернел хэрэглэгчийн орон зай руу аль болох ихийг зөөдөг.
– Кернелийн түвшинд ҮС-ийн жижиг цөм ажилдаг.
– ҮС үйлчилгээнүүд нь олон бие даасан процессуудаас тогтдог.
– Модулиуд нь хоорондоо мессеж дамжуулалтаар харилцдаг.
• Давуу тал:
– Микро кернелийг өргөтгөхөд хялбар
– Үйлдлийн системийг шинэ архитектур руу шилжүүлэхэд хялбар
– Илүү найдвартай (Кернелийн горимд бага хэмжээний код ажилана.)
– Алдаа тусгаарлалт (Кернелийн хэсгүүд өөр өөрөөсөө хамгаалагддаг.)
– Аюулгүй байдал сайтай
• Дутагдалтай тал:
– Энгийн байдлаар хэрэгжүүлбэл гүйцэтгэл удаан болдог.
Figure ©Wikipedia
монолитик
кернел
микрокернел
Lec 3.79/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Олон цөмтэй чипийн дизайны шинэ хандлага?
Задаргаа: ҮС-ийн задлалт
• Энгийн элементүүдийг
хэсгүүдэд задлана
– Төхөөрөмжийн
драйверууд
(Нууцлалт/Найдвартай
байдал)
– Сүлжээний үйлчилгээ
(Гүйцэтгэл)
» TCP/IP стэк
» Firewall
» Вирус илрүүлэлт
» Нэвтрэлт илрүүлэлт
– Хадгалалт (Гүйцэтгэл,
Нууцлал, Найдвартай
байдал)
– Хяналтын үйлчилгээ
» Гүйцэтгэлийн тоолуур
» Өөрийн шалгалт
– Нэвтрэлт/Орчны
үйлчилгээ(Нууцлал)
» Биометр, GPS,
Эзэмшилтийг бүртгэх
• Програмд их зай өгнө
– Нөөцийг чөлөөтэй
хэрэглэх эрх
Төх.
драйв.
Видео&
Цонхны
драйв.
Firewall
Вирус
илр.
Дэлгэц
ба
адапт
Хадгалалт
& Файлын
систем
HCI/
Дуу
Танилт
Том програмууд
Бодит хугацааны
програм
Нэвтр
Lec 3.89/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Давхцал
• “Хуулбар процесс”-ийн гүйцэтгэл
– Командыг татах/задлах/биелүүлэх бие даасан циклтэй.
– Хаягийн нэг орон зайд ажилладаг.
• Нэг бодлогын горим: Нэгэн зэрэг нэг хуулбар ажиллана.
– MS/DOS, Macintosh өмнөх хувилбар, Багц боловсруулалт
– ҮС хийж байгаа хүндээ хялбар
– Давхцал байхгүй
• Олон бодлогын горим: Нэгэн зэрэг олон хуулбар
ажиллана.
– Multics, UNIX/Linux, OS/2, Windows NT/2000/XP, Mac OS
X
Lec 3.99/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Давхцалын үндсэн асуудал
• Давхцлын үндсэн асуудалд дараах нөөцүүд багтана:
– ТХ: ганц CPU, ганц DRAM, ганц I/O төхөөрөмж
– Олон бодлогын горимын API: Хэрэглэгчид дундын нөөцийг
зөвхөн өөрийнх гэж боддог.
• OS бүх үйл ажиллагааг зохицуулах хэрэгтэй
– Олон хэрэглэгч, I/O тасалдалууд, …
• Үндсэн санаа: Виртуал машины хийсвэрлэлийг хэрэглэх
– Хүнд бодлогыг энгийн бодлогууд болгож задлах
– Програмын биелэлтийг хийсвэрлэх
– Дараа нь, эдгээр хийсвэр машинуудыг нэгтгэх тал дээр
ажиллах
• Үүнийг Дейкстра “THE system” дээрээ хэрэгжүүлсэн
– Хэдхэн мянган мөр vs нэг сая мөр OS 360 (1K алдаа)
Lec 3.109/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Татах
Биел
R0
…
R31
F0
…
F30
PC
…
Data1
Data0
Inst237
Inst236
…
Inst5
Inst4
Inst3
Inst2
Inst1
Inst0
Addr 0
Addr 232-1
Биелүүлэлтийн турш юу тохиолддог вэ?
• Биелүүлэх дараалал:
– Командыг ПТ-ээс татах
– Задлах
– Биелүүлэх (регистр ашиглаж болно.)
– Үр дүнгээ регистр/санах ой руу бичих
– ПТ = Дараагийн команд(ПТ)
– Давтах
ПТ
ПТ
ПТ
ПТ
Lec 3.119/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Олон процессорын хийсвэрлэлийг яаж бий болгох вэ?
CPU3CPU2CPU1
Дундын санах ой
• Нэг процессортой гэж үзнэ. Олон процессорын хийсвэрлэлийг яаж
бий болгох вэ?
– Хугацаагаар ээлжлүүлэх!
• Виртуал “CPU” бүр дараах элементүүдээс тогтоно:
– Програм тоологч (ПТ), Stack Pointer (SP)
– Регистр (Бүхэл тоо, Хөвөгч таслалтай, бусад…?)
• Нэг CPU-ээс дараагийнх руу яаж шилжүүлдэг вэ?
– Анхны байгаа төлвийн мужийг ПТ, SP болон регистрүүдийг
хадгалдаг.
– Шинэ төлвийн мужаас ПТ, SP болон регистрүүдийг ачаалладаг.
• Шилжилтийг яаж хийдэг вэ?
– Тоологч, өөрөө гарах, I/O, бусад
CPU1 CPU2 CPU3 CPU1 CPU2
Хугацаа
Lec 3.129/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Энгийн олон бодлогын горимын техникийн шинж чанар
• Бүх виртуал CPU-үүд бусад нөөцөө хуваалцана.
– I/O төхөөрөмжүүд ижил
– Нэг санах ойтой
• Хуваалцлын үр дүн:
– Хуулбар болгон бусад хуулбарын өгөгдөл рүү хандаж
чаддаг. (Хуваалцахад сайн, хамгаалалтанд муу)
– Хуулбарууд командаа хуваалцана
(Хуваалцахад сайн, хамгаалалтанд муу)
– Хуулбар нь ҮС-ийн функцуудыг дарж бичиж чадах уу?
• Энэ загвар нь (хамгаалалтгүй) дараах програмуудад
хэрэглэгддэг:
– Эмбэдэд програмууд
– Windows 3.1/Machintosh (Сайн дураар шилжих)
– Windows 95—ME? (Сайн дураар болон тоолуураар
шилжих)
Lec 3.139/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Орчин үеийн техник: SMT/Hyperthreading
• Техник хангамжийн арга
– Суперскаляр процессорын
шинж чанарыг ашиглан олон
процессорын хийсвэрлэлийг
үүсгэх
– Процессорын нөөцийн
ашиглалтыг сайжруулах
• Тус тусдаа CPU дээр ажил-
-лаж байгаа юм шиг төлөвлөнө.
– Гэвч, хурд шугаман байдлаар
өсөхгүй!
– Олон процессортой бол
процессор бүрийг эхэлж төлөвлөнө.
• SMT - “Simultaneous Multithreading” /арга/
– http://www.cs.washington.edu/research/smt/
– Alpha, SPARC, Pentium 4 (“Hyperthreading”), Power 5
Lec 3.149/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Хуулбаруудыг бие биенээс яаж хамгаалах вэ?
• Гурван чухал зүйл байдаг:
1. Санах ойн хамгаалалт
» Програм болгон санах ойг бүтнээр нь эзэмшихгүй.
2. I/O гаралтын хамгаалалт
» Програм болгон бүх төхөөрөмж рүү хандахгүй.
3. Процессорын хандалтын хамгаалалт:
Програмаас програм руу давуу эрхээр шилжинэ.
» Тоолуур ашиглах
» Програмын кодоос тоолуурыг идэвхгүй болгож
чадахгүй.
Lec 3.159/8/10 Kubiatowicz CS162 ©UCB Fall 2010
ProgramAddressSpace
Програмын хаягийн огторгуй
• Хаягийн огторгуйthe хандах
боломжтой хаягийн олонлог + тэдний
холбогдох төлөв:
– 32 битийн процессорт : 232 = 4 тэр бум
хаяг
• Хаягаас унших болон бичихэд юу
болдог вэ?
– Юу ч болохгү байж магадгүй
– Энгийн санах ой шиг ажиллаж
магадгүй
– Бичихийг хориглож магадгүй
– I/O үйлдлийг хориглож магадгүй
» (Memory-mapped I/O)
– ОТ үүсэж магадгүй (Алдаа)
Lec 3.169/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Хаяг хувиргалтын жишээ
Прог 1
Виртуал
хаягийн огторгуй 1
Прог 2
Виртуал
хаягийн
огторгуй 2
Код
Өгөгдөл
Овоолго
Стэк
Код
Өгөгдөл
Овоолго
Стэк
Өгөгдөл 2
Стэк 1
Овоолго 1
ҮС Ов. &
Стэк
Код 1
Стэк 2
Өгөгдөл 1
Овоолго 2
Код 2
ҮС Код
ҮС Өгөгд
Хувиргалтын
буулгалт 1
Хувиргалтын
буулгалт 2
Физик хаягийн огторгуй
Lec 3.179/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Уламжлалт UNIX-ийн процесс
• Процесс: Нэг програмыг ажиллуулахад
шаардлагатай зүйлсийг дүрслэх ҮС хийсвэрлэл.
– “Хүнд жингийн процесс” гэж нэрлэдэг.
– Өөрөөр хэлбэл: хаягийн огторгуйд ажиллаж байгаа
ганц дараалсан урсгал
• Хоёр хэсэгтэй:
– Програмын дараалсан ургсгалын биелэлт
» Код нь дараалсан ганц урсгал байдлаар биелэнэ.
» CPU-гийн регистрүүдийн төлвийг агуулна.
– Хамгаалагдсан нөөц:
» Үндсэн санах ойн төлөв (хаягийн огторгуйн агуулга)
» I/O-ийн төлөв (Жнь. Файлын тодорхойлогч)
• Чухал: Хүнд жингийн процесс-д давхцал байхгүй.
Lec 3.189/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Process
Control
Block
Процессуудыг яаж ээлжлүүлэх вэ?
• Процессын төлвийг процесс удирдах
блокод хадгална. (ПУБ):
– Энэ бол биелэлтийн болон хамгаалалтын
орчны нэг агшины зураг юм.
– Нэг зэрэг нэг ПУБ идэвхтэй байна.
• CPU-ний хугацааг процессуудад тараах
(Төлөвлөлт):
– Нэг зэрэг нэг процесс ажиллана.
– Чухал процессуудад илүү хугацаа өгнө.
• Ялгаатай процессуудад нөөцийг хувааж
өгнө. (Хамгаалалт):
– Бусад нөөцийн хандалтыг хянана.
– Жишээ нь:
» Санах ойн буулгалт: Пр болгон хаягийн
огторгуйтай байна.
» Кернел/Хэрэглэгч хослол: Системийн
дуудалтыг ашиглан I/O – руу хүссэн үедээ
хандана.
Lec 3.199/8/10 Kubiatowicz CS162 ©UCB Fall 2010
CPU-г Пр-ээс Пр руу шилжүүлэх
• Үүнийг бас “Орчин солих” гэж нэрлэдэг.
• Орчин солихыг кернел гүйцэтгэх ба бага зэрэг ачаалдаг.
– Ачаалал нь практик дээр солилтын хамгийн бага хугацааг
тогтооно.
– SMT/hyperthreading нь бага ачаалладаг, гэвч… нөөцийн
агуулга их байна.
Lec 3.209/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Пр-ын төлвийн диаграм
• Пр-ийн ажиллагаа нь дараах төлвүүдтэй.
– шинэ: Пр үүсэж байгаа
– бэлэн: Пр ажиллахаар хүлээж байгаа
– ажиллах: Командыг биелүүлж байгаа
– хүлээх: Пр ямар нэг үйл явдлыг хүлээж байгаа
– хаагдах: Пр ажиллаж дууссан.
Lec 3.219/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Процессийн төлөвлөлт
• ПУБ нь төлөв солигдоход дарааллаас дараалал руу
шилжинэ.
– Дарааллаас аль пр-ыг гаргахыг төлөвлөлтөөр шийднэ.
– Олон алгоримт буй (одоогоос хэдэн долоо хоногийн дараа)
Lec 3.229/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Пр-г яаж үүсгэх вэ?
• Шинэ ПУБ үүсгэх хэрэгтэй
– Амархан
• Хаягийн огторгуйд зориулж хуудсын хүснэгт үүсгэнэ.
– Илүү удаан
• Эцэг пр-оос өгөгдлийг хуулах (Unix-ийн fork() )
– Unix-ийн fork() нь хүү пр нь эцэг пр-ийн санах ойн
болон I/O –ийн төлвийг бүрэн хуулж авна.
– Ер нь маш удаан
– “copy on write” гэдэг оновчлол хэрэглэвэл арай хурдан
болно.
• I/O-н төлвийг хуулах (файл тодорхойлогч, г.м)
– Дунд зэргийн хугацаатай
Lec 3.239/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Пр =? Програм
• Програмаас пр нь том:
– Програм бол пр-ийн төлвийн нэг хэсэг юм.
• Програмаас пр нь жижиг:
– Програм нэгээс олон пр дуудаж чадна.
main ()
{
…;
}
A() {
…
}
main ()
{
…;
}
A() {
…
}
Heap
Stack
A
main
Program Process
Lec 3.249/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Олон Пр нэг бодлого дээр ажиллах
• Пр-г үүсгэх болон санах ойн өндөр ачаалалтай
• (Харьцангуй) Орчин солилт өндөр ачаалалтай
• Харилцааны механизм хэрэгтэй:
– Пр-ууд өөрийн хаягийн огторгуйтай.
– Дундын-Санах Ойн Буулгалт
» DRAM дээр ерөнхий буулгалтаар хэрэгжүүлнэ.
» Дундын санах ойгоор уншиж бичнэ.
– Мессеж дамжуулалт
» send() ба receive() функцтэй
» Сүлжээний орчинд ажиллана.
Proc 1 Proc 2 Proc 3
Lec 3.259/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Дундын санах ойгоор харилцах
Prog 1
Virtual
Address
Space 1
Prog 2
Virtual
Address
Space 2
Data 2
Stack 1
Heap 1
Code 1
Stack 2
Data 1
Heap 2
Code 2
Shared
• Дундын санах ой руугаа унших бичих байдлаар
харилцана.
– Харилцааны ачаалал маш бага
– Синхрончлолын асуудлууд үүсэж эхэлнэ.
Code
Data
Heap
Stack
Shared
Code
Data
Heap
Stack
Shared
Lec 3.269/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Орчин үеийн “Хөнгөн жингийн” пр-г хуулбараар
хэрэгжүүлэх
• Хуулбар: a sequential execution stream within process
(Sometimes called a “Lightweight process”)
– Process still contains a single Address Space
– No protection between threads
• Олон хуулбар: a single program made up of a number of
different concurrent activities
– Sometimes called multitasking, as in Ada…
• Why separate the concept of a thread from that of a process?
– Discuss the “thread” part of a process (concurrency)
– Separate from the “address space” (Protection)
– Heavyweight Process  Process with one thread
Lec 3.279/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Single and Multithreaded Processes
• Threads encapsulate concurrency: “Active” component
• Address spaces encapsulate protection: “Passive” part
– Keeps buggy program from trashing the system
• Why have multiple threads per address space?
Lec 3.289/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Examples of multithreaded programs
• Embedded systems
– Elevators, Planes, Medical systems, Wristwatches
– Single Program, concurrent operations
• Most modern OS kernels
– Internally concurrent because have to deal with concurrent
requests by multiple users
– But no protection needed within kernel
• Database Servers
– Access to shared data by many concurrent users
– Also background utility processing must be done
Lec 3.299/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Examples of multithreaded programs (con’t)
• Network Servers
– Concurrent requests from network
– Again, single program, multiple concurrent operations
– File server, Web server, and airline reservation systems
• Parallel Programming (More than one physical CPU)
– Split program into multiple threads for parallelism
– This is called Multiprocessing
• Some multiprocessors are actually uniprogrammed:
– Multiple threads in one address space but one program at a
time
Lec 3.309/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Thread State
• State shared by all threads in process/addr space
– Contents of memory (global variables, heap)
– I/O state (file system, network connections, etc)
• State “private” to each thread
– Kept in TCB  Thread Control Block
– CPU registers (including, program counter)
– Execution stack – what is this?
• Execution Stack
– Parameters, Temporary variables
– return PCs are kept while called procedures are executing
Lec 3.319/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Execution Stack Example
• Stack holds temporary results
• Permits recursive execution
• Crucial to modern languages
A(int tmp) {
if (tmp<2)
B();
printf(tmp);
}
B() {
C();
}
C() {
A(2);
}
A(1);
A: tmp=2
ret=C+1Stack
Pointer
Stack Growth
A: tmp=1
ret=exit
B: ret=A+2
C: ret=b+1
Lec 3.329/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Classification
• Real operating systems have either
– One or many address spaces
– One or many threads per address space
• Did Windows 95/98/ME have real memory protection?
– No: Users could overwrite process tables/System DLLs
Mach, OS/2, Linux
Windows 9x???
Win NT to XP,
Solaris, HP-UX, OS X
Embedded systems
(Geoworks, VxWorks,
JavaOS,etc)
JavaOS, Pilot(PC)
Traditional UNIX
MS/DOS, early
Macintosh
Many
One
# threads
Per AS:
ManyOne
#ofaddr
spaces:
Lec 3.339/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Java APPS
OS
Hardware
Java OS
Structure
Example: Implementation Java OS
• Many threads, one Address Space
• Why another OS?
– Recommended Minimum memory sizes:
» UNIX + X Windows: 32MB
» Windows 98: 16-32MB
» Windows NT: 32-64MB
» Windows 2000/XP: 64-128MB
– What if we want a cheap network
point-of-sale computer?
» Say need 1000 terminals
» Want < 8MB
• What language to write this OS in?
– C/C++/ASM? Not terribly high-level. Hard to
debug.
– Java/Lisp? Not quite sufficient – need direct
access to HW/memory management
Lec 3.349/8/10 Kubiatowicz CS162 ©UCB Fall 2010
Summary
• Processes have two parts
– Threads (Concurrency)
– Address Spaces (Protection)
• Concurrency accomplished by multiplexing CPU Time:
– Unloading current thread (PC, registers)
– Loading new thread (PC, registers)
– Such context switching may be voluntary (yield(), I/O
operations) or involuntary (timer, other interrupts)
• Protection accomplished restricting access:
– Memory mapping isolates processes from each other
– Dual-mode for isolating I/O, other resources
• Book talks about processes
– When this concerns concurrency, really talking about thread
portion of a process
– When this concerns protection, talking about address space
portion of a process

More Related Content

What's hot

Lec12 translation
Lec12 translationLec12 translation
Lec12 translation
Khuder Altangerel
 
005 өгөгдлийн нөөцийн удирдлага
005 өгөгдлийн нөөцийн удирдлага005 өгөгдлийн нөөцийн удирдлага
005 өгөгдлийн нөөцийн удирдлагаBobby Wang
 
Lec13 cachetlb
Lec13 cachetlbLec13 cachetlb
Lec13 cachetlb
Khuder Altangerel
 
Lec08 readerwriter
Lec08 readerwriterLec08 readerwriter
Lec08 readerwriter
Khuder Altangerel
 
санах ой
санах ойсанах ой
санах ой
shulam
 
үйлдлийн систем
үйлдлийн системүйлдлийн систем
үйлдлийн системshulam
 
Дэлгүүрийн кассын систем
Дэлгүүрийн кассын системДэлгүүрийн кассын систем
Дэлгүүрийн кассын системAltangerel Bilguun
 
Powerpoint program
Powerpoint programPowerpoint program
Powerpoint program
Pbayrmaa
 
Lec15 pagereplace last
Lec15 pagereplace lastLec15 pagereplace last
Lec15 pagereplace last
Khuder Altangerel
 
файлын систем бүгд
файлын систем бүгдфайлын систем бүгд
файлын систем бүгд
Baljinnyam Sonompil
 
Програм хангамжийн компаниудын дунд хийсэн судалгаа 2011
Програм хангамжийн компаниудын дунд хийсэн судалгаа 2011Програм хангамжийн компаниудын дунд хийсэн судалгаа 2011
Програм хангамжийн компаниудын дунд хийсэн судалгаа 2011Mongolian Software Industry Association
 
2 техник хангамж ба программ хангамж
2 техник хангамж ба программ хангамж2 техник хангамж ба программ хангамж
2 техник хангамж ба программ хангамжAura Faceboo
 
11-LESSON-01-2021.09
11-LESSON-01-2021.0911-LESSON-01-2021.09
11-LESSON-01-2021.09
Dagvarichin Amaraa
 
хэрэглээний програмууд ба системийн програмууд
хэрэглээний програмууд ба системийн програмуудхэрэглээний програмууд ба системийн програмууд
хэрэглээний програмууд ба системийн програмуудTsetsenkhuu Otgonbayar
 
Lecture 2
Lecture  2Lecture  2
Lecture 2
csms_student
 
компьютерийн үндсэн төхөөрөмжүүд
компьютерийн үндсэн төхөөрөмжүүдкомпьютерийн үндсэн төхөөрөмжүүд
компьютерийн үндсэн төхөөрөмжүүдKhishighuu Myanganbuu
 

What's hot (20)

Lec12 translation
Lec12 translationLec12 translation
Lec12 translation
 
005 өгөгдлийн нөөцийн удирдлага
005 өгөгдлийн нөөцийн удирдлага005 өгөгдлийн нөөцийн удирдлага
005 өгөгдлийн нөөцийн удирдлага
 
Lec13 cachetlb
Lec13 cachetlbLec13 cachetlb
Lec13 cachetlb
 
Lec08 readerwriter
Lec08 readerwriterLec08 readerwriter
Lec08 readerwriter
 
санах ой
санах ойсанах ой
санах ой
 
үйлдлийн систем
үйлдлийн системүйлдлийн систем
үйлдлийн систем
 
Дэлгүүрийн кассын систем
Дэлгүүрийн кассын системДэлгүүрийн кассын систем
Дэлгүүрийн кассын систем
 
лекц-1
лекц-1лекц-1
лекц-1
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Powerpoint program
Powerpoint programPowerpoint program
Powerpoint program
 
Lec15 pagereplace last
Lec15 pagereplace lastLec15 pagereplace last
Lec15 pagereplace last
 
файлын систем бүгд
файлын систем бүгдфайлын систем бүгд
файлын систем бүгд
 
Lecture 3 os
Lecture 3 osLecture 3 os
Lecture 3 os
 
Програм хангамжийн компаниудын дунд хийсэн судалгаа 2011
Програм хангамжийн компаниудын дунд хийсэн судалгаа 2011Програм хангамжийн компаниудын дунд хийсэн судалгаа 2011
Програм хангамжийн компаниудын дунд хийсэн судалгаа 2011
 
2 техник хангамж ба программ хангамж
2 техник хангамж ба программ хангамж2 техник хангамж ба программ хангамж
2 техник хангамж ба программ хангамж
 
11-LESSON-01-2021.09
11-LESSON-01-2021.0911-LESSON-01-2021.09
11-LESSON-01-2021.09
 
хэрэглээний програмууд ба системийн програмууд
хэрэглээний програмууд ба системийн програмуудхэрэглээний програмууд ба системийн програмууд
хэрэглээний програмууд ба системийн програмууд
 
Lecture 2
Lecture  2Lecture  2
Lecture 2
 
3
33
3
 
компьютерийн үндсэн төхөөрөмжүүд
компьютерийн үндсэн төхөөрөмжүүдкомпьютерийн үндсэн төхөөрөмжүүд
компьютерийн үндсэн төхөөрөмжүүд
 

Similar to Lec03 concurrency (2)

Lec06 synchronization
Lec06 synchronizationLec06 synchronization
Lec06 synchronization
Khuder Altangerel
 
Lec07 exclusion
Lec07 exclusionLec07 exclusion
Lec07 exclusion
Khuder Altangerel
 
Lec05 cooperating (1)
Lec05 cooperating (1)Lec05 cooperating (1)
Lec05 cooperating (1)
Khuder Altangerel
 
Computerin tehnikin undes 1hicheeliin lektsiin huraangui
Computerin tehnikin undes 1hicheeliin lektsiin huraanguiComputerin tehnikin undes 1hicheeliin lektsiin huraangui
Computerin tehnikin undes 1hicheeliin lektsiin huraanguiE-Gazarchin Online University
 
Lec16 io
Lec16 ioLec16 io
012 sec arch fw
012 sec arch fw012 sec arch fw
012 sec arch fw
Babaa Naya
 
012 sec arch fw
012 sec arch fw012 sec arch fw
012 sec arch fw
Babaa Naya
 
лекц 1 компьютерийн бүтэц зохион байгуулалт
лекц 1 компьютерийн бүтэц зохион байгуулалтлекц 1 компьютерийн бүтэц зохион байгуулалт
лекц 1 компьютерийн бүтэц зохион байгуулалт
E-Gazarchin Online University
 
Компьютерийн бүтэц, зохион байгуулалт №1-2
Компьютерийн  бүтэц, зохион байгуулалт №1-2Компьютерийн  бүтэц, зохион байгуулалт №1-2
Компьютерийн бүтэц, зохион байгуулалт №1-2
EnkhjargalDashdorjEn
 
Cs101 lecture2
Cs101 lecture2Cs101 lecture2
Cs101 lecture2
Purev
 
Its150 l1
Its150 l1Its150 l1
Its150 l1orgil
 

Similar to Lec03 concurrency (2) (20)

Lec06 synchronization
Lec06 synchronizationLec06 synchronization
Lec06 synchronization
 
Lec07 exclusion
Lec07 exclusionLec07 exclusion
Lec07 exclusion
 
Lec05 cooperating (1)
Lec05 cooperating (1)Lec05 cooperating (1)
Lec05 cooperating (1)
 
It101 1
It101 1It101 1
It101 1
 
Computerin tehnikin undes 1hicheeliin lektsiin huraangui
Computerin tehnikin undes 1hicheeliin lektsiin huraanguiComputerin tehnikin undes 1hicheeliin lektsiin huraangui
Computerin tehnikin undes 1hicheeliin lektsiin huraangui
 
It101-3
It101-3It101-3
It101-3
 
Lec16 io
Lec16 ioLec16 io
Lec16 io
 
IP hicheel 1
IP hicheel 1IP hicheel 1
IP hicheel 1
 
012 sec arch fw
012 sec arch fw012 sec arch fw
012 sec arch fw
 
Seminar_presentation
Seminar_presentationSeminar_presentation
Seminar_presentation
 
012 sec arch fw
012 sec arch fw012 sec arch fw
012 sec arch fw
 
Mtms lec-2
Mtms lec-2Mtms lec-2
Mtms lec-2
 
лекц 1 компьютерийн бүтэц зохион байгуулалт
лекц 1 компьютерийн бүтэц зохион байгуулалтлекц 1 компьютерийн бүтэц зохион байгуулалт
лекц 1 компьютерийн бүтэц зохион байгуулалт
 
Компьютерийн бүтэц, зохион байгуулалт №1-2
Компьютерийн  бүтэц, зохион байгуулалт №1-2Компьютерийн  бүтэц, зохион байгуулалт №1-2
Компьютерийн бүтэц, зохион байгуулалт №1-2
 
Cs101 lecture2
Cs101 lecture2Cs101 lecture2
Cs101 lecture2
 
Lab 8
Lab 8Lab 8
Lab 8
 
Computer
ComputerComputer
Computer
 
Instruction sets
Instruction setsInstruction sets
Instruction sets
 
Its150 l1
Its150 l1Its150 l1
Its150 l1
 
It101 lect2
It101 lect2It101 lect2
It101 lect2
 

More from Khuder Altangerel

IOI 2016 "Молекул" бодлогын бодолт
IOI 2016 "Молекул" бодлогын бодолтIOI 2016 "Молекул" бодлогын бодолт
IOI 2016 "Молекул" бодлогын бодолт
Khuder Altangerel
 
Марковын далд загвар
Марковын далд загварМарковын далд загвар
Марковын далд загвар
Khuder Altangerel
 
МХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадвар
МХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадварМХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадвар
МХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадвар
Khuder Altangerel
 
u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7
Khuder Altangerel
 
u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6
Khuder Altangerel
 
u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5
Khuder Altangerel
 
u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4
Khuder Altangerel
 
u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №3u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №3
Khuder Altangerel
 
u.cs101 "Алгоритм ба програмчлал" Лекц №2
u.cs101 "Алгоритм ба програмчлал" Лекц №2u.cs101 "Алгоритм ба програмчлал" Лекц №2
u.cs101 "Алгоритм ба програмчлал" Лекц №2
Khuder Altangerel
 
u.cs101 "Алгоритм ба програмчлал" Лекц №1
u.cs101 "Алгоритм ба програмчлал" Лекц №1u.cs101 "Алгоритм ба програмчлал" Лекц №1
u.cs101 "Алгоритм ба програмчлал" Лекц №1
Khuder Altangerel
 

More from Khuder Altangerel (10)

IOI 2016 "Молекул" бодлогын бодолт
IOI 2016 "Молекул" бодлогын бодолтIOI 2016 "Молекул" бодлогын бодолт
IOI 2016 "Молекул" бодлогын бодолт
 
Марковын далд загвар
Марковын далд загварМарковын далд загвар
Марковын далд загвар
 
МХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадвар
МХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадварМХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадвар
МХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадвар
 
u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7
 
u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6
 
u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5
 
u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4
 
u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №3u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №3
 
u.cs101 "Алгоритм ба програмчлал" Лекц №2
u.cs101 "Алгоритм ба програмчлал" Лекц №2u.cs101 "Алгоритм ба програмчлал" Лекц №2
u.cs101 "Алгоритм ба програмчлал" Лекц №2
 
u.cs101 "Алгоритм ба програмчлал" Лекц №1
u.cs101 "Алгоритм ба програмчлал" Лекц №1u.cs101 "Алгоритм ба програмчлал" Лекц №1
u.cs101 "Алгоритм ба програмчлал" Лекц №1
 

Lec03 concurrency (2)

  • 1. CS207 Үйлдлийн систем Лекц 2 Давхцал Процесс, хуулбар процесс, хаягийн огторгуй А.Хүдэр elearn.sict.edu.mn
  • 2. Lec 3.29/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Үйлдлийн системийн түүх • Яагаад судлах ёстой вэ? – ТХ-ийн хязгаарлалт ҮС-д яаж нөлөөлснийг ойлгох? • Хэд хэдэн ялгаатай үе шатууд: – ТХ үнэтэй, Хүний хөдөлмөр хямд » Eniac, … Multics – ТХ хямд, Хүний хөдөлмөр үнэтэй » PCs, Workstations, GUI-ийн үүсэл – ТХ асар хямд, Хүний хөдөлмөр асар үнэтэй » Хаа сайгүй төхөөрөмж, Өргөн тархсан сүлжээ • ТХ өөрчлөгдөхийн хэрээр ҮС дагаж хурдтай өөрчлөгддөг. – Багц  Multiprogramming  Timeshare  Graphical UI  Хаа сайгүй төхөөрөмж  Cyberspace/Metaverse/?? – Шинж чанарууд аажмаар жижиг болж хувирч байна. • Өнөөдрийн нөхцөл байдал 60-аад он шиг болж байна. – Жижиг OS: 100K мөр/ Том: 10M мөр (5M browser!) – 100-1000 хүн-жил
  • 3. Lec 3.39/8/10 Kubiatowicz CS162 ©UCB Fall 2010 ҮС-ийн зарчим болон шинж чанарын шилжилт
  • 4. Lec 3.49/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Агуулга • ҮС-ийн бүтцийн тухай ярьж дуусгана. • Бид олон бодлогын горимыг яаж хийдэг вэ? • Процесс гэж юу вэ? • Хуулбар процесс болон хаягийн огторгуй ямар хамааралтай вэ? Note: Some slides and/or pictures in the following are adapted from slides ©2005 Silberschatz, Galvin, and Gagne Note: Some slides and/or pictures in the following are adapted from slides ©2005 Silberschatz, Galvin, and Gagne. Many slides generated from my lecture notes by Kubiatowicz.
  • 5. Lec 3.59/8/10 Kubiatowicz CS162 ©UCB Fall 2010 UNIX системийн бүтэц User Mode Kernel Mode Hardware Програм Стандарт сан
  • 6. Lec 3.69/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Микро кернел бүтэц • Кернел хэрэглэгчийн орон зай руу аль болох ихийг зөөдөг. – Кернелийн түвшинд ҮС-ийн жижиг цөм ажилдаг. – ҮС үйлчилгээнүүд нь олон бие даасан процессуудаас тогтдог. – Модулиуд нь хоорондоо мессеж дамжуулалтаар харилцдаг. • Давуу тал: – Микро кернелийг өргөтгөхөд хялбар – Үйлдлийн системийг шинэ архитектур руу шилжүүлэхэд хялбар – Илүү найдвартай (Кернелийн горимд бага хэмжээний код ажилана.) – Алдаа тусгаарлалт (Кернелийн хэсгүүд өөр өөрөөсөө хамгаалагддаг.) – Аюулгүй байдал сайтай • Дутагдалтай тал: – Энгийн байдлаар хэрэгжүүлбэл гүйцэтгэл удаан болдог. Figure ©Wikipedia монолитик кернел микрокернел
  • 7. Lec 3.79/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Олон цөмтэй чипийн дизайны шинэ хандлага? Задаргаа: ҮС-ийн задлалт • Энгийн элементүүдийг хэсгүүдэд задлана – Төхөөрөмжийн драйверууд (Нууцлалт/Найдвартай байдал) – Сүлжээний үйлчилгээ (Гүйцэтгэл) » TCP/IP стэк » Firewall » Вирус илрүүлэлт » Нэвтрэлт илрүүлэлт – Хадгалалт (Гүйцэтгэл, Нууцлал, Найдвартай байдал) – Хяналтын үйлчилгээ » Гүйцэтгэлийн тоолуур » Өөрийн шалгалт – Нэвтрэлт/Орчны үйлчилгээ(Нууцлал) » Биометр, GPS, Эзэмшилтийг бүртгэх • Програмд их зай өгнө – Нөөцийг чөлөөтэй хэрэглэх эрх Төх. драйв. Видео& Цонхны драйв. Firewall Вирус илр. Дэлгэц ба адапт Хадгалалт & Файлын систем HCI/ Дуу Танилт Том програмууд Бодит хугацааны програм Нэвтр
  • 8. Lec 3.89/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Давхцал • “Хуулбар процесс”-ийн гүйцэтгэл – Командыг татах/задлах/биелүүлэх бие даасан циклтэй. – Хаягийн нэг орон зайд ажилладаг. • Нэг бодлогын горим: Нэгэн зэрэг нэг хуулбар ажиллана. – MS/DOS, Macintosh өмнөх хувилбар, Багц боловсруулалт – ҮС хийж байгаа хүндээ хялбар – Давхцал байхгүй • Олон бодлогын горим: Нэгэн зэрэг олон хуулбар ажиллана. – Multics, UNIX/Linux, OS/2, Windows NT/2000/XP, Mac OS X
  • 9. Lec 3.99/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Давхцалын үндсэн асуудал • Давхцлын үндсэн асуудалд дараах нөөцүүд багтана: – ТХ: ганц CPU, ганц DRAM, ганц I/O төхөөрөмж – Олон бодлогын горимын API: Хэрэглэгчид дундын нөөцийг зөвхөн өөрийнх гэж боддог. • OS бүх үйл ажиллагааг зохицуулах хэрэгтэй – Олон хэрэглэгч, I/O тасалдалууд, … • Үндсэн санаа: Виртуал машины хийсвэрлэлийг хэрэглэх – Хүнд бодлогыг энгийн бодлогууд болгож задлах – Програмын биелэлтийг хийсвэрлэх – Дараа нь, эдгээр хийсвэр машинуудыг нэгтгэх тал дээр ажиллах • Үүнийг Дейкстра “THE system” дээрээ хэрэгжүүлсэн – Хэдхэн мянган мөр vs нэг сая мөр OS 360 (1K алдаа)
  • 10. Lec 3.109/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Татах Биел R0 … R31 F0 … F30 PC … Data1 Data0 Inst237 Inst236 … Inst5 Inst4 Inst3 Inst2 Inst1 Inst0 Addr 0 Addr 232-1 Биелүүлэлтийн турш юу тохиолддог вэ? • Биелүүлэх дараалал: – Командыг ПТ-ээс татах – Задлах – Биелүүлэх (регистр ашиглаж болно.) – Үр дүнгээ регистр/санах ой руу бичих – ПТ = Дараагийн команд(ПТ) – Давтах ПТ ПТ ПТ ПТ
  • 11. Lec 3.119/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Олон процессорын хийсвэрлэлийг яаж бий болгох вэ? CPU3CPU2CPU1 Дундын санах ой • Нэг процессортой гэж үзнэ. Олон процессорын хийсвэрлэлийг яаж бий болгох вэ? – Хугацаагаар ээлжлүүлэх! • Виртуал “CPU” бүр дараах элементүүдээс тогтоно: – Програм тоологч (ПТ), Stack Pointer (SP) – Регистр (Бүхэл тоо, Хөвөгч таслалтай, бусад…?) • Нэг CPU-ээс дараагийнх руу яаж шилжүүлдэг вэ? – Анхны байгаа төлвийн мужийг ПТ, SP болон регистрүүдийг хадгалдаг. – Шинэ төлвийн мужаас ПТ, SP болон регистрүүдийг ачаалладаг. • Шилжилтийг яаж хийдэг вэ? – Тоологч, өөрөө гарах, I/O, бусад CPU1 CPU2 CPU3 CPU1 CPU2 Хугацаа
  • 12. Lec 3.129/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Энгийн олон бодлогын горимын техникийн шинж чанар • Бүх виртуал CPU-үүд бусад нөөцөө хуваалцана. – I/O төхөөрөмжүүд ижил – Нэг санах ойтой • Хуваалцлын үр дүн: – Хуулбар болгон бусад хуулбарын өгөгдөл рүү хандаж чаддаг. (Хуваалцахад сайн, хамгаалалтанд муу) – Хуулбарууд командаа хуваалцана (Хуваалцахад сайн, хамгаалалтанд муу) – Хуулбар нь ҮС-ийн функцуудыг дарж бичиж чадах уу? • Энэ загвар нь (хамгаалалтгүй) дараах програмуудад хэрэглэгддэг: – Эмбэдэд програмууд – Windows 3.1/Machintosh (Сайн дураар шилжих) – Windows 95—ME? (Сайн дураар болон тоолуураар шилжих)
  • 13. Lec 3.139/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Орчин үеийн техник: SMT/Hyperthreading • Техник хангамжийн арга – Суперскаляр процессорын шинж чанарыг ашиглан олон процессорын хийсвэрлэлийг үүсгэх – Процессорын нөөцийн ашиглалтыг сайжруулах • Тус тусдаа CPU дээр ажил- -лаж байгаа юм шиг төлөвлөнө. – Гэвч, хурд шугаман байдлаар өсөхгүй! – Олон процессортой бол процессор бүрийг эхэлж төлөвлөнө. • SMT - “Simultaneous Multithreading” /арга/ – http://www.cs.washington.edu/research/smt/ – Alpha, SPARC, Pentium 4 (“Hyperthreading”), Power 5
  • 14. Lec 3.149/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Хуулбаруудыг бие биенээс яаж хамгаалах вэ? • Гурван чухал зүйл байдаг: 1. Санах ойн хамгаалалт » Програм болгон санах ойг бүтнээр нь эзэмшихгүй. 2. I/O гаралтын хамгаалалт » Програм болгон бүх төхөөрөмж рүү хандахгүй. 3. Процессорын хандалтын хамгаалалт: Програмаас програм руу давуу эрхээр шилжинэ. » Тоолуур ашиглах » Програмын кодоос тоолуурыг идэвхгүй болгож чадахгүй.
  • 15. Lec 3.159/8/10 Kubiatowicz CS162 ©UCB Fall 2010 ProgramAddressSpace Програмын хаягийн огторгуй • Хаягийн огторгуйthe хандах боломжтой хаягийн олонлог + тэдний холбогдох төлөв: – 32 битийн процессорт : 232 = 4 тэр бум хаяг • Хаягаас унших болон бичихэд юу болдог вэ? – Юу ч болохгү байж магадгүй – Энгийн санах ой шиг ажиллаж магадгүй – Бичихийг хориглож магадгүй – I/O үйлдлийг хориглож магадгүй » (Memory-mapped I/O) – ОТ үүсэж магадгүй (Алдаа)
  • 16. Lec 3.169/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Хаяг хувиргалтын жишээ Прог 1 Виртуал хаягийн огторгуй 1 Прог 2 Виртуал хаягийн огторгуй 2 Код Өгөгдөл Овоолго Стэк Код Өгөгдөл Овоолго Стэк Өгөгдөл 2 Стэк 1 Овоолго 1 ҮС Ов. & Стэк Код 1 Стэк 2 Өгөгдөл 1 Овоолго 2 Код 2 ҮС Код ҮС Өгөгд Хувиргалтын буулгалт 1 Хувиргалтын буулгалт 2 Физик хаягийн огторгуй
  • 17. Lec 3.179/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Уламжлалт UNIX-ийн процесс • Процесс: Нэг програмыг ажиллуулахад шаардлагатай зүйлсийг дүрслэх ҮС хийсвэрлэл. – “Хүнд жингийн процесс” гэж нэрлэдэг. – Өөрөөр хэлбэл: хаягийн огторгуйд ажиллаж байгаа ганц дараалсан урсгал • Хоёр хэсэгтэй: – Програмын дараалсан ургсгалын биелэлт » Код нь дараалсан ганц урсгал байдлаар биелэнэ. » CPU-гийн регистрүүдийн төлвийг агуулна. – Хамгаалагдсан нөөц: » Үндсэн санах ойн төлөв (хаягийн огторгуйн агуулга) » I/O-ийн төлөв (Жнь. Файлын тодорхойлогч) • Чухал: Хүнд жингийн процесс-д давхцал байхгүй.
  • 18. Lec 3.189/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Process Control Block Процессуудыг яаж ээлжлүүлэх вэ? • Процессын төлвийг процесс удирдах блокод хадгална. (ПУБ): – Энэ бол биелэлтийн болон хамгаалалтын орчны нэг агшины зураг юм. – Нэг зэрэг нэг ПУБ идэвхтэй байна. • CPU-ний хугацааг процессуудад тараах (Төлөвлөлт): – Нэг зэрэг нэг процесс ажиллана. – Чухал процессуудад илүү хугацаа өгнө. • Ялгаатай процессуудад нөөцийг хувааж өгнө. (Хамгаалалт): – Бусад нөөцийн хандалтыг хянана. – Жишээ нь: » Санах ойн буулгалт: Пр болгон хаягийн огторгуйтай байна. » Кернел/Хэрэглэгч хослол: Системийн дуудалтыг ашиглан I/O – руу хүссэн үедээ хандана.
  • 19. Lec 3.199/8/10 Kubiatowicz CS162 ©UCB Fall 2010 CPU-г Пр-ээс Пр руу шилжүүлэх • Үүнийг бас “Орчин солих” гэж нэрлэдэг. • Орчин солихыг кернел гүйцэтгэх ба бага зэрэг ачаалдаг. – Ачаалал нь практик дээр солилтын хамгийн бага хугацааг тогтооно. – SMT/hyperthreading нь бага ачаалладаг, гэвч… нөөцийн агуулга их байна.
  • 20. Lec 3.209/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Пр-ын төлвийн диаграм • Пр-ийн ажиллагаа нь дараах төлвүүдтэй. – шинэ: Пр үүсэж байгаа – бэлэн: Пр ажиллахаар хүлээж байгаа – ажиллах: Командыг биелүүлж байгаа – хүлээх: Пр ямар нэг үйл явдлыг хүлээж байгаа – хаагдах: Пр ажиллаж дууссан.
  • 21. Lec 3.219/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Процессийн төлөвлөлт • ПУБ нь төлөв солигдоход дарааллаас дараалал руу шилжинэ. – Дарааллаас аль пр-ыг гаргахыг төлөвлөлтөөр шийднэ. – Олон алгоримт буй (одоогоос хэдэн долоо хоногийн дараа)
  • 22. Lec 3.229/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Пр-г яаж үүсгэх вэ? • Шинэ ПУБ үүсгэх хэрэгтэй – Амархан • Хаягийн огторгуйд зориулж хуудсын хүснэгт үүсгэнэ. – Илүү удаан • Эцэг пр-оос өгөгдлийг хуулах (Unix-ийн fork() ) – Unix-ийн fork() нь хүү пр нь эцэг пр-ийн санах ойн болон I/O –ийн төлвийг бүрэн хуулж авна. – Ер нь маш удаан – “copy on write” гэдэг оновчлол хэрэглэвэл арай хурдан болно. • I/O-н төлвийг хуулах (файл тодорхойлогч, г.м) – Дунд зэргийн хугацаатай
  • 23. Lec 3.239/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Пр =? Програм • Програмаас пр нь том: – Програм бол пр-ийн төлвийн нэг хэсэг юм. • Програмаас пр нь жижиг: – Програм нэгээс олон пр дуудаж чадна. main () { …; } A() { … } main () { …; } A() { … } Heap Stack A main Program Process
  • 24. Lec 3.249/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Олон Пр нэг бодлого дээр ажиллах • Пр-г үүсгэх болон санах ойн өндөр ачаалалтай • (Харьцангуй) Орчин солилт өндөр ачаалалтай • Харилцааны механизм хэрэгтэй: – Пр-ууд өөрийн хаягийн огторгуйтай. – Дундын-Санах Ойн Буулгалт » DRAM дээр ерөнхий буулгалтаар хэрэгжүүлнэ. » Дундын санах ойгоор уншиж бичнэ. – Мессеж дамжуулалт » send() ба receive() функцтэй » Сүлжээний орчинд ажиллана. Proc 1 Proc 2 Proc 3
  • 25. Lec 3.259/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Дундын санах ойгоор харилцах Prog 1 Virtual Address Space 1 Prog 2 Virtual Address Space 2 Data 2 Stack 1 Heap 1 Code 1 Stack 2 Data 1 Heap 2 Code 2 Shared • Дундын санах ой руугаа унших бичих байдлаар харилцана. – Харилцааны ачаалал маш бага – Синхрончлолын асуудлууд үүсэж эхэлнэ. Code Data Heap Stack Shared Code Data Heap Stack Shared
  • 26. Lec 3.269/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Орчин үеийн “Хөнгөн жингийн” пр-г хуулбараар хэрэгжүүлэх • Хуулбар: a sequential execution stream within process (Sometimes called a “Lightweight process”) – Process still contains a single Address Space – No protection between threads • Олон хуулбар: a single program made up of a number of different concurrent activities – Sometimes called multitasking, as in Ada… • Why separate the concept of a thread from that of a process? – Discuss the “thread” part of a process (concurrency) – Separate from the “address space” (Protection) – Heavyweight Process  Process with one thread
  • 27. Lec 3.279/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Single and Multithreaded Processes • Threads encapsulate concurrency: “Active” component • Address spaces encapsulate protection: “Passive” part – Keeps buggy program from trashing the system • Why have multiple threads per address space?
  • 28. Lec 3.289/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Examples of multithreaded programs • Embedded systems – Elevators, Planes, Medical systems, Wristwatches – Single Program, concurrent operations • Most modern OS kernels – Internally concurrent because have to deal with concurrent requests by multiple users – But no protection needed within kernel • Database Servers – Access to shared data by many concurrent users – Also background utility processing must be done
  • 29. Lec 3.299/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Examples of multithreaded programs (con’t) • Network Servers – Concurrent requests from network – Again, single program, multiple concurrent operations – File server, Web server, and airline reservation systems • Parallel Programming (More than one physical CPU) – Split program into multiple threads for parallelism – This is called Multiprocessing • Some multiprocessors are actually uniprogrammed: – Multiple threads in one address space but one program at a time
  • 30. Lec 3.309/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Thread State • State shared by all threads in process/addr space – Contents of memory (global variables, heap) – I/O state (file system, network connections, etc) • State “private” to each thread – Kept in TCB  Thread Control Block – CPU registers (including, program counter) – Execution stack – what is this? • Execution Stack – Parameters, Temporary variables – return PCs are kept while called procedures are executing
  • 31. Lec 3.319/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Execution Stack Example • Stack holds temporary results • Permits recursive execution • Crucial to modern languages A(int tmp) { if (tmp<2) B(); printf(tmp); } B() { C(); } C() { A(2); } A(1); A: tmp=2 ret=C+1Stack Pointer Stack Growth A: tmp=1 ret=exit B: ret=A+2 C: ret=b+1
  • 32. Lec 3.329/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Classification • Real operating systems have either – One or many address spaces – One or many threads per address space • Did Windows 95/98/ME have real memory protection? – No: Users could overwrite process tables/System DLLs Mach, OS/2, Linux Windows 9x??? Win NT to XP, Solaris, HP-UX, OS X Embedded systems (Geoworks, VxWorks, JavaOS,etc) JavaOS, Pilot(PC) Traditional UNIX MS/DOS, early Macintosh Many One # threads Per AS: ManyOne #ofaddr spaces:
  • 33. Lec 3.339/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Java APPS OS Hardware Java OS Structure Example: Implementation Java OS • Many threads, one Address Space • Why another OS? – Recommended Minimum memory sizes: » UNIX + X Windows: 32MB » Windows 98: 16-32MB » Windows NT: 32-64MB » Windows 2000/XP: 64-128MB – What if we want a cheap network point-of-sale computer? » Say need 1000 terminals » Want < 8MB • What language to write this OS in? – C/C++/ASM? Not terribly high-level. Hard to debug. – Java/Lisp? Not quite sufficient – need direct access to HW/memory management
  • 34. Lec 3.349/8/10 Kubiatowicz CS162 ©UCB Fall 2010 Summary • Processes have two parts – Threads (Concurrency) – Address Spaces (Protection) • Concurrency accomplished by multiplexing CPU Time: – Unloading current thread (PC, registers) – Loading new thread (PC, registers) – Such context switching may be voluntary (yield(), I/O operations) or involuntary (timer, other interrupts) • Protection accomplished restricting access: – Memory mapping isolates processes from each other – Dual-mode for isolating I/O, other resources • Book talks about processes – When this concerns concurrency, really talking about thread portion of a process – When this concerns protection, talking about address space portion of a process

Editor's Notes

  1. Collaboration allows faults to propagate…
  2. Sometimes need parallelism for a single job, and processes are very expensive – to start, switch between, and to communicate between