Nguyên lý hệ điều hành

CHƯƠNG 1 : TỔNG QUAN VỀ HỆ ĐIỀU HÀNH

Posted by anhtv on May 19, 2023

CHƯƠNG 1 : TỔNG QUAN VỀ HỆ ĐIỀU HÀNH

1. Khái niệm hệ điều hành

  • Cấu trúc phân lớp của hệ thống tính toán + Các thành phần của hệ thống tính toán : Application programs, System programs, Hardware, User + HĐH : Nằm giữa phần cứng của hệ thống và các chương trình ứng dụng, để cung cấp một môi trường để người sử dụng có thể thực hiện các chương trình ứng dụng làm cho máy tính dễ sử dụng hơn, thuận lợi hơn và hiệu quả hơn.
  • Chức năng hệ điều hành
    • Giả lập một máy ảo.
    • Quản lý tài nguyên của hệ thống (chức năng chính)

2. Lịch sử phát triển HĐH

3. Định nghĩa và phân loại HĐH

Trên các góc độ quan sát khác nhau sẽ có các định nghĩa khác nhau

  • Người sử dụng : HĐH là chương trình phục vụ khai thác hệ thống tính toán một cách thuận lợi
  • Người quản lý : HĐH là chương trình phục vụ quản lý chặt chẽ và khai thác tối ưu các tài nguyên của hệ thống.
  • QĐ kỹ thuật : HĐH là một chương trình trang bị cho một máy tính cụ thể để tạo ra máy tính logic mới với tài nguyên mới và khả năng mới.
  • QĐ hệ thống : HĐH là một hệ thống mô hình hóa, mô phỏng hoạt động của máy tính, của người sử dụng và của các thao tác viên, hoạt động trong chế độ đối thoại nhằm tạo môi trường khai thác thuận lợi hệ thống máy tính và quản lý tối ưu tài nguyên của hệ thống.

Phân loại :

  • Hệ thống xử lý theo lô đơn chương trình Thực hiện các chương trình (Job) lần lượt theo những chỉ thị đã định trước, khi 1 Job kết thúc hệ thống tự động thực hiện những Job tiếp theo mà không cần sự can thiệp từ quên ngoài. -> Đòi hỏi tổ chức hàng đợi công việc (job queue) -> Vấn đề : Khi nhập thiết bị vào ra -> Processor rơi vào trạng thái chờ đợi
  • Hệ thống xử lý theo lô đa chương trình Cho phép thực hiện nhiều chương trình đồng thời -> Ưu điểm : Tiết kiệm bộ nhớ (không cần nạp toàn bộ chương trình vào bộ nhớ), hạn chế thời gian rảnh rỗi của Processor.
  • Hệ thống phân chia thời gian thực Chia sẻ thời gian của Processor cho các chương trình/tiến trình đang sẵn sàng thực hiện Thường được gọi: hệ điều hành đa nhiệm ( Windows)
  • Hệ thống xử lý thời gian thực : Được sử dụng chủ yếu trong lĩnh vực điều khiển
  • Hệ thống song song : Xây dựng cho hệ thống có nhiều bộ vi xử lý.
  • Hệ thống phân tán : Mỗi bộ xử lý có một bộ nhớ cục riêng và trao đổi thông qua các đường truyền thông. -> Hệ thống phân tán được sử dụng để : Chia sẻ tài nguyên, tăng tốc độ tính toán, an toàn.

4. Các khái niệm trong HĐH

  • Tiến trình (Process) : là một chương trình đang thực hiện
  • Tiến trình >< chương trình
  • Chương trình : Thực thể thụ động, chứa đựng các chỉ thị điều khiển của máy tính thực hiện một nhiệm vụ nào đó.
  • Tiến trình : Trạng thái động của chương trình. -> 1 tiến trình có thê bao gồm nhiều luồng ( tiểu trình)
  • Luồng (Thread): là chuỗi (luồng) lệnh được thực hiện trong tiến trình Tiến trình chỉ chứa 1 luồng: (Heavyweight Process) Tiến trình gồm nhiều luồng: (Lightweighy Process) Mô hình đa luồng: (Multi_Threading) Các luồng hoạt động song song, chia sẻ biến toàn cục của tiến trình.
  • Tài nguyên hệ thống : Là tất cả những gì cần thiết cho một tiến trình có thể thực hiện được. Không gian: không gian lưu trữ của hệ thống Thời gian: thời gian thực hiện lệnh/truy xuất dữ liệu.
  • Tài nguyên hệ thống bao gồm:
    • Bộ nhớ: phân biệt bộ nhớ (vùng vật lý chứa dữ liệu) và truy cập tới bộ nhớ (quá trình tìm đến dữ liệu trên bộ nhớ)
    • Processor (Vi xử lý): Quan trọng nhất của hệ thống, Được truy cập ở mức câu lệnh
    • Thiết bị ngoại vi
      • Tiếp nhận, kết xuất thông tin
      • Gắn với hệ thống bởi các thiết bị điều khiển
  • Phân loại tài nguyên : Kiểu tài nguyên :
    • Tài nguyên vật lý : các thiết bị vật lý
    • Tài nguyên logic : biến nhớ, thiết bị ảo
  • Khả năng dùng chung : Tài nguyên ảo : VD Máy in ảo
  • Bộ xử lý lệnh (Shell)
    • Tiến trình đặc biệt: nơi giao tiếp giữa người dùng và HĐH
    • Nhiệm vụ : nhận lệnh của người sử dụng, phân tích lệnh, phát sinh tiến trình mới để thực hiện yêu cầu của lệnh.
    • Nhận lệnh : thông qua cơ chế dòng lệnh
  • Nhân hệ thống (Kernel) User -> Shell -> Kernel -> Hardware Là một chương trình máy tính ở mức thấp nhất, giao tiếp với phần cứng, điều khiển mọi thứ khác, nó là hạt nhân trái tim của HĐH. Chuyên đổi các yêu cầu đầu vào/đầu ra thành một tập lệnh cho CPU

5. Cấu trúc HĐH

5.1 Các thành phần của hệ thống

  • Quản lý tiến trình
  • Quán lý bộ nhớ chính
  • Quản lý hệ thống vào ra
  • Quản lý file
  • Quản lý bộ nhớ lưu trữ
  • Hệ thống trao đổi dữ liệu ( hệ thống phân tán)
  • Bảo vệ hệ thống
  • Giao diện người dùng

5.2 Dịch vụ HĐH

Dịch vụ chính yếu:

  • Thi hành chương trình
  • Thao tác nhập xuất
  • Thao tác trên hệ thống tập tin
  • Truyền thông
  • Phát hiện lỗi

Dịch vụ phụ trợ:

  • Cung cấp tài nguyên
  • Thống kê báo cáo
  • Bảo vệ

5.3 Lời gọi hệ thống:

Tạo môi trường giao tiếp giữa chương trình của người sử dụng và HĐH Phân loại

  • Quản lý tiến trình: khởi tạo tiến trình, huỷ tiến trình..
  • Quản lý bộ nhớ: cấp phát và giải phóng bộ nhớ…
  • Quản lý file: tạo mới, xoá, đọc và ghi file…
  • Quản lý thiết bị vào ra: thực hiện trao đổi vào/ra…
  • Trao đổi thông tin với hệ thống lấy/đặt ngày giờ…
  • Truyền thông liên tiến trình

5.4 Các cấu trúc hệ thống

  • Cấu trúc đơn giản
  • Cấu trúc theo lớp
  • Máy ảo
  • Mô hình Client-Server

5.5. Tính chất cơ bản của HĐH

  • Độ tin cậy cao : mọi hoạt động/thông báo của HĐH phải chuẩn xác
  • An toàn : dữ liệu và chương trình phải được bảo vệ
  • Hiệu quả : các tài nguyên phải được khai thác triệt để, hệ thống cần phải duy trì được tính đồng bộ
  • Tổng quát theo thời gian : hệ thống phải có tính kế thừa, hệ thống cần phải có khả năng thích nghi với những thay đổi có thể xảy ra
  • Thuận tiện : dễ sử dụng, nhiều mức với hiệu quả khác nhau, có hệ thống trợ giúp phong phú

5.6. Vấn đề xây dựng HĐH

Nguyên tắc xây dựng hệ điều hành :

  • Nguyên tắc modul
  • Nguyên tắc tương đối trong định vị
  • Nguyên tắc macroprocessor
  • Nguyên tắc khởi tạo trong cài đặt
  • Nguyên tắc lặp chức năng
  • Nguyên tắc giá trị chuẩn
  • Nguyên tắc bảo vệ nhiều mức