intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng: Nguyên lý hệ điều hành (Trần Anh Tuấn)

Chia sẻ: Vũ Bảo Anh | Ngày: | Loại File: DOC | Số trang:81

228
lượt xem
69
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Giao diện ảo là giao diện giữa người sử dụng và MTĐT được thực hiện thông qua hệ thống menu. Các thành phần của hệ thống rất phức tạp và đa dạng về chức năng. Hệ thống menu là một dạng bảng chọn, giới thiệu cho người sử dụng các khả năng phục vụ của MTĐT, để người sử dụng có thể khai thác tốt các công cụ có trong tay.

Chủ đề:
Lưu

Nội dung Text: Bài giảng: Nguyên lý hệ điều hành (Trần Anh Tuấn)

  1. VIỆN ĐẠI HỌC MỞ KHOA CÔNG NGHỆ ĐIỆN TỬ-THÔNG TIN BÀI GIẢNG NGUYÊN LÝ HỆ ĐIỀU HÀNH TRẦN ANH TUẤN Hà Nội 2012 1
  2. Chương 1 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH Vai trò, mối quan hệ của HĐH với người sử dụng và các thành phần trong máy tính. Các khái niệm, chức năng, thành phần, cấu trúc và các tính chất, nguyên tắc xây dựng HĐH. Các vấn đề đặt ra khi nghiên cứu HĐH. 1.1. MỘT SỐ KHÁI NIỆM LIÊN QUAN 1.1.1. Một số khái niệm về HĐH 1.1.1.1. HĐH là môi trường trung gian - Người sử dụng MTĐT: + Chỉ quan tâm đến việc hệ thống có đáp ứng được các yêu cầu của họ hay không: bộ nhớ, thiết bị ngoại vi, các chương trình phần mềm… + Nhu cầu của người sử dụng rất lớn, đa dạng, luôn thay đổi. + Khai thác không triệt để các tính năng của MTĐT. - MTĐT: + Khả năng thường khác xa với mong muốn của người sử dụng. + Tính năng của MTĐT gần như không thay đổi trong thời gian dài + Không phù hợp giữa chi phí phục vụ cho MTĐT và lợi ích mà MTĐT mang lại. - Hệ điều hành là môi trường trung gian giữa người sử dụng với các ứng dụng thông qua giao diện ảo và giữa các chương trình ứng dụng với phần cứng của MTĐT qua giao diện vật lý, để sử dụng hiệu quả phần cứng của MTĐT. Applications Giao diện Giao diện vật lý ảo User Processors - Giao diện ảo là giao diện giữa người sử dụng và MTĐT được thực hiện thông qua hệ thống menu. Các thành phần của hệ thống rất phức tạp và đa dạng về chức năng. Hệ thống menu là một dạng bảng chọn, giới thiệu cho người sử dụng các khả năng phục vụ của MTĐT, để người sử dụng có thể khai thác tốt các công cụ có trong tay. + giới thiệu các thành phần của hệ thống. + giới thiệu cơ chế ra lệnh - thực hiện: các danh mục công việc có thể yêu cầu. + các công việc được phân nhóm theo từng phạm trù, thuận tiện tìm kiếm. + sau khi kích hoạt hệ thống, MTĐT hướng dẫn người sử dụng chi tiết các công việc tiếp theo. 2
  3. - Giao diện vật lý: các câu lệnh của các chương trình ứng dụng được chuyển thành các lệnh điều khiển hoạt động của BXL và các thành phần khác của máy tính, cung cấp chức năng sử dụng theo yêu cầu người dùng. 1.1.1.2. Một số khái niệm HĐH là một khái niệm của ngành khoa học ứng dụng, liên quan đến nhiều lĩnh vực, nhiều lớp người sử dụng khác nhau. Có nhiều khái niệm về HĐH trên các quan điểm khác nhau. - Quan điểm người sử dụng: HĐH là tập hợp các chương trình, phục vụ khai thác hệ thống tính toán một cách dễ dàng thuận tiện. - Quan điểm người làm công tác quản lý: HĐH là một tập các chương trình, phục vụ quản lý chặt chẽ và sử dụng tối ưu các tài nguyên của hệ thống tính toán. - Quan điểm người làm công tác kỹ thuật: HĐH là hệ thống chương trình, trang bị cho một máy tính cụ thể để tạo ra một máy logic mới, với các tài nguyên và khả năng mới. - Quan điểm người làm lập trình hệ thống: HĐH là hệ thống mô hình hoá, mô phỏng các hoạt động của máy, của người sử dụng và của thao tác viên (người viết chương trình), hoạt động trong chế độ đối thoại, nhằm tạo môi trường khai thác thuận tiện và quản lý tối ưu các tài nguyên của hệ thống tính toán. + quan điểm từ bên trong HĐH (hệ thống) + xác định các thành phần của hệ thống, các mối quan hệ giữa các thành phần đó với nhau. + HĐH là một hệ chuyên gia: mô phỏng 3 thành phần, trong đó 2 thành ph ần là con người (hệ chuyên gia sớm nhất và hoàn thiện nhất: hệ thống tự động hoá trợ giúp, nâng cao hiệu quả vận hành và khai thác MTĐT). HĐH là phần mềm hệ thống, là môi trường thực thi triển khai (thực hiện) các yêu cầu của người sử dụng, các chương trình (phần mềm) ứng dụng và điều khiển phần cứng (các tài nguyên) để đáp ứng ứng các yêu cầu của người sử dụng. Trong phạm vi môn học, hệ điều hành là hệ thống chương trình với các chức năng điều phối (chọn lựa) và phân phối các công việc cho các thành phần chức năng trong MTĐT để sử dụng hiệu quả nhất hệ thống máy tính và thỏa mãn ở mức cao nhất yêu cầu đa dạng của người dùng. 1.1.2. Các tài nguyên hệ thống (System Resources) - Tài nguyên là vật chất hoặc phi vật chất, có thể đáp ứng cho một nhu cầu nhất định. Tài nguyên hệ thống là các thành phần (bộ phận) trong hệ thống tính toán (máy tính), được dùng để máy tính thực hiện các chương trình theo yêu cầu. Tài nguyên hệ thống bao gồm tài nguyên phần cứng và tài nguyên phần mềm (các chương trình, các dữ liệu). - Các thành phần chức năng trong cấu trúc logic của máy tính là những tài nguyên 3
  4. hệ thống, HĐH cần thực hiện quản lý khai thác sử dụng chúng. HĐH cần nắm chắc các thuộc tính của mỗi loại tài nguyên và thuộc tính được sử dụng để quản lý khai thác sử dụng (để chia sẻ) chúng. Các tài nguyên của hệ thống có 2 thuộc tính cơ bản sau: - Thuộc tính không gian (dung lượng): là kích thước, là mức độ lưu trữ được của tài nguyên. Thuộc tính không gian chỉ có đối với tài nguyên bộ nhớ, như đĩa nhớ, bộ nhớ chính. - Thuộc tính thời gian: là thời gian sử dụng (hay thời gian chiếm giữ) tài nguyên. Thuộc tính thời gian có đối với hầu hết các tài nguyên hệ thống, như thời gian sử dụng các processor, thời gian truy xuất dữ liệu trên bộ nhớ, sử dụng các kênh, các thiết bị điều khiển... 1.1.2.1. Bộ nhớ trong (chính): - BN là thiết bị lưu trữ duy nhất mà thông qua đó BXL trực tiếp sử dụng các d ữ liệu hoặc trao đổi các thông tin trong BN. - Các thuộc tính của BN: + Thời gian truy nhập trực tiếp (thời gian trực tiếp để truy nhập đến địa chỉ ô nhớ bất kỳ trong BN) + Thời gian truy nhập dữ liệu tuần tự khi tổ chức lưu trữ dữ liệu tuần tự (liên tiếp) + Kích thước (dung lượng) BN: byte… + Đơn giá BN: tuỳ theo tốc độ truy nhập trực tiếp và kế tiếp - BN được gọi là thực hiện nếu processor có thể thực hiện câu lệnh bất kỳ ghi trong đó. Với BN thực hiện, thời gian truy nhập trực tiếp và thời gian truy nhập tuần tự là gần bằng nhau. - Các loại mức BN: + Mức BN trong: có mức nhớ cao nhất, thuộc quyền quản lý của hệ thống. BN trong - BN cơ sở - bao giờ cũng là BN thực hiện. + Mức BN trong thứ hai, kém linh hoạt hơn, nhưng có thời gian truy nhập gần bằng loại thứ nhất: BN mở rộng. + Mức BN ngoài - BN phụ: thời gian truy nhập trực tiếp thường lớn hơn thời gian truy nhập tuần tự (vài chục đến vài trăm lần). BN ngoài là đĩa cứng, các thi ết bị nhớ, có khối lượng nhớ lớn, an toàn trong lưu trữ. Để chương trình được thực hiện, dữ liệu (các thông tin đầu vào, các chương trình…) được đưa từ BN ngoài vào BN trong - là BN mà HĐH trực tiếp quản lý - và sau đó được BXL truy nhập đáp ứng theo yêu cầu chương trình. HĐH sẽ quản lý các vùng BN cấp phát cho chương trình và thời điểm điểm thực hiện cấp phát, vừa nhằm sử dụng BN hiệu quả nhất (đáp ứng cho nhiều chương trình đồng thời), đảm bảo yêu cầu của chương trình, vừa đảm bảo đồng bộ với tốc độ hoạt động của BXL. 1.1.2.2. Bộ xử lý (thiết bị xử lý trung tâm) - Bộ xử lý là một tài nguyên quan trọng, được truy nhập ở mức câu lệnh và là nơi 4
  5. duy nhất thực hiện các câu lệnh. Mỗi processor được quản lý và phân phối riêng biệt như những tài nguyên độc lập, phân phối cho các tiến trình. - Các thuộc tính (tốc độ xử lý, độ dài từ máy: từ máy là lượng thông tin đồng thời mà BXL xử lý trong một nhịp làm việc; độ dài từ máy là số lượng bit nhị phân của toán hạng đối số trong phép tính cơ bản của BXL). Trong đó, tham số đặc trưng của tài nguyên processor: thời gian thực hiện câu lệnh. 1.1.2.3. Thiết bị điều khiển vào/ra - Khái niệm: thiết bị kết nối giữa BXL với các thiết bị ngoài (chuyển đổi thông tin giữa môi trường ngoài và khu vực trung tâm; đồng bộ hóa hoạt động của các thành phần và nâng hiệu quả sử dụng BXL - Kênh (channel – bộ xử lý vào-ra): điều khiển sự trao đổi thông tin giữa BN trong và thiết bị ngoài; phân loại: kênh chậm (đa tuyến – nối với nhiều thiết bị tốc độ chậm, phục vụ lần lượt sau mỗi byte vào-ra; kênh nhanh (kênh chọn – nối vào một thi ết b ị, phục vụ trọn vẹn một yêu cầu vào-ra). - Thiết bị điều khiển thiết bị ngoại vi: phân cấp chức năng của hệ thống vào-ra dưới sự điều khiển của kênh là thiết bị điều khiển thiết bị vào-ra. - Thiết bị vào-ra: trực tiếp thực hiện thao tác đưa thông tin vào-ra. - Tham số đặc trưng của tài nguyên thiết bị điều khiển: thời gian sử dụng, là thời gian kết nối giữa thiết bị điều khiển I/O với các thiết bị ngoại vi. 1.1.2.4. Nguyên tắc sử dụng (chia sẻ - dùng chung) tài nguyên hệ thống Việc phân chia tài nguyên để cấp phát cho các tiến trình khi nó có yêu cầu, đặc biệt là các tiến trình hoạt động đồng thời với nhau và giải quyết vấn đ ề tranh chấp tài nguyên giữa các tiến trình đồng thời khi yêu cầu phục vụ của các tiến trình này vượt quá khả năng cấp phát của một tài nguyên kể cả đó là tài nguyên phân chia được. Nguyên tắc sử dụng tài nguyên hệ thống là cách thức phân chia tài nguyên hệ thống cho các tiến trình nhằm đáp ứng cho nhiều tiến trình đồng thời và khả năng có hạn của tài nguyên hệ thống trong những điều kiện nhất định. - Tài nguyên phân chia được (tài nguyên có thuộc tính dung lượng - BN): phân chia tài nguyên cho nhiều đối tượng sử dụng đồng thời (chia sẻ theo không gian). - Tài nguyên không thể phân chia được (tài nguyên có thuộc tính thời gian sử dụng - phần lớn các tài nguyên trong hệ thống thuộc loại này – được chia sẻ theo thời gian): + phân phối lần lượt đáp ứng nhu cầu cho từng tiến trình. + chọn tốc độ chuyển giao và khoảng thời gian phục vụ sao cho tạo cảm giác các tiến trình được phục vụ đồng thời. Đó là quá trình sử dụng song song: các đĩa từ, các modul thuộc loại sử dụng nhiều lần… + 1 số loại tài nguyên chỉ có thể sử dụng tuần tự: máy in, máy vẽ… HĐH phải tạo ra tài nguyên ảo. - Tài nguyên ảo là tài nguyên mà khi cung cấp cho người sử dụng, một hoặc một 5
  6. số thuộc tính của tài nguyên đó đã được biến đổi cho phù hợp yêu cầu người sử dụng. Nó chỉ xuất hiện khi hệ thống cần tới nó hoặc khi hệ thống tạo ra nó và nó sẽ tự động mất đi khi hệ thống kết thúc hay chính xác hơn là khi tiến trình gắn với nó đã kết thúc. - Cách truy nhập và sử dụng tài nguyên ảo thể hiện trên thiết bị vật lý là khác nhau. - Phạm vi áp dụng của tài nguyên ảo: + Áp dụng rộng rãi cho các tài nguyên chỉ hoạt động theo nguyên tắc tuần tự (máy in...) + Đối với các tài nguyên phân phối song song: tách tài nguyên vật lý thành nhiều tài nguyên logic, theo cách nhìn của người sử dụng (căn cứ vào dạng tài nguyên vật lý cụ thể, sử dụng kỹ thuật mô phỏng và các chương trình kích hoạt cần thiết để tổ chức các tài nguyên logic). CHỨC NĂNG CỦA HỆ ĐIỀU HÀNH 1.2. 1.2.1. Giả lập một máy tính mở rộng Giả lập một máy tính mở rộng là tạo một môi trường giao tiếp giữa người s ử dụng với máy tính mở rộng, để người sử dụng chỉ thông qua môi trường giao tiếp này tác động đến máy tính mở rộng nhằm thực hiện được các chương trình yêu cầu. Máy tính mở rộng là một máy tính có đầy đủ các chức năng của một máy tính thực nhưng đơn giản và dễ sử dụng hơn. Khi người sử dụng tác động vào máy tính mở rộng, mọi sự chuyển đổi thông tin điều khiển từ máy tính mở rộng sang máy tính th ực hoặc ngược lại đều do hệ điều hành thực hiện. Giả lập một máy tính mở r ộng giúp người sử dụng khai thác các chức năng của phần cứng máy tính dễ dàng và hiệu quả hơn. 1.2.2. Quản lý, chia sẻ tài nguyên của hệ thống Tài nguyên hệ thống, đặc biệt là các tài nguyên phần cứng thường rất giới hạn nhưng cần đáp ứng cho nhiều chương trình đồng thời. Nhằm thỏa mãn nhiều yêu cầu chỉ với số lượng tài nguyên hữu hạn, nâng cao hiệu quả sử dụng tài nguyên, HĐH c ần có cơ chế và chiến lược thích hợp để quản lý việc phân phối tài nguyên. Nhiều chương trình sử dụng có nhu cầu chia sẻ thông tin (tài nguyên phần mềm). HĐH cần đảm bảo phối hợp việc chia sẻ tài nguyên và việc truy suất đ ến các tài nguyên là hợp lệ. 1.2.3. Một số chức năng khác Trên đây là hai chức năng tổng quát của một hệ điều hành, đó cũng đ ược xem như là các mục tiêu mà các nhà thiết kế, cài đặt hệ điều hành phải hướng tới. Các h ệ điều hành hiện nay có các chức năng cụ thể sau đây: - Hệ điều hành cho phép thực hiện nhiều chương trình đồng thời trong môi trường đa tác vụ - Multitasking Environment. Hệ điều hành phải xác định khi nào thì một ứng dụng được chạy và mỗi ứng dụng được chạy trong khoảng thời gian bao lâu thì phải dừng lại để cho các ứng dụng khác được chạy. - Hệ điều hành tự nạp nó vào bộ nhớ - It loads itself into memory: Quá trình 6
  7. nạp hệ điều hành vào bộ nhớ được gọi là quá trình Booting. Chỉ khi nào hệ điều hành đã được nạp vào bộ nhớ thì nó mới cho phép người sử dụng giao tiếp với phần cứng. Trong các hệ thống có nhiều ứng dụng đồng thời hoạt động trên bộ nhớ thì hệ điều hành phải chịu trách nhiệm chia sẻ không gian bộ nhớ RAM và bộ nhớ cache cho các ứng dụng này. - Hệ điều hành và API: Application Programming Interface: API là một tập các hàm/thủ tục được xây dựng sẵn bên trong hệ thống. Hệ điều hành giúp cho chương trình của người sử dụng giao tiếp với API hay thực hiện một lời gọi đ ến các hàm/thủ tục của API. - Nạp dữ liệu cần thiết vào bộ nhớ - It loads the requied data into memory: Hệ điều hành phải luôn theo dõi bản đồ cấp phát bộ nhớ, gồm địa chỉ dữ liệu và chương trình được lưu trữ tại BN để ghi và đọc các dữ liệu, chương trình khi cần thiết. - Hệ điều hành biên dịch các chỉ thị chương trình - It interprets program instructions: Hệ điều hành cũng chịu trách nhiệm sinh ra thông báo lỗi khi hệ thống gặp lỗi trong khi đang hoạt động. 1.3. THÀNH PHẦN VÀ CẤU TRÚC CỦA HỆ ĐIỀU HÀNH 1.3.1. Thành phần HĐH 1.3.1.1. Thành phần HĐH theo quan điểm modul Hệ điều hành là một hệ thống chương trình lớn, thực hiện nhiều nhiệm vụ khác nhau, do đó các nhà thiết kế thường chia hệ điều hành thành nhiều thành phần (modul chương trình), mỗi thành phần đảm nhận một nhóm các nhiệm vụ nào đó, các nhiệm vụ này có liên quan với nhau. Cách phân chia nhiệm vụ cho mỗi thành phần, cách kết nối các thành phần lại với nhau để nó thực hiện được một nhiệm vụ l ớn hơn khi c ần và cách gọi các thành phần này khi cần nó thực hiện một nhiệm vụ nào đó... Tất cả các phương thức trên tạo nên cấu trúc của hệ điều hành. Modul chương trình điều khiển: quản lý tài nguyên; quản lý nhiệm vụ, tiến trình; quản lý dữ liệu và tổ chức truy nhập; thư ký và điều phối nhiệm vụ. Modul chương trình phục vụ hệ thống: biên tập; dịch; phục vụ (tạo môi trường mới, biên bản, thống kê…). Các chương trình hệ thống luôn có mặt trong BN chính để điều khiển máy tính làm việc – chúng thuộc vào nhân hệ thống; các chương trình điều khiển chỉ đ ược nạp vào BN chính khi cần thiết. Các modul được đưa vào nhân là những modul thường xuyên được sử dụng nhiều nhất. Nhân của HĐH thông thường: - Modul chương trình tải (Loader): đưa một chương trình vào BN chính bắt đầu từ một địa chỉ nào đó để sau đó cho phép chương trình đã được tải nhận điều khiển để chạy hoặc không; - Modul chương trình dẫn dắt (monitor): lựa chọn các bước làm việc của toàn hệ thống. - Modul chương trình lập lịch (scheduler): lựa chọn chương trình tiếp theo để 7
  8. thực hiện; - Một số modul khác và các thông tin hệ thống là tham số hệ thống. 1.3.1.2. Thành phần của hệ điều hành theo chức năng a- Thành phần quản lý tiến trình Tạo lập tiến trình và đưa nó vào danh sách quản lý tiến trình của hệ thống. Khi tiến trình kết thúc, phải loại bỏ tiến trình ra khỏi danh sách quản lý tiến trình của hệ thống. Cung cấp đầy đủ tài nguyên để tiến trình đi vào hoạt động và phải đảm bảo đủ tài nguyên để duy trì sự hoạt động của tiến trình cho đến khi tiến trình kết thúc. Khi tiến trình kết thúc, phải thu hồi những tài nguyên mà hệ điều hành đã cấp cho tiến trình. Khi tiến trình không thể tiếp tục hoạt động được thì HĐH phải tạm dừng tiến trình, thu hồi tài nguyên mà tiến trình đang chiếm giữ, sau đó nếu điều kiện thuận lợi thì HĐH phải tái kích hoạt tiến trình để tiến trình tiếp tục hoạt động cho đến khi kết thúc. Trong các hệ thống có nhiều tiến trình hoạt động song song hệ điều hành phải giải quyết vấn đề tranh chấp tài nguyên giữa các tiến trình, điều phối processor cho các tiến trình, giúp các tiến trình trao đổi thông tin và hoạt động đồng bộ với nhau, đảm bảo nguyên tắc tất cả các tiến trình đã được khởi tạo phải được thực hiện và kết thúc được. Tóm lại, bộ phận quản lý tiến trình của HĐH phải thực hiện những nhiệm vụ sau đây: - Tạo lập, hủy bỏ tiến trình. - Tạm dừng, tái kích hoạt tiến trình. - Tạo cơ chế thông tin liên lạc giữa các tiến trình. - Tạo cơ chế đồng bộ hóa giữa các tiến trình. b- Thành phần quản lý bộ nhớ chính Bộ nhớ chính là một trong những tài nguyên quan trọng của hệ thống, đây là thiết bị lưu trữ duy nhất mà BXL có thể truy xuất trực tiếp được. Các chương trình của người sử dụng muốn thực hiện được bởi BXL thì trước hết nó phải được hệ điều hành nạp vào bộ nhớ chính, chuyển đổi các đ ịa chỉ s ử d ụng trong chương trình thành những địa chỉ mà BXL có thể truy xuất được. Khi chương trình, tiến trình có yêu cầu được nạp vào bộ nhớ thì hệ điều hành phải cấp phát không gian nhớ cho nó. Khi chương trình, tiến trình kết thúc thì hệ điều hành phải thu hồi lại không gian nhớ đã cấp phát cho chương trình, tiến trình trước đó. Trong các hệ thống đa chương hay đa tiến trình, trong bộ nhớ tồn tại nhiều chương trình/ nhiều tiến trình, hệ điều hành phải thực hiện nhiệm vụ bảo vệ các vùng nhớ đã cấp phát cho các chương trình/ tiến trình, tránh sự vi phạm trên các vùng nhớ của nhau. Tóm lại, bộ phận quản lý bộ nhớ chính của HĐH thực hiện những nhiệm vụ 8
  9. sau: Cấp phát, thu hồi vùng nhớ. - Ghi nhận trạng thái bộ nhớ chính. - Bảo vệ bộ nhớ. - - Quyết định tiến trình nào được nạp vào bộ nhớ. c- Thành phần quản lý vào-ra Một trong những mục tiêu của HĐH là giúp người sử dụng khai thác hệ thống máy tính dễ dàng và hiệu quả, do đó các thao tác trao đổi thông tin trên thi ết b ị xu ất/ nhập phải trong suốt đối với người sử dụng. Hệ điều hành có một bộ phận điều khiển thiết bị I/O, bộ phận này phối hợp cùng BXL để quản lý sự hoạt động và trao đổi thông tin giữa hệ thống, chương trình người sử dụng và người sử dụng với các thiết bị xuất/ nhập. Bộ phận điều khiển thiết bị thực hiện những nhiệm vụ sau: - Gửi mã lệnh điều khiển đến thiết bị bằng các mã điều khiển trước khi bắt đầu một quá trình trao đổi dữ liệu với thiết bị. - Tiếp nhận yêu cầu ngắt (Interrupt) từ các thiết bị khi thiết bị cần trao đổi với hệ thống, hệ điều hành tiếp nhận yêu cầu ngắt, xem xét và thực hiện một thủ tục đ ể đáp ứng yêu cầu của các thiết bị. - Phát hiện và xử lý lỗi: hệ điều hành phải tạo ra các cơ chế thích hợp để phát hiện lỗi sớm nhất và khắc phục các lỗi vừa xảy ra nếu có thể. d- Thành phần quản lý bộ nhớ phụ (đĩa) Sau mỗi thao tác cấp phát block tại BN, HĐH phải ghi nhận trạng thái của các block trên đĩa, đặc biệt là các block còn tự do để chuẩn bị cho các quá trình cấp block sau này. Trong quá trình sử dụng tập tin, nội dung của tập tin có thể thay đổi (tăng, giảm), do đó hệ điều hành phải tổ chức cấp phát động các block cho tập tin. Lập lịch cho đĩa là lựa chọn thứ tự đọc các block trên đĩa nhằm nâng cao tốc độ đọc dữ liệu trên đĩa. Tóm lại, bộ phận quản lý bộ nhớ phụ thực hiện những nhiệm vụ sau: - Quản lý không gian trống trên đĩa. - Định vị lưu trữ thông tin trên đĩa. - Lập lịch cho vấn đề ghi/ đọc thông tin trên đĩa của đầu từ. e- Thành phần quản lý tập tin Tập tin là đơn vị lưu trữ cơ bản nhất trên các thiết bị lưu trữ vật lý, mỗi tập tin có một tên riêng. Hệ điều hành phải thiết lập mối quan hệ tương ứng giữa tên tập tin và thiết bị lưu trữ chứa tập tin. Việc truy xuất đến thông tin đang lưu trữ trên bất kỳ thiết bị lưu trữ nào được thực hiện thông qua tên của nó, các thao tác còn lại do hệ điều hành thực hiện. Trong hệ thống có nhiều tiến trình đồng thời truy xuất tập tin hệ điều hành phải 9
  10. tạo ra những cơ chế thích hợp để bảo vệ tập tin tránh việc ghi/ đọc bất hợp lệ trên tập tin. Tóm lại: bộ phận quản lý tập tin của hệ điều hành thực hiện những nhiệm vụ sau: - Tạo/ xoá một tập tin/ thư mục. - Bảo vệ tập tin khi có hiện tượng truy xuất đồng thời. - Cung cấp các thao tác xử lý và bảo vệ tập tin/ thư mục. - Tạo mối quan hệ giữa tập tin và bộ nhớ phụ chứa tập tin. - Tạo cơ chế truy xuất tập tin thông qua tên tập tin. g- Thành phần thông dịch lệnh Đây là bộ phận quan trọng nhất của hệ điều hành, nó đóng vai trò giao tiếp giữa hệ điều hành và người sử dụng. Các lệnh được chuyển đến HĐH dưới dạng chỉ thị điều khiển. Chương trình shell – bộ thông dịch lệnh – chỉ làm nhiệm vụ đơn giản là nhận lệnh tiếp theo và thông dịch lênh đó để HĐH có xử lý tương ứng. h- Thành phần bảo vệ hệ thống Các tiến trình đồng thời được bảo vệ lẫn nhau (tránh sự xâm phạm lẫn nhau làm sai lệch hệ thống). Do đó, HĐH cung cấp cơ chế để đảm bảo rằng tập tin, bộ nhớ, BXL, và những tài nguyên khác chỉ được truy xuất bởi những tiến trình có quy ền. Ví dụ, bộ nhớ đảm bảo rằng tiến trình chỉ được thi hành trong phạm vi địa chỉ của nó. Bộ thời gian đảm bảo rằng không có tiến trình nào độc chiếm BXL và các thiết bị ngoại vi cũng được bảo vệ. Hệ thống bảo vệ là một cơ chế kiểm soát quá trình truy xuất của chương trình, tiến trình, hoặc người sử dụng với tài nguyên của hệ thống. Cơ chế này cũng cung cấp cách thức để mô tả lại mức độ kiểm soát. Hệ thống bảo vệ cũng làm tăng độ an toàn khi kiểm tra lỗi trong giao tiếp giữa những hệ thống nhỏ bên trong. Ngoài ra các hệ điều hành mạng, các hệ điều hành phân tán hiện nay còn có thêm thành phần kết nối mạng và truyền thông.. Để đáp ứng yêu cầu của người sử dụng và chương trình người sử dụng các nhiệm vụ của hệ điều hành được thiết kế dưới dạng các dịch vụ: - Thi hành chương trình: nạp chương trình của người sử dụng vào bộ nhớ, chuẩn bị đầy đủ các điều kiện về tài nguyên để chương trình có thể chạy được và kết thúc được, có thể kết thúc bình thường hoặc kết thúc do bị l ỗi. Khi chương trình kết thúc hệ điều hành phải thu hồi tài nguyên đã cấp cho chương trình và ghi l ại các thông tin mà chương trình đã thay đổi trong quá trình chạy (nếu có). - Thực hiện các thao tác xuất nhập dữ liệu: hệ điều hành hỗ trợ việc xuất nhập dữ liệu cho chương trình, phải nạp được dữ liệu mà chương trình cần vào bộ nhớ. - Thực hiện các thao tác trên hệ thống tập tin: cung cấp các công cụ để chương 10
  11. trình dễ dàng thực hiện các thao tác đọc ghi trên các tập tin, các thao tác này ph ải th ực sự an toàn, đặc biệt là trong môi trường đa nhiệm. - Trao đổi thông tin giữa các tiến trình: cung cấp các dịch vụ cần thiết đ ể các tiến trình có thể trao đổi thông tin với nhau và phối hợp cùng nhau để hoàn thành một tác vụ nào đó. - Phát hiện và xử lý lỗi: Hệ điều hành phải có các công cụ đ ể chính hệ đi ều hành và để hệ điều hành giúp chương trình của người sử dụng phát hiện các l ỗi do hệ thống phát sinh. Hệ điều hành cũng phải đưa ra các dịch vụ đ ể xử lý các lỗi sao cho hiệu quả nhất. 1.3.2. Các cấu trúc của hệ điều hành Hệ thống đơn khối (monolithic systems) 1.3.2.1. Trong hệ thống này hệ điều hành là một tập hợp các thủ tục, mỗi thủ tục có thể gọi thực hiện một thủ tục khác bất kỳ lúc nào khi cần thiết. Hệ thống đơn khối thường được tổ chức theo nhiều dạng cấu trúc khác nhau: - Sau khi biên dịch tất cả các thủ tục riêng hoặc các file chứa thủ tục c ủa hệ điều hành được liên kết lại với nhau và được chứa vào một file đ ược gọi là file đ ối tượng, trong file đối tượng này còn chứa cả các thông tin về sự liên kết của các thủ tục. - Sau khi biên dịch các thủ tục của hệ điều hành không được liên kết lại, mà hệ thống chỉ tạo ra file hoặc một bảng chỉ mục để chứa thông tin của các thủ tục hệ điều hành, mỗi phần tử trong bảng chỉ mục chứa một con trỏ trỏ tới thủ tục tương ứng, con trỏ này dùng để gọi thủ tục khi cần thiết. Ta có thể xem cách gọi ngắt (Interrupt) trong ngôn ngữ lập trình cấp thấp và cách thực hiện đáp ứng ngắt dựa vào bảng vector ngắt trong MS_DOS là một ví dụ cho cấu trúc này. Trong cấu trúc đơn giản của hệ thống đơn khối, HĐH là một tập các thủ tục, có thể gọi lẫn nhau. Các thủ tục được chia thành 3 lớp: 1. Một tập các thủ tục chính (chương trình của người sử dụng) gọi đến một thủ tục dịch vụ của hệ điều hành. Lời gọi này được gọi là lời gọi hệ thống. 2. Một tập các thủ tục dịch vụ (service) để đáp ứng những lời gọi hệ thống từ các chương trình người sử dụng. 3. Một tập các thủ tục tiện ích (utility) hỗ trợ cho các thủ tục dịch trong việc thực hiện cho các lời gọi hệ thống. 11
  12. Nhận xét: - Chương trình của người sử dụng có thể truy xuất trực tiếp đến các chi tiết phần cứng bằng cách gọi một thủ tục cấp thấp, gây khó khăn cho hệ điều hành trong việc kiểm soát và bảo vệ hệ thống. - Các thủ tục dịch vụ mang tính chất tĩnh, nó chỉ hoạt động khi được gọi bởi chương trình của người sử dụng, điều này làm cho hệ điều hành thiếu chủ đ ộng trong việc quản lý môi trường. 1.3.2.2. Các hệ thống phân lớp (Layered Systems) Hệ thống được chia thành một số lớp, mỗi lớp được xây dựng dựa vào lớp bên trong. Lớp trong cùng thường là phần cứng, lớp ngoài cùng là giao diện với người sử dụng. Mỗi lớp là một đối tượng trừu tượng, chứa dựng bên trong nó các dữ liệu và thao tác xử lý dữ liệu đó. Lớp n chứa dựng một cấu trúc dữ liệu và các thủ t ục có th ể được gọi bởi lớp n+1 hoặc ngược lại có thể gọi các thủ tục ở lớp n-1. Ví dụ về một hệ điều hành phân lớp: Lớp 5: Chương trình ứng dụng Lớp 4: Quản lý bộ đệm cho các thiết bị xuất nhập Lớp 3: Trình điều khiển thao tác (console – giao diện điều khiển) Lớp 2: Quản lý bộ nhớ Lớp 1: Điều phối processor Lớp 0: Phần cứng hệ thống Chú ý: Khái niệm lớp liên quan đến các mức giao tiếp trong hệ thống máy tính: - Người sử dụng - Chương trình ứng dụng - Dịch vụ hệ thống - Nhân - Phần cứng máy tính Nhận xét: - Các thủ tục (lớp) trong HĐH có tính module giúp đơn giản hóa việc gỡ rối và kiểm tra hệ thống. Việc thiết kế và cài đặt hệ thống được đơn giản hóa khi hệ thống được phân chia thành nhiều lớp. - Mỗi lớp che giấu sự tồn tại của cấu trúc dữ liệu, thao tác và phần cứng từ các lớp cấp cao hơn. - Khi xây dựng hệ điều hành, khó xác định được số lượng lớp, thứ tự và chức năng của mỗi lớp. - Hiệu quả của hệ thống không cao do tại mỗi lớp phải thêm chi phí cho lời gọi hệ thống; thời gian thực sự lời gọi hệ thống lâu hơn khi được thực hiện trên hệ thống không phân tầng. 12
  13. 1.3.2.3. Máy ảo (Virtual Machine) Các máy ảo là những bản sao ảo chính xác các đặc tính phần cứng của máy tính thực sự và cho phép một hệ điều hành khác hoạt động trên đó như trên phần cứng thực sự. Phần nhân hệ thống thực hiện giám sát máy ảo chịu trách nhiệm giao tiếp với phần cứng và cho phép khả năng đa chương bằng cách cung cấp nhiều máy ảo cho các l ớp bên trên. Mục đích của việc sử dụng máy ảo là xây dựng các hệ thống đa chương với nhiều tiến trình thực hiện đồng thời, mỗi tiến trình được cung cấp một máy ảo với đầy đủ tài nguyên ảo, để nó thực hiện được. Trong cấu trúc này phần nhân của hệ thống trở thành bộ phận tổ chức giám sát máy ảo, phần này chịu trách nhiệm giao tiếp với phần cứng, chia sẻ tài nguyên hệ thống để tạo ra nhiều máy ảo, hoạt động độc lập với nhau, để cung cấp cho lớp trên. Tài nguyên của hệ thống được chia xẻ để tạo những máy ảo. Lập lịch BXL chia xẻ BXL cho các người sử dụng. Spooling và hệ thống tập tin được chia thành những card đọc ảo và máy in ảo. Một terminal cung cấp các chức năng tạo các thao tác màn hình ảo. Xây dựng hệ thống đĩa ảo cho các máy ảo. Trong các máy ảo, các tiến trình phức sẽ thực hiện trên một bộ xử lý và bộ nhớ riêng. Nhưng các tiến trình này có các lời gọi hệ thống và hệ thống tập tin không đ ược cung cấp trực tiếp từ phần cứng. Ở đây cần phân biệt sự khác nhau giữa máy ảo và máy tính mở rộng, máy ảo là bản sao chính xác các đặc tính phần cứng của máy tính thực sự và cho phép HĐH ho ạt động trên nó, sau đó HĐH xây dựng máy tính mở rộng để cung cấp cho người sử dụng. Hình vẽ trên đây cho chúng ta thấy sự khác nhau trong hệ thống không có máy ảo và hệ thống có máy ảo: Nhận xét: - Việc cài đặt các phần mềm giả lập phần cứng để tạo ra máy ảo thường r ất khó khăn và phức tạp. - Vấn đề bảo vệ tài nguyên hệ thống và tài nguyên đã cấp phát cho các tiến trình, sẽ trở nên đơn giản hơn vì mỗi tiến trình thực hiện trên một máy tính (ảo) độc lập với nhau nên việc tranh chấp tài nguyên là không thể xảy ra. - Nhờ hệ thống máy ảo mà một ứng dụng được xây dựng trên hệ điều hành có thể hoạt động được trên hệ điều hành khác. 1.3.2.4. Mô hình Client/ Server (client/ server model) 13
  14. Các hệ điều hành hiện đại thường chuyển dần các tác vụ của hệ điều hành ra các lớp bên ngoài nhằm thu nhỏ phần cốt lõi của hệ điều hành thành hạt nhân cực tiểu (kernel) sao cho chỉ phần hạt nhân này phụ thuộc vào phần cứng. Để thực hiện được điều này hệ điều hành xây dựng theo mô hình Client/ Server, theo mô hình này h ệ đi ều hành bao gồm nhiều tiến trình đóng vai trò Server có các chức năng chuyên biệt như quản lý tiến trình, quản lý bộ nhớ, ..., phần hạt nhân cuả hệ điều hành chỉ thực hiện nhiệm vụ tạo cơ chế thông tin liên lạc giữa các tiến trình Client và Server. Như vậy các tiến trình trong hệ thống được chia thành 2 loại: - Tiến trình bên ngoài hay tiến trình của chương trình người sử dụng đ ược gọi là các tiến trình Client. - Tiến trình của hệ điều hành được gọi là tiến trình Server. Khi cần thực hiện một chức năng hệ thống các tiến trình Client sẽ gửi yêu cầu tới tiến trình server tương ứng, tiến trình server sẽ xử lý và trả lời kết quả cho tiến trình Client. Nhận xét: - Hệ thống này dễ thay đổi và dễ mở rộng hệ điều hành. Để thay đổi các chức năng của hệ điều hành chỉ cần thay đổi ở server tương ứng, để mở rộng hệ điều hành chỉ cần thêm các server mới vào hệ thống. - Các tiến trình Server của hệ điều hành hoạt động trong chế độ không đặc quyền nên không thể truy cập trực tiếp đến phần cứng, điều này giúp hệ thống được bảo vệ tốt hơn. 1.4. PHÂN LOẠI HỆ ĐIỀU HÀNH Có nhiều cách khác nhau để phân loại hệ điều hành, theo cách thực hiện các công việc, các tác vụ, các tiến trình của người sử dụng để phân loại hệ điều hành. 1.4.2. Hệ điều hành đơn chương trình - Chỉ phục vụ cho một chương trình - HĐH chỉ phục vụ việc vào-ra liên quan đến chương trình được thực hiện thông qua đĩa từ. 1.4.3. Hệ điều hành đa chương trình - Tại mỗi thời điểm tồn tại nhiều chương trình (của người sử dụng và của hệ thống) tại BN trong, đòi hỏi chia sẻ các tài nguyên hệ thống - Trong đa chương trình, tài nguyên hệ thống quan trọng nhất chia sẻ là BXL. 1.4.3.1. Xử lý theo lô (mẻ) đơn giản Xử lý theo lô (đơn giản) là các tác vụ trong hàng đợi tác vụ được thực hiện một cách tự động và liên tiếp theo những chỉ thị đã được xác định trước, không cần có sự can thiệp từ bên ngoài. Các chương trình và dữ liệu của mỗi tác vụ được l ưu vào hàng đợi tương ứng với thứ tự thực hiện của tác vụ đó. Kết quả xử lý được cho ra liên tiếp theo thứ tự thực hiện Hệ điều hành có bộ phận thường trú trong bộ nhớ chính để giám sát việc thực 14
  15. hiện của các tác vụ trong hệ thống. Xử lý theo lô không cho phép thay đổi chương trình và dữ liệu của các tác v ụ ngay cả khi chúng còn nằm trong hàng đợi. Mặt khác trong quá trình thực hiện tác vụ nếu tác vụ chuyển sang truy xuất trên thiết bị vào/ra thì processor rơi vào trạng thái chờ, gây lãng phí thời gian xử lý của processor. 1.4.3.2. Hệ điều hành xử lý theo lô đa chương Xử lý theo lô đa chương là khả năng thực hiện đồng thời nhiều tác vụ, nhiều chương trình. Các tác vụ đều ở trạng thái sẵn sàng (danh sách sẵn sàng). Hệ điều hành chỉ nạp một phần code và data của các tác vụ vào bộ nhớ (các phần còn lại s ẽ đ ược nạp sau tại thời điểm thích hợp). Mỗi tác vụ được thực hiện trong một khoảng thời gian nào đó cho đến khi có các yêu cầu vào/ra. Khi tác vụ đang thực hiện cần truy xuất vào/ra thì processor sẽ được chuyển sang phục vụ cho tác vụ khác. Cứ như vậy, HĐH tổ chức chuyển hướng processor để phục vụ hết các phần tác vụ trong bộ nhớ cũng như các tác vụ mà hệ thống yêu cầu. MFT Multiprogramming with Fixed number of Tasks: quy định sẵn số lượng các bài toán đồng thời tại BN chính. MVT Multiprogramming with Variable number of Tasks: các bài toán được cấp phát liên tiếp trong BN chính. Xử lý theo lô đa chương cho phép tiết kiệm bộ nhớ và hạn chế thời gian rỗi của processor. Tuy nhiên cần chi phí cao cho việc lập lịch processor, là l ựa chọn tác vụ nào trong số các tác vụ đang ở trạng thái sẵn sàng để cung cấp processor cho nó. Ngoài ra hệ điều hành còn phải giải quyết việc chia sẻ bộ nhớ chính cho các tác vụ khác nhau. 1.4.3.3. Hệ điều hành phân chia thời gian (TSS - Time Shared System) Khái niệm chia sẻ thời gian ra đời đã đánh dấu một bước phát triển mới của hệ điều hành trong việc điều khiển các hệ thống đa người dùng. Chia sẻ thời gian là chia sẻ thời gian phục vụ của processor cho các tác vụ, các tiến trình đang ở trong trạng thái sẵn sàng. Nguyên tắc của hệ điều hành chia sẻ thời gian tương tự như trong hệ điều hành xử lý theo lô đa chương nhưng việc chuyển processor từ tác vụ, tiến trình này sang tác vụ, tiến trình khác không phụ thuộc vào việc tác vụ, tiến trình hiện tại có truy xuất vào/ra hay không mà chỉ phụ thuộc vào sự điều phối processor của hệ điều hành. Thời gian chuyển đổi processor giữa các tác vụ là rất nhỏ nên coi như các tác vụ được thực hiện đồng thời. Hệ điều hành chia sẻ thời gian là mở rộng logic của hệ điều hành đa chương và nó thường được gọi là hệ điều hành đa nhiệm (Multitasking). 1.4.3.4. Hệ điều hành xử lý thời gian thực Xử lý theo thời gian thực là sau mỗi tác vụ, kết quả thực hiện mỗi tác vụ đ ược cho ra tức thời, chính xác. Trong hệ điều hành này các tác vụ cần thực hiện không được đ ưa vào hàng đ ợi 15
  16. mà được xử lý tức thời và trả lại ngay kết quả hoặc thông báo l ỗi cho người s ử d ụng có yêu cầu. Hệ điều hành này hoạt động đòi hỏi sự phối hợp cao giữa phần mềm và phần cứng. Ngoài ra, còn có thể phân loại HĐH theo cấu trúc, theo phạm vi áp dụng, theo tên các nhà cung cấp, theo mã nguồn viết HĐH… Hệ điều hành đa vi xử lý: Là các hệ điều hành dùng để điều khiển sự hoạt động của các hệ thống máy tính có nhiều vi xử lý. Các hệ điều hành đa vi xử lý (multiprocessor) gồm có 2 loại: - Đa xử lý đối xứng (SMP: symmetric): vi xử lý bất kỳ cũng có thể chạy một loại tiểu trình bất kỳ, các vi xử lý giao tiếp với nhau thông qua một bộ nhớ dùng chung. Hệ SMP cung c ấp một c ơ chế chịu l ỗi và kh ả năng cân bằng tải tối ưu hơn, nguy cơ xảy ra tình trạng bế tắcở BXL giảm đi đáng kể. Vấn đề đồng bộ giữa các vi xử lý được đặt lên hàng đầu khi thiết kế hệ điều hành cho hệ thống SMP. Hệ điều hành Windows NT, hệ điều hành Windows 2000 là các hệ điều hành đa xử lý đối xứng. - Đa xử lý bất đối xứng (ASMP: asymmetric): có một hoặc hai vi xử lý để sử dụng riêng, các vi xử lý còn lại dùng để điều khiển các chương trình của người sử dụng. Hệ ASMP đơn giản hơn nhiều so với h ệ SMP, nhưng trong hệ này nếu có một vi xử lý trong các vi xử lý dành riêng cho hệ điều hành bị hỏng thì hệ thống có thể ngừng hoạt động. Hệ điều hành mạng: Là các hệ điều hành dùng để điều khiển sự hoạt động của mạng máy tính. Ngoài các chức năng cơ bản của một hệ điều hành, các hệ điều hành mạng còn phải thực hiện vi ệc chia s ẻ và b ảo v ệ tài nguyên của mạng. Hệ điều hành Windows 9x/NT, Windows 200, Linux, là các hệ điều hành mạng máy tính. Tóm lại: các HĐH ra đời sau luôn tìm cách khắc phục các hạn chế của HĐH trước đó và phát triển nhiều hơn nữa để đáp ứng yêu cầu ngày càng cao của của người sử dụng và chương trình người sử dụng, cũng như khai thác tối đa các chức năng của phần cứng máy tính để nâng cao hiệu suất của hệ thống. Nhưng chức năng của HĐH càng cao thì chi phí cho nó cũng tăng theo và cấu trúc của HĐH cũng sẽ phức tạp hơn. 1.5. CÁC TÍNH CHẤT CỦA HỆ ĐIỀU HÀNH Các tính chất cơ bản của HĐH là không phụ thuộc vào máy tính cụ thể, vào đối tượng phục vụ, vào phiên bản thể hiện. - Độ tin cậy cao: + Mọi hoạt động, mọi thông báo của HĐH đều phải chuẩn xác tuyệt đối (chỉ được cung cấp thông tin đúng cho người sử dụng, phải có các phương tiện hỗ trợ kiểm tra tính đúng đắn của dữ liệu trong các phép lưu trữ và xử lý). + HĐH thông báo lỗi và ngừng xử lý hoặc trao quyền quyết định cho thao tác viên hoặc người sử dụng khi hệ thống bị lỗi hoặc không thể xác định được tính đúng đắn của thông tin. - An toàn là mức độ bảo vệ khác nhau đối với dữ liệu, chương trình và các tài nguyên trong mọi trường hợp và trong mọi chế độ hoạt động. (Chú ý, đặc biệt trong hệ thống đa nhiệm). - Hiệu suất (hiệu quả) là các tài nguyên của hệ thống phải được khai thác triệt để: + Trong điều kiện tài nguyên hạn chế, hệ thống vẫn phải giải quyết được các yêu cầu phức tạp. + Đảm bảo tính đồng bộ của toàn hệ thống, không để các thiết bị tốc đ ộ chậm trì hoãn hoạt động của toàn hệ thống. 16
  17. - Chuẩn và hệ thống mở (kế thừa) là khả năng đảm bảo những tính năng của các hệ thống trước đó, đồng thời có khả năng thích nghi với những thay đổi có thể có trong tương lai (tích hợp được các ứng dụng, tương thích). Đây là tính chất rất quan trọng và là bắt buộc đối với mọi HĐH, đặc biệt với các HĐH thế hệ mới. Do vậy, việc thiết kế HĐH phải được tuân thủ theo 1 số nguyên tắc nhất định. - Thuận tiện là mức độ đáp ứng các yêu cầu khác nhau đối với nhiều người sử dụng khác nhau: + hệ thống phải dễ dàng sử dụng, có nhiều mức hiệu quả khác nhau tuỳ theo kiến thức và kinh nghiệm của người dùng. + hệ thống trợ giúp phong phú cho người sử dụng trong quá trình khai thác. - Tính thương mại - Khả năng bảo trì - Bảo vệ và an ninh → HĐH phải dung hoà, có ưu tiên hợp lý các tính chất trên. 1.6. NGUYÊN TẮC TỔ CHỨC XÂY DỰNG CÁC THÀNH PHẦN CỦA HĐH - Nguyên tắc modul: + hệ thống có tính chất modul là hệ thống được xây dựng từ những modul độc lập và tồn tại bộ quy tắc liên kết chúng thành hệ thống có tổ chức. + các dạng modul: modul chức năng và modul chương trình + quan hệ giữa các modul: thông qua dữ liệu vào và ra + tính phân cấp của các modul: các modul con khi liên kết sẽ tạo thành một modul lớn hơn (mức cao hơn) để giải quyết những vấn đề lớn hơn, phức tạp hơn. + nguyên tắc modul cho phép tổ hợp những modul hiện có theo nhiều cách khác nhau, đảm bảo tính đa dạng chức năng của hệ thống. - Nguyên tắc tương đối trong định vị: + các modul chương trình có địa chỉ tương đối trong BN (địa chỉ tính từ đầu BN), khi thực hiện chúng mới được định vị tại vùng BN cụ thể. + nguyên tắc này cho phép sử dụng BN một cách linh hoạt và HĐH không bị phụ thuộc vào cấu hình BN cụ thể. - Nguyên tắc Macroprocessor: + mỗi macroprocessor thực hiện một yêu cầu cụ thể. + khi có nhiệm vụ cụ thể, hệ thống sẽ xây dựng các phiếu yêu cầu, liệt kê các bước phải thực hiện + xây dựng chương trình trên cơ sở phiếu yêu cầu và tổ chức thực hiện chương trình đó + nguyên tắc này làm cho quá trình đối thoại được linh hoạt, không cần chương trình dịch phức tạp (thường dùng trong các hệ quản trị CSDL). - Nguyên tắc khởi tạo trong cài đặt: 17
  18. + chương trình được viết đầy đủ và được viết dưới dạng các modul (nguyên lý macroprocessor) - phiên bản đầy đủ. + người sử dụng khi cài đặt sẽ tạo phiên bản mới thích hợp (tối ưu cả về cấu trúc và phương thức hoạt động) bằng cách loại bỏ những modul không cần thiết. + nguyên tắc cho phép đảm bảo tính thuận tiện của HĐH. - Nguyên tắc lặp chức năng: + một công việc được thực hiện bằng nhiều cách khác nhau với những tổ hợp modul khác nhau. + trong hệ thống tồn tại nhiều modul khác nhau cùng giải quyết một vấn đ ề (nhiều chương trình dịch cho một ngôn ngữ thuật toán nào đó) + người sử dụng chủ động lựa chọn giải thuật tối ưu + nguyên tắc bảo đảm độ an toàn cao cho hệ thống (hệ thống hoạt đ ộng bình thường ngay cả khi thiếu hoặc hỏng 1 số thành phần của hệ thống); cho phép người sử dụng thuận tiện khai thác hệ thống, khai thác hết các tính năng của hệ thống và l ựa chọn được giải thuật tối ưu. - Nguyên tắc giá trị chuẩn: + mỗi modul, câu lệnh… có thể có nhiều giá trị tham số. + hệ thống chuẩn bị sẵn bộ các giá trị tham số ứng với trường hợp thường gặp nhất (giá trị chuẩn). + khi thực hiện, nếu lời gọi modul hay câu lệnh thiếu tham số nào thì hệ thống sẽ bổ sung bằng giá trị quy định trước. + nguyên tắc đảm bảo tính thuận tiện - Nguyên tắc bảo vệ nhiều mức: + tổ chức nhiều mức bảo vệ đối với dữ liệu và chương trình. + các mức bảo vệ: bảo vệ tại file, tại thư mực, tại ổ đĩa …; bảo vệ thường xuyên hoặc bảo vệ trong từng chế độ làm việc. + áp dụng cho cả các thông tin ghi trong RAM. + nguyên tắc cho phép đảm bảo an toàn hệ thống và an toàn dữ liệu 1.7. LỊCH SỬ PHÁT TRIỂN CỦA HỆ ĐIỀU HÀNH Thế hệ 1 (1945 - 1955) Vào những năm 1950 máy tính dùng đèn điện tử chân không ra đời. Mỗi máy tính được một nhóm người thực hiện, bao gồm việc thiết kế, xây dựng chương trình, thao tác, quản lý,... Người lập trình phải dùng ngôn ngữ máy tuyệt đối để lập trình. Khái niệm ngôn ngữ lập trình và hệ điều hành chưa được biết đến trong khoảng thời gian này. Thế hệ 2 (1955 - 1965) Máy tính dùng bán dẫn ra đời và được sản xuất để cung cấp cho khách hàng. Bộ phận sử dụng máy tính được phân chia rõ ràng: người thiết kế, người xây dựng, người 18
  19. vận hành, người lập trình, và người bảo trì. Ngôn ngữ lập trình là Assembly và Fortran. Để thực hiện một thao tác, lập trình viên viết chương trình trên phiếu đ ục lỗ, sau đó đưa phiếu vào máy, máy thực hiện cho kết quả ở máy in. Hệ thống xử lý theo lô, cơ chế xử lý song song cũng ra đời trong thời kỳ này. Các thao tác cần thực hiện trên máy tính được ghi trước trên băng từ, hệ thống sẽ đọc băng từ, thực hiện lần lượt và cho kết quả ở băng từ xuất. Hệ thống xử lý theo lô hoạt động dưới sự điều khiển của một chương trình đặc biệt chính là hệ điều hành sau này. Thế hệ 3 (1965 - 1980) Máy IBM 360 dựa trên các vi mạch, thiết kế cho cả tính toán trong thương mại và tính toán trong khoa học, được sản xuất hàng loạt để tung ra thị trường. Các thiết bị ngoại vi xuất hiện ngày càng nhiều, các thao tác điều khiển máy tính và thiết bị ngoại vi ngày càng phức tạp hơn. Trước tình hình này, hệ điều hành đã ra đời cho phép sử dụng chung trên tất cả các máy tính của nhà sản xuất và người sử dụng. Hệ điều hành ra đời nhằm điều phối, kiểm soát hoạt động của hệ thống và giải quyết các yêu cầu tranh chấp thiết bị. Hệ điều hành đầu tiên được viết bằng ngôn ngữ Assembly. Hệ điều hành xuất hiện khái niệm đa chương, khái niệm chia sẻ thời gian và kỹ thuật Spool. Trong giai đoạn này cũng xuất hiện các hệ điều hành Multics và Unix. Thế hệ 4 (từ 1980) Máy tính cá nhân ra đời. Trong thời kỳ này ra đời các hệ điều hành MS-DOS (gắn liền với máy tính IBM-PC), hệ điều hành mạng và hệ điều hành phân tán. - Đa số các hệ điều hành đều được xây dựng từ ngôn ngữ lập trình cấp thấp trừ hệ điều hành Unix, nó được xây dựng từ C, một ngôn ngữ lập trình cấp cao. - Nếu không có hệ điều hành thì việc khai thác và sử dụng máy tính sẽ khó khăn và phức tạp rất nhiều và không phải bất kỳ ai cũng có thể sử dụng máy tính được. - Sự ra đời và phát triển của hệ điều hành gắn liền với sự phát triển của máy tính, và ngược lại sự phát triển của máy tính kéo theo sự phát triển của hệ điều hành. Hệ điều hành thực sự phát triển khi máy tính PC xuất hiện trên thị trường. 1.8. GIỚI THIỆU MỘT SỐ HỆ ĐIỀU HÀNH Hệ điều hành Windows 95 1.8.2. 1.8.3. Hệ điều hành Windows 2000 1.8.4. Hệ điều hành Linux Sinh viên tự tìm hiểu các nội dung trên. 19
  20. Chương 2 QUẢN LÝ TIẾN TRÌNH - Các chương trình (người sử dụng, hệ thống) bao gồm nhiều công việc, liên quan đến các tài nguyên (bộ nhớ, bộ xử lý…); - Nhiều chương trình yêu cầu được thực hiện đồng thời. - Vấn đề quản lý tiến trình liên quan đến cả quản lý bộ nhớ, bộ xử lý và các tài nguyên khác; vấn đề đồng bộ các tiến trình và các hiện tượng tranh chấp, bế tắc do phân phối tài nguyên gây ra. - Hệ điều hành phải cho phép thực hiện nhiều tiến trình đồng thời để khai thác tối đa thời gian xử lý của processor nhưng cũng cung cấp được thời gian hồi đáp hợp lý. - Hệ điều hành phải cấp phát tài nguyên để tiến trình hoạt động một cách hiệu quả với một chính sách hợp lý nhưng không xảy ra tình trạng bế tắctrong hệ thống. - Hệ điều hành có thể được yêu cầu để hỗ trợ truyền thông liên tiến trình và người sử dụng tạo ra tiến trình. Hệ điều hành phải có nhiệm vụ tạo ra tiến trình, điều khiển sự hoạt động của tiến trình và kết thúc tiến trình. Một số hệ điều hành phân biệt hai khái niệm tiến trình và tiểu trình. Tiến trình liên quan đến quyền sở hữu tài nguyên, tiểu trình liên quan đ ến s ự th ực hi ện ch ương trình. Trong các hệ điều hành đa chương, có nhiều tiến trình tồn tại trên bộ nhớ chính, các tiến trình này luân phiên giữa hai trạng thái: sử dụng processor và đợi thực hiện vào/ra hay một vài sự kiện nào đó xảy ra. 2.1. TỔNG QUAN VỀ TIẾN TRÌNH 2.1.1. Tiến trình và phân loại tiến trình 2.1.1.1. Tiến trình (process) Tiến trình là một bộ phận của một chương trình đang thực hiện, đơn vị thực hiện tiến trình là processer. Tiến trình là một bộ phận của chương trình sở hữu một con trỏ lệnh, một con trỏ stack, một tập các thanh ghi, một không gian địa chỉ trong bộ nhớ chính và tất cả các thông tin cần thiết khác để tiến trình có thể hoạt động đ ược. Tóm lại, tiến trình là tất cả những gì liên quan đến chương trình được thực hiện tại bộ xử lý. Việc đưa ra tiến trình cho phép máy tính có thể thực hiện nhiều tác vụ đồng thời (chuyển đổi BXL qua lại để duy trì hoạt động của nhiều chương trình cùng lúc). Khi đó, mọi chương trình trong hệ thống được tổ chức thành những tiến trình. Mỗi tiến trình khi hoạt động cần có một số tài nguyên như BXL, BN chính, các thiết bị nhập xuất và một số yếu tố khác. Trong quá trình hoạt động của tiến trình, quá trình chuyển từ trạng thái này sang 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2