System call là gì

Trong hệ điểu hành có rất nhiều quy trình, luồng chạy trong từng mi-li giây, vậy liệu có chính sách nào cho chúng tiếp xúc với nhau ? Bài sau đây sẽ lý giải cơ bản cho bạn biết về System Call, cũng như cách chúng gọi API trong hệ quản lý .

System call là gì?

System call cho người dùng cách tiếp cận những tiện ích / dịch vụ của hệ quản lý và điều hành. Mọi phương pháp của người dùng qua giao diện ( GUI ), tập lệnh ( Batch ) hay câu lệnh ( command line, như cmd trong window ) đều có cùng mục tiêu chung là gọi system call, để nhu yếu hệ quản lý thực thi tác vụ cho mình .
Thông thường, những system call được viết bằng ngôn từ lập trình C hoặc C + +, hoặc assemble, đây là những ngôn từ lập trình cấp thấp ( low-level ), tức có năng lực tiếp cận trực tiếp đến bộ nhớ hay phần cứng máy tính .
System Calls In - Stream Hub

Bạn đang đọc: System call là gì

Sử dụng system call như thế nào

Trước hết, tất cả chúng ta cần hiểu system call được sử dụng như thế nào : Giả sử có một chương trình đơn thuần có tác vụ đọc tài liệu trong một file, và sao chép nó qua một file khác .
Để chương trình hoạt động giải trí thông thường, chương trình cần phải đọc tên của 2 file ( system call 1 : đọc file ) .

  • Nếu có lỗi xảy ra, chương trình phải xuất một dòng báo lỗi ra màn hình cho người dùng (system call 2: xuất ra màn hình) và thoát chương trình ngay (system call 3: thoát).
  • Nếu không có lỗi, sẽ đến một vòng lặp liên tục mà chương trình phải đọc từng dòng bên file này, và sao chép nó qua file kia (system call 4: sao chép).

Nếu file đầu ra ( file được sao chép tài liệu đến ) trùng tên file với một file có sẵn trong thư mục, phải tự tạo tên đuôi khác cho file ( system call 5 : tạo tên đuôi ) hoặc không được cho phép sao chép. Nếu ổ cứng có yếu tố trong việc đọc và ghi, phải được xuất tên lỗi cho người dùng ( lại một system call nữa ). Khi sao chép thành công xuất sắc, phải xuất ra màn hình hiển thị báo người dùng “ đã thành công xuất sắc ” .
Như hoàn toàn có thể thấy, một chương trình đơn thuần cần tạo ra rất nhiều system call. Thông thường, một mạng lưới hệ thống máy tính thực thi hàng trăm system call mỗi giây .

API là gì

Đa số những lập trình viên không nhìn chi tiết cụ thể đến vậy. Mà những lập trình viên ứng dụng phong cách thiết kế chương trình chạy bằng giao diện lập trình ứng dụng ( application programming interface, gọi tắt là API ). API là những hàm ( function ) có sẵn cho những cho những lập trình viên .
Các loại API phổ cập nhất :

  • Window API của hệ điều hành Window
  • POSIX API cho các hệ điều hành chạy nền tảng POSIX
  • Java API cho các chương trình chạy trên máy ảo Java

Một lập trình viên hoàn toàn có thể truy vấn API trải qua những hàm có sẵn trong những thư viện của hệ quản lý và điều hành. Nếu hệ quản lý được viết bằng ngôn từ lập trình C ( Unix hay Linux ), tên của thư viện đó là libc. Và những hàm đó có công dụng gọi system call thay những lập trình viên .
Ví dụ của một API chuẩn :
word image 163 - Stream Hub
api chuan

Một chương trình có sử dụng hàm read() (đọc) phải “include” thư viện unistd.h. Khi đọc thành công, Số lượng byte đã đọc sẽ được trả về.

Tại sao những lập trình viên thích sử dụng API hơn sử dụng thẳng system call ?
Đó là vì :

  • Đa hỗ trợ: lập trình sử dụng API có thể chạy trên các hệ điều hành khác nhau nếu chúng có hỗ trợ cùng API.
  • Dễ hơn: hệ thống thật sẽ vô cùng chi tiết và khó lập trình.

word image 164 - Stream Hub
system call interface
Với đa phần những ngôn từ lập trình, sẽ có một lớp ngăn cách giữa những ứng dụng và hệ quản lý và điều hành gọi là system call interface. Các ứng dụng trên máy tính muốn xài công dụng nào, dịch vụ nào của hệ quản lý và điều hành phải gọi trải qua lớp này. Mỗi dịch vụ của hệ quản lý và điều hành đều được đánh số, hệ quản lý sẽ tìm trong mạng lưới hệ thống của mình và sẽ trả về dịch vụ có số đánh tương ứng cho những ứng dụng .

Avatar of Nguyên Vũ

Nguyên Vũ

Website

Tôi có kinh nghiệm trong việc tạo ra những web vui vui phục vụ mục đích cá nhân và thoả mãn nhu cầu tìm kiếm thông tin từ người dùng. Tôi nhận ra nhiều trang web cung cấp thông tin chưa thực sự cá nhân hoá những thắc mắc của người dùng. Stream Hub là một sản phẩm “vui vui” tôi tạo ra có sứ mệnh giải quyết vấn đề đó.

5/5 - (1 vote)

Bài viết liên quan

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments