GIÁO TRÌNH HỆ ĐIỀU HÀNH UNIX - LINUX - Trang 93

9
2

4.1.3. Các h thng con trong nhân
Hệ thống con điều khiển File có nhiệm vụ quản lý hệ thống File, cung cấp vùng nhớ rỗi

ở đĩa cho File, điều khiển truy cập File và tìm kiếm dữ liệu v.v. Đa số các thuật toán về các
lời gọi hệ thống liên quan đến File và các hàm chương trình con mức thấp đã được trình
bày trong chương 2. Các quá trình tương tác với Hệ thống con điều khiển File nhờ các lời
gọi hệ thống (các lời gọi hệ thống File mức cao). Việc truy nhập tới File nhờ hai cách thức:
truy nhập trực tiếp với File hoặc thông qua buffer cache.

Các buffer cache lưu trữ dữ liệu tạm thời theo từng khối. Nhân vào-ra dữ

liệu thông qua các khối trung gian và nhờ thiết bị nhớ thứ cấp: truy nhập dữ liệu
theo khối,

Nhân thao tác trực tiếp với khối điều khiển thiết bị để truy nhập trực tiếp dữ

liệu trong File không qua thiết bị phụ: truy nhập theo ký tự.

Hệ thống con điều khiển quá trình chịu trách nhiệm đồng bộ hóa sự tương tác liên quá

trình, quản lý bộ nhớ và lập lịch thực hiện đối với các quá trình đang tồn tại. Hệ thống con
điều khiển File và Hệ thống con điều khiển quá trình tương tác với nhau khi file được tải
vào bộ nhớ trong và cho thực hiện. Một số lời gọi hệ thống cho khối điều khiển quá trình:

fork: Tạo quá trình mới. Lời gọi hàm này có dạng pid=fork()

exec: Cho thực hiện quá trình đang tồn tại; exec(pid)

exit: Cho kết thúc quá trình đang tồn tại,

brk: điều khiển kích thước bộ nhớ cấp phát cho quá trình,

signal: Điều khiển các hiện tượng bất thường trong quá trình

Hệ thống con điều khiển quá trình bao gồm 3 thành phần sau đây:

Thành phần điều phối bộ nhớ có nhiệm vụ quản lý, điều khiển cấp phát bộ

nhớ. Một số trang bị loại bỏ khi cấp phát bộ nhớ cho quá trình.

Bộ lập lịch (schelduler) có nhiệm vụ điều phối CPU cho các quá trình. Các

quá trình có độ ưu tiên và bộ lập lịch chọn quá trình có độ ưu tiên cao nhất.

Bộ truyền thông liên quá trình thực hiện việc đồng bộ hóa các quá trình liên

quan nhau.

Bộ điều khiển phần cứng (hardware control) có chức năng cho phép ngắt và tương tác

thông tin với máy. Các thiết bị như đĩa, thiết bị đầu cuối có thể ngắt CPU khi đang thực
hiện quá trình. Các chương trình xử lý ngắt là hàm riêng biệt trong nhân mà không phải là
một quá trình.
Stack trong quá trình

Mỗi quá trình thực hiện được mode nhân và mode người dùng vì vậy phân chia hai loại

stack nhân và stack người dùng.

Chúng ta xem xét ví dụ sau:

#include <fenth.h>
char buffer[2048];
int version;
main (argc, argv);

int argc;

char *argv[];

|

int fdold, fdnew;