Nguyên lí hệ điều hành

25 638 0
Nguyên lí hệ điều hành

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng Tài liu lu hành ni b - 1 - Chng 2: Qun lý tin trình Trong chng này chúng ta s tìm hiu chc nng qun lý tin trình ca Hu hành : làm th nào  phân chia CPU cho các tin trình ? Theo vt x lý ca tin trình ? Và các thao tác trên tin trình ? 2.1 T chc qun lý tin trình 2.1.1. Các trng thái ca tin trình Trng thái ca tin trình ti mt thi m c xác nh bi hot ng hin thi ca tin trình ti thi m ó. Trong quá trình sng, mt tin trình thay i trng thái do nhiu nguyên nhân nh : phi ch mt s kin nào ó xy ra, hay i mt thao tác nhp/xut hoàn tt, buc phi dng hot ng do ã ht thi gian x lý … i mt thi m, mt tin trình có th nhn trong mt các trng thái sau ây : i to : tin trình ang c to lp. Running : các ch th ca tin trình ang c x lý. Blocked : tin trình ch c cp phát mt tài nguyên, hay ch mt

Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng Tài liu lu hành ni b - 1 - Chng 2: Qun lý tin trình Trong chng này chúng ta s tìm hiu chc nng qun lý tin trình ca Hu hành : làm th nào  phân chia CPU cho các tin trình ? Theo vt x lý ca tin trình ? Và các thao tác trên tin trình ? 2.1 T chc qun lý tin trình 2.1.1. Các trng thái ca tin trình Trng thái ca tin trình ti mt thi m c xác nh bi hot ng hin thi ca tin trình ti thi m ó. Trong quá trình sng, mt tin trình thay i trng thái do nhiu nguyên nhân nh : phi ch mt s kin nào ó xy ra, hay i mt thao tác nhp/xut hoàn tt, buc phi dng hot ng do ã ht thi gian x lý … i mt thi m, mt tin trình có th nhn trong mt các trng thái sau ây : i to : tin trình ang c to lp. Running : các ch th ca tin trình ang c x lý. Blocked : tin trình ch c cp phát mt tài nguyên, hay ch mt  kin xy ra . Ready : tin trình chc cp phát CPU  x lý. t thúc : tin trình hoàn tt x lý. Hình 2.2 S chuyn trng thái gia các tin trình i mt thi m, ch có mt tin trình có th nhn trng thái running trên mt b x lý bt k. Trong khi ó, nhiu tin trình có th trng thái blocked hay ready. Các cung chuyn tip trong s trng thái biu din sáu s chuyn trng thái có th xy ra trong các u kin sau : Tin trình mi to c a vào h thng u phi cp phát cho tin trình mt khong thi gian s dng CPU Tin trình kt thúc Tin trình yêu cu mt tài nguyên nhng cha c áp ng vì tài nguyên cha sn sàng  cp phát ti thi m ó ; hoc tin trình phi ch mt s kin hay thao tác nhp/xut. u phi chn mt tin trình khác  cho x lý . Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng Tài liu lu hành ni b - 2 - Tài nguyên mà tin trình yêu cu tr nên sn sàng  cp phát ; hay s kin hoc thao tác nhp/xut tin trình ang i hoàn tt. 2.1.2 Ch x lý ca tin trình m bo h thng hot ng úng n, hu hành cn phi c bo v khi s xâm phm ca các tin trình. Bn thân các tin trình và d liu cng cn c bo v tránh các nh hng sai lc ln nhau. Mt cách tip cn  gii quyt vn  là phân bit hai ch x lý cho các tin trình : ch không c quyn và chc quyn nh vào s tr giúp ca c ch phn cng. Tp lnh ca CPU c phân chia thành các lnh c quyn và lnh không c quyn. C ch phn cng ch cho phép các lnh c quyn c thc hin trong ch c quyn. Thông thng ch có hu hành hot ng trong ch c quyn, các tin trình ca ngi dùng hot ng trong ch không c quyn, không thc hin c các lnh c quyn có nguy cnh ng n h thng. Nh vy hu hành c bo v. Khi mt tin trình ngi dùng gi n mt li gi h thng, tin trình ca hu hành x lý li gi này s hot ng trong chc quyn, sau khi hoàn tt thì tr quyn u khin v cho tin trình ngi dùng trong ch không c quyn. Hình v 2.3 Hai ch x lý 2.1.3. Cu trúc d liu khi qun lý tin trình u hành qun lý các tin trình trong h thng thông qua khi qun lý tin trình (process control block - PCB). PCB là mt vùng nh lu tr các thông tin mô t cho tin trình, vi các thành phn ch yu bao gm : nh danh ca tin trình (1) : giúp phân bit các tin trình Trng thái tin trình (2): xác nh hot ng hin hành ca tin trình. Ng cnh ca tin trình (3): mô t các tài nguyên tin trình ang trong quá trình, hoc  phc v cho hot ng hin ti, hoc  làm c s phc hi hot ng cho tin trình, bao gm các thông tin v: Trng thái CPU: bao gm ni dung các thanh ghi, quan trng nht là con tr lnh IP lu tra ch câu lnh k tip tin trình s x lý. Các thông tin này cn c lu tr khi xy ra mt ngt, nhm có th cho phép phc hi hot ng ca tin trình úng nh trc khi b ngt.  x lý: dùng cho máy có cu hình nhiu CPU, xác nh s hiu CPU mà tin trình ang s dng.  nh chính: danh sách các khi nhc cp cho tin trình. Tài nguyên s dng: danh sách các tài mguyên h thng mà tin trình ang s dng. Tài nguyên to lp: danh sách các tài nguyên c tin trình to lp. Thông tin giao tip (4): phn ánh các thông tin v quan h ca tin trình vi các tin trình khác trong h thng : Tin trình cha: tin trình to lp tin trình này . Tin trình con: các tin trình do tin trình này to lp . Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng Tài liu lu hành ni b - 3 - u tiên : giúp bu phi có thông tin  la chn tin trình c cp CPU. Thông tin thng kê (5): ây là nhng thông tin thng kê v hot ng ca tin trình, nh thi gian ã s dng CPU,thi gian ch. Các thông tin này có th có ích cho công vic ánh giá tình hình h thng và doán các tình hung tng lai. Hình v 2.4 Khi mô t tin trình 2.1.4. Thao tác trên tin trình u hành cung cp các thao tác ch yu sau ây trên mt tin trình : o lp tin trình (create) t thúc tin trình (destroy) m dng tin trình (suspend) tái kích hot tin trình (resume) thay i u tiên tin trình 2.1.4.1. To lp tin trình Trong quá trình x lý, mt tin trình có th to lp nhiu tin trình mi bng cách s dng mt li gi h thng ng ng. Tin trình gi li gi h thng  to tin trình mi sc gi là tin trình cha, tin trình c to i là tin trình con. Mi tin trình con n lt nó li có th to các tin trình mi…quá trình này tip tc s o ra mt cây tin trình. Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng Tài liu lu hành ni b - 4 - Hình v2.5 Mt cây tin trình trong h thng UNIX Các công vic hu hành cn thc hin khi to lp tin trình bao gm : nh danh cho tin trình mi phát sinh a tin trình vào danh sách qun lý ca h thng xác nh u tiên cho tin trình o PCB cho tin trình p phát các tài nguyên ban u cho tin trình Khi mt tin trình to lp mt tin trình con, tin trình con có th sc hu hành trc tip cp phát tài nguyên hoc c tin trình cha cho tha hng mt s tài nguyên ban u. Khi mt tin trình to tin trình mi, tin trình ban u có th x lý theo mt trong hai kh nng sau : Tin trình cha tip tc x lý ng hành vi tin trình con. Tin trình cha chn khi mt tin trình con nào ó, hoc tt c các tin trình con kt thúc x lý. Các hu hành khác nhau có th chn la các cài t khác nhau  thc hin thao tác to lp mt tin trình. 2.1.4.2. Kt thúc tin trình t tin trình kt thúc x lý khi nó hoàn tt ch th cui cùng và s dng mt li gi h thng  yêu cu h u hành hy b nó. ôi khi mt tin trình có th yêu cu hu hành kt thúc x lý ca mt tin trình khác. Khi mt tin trình kt thúc, hu hành thc hin các công vic : thu hi các tài nguyên h thng ã cp phát cho tin trình y tin trình khi tt c các danh sách qun lý ca h thng y b PCB ca tin trình u ht các hu hành không cho phép các tin trình con tip tc tn ti nu tin trình cha ã kt thúc. Trong nhng h thng nh th, hu hành s tng phát sinh mt lot các thao tác kt thúc tin trình con. 2.1.5. Cp phát tài nguyên cho tin trình Khi có nhiu ngi s dng ng thi làm vic trong h thng, hu hành cn phi cp phát các tài nguyên theo yêu cu cho mi ngi s dng. Do tài nguyên h thng thng rt gii hn và có khi không th chia s, Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng Tài liu lu hành ni b - 5 - nên him khi tt c các yêu cu tài nguyên ng thi u c tha mãn. Vì th cn phi nghiên cu mt phng pháp  chia s mt s tài nguyên hu hn gia nhiu tin trình ngi dùng ng thi. Hu hành qun lý nhiu loi tài nguyên khác nhau (CPU, b nh chính, các thit b ngoi vi …), vi mi loi cn có mt  ch cp phát và các chin lc cp phát hiu qa. Mi tài nguyên c biu din thông qua mt cu trúc d liu, khác nhau v chi tit cho tng loi tài nguyên, nhng c bn cha ng các thông tin sau : nh danh tài nguyên Trng thái tài nguyên : ây là các thông tin mô t chi tit trng thái tài nguyên : phn nào ca tài nguyên ã p phát cho tin trình, phn nào còn có th s dng ? Hàng i trên mt tài nguyên : danh sách các tin trình ang chc cp phát tài nguyên tng ng.  cp phát : là n code m nhim vic cp phát mt tài nguyên c thù. Mt s tài nguyên òi hi các gii thut c bit (nh CPU, b nh chính, h thng tp tin), trong khi nhng tài nguyên khác (nh các thit b nhp/xut) có th cn các gii thut cp phát và gii phóng tng quát hn. Hình 2.6 Khi qun lý tài nguyên Các mc tiêu ca k thut cp phát : o m mt s lng hp l các tin trình truy xut ng thi n các tài nguyên không chia sc. p phát tài nguyên cho tin trình có yêu cu trong mt khong thi gian trì hoãn có th chp nhn c. i u hóa s s dng tài nguyên.  có th thõa mãn các mc tiêu k trên, cn phi gii quyt các vn  ny sinh khi có nhiu tin trình ng thi yêu cu mt tài nguyên không th chia s. 2.2 u phi tin trình Trong môi trng a chng, có th xy ra tình hung nhiu tin trình ng thi sn sàng  x lý. Mc tiêu a các h phân chia thi gian (time-sharing) là chuyn i CPU qua li gia các tin trình mt cách thng xuyên  nhiu ngi s dng có th tng tác cùng lúc vi tng chng trình trong quá trình x lý.  thc hin c mc tiêu này, hu hành phi la chn tin trình c x lý tip theo. Bu phi s s ng mt gii thut u phi thích hp  thc hin nhim v này. Mt thành phn khác ca hu hành cng tim n trong công tác u phi là  phân phi (dispatcher). B phân phi s chu trách nhim chuyn i ng nh và trao CPU cho tin trình c chn bi bu phi  x lý. 2.2.1. Gii thiu 2.2.1.1. Mc tiêu u phi Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng Tài liu lu hành ni b - 6 - u phi không cung cp c ch, mà a ra các quyt nh. Các hu hành xây dng nhiu chin lc khác nhau  thc hin vic u phi, nhng tu chung cn t c các mc tiêu sau : a) S công bng ( Fairness) : Các tin trình chia s CPU mt cách công bng, không có tin trình nào phi chi vô hn c cp phát CPU b) Tính hiu qa (Efficiency) :  thng phi tn dng c CPU 100% thi gian. c) Thi gian áp ng hp lý (Response time) : c tiu hoá thi gian hi áp cho các tng tác ca ngi s dng d) Thi gian lu li trong h thng ( Turnaround Time) : c tiu hóa thi gian hoàn tt các tác v x lý theo lô. e) Thông lng ti a (Throughput ) : c i hóa s công vic c x lý trong mt n v thi gian. Tuy nhiên thng không th tha mãn tt c các mc tiêu k trên vì bn thân chúng có s mâu thun vi nhau mà ch có th dung hòa chúng  mc  nào ó. 2.2.1.2. Các c m ca tin trình u phi hot ng ca các tin trình là mt vn  rt phc tp, òi hi hu hành khi gii quyt phi xem xét nhiu yu t khác nhau  có tht c nhng mc tiêu  ra. Mt sc tính ca tin trình cn c quan tâm nh tiêu chun u phi : a) Tính hng xut / nhp ca tin trình ( I/O-boundedness): Khi mt tin trình nhn c CPU, ch yu nó ch s dng CPU n khi phát sinh mt yêu cu nhp xut ? Hot ng ca các tin trình nh th thng bao gm nhiu lt s dng CPU , mi lt trong mt thi gian khá ngn. b) Tính hng x lý ca tin trình ( CPU-boundedness): Khi mt tin trình nhn c CPU, nó có khuynh hng s dng CPU n khi ht thi gian dành cho nó ? Hot ng ca các tin trình nh th thng bao gm mt s ít lt s dng CPU , nhng mi lt trong mt thi gian  dài. c) Tin trình tng tác hay x lý theo lô : Ngi s dng theo kiu tng tác thng yêu cu c hi áp tc thi i vi các yêu cu ca h, trong khi các tin trình ca tác vc x lý theo lô nói chung có th trì hoãn trong mt thi gian chp nhn c. d) u tiên ca tin trình : Các tin trình có thc phân cp theo mt s tiêu chun ánh giá nào ó, mt cách hp lý, các tin trình quan trng hn ( có u tiên cao hn) cn c u tiên hn. e) Thi gian ã s dng CPU ca tin trình : Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng Tài liu lu hành ni b - 7 - t s quan m u tiên chn nhng tin trình ã s dng CPU nhiu thi gian nht vì hy vng chúng s cn ít thi gian nht  hoàn tt và ri khi h thng . Tuy nhiên cng có quan m cho rng các tin trình nhn c CPU trong ít thi gian là nhng tin trình ã phi ch lâu nht, do vy u tiên chn chúng. f) Thi gian còn li tin trình cn  hoàn tt : Có th gim thiu thi gian chi trung bình ca các tin trình bng cách cho các tin trình cn ít thi gian nht  hoàn tt c thc hin trc. Tuy nhiên áng tic là rt him khi bit c tin trình cn bao nhiêu thi gian na  kt thúc x lý. 2.2.1.3. u phi không c quyn và u phi c quyn (preemptive/nopreemptive) Thut toán u phi cn xem xét và quyt nh thi m chuyn i CPU gia các tin trình. Hu hành có th thc hin c chu phi theo nguyên lý c quyn hoc không c quyn. u phi c quyn : Nguyên lý u phic quyn cho phép mt tin trình khi nhn c CPU s có quyn c chim CPU n khi hoàn tt x lý hoc t nguyn gii phóng CPU. Khi ó quyt nh u phi CPU s xy ra trong các tình hung sau: Khi tin trình chuyn t trng thái ang x lý(running) sang trng thái b khóa blocked ( ví d ch mt thao tác nhp xut hay ch mt tin trình con kt thúc…). Khi tin trình kt thúc. Các gii thut c quyn thng n gin và d cài t. Tuy nhiên chúng thng không thích hp vi các h thng tng quát nhiu ngi dùng, vì nu cho phép mt tin trình có quyn x lý bao lâu tùy ý, có ngha là tin trình này có th gi CPU mt thi gian không xác nh, có th ngn cn nhng tin trình còn li trong h thng có mt c hi  x lý. u phi không c quyn : Ngc vi nguyên lý c quyn, u phi theo nguyên lý không c quyn cho phép tm dng hot ng ca mt tin trình ang sn sàng x lý. Khi mt tin trình nhn c CPU, nó n c s dng CPU n khi hoàn tt hoc t nguyn gii phóng CPU, nhng mt tin trình khác có u tiên có th dành quyn s dng CPU ca tin trình ban u. Nh vy là tin trình có th b tm dng hot ng t c lúc nào mà không c báo trc,  tin trình khác x lý. Các quyt nh u phi xy ra khi : Khi tin trình chuyn t trng thái ang x lý (running) sang trng thái b khóa blocked ( ví d ch mt thao tác nhp xut hay ch mt tin trình con kt thúc…). Khi tin trình chuyn t trng thái ang x lý (running) sang trng thái ready ( ví d xy ra mt ngt). Khi tin trình chuyn t trng thái ch (blocked) sang trng thái ready ( ví d mt thao tác nhp/xut hoàn t). Khi tin trình kt thúc. Các thut toán u phi theo nguyên tc không c quyn ngn cn c tình trng mt tin trình c chim CPU, nhng vic tm dng mt tin trình có th dn n các mâu thun trong truy xut, òi hi phi s dng t phng pháp ng b hóa thích hp  gii quyt. Trong các h thng s dng nguyên lý u phi c quyn có th xy ra tình trng các tác v cn thi gian x lý ngn phi ch tác v x lý vi thi gian rt dài hoàn tt! Nguyên lý u phi c quyn thng ch thích p vi các h x lý theo lô. i vi các h thng tng tác(time sharing), các h thi gian thc (real time),cn phi s dng nguyên lý u phi không c quyn  các tin trình quan trng có c hi hi áp kp thi. Tuy nhiên thc hin u phi Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng Tài liu lu hành ni b - 8 - theo nguyên lý không c quyn òi hi nhng c ch phc tp trong vic phân nh u tiên, và phát sinh thêm chi phí khi chuyn i CPU qua li gia các tin trình. 2.2.2. T chc u phi 2.2.2.1. Các danh sách s dng trong quá trình u phi. u hành s dng hai loi danh sách  thc hin u phi các tin trình là danh sách sn sàng (ready list) và danh sách chi(waiting list). Khi mt tin trình bt u i vào h thng, nó c chèn vào danh sách các tác v (job list). Danh sách này bao m tt c các tin trình ca h thng. Nhng ch các tin trình ang thng trú trong b nh chính và  trng thái sn sàng tip nhn CPU  hot ng mi c a vào danh sách sn sàng. u phi s chn mt tin trình trong danh sách sn sàng và cp CPU cho tin trình ó. Tin trình c cp CPU s thc hin x lý, và có th chuyn sang trng thái ch khi xy ra các s kin nhi mt thao tác nhp/xut hoàn tt, yêu cu tài nguyên cha c tha mãn, c yêu cu tm dng Khi ó tin trình sc chuyn sang mt danh sách chi. u hành ch s dng mt danh sách sn sàng cho toàn h thng, nhng mi mt tài nguyên ( thit b ngoi vi ) có mt danh sách chi riêng bao gm các tin trình ang chc cp phát tài nguyên ó. Hình 2.9 Các danh sách u phi Quá trình x lý ca mt tin trình tri qua nhng chu k chuyn i qua li gia danh sách sn sàng và danh sách chi. S di ây mô t su phi các tin trình da trên các danh sách ca h thng. Thot u tin trình mi c t trong danh sách các tin trình sn sàng (ready list), nó si trong danh sách này cho n khi c chn  cp phát CPU và bt u x lý. Sau ó có th xy ra mt trong các tình hung sau : Tin trình phát sinh mt yêu cu mt tài nguyên mà h thng cha tháp ng, khi ó tin trình sc chuyn sang danh sách các tin trình ang ch tài nguyên tng ng. Tin trình có th b bt buc tm dng x lý do mt ngt xy ra, khi ó tin trình c a tr li vào danh sách sn sàng  chc cp CPU cho lt tip theo. Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng Tài liu lu hành ni b - 9 - Hình 2.10  chuyn i gia các danh sách u phi Trong trng hp u tiên, tin trình cui cùng s chuyn t trng thái blocked sang trng thái ready và li c a tr vào danh sách sn sàng. Tin trình lp li chu k này cho n khi hoàn tt tác v thì c h thng y b khi mi danh sách u phi. 2.2.2.2. Các cp u phi Thc ra công vic u phi c hu hành thc hin  hai mc  : u phi tác v (job scheduling) và u phi tin trình ( process scheduling). a) u phi tác v Quyt nh la chn tác v nào c a vào h thng, và np nhng tin trình ca tác vó vào b nh chính  thc hin. Chc nng u phi tác v quyt nh mc a chng ca h thng ( s lng tin trình trong  nh chính). Khi h thng to lp mt tin trình, hay có mt tin trình kt thúc x lý thì chc nng u phi tác v mi c kích hot. Vì mc a chng tng i n nh nên chc nng u phi tác v có tn sut hot ng thp .  h thng hot ng tt, b u phi tác v cn bit tính cht ca tin trình là hng nhp xut (I/O bounded) hay ng x lý ( CPU bounded). Mt tin trình c gi là hng nhp xut nu nó ch yu nó ch  dng CPU  thc hin các thao tác nhp xut. Ngc li mt tin trình c gi là hng x lý u nó ch u nó ch s dng CPU  thc hin các thao tác tính toán.  cân bng hot ng ca CPU và các thit b ngoi vi, bu phi tác v nên la chn các tin trình  np vào b nh sao cho h thng là s pha trn hp lý gia các tin trình ng nhp xut và các tin trình ng x lý b) u phi tin trình Chn mt tin trình  trng thái sn sàng ( ã c np vào b nh chính, và có  tài nguyên  hot ng ) và p phát CPU cho tin trình ó thc hin. Bu phi tin trình có tn sut hot ng cao, sau mi ln xy ra ngt ( do ng h báo gi, do các thit b ngoi vi ), thng là 1 ln trong khong 100ms. Do vy  nâng cao hiu sut ca h thng, cn phi tng tc  x lý ca bu phi tin trình. Chc nng u phi tin trình là t trong chc nng c bn, quan trng nht ca hu hành. Trong nhiu hu hành, có th không có bu phi tác v hoc tách bit rt ít i vi bu phi tin trình. Mt vài hu hành li a ra mt cp u phi trung gian kt hp c hai cp u phi tác v và tin trình Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng Tài liu lu hành ni b - 10 - Hình 2.11 Cp u phi trung gian 2.2.3. Các chin lc u phi 2.2.3.1. Chin lc FIFO Nguyên tc : CPU c cp phát cho tin trình u tiên trong danh sách sn sàng có yêu cu, là tin trình c a vào h thng sm nht. ây là thut toán u phi theo nguyên tc c quyn. Mt khi CPU c p phát cho tin trình, CPU chc tin trình t nguyn gii phóng khi kt thúc x lý hay khi có mt yêu cu nhp/xut. Hình 2.12 u phi FIFO Ví d : Tin trình Thi m vào RL Thi gian x lý P1 0 24 P2 1 3 P3 2 3 Th t cp phát CPU cho các tin trình là : P1 P2 P3 0 ‘24 27 30 thi gian chi c x lý là 0 i vi P1, (24 -1) vi P2 và (24+3-2) vi P3. Thi gian ch trung bình là ( 0+23+25)/3 = 16 milisecondes. 2.2.3.2. Chin lc phân phi xoay vòng (Round Robin) Nguyên tc : Danh sách sn sàng c x lý nh mt danh sách vòng, bu phi ln lt cp phát cho ng tin trình trong danh sách mt khong thi gian s dng CPU gi là quantum. ây là mt gii thut u phi không c quyn : khi mt tin trình s dng CPU n ht thi gian quantum dành cho nó, hu hành [...]... th ng c phân thành hai lo i: tài nguyên có th chia s cho phép nhi u ti n trình ng th i truy xu t, và tài nguyên không th chia s ch ch p nh n m t ( hay m t s l ng h n ch ) ti n trình s d ng t i m t th i m Tính không th chia s c a tài nguyên th ng có ngu n g c t t trong hai nguyên nhân sau ây: c tính c u t o ph n c ng c a tài nguyên không cho phép chia s u nhi u ti n trình s d ng tài nguyên ng th i,... EmployeeArrives (); // Ki m tra u ki n xu ng thuy n CrossRiver(); // Kh i hành qua sông } Bài 4 Bài toán Hãy t ng t u ph i hành khách xe bus ng b n ch u trách nhi m ki m soát hành khách lên xe bus t i m t tr m d ng Tài li u l u hành n i b - 23 - Giáo trình Nguyên lý h u hành – KS Tr n Ng c Thái, môn Tin h c – i h c DL H i Phòng i xe bus có ch cho 10 hành khách Trong ó 4 ch ch dành cho khách ng i xe l n, 6 ch còn... Tài li u l u hành n i b - 19 - Giáo trình Nguyên lý h u hành – KS Tr n Ng c Thái, môn Tin h c – i h c DL H i Phòng Trong m t h th ng cho phép các ti n trình liên l c v i nhau, bao gi h u hành c ng c n cung c p kèm theo nh ng c ch ng b hóa b o m ho t ng c a các ti n trình ng hành không tác ng sai l ch n nhau vì các lý do sau ây: 2.5.1 Yêu c u c quy n truy xu t (Mutual exclusion) Các tài nguyên trong... c p ng th i n các d li u chung u hành c n p tác hoàn thành tác v : ôi khi t c m t s x lý nhanh chóng, ng i ta phân chia m t tác v thành các công vi c nh có th ti n hành song song Th ng thì các công vi c nh này c n h p tác v i nhau cùng hoàn thành tác v ban u, ví d d li u k t xu t c a ti n trình này l i là d li u nh p cho ti n trình khác …Trong các tr ng h p ó, h u hành c n cung c p c ch các ti n trình... c a mình Tài li u l u hành n i b - 17 - Giáo trình Nguyên lý h u hành – KS Tr n Ng c Thái, môn Tin h c – i h c DL H i Phòng Hình 3.3 Liên l c qua vùng nh chia s 2.4.4 Trao i thông p (Message) Gi i thi u: H u hành còn cung c p m t c ch liên l c gi a các ti n trình không thông qua vi c chia s t tài nguyên chung , mà thông qua vi c g i thông p h tr c ch liên l c b ng thông p, h u hành cung c p các hàm... tình hu ng l i có th n y sinh khi các ti n trình truy xu t ng th i m t tài nguyên không th chia s , c n ph i áp t m t s truy xu t c quy n trên tài nguyên ó : khi m t ti n trình ang s d ng tài nguyên, thì nh ng ti n trình khác không c truy xu t n tài nguyên n ch ng trình trong ó có kh n ng x y ra các mâu thu n truy xu t trên tài nguyên chung là mi n g ng (critical section) Trong ví d trên, n mã : cg i... Chi n l P4 3 5 8 12 20 u ph i v i nhi u m c u tiên Tài li u l u hành n i b - 12 - Giáo trình Nguyên lý h u hành – KS Tr n Ng c Thái, môn Tin h c – i h c DL H i Phòng Nguyên t c : Ý t ng chính c a gi i thu t là phân l p các ti n trình tùy theo u tiên c a chúng có cách th c u ph i thích h p cho t ng nhóm Danh sách s n sàng c phân tách thành các danh sách riêng bi t theo c p u tiên, m i danh sách bao... c a b n là cho khách lên xe theo úng qui nh ch , khi xe y khách s kh i hành Có th có nhi u xe và nhi u hành khách vào b n cùng lúc, nguyên t c u ph i s x p khách vào y m t xe, cho xe này kh i hành r i m i u ph i cho xe khác Gi s ho t ng u ph i khách c a b n cho 1 chi c xe bus c mô t qua ti n trình GetPassengers(); ho t ng c a m i hành khách tùy lo i c mô t l n l t b ng ti n trình WheelPassenger() và... thu t u ph i v i u tiên có th theo nguyên t c c quy n hay không c quy n Khi m t ti n trình c a vào danh sách các ti n trình s n sàng, u tiên c a nó c so sánh v i u tiên c a ti n trình hi n hành ang x lý Gi i thu t u ph i v i u tiên và không c quy n s thu h i CPU t ti n trình hi n hành c p phát cho ti n trình m i n u u tiên c a ti n trình này cao h n ti n trình hi n hành M t gi i thu t c quy n s ch n... a) S tin c y b) S b o toàn th t d li u c) L p l i d li u d) Ch n ik t e) B o toàn gi i h n thông p Tài li u l u hành n i b - 18 - UNIX, Giáo trình Nguyên lý h u hành – KS Tr n Ng c Thái, f) Kh n ng g i thông môn Tin h c – i h c DL H i Phòng p kh n th c hi n liên l c b ng socket, c n ti n hành các thao tác :: o l p hay m m t socket n k t m t socket v i m t a ch Liên l c : có hai ki u liên l c tùy thu

Ngày đăng: 27/05/2014, 19:53

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan