Lions' 本読み (82)
気になったので sleep の呼び出し元を確認してみた。
- sched 手続き (proc#0)
- 優先度 PSWP (-100) なので signal 関係ナシ
- exec 手続き (システムコール)
- 優先度 EXPRI (-1) なので signal 関係ナシ
- wait 手続き (システムコール)
- 優先度 PWAIT (40) なので signal 許容
- ptrace 手続き (システムコール)
- 優先度 IPCPRI (-1) なので signal 関係ナシ
- getblk 手続き
- 優先度 PRIBIO (-50) なので signal 関係ナシ
- iowait 手続き
- 優先度 PRIBIO (-50) なので signal 関係ナシ
- mapalloc 手続き
- 優先度 PSWP (-100) なので signal 関係ナシ
- swap 手続き
- 優先度 PSWP (-100) なので signal 関係ナシ
- physio 手続き
- 優先度 PRIBIO (-50) なので signal 関係ナシ
- sslep 手続き (システムコール)
- 優先度 PSLEP (90) なので signal 許容
- alloc 手続き
- 優先度 PINOD (-90) なので signal 関係ナシ
- free 手続き
- 優先度 PINOD (-90) なので signal 関係ナシ
- ialloc 手続き
- 優先度 PINOD (-90) なので signal 関係ナシ
- iget 手続き
- 優先度 PINOD (-90) なので signal 関係ナシ
- readp 手続き
- 優先度 PPIPE (1) なので signal 許容
- writep 手続き
- 優先度 PPIPE (1) なので signal 許容
- plock 手続き
- 優先度 PPIPE (1) なので signal 許容
- wflushtty 手続き
- 優先度 TTOPRI (20) なので signal 許容
- canon 手続き
- 優先度 TTIPRI (10) なので signal 許容
- ttwrite 手続き
- 優先度 TTOPRI (20) なので signal 許容
- pcopen 手続き
- 優先度 PCIPRI (30) なので signal 許容
- pcread 手続き
- 優先度 PCIPRI (30) なので signal 許容
- pcoutput 手続き
- 優先度 PCOPRI (40) なので signal 許容
- lpoutput 手続き
- 優先度 LPPRI (10) なので signal 許容
あら? なんかナチュラル感満点になってきたぞ。
man 7 signal によると
以下な記述があります。
Interruption of System Calls and Library Functions by Signal Handlers
If a signal handler is invoked while a system call or library function call is blocked, then either:* the call is automatically restarted after the signal handler returns; or
* the call fails with the error EINTR.
デバイスドライバなレイヤで動作がアレな場合に起こりうる、ような記述があります。上記で言えば pc* とかは紙テープ云々、らしいので相当アレ。
psig 手続き核心
以下なソレを掘削したいんですが。
4051 if((p=u.u_signal[n]) != 0) { 4052 u.u_error = 0; 4053 if(n != SIGINS && n != SIGTRC) 4054 u.u_signal[n] = 0; 4055 n = u.u_arg[R6] - 4; 4056 grow(n); 4057 suword(n+2, u.u_ar0[RPS]); 4058 suword(n, u.u_ar0[R7]); 4059 u.u_ar0[R6] = n; 4060 u.u_ar0[RPS] =& ~TBIT; 4061 u.u_ar0[R7] = p; 4062 return; 4063 }
psig 手続きを呼び出すのは trap 手続き (2693) あるいは clock 手続き (3725) なのですがここからの戻りってどうなるんだったか。
メモ
テキスト 342p あたりを再確認のこと。あと
- rtt の副作用
- grow 手続き
- suword 手続き
- 362p の記述
など確認。明日も朝練。今日はこれから別件対応。