Khái niệm hệ điều hành
Hệ điều hành là một chương trình quản lý phần cứng của máy tính. Nó cũng cung cấp cơ sở cho các chương trình ứng dụng hoạt động và làm việc như thành phần trung gian giữa người sử dụng với phần cứng máy tính.
Hệ điều hành là một phần quan trọng của hầu hết các hệ thống máy
tính. Một hệ thống máy tính có thể chia thành 4 thành phần: phần cứng, hệ điều hành, các chương trình ứng dụng và người sử dụng.

Các thành phần của hệ thống máy tính là phần cứng, phần mềm, dữ

Theo quan điểm của người sử dụng: Hầu hết người sử dụng đều ngồi trước một máy tính cá nhân bao gồm một màn hình, bàn phím, chuột và bộ xử lý trung tâm. Trong trường hợp này, hệ điều hành được thiết kế chủ yếu sao cho dễ sử dụng. Một số người dùng sử dụng các thiết bị đầu cuối để kết nối tới các máy tính lớn (mainframe) hoặc máy tính nhỏ (minicomputer), cùng chia sẻ
tài nguyên và trao đổi dữ liệu thì hệ điều hành được thiết kế sao cho khai thác
được tối đa tài nguyên, đạt hiệu quả cao nhất.

Tóm lại, chúng ta chưa có một định nghĩa hoàn chỉnh về hệ điều hành
mà chỉ có thể định nghĩa hệ điều hành một cách tương đối theo các quan điểm khác nhau. Lý do tồn tại của hệ điều hành là vì đó là cách để giải quyết các vấn đề phát sinh để hệ thống máy tính trở nên hữu dụng. Mục tiêu cơ bản của hệ điều hành là thực thi các chương trình của người dùng và giúp người dùng giải quyết các vấn một cách dễ dàng hơn.

Các hệ thống máy tính lớn

để giải quyết nhiều bài toán kinh tế, khoa học kỹ thuật.
Hệ thống xử lý gói
Đây là những hệ thống ra đời sớm, chúng có kích thước khổng lồ và được điều khiển từ một bàn giao tiếp người máy (console). Thiết bị vào cơ bản là các đầu đọc thẻ và ổ băng từ. Đầu ra là các máy in dòng, ổ băng từ và thẻ đục lỗ. Người sử dụng không tương tác trực tiếp với hệ thống máy tính. Người dùng chuẩn bị các chương trình, các nhiệm vụ và chuyển đến người điều hành để nạp vào hệ thống qua băng đục lỗ.
Hệ điều hành cho các thế hệ máy này cũng thực sự đơn giản. Nhiệm vụ
Để tăng tốc độ xử lý, người điều hành thường gom các công việc giống
nhau thành nhóm và chạy nó một lượt.

Hệ thống đa chương trình
Trong thực tế, nhìn chung một người dùng không thể làm cho bộ xử lý và các thiết bị vào ra làm việc một cách liên tục được. Để khỏi lãng phí tài nguyên của hệ thống (thời gian của CPU, thiết bị nhập xuất) ta cần phải sắp xếp sao cho CPU và các thiết bị nhập xuất luôn luôn làm việc. Đa chương trình là một giải pháp giúp gia tăng hiệu quả làm việc của máy tính bằng cách tổ chức các công việc một cách hợp lý để CPU luôn luôn có một chương trình thực
hiện.


Hoạt động trong chế độ đa chương trình sẽ đặt ra cho hệ điều hành nhiều vấn đề cần phải xử lý như nạp tất cả các chương trình vào bộ nhớ hay phối hợp sử dụng đĩa và bộ nhớ. Khi có nhiều chương trình cùng đồng thời tồn tại trong bộ nhớ thì chọn chương trình nào thực hiện. Tổ chức quản lý bộ nhớ sao cho các chương trình cùng tồn tại trong bộ nhớ không làm ảnh hưởng lẫn nhau... các vấn đề này sẽ được phân tích kỹ ở các chương tiếp theo.
Hệ thống chia sẻ thời gian
Hệ thống đa chương trình, xử lý gói cung cấp một môi trường mà các tài
nhưng lại không hỗ trợ cho người dùng tương tác với hệ thống máy tính. Chia

