Linux ကို POSIX ယုံကြည်စိတ်ချရသောအချက်ပြမှုများ (လျှော့ "စံအချက်ပြမှုများ") နှင့် POSIX Real-time အချက်ပြမှုများကိုနှစ်ဦးစလုံးထောက်ခံပါတယ်။
စံနေရင်မြန်အောင်
Linux ကို အောက်တွင်ဖော်ပြထားသောစံအချက်ပြမှုများကိုထောက်ခံပါတယ်။ သည် "Value ကို" ကော်လံထဲမှာညွှန်ပြအဖြစ်အများအပြား signal ကိုနံပါတ်များ, ဗိသုကာမှီခိုဖြစ်ကြသည်။ သုံးတန်ဖိုးများကိုပေးအပ်ထားတယ်အဘယ်မှာ (ပထမဦးဆုံးတဦးတည်း alpha နှင့် sparc, i386, ppc နှင့် sh များအတွက်အလယ်တန်းတဦးတည်းနှင့် mips နောက်ဆုံးတဦးတည်းအဘို့အများအားဖြင့်တရားဝင်သည်။
တစ်ဦးက - တစ်အချက်ပြသက်ဆိုင်ရာဗိသုကာအပေါ်ပျက်ကွက်ကြောင်းရည်ညွှန်း) ။
အောက်မှာဖေါ်ပြတဲ့အတိုင်းစားပွဲ၏ "လှုပ်ရှားမှု" ကော်လံအတွက် posts များ, အ signal ကိုများအတွက် default အနေနဲ့အရေးယူဆောင်ရွက်မှုကိုသတ်မှတ်:
သက်တမ်း
default အရေးယူလုပ်ငန်းစဉ်ရပ်ဆိုင်းဖို့ဖြစ်ပါတယ်။
IGN
default လုပ်ဆောင်ချက်ကို signal ကိုလျစ်လျူရှုဖို့ဖြစ်ပါတယ်။
core
default အရေးယူလုပ်ငန်းစဉ်အဆုံးသတ်ခြင်းနှင့် core ကိုအရေးပေါ်သိမ်းထားဖို့ဖြစ်ပါတယ်။
ရပ်
default အရေးယူလုပ်ငန်းစဉ်ကိုရပ်တန့်ဖို့ပါပဲ။
ပထမဦးစွာမူလ POSIX.1 စံမှာဖော်ပြထားတဲ့အချက်ပြ။
signal | အဘိုး | လှုပ်ရှားမှု | မှတ်ချက် |
သို့မဟုတ်ဖြစ်စဉ်ကိုထိန်းချုပ်သေဆုံး | |||
SIGINT | 2 | သက်တမ်း | ကီးဘုတ်ကနေကြားဖြတ် |
SIGQUIT | 3 | core | ကီးဘုတ်ကနေနုတ်ထွက် |
SIGILL | 4 | core | တရားမဝင်ညွှန်ကြားချက် |
SIGABRT | 6 | core | (3) ဖျက်သိမ်းသည်ကနေ signal ကို abort |
SIGFPE | 8 | core | Floating အမှတ်ခြွင်းချက် |
SIGKILL | 9 | သက်တမ်း | signal ကိုသတ်ပစ် |
SIGSEGV | 11 | core | မှားနေသောမှတ်ဉာဏ်ကိုကိုးကား |
SIGPIPE | 13 | သက်တမ်း | ကျိုးပိုက်: အဘယ်သူမျှမစာဖတ်သူများနှင့်အတူပိုက်ထံစာရေး |
SIGALRM | 14 | သက်တမ်း | နှိုးစက်ကနေ timer signal ကို (2) |
SIGTERM | 15 | သက်တမ်း | ရပ်စဲ signal ကို |
SIGUSR1 | 30,10,16 | သက်တမ်း | user-defined signal ကို 1 |
SIGUSR2 | 31,12,17 | သက်တမ်း | user-defined signal ကို 2 |
SIGCHLD | 20,17,18 | IGN | ကလေးသူငယ်ရပ်တန့်သို့မဟုတ်ရပ်စဲ |
SIGCONT | 19,18,25 | ရပ်တန့်ပါလျှင် Continue | |
SIGSTOP | 17,19,23 | ရပ် | stop ဖြစ်စဉ်ကို |
SIGTSTP | 18,20,24 | ရပ် | stop TTY မှာရိုက် |
SIGTTIN | 21,21,26 | ရပ် | နောက်ခံလုပ်ငန်းစဉ်အတွက် TTY input ကို |
SIGTTOU | 22,22,27 | ရပ် | နောက်ခံလုပ်ငန်းစဉ်အတွက် TTY output ကို |
အဆိုပါအချက်ပြမှုများ SIGKILL နှင့် SIGSTOP, ဖမ်းမိပိတ်ဆို့, ဒါမှမဟုတ်လျစ်လျူရှုမရနိုင်ပါ။
အဆိုပါ POSIX.1 စံအတွက်အချက်ပြမှုများမဟုတ် Next ကိုဒါပေမယ့် SUSv2 နှင့် SUSv3 / POSIX 1003.1-2001 မှာဖော်ပြထားတဲ့။
signal | အဘိုး | လှုပ်ရှားမှု | မှတ်ချက် |
SIGPOLL | သက်တမ်း | Pollable ဖြစ်ရပ် (sys V ကို) ။ SIGIO ၏တစ်လုံးကိုအဓိပ္ပာယ်တူ synonym | |
SIGPROF | 27,27,29 | သက်တမ်း | ကို timer နေရာမှာသက်တမ်းကုန် |
SIGSYS | 12 - 12 | core | လုပ်ရိုးလုပ်စဉ်မှမကောင်းတဲ့အငြင်းအခုံ (SVID) |
SIGTRAP | 5 | core | သဲလွန်စ / breakpoints အားထောင်ချောက် |
SIGURG | 16,23,21 | IGN | socket ပေါ်အရေးပေါ်အခြေအနေ (4.2 BSD) |
SIGVTALRM | 26,26,28 | သက်တမ်း | virtual နှိုးစက်နာရီ (4.2 BSD) |
SIGXCPU | 24,24,30 | core | ကျော်လွန်သွား CPU ကိုအချိန်ကန့်သတ် (4.2 BSD) |
SIGXFSZ | 25,25,31 | core | ဖိုင်အရွယ်အစားကန့်သတ် (4.2 BSD) ကိုကျော်လွန် |
မှတက်နှင့် Linux 2.2, SIGSYS များအတွက် default အမူအကျင့်, SIGXCPU, SIGXFSZ နှင့်အပါအဝင် (SPARC နှင့် MIPS ထက်အခြားဗိသုကာအပေါ်) SIGBUS (က core ကိုအမှိုက်ပုံမပါဘဲ) လုပ်ငန်းစဉ်ရပ်ဆိုင်းဖို့ဖြစ်တယ်။ (အချို့နဲ့အခြား Unices တွင် SIGXCPU နှင့် SIGXFSZ များအတွက် default အနေနဲ့အရေးယူတဲ့အဓိကအမှိုက်ပုံမရှိဘဲလုပ်ငန်းစဉ်ရပ်ဆိုင်းဖို့ဖြစ်ပါတယ်။ ) Linux ကိုဤအအချက်ပြမှုများများအတွက် POSIX 1003.1-2001 လိုအပ်ချက်များ 2.4 ညီတစ်ဦး core ကိုအမှိုက်ပုံနှင့်အတူလုပ်ငန်းစဉ်ရပ်စဲ။
Next ကိုအမျိုးမျိုးသောအခြားအချက်ပြ။
signal | အဘိုး | လှုပ်ရှားမှု | မှတ်ချက် |
SIGEMT | 7 - 7 | သက်တမ်း | |
SIGSTKFLT | - 16 - | သက်တမ်း | (အသုံးမပြုတဲ့) coprocessor အပေါ်အပြစ်ရှာသီးနှံများကိုပုံ |
SIGIO | 23,29,22 | သက်တမ်း | ငါ / ယခုဖြစ်နိုင်သောအို (4.2 BSD) |
SIGCLD | -, -, 18 | IGN | SIGCHLD များအတွက်တစ်ဦးကတစ်လုံးကိုအဓိပ္ပာယ်တူ synonym |
SIGPWR | 29,30,19 | သက်တမ်း | Power ကပျက်ကွက် (System ကို V) |
SIGINFO | 29 - - | SIGPWR များအတွက်တစ်ဦးကတစ်လုံးကိုအဓိပ္ပာယ်တူ synonym | |
SIGLOST | - - - | သက်တမ်း | ပျောက် file ကို lock |
SIGWINCH | 28,28,20 | IGN | window အရွယ်အစားပြောင်း signal ကို (4.3 BSD, ဂနွေ) |
SIGUNUSED | - 31 - | သက်တမ်း | အသုံးမပြုတဲ့ signal ကို (SIGSYS ဖြစ်လိမ့်မည်) |
(Signal 29 sparc တခုတခုအပေါ်မှာ alpha ပေမယ် SIGLOST အပေါ် SIGINFO / SIGPWR ဖြစ်ပါသည်။ )
SIGEMT POSIX 1003.1-2001 အတွက်သတ်မှတ်ထားသောပေမယ် neverthless င်း၏ပုံသေလုပ်ဆောင်ချက်အဓိကအမှိုက်ပုံနှင့်အတူလုပ်ငန်းစဉ်ရပ်ဆိုင်းဖို့ပုံမှန်အားသည်အဘယ်မှာရှိပါဆုံးကတခြား Unices, ပေါ်မပေးပါ။
(POSIX 1003.1-2001 အတွက်သတ်မှတ်ထားသောမဟုတ်သော) SIGPWR ပုံမှန်အားကြောင့်ပေါ်လာသည်ဘယ်မှာရှိသူများသည်အခြား Unices အပေါ်ပုံမှန်အားဖြင့်လစ်လျူရှုသည်။
(POSIX 1003.1-2001 အတွက်သတ်မှတ်ထားသောမဟုတ်သော) SIGIO အခြား Unices အပေါ်ပုံမှန်အားဖြင့်လစ်လျူရှုသည်။
real-time နေရင်မြန်အောင်
Linux ကို ပု POSIX.4 Real-time extension များအတွက်မူလကသတ်မှတ်ထားသောအဖြစ် Real-time အချက်ပြမှုများကို support (နှင့်ယခု POSIX 1003.1-2001 တွင်ထည့်သွင်း) ။ Linux ကို 63 မှ 32 (SIGRTMIN) (SIGRTMAX) မှရေတွက် 32 Real-time အချက်ပြမှုများ, ထောက်ခံပါတယ်။ (Real-time signal ကိုဂဏန်းများ၏အကွာအဝေး Unices တလွှားကွာခြားကတည်းက Programs ကိုအမြဲသင်္ကေတ SIGRTMIN + N ကိုအသုံးပြုပြီး Real-time အချက်ပြမှုများကိုရည်ညွှန်းသင့်ပါတယ်။ )
စံအချက်ပြမှုများမတူဘဲ, Real-time အချက်ပြမှုများကိုအဘယ်သူမျှမကြိုတင်သတ်မှတ်ထားအဓိပ္ပါယ်များရှိသည်: Real-time အချက်ပြမှုများ၏တစ်ခုလုံးကို set ကိုလျှောက်လွှာ-သတ်မှတ်ထားသောရည်ရွယ်ချက်များအတွက်အသုံးပြုနိုင်ပါတယ်။ (ထို LinuxThreads အကောင်အထည်ဖော်မှုပထမသုံး Real-time အချက်ပြမှုများကိုအသုံးပြုကြောင်း, သို့သော်သတိပြုပါ။ )
တစ်ဦး unhandled Real-time signal ကိုများအတွက် default အနေနဲ့အရေးယူဆောင်ရွက်မှုလက်ခံရရှိသောဖြစ်စဉ်ကိုရပ်ဆိုင်းဖို့ဖြစ်ပါတယ်။
real-time အချက်ပြမှုများကိုအောက်ပါအားဖြင့်ခွဲခြားထားပါသည်:
- Real-time အချက်ပြမှုများ၏အကွိမျမြားစှာသာဓကတန်းစီနိုင်ပါသည်။ ကြောင်းအချက်ပြလက်ရှိပိတ်ဆို့နေဆန့်ကျင်ဘက်အားဖြင့်လျှင်တစ်ဦးစံ signal ကိုမျိုးစုံကိုသာဓကထို့နောက်တစ်ဦးတည်းသာဥပမာအားဖြင့်တန်းစီသည်ကိုအပ်ရသည်။
- အဆိုပါအချက်ပြ sigqueue (2) သုံးပြီးပို့လျှင်တစ်ခုပူးတှဲပါတန်ဖိုး (တစ်ခုကိန်းတစ်ခုသို့မဟုတ် pointer ကိုဖြစ်စေ) က signal ကိုအတူစေလွှတ်တော်မူနိုင်ပါသည်။ လက်ခံရရှိသောဖြစ်စဉ်ကို sigaction ဖို့ SA_SIGACTION အလံသုံးပြီးဒီ signal ကိုများအတွက် handler ကိုတည်စေခဲ့လျှင် (2) ထို့နောက်၎င်းသည် handler ကိုမှဒုတိယအငြင်းအခုံအဖြစ်ရှောက်သွားသောအခါ siginfo_t ဖွဲ့စည်းပုံ၏ si_value လယ်ပြင်ကနေတဆင့်ဒီဒေတာကိုရယူနိုငျပါသညျ။ ထို့အပွငျ, ဒီဖွဲ့စည်းပုံ၏ si_pid နှင့် si_uid လယ်ကွင်း signal ကိုပေးပို့ခြင်းလုပ်ငန်းစဉ်၏က PID နှင့်အစစ်အမှန်အသုံးပြုသူ ID ကိုရယူရန်အသုံးပြုနိုင်ပါသည်။
- real-time အချက်ပြမှုများတစ်ဦးကိုအာမခံနိုင်ရန်အတွက်ကယ်နှုတ်တော်မူ၏နေကြသည်။ တူညီတဲ့အမျိုးအစားအကွိမျမြားစှာကို real-time အချက်ပြမှုများကိုသူတို့လှေတျတျောမူခဲ့သညျအမိန့်ထဲမှာကယ်နှုတ်တော်မူ၏နေကြသည်။ ကွဲပြားခြားနားသော Real-time အချက်ပြမှုများလုပ်ငန်းစဉ်ကိုစလှေတျနေတယ်ဆိုရင်, သူတို့ကနိမ့်ဆုံး-ရေတွက် signal ကိုစတင်ကယ်နှုတ်တော်မူ၏နေကြသည်။ (IE, အနိမ့်ကိုရေတွက်အချက်ပြမှုများကိုအမြင့်ဆုံးဦးစားပေးရှိသည်။ )
နှစ်ဦးစလုံးစံနှင့် Real-time အချက်ပြမှုများလုပ်ငန်းစဉ်များအတွက်ဆိုင်းငံ့နေတယ်ဆိုရင်, POSIX ပထမဦးဆုံးအကိုအပ်သောမသတ်မှတ်ထားသောကြောင့်အရွက်။ Linux ကို, များစွာသောအခြားကလပ်စတူ, ဤကိစ္စတွင်အတွက်စံအချက်ပြမှုများကိုမှဦးစားပေးပေးသည်။
POSIX အဆိုအရတစ်ခုအကောင်အထည်ဖော်မှုမှာအနည်းဆုံး _POSIX_SIGQUEUE_MAX ဖြစ်စဉ်မှတန်းစီခံရဖို့ (32) Real-time အချက်ပြမှုများကိုခွင့်ပြုသင့်ပါတယ်။ သို့သော်မဟုတ်ဘဲတစ်ဦးနှုန်း-ဖြစ်စဉ်ကိုကန့်သတ်ထားခြင်းထက် Linux ကိုအားလုံးဖြစ်စဉ်များအဘို့တန်းစီ Real-time အချက်ပြမှုများ၏နံပါတ်ပေါ်တဲ့စနစ်-ကျယ်ပြန့်ကန့်သတ်ချမှတ်ထားတဲ့။
ဤသည်ကန့်သတ်ကြည့်ရှုအားပေး (နှင့်အခွင့်ထူးနှင့်အတူ) နိုင်ပါသည် / proc / sys / kernel ကို / rtsig-max ကိုဖိုင်ကနေတစ်ဆင့်ပြောင်းလဲသွားတယ်။ တစ်ဦးကဆက်စပ်ဖိုင် / proc / sys / kernel ကို / rtsig-max ကို, အချက်ပြမှုများလက်ရှိတန်းစီနေကြသည်မည်မျှ Real-time ထွက်ရှာရန်အသုံးပြုနိုင်ပါသည်။
ဘက်ဘက်ကလိုက်လျောညီထွေ
POSIX.1
အရေးကြီး: command တစ်ခုကိုသင်၏အထူးသဖြင့်ကွန်ပျူတာပေါ်တွင်အသုံးပြုသည်ကိုမည်သို့ကြည့်ဖို့လူကို command ကို (% သည်လူ) ကိုသုံးပါ။