GIÁO TRÌNH HỆ ĐIỀU HÀNH
Giảng viên. Trần Hạnh Nhi - Lê Khắc Nhiên Ân
MỤC LỤC
1. Tổng quan về hệ điều hành
2. Phân loại hệ điều hành
3. Cấu trúc hệ điều hành
4. Lịch sử phát triển hệ điều hành
5. Bài tập tự giải
6. Các mô hình xử lý đồng hành
7. Khái niệm tiến trình(Process) và mô hình đa tiến trình(multiprocess)
8. Khái niệm tiểu trình(thread) và mô hình đa tiểu trình(multithread)
9. Tóm tắt và bài tập
10. Quản lý tiến trình
11. Điều phối tiến trình
12. Quản lý tiến trình-Tóm tắt
13. Liên lạc giữa các tiến trình và vấn đề đồng bộ hóa
14. Cơ chế thông tin liên lạc
15. Nhu cầu đồng bộ hóa(synchronisation)
16. Các giải pháp đồng bộ hóa
17. Các giải pháp "Sleep and wakeup"
18. Các vấn đề cổ điển của đồng bộ hoá
20. Quản lý bộ nhớ
21. Không gian địa chỉ và không gian vật lý
22. Cấp phát liên tục
23. Cấp phát không liên tục
24. Quản lý bộ nhớ-Tóm tắt
25. Bộ nhớ ảo
26. Thay thế trang
27. Cấp phát khung trang
28. Bộ nhớ ảo-Tóm tắt
29. Hệ thống quản lý tập tin
30. Mô hình tổ chức và quản lý các tập tin
31. Các phương pháp cài đặt hệ thống quản lý tập tin
32. Bảng phân phối vùng nhớ
33. Tập tin chia sẻ
19. Tắc nghẽn (Deadlock)34. Quản lý đĩa
35. Độ an toàn của hệ thống tập tin
36. Giới thiệu một số hệ thống tập tin
37. Windows95
38. Windowns NT
39. Unix
40. Hệ thống quản lý nhập-xuất
41. Phần cứng nhập-xuất
42. Phần mềm nhập xuất
43. Giới thiệu một số hệ thống I-O
44. Hệ thống I-O chuẩn (terminals)
45. Cài đặt đồng hồ
46. Bảo vệ an toàn hệ thống
47. Miền bảo vệ (Domain of Protection)
48. Ma trận quyền truy xuất ( Access matrix)
49. Cài đặt ma trận quyền truy xuất
50. An toàn hệ thống (Security)
51. Hệ điều hành windowns NT
52. Hệ điều hành Linux -Giới thiệu
53. Tổ chức hệ thống (Tổng số 250 trang - đầy đủ mục lục tự động)
Tổng quan về hệ điều hành
Bài
học này cung cấp cho chúng ta một cái nhìn tổng quát về những nguyên lý
cơ bản của hệ điều hành. Chúng ta bắt đầu với việc xem xét mục tiêu và
các chức năng của hệ điều này, sau đó khảo sát các dạng khác nhau của
chúng cũng như xem xét quá trình phát triển qua từng giai đoạn. Các phần
này được trình bày thông qua các nội dung như sau:
A. Khái niệm về hệ điều hành
B Phân loại hệ điều hành
C. Cấu trúc của hệ điều hành
D. Lịch sử phát triển của hệ điều hành
Bài
học này giúp chúng ta hiểu được hệ điều hành là gì, có cấu trúc ra sao.
Hệ điều hành được phân loại theo những tiêu chuẩn nào. Quá trình phát
triển của hệ điều hành phụ thuộc vào những yếu tố nào. Bài học này đòi
hỏi những kiến thức về: kiến trúc máy tính.
A. KHÁI NIỆM VỀ HỆ ĐIỀU HÀNH
Hệ
điều hànhlà một chương trình hay một hệ chương trình hoạt động giữa
người sử dụng (user) và phần cứng của máy tính. Mục tiêu của hệ điều
hành là cung cấp một môi trường để người sử dụng có thể thi hành các
chương trình. Nó 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.
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 thường được chia làm bốn phần chính: phần cứng, hệ
điều hành, các chương trình ứng dụng và người sử dụng.
Phần
cứng bao gồm CPU, bộ nhớ, các thiết bị nhập xuất, đây là những tài
nguyên của máy tính. Chương trình ứng dụng như các chương trình dịch, hệ
thống cơ sở dữ liệu, các trò chơi, và các chương trình thương mại. Các
chương trình này sử dụng tài nguyên của máy tính để giải quyết các yêu
cầu của người sử dụng. Hệ điều hành điều khiển và phối hợp việc sử dụng
phần cứng cho những ứng dụng khác nhau của nhiều người sử dụng khác
nhau. Hệ điều hành cung cấp một môi trường mà các chương trình có thể
làm việc hữu hiệu trên đó.
Hệ
điều hành có thể được coi như là bộ phân phối tài nguyên của máy tính.
Nhiều tài nguyên của máy tính như thời gian sử dụng CPU, vùng bộ nhớ,
vùng lưu trữ tập tin, thiết bị nhập xuất v.v… được các chương trình yêu
cầu để giải quyết vấn đề. Hệ điều hành hoạt động như một bộ quản lý các
tài nguyên và phân phối chúng cho các chương trình và người sử dụng khi
cần thiết. Do có rất nhiều yêu cầu, hệ điều hành phải giải quyết vấn đề
tranh chấp và phải quyết định cấp phát tài nguyên cho những yêu cầu theo
thứ tự nào để hoạt động của máy tính là hiệu quả nhất. Một hệ điều hành
cũng có thể được coi như là một chương trình kiểm soát việc sử dụng máy
tính, đặc biệt là các thiết bị nhập xuất.
Tuy
nhiên, nhìn chung chưa có định nghĩa nào là hoàn hảo về hệ điều hành.
Hệ điều hành tồn tại để giải quyết các vấn đề sử dụng hệ thống máy tính.
Mục tiêu cơ bản của nó là giúp cho việc thi hành các chương trình dễ
dàng hơn. Mục tiêu thứ hai là hỗ trợ cho các thao tác trên hệ thống máy
tính hiệu quả hơn. Mục tiêu này đặc biệt quan trọng trong những hệ thống
nhiều người dùng và trong những hệ thống lớn(phần cứng + quy mô sử
dụng). Tuy nhiên hai mục tiêu này cũng có phần tương phản vì vậy lý
thuyết về hệ điều hành tập trung vào việc tối ưu hóa việc sử dụng tài
nguyên của máy tính.
B. Phân loại hệ điều hành
1. Hệ thống xử lý theo lô
Bộ giám sát thường trực:
Khi
một công việc chấm dứt, hệ thống sẽ thực hiện công việc kế tiếp mà
không cần sự can thiệp của người lập trình, do đó thời gian thực hiện sẽ
mau hơn. Một chương trình, còn gọi là bộ giám sát thường trực được
thiết kế để giám sát việc thực hiện dãy các công việc một cách tự động,
chương trình này luôn luôn thường trú trong bộ nhớ chính. Hệ điều hành
theo lô thực hiện các công việc lần lượt theo những chỉ thị định trước.
CPU và thao tác nhập xuất:
CPU
thường hay nhàn rỗi do tốc độ làm việc của các thiết bị nhập xuất
(thường là thiết bị cơ) chậm hơn rất nhiều lần so với các thiết bị điện
tử. Cho dù là một CPU chậm nhất, nó cũng nhanh hơn rất nhiều lần so với
thiết bị nhập xuất. Do đó phải có các phương pháp để đồng bộ hóa việc
hoạt động của CPU và thao tác nhập xuất.
Xử lý off_line:
Xử
lý off_line là thay vì CPU phải đọc trực tiếp từ thiết bị nhập và xuất
ra thiết bị xuất, hệ thống dùng một bộ lưu trữ trung gian. CPU chỉ thao
thác với bộ phận này. Việc đọc hay xuất đều đến và từ bộ lưu trữ trung
gian.
Spooling:
Spool
(simultaneousperipheraloperationon-line) là đồng bộ hóa các thao tác
bên ngoài on-line. Cơ chế này cho phép xử lý của CPU là online, sử dụng
đĩa để lưu các dữ liệu nhập cũng như xuất.
2. Hệ thống xử lý theo lô đa chương
Khi
có nhiều công việc cùng truy xuất lên thiết bị, vấn đề lập lịch cho các
công việc là cần thiết. Khía cạnh quan trọng nhất trong việc lập lịch
là khả năng đa chương. Đa chương (multiprogram) gia tăng khai thác CPU
bằng cách tổ chức các công việc sao cho CPU luôn luôn phải trong tình
trạng làm việc.
Ý
tưởng như sau: hệ điều hành lưu giữ một phần của các công việc ở nơi
lưu trữ trong bộ nhớ. CPU sẽ lần lượt thực hiện các phần công việc này.
Khi đang thực hiện, nếu có yêu cầu truy xuất thiết bị thì CPU không nghỉ
mà thực hiện tiếp công việc thứ hai…
Với
hệ đa chương hệ điều hành ra quyết định cho người sử dụng vì vậy, hệ
điều hành đa chương rất tinh vi. Hệ phải xử lý các vấn đề lập lịch cho
công việc, lập lịch cho bộ nhớ và cho cả CPU nữa.
3. Hệ thống chia xẻ thời gian
Hệ
thống chia xẻ thời gian là một mở rộng logic của hệ đa chương. Hệ thống
này còn được gọi là hệ thống đa nhiệm (multitasking). Nhiều công việc
cùng được thực hiện thông qua cơ chế chuyển đổi của CPU như hệ đa chương
nhưng thời gian mỗi lần chuyển đổi diễn ra rất nhanh.
Hệ
thống chia xẻ được phát triển để cung cấp việc sử dụng bên trong của
một máy tính có giá trị hơn. Hệ điều hành chia xẻ thời gian dùng lập
lịch CPU và đa chương để cung cấp cho mỗi người sử dụng một phần nhỏ
trong máy tính chia xẻ. Một chương trình khi thi hành được gọi là một
tiến trình. Trong quá trình thi hành của một tiến trình, nó phải thực
hiện các thao tác nhập xuất và trong khoảng thời gian đó CPU sẽ thi hành
một tiến trình khác. Hệ điều hành chia xẻ cho phép nhiều người sử dụng
chia xẻ máy tính một cách đồng bộ do thời gian chuyển đổi nhanh nên họ
có cảm giác là các tiến trình đang được thi hành cùng lúc.
Hệ
điều hành chia xẻ phức tạp hơn hệ điều hành đa chương. Nó phải có các
chức năng : quản trị và bảo vệ bộ nhớ, sử dụng bộ nhớ ảo. Nó cũng cung
cấp hệ thống tập tin truy xuất on-line…Hệ điều hành chia xẻ là kiểu của
các hệ điều hành hiện đại ngày nay.
4. Hệ thống song song
Ngoài
các hệ thống chỉ có một bộ xử lý còn có các hệ thống có nhiều bộ xử lý
cùng chia xẻ hệ thống đường truyền dữ liệu, đồng hồ, bộ nhớ và các thiết
bị ngoại vi. Các bộ xử lý này liên lạc bên trong với nhau.
Có
nhiều nguyên nhân xây dựng dạng hệ thống này. Với sự gia tăng số lượng
bộ xử lý, công việc được thực hiện nhanh chóng hơn, Nhưng không phải
theo đúng tỉ lệ thời gian, nghĩa là có n bộ xử lý không có nghĩa là sẽ
thực hiện nhanh hơn n lần.
Hệ
thống với máy nhiều bộ xử lý sẽ tối ưu hơn hệ thống có nhiều máy có một
bộ xử lý vì các bộ xử lý chia xẻ các thiết bị ngoại vi, hệ thống lưu
trữ, nguồn…và rất thuận tiện cho nhiều chương trình cùng làm việc trên
cùng một tập hợp dữ liệu.
Một
lý do nữa là độ tin cậy. Các chức năng được xử lý trên nhiều bộ xử lý
và sự hỏng hóc của một bộ xử lý sẽ không ảnh hưởng đến toàn bộ hệ thống.
Hệ
thống đa xử lý thông thường sử dụng cách đa xử lý đối xứng, trong cách
này mỗi bộ xử lý chạy với một bản sao của hệ điều hành, những bản sao
này liên lạc với nhau khi cần thiết. Một số hệ thống sử dụng đa xử lý
bất đối xứng, trong đó mỗi bộ xử lý được giao một công việc riêng biệt..
Một bộ xử lý chính kiểm soát toàn bộ hệ thống, các bộ xử lý khác thực
hiện theo lệnh của bộ xử lý chính hoặc theo những chỉ thị đã được định
nghĩa trước. Mô hình này theo dạng quan hệ chủ tớ. Bộ xử lý chính sẽ lập
lịch cho các bộ xử lý khác.
Một ví dụ về hệ thống xử lý đối xứng là version Encore của UNIX cho máy tính
Multimax.
Hệ thống này có hàng tá bộ xử lý. Ưu điểm của nó là nhiều tiến trình có
thể thực hiện cùng lúc. Một hệ thống đa xử lý cho phép nhiều công việc
và tài nguyên được chia xẻ tự động trong những bộ xử lý khác nhau.
Hệ
thống đa xử lý không đồng bộ thường xuất hiện trong những hệ thống lớn,
trong đó hầu hết thời gian hoạt động đều dành cho xử lý nhập xuất.
5. Hệ thống phân tán
Hệ
thống này cũng tương tự như hệ thống chia xẻ thời gian nhưng các bộ xử
lý không chia xẻ bộ nhớ và đồng hồ, thay vào đó mỗi bộ xử lý có bộ nhớ
cục bộ riêng. Các bộ xử lý thông tin với nhau thông qua các đường truyền
thông như những bus tốc độ cao hay đường dây điện thoại.
Các
bộ xử lý trong hệ phân tán thường khác nhau về kích thước và chức năng.
Nó có thể bao gồm máy vi tính, trạm làm việc, máy mini, và những hệ
thống máy lớn. Các bộ xử lý thường được tham khảo với nhiều tên khác
nhau như site, node, computer v.v.... tùy thuộc vào trạng thái làm việc
của chúng.
Các nguyên nhân phải xây dựng hệ thống phân tán là:
Chia
xẻ tài nguyê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 xẻ tài nguyên trong hệ thống phân tán cung cấp một cơ
chế để chia xẻ 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ăng
tốc độ tính toá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....
Nhận xét
Đăng nhận xét