Điều gì xảy ra với các yêu cầu dịch vụ bị dừng với SIGSTOP


8

Nếu bạn gửi SIGSTOP đến máy chủ web, hạt nhân có chỉ báo cho ngăn xếp mạng chặn / ngủ tất cả các kết nối đến (các) ổ cắm của máy chủ đó cho đến khi tiếp tục không? Có vẻ như các giá trị thời gian chờ của máy chủ không thành vấn đề; Nó sẽ chờ đợi vô thời hạn, nhưng bằng cách nào?

Yêu cầu sẽ ngồi trong bộ đệm ổ cắm vô thời hạn? Nếu máy chủ web nhận được vô số yêu cầu thì sao? Điều gì xảy ra khi bộ đệm ổ cắm đầy?

Câu trả lời:


5

Từ quan điểm của bất kỳ phần nào của hệ thống không liên quan đến trạng thái và số liệu thống kê của quy trình, một quy trình bị dừng (nghĩa là sẽ không được lên lịch cho đến khi nhận được SIGCONT) không thể phân biệt được với quy trình đang chạy, nhưng không trả lời một truy vấn cụ thể. Ví dụ: ngăn xếp mạng hoạt động theo cùng một cách cho dù quá trình bị dừng hoặc đang thực hiện công việc (sử dụng thời gian CPU) nhưng không thực hiện bất kỳ cuộc gọi hệ thống nào hoặc bị chặn trong một số cuộc gọi hệ thống không được chặn bởi nguồn gốc mạng sự kiện (ví dụ như chờ đọc từ một đường ống), v.v.

Trong khi quá trình dừng lại, không có gì là quá thời gian chờ trong quy trình. Thường không có thời gian chờ trong ngăn xếp mạng: gói đã được máy nhận, ngay cả khi nó chưa được nhận vào máy. Theo như truyền TCP, gói tin đã được nhận và tùy thuộc vào ứng dụng để đáp ứng.

Nếu bộ đệm của ổ cắm đầy, ngăn xếp mạng sẽ bắt đầu loại bỏ các gói.

Không có lý do tại sao hành vi của ngăn xếp mạng sẽ phụ thuộc vào trạng thái của quy trình. Quá trình có thể ra khỏi trạng thái dừng bất cứ lúc nào. Có thể có nhiều quá trình lắng nghe trên một ổ cắm, vì vậy mọi quyết định dựa trên trạng thái quy trình sẽ phải đưa tất cả chúng vào tài khoản.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.