CHƯƠNG 1. GIGI THIEU CHUNG VE HE DIEU HANH dung của File, các chương trình làm việc với đĩa v. được xếp vào thành phần tiện ích. Phân loại hệ điều hành Một trong những nguyên tắc phổ biến nhất để phân loại các hệ điều hành (truyền thống) là dựa theo tính chất hoạt động của thành phần điều khiển và việc phân loại hệ điều hành ở đây được thực hiện theo nguyên tắc đó.
Tính chất hoạt động của chương trình điều khiển liên quan đến cách thức đưa chương trình vào bộ nhớ trong, chọn chương trình đã có ở bộ nhớ trong ra thực hiện v. Theo cách thức phân loại này, có thể kể đến hệ điều hành đơn chương trình, hệ điều hành đa chương trình và hệ điều hành thời gian thực. Chú ý rằng, hệ điều hành mạng, hệ điều hành phân tán và hệ điều hành tự trị phối hợp không nằm trong hệ thống phân loại này. Các giáo trình về hệ điều hành mạng, hệ điều hành phân tán sẽ trình bày chỉ tiết những nội dung liên quan.
Hệ điêu hành đơn chương trình Trong hệ điều hành đơn chương trình, toàn bộ hệ thống máy tính phục vụ một chương trình từ lúc bắt đâu khi chương trình đó được đưa vào bộ nhớ trong cho đến thời điểm kết thúc chương trình đó. Khi một chương trình người dùng đã được đưa vào bộ nhớ thì nó chiếm giữ mọi tài nguyên của hệ thống và vì vậy chương trình của người dùng khác không thể được đưa vào bộ nhớ trong. Do các thiết bị vào-ra có tốc độ làm việc chậm, nên người ta đã cải tiến chế độ đơn chương trình theo hướng sử dụng cách thức đặc biệt (có tên gọi là SPOOLING: Simultaneous Peripheral Operation OnLine; đôi lúc dùng thuật ngữ chế độ SPOOLING cũng với nghĩa là cách thức này), mà theo cách thức này, mọi vấn để vào-ra liên quan đến chương trình được thực hiện thông qua đĩa từ. Chương trình người dùng, thông qua hệ điều hành, chỉ thực hiện vào-ra với đĩa từ, còn việc vào - ra giữa đĩa từ với các thiết bị khác lại do cơ chế khác đảm nhận,.
và do vậy, thời gian giải bài toán (thời gian chương trình thực hiện) giảm đi. Hệ điều hành đa chương trình Đối với hệ điều hành đa chương trình thì trong máy tính, tại mỗi thời điểm có nhiều chương trình đồng thời có mặt ở bộ nhớ trong. Các chương trình này NGUYÊN LÝ CÁC HỆ ĐIỀU HÀNH 23 đều có nhu cầu được phân phối bộ nhớ và CPU để thực hiện. Như vậy, bộ nhớ, CPU, các thiết bị ngoại vi v.
là các tài nguyên của hệ thống được chia xẻ cho các chương trình đó. Đặc điểm quan trọng cần lưu ý là các chương trình này phải được “bình đẳng” khi giải quyết các đòi hỏi về tài nguyên. Khái niệm chương trình nói trong chế độ đa chương trình được dùng để chỉ cả chương trình người dùng lẫn chương trình của hệ điều hành. Khi so sánh với hệ điều hành đơn chương trình, có thể nhận thấy ngay một điêu là đối với một chương trình cụ thể thì trong chế độ đơn chương trình, chương trình đó sẽ kết thúc nhanh hơn (thời gian chạy ngắn hơn) so với khi nó chạy trong chế độ đa chương trình, nhưng bù lại, trong một khoảng thời gian xác định thì theo chế độ đa chương trình sẽ hoàn thiện được nhiều chương trình (giải được nhiều bài toán) hơn, do đó hiệu quả sử dụng máy tính cao hơn.
Như đã đánh giá ở phần trên, một trong những tài nguyên quan trọng nhất của hệ thống máy tính là CPU và việc chia xẻ CPU là một trong những dạng điển hình của việc chia xẻ tài nguyên. Tính chất chia xẻ CPU lại phân lớp các hệ điều hành đa chương trình thành các lớp con: hệ điều hành hoạt động theo chế độ mé (batch) và hệ điều hành hoạt động theo chế độ phân chia thời gian (time shared). © Hệ điêu hành hoạt động theo chế độ mẻ Đây là loại hệ điều hành định hướng tới mục tiêu làm cực đại số lượng các bài toán được giải quyết trong một khoảng đơn vị thời gian (có nghĩa là trong một khoảng đơn vị thời gian thì hướng mục tiêu vào việc hoàn thiện được càng nhiều chương trình càng tốt). Ở nước ta những năm trước đây, các máy tính EC- 1022, EC-1035 (hệ điều hành OS), IBM 360/40-50 (hệ điều hành DOS) phổ biến hoạt động theo chế độ mẻ.
Các hệ điều hành theo chế độ mẻ lại có thể phân biệt thành hai loại điển hình là MFT và MVT. MFT: Multiprogramming with Fixed number of Tasks Khi hệ thống làm việc, đã quy định sắn một số lượng cố định các bài toán đồng thời ở bộ nhớ trong: Bộ nhớ trong được chia thành một số vùng nhớ cố định, các vùng này có biên cố định mà mỗi vùng được dùng để chứa một chương trình. Mỗi chương trình người dùng chỉ được đưa vào mọt vùng nhớ xác định tương ứng với chương trình đó. Một chương trình chỉ có thể làm việc trong giới hạn của vùng bộ nhớ trong đang chứa nó.
GIỚI THIỆU CHUNG VE HE DIEU HANH MVT: Multiprogramming with Variable number of Tasks Khác với chế độ MFT, trong chế độ MVT, bộ nhớ trong không bị chia sắn thành các vùng, việc nạp chương trình mới vào bộ nhớ trong còn được tiếp diễn khi mà bộ nhớ trong còn đủ để chứa nó. Có thể quan niệm rằng trong chế độ MET bộ nhớ trong được phân thành các vùng có vách ngăn cố định, còn trong chế độ MVT, không có vách ngăn sẵn, mỗi khi chương trình được nạp vào mới hình thành một vách ngăn tạm thời. Nếu chỉ gặp các chương trình đòi hỏi ít bộ nhớ thì theo chế độ MVT, số lượng chương trình đồng thời có mặt trong bộ nhớ sẽ nhiều. Chế độ phân chia thời gian (Time Shared System: TSS) Chế độ phân chia thời gian là chế độ hoạt động điển hình của các hệ điều hành đa người dùng (multi-users).
Hệ điều hành hoạt động theo chế độ này định hướng phục vụ trực tiếp người dùng khi chương trình của người dùng đó đang thực hiện, làm cho giao tiếp của người dùng với máy tính là hết sức thân thiện. Liên quan đến hệ điều hành hoạt động theo chế độ này là các khái niệm lượng tử thời gian, bộ nhớ ảo v. Trong hệ TSS, tại cùng thời điểm có nhiều người dùng đồng thời làm việc với máy tính: Mỗi người làm việc với máy tính thông qua một trạm cuối (terminal) và vì vậy, hệ thống đã cho phép máy tính thân thiện với người dùng. Hệ điêu hành phân phối CPU lần lượt cho từng chương trình người dùng, mỗi chương trình được chiếm giữ CPU trong một khoảng thời gian như nhau (khoảng thời gian đó được gọi là lượng tử thời gian): có thể thấy phổ biến về lượng tử thời gian điển hình là khoảng 0,05s.
Máy tính làm việc với tốc độ cao, chu kỳ quay lại phục vụ cho từng chương trình người dùng là rất nhanh, và vì vậy, mỗi người dùng đều có cảm giác rằng mình chiếm hữu toàn bộ tài nguyên hệ thống. Bộ nhớ luôn chứa chương trình của mọi người dùng, vì vậy xây ra tình huống toàn bộ bộ nhớ trong không đủ để chứa tất cả chương trình người dùng hiện đang thực hiện; vì vậy, đối với hệ điều hành TSS nảy sinh giải pháp sử dụng bộ nhớ ảo: sử dụng đĩa từ như vùng mở rộng không gian nhớ của bộ nhớ trong. Có thể nhận xét ring, tinh quản trị tài nguyên được nhấn mạnh trong hệ NGUYÊN LÝ CÁC HỆ ĐIỀU HÀNH 25 điều hành mẻ và tính chất máy tính ảo được quan tâm hơn trong hệ điều hành đa người dùng. Hệ điều hành thời gian thực Nhiều bài toán trong lĩnh vực điều khiển cần được giải quyết không muộn hơn một thời điểm nhất định, và vì vậy, đối với các máy tính trong lĩnh vực đó cân hệ điều hành thời gian thực (RT: Real Time).
Trong hệ thời gian thực, mỗi bài toán được gắn với một thời điểm thời gian (đôi lúc được gọi là deadtime) va bài toán phải được giải quyết không muộn hơn thời điểm đã cho đó: Nếu bài toán hoàn thiện muộn hơn thời điểm đó thì việc giải quyết nó trở nên không còn có ý nghĩa nữa. Hệ thời gian thực có thể được coi như một trường hợp của hệ đa chương trình hoạt động theo chế độ mẻ có gắn thêm thời điểm kết thúc cho mỗi bài toán. Chú ý rằng, các nhà thiết kế hệ điều hành hiện đại cũng cho phép một hệ điều hành do họ thiết kế có khả năng được khởi tạo hoạt động theo một trong một số chế độ hoạt động của hệ điều hành đã nói trên đây. Chẳng hạn, hệ điều hành OS cho hệ thống máy EC hoặc IBM có thể hoạt động hoặc theo chế độ mẻ (MFT, MVT) hoặc theo chế độ phân chia thời gian (SYS); hoặc hệ điều hành LINUX hoạt động theo chế độ đơn người dùng (với superuser) hoặc chế độ đa người dùng (với các người dùng khác).
Nhân của hệ điều hành. Tải hệ điều hành © Nhân của hệ điều hành (Kernel, một số tác giả còn sử dụng thuật ngữ tiếng Việt là lối) Hệ điều hành là bộ bao gồm một số lượng lớn các chương trình, trong nhiều trường hợp đó là một bộ chương trình đồ sộ và vì vậy không thể đưa tất cả các chương trình của hệ điều hành vào bộ nhớ trong được. Như vậy, các chương trình thành phân thuộc hệ điều hành được chia ra thành hai loại: có những môđun chương trình của hệ thống luôn có mặt trong bộ nhớ trong để điều khiển máy tính làm việc: các chương trình đó thuộc vào nhân của hệ thống và các chương trình thuộc loại thứ hai chỉ được nạp vào bộ nhớ trong khi cần thiết. Một điều dễ nhận thấy là, các môđun chương trình được đưa vào nhân là những môđun thường xuyên nhất được sử dụng.
GIỚI THIỆU CHUNG VỀ HỆ ĐIỀU HÀNH Nhân của hệ điều hành thông thường bao gồm: - Môđun chương trình tải (Loader). Như đã trình bày ở trên, chức năng chủ yếu của môđun chương trình tải là đưa một chương trình vào bộ nhớ trong bắt đâu 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. - Môđdun chương trình dẫn dắt (monitor). Việc chọn lựa các bước làm việc của toàn bộ hệ thống do môđun chương trình din dat đảm nhiệm.
- Môđun chương trình lập lịch (scheduler): chon chương trình tiếp theo để chạy. - Một số môđun chương trình khác. ~ Cùng một số thông tin hệ thống là các tham số hệ thống. Nảy sinh một số vấn dé liên quan tới nhân của hệ điều hành như được trình bày sau đây.