Một hệ thống máy tính tương tác sẽ cung cấp khả năng trao đổi trực tiếp giữa người dùng và hệ thống. Người dùng có thể trực tiếp ra các chỉ thị để điều hành hệ thống hoặc các chương trình bằng cách sử dụng bàn phím hay chuột và chờ kết qủa trả lại.
Một hệ thống chia sẻ thời gian cho phép nhiều người dùng cùng chia sẻ
một máy tính đồng thời. Trong hệ thống chia sẻ thời gian, các câu lệnh thường ngắn, chiếm ít thời gian của CPU. Hệ thống chuyển đổi qua lại một cách nhanh chóng giữa những người dùng khác nhau để luân phiên phục vụ. Với mỗi người dùng, dường như họ được sở hữu riêng một CPU, mọi yêu cầu đều được đáp
ứng.


Các hệ thống để bàn
Các máy tính cá nhân xuất hiện vào thập kỷ 70. Trong những thập kỳ đầu, CPU của các máy tính PCs còn thiếu các tính năng bảo vệ hệ điều hành khỏi các chương trình người dùng. Hệ điều hành các máy tính cá nhân lúc đó
cũng đã được thay đổi theo thời gian. Thay vì tăng hiệu dụng của CPU và các

Các hệ điều hành cho các máy tính PCs đã thu được lợi nhuận bằng nhiều cách, từ việc phát triển hệ điều hành cho các máy tính lớn. Máy vi tính đã ngay lập tức thích ứng với một số công nghệ được phát triển cho các hệ điều hành lớn. Mặt khác, giá của máy vi tính đã giảm, và người ta cũng không cần phải quan tam nhiều đến việc phát huy tối đa hiệu quả làm việc của CPU.
Các hệ thống đa xử lý
Hầu hết các hệ thống cho đến nay là các hệ có có một bộ xử lý, nghĩa là trên mỗi máy chỉ có một chip CPU. Mặc dù vậy các hệ thống đa xử lý (hay còn được gọi là các hệ thống song song - parallel systems hay các hệ thống cặp đối

Các hệ thống nhiều CPU có 3 ưu điểm chính sau:

- Kinh tế hơn: các hệ thống đa CPU sẽ tiết kiệm chi phí hơn so với hệ
thống chỉ có một CPU bởi vì chúng có thể chia sẻ các thiết bị ngoại vi, bộ lưu trữ chính, nguồn điện,... Nhiều chương trình có thể cùng làm việc trên một tập hợp dữ liệu thay vì phải lưu trữ ở trên đĩa và sao chép cho mỗi chương trình một bản.
- Tăng độ tin cậy: các chức năng được chia cho nhiều bộ xử lý, vì vậy
nếu có lỗi xảy ra cũng không làm ngưng hệ thống, nó chỉ làm cho hệ thống bị chậm đi. Nếu ta có 10 CPU và có một CPU bị lỗi, khi đó các CPU còn lại sẽ chia sẽ phần công việc của CPU bị hỏng. Tốc độ của hệ trống lúc này chỉ bị chậm đi
10%, tuy nhiên hệ thống không bị ngưng do lỗi của CPU đó.
Xử lý liên tục trong sự có mặt của lỗi đòi hỏi phải có kỹ thuật cho phép

lỗi.

SMP là tất cả các bộ xử lý có vai trò ngang nhau, không tồn tại mỗi quan

Các hệ thống phân tán
Các hệ thống phân tán được xây dựng trên cở sở hạ tầng mạng. Các máy tính được kết nối với nhau thông qua hệ thống mạng. Các công việc, và dữ liệu có thể được chia thành nhiều phần, mỗi máy tính trong hệ thống đảm nhiệm một phần công việc. Kết quả các phần tiêng lẻ được hợp lại để cho một kết quả lớn với hiệu quả làm việc vượt trội so với hệ thông chỉ có một máy tính.
Hệ thống này cũng tương tự như hệ thống chia sẻ thời gian nhưng các
bộ xử lý không chia sẻ bộ nhớ và đồng hồ, thay vào đó mỗi bộ xử lý có bộ nhớ
Các bộ xử lý trong hệ phân tán thường khác nhau về kích thước và chức

Các ưu điểm chính của hệ thống phân tán là:
-Chiasẻtàinguyên: Một người sử dụng A có thể sử dụng máy in laser của người sử dụng B và người sử dụng B có thể truy xuất những tập tin của A. Tổng quát, chia sẻ tài nguyên trong hệ thống phân tán cung cấp một cơ chế để chia sẻ tập tin ở vị trí xa, xử lý thông tin trong một cơ sở dữ liệu phân tán, in ấn tại một vị trí xa, sử dụng những thiết bị ở xa đểõ thực hiện các thao
tác.
-Tăngtốcđộtínhtoán: Một thao tác tính toán được chia làm nhiều phần nhỏ cùng thực hiện một lúc. Hệ thống phân tán cho phép phân chia việc tính toán trên nhiều vị trí khác nhau để tính toán song song.
-An toàn: Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí
khác vẫn tiếp tục làm việc.


Các hệ thống Clustered
Tương tự một hệ thống làm việc song song. Hệ thống này liên kết nhiều CPU với nhau để cùng làm việc. Sức mạnh của hệ thống là sức mạnh tổng hợp của các CPU.
Các hệ thống thời gian thực
Hệthốngxửlýthờigianthựcđược sử dụng khi có những đòi hỏi khắt khe về thời gian trên các thao tác của bộ xử lý hoặc dòng dữ liệu, nó thường được dùng điều khiển các thiết bị trong một ứng dụng riêng biệt. Máy
tính phân tích dữ liệu và có thể chỉnh các điều khiển để thay đổi các càm biến
vào.

Hệ thống thời gian thực cứng là công việc được hoàn tất đúng lúc. Khi
đó dữ liệu thường được lưu trong bộ nhớ ngắn hạn hay trong ROM. Việc xử lý theo thời gian thực sẽ xung đột với tất cả hệ thống đã nói đến ở trên.
Dạng thứ hai là hệ thống thời gian thực mềm, mỗi công việc có một độ
ưu tiên riêng và sẽ được thi hành theo độ ưu tiên đó. Có một số lĩnh vực áp dụng hữu hiệu phương pháp này là multimedia hay thực tại ảo.
Các hệ thống cầm tay


8MB, trong khi đó các máy PCs hay các trạm làm việc có đến hàng trăm MB bộ nhớ. Đây là một lý do đò hỏi hệ điều hành cũng như các chương trình ứng dụng phải quản lý và sử dụng bộ nhớ một cách có hiệu quả nhất.
Vấn đề thứ hai ảnh hưởng tới sự phát triển của các hệ thống cầm tay là
tốc độ của các bộ xử lý trong mỗi thiết bị thường không cao. Bộ xử lý của hầu hết các hệ thống cầm thay chỉ chạy bằng một phần lẻ tốc độ của bộ xử lý trong một máy PC.
Vấn đề thứ ba là màn hình hiển thị có kích thước nhỏ. Trong khi màn
hình cho các máy tính PCs có lên đến 21 inches thì màn hình của các máy cầm
một cách dễ dàng trên các máy PCs thì giờ đây phải chi ra và thể hiện từng
phần trên màn hình của máy cầm tay.

Lịch sử phát triển của hệ điều hành
Thế hệ 1 (1945 – 1955)
Vào khoảng giữa thập niên 1940, Howard Aiken ở Havard và John von Neumann ở Princeton, đã thành công trong việc xây dựng máy tính dùng ống chân không (đèn điện tử). Những máy này rất lớn với hơn 10000 ống chân không nhưng chậm hơn nhiều so với máy rẻ nhất ngày nay.
Mỗi máy được một nhóm thực hiện tất cả từ thiết kế, xây dựng lập trình, thao tác đến quản lý. Lập trình bằng ngôn ngữ máy tuyệt đối, thường là bằng cách dùng bảng điều khiển để thực hiện các chức năng cơ bản. Ngôn ngữ lập trình chưa được biết đến và hệ điều hành cũng chưa nghe đến.

trên phiếu thay cho dùng bảng điều khiển.
Thế hệ 2 (1955 – 1965)

Để thực hiện một công việc (một chương trình hay một tập hợp các
chương trình), lập trình viên trước hết viết chương trình trên giấy (bằng hợp ngữ hay FORTRAN) sau đó đục lỗ trên phiếu và cuối cùng đưa phiếu vào máy. Sau khi thực hiện xong nó sẽ xuất kết quả ra máy in.
Hệ thống xử lý theo lô ra đời, nó lưu các yêu cầu cần thực hiện lên băng từ, và hệ thống sẽ đọc và thi hành lần lượt. Sau đó, nó sẽ ghi kết quả lên băng từ xuất và cuối cùng người sử dụng sẽ đem băng từ xuất đi in.
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 là tiền thân của hệ điều hành sau này. Ngôn ngữ lập trình sử
dụng trong giai đoạn này chủ yếu là FORTRAN và hợp ngữ.
Thế hệ 3 (1965 – 1980)
Trong giai đoạn này, máy tính được sử dụng rộng rãi trong khoa học

Hệ điều hành ra đời nhằm điều phối, kiểm soát hoạt động và giải quyết các yêu cầu tranh chấp thiế bị. Chương trình hệ điều hành dài cả triệu dòng hợp ngữ và do hàng ngàn lập trình viên thực hiện.
Sau đó, hệ điều hành ra đời khái niệm đa chương. CPU không phải chờ thực hiện các thao tác nhập xuất. Bộ nhớ được chia làm nhiều phần, mỗi phần có một công việc (job) khác nhau, khi một công việc chờ thực hiện nhập xuất CPU sẽ xử lý các công việc còn lại. Tuy nhiên khi có nhiều công việc cùng xuất hiện trong bộ nhớ, vấn đề là phải có một cơ chế bảo vệ tránh các công việc ảnh hưởng đến nhau. Hệ điều hành cũng cài đặt thuộc tính spool.

T h ế h ệ 4 (từ 19 8 0)

Môi trường tính toán
- Môi trường tính toán truyền thống
- Môi trường tính toán dựa trên cở sở Web
- Môi trường tính toán nhúng
Câu hỏi và bài tập
1. Ba mục tiêu chính của hệ điều hành là gì?
2. Liệt kê 4 bước cần thiết để thực hiện một chương trình trên một hệ
thống riêng biệt hoàn thiện.
3. Các ưu điểm chính của đa chương trình là gì?
4. Sự khác nhau cơ bản giữa các hệ điều hành cho các máy tính

5. Hãy chỉ ra các đặc điểm cơ bản của các hệ điều hành sau: Gói (Batch), Tương tác (Interactive), Chia sẻ thời gian (Time sharing), Thời gian thực (Real time), Mạng (Network), Song song (Parallel), Phân tán (Distributed), Cụm (Clustered), cầm tay (HandHeld).
6. Hãy chỉ ra các khó khăn chính trong việc phát hệ điều hành cũng như
chương trình ứng dụng cho các hệ thống cầm tay.
7. Chỉ ra các ưu điểm chính của hệ thống đa chương trình, hệ thống phân tán và hệ thống có nhiều bộ xử lý.