[Question] Hỏi về user-space & kernel space trong linux ? |
09/11/2007 03:12:48 (+0700) | #1 | 96275 |
vietwow
Member
|
0 |
|
|
Joined: 28/06/2006 13:15:47
Messages: 90
Offline
|
|
Theo như mình đọc 1 số ebook và tài liệu thì trong linux chia làm 2 phần riêng biệt là Userspace (user mode) và kernel space (kernel mode hay còn gọi là system mode), và bất cứ process nào khi chạy cũng nằm trong những mode này. Và khi ta chạy 1 chương trình thì nó có thể chạy ở cả 2 mode này hoặc chỉ chạy 1 trong 2 mode, sử dụng lệnh time trong linux ta sẽ biết được điều này, vd :
time perl -e 'log(2.0) foreach(0..0x100000)'
real 0.40
user 0.20
sys 0.00
Có nghĩa là process này ko sử dụng đến kernel space (ko cần xử lý ở kernel space)
Hoặc trong bài viết của mrro http://vnhacker.blogspot.com/2007/07/khng-phi-c-hng-khng-l-tt.html thì him nói là " :
trong đó iowait (iowait = network i/o + memory i/o + disk i/o) chỉ dao động từ 3-4%, user (các thao tác thuộc user space, Oracle process nằm ở đây)
Vậy cho mình hỏi 1 process như thế nào thì mới cần đến kernel mode xử lý ?
Và khi mình chạy 1 chương trình (ko phải do mình viết & chương trình cũng ko open source) thì làm sao xác định nó chạy ở những mức nào (cả user & kernel luôn hay chỉ user mode như app oracle của mrro trong vd trên) ?
Cuối cùng là, như vd ở trên thì có những process chỉ chạy ở usermode mà ko chạy ở kernel mode. Vậy có process nào ngược lại, tức là chỉ chạy ở kernel mode mà ko chạy ở usermode ko ?
Mong các bạn giải thích kỹ giùm, nếu có tài liệu thì cho mình xin luôn
Thanx |
|
|
|
|
|