[Question] Hỏi về Linux Scheduler ? |
07/11/2007 04:06:56 (+0700) | #1 | 95771 |
|
rickb
Reseacher
|
Joined: 27/01/2007 17:47:27
Messages: 200
Offline
|
|
Mình đang đọc tài liệu có phần đế cập đến Linux Scheduler và lệnh time, nó nói : "real time is the amount of time between when the code started and when it exited. User time and system time are the amount of time spent executing application code versus kernel code, respectively."
Tức là real time trong phần output của lệnh time là thời gian tính từ lúc chương trình bắt đầu chạy cho đến lúc chương trình kết thúc, tương tự user time & system lần lượt là thời gian tính từ lúc bắt đầu -> kết thúc của 1 chương trình ở User mode và kernel mode
Nhưng đoạn sau nó có nói : "A basic knowledge of the Linux scheduler is helpful in interpreting the output, but this tool also is helpful for learning how the scheduler works. For example, the real time of a process typically is larger than the sum of the user and system time. Time spent blocking in a system call does not count against the process, because the scheduler is free to schedule other processes during this time"
Mình ko hiểu tại sao real time lại luôn luôn lớn hơn tổng thời gian user & systime cộng lại ?
Với lại đoạn sau là : "Time spent blocking in a system call does not count against the process, because the scheduler is free to schedule other processes during this time"
Mình cũng ko hiểu đoạn này nó muốn nói gì ?
Ai hiểu xin thích giải thích kỹ giúp mình, cám ơn nhiều
Thân |
|
|
|
|
[Question] Re: Hỏi về Linux Scheduler ? |
07/11/2007 11:29:30 (+0700) | #2 | 95869 |
Mr.Khoai
Moderator
|
Joined: 27/06/2006 01:55:07
Messages: 954
Offline
|
|
Chào rickb, khoai tạm dịch lại đoạn trên như sau:
"Thời gian thực (real time) của một tiến trình thường lớn hơn tổng thời gian ở mức người dùng và hệ thống. Thời gian mà tiến trình đó bị block khi thực hiện các system call không được tính cho tiến trình đó, vì scheduler có thể sắp xếp cho các tiến trình khác chạy".
Tóm lại: RealTime = UserTime + SysTime + blocked1 + blocked2 + .. + blockedn trong đó các blocked là các khoảng thời gian mà process đó bị blocked khi gọi các sys call.
khoai |
|
|
|
|
[Question] Re: Hỏi về Linux Scheduler ? |
08/11/2007 00:28:35 (+0700) | #3 | 95976 |
|
rickb
Reseacher
|
Joined: 27/01/2007 17:47:27
Messages: 200
Offline
|
|
Thanx Khoai đã trả lời
p/s : Còn ai có cao kiến gì ko nhỉ ? |
|
|
|
|
[Question] Re: Hỏi về Linux Scheduler ? |
08/11/2007 01:26:21 (+0700) | #4 | 95998 |
rcrackvn
Elite Member
|
0 |
|
|
Joined: 27/03/2007 02:04:05
Messages: 42
Offline
|
|
cao kiến thì không có, và Mr.Khoai cũng trả lời hầu hết rồi. Tui chỉ có 1 bổ sung:
Đoạn bạn không hiểu "Time spent blocking in a system call does not count against the process". Các syscalls trong Linux có thể chia làm 2 cat: blocking và non-blocking, ví dụ các blocking syscalls như là read(), recv(), recvfrom(), tổng quát hơn là recvmsg() là blocking syscalls, vì 1 process gọi những hàm trên không có cách nào để biết khi nào data available for reading. Ví dụ 1 server khi gọi 1 hàm trên khi có 1 client connect tới, nếu client chỉ ngồi đó k0 provide gì hết thì các hàm trên không return thứ gì cho server. Process khi đó được gọi là blocking. Điểm quan trọng liên quan tới scheduler là 1 blocking process sẽ KHÔNG bị đặt trở lại vào run queue, cho tới khi nó bị preempted bởi scheduler. Do đó quãng thời gian này không được tính vào user time, hoặc system time, mà tính vào tổng quãng thời gian tồn tại của process.
|
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|