9
4
Địa chỉ quay về sau lời gọi
copy
Địa chỉ quay về sau lời gọi
func2
Các tham số
của copy
old
new
frame 2
Frame 2
Tham số của func2 nhân
Biến cục bộ
fdold
fdnew
call copy ()
call
func2()
Biến cục bộ
Địa chỉ của Frame 0
Địa chỉ của Frame 0
Địa chỉ quay về sau lời gọi
main
Địa chỉ quay về sau lời gọi
func1
Tham số của
main
argc
argv
Frame 1
Frame 1
Tham số của func1 nhân
call main ()
call func1()
Các stack cho một quá trình
Quá trình trong UNIX được thực hiện theo một trong hai mode: mode nhân hay mode
người dùng và tương ứng với 2 mode này, quá trình sử dụng stack riêng biệt đối với mỗi
mode.
Stack người dùng chứa các đối số, biến cục bộ, và các dữ liệu khác đối với việc thực
hiện hàm trong mode người dùng. Stach nhân chứa các đối số, biến cục bộ, các tham số,
các địa chỉ liên kết v.v. liên quan đến thực hiện các hàm theo mode nhân.
4.1.4. Sơ bộ về điều khiển quá trình
Nhân sử dụng 4 cấu trúc dữ liệu sau đây để truy nhập đến quá trình:
•
Bảng các quá trình, tương ứng với mỗi quá trình đang tồn tại trong hệ thống là một
thành phần. Mỗi thành phần bao gồm một số trường sau đây (mỗi thành phần ở đây
chính là một PCB):
- Trạng thái của quá trình,
- Chủ sở hữu của quá trình,
- Trường liên quan đến trạng thái ngưng của quá trình (theo lời gọi hàm sleep)
- Địa chỉ của vùng sử dụng tương ứng với quá trình,
- Các thông tin tương ứng được trình bày trong PCB.
•
Vùng sử dụng (U-area) chứa các thông tin riêng, có tác dụng khi quá trình đang thực
hiện:
- Chỉ số thành phần tương ứng với quá trình trong bảng các quá trình: địa chỉ của
khối PCB tương ứng,
- Bộ đếm thời gian chạy mức nhân và mức người dùng,
- Các giá trị trả về và mã lỗi (nếu có) đối với lời gọi hệ thống hiện tại,
- Mô tả về các file đang mở ứng với quá trình,
- Tham số lưu trữ dung lượng dữ liệu di chuyển trong vào - ra.
- Thư mục hiện tại và thư mục gốc hiện tại: môi trường của quá trình,
- Các giới hạn kích thước file và quá trình,
- Các mức cho phép thực hiện đối với quá trình,
- Một số thông tin khác
•
Các bảng định vị địa chỉ bộ nhớ đối với mỗi quá trình,