Cuộc gọi hệ thống trong hệ điều hành (Operating System): Là gì, các loại và ví dụ
⚡ Tóm tắt thông minh
Lệnh gọi hệ thống là giao diện được điều khiển mà một tiến trình sử dụng để yêu cầu các dịch vụ của nhân hệ điều hành, chẳng hạn như truy cập tập tin, điều khiển tiến trình và giao tiếp thiết bị, giúp chuyển đổi CPU một cách an toàn từ chế độ người dùng sang chế độ nhân hệ điều hành đặc quyền.

Cuộc gọi hệ thống là gì Operahệ thống ting?
A cuộc gọi hệ thống là một cơ chế cung cấp giao diện giữa một tiến trình và hệ điều hành. Đây là một phương pháp lập trình trong đó chương trình máy tính yêu cầu dịch vụ từ nhân của hệ điều hành.
Cuộc gọi hệ thống cung cấp các dịch vụ của hệ điều hành cho các chương trình người dùng thông qua API (Giao diện lập trình ứng dụng). Các cuộc gọi hệ thống là điểm vào duy nhất cho hệ thống kernel.
Cuộc gọi hệ thống vào Operahệ thống ting
Ví dụ về cuộc gọi hệ thống
Ví dụ, để viết một chương trình đọc dữ liệu từ một tệp và sao chép nó vào một tệp khác, chương trình trước tiên cần tên của hai tệp: tệp đầu vào và tệp đầu ra.
Trong một hệ thống tương tác, kiểu thực thi chương trình này đòi hỏi hệ điều hành phải thực hiện một số lệnh gọi hệ thống.
- Bước đầu tiên là viết một thông báo nhắc nhở lên màn hình.
- Thứ hai là đọc các ký tự xác định hai tập tin từ bàn phím.
Cuộc gọi hệ thống hoạt động như thế nào?
Dưới đây là các bước thực hiện lệnh gọi hệ thống trong hệ điều hành:
Archicấu trúc của cuộc gọi hệ thống
Như bạn có thể thấy trong sơ đồ gọi hệ thống ở trên:
Bước 1) Các tiến trình được thực thi ở chế độ người dùng cho đến khi một lệnh gọi hệ thống làm gián đoạn chúng.
Bước 2) Sau đó, lệnh gọi hệ thống được thực thi ở chế độ nhân hệ điều hành dựa trên thứ tự ưu tiên.
Bước 3) Sau khi quá trình thực thi lệnh gọi hệ thống kết thúc, quyền điều khiển sẽ trở lại chế độ người dùng.
Bước 4) Việc thực thi các tiến trình người dùng được tiếp tục, chuyển đổi giữa chế độ người dùng và chế độ khác. chế độ hạt nhân theo yêu cầu.
Tại sao bạn cần Cuộc gọi hệ thống trong hệ điều hành?
Sau đây là các trường hợp cần sử dụng lệnh gọi hệ thống trong hệ điều hành:
- Đọc và ghi từ các tập tin yêu cầu các cuộc gọi hệ thống.
- Nếu một hệ thống tệp muốn tạo hoặc xóa tệp thì cần phải có các lệnh gọi hệ thống.
- Cuộc gọi hệ thống được sử dụng để tạo và quản lý các quy trình mới.
- Kết nối mạng cần các cuộc gọi hệ thống để gửi và nhận gói.
- Việc truy cập vào các thiết bị phần cứng như máy quét hoặc máy in cần phải sử dụng lệnh gọi hệ thống.
Các loại cuộc gọi hệ thống
Dưới đây là năm loại lệnh gọi hệ thống trong hệ điều hành:
- điều khiển quá trình
- Quản lý tập tin
- Quản lý thiết bị
- Bảo trì thông tin
- Giao tiếp
Các loại lệnh gọi hệ thống trong hệ điều hành
điều khiển quá trình
Các lệnh gọi hệ thống này thực hiện nhiệm vụ tạo tiến trình, chấm dứt tiến trình, v.v.
Chức năng:
- Kết thúc và Hủy bỏ
- Tải và thực thi
- Tạo quy trình và chấm dứt quy trình
- Đợi và Signal Sự kiện
- Cấp phát và giải phóng bộ nhớ
Quản lý tập tin
Các cuộc gọi hệ thống quản lý tệp xử lý các công việc thao tác tệp như tạo tệp, đọc và ghi, v.v.
Chức năng:
- Tạo một tệp
- Xóa tài liệu
- Mở và đóng tập tin
- Đọc, viết và định vị lại
- Nhận và đặt thuộc tính tệp
Quản lý thiết bị
Quản lý thiết bị thực hiện công việc điều khiển thiết bị như đọc từ bộ đệm thiết bị, ghi vào bộ đệm thiết bị, v.v.
Chức năng:
- Yêu cầu và giải phóng thiết bị
- Kết nối hoặc ngắt kết nối thiết bị một cách hợp lý.
- Lấy và thiết lập thuộc tính thiết bị
Bảo trì thông tin
Nó xử lý thông tin và chuyển giao thông tin giữa hệ điều hành và chương trình người dùng.
Chức năng:
- Nhận hoặc đặt ngày giờ
- Nhận thuộc tính quy trình và thiết bị
Giao tiếp
Các loại lệnh gọi hệ thống này được sử dụng đặc biệt cho việc giao tiếp giữa các tiến trình.
Chức năng:
- Tạo và xóa các kết nối liên lạc
- Gửi và nhận tin nhắn
- Hỗ trợ chuyển thông tin trạng thái hệ điều hành
- Gắn hoặc tháo thiết bị từ xa
Quy tắc truyền tham số cho lệnh gọi hệ thống
Dưới đây là các quy tắc chung để truyền tham số cho lệnh gọi hệ thống:
- Các tham số cần được hệ điều hành đẩy vào hoặc lấy ra khỏi ngăn xếp.
- Các tham số có thể được truyền vào sổ đăng ký.
- Khi số lượng tham số nhiều hơn số lượng thanh ghi, chúng nên được lưu trữ trong một khối, và địa chỉ của khối đó nên được truyền qua một thanh ghi.
Các cuộc gọi hệ thống quan trọng được sử dụng trong hệ điều hành
đợi đã()
Trong một số hệ thống, một tiến trình phải chờ tiến trình khác hoàn thành. Điều này xảy ra khi tiến trình cha tạo ra tiến trình con, và tiến trình cha bị tạm dừng cho đến khi tiến trình con hoàn thành.
Việc tạm dừng tiến trình cha diễn ra tự động bằng lệnh gọi hệ thống wait(). Khi tiến trình con kết thúc thực thi, quyền điều khiển sẽ được chuyển trở lại tiến trình cha.
cái nĩa()
Các tiến trình sử dụng lệnh gọi hệ thống này để tạo ra các tiến trình con là bản sao của chính chúng. Với sự trợ giúp của fork(), tiến trình cha tạo ra tiến trình con, và tiến trình cha sẽ bị tạm dừng cho đến khi tiến trình con được thực thi.
hành ()
Lệnh gọi hệ thống này chạy một tệp thực thi bên trong một tiến trình đang chạy, thay thế tiến trình cũ. Mã định danh tiến trình ban đầu vẫn được giữ nguyên vì không có tiến trình mới nào được tạo ra, nhưng ngăn xếp, dữ liệu, vùng nhớ heap, v.v., được thay thế bởi tiến trình mới.
giết chết()
Hàm gọi hệ thống kill() được hệ điều hành sử dụng để gửi tín hiệu chấm dứt đến một tiến trình, yêu cầu nó thoát. Tuy nhiên, hàm gọi hệ thống kill không nhất thiết có nghĩa là giết chết tiến trình và có thể có nhiều ý nghĩa khác nhau.
lối ra()
Hàm gọi hệ thống exit() được sử dụng để chấm dứt quá trình thực thi chương trình. Đặc biệt trong môi trường đa luồng, lệnh gọi này xác định rằng quá trình thực thi của luồng đã hoàn tất. Hệ điều hành sẽ thu hồi các tài nguyên mà tiến trình đã sử dụng sau khi gọi hàm exit().




