Ở bài này sẽ đi sâu hơn về cấu trúc bên trong hệ điều hành. Trả lời các câu hỏi về phương cách hoạt động và làm việc của hệ điều hành.
Trước hết bạn cần biết về tiến trình
Tiến trình là gì? Tiến trình là một thực thể đang thực hiện điều khiển một đoạn mã lệnh có riêng không gian, địa chỉ, ngăn xếp và sở hữu một trang thái giúp thông báo nó đang làm gì (đang chạy, đang chờ, đã đóng,…)
>> Câu hỏi: Tiến trình khác chương trình ở điểm nào.
- Chương trình là một thực thể bị động. | Tiến trình là thực thể chủ động.
- Tiến trình sở hữu một không gian, địa chỉ và ngăn xếp. Nói chung là nhiều thông tin trạng thái cho bộ đếm lệnh biết nó đang làm gì.
Quản lý bộ nhớ chính
Bộ nhớ chính là trung tâm của các thao tác, xử lý của các tiến trình.
Để nâng cao hiệu suất sử dụng CPU, hệ điều hành cần quản lý bộ nhớ thích hợp.
Tiến trình cần những gì để xử lý?
Gồm 4 thành phần quan trọng:
- CPU.
- Bộ nhớ.
- File.
- Thiết bị nhập xuất.
Nhiệm vụ chính của bộ nhớ chính.
- Thực thi tiến trình / Tạm dừng tiến trình.
- Thực hiện nhập xuất I/O.
- Giao tiếp giữa các tiến trình.
- Khống chế tắc nghẽn.
- Đồng bộ hoạt động.
Quản lý File
Hệ thống File bao gồm File và thư mục.
Các hoạt động quản lý chính:
- Tạo, xóa file | thư mục.
- Các thao tác xử lý file | thư mục.
- Ánh xạ file | thư mục vào thiết bị cấp tương ứng.
- Sao lưu và phục hồi dữ liệu.
Quản lý hệ thống I/O
Che dấu sự khác biệt giữa các thiết bị I.O với người dùng.
Có chức năng và nhiệm vụ:
- Cung cấp giao diện chung đến các trình điều khiển thiết bị.
- Thao tác: lưu cache, spooling và buffering.
- Điều khiển các thiết bị phần cứng.
Quản lý hệ thống lưu trữ thứ cấp
Bộ nhớ chính: kích thước nhỏ, là môi trường chứa tin không bền vững => cần hệ thống lưu trữ thứ cấp để lưu trữ bền vững các dữ liệu, chương trình.
Phương tiện lưu trữ thông dụng là đĩa từ, đĩa quang.
Nhiệm vụ của hệ điều hành trong quản lý đĩa.
Quản lý không gian trống trên đĩa(free space management)
Cấp phát không gian lưu trữ (storage allocation)
Định thời hoạt động cho đĩa (disk scheduling) => Sử dụng thường xuyên => ảnh hưởng lớn đến tốc độ của cả hệ thống => cần hiệu quả.
Hệ thống bảo vệ
Trong hệ thống cho phép nhiều user hay nhiều process diễn ra đồng thời.
Kiểm soát tiến trình người dùng đăng nhập/ xuất và sử dụng hệ thống.
Kiểm soát việc truy cập các tài nguyên trong hệ thống.
Bảo đảm những user/process chỉ được phép sử dụng các tài nguyên dành cho nó Các nhiệm vụ của hệ thống bảo vệ.
Cung cấp cơ chế kiểm soát đăng nhập/ xuất Phân định được sự truy cập tài nguyên hợp pháp và bất hợp pháp (authorized/unauthorized).
Phương tiện thi hành các chính sách (enforcement of policies) (vídụ: cần bảo vệ dữ liệu của ai đối với ai)
Hệ thống thông dịch lệnh
Là giao diện chủ yếu giữa người dùng và OS.
Ví dụ: shell, mouse-based window-and-menu
Khi user login command line interpreter (shell) chạy, và chờ nhận lệnh từ người dùng, thực thi lệnh và trả kết quả về.
Các lệnh ->bộ điều khiển lệnh ->hệ điều hành.
Các lệnh chủ yếu: Tạo, hủy, và quản lý tiến trình, hệ thống.
Kiểm soát I/O Quản lý bộ lưu trữ thứ cấp.
Quản lý bộ nhớ chính Truy cập hệ thống file và cơ chế bảo mật.
Lời gọi hệ thống
Dùng để giao tiếp giữa tiến trình và hệ điều hành.
Cung cấp giao diện giữa tiến trình và hệ điều hành.
Ví dụ: open, read, write file.
Thông thường ở dạng thư viện nhị phân (binary libraries) hay giống như các lệnh hợp ngữ.
Trong các ngôn ngữ lập trình cấp cao, một số thư viện lập trình được xây dựng dựa trên các thư viện hệ thống (ví dụ Windows API, thư viện GNU C/C++ như glibc, glibc++, …)
Ba phương pháp truyền tham số khi sử dụng system call.
- Qua thanh ghi.
- Qua một vùng nhớ, địa chỉ của vùng nhớ được gửi đến hệ điều hành qua thanh ghi.
- Qua stack.