Bài giảng Hệ thống máy tính - Chương 6: Quản lý quá trình
Số trang: 17
Loại file: pdf
Dung lượng: 437.08 KB
Lượt xem: 27
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Hệ thống máy tính - Chương 6 "Quản lý quá trình" gồm có những nội dung cụ thể sau: Khái niệm cơ bản, định thời CPU, các tác vụ cơ bản: tạo/kết thúc quá trình, sự cộng tác giữa các quá trình, giao tiếp giữa các quá trình. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ thống máy tính - Chương 6: Quản lý quá trình10/01/2017Chapter 6. Quaûn lyù quaù trìnhKhaùi nieäm cô baûnÑònh thôøi CPU Caùc taùc vuï cô baûn: taïo/keát thuùc quaù trình Söï coäng taùc giöõa caùc quaù trình Giao tieáp giöõa caùc quaù trình1Khaùi nieäm cô baûnHeä thoáng maùy tính thöïc thi nhieàu chöông trình khaùc nhau● Batch system: job● Time-shared system: user program, taskQuaù trình (process)● moät chöông trình ñang thöïc thiMoät quaù trình ñöôïc ñònh nghóa bôûi● Traïng thaùi CPU (trò cuûa caùc thanh ghi)● Khoâng gian ñòa chæ (noäi dung boä nhôù)● Moâi tröôøng (environment, xaùc ñònh thoâng qua caùc baûng cuûa heäñieàu haønh)2Khaùi nieäm cô baûn (tt)Traïng thaùi CPU●●●●●Khoâng gian ñòa chæ●●●●Processor Status Word (PSW)Instruction Register (IR)Program Counter (PC)Stack Pointer (SP)Caùc general purpose registerText (code)DataHeapStackMoâi tröôøng● Vd: terminal ñang duøng, caùc open file, caùc keânh giao tieáp vôùi caùcquaù trình khaùc● Ñöôïc lieät keâ trong caùc baûng cuûa heä ñieàu haønh3110/01/2017Process control blockHeä ñieàu haønh löu thoâng tin veà quaù trình trong processcontrol block (PCB)D.Feitelson4Caùc böôùc naïp chöông trình vaøo boä nhôù5Töø chöông trình ñeán quaù trìnhChöông trình thöïc thi coù ñònh daïng load module maø trìnhnaïp (loader) “hieåu” ñöôïcLayout luaän lyù cuûa process image● Vd ñònh daïng elf trong LinuxExecutable binary file(load module)Process imagetrong main memoryprogramcodeprogramcodedatadatastart addressheapstack6210/01/2017Khôûi taïo quaù trìnhCaùc böôùc heä ñieàu haønh khôûi taïo quaù trình● Caáp phaùt moät ñònh danh duy nhaát (process number hay processidentifier, pid) cho quaù trình● Caáp phaùt khoâng gian nhôù ñeå naïp quaù trình● Khôûi taïo khoái döõ lieäu Process Control Block (PCB) cho quaù trình● Thieát laäp caùc moái lieân heä caàn thieát (vd: saép PCB vaøo haøng ñôïiñònh thôøi,…)7Caùc traïng thaùi cuûa quaù trình (1/2)Caùc traïng thaùi cuûa quaù trình:●●●●●new: quaù trình vöøa ñöôïc taïoready: quaù trình ñaõ coù ñuû taøi nguyeân, chæ coøn caàn CPUrunning: caùc leänh cuûa quaù trình ñang ñöôïc thöïc thiwaiting: hay laø blocked, quaù trình ñôïi I/O hoaøn taát, hay ñôïi tín hieäuterminated: quaù trình ñaõ keát thuùc8Caùc traïng thaùi cuûa quaù trình (2/2)Chuyeån ñoåi giöõa caùc traïng thaùi cuûa quaù trìnhnewadmitdispatchreadyexitterminatedrunninginterruptI/O or eventwaitI/O or eventcompletionwaiting9310/01/2017Ví duï veà traïng thaùi quaù trình/* test.c */int main(int argc, char** argv){printf(“Hello world );exit(0);}Chuoãi traïng thaùi cuûa quaùtrình test nhö sau (tröôønghôïp toát nhaát):newreadyrunningwaiting (do chôø I/O khi goïiprintf)● ready● running● terminated●●●●Bieân dòch chöông trình trong Linuxgcc test.c –o testThöïc thi chöông trình test./testTrong heä thoáng seõ coù moät quaù trìnhtest ñöôïc taïo ra, thöïc thi vaø keátthuùc.10Process Control BlockÑaõ thaáy laø moãi quaù trình trong heä thoáng ñeàu ñöôïc caápphaùt moät Process Control Block (PCB)PCB laø moät trong caùc caáu truùc döõ lieäuquan troïng nhaát cuûa heä ñieàu haønhVí duï layout cuûa moät PCB:(tröôøng pointer duøng ñeå lieânkeát caùc PCB thaønh moätlinked list)Moâi tröôøng11Caùc tröôøng tieâu bieåu cuûa PCBTanenbaum12410/01/2017Chuyeån ngöõ caûnh (1/2)Laøm theá naøo ñeå chia seû CPU giöõa caùc quaù trình?Ngöõ caûnh (context) cuûa moät quaù trình laø tình traïng hoaïtñoäng cuûa quaù trìnhNgöõ caûnh cuûa quaù trình ñöôïc löu trong PCB cuûa noùChuyeån ngöõ caûnh (context switch) laø coâng vieäc ngöngquaù trình ñang thöïc thi vaø chaïy moät quaù trình khaùc. Khiñoù caàn:● Trò cuûa caùc thanh ghi, trò cuûa program counter, boä nhôù,…● löu ngöõ caûnh cuûa quaù trình vaøo PCB cuûa noù● naïp ngöõ caûnh töø PCB cuûa quaù trình môùi ñeå quaù trình môùi thöïc thi13Chuyeån ngöõ caûnh (2/2)14Yeâu caàu ñoái vôùi heä ñieàu haønh veà quaûn lyù quaù trìnhHoã trôï söï thöïc thi luaân phieân giöõa nhieàu quaù trình● Khi naøo choïn vaø choïn quaù trình naøo ñeå thöïc thi coù theå tuøy thuoäcvaøo tieâu chí nhö Hieäu suaát söû duïng CPU Thôøi gian ñaùp öùng…Phaân phoái taøi nguyeân heä thoáng hôïp lyùCung caáp cô cheá hoã trôï user taïo/keát thuùc quaù trìnhCung caáp cô cheá ñoàng boä vaø giao tieáp giöõa caùc quaù trình● Vaán ñeà deadlock, trì hoaõn voâ haïn ñònh,…155 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ thống máy tính - Chương 6: Quản lý quá trình10/01/2017Chapter 6. Quaûn lyù quaù trìnhKhaùi nieäm cô baûnÑònh thôøi CPU Caùc taùc vuï cô baûn: taïo/keát thuùc quaù trình Söï coäng taùc giöõa caùc quaù trình Giao tieáp giöõa caùc quaù trình1Khaùi nieäm cô baûnHeä thoáng maùy tính thöïc thi nhieàu chöông trình khaùc nhau● Batch system: job● Time-shared system: user program, taskQuaù trình (process)● moät chöông trình ñang thöïc thiMoät quaù trình ñöôïc ñònh nghóa bôûi● Traïng thaùi CPU (trò cuûa caùc thanh ghi)● Khoâng gian ñòa chæ (noäi dung boä nhôù)● Moâi tröôøng (environment, xaùc ñònh thoâng qua caùc baûng cuûa heäñieàu haønh)2Khaùi nieäm cô baûn (tt)Traïng thaùi CPU●●●●●Khoâng gian ñòa chæ●●●●Processor Status Word (PSW)Instruction Register (IR)Program Counter (PC)Stack Pointer (SP)Caùc general purpose registerText (code)DataHeapStackMoâi tröôøng● Vd: terminal ñang duøng, caùc open file, caùc keânh giao tieáp vôùi caùcquaù trình khaùc● Ñöôïc lieät keâ trong caùc baûng cuûa heä ñieàu haønh3110/01/2017Process control blockHeä ñieàu haønh löu thoâng tin veà quaù trình trong processcontrol block (PCB)D.Feitelson4Caùc böôùc naïp chöông trình vaøo boä nhôù5Töø chöông trình ñeán quaù trìnhChöông trình thöïc thi coù ñònh daïng load module maø trìnhnaïp (loader) “hieåu” ñöôïcLayout luaän lyù cuûa process image● Vd ñònh daïng elf trong LinuxExecutable binary file(load module)Process imagetrong main memoryprogramcodeprogramcodedatadatastart addressheapstack6210/01/2017Khôûi taïo quaù trìnhCaùc böôùc heä ñieàu haønh khôûi taïo quaù trình● Caáp phaùt moät ñònh danh duy nhaát (process number hay processidentifier, pid) cho quaù trình● Caáp phaùt khoâng gian nhôù ñeå naïp quaù trình● Khôûi taïo khoái döõ lieäu Process Control Block (PCB) cho quaù trình● Thieát laäp caùc moái lieân heä caàn thieát (vd: saép PCB vaøo haøng ñôïiñònh thôøi,…)7Caùc traïng thaùi cuûa quaù trình (1/2)Caùc traïng thaùi cuûa quaù trình:●●●●●new: quaù trình vöøa ñöôïc taïoready: quaù trình ñaõ coù ñuû taøi nguyeân, chæ coøn caàn CPUrunning: caùc leänh cuûa quaù trình ñang ñöôïc thöïc thiwaiting: hay laø blocked, quaù trình ñôïi I/O hoaøn taát, hay ñôïi tín hieäuterminated: quaù trình ñaõ keát thuùc8Caùc traïng thaùi cuûa quaù trình (2/2)Chuyeån ñoåi giöõa caùc traïng thaùi cuûa quaù trìnhnewadmitdispatchreadyexitterminatedrunninginterruptI/O or eventwaitI/O or eventcompletionwaiting9310/01/2017Ví duï veà traïng thaùi quaù trình/* test.c */int main(int argc, char** argv){printf(“Hello world );exit(0);}Chuoãi traïng thaùi cuûa quaùtrình test nhö sau (tröôønghôïp toát nhaát):newreadyrunningwaiting (do chôø I/O khi goïiprintf)● ready● running● terminated●●●●Bieân dòch chöông trình trong Linuxgcc test.c –o testThöïc thi chöông trình test./testTrong heä thoáng seõ coù moät quaù trìnhtest ñöôïc taïo ra, thöïc thi vaø keátthuùc.10Process Control BlockÑaõ thaáy laø moãi quaù trình trong heä thoáng ñeàu ñöôïc caápphaùt moät Process Control Block (PCB)PCB laø moät trong caùc caáu truùc döõ lieäuquan troïng nhaát cuûa heä ñieàu haønhVí duï layout cuûa moät PCB:(tröôøng pointer duøng ñeå lieânkeát caùc PCB thaønh moätlinked list)Moâi tröôøng11Caùc tröôøng tieâu bieåu cuûa PCBTanenbaum12410/01/2017Chuyeån ngöõ caûnh (1/2)Laøm theá naøo ñeå chia seû CPU giöõa caùc quaù trình?Ngöõ caûnh (context) cuûa moät quaù trình laø tình traïng hoaïtñoäng cuûa quaù trìnhNgöõ caûnh cuûa quaù trình ñöôïc löu trong PCB cuûa noùChuyeån ngöõ caûnh (context switch) laø coâng vieäc ngöngquaù trình ñang thöïc thi vaø chaïy moät quaù trình khaùc. Khiñoù caàn:● Trò cuûa caùc thanh ghi, trò cuûa program counter, boä nhôù,…● löu ngöõ caûnh cuûa quaù trình vaøo PCB cuûa noù● naïp ngöõ caûnh töø PCB cuûa quaù trình môùi ñeå quaù trình môùi thöïc thi13Chuyeån ngöõ caûnh (2/2)14Yeâu caàu ñoái vôùi heä ñieàu haønh veà quaûn lyù quaù trìnhHoã trôï söï thöïc thi luaân phieân giöõa nhieàu quaù trình● Khi naøo choïn vaø choïn quaù trình naøo ñeå thöïc thi coù theå tuøy thuoäcvaøo tieâu chí nhö Hieäu suaát söû duïng CPU Thôøi gian ñaùp öùng…Phaân phoái taøi nguyeân heä thoáng hôïp lyùCung caáp cô cheá hoã trôï user taïo/keát thuùc quaù trìnhCung caáp cô cheá ñoàng boä vaø giao tieáp giöõa caùc quaù trình● Vaán ñeà deadlock, trì hoaõn voâ haïn ñònh,…155 ...
Tìm kiếm theo từ khóa liên quan:
Hệ thống máy tính Bài giảng Hệ thống máy tính Quản lý quá trình Định thời CPU Sự cộng tác giữa các quá trình Giao tiếp giữa các quá trìnhTài liệu liên quan:
-
Bài giảng Nguyên lý hệ điều hành (Bài giảng tuần 1) - Nguyễn Hải Châu
6 trang 184 0 0 -
6 trang 176 0 0
-
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 150 0 0 -
39 trang 78 0 0
-
Đề tài: TÌM HIỂU VÀ THIẾT KẾ MẠNG LAN CHO TRƯỜNG THPT PHỤC HÒA
68 trang 78 0 0 -
Giáo trình Office 2013 cơ bản: Phần 1
149 trang 77 0 0 -
Bài giảng Hệ điều hành: Chương 6 - Đặng Minh Quân
41 trang 73 0 0 -
Windows MultiPoint Server 2011 - Giải pháp nhiều người dùng chung một máy tính
3 trang 62 0 0 -
Giáo trình Nhập môn tin học: Phần 1
66 trang 57 0 0 -
Giáo trình Nguyên lý Hệ điều hành - CĐ Nghề Công Nghiệp Hà Nội
144 trang 54 0 0