ភាពអត់ឃ្លានគឺជាលក្ខខណ្ឌមួយដែលដំណើរការមិនទទួលបានធនធានដែលវាត្រូវការក្នុងរយៈពេលយូរ ដោយសារធនធានកំពុងត្រូវបានបែងចែកទៅឱ្យដំណើរការផ្សេងទៀត។
ជាទូទៅវាកើតឡើងនៅក្នុងប្រព័ន្ធកំណត់ពេលផ្អែកលើអាទិភាព។
តើអ្វីទៅជាភាពជាប់គាំងនិងភាពអត់ឃ្លាននៅក្នុងប្រព័ន្ធប្រតិបត្តិការ?
ប្រព័ន្ធយុត្តិធម៌ការពារការអត់ឃ្លាន និងការជាប់គាំង។ ភាពអត់ឃ្លានកើតឡើងនៅពេលដែលខ្សែស្រឡាយមួយ ឬច្រើននៅក្នុងកម្មវិធីរបស់អ្នកត្រូវបានរារាំងពីការចូលប្រើប្រាស់ធនធាន ហើយជាលទ្ធផល មិនអាចដំណើរការបានទេ។ Deadlock ដែលជាទម្រង់នៃភាពអត់ឃ្លានចុងក្រោយ កើតឡើងនៅពេលដែលខ្សែពីរ ឬច្រើនកំពុងរង់ចាំលក្ខខណ្ឌដែលមិនអាចពេញចិត្តបាន។
តើអ្វីជាភាពខុសគ្នារវាងការជាប់គាំង និងការអត់ឃ្លាន?
Deadlock ជារឿយៗត្រូវបានគេហៅថាជារង្វង់រង់ចាំ ចំណែកឯភាពអត់ឃ្លានត្រូវបានគេហៅថា Lived Lock ។ នៅក្នុង Deadlock ធនធានត្រូវបានរារាំងដោយដំណើរការ ចំណែកឯនៅក្នុងភាពអត់ឃ្លាន ដំណើរការត្រូវបានបន្តប្រើប្រាស់ដោយដំណើរការដែលមានអាទិភាពខ្ពស់។ ម្យ៉ាងវិញទៀត ភាពអត់ឃ្លានអាចការពារបានដោយភាពចាស់។
តើអ្នកមានន័យយ៉ាងណាចំពោះការអត់ឃ្លាននៅក្នុងប្រព័ន្ធប្រតិបត្តិការ?
ភាពអត់ឃ្លានគឺជាឈ្មោះដែលត្រូវបានផ្តល់ឱ្យនូវការពន្យារពេលមិនកំណត់នៃដំណើរការ ព្រោះវាទាមទារធនធានមួយចំនួន មុនពេលដែលវាអាចដំណើរការ ប៉ុន្តែធនធាន ទោះបីជាមានសម្រាប់ការបែងចែកក៏ដោយ គឺមិនដែលត្រូវបានបែងចែកសម្រាប់ដំណើរការនេះទេ។ ដំណើរការប្រគល់ធនធានទៅដំណើរការផ្សេងទៀតដោយគ្មានការគ្រប់គ្រង។
តើការអត់ឃ្លានផ្តល់ជាឧទាហរណ៍អ្វី?
ឧទាហរណ៍មួយគឺការកំណត់ពេលបញ្ជូនអតិបរមា។ ភាពអត់ឃ្លានជាធម្មតាបណ្តាលមកពីការជាប់គាំងដែលវាបណ្តាលឱ្យដំណើរការបង្កក។ ដំណើរការពីរ ឬច្រើនក្លាយជាជាប់គាំង នៅពេលដែលពួកវានីមួយៗមិនធ្វើអ្វីសោះ ខណៈពេលដែលរង់ចាំធនធានដែលកាន់កាប់ដោយកម្មវិធីផ្សេងទៀតនៅក្នុងសំណុំតែមួយ។
តើអ្វីទៅជាភាពអត់ឃ្លាន និងភាពចាស់នៅក្នុង OS?
តើភាពអត់ឃ្លាន និងភាពចាស់ជាអ្វី? A. ការអត់ឃ្លានគឺជាបញ្ហាគ្រប់គ្រងធនធាន ដែលដំណើរការមួយមិនទទួលបានធនធានដែលវាត្រូវការក្នុងរយៈពេលយូរ ដោយសារធនធានកំពុងត្រូវបានបែងចែកទៅឱ្យដំណើរការផ្សេងទៀត។ ភាពចាស់ជរាគឺជាបច្ចេកទេសមួយដើម្បីជៀសវាងការអត់ឃ្លាននៅក្នុងប្រព័ន្ធកំណត់ពេល។
តើអ្នកបញ្ឈប់ការអត់ឃ្លាននៅក្នុង OS ដោយរបៀបណា?
ប្រព័ន្ធប្រតិបត្តិការ | ភាពអត់ឃ្លាននិងភាពចាស់នៅក្នុងប្រព័ន្ធប្រតិបត្តិការ
- តម្រូវការជាមុន៖ កាលវិភាគអាទិភាព។
- ភាពអត់ឃ្លាន ឬការទប់ស្កាត់មិនកំណត់គឺជាបាតុភូតដែលភ្ជាប់ជាមួយក្បួនដោះស្រាយការកំណត់ពេលអាទិភាព ដែលដំណើរការដែលត្រៀមរួចជាស្រេចសម្រាប់ដំណើរការសម្រាប់ CPU អាចរង់ចាំដោយគ្មានកំណត់ដោយសារតែអាទិភាពទាប។
- ភាពខុសគ្នារវាង Deadlock និង Starvation នៅក្នុង OS៖
- ដំណោះស្រាយចំពោះភាពអត់ឃ្លាន៖ ភាពចាស់។
តើការជាប់គាំងមានន័យថាអត់ឃ្លានទេ?
ដំណើរការមួយស្ថិតក្នុងភាពអត់ឃ្លាន នៅពេលដែលវាកំពុងរង់ចាំធនធានដែលបន្តផ្តល់ទៅឱ្យដំណើរការផ្សេងទៀត។ នេះខុសពីការជាប់គាំងដែលធនធានមិនត្រូវបានផ្តល់ឱ្យនរណាម្នាក់ទេព្រោះវាត្រូវបានគ្រប់គ្រងដោយដំណើរការដែលត្រូវបានរារាំង។ ដូច្នេះ មិនចាំបាច់មានការអត់ឃ្លានក្នុងស្ថានភាពជាប់គាំងនោះទេ។
តើអ្វីជាភាពខុសគ្នារវាង Deadlock និង Livelock?
livelock គឺស្រដៀងទៅនឹងការជាប់គាំង លើកលែងតែស្ថានភាពនៃដំណើរការដែលពាក់ព័ន្ធនឹង livelock ផ្លាស់ប្តូរជានិច្ចទាក់ទងនឹងគ្នាទៅវិញទៅមក គ្មានអ្វីរីកចម្រើនទេ។ Livelock គឺជាករណីពិសេសនៃភាពអត់ឃ្លានធនធាន។ និយមន័យទូទៅគ្រាន់តែចែងថាដំណើរការជាក់លាក់មួយមិនដំណើរការទេ។
តើអ្វីជាភាពខុសគ្នារវាងលក្ខខណ្ឌនៃការប្រណាំង និងការជាប់គាំង?
ការជាប់គាំងគឺនៅពេលដែលខ្សែស្រឡាយពីរ (ឬច្រើន) កំពុងរារាំងគ្នាទៅវិញទៅមក។ ជាធម្មតា វាមានអ្វីដែលត្រូវធ្វើជាមួយខ្សែស្រឡាយដែលព្យាយាមទទួលបានធនធានចែករំលែក លក្ខខណ្ឌនៃការប្រណាំងកើតឡើងនៅពេលដែលខ្សែស្រឡាយពីរមានអន្តរកម្មនៅក្នុងវិធីអវិជ្ជមាន (buggy) អាស្រ័យលើលំដាប់ពិតប្រាកដដែលការណែនាំផ្សេងគ្នារបស់ពួកគេត្រូវបានប្រតិបត្តិ។
តើការអត់ឃ្លានអាចធ្វើទៅបាននៅក្នុង FCFS ដែរឬទេ?
ទោះជាយ៉ាងណាក៏ដោយ មិនដូច FCFS ទេ វាមានសក្តានុពលសម្រាប់ការអត់ឃ្លាននៅក្នុង SJF ។ ភាពអត់ឃ្លានកើតឡើងនៅពេលដែលដំណើរការធំមួយមិនអាចដំណើរការបានទេព្រោះការងារខ្លីៗបន្តចូលក្នុងជួរ។
តើអ្វីបណ្តាលឱ្យអត់ឃ្លាន?
កង្វះវីតាមីនក៏ជាលទ្ធផលទូទៅនៃភាពអត់ឃ្លាន ដែលជារឿយៗនាំឱ្យមានភាពស្លេកស្លាំង beriberi ប៉េលឡាក្រា និងជំងឺក្រិនសរសៃឈាម។ ជំងឺទាំងនេះរួមគ្នាក៏អាចបណ្តាលឱ្យរាគ កន្ទួលលើស្បែក ហើម និងខ្សោយបេះដូង។ បុគ្គលតែងតែឆាប់ខឹង និងងងុយដេកជាលទ្ធផល។
តើអ្វីទៅជាភាពអត់ឃ្លាននៅក្នុង multithreading?
ការអត់ឃ្លាន។ ភាពអត់ឃ្លានពិពណ៌នាអំពីស្ថានភាពដែលខ្សែស្រលាយមិនអាចចូលប្រើជាប្រចាំចំពោះធនធានដែលបានចែករំលែក និងមិនអាចរីកចម្រើនបាន។ ប្រសិនបើខ្សែស្រឡាយមួយហៅវិធីសាស្ត្រនេះញឹកញាប់ នោះខ្សែស្រលាយផ្សេងទៀតដែលត្រូវការការចូលដំណើរការដែលធ្វើសមកាលកម្មញឹកញាប់ទៅកាន់វត្ថុដូចគ្នានឹងត្រូវបានរារាំងជាញឹកញាប់។
តើយើងអាចបញ្ឈប់ការអត់ឃ្លានដោយរបៀបណា?
វិធីជៀសវាងរបៀបអត់ឃ្លាន និងគាំទ្រការរំលាយអាហារដែលមានសុខភាពល្អ
- កុំកាត់កាឡូរីឱ្យទាបពេក ត្រូវប្រាកដថាញ៉ាំឱ្យបានគ្រប់គ្រាន់!
- ជៀសវាងការញ៉ាំច្រើនពេក ឬញ៉ាំអាហារទៀងទាត់។
- សម្រាកឱ្យបានគ្រប់គ្រាន់ និងជៀសវាងការហ្វឹកហាត់លើសកម្រិត។
- គោលបំណងដើម្បីវឌ្ឍនភាព មិនមែនភាពល្អឥតខ្ចោះទេ។
តើការអត់ឃ្លានមានន័យដូចម្តេច?
កិរិយាស័ព្ទ ស្រេកឃ្លាន មានន័យថា ការរងទុក្ខ ឬការស្លាប់ដែលបណ្តាលមកពីការខ្វះខាតអាហារ ទោះបីជាមនុស្សក៏ប្រើវាជាវិធីដ៏គួរឱ្យភ្ញាក់ផ្អើលមួយដើម្បីនិយាយថាពួកគេឃ្លានដែរ ដូចជានៅក្នុង "ប្រសិនបើយើងមិនចាប់ផ្តើមចម្អិនអាហារឥឡូវនេះ ខ្ញុំគិតថាខ្ញុំនឹងអត់ឃ្លាន។ ” ពាក្យអត់ឃ្លានមានប្រភពមកពីពាក្យអង់គ្លេសចាស់ Steorfan ដែលមានន័យថា "ស្លាប់"។ ខ្ញុំកំពុងអត់ឃ្លាន។
តើប្រព័ន្ធអាចរកឃើញភាពអត់ឃ្លានបានទេ?
សំណួរ 7.12 តើប្រព័ន្ធអាចរកឃើញថាដំណើរការមួយចំនួនរបស់វាកំពុងអត់ឃ្លានទេ? ចម្លើយ៖ ការរកឃើញភាពអត់ឃ្លានទាមទារចំណេះដឹងនាពេលអនាគត ដោយសារមិនមានស្ថិតិកត់ត្រាលើដំណើរការណាមួយអាចកំណត់ថាតើវាកំពុងធ្វើឱ្យ 'វឌ្ឍនភាព' ឬអត់។ ទោះជាយ៉ាងណាក៏ដោយ ការអត់ឃ្លានអាចត្រូវបានរារាំងដោយ 'ភាពចាស់' ដំណើរការមួយ។
តើអ្វីជា dispatcher OS?
នៅពេលអ្នកកំណត់ពេលបញ្ចប់ការងាររបស់ខ្លួនក្នុងការជ្រើសរើសដំណើរការ វាគឺជាអ្នកបញ្ជូនដែលនាំដំណើរការនោះទៅកាន់ស្ថានភាព/ជួរដែលចង់បាន។ អ្នកបញ្ជូនគឺជាម៉ូឌុលដែលផ្តល់ការគ្រប់គ្រងដំណើរការលើ CPU បន្ទាប់ពីវាត្រូវបានជ្រើសរើសដោយអ្នកកំណត់ពេលរយៈពេលខ្លី។ មុខងារនេះមានដូចខាងក្រោម៖ ប្ដូរបរិបទ។
តើប្រព័ន្ធប្រតិបត្តិការជាប់គាំងជាអ្វី?
< ការរចនាប្រព័ន្ធប្រតិបត្តិការ។ នៅក្នុងវិទ្យាសាស្ត្រកុំព្យូទ័រ ការជាប់គាំងសំដៅទៅលើលក្ខខណ្ឌជាក់លាក់មួយ នៅពេលដែលដំណើរការពីរ ឬច្រើនកំពុងរង់ចាំមួយទៀតដើម្បីបញ្ចេញធនធាន ឬដំណើរការច្រើនជាងពីរកំពុងរង់ចាំធនធាននៅក្នុងខ្សែសង្វាក់រង្វង់មួយ (សូមមើលលក្ខខណ្ឌចាំបាច់)។
តើក្បួនដោះស្រាយកាលវិភាគមួយណាដែលល្អបំផុតនៅក្នុង OS?
ក្បួនដោះស្រាយកាលវិភាគប្រព័ន្ធប្រតិបត្តិការ
- ការមកមុន ការបម្រើដំបូង (FCFS) កាលវិភាគ។
- កាលវិភាគខ្លីបំផុត-ការងារ-បន្ទាប់ (SJN) ។
- កាលវិភាគអាទិភាព។
- ពេលវេលានៅសល់ខ្លីបំផុត។
- កាលវិភាគជុំ Robin (RR) ។
- កាលវិភាគជួរច្រើនកម្រិត។
តើការអត់ឃ្លាន RTOS គឺជាអ្វី?
បានឆ្លើយតបនៅថ្ងៃទី 5 ខែមករា ឆ្នាំ 2017។ ការអត់ឃ្លានគឺជាលក្ខខណ្ឌបញ្ហានៃការគ្រប់គ្រងធនធានដែលអាចកើតឡើងនៅពេលដែលដំណើរការ ឬខ្សែស្រឡាយជាច្រើនប្រកួតប្រជែងគ្នាដើម្បីចូលប្រើធនធានរួមគ្នា។ ដំណើរការមួយអាចផ្តាច់មុខធនធាន ខណៈពេលដែលអ្នកផ្សេងទៀតត្រូវបានបដិសេធការចូលប្រើប្រាស់។ កើតឡើងនៅពេល។ មានដំណើរការជ្រើសរើសដោយផ្អែកលើអាទិភាព។
អ្វីទៅជាភ្លើងអត់ឃ្លាន?
ការអត់ឃ្លានត្រូវបានសម្រេចដោយការយកចេញនូវឥន្ធនៈដែលឆេះនៅក្នុងភ្លើង។ សម្ភារៈដែលអាចឆេះបានអាចយកចេញបាន ឬឧស្ម័ន ឬប្រេងឥន្ធនៈត្រូវបានបិទ។ រូបភព 15:2 វិធីសាស្រ្តជាក់លាក់នៃការពន្លត់ភ្លើងជាញឹកញាប់រួមបញ្ចូលការបញ្ចូលគ្នានៃគោលការណ៍ច្រើនជាងមួយក្នុងចំណោមគោលការណ៍ទាំងបី។
តើមុខងាររបស់ dispatcher នៅក្នុង OS មានមុខងារអ្វីខ្លះ?
អ្នកបញ្ជូន។ សមាសធាតុមួយទៀតដែលពាក់ព័ន្ធនឹងមុខងារកំណត់ពេល CPU គឺអ្នកបញ្ជូន ដែលជាម៉ូឌុលដែលផ្តល់ការគ្រប់គ្រងស៊ីភីយូដល់ដំណើរការដែលបានជ្រើសរើសដោយកម្មវិធីកំណត់ពេលរយៈពេលខ្លី។ វាទទួលបានការគ្រប់គ្រងនៅក្នុងរបៀបខឺណែលដែលជាលទ្ធផលនៃការរំខានឬការហៅតាមប្រព័ន្ធ។
តើលក្ខខណ្ឌនៃការប្រណាំងអាចត្រូវបានរារាំងដោយរបៀបណា?
ការជៀសវាងលក្ខខណ្ឌនៃការប្រណាំង៖ ផ្នែកសំខាន់៖ ដើម្បីជៀសវាងលក្ខខណ្ឌនៃការប្រណាំង យើងត្រូវការការលើកលែងគ្នាទៅវិញទៅមក។ ការមិនរាប់បញ្ចូលទៅវិញទៅមក គឺជាវិធីមួយនៃការធ្វើឱ្យប្រាកដថា ប្រសិនបើដំណើរការមួយកំពុងប្រើប្រាស់អថេរ ឬឯកសារដែលបានចែករំលែកនោះ ដំណើរការផ្សេងទៀតនឹងត្រូវបានដកចេញពីការធ្វើរឿងដូចគ្នា។
តើអ្វីទៅជាផ្នែកសំខាន់ក្នុងការសរសេរកម្មវិធី?
ផ្នែកសំខាន់។ មកពីវិគីភីឌាជាសព្វវចនាធិប្បាយដោយឥតគិតថ្លៃ។ នៅក្នុងកម្មវិធីដំណាលគ្នា ការចូលប្រើប្រាស់ធនធានដែលបានចែករំលែកក្នុងពេលដំណាលគ្នាអាចនាំឱ្យមានអាកប្បកិរិយាដែលមិននឹកស្មានដល់ ឬមានកំហុស ដូច្នេះផ្នែកនៃកម្មវិធីដែលធនធានចែករំលែកត្រូវបានការពារ។ ផ្នែកដែលត្រូវបានការពារនេះគឺជាផ្នែកសំខាន់ ឬតំបន់សំខាន់។
តើអ្វីទៅជាលក្ខខណ្ឌប្រណាំងត្រូវពន្យល់ជាឧទាហរណ៍?
លក្ខខណ្ឌនៃការប្រណាំងគឺជាស្ថានភាពដែលមិនចង់បានដែលកើតឡើងនៅពេលដែលឧបករណ៍ ឬប្រព័ន្ធមួយព្យាយាមធ្វើប្រតិបត្តិការពីរ ឬច្រើនក្នុងពេលតែមួយ ប៉ុន្តែដោយសារលក្ខណៈនៃឧបករណ៍ ឬប្រព័ន្ធ ប្រតិបត្តិការត្រូវតែធ្វើឡើងតាមលំដាប់លំដោយត្រឹមត្រូវ ទើបត្រូវធ្វើបានត្រឹមត្រូវ។ .
តើអ្វីទៅជាភាពអត់ឃ្លាននៅក្នុងមូលដ្ឋានទិន្នន័យ?
ភាពអត់ឃ្លាននៅក្នុង DBMS ។ ការអត់ឃ្លាន ឬ Livelock គឺជាស្ថានភាពនៅពេលដែលប្រតិបត្តិការមួយត្រូវរង់ចាំរយៈពេលមិនកំណត់ដើម្បីទទួលបានសោ។ ហេតុផលនៃភាពអត់ឃ្លាន - ប្រសិនបើគ្រោងការណ៍នៃការរង់ចាំសម្រាប់ធាតុចាក់សោគឺមិនយុត្តិធម៌។ (ជួរអាទិភាព)
តើអ្វីទៅជាការអត់ឃ្លានក្នុងការកំណត់ពេលអាទិភាព?
នៅក្នុងក្បួនដោះស្រាយការកំណត់ពេលវេលាផ្អែកលើអាទិភាព បញ្ហាចម្បងគឺការទប់ស្កាត់មិនកំណត់ ឬភាពអត់ឃ្លាន។ ដំណើរការដែលត្រៀមរួចជាស្រេចដើម្បីដំណើរការ ប៉ុន្តែរង់ចាំស៊ីភីយូអាចត្រូវបានចាត់ទុកថាត្រូវបានរារាំង។ ក្បួនដោះស្រាយកំណត់ពេលអាទិភាពអាចទុកដំណើរការដែលមានអាទិភាពទាបមួយចំនួនរង់ចាំដោយគ្មានកំណត់។
តើអ្វីជាភាពជាប់គាំងនៅក្នុង multithreading?
Deadlock អាចកើតឡើងក្នុងស្ថានភាពមួយ នៅពេលដែលខ្សែស្រឡាយកំពុងរង់ចាំការចាក់សោវត្ថុ ដែលត្រូវបានទទួលដោយខ្សែស្រឡាយផ្សេងទៀត ហើយខ្សែស្រឡាយទីពីរកំពុងរង់ចាំការចាក់សោវត្ថុដែលត្រូវបានទទួលដោយខ្សែស្រឡាយទីមួយ។ ចាប់តាំងពី ខ្សែទាំងពីរកំពុងរង់ចាំគ្នាទៅវិញទៅមកដើម្បីដោះសោ លក្ខខណ្ឌត្រូវបានគេហៅថាជាប់គាំង។
រូបថតនៅក្នុងអត្ថបទដោយ“ វិគីមេឌាខមម៉ុន” https://commons.wikimedia.org/wiki/File:Firefox_OS_Cymraeg_-_Welsh._Sgrin_gartref_-_Home_screen.png