intTypePromotion=3
Array
(
    [0] => Array
        (
            [banner_id] => 140
            [banner_name] => KM1 - nhân đôi thời gian
            [banner_picture] => 964_1568020473.jpg
            [banner_picture2] => 839_1568020473.jpg
            [banner_picture3] => 620_1568020473.jpg
            [banner_picture4] => 849_1568189308.jpg
            [banner_picture5] => 
            [banner_type] => 8
            [banner_link] => https://tailieu.vn/nang-cap-tai-khoan-vip.html
            [banner_status] => 1
            [banner_priority] => 0
            [banner_lastmodify] => 2019-09-11 15:08:43
            [banner_startdate] => 2019-09-11 00:00:00
            [banner_enddate] => 2019-09-11 23:59:59
            [banner_isauto_active] => 0
            [banner_timeautoactive] => 
            [user_username] => sonpham
        )

)

Bài giảng Hệ thống máy tính - Chương 6: Quản lý quá trình

Chia sẻ: Yi Yi | Ngày: | Loại File: PDF | Số trang:17

0
19
lượt xem
3
download

Bài giảng Hệ thống máy tính - Chương 6: Quản lý quá trình

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Hệ thống máy tính - Chương 6: Quản lý quá trình

10/01/2017<br /> <br /> Chapter 6. Quaûn lyù quaù trình<br /> Khaùi nieäm cô baûn<br /> Ñònh thôøi CPU<br />  Caùc taùc vuï cô baûn: taïo/keát thuùc quaù trình<br />  Söï coäng taùc giöõa caùc quaù trình<br />  Giao tieáp giöõa caùc quaù trình<br /> <br /> <br /> <br /> 1<br /> <br /> Khaùi nieäm cô baûn<br /> <br /> <br /> Heä thoáng maùy tính thöïc thi nhieàu chöông trình khaùc nhau<br /> ● Batch system: job<br /> ● Time-shared system: user program, task<br /> <br /> <br /> <br /> Quaù trình (process)<br /> ● moät chöông trình ñang thöïc thi<br /> <br /> <br /> <br /> Moät quaù trình ñöôïc ñònh nghóa bôûi<br /> ● Traïng thaùi CPU (trò cuûa caùc thanh ghi)<br /> ● Khoâng gian ñòa chæ (noäi dung boä nhôù)<br /> ● Moâi tröôøng (environment, xaùc ñònh thoâng qua caùc baûng cuûa heä<br /> ñieàu haønh)<br /> <br /> 2<br /> <br /> Khaùi nieäm cô baûn (tt)<br /> <br /> <br /> Traïng thaùi CPU<br /> ●<br /> ●<br /> ●<br /> ●<br /> ●<br /> <br /> <br /> <br /> Khoâng gian ñòa chæ<br /> ●<br /> ●<br /> ●<br /> ●<br /> <br /> <br /> <br /> Processor Status Word (PSW)<br /> Instruction Register (IR)<br /> Program Counter (PC)<br /> Stack Pointer (SP)<br /> Caùc general purpose register<br /> Text (code)<br /> Data<br /> Heap<br /> Stack<br /> <br /> Moâi tröôøng<br /> ● Vd: terminal ñang duøng, caùc open file, caùc keânh giao tieáp vôùi caùc<br /> quaù trình khaùc<br /> ● Ñöôïc lieät keâ trong caùc baûng cuûa heä ñieàu haønh<br /> 3<br /> <br /> 1<br /> <br /> 10/01/2017<br /> <br /> Process control block<br /> <br /> <br /> Heä ñieàu haønh löu thoâng tin veà quaù trình trong process<br /> control block (PCB)<br /> <br /> D.Feitelson<br /> <br /> 4<br /> <br /> Caùc böôùc naïp chöông trình vaøo boä nhôù<br /> <br /> 5<br /> <br /> Töø chöông trình ñeán quaù trình<br /> <br /> <br /> Chöông trình thöïc thi coù ñònh daïng load module maø trình<br /> naïp (loader) “hieåu” ñöôïc<br /> <br /> <br /> <br /> Layout luaän lyù cuûa process image<br /> <br /> ● Vd ñònh daïng elf trong Linux<br /> Executable binary file<br /> (load module)<br /> <br /> Process image<br /> trong main memory<br /> <br /> program<br /> code<br /> <br /> program<br /> code<br /> <br /> data<br /> <br /> data<br /> <br /> start address<br /> <br /> heap<br /> stack<br /> 6<br /> <br /> 2<br /> <br /> 10/01/2017<br /> <br /> Khôûi taïo quaù trình<br /> <br /> <br /> Caùc böôùc heä ñieàu haønh khôûi taïo quaù trình<br /> ● Caáp phaùt moät ñònh danh duy nhaát (process number hay process<br /> identifier, pid) cho quaù trình<br /> ● Caáp phaùt khoâng gian nhôù ñeå naïp quaù trình<br /> ● Khôûi taïo khoái döõ lieäu Process Control Block (PCB) cho quaù trình<br /> ● Thieát laäp caùc moái lieân heä caàn thieát (vd: saép PCB vaøo haøng ñôïi<br /> ñònh thôøi,…)<br /> <br /> 7<br /> <br /> Caùc traïng thaùi cuûa quaù trình (1/2)<br /> <br /> <br /> Caùc traïng thaùi cuûa quaù trình:<br /> ●<br /> ●<br /> ●<br /> ●<br /> ●<br /> <br /> new: quaù trình vöøa ñöôïc taïo<br /> ready: quaù trình ñaõ coù ñuû taøi nguyeân, chæ coøn caàn CPU<br /> running: caùc leänh cuûa quaù trình ñang ñöôïc thöïc thi<br /> waiting: hay laø blocked, quaù trình ñôïi I/O hoaøn taát, hay ñôïi tín hieäu<br /> terminated: quaù trình ñaõ keát thuùc<br /> <br /> 8<br /> <br /> Caùc traïng thaùi cuûa quaù trình (2/2)<br /> <br /> <br /> Chuyeån ñoåi giöõa caùc traïng thaùi cuûa quaù trình<br /> new<br /> <br /> admit<br /> <br /> dispatch<br /> <br /> ready<br /> <br /> exit<br /> <br /> terminated<br /> <br /> running<br /> <br /> interrupt<br /> I/O or event<br /> wait<br /> <br /> I/O or event<br /> completion<br /> waiting<br /> <br /> 9<br /> <br /> 3<br /> <br /> 10/01/2017<br /> <br /> Ví duï veà traïng thaùi quaù trình<br /> <br /> /* test.c */<br /> int main(int argc, char** argv)<br /> {<br /> printf(“Hello world\n");<br /> exit(0);<br /> }<br /> <br /> Chuoãi traïng thaùi cuûa quaù<br /> trình test nhö sau (tröôøng<br /> hôïp toát nhaát):<br /> new<br /> ready<br /> running<br /> waiting (do chôø I/O khi goïi<br /> printf)<br /> ● ready<br /> ● running<br /> ● terminated<br /> ●<br /> ●<br /> ●<br /> ●<br /> <br /> Bieân dòch chöông trình trong Linux<br /> gcc test.c –o test<br /> Thöïc thi chöông trình test<br /> ./test<br /> Trong heä thoáng seõ coù moät quaù trình<br /> test ñöôïc taïo ra, thöïc thi vaø keát<br /> thuùc.<br /> <br /> 10<br /> <br /> Process Control Block<br /> <br /> <br /> Ñaõ thaáy laø moãi quaù trình trong heä thoáng ñeàu ñöôïc caáp<br /> phaùt moät Process Control Block (PCB)<br /> <br /> <br /> <br /> PCB laø moät trong caùc caáu truùc döõ lieäu<br /> quan troïng nhaát cuûa heä ñieàu haønh<br /> <br /> Ví duï layout cuûa moät PCB:<br /> (tröôøng pointer duøng ñeå lieân<br /> keát caùc PCB thaønh moät<br /> linked list)<br /> <br /> Moâi tröôøng<br /> <br /> 11<br /> <br /> Caùc tröôøng tieâu bieåu cuûa PCB<br /> <br /> Tanenbaum<br /> <br /> 12<br /> <br /> 4<br /> <br /> 10/01/2017<br /> <br /> Chuyeån ngöõ caûnh (1/2)<br /> <br /> <br /> Laøm theá naøo ñeå chia seû CPU giöõa caùc quaù trình?<br /> <br /> <br /> <br /> Ngöõ caûnh (context) cuûa moät quaù trình laø tình traïng hoaït<br /> ñoäng cuûa quaù trình<br /> <br /> <br /> <br /> Ngöõ caûnh cuûa quaù trình ñöôïc löu trong PCB cuûa noù<br /> <br /> <br /> <br /> Chuyeån ngöõ caûnh (context switch) laø coâng vieäc ngöng<br /> quaù trình ñang thöïc thi vaø chaïy moät quaù trình khaùc. Khi<br /> ñoù caàn:<br /> <br /> ● Trò cuûa caùc thanh ghi, trò cuûa program counter, boä nhôù,…<br /> <br /> ● löu ngöõ caûnh cuûa quaù trình vaøo PCB cuûa noù<br /> ● naïp ngöõ caûnh töø PCB cuûa quaù trình môùi ñeå quaù trình môùi thöïc thi<br /> <br /> 13<br /> <br /> Chuyeån ngöõ caûnh (2/2)<br /> <br /> 14<br /> <br /> Yeâu caàu ñoái vôùi heä ñieàu haønh veà quaûn lyù quaù trình<br /> <br /> <br /> Hoã trôï söï thöïc thi luaân phieân giöõa nhieàu quaù trình<br /> ● Khi naøo choïn vaø choïn quaù trình naøo ñeå thöïc thi coù theå tuøy thuoäc<br /> vaøo tieâu chí nhö<br />  Hieäu suaát söû duïng CPU<br />  Thôøi gian ñaùp öùng<br /> …<br /> <br /> <br /> <br /> Phaân phoái taøi nguyeân heä thoáng hôïp lyù<br /> <br /> <br /> <br /> Cung caáp cô cheá hoã trôï user taïo/keát thuùc quaù trình<br /> Cung caáp cô cheá ñoàng boä vaø giao tieáp giöõa caùc quaù trình<br /> <br /> ● Vaán ñeà deadlock, trì hoaõn voâ haïn ñònh,…<br /> <br /> <br /> <br /> 15<br /> <br /> 5<br /> <br />

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản