Bài đăng

Đang hiển thị bài đăng từ Tháng 1, 2020

Chuyện gì xảy ra khi bạn chạy một chương trình

Hình ảnh
Chuyện gì xảy ra khi bạn chạy một chương trình (Bài viết này chỉ dành cho các bạn học lập trình và mong muốn hiểu rõ hơn về cách chương trình của mình vận hành. Nếu bạn là người ngoại đạo và vẫn muốn tiếp tục xem, thì xin mời ) Về tổng quan, khi bạn chạy chương trình (program), chương trình sẽ được nạp vào trong bộ nhớ chính và chờ thực thi. Lúc này, chương trình được gọi là tiến trình (process). Process chờ một khoảng thời gian cho đến khi nó được lựa chọn vào trong processor để thực thi (quá trình lựa chọn gọi là short-term scheduler). Đây là quá trình sơ bộ, nhưng ở đây mình sẽ phân tích kỹ hơn một chút. Khi bạn thực thi một chương trình, nó sẽ nạp theo một cấu trúc nhất định. Với mỗi hệ điều hành khác nhau thì cấu trúc sẽ khác nhau, nhưng về mặt trừu tượng, nó sẽ có dạng như sau. Stack: Vùng lưu trữ các biến cục bộ, các giá trị trả về, địa chỉ trả về,… Sử dụng cấu trúc LIFO. Các thao tác trên stack thường thông qua push và pop (nhưng vẫn có thể truy cập ngẫu nhiên...