3.5 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006z new: Quá trình đang được khởi tạo z running: các chỉ thị đang được thực hiện z waiting: Qu
Trang 1CHƯƠNG 3: QUÁ TRÌNH
Trang 23.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Trang 33.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
người dùng/ các nhiệm vụ
hiện quá trình phải tiến triển theo kiểu cách tuần tự
Trang 43.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Process in Memory
Trang 53.5 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
z new: Quá trình đang được khởi tạo
z running: các chỉ thị đang được thực hiện
z waiting: Quá trình đang chờ đợi một biến cố xảy ra
z ready: Quá trình đang chờ được cấp processor
z terminated: Quá trình kết thúc sự thực hiện
Trang 63.6 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Trang 73.7 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Process Control Block (PCB)
Thông tin kết hợp với mỗi quá trình
Trang 83.8 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Trang 93.9 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
TRÌNH
Trang 103.10 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Hàng đợi công việc (Job Queue) – tập tất cả các quá trình
trong hệ thống
Hàng đợi sẵn sàng (Ready Queue) – tập các quá trình nằm
trong bộ nhớ sẵn sàng và chờ đợi thực hiện
Các hàng đợi thiết bị (Device Queues) – tập các quá trình
chờ đợi một thiết bị I/O
Trang 113.11 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
HÀNG ĐỢI SẴN SÀNG & CÁC HÀNG ĐỢI
Trang 123.12 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Trang 133.13 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Bộ lập lịch biểu dài hạn (Long-term scheduler / job
scheduler) – chọn các quá trình để chuyển sang hàngđợi sẵn sàng
Bộ lập lịch biểu ngắn hạn (Short-term scheduler /
CPU scheduler) – chọn quá trình sẽ được thực hiện kếtiếp và cấp phát CPU cho nó
Trang 143.14 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Trang 153.15 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
z Quá trình I/O-bound – tiêu nhiều thời gian cho hoạt động I/O hơn cho tính toán, gồm nhiều CPU bursts ngắn
z Quá trình CPU-bound – tiêu nhiều thời gian hơn cho tínhtoán; gồm một số ít CPU bursts rất dài
Trang 163.16 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
thái của quá trình cũ và nạp trạng thái của quá trình mới
“hữu ích” khi chuyển ngữ cảnh
Trang 173.17 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
tạo ra các quá trình con của nó, tạo ra một cây các quá trình
Trang 183.18 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
z Fork: lời gọi hệ thống tạo quá trình mới
z Exec: lời gọi hệ thống được dùng sau fork để thay thế không
gian bộ nhớ của quá trình với chương trình mới
Trang 193.19 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Trang 203.20 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
int main() {
pid_t pid;
/* fork another process */
pid = fork();
if (pid < 0) { /* error occurred */
fprintf(stderr, "Fork Failed");
exit(-1);
} else if (pid == 0) { /* child process */
execlp("/bin/ls", "ls", NULL);
} else { /* parent process */
/* parent will wait for the child to complete */
wait (NULL);
printf ("Child Complete");
exit(0);
} }
Trang 213.21 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Trang 223.22 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
(exit)
– Tất cả các con bị kết thúc – Kết thúc hàng loạt
(cascading termination)
Trang 233.23 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Quá trình độc lập không ảnh hưởng và không bị ảnh hưởng bởi
sự thực hiện của quá trình khác
Quá trình hợp tác có thể ảnh hưởng và bị ảnh hưởng bởi sự thực
hiện của quá trình khác
Trang 243.24 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
suất thông tin được tiêu thụ bởi quá trình consumer
z Buffer không giới nội (unbounded-buffer) không bị giới
hạn về kích cỡ buffer
z Buffer giới nội (bounded-buffer) buffer có kích cỡ cố định
Trang 253.25 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
SẺ
#define BUFFER_SIZE 10 typedef struct {
} item;
Trang 263.26 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
BUFFER GIỚI NỘI – PHƯƠNG PHÁP Insert()
while (true) { /* Produce an item */
while (((in = (in + 1) % BUFFER SIZE count) == out)
; /* do nothing no free buffers */
buffer[in] = item;
in = (in + 1) % BUFFER SIZE;
}
Trang 273.27 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
BUFFER GIỚI NỘI – PHƯƠNG PHÁP Remove()
while (true) {while (in == out)
; // do nothing nothing to consume
// remove an item from the bufferitem = buffer[out];
out = (out + 1) % BUFFER SIZE;
return item;
}
Trang 283.28 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
động của chúng
dụng đến các biến chia sẻ
z send(message) – message kích cỡ cố định/thay đổi
z receive(message)
z Thiết lập một nối kết liên lạc
Thực thi nối kết liên lạc:
z logic (Các tính chất logic)
Trang 293.29 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
đổi?
Trang 303.30 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
CÁC MÔ HÌNH LIÊN LẠC
Trang 313.31 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
LIÊN LẠC TRỰC TIẾP
z send (P, message) – gửi một message cho quá trình P
z receive(Q, message) – nhận một message từ quá trình Q
hướng
Trang 323.32 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
LIÊN LẠC GIÁN TIẾP
tham khảo như các ports)
Các tính chất của nối kết liên lạc
mailbox chung
z Mỗi cặp quá trình có thể chia sẻ một vài nối kết liên lạc
Trang 333.33 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
LIÊN LẠC GIÁN TIẾP
send(A, message) – gửi một message đến mailbox A receive(A, message) – nhận một message từ mailbox A
Trang 343.34 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
LIÊN LẠC GIÁN TIẾP
động nhận
sẽ nhận
Trang 353.35 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Blocking được xét là đồng bộ (synchronous)
z Gửi Blocking: người gửi bị ngăn đến tận khi message được
nhận
z Nhận Blocking: người nhận bị ngăn đến tận khi một message
là sẵn có
Non-blocking được xét là phi đồng bộ (asynchronous)
z Gửi Non-blocking: Người gửi gửi message và tiếp tục
z Nhận Non-blocking: người nhận nhận một message hợp lệ /
vô hiệu
Trang 363.36 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
BUFFER
trong ba cách
Người gửi phải chờ người nhận (hẹ hò)
Người gửi phải chờ nếu nối kết đầy
Người gửi không phải chờ
Trang 373.37 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
LIÊN LẠC Client-Server
Trang 383.38 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Sockets
161.25.19.8
Trang 393.39 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
LIÊN LẠC Socket
Trang 403.40 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
các hệ thống mạng
Stubs – proxy phía client cho thủ tục trên server.
tham số
thực hiện thủ tục trên server
Trang 413.41 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Trang 423.42 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
RPC
một phương pháp trên một đối tượng ở xa
Trang 433.43 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006
Trang 44End of Chapter 3