BÀI I. CÁC KHÁI NIỆM CƠ BẢN 1.1 – Cấu trúc phân lớp của hệ thống tính toán Máy tính điện tử (MTĐT) ra đời trong khoảng thời gian 1943 – 1945 và từ 1946 đã trở thành một sản phẩm trên thị trường. Tất cả các MTĐT đều được chế tạo và hoạt động theo nguyên lý Von Neuman “Máy tính được điều khiển bằng chương trình và trong câu lệnh người ta không nêu trực tiếp các giá trị mà chỉ nêu
Trang 1BÀI I CÁC KHÁI NIỆM CƠ BẢN
1.1 – Cấu trúc phân lớp của hệ thống tính toán
Máy tính điện tử (MTĐT) ra đời trong khoảng thời gian 1943 – 1945 và từ
1946 đã trở thành một sản phẩm trên thị trường Tất cả các MTĐT đều được chế tạo và hoạt động theo nguyên lý Von Neuman “Máy tính được điều khiển bằng chương trình và trong câu lệnh người ta không nêu trực tiếp các giá trị mà chỉ nêu địa chỉ nơi chứa giá trị”
Như đã biết, mỗi loại MTĐT có một hệ lệnh riêng xác định tập công việc mà
nó có thể thực hiện và có một ngôn ngữ riêng – ngôn ngữ máy để người sử dụng viết chương trình hướng dẫn máy thực hiện các công việc mà mình yêu cầu
Hệ lệnh là một tập các số nguyên khác nhau, mỗi số nằm trong phạm vi từ 0 đến 255 và được gọi là mã lệnh, xác định một công việc máy có thể làm Các mã lệnh thường được biểu diễn ở hệ đếm cơ số 16 (Hệ đếm Hexa)
Ví dụ: một số mã lệnh trong hệ lệnh của máy tính IBM PC:
FA CLI Xóa tất cả các tín hiệu sự kiện
90 NOP Lệnh rỗng(Bỏ qua, không làm gì
hết)
Nội dung của bài I là xét quá trình ra đời và phát triển của hệ điều hành, các tính chất chung, các nguyên lý xây dựng và hoạt động của hệ điều hành, các thành phần của hệ thống Các vấn đề xem xét trong bài này chưa liên quan tới một nhiệm vụ và tài nguyên cụ thể nào của hệ thống
Trang 2Địa chỉ của bộ nhớ là một số nguyên không âm xác định từ hoặc byte của bộ nhớ nơi chứa dữ liệu Với máy tính IBM PC địa chỉ là số nguyên 5, 8 hoặc 16 chữ
số Hexa (tùy theo loại máy)
Như vậy, chương trình trên ngôn ngữ máy là tập các dòng chứa các số nguyên (thường là số nguyên hệ 16)
Như vậy, người lập trình phải đối thoại với máy tính bằng ngôn ngữ máy, phải nhớ viết chính xác các mã lệnh, địa chỉ các đại lượng mà mình sử dụng Một máy tính thông thường có cỡ 200 mã lệnh, một chương trình nhỏ cũng cần dùng tới trên dưới mười biến khác nhau
Những thông tin này là khác nhau ở những loại máy khác nhau Vì vậy, khi chuyển sang dùng loại máy mới người sử dụng phải học lại hệ lệnh và quy tắc viết câu lệnh, phải nhớ địa chỉ cho các biến mà mình dùng Lập trình là một công việc hết sức nhàm chán và người dùng mau chóng mệt mỏi khi viết chương trình Điều này dẫn đến những nhầm lẫn, sai sót trong chương trình Người ta có thể nhầm lẫn khi viết địa chỉ, ví dụ thay vì 46C người ta viết thành 4C6, vào chỗ địa chỉ 417
người ta viết địa chỉ 418, thay vào mã lệnh EB (Near Jump) người ta viết mã lệnh
EA (Far Jump), v v
Quá trình hiệu chỉnh chương trình (tìm và sửa lỗi) đòi hỏi rất nhiều thời gian
và công sức Năng suất lập trình trên ngôn ngữ máy là rất thấp Đó là điều mà không ai có thể chấp nhận được Hơn thế nữa, phần lớn các lỗi trong chương trình đều có vẻ như không đáng có, không thể xẩy ra nếu người lập trình cẩn thận hơn, tập trung tư tưởng hơn khi làm việc Người ta đưa ra nhiều biện pháp tác động lên người lập trình, bao gồm:
Hình 1.1 Làm vi ệc trên ngôn ngữ
Trang 3Các biện pháp kỹ luật hành chính,
Các biện pháp thưởng phạt kinh tế
Năng suất lập trình quả thật có tăng lên, nhưng không đáng kể và dừng lại, ổn định ở một mức đáng ngạc nhiên – 8 câu lệnh/ngày công! Hãy tưởng tượng, nếu bạn làm việc trực tiếp với máy tính IBM PC bằng ngôn ngữ máy như những năm
1945 – 1950, năng suất lập trình của bạn là chưa tới 32 Bytes/ngày công
Để tìm ra các nguyên nhân làm năng suất lao động bị trì trệ người ta đã mời các nhà tâm lý học đến tìm hiểu Sau một thời gian khảo sát các tâm lý học đi tới kết luận: ”Bản chất của con người là không quen làm các công việc đơn điệu, không có tính quy luật Nếu phải liên tục thực hiện các công việc đơn điệu, không
có tính quy luật thì sớm hay muộn người ta cũng phạm sai lầm” Mà lập trình là công việc hết sức đơn điệu, nhàm chán Nếu nhìn vào một đoạn giữa chương trình,
ta cũng không quan sát tính quy luật của việc sử dụng các mã phép tính và địa chỉ
bộ nhớ
Như vậy, muốn nâng
cao năng suất lập trình thì
phải tác động lên thành phần
còn lại, đó là máy tính
Người ta thấy có những công
việc mà chương trình nào
cũng cần như tổ chức vào –
ra Vậy tại sao ta không xây
dựng nó thật chuẩn và cung cấp cùng với máy tính cho người sử dụng Tư tưởng xây dựng Chương trình mẫu (Standard Programs – SP) ra đời Các SP được tập hợp dưới dạng một đơn vị quản lý và kèm thêm chương trình hỗ trợ tìm kiếm, trích
ra mô đun cần thiết gắn vào chương trình người dùng, tạo thành một Thư viện chương trình mẫu (Library of Standard Programs – LSP)
Mỗi thư viện do một Công ty xây dựng và mang dấu ấn của công ty đó thể hiện ở các quy tắc truy nhập và khai thác Người lập trình phải học và nắm vững những quy tắc này mới có thể khai thác hiệu
quả thư viện Điều này cũng cản trở việc sử
dụng liên hoàn các thư viện trong một chương
trình Vậy tại sao ta không xây dựng một giao
diện bao trùm lên các thư viện, hỗ trợ người
Hình 1.2 S ử dụng thư viện chương trình
Trang 4lập trình khai thác thuận tiện mọi thư viện với một bộ quy tắc duy nhất? Yêu cầu này đã được đáp ứng và bây giờ người lập trình chỉ phải học cách làm việc với giao diện là có thể khai thác và sử dụng liên hoàn các thư viện
Điều này làm cho năng suất lập trình và hiệu quả sử dụng máy tính được đẩy lên mức cao hơn Nhiều vấn đề đã được lập trình sẵn, người sử dụng chỉ việc kích hoạt và khai thác các thư viện tương ứng Người ta lại có thể xây dựng các thư viện mạnh hơn, vạn năng hơn bao lấy những gì đã có và lại phải xây dựng giao diện mới trùm lên toàn bộ các thư viện và giao diện cũ
Kết quả cuối cùng chúng ta có một máy tính được bao bởi một loạt các thư
viện và giao diện hỗ trợ khai thác
Người sử dụng có thể không cần biết lập trình cũng khai thác được máy tính, dùng máy tính để giải quyết các bài toán riêng của mình
Việc lập trình vẫn cần thiết để giải quyết những vấn đề mà các thư viện không cung cấp sẵn công cụ xử lý trực tiếp Ngoài ra lập trình còn cần thiết để cải tiến, nâng cấp các giao diện
Hình 1.5 Th ư viện và giao diện
Giao diện
Trang 5Bây giờ cả người dùng trực tiếp lẫn người lập trình chỉ cần nắm được cách làm việc với lớp giao diện ngoài cùng và cũng chỉ tác động lên máy tính thông qua lớp giao diện này
Máy tính được gọi là phần cứng (Hardware) Các chương trình bao trùm lên máy tính được gọi là phần mềm (Software) Phần cứng và phần mềm kết hợp lại
tạo thành một Hệ thống tính toán hay gọi tắt là Hệ thống (System)
Khi mua máy tính, trên thực tế ta phải mua cả hệ thống và phải trả chi phí cho
cả phần cứng và phần mềm
Vào những năm 60 của thế kỷ XX giá trị của phần mềm chiếm cỡ 40% giá trị toàn hệ thống Ở những năm 70 giá trị phần mềm chiếm cở 60% giá trị toàn hệ thống Giữa những năm 90, giá trị của một máy tính IBM PC 486 là 1200$ trong lúc đó giá một phần mềm Microsoft bán là:
Microsoft MS-DOS 6.22 (phiên bản sử dụng) 105$
Microsoft Windows for Workgroups (20 lần cài đặt) 3520$
Phần mềm
Phần
cứng
Hệ thống (System)
Hình 1.6 Hai thành ph ần của
Trang 6Microsoft Excel 5.0 for Windows 495$
Ngày nay, giá trị của phần mềm có thể vài ngàn cho đến vài chục ngàn lần giá trị phần cứng Ví dụ một máy tính chip Core i5 có giá chừng 500$ (cùng với các phần mềm cơ sở), trong khi đó giá trị bộ chương trình tính toán thiết kế cầu là 500 ngàn USD
1.2 – Vai trò của phần mềm
Sự tồn tại và phát triển của phần mềm là nhân tố quan trọng đưa tới những thay đổi quan trọng trong công nghệ thông tin Cần phải nhấn mạnh rằng bản thân phần mềm không trực tiếp làm thay đổi con người hay thiết bị Nhưng sự tồn tại và phát triển của nó làm thay đổi môi trường làm việc, làm cho chúng ta có điều kiện suy nghĩ và hành động theo kiểu khác, điều này sẽ kéo theo thay đổi trong mọi lĩnh vực của công nghệ thông tin
Phần mềm là lớp đệm trung gian giữa người và máy, vì vậy nó tác động lên 2 thành tố quan trọng của hệ thống thông tin:
Thiết bị kỹ thuật,
Con người
Chúng ta sẽ lần lượt xem xét các tác động của nó lên mỗi thành tố
1.2.1 – Tác động lên phần thiết bị kỹ thuật
Mọi sự thay đổi của phần cứng đều có 2 nguyên nhân:
Sự tiến bộ của công nghệ,
Sự tồn tại và phát triển của phần mềm
Thật khó tính toán tách bạch trong từng thay đổi vai trò của mỗi yếu tố nêu trên chiếm tỷ lệ bao nhiêu phần trăm bởi vì hai yếu tố này có mối quan hệ khăng khít và tác động qua lại hỗ trợ nhau
Sự tồn tại của một phần mềm phát triển đã tạo điều kiện cho các nhà thiết kế
kỹ thuật chuyển giao bớt một số chức năng cho phần phần mềm và từ đó cho phép:
a- Cơ sở hóa hệ lệnh của máy tính
Những máy tính đầu tiên có một số lệnh như ở máy tính bấm tay Casio: tính sin(x), ln(x), x, |x|, Người ta phải lắp các bảng mạch biến đổi tín hiệu số phức tạp để từ đầu vào là x nhận được tín hiệu ra là hàm cần tính Những bảng mạch này làm cho máy trở nên cồng kềnh, đắt tiền, tốc độ xử lý trung bình giảm do thời gian
xử lý tín hiệu số cho các phép tính này lớn Người sử dụng phải trả tiền cho những
Trang 7bảng mạch này khi mua máy tính, nhưng hiệu quả sử dụng chúng lại không cao vì
tỷ lệ sử dụng các phép tính này ít hơn nhiều so với các phép tính khác như cộng, trừ, nhân, chia, Hơn thế nữa, bảng mạch luôn cho kết quả với một lượng số chữ
số có nghĩa cố định trong lúc dữ liệu xử lý có thể đòi hỏi ít hay nhiều chữ số có nghĩa hơn Bằng cách bổ sung các mô đun tương ứng trong phần mềm, người ta dễ dàng vòng tránh việc lắp ráp các bảng mạch xử lý tín hiệu số phức tạp này Chẳng hạn bằng chương trình con tính gần đúng theo theo thức trực giao Tre Bư Sép ta có thể tính gần đúng giá trị hàm với độ chính xác tùy ý mà chỉ cần có các phép tính số học bình thường
Những máy tính chế tạo năm 1960 chỉ còn các phép tính x, |x|, còn những máy tính năm 70 – chỉ còn phép |x| Các máy tính hiện nay không có cả mã phép tính lấy giá trị tuyệt đối nữa! Tất cả mọi chuyện đều có thể giải quyết hiệu quả hơn bằng phần mềm
Một loạt các mã phép tính được giải phóng Người ta tăng cường thêm cho máy các phép tính xử lý bit – các phép tính đơn giản và hiệu quả
b – Cho phép thiết kế MTĐT với tốc độ cao
Trong hệ lệnh không còn các phép tính phức tạp đòi hỏi nhiều thời gian xử lý Nói chung, với mỗi phép xử lý bit thường chỉ cần một nhịp thời gian Ngoài ra, trên cở sở của một phần mềm phát triển người ta có thể tổ chức lại mối quan hệ giữa các thành phần kỹ thuật, tức là cách thiết kế, chế tạo máy tính Điều này tác động rất nhiều lên năng suất của máy và sẽ được xét kỹ hơn ở các phần tiếp theo
c – MTĐT trở nên vạn năng hơn
Việc tăng cường các khả năng xử lý bit đã tác động lên cơ sở thông tin và làm cho việc xử lý trở nên đa dạng, linh hoạt hơn Người ta có thể lưu trữ và xử lý có hiệu quả bao gồm 5 loại dữ liệu cơ sở trong tin học:
Giá trị lô gic,
Trang 8cho một đối tượng, cung cấp cho người dùng một khả năng vô hạn nghiên cứu, khảo sát đối tượng mà mình quan tâm
Thiết bị kỹ thuật chỉ đảm bảo các phép xử lý cơ sở Từ các phép xử lý cơ sở
đó ta có thể tổ hợp thành các hành động cho kết quả phức tạp tùy ý
Ví dụ, với máy in (một thành phần thiết bị của hệ thống), phần thiết bị kỹ thuật chỉ đảm bảo có một chấm mực ở vị trí yêu cầu trên tờ giấy Tất cả còn lại do phần mềm đảm nhiệm Vì vậy, dùng máy in ta có thể in văn bản, in sơ đồ bản vẽ
kỹ thuật, in tranh ảnh v v Cùng một văn bản, ta có thể in ở nhiều khuôn dạng khác nhau, cùng một máy in ta có thể in văn bản ở ngôn ngữ bất kỳ Người ta không còn cần trang bị máy in chuyên dụng cồng kềnh và đắt tiền như plotter
d – Tin cậy hơn
Giữa những năm 60 của thế kỷ XX trở về trước, việc triển khai một giải thuật giải bài toán trên máy tính bao giờ cũng có phần kiểm tra xem đến thời điểm này máy tính vẫn hoạt động chính xác khi thực hiện các phép xử lý đã nêu trong giải thuật hay không Nếu phát hiện lỗi xử lý thì sơ đồ tính toán phải cho phép lùi lại tới một điểm nào đó đã qua và khôi phục lại phần tính toán không tin cậy Đó là một việc cực kỳ phức tạp và tốn kém cả công sức con người lẫn thời gian thực hiện giải thuật Như vậy nhiệm vụ của người lập trình không đơn thuần là triển khai giải thuật mà còn kiểm tra độ ổn định của máy tính trong quá trình thực hiện giải thuật! Ngày nay, yêu cầu đó trở nên xa lạ đối với người lập trình và đơn thuần là trở nên không cần thiết vì các lý do:
Linh kiện điện tử hoạt động ổn định hơn,
Không còn các sơ đồ cơ sở phức tạp xử lý tín hiệu số, vì vậy các phép xử lý
cơ sở ít bị ảnh hưởng của nhiễu nếu có,
Trong trường hợp có sự cố kỹ thuật, phần mềm sẽ phát hiện, cục bộ hóa sai sót và tiến hành khôi phục tự động hoặc cùng lắm – báo cho người sử dụng biết để có phương án xử lý thích hợp
e – Giảm giá thành
Nguyên nhân để các thiết bị điện tử nói chung và MTĐT nói riêng có rất nhiều, trong đó nổi bật, dễ nhìn thấy nhất là tác động của tiến bộ công nghệ Nhưng ở đây phần mềm cũng có tiếng nói của mình và vai trò của nó cũng hết sức quan trọng Điều này dễ nhìn thấy nhất khi xem xét các thiết bị ngoại vi như máy
in, bàn phím, v v
Trang 9Năm 1972 khi công ty IBM đưa máy tính vào Miền Nam họ phải thiết kế riêng 2 máy in để in tiếng Việt với bảng giải mã điện tử riêng và bảng chữ cái trên trống in riêng Hai máy in này đương nhiên đắt tiền hơn nhiều so với các máy in văn bản tiếng Anh Máy in tiếng Nhật chỉ bán được ở thị trường Nhật, máy in tiếng Đức – thị trường Đức
Ngày nay máy in trở nên vạn năng Với việc cơ sở hóa tác động như đã nói ở trên và với cơ chế điều khiển bằng phần mềm người ta có thể in văn bản ở bất kỳ ngôn ngữ nào và in thông tin ở bất kỳ dạng nào – văn bản hay đồ thị Như vậy một máy in sản xuất ra được bán trên toàn thế giới với giá bán thấp hơn nhiều những sản phẩm chỉ dành cho một thị trường hạn chế Tình hình cũng tương tự như vậy với bàn phím, màn hình
f – Năng cao độ mềm dẻo linh hoạt của cấu hình
Các bộ phận của MTĐT và các thiết bị ngoại vi được thiết kế chế tạo dưới dạng các mô đun kỹ thuật độc lập Việc kết nối chúng thành một hệ thống được hiện thông qua phần mềm Điều này cho phép ta lựa chọn và thay đổi cấu hình hệ thống tùy theo khả năng và nhu cầu Dễ dàng nâng cấp máy tính bằng cách thay màn hình, tăng dung lượng RAM, thay một máy in cũ bằng máy mới hiện đại hơn
1.2.2 – Tác động của phần mềm lên người dùng
a – Người dùng bị đẩy xa ra khỏi máy nhưng lại có điều kiện khai thác triệt
để và tối ưu mọi thiết bị kỹ thuật
Trước đây, thao tác với máy tính và các thiết bị khá phức tạp Người sử dụng phải tác động trực tiếp lên thiết bị thông qua các núm, công tắc, phím bấm
Điều này đòi hỏi người dùng phải có kiến thức sâu về thiết bị và nguyên tắc hoạt động của nó Mỗi thiết bị đều có bảng điều khiển bố trí kín đặc các loại núm điều khiển khác nhau và cả những cửa sổ thông báo về tình trạng thiết bị
Việc can thiệp trực tiếp của con người lên thiết bị làm giảm mức độ tự động hóa và làm chậm một cách đáng kể quá trình xử lý thông tin Ngoài ra, khả năng điều khiển cũng bị hạn chế trong phạm vi những gì mà bảng điều khiển cho phép
Trang 10Ngày nay, máy tính và các thiết bị chỉ có các phím điều khiển tối thiểu Với
máy in chẳng hạn, chỉ còn phím dừng và phím đẩy giấy ra ngoài
Tất cả mọi điều khiển khác đều được thực hiện thông qua phần mềm
Hình 1.7 B ảng điều khiển máy IBM
360/50 (trái) máy in phun Epson v ới bảng điều
Phím dừng
Phím đẩy giấy ra
Hình 1.8 Máy in laser màu HP Color LaserJet P1215
Trang 11Rõ ràng bảng điều khiển do phần mềm cung cấp chi tiết hơn, dễ hiểu hơn, cho phép người dùng khai thác mật cách đa dạng thiết bị mình có
Một số thao tác cần thực hiện trực tiếp trên thiết bị, ví dụ như gõ văn bản từ bàn phím Nhưng mỗi tín hiệu gõ từ bàn phím được truyền trở lại vào phần mềm
Cái mà chúng ta quan sát được trên màn hình là kết quả xử lý của phần mềm Chính vì vậy, từ một bàn phím ta có thể gõ văn bản tiếng Anh, tiếng Việt, tiếng Nga, tiếng Nhật, v v
Hình 1.9 B ảng điều khiển máy in laser màu HP Color
LaserJet P1215 do ph ần mềm cung cấp Từ bảng điều khiển chính
này có vào các b ảng thứ cấp với các tham số chi tiết hơn
Hình1.10 X ử lý tín hiệu gõ từ bàn
Trang 12Phụ thuộc vào tần số xuất hiện các ký tự trong ngôn ngữ của mình và thói quen sử dụng trên các loại bàn phím truyền thống, mỗi nước tự quy định ý nghĩa các phím bấm để thuận tiện sử dụng Phần mềm sẽ tự điều chỉnh cách giải mã phù hợp khi được khai báo kiểu gõ phím
Với tiếng Việt, ta có thể sử dụng chế độ Telex hoặc chế độ tự gõ dấu (chế độ VNI) tùy theo thói quen và ý thích của mỗi người
Như vậy, hệ thống phải thích nghi với người dùng chứ không phải ngược lại! Khi gõ tiếng việt ở chế độ Telex:
Dễ dàng thấy rằng không phải cái được gõ là cái đó hiển thị trên màn hình mà nội dung lưu trữ và hiển thị là sản phẩm xử lý của phần mềm
Bây giờ người dùng không còn dễ dàng can thiệp trực tiếp vào hoạt động của các thiết bị, nhưng bù lại, thông tin sẽ được bảo vệ an toàn hơn và các thiết bị luôn hoạt động ở chế độ tối ưu
Trang 13b – Thay đổi nguyên lý làm việc
MTĐT được điều khiển bằng chương trình Vì vậy, để máy thực hiện một công việc nào ta phải kích hoạt chương trình tương ứng
Thời kỳ đầu tiên (vào những năm 50 và đầu những năm 60 của thế kỷ XX) người dùng phải trực tiếp nạp các chương trình này vào máy Sau đó, với sự phát triển của phần mềm, người ta trang bị cho hệ thống một ngôn ngữ đối thoại để người dùng có thể trực tiếp ra lệnh cho máy thực hiện những công việc thường cần đến trong quá trình khai thác máy tính Đó là ngôn ngữ JCL (Job Control Langue) trong các hệ thống của IBM hay ngôn ngữ MS DOS trong các hệ thống của Microsoft
Ví dụ, trong các hệ thống của Microsoft, muốn xem ổ đĩa D: chứa những files
và thư mục nào ta phải ra lệnh
quy cách viết câu lệnh ấy Đó là cách giao tiếp theo nguyên tắc ra lệnh
Ngày nay, bên cạnh phương thức giao tiếp theo nguyên tắc ra lệnh hệ thống
còn cung cấp một cách giao tiếp khác thông qua Bảng chọn (Menu) Hệ thống sẽ
giới thiệu cho chúng ta những khả năng mà nó có thể đáp ứng và ta chỉ cần chỉ cho
hệ thống công việc nó phải là, đó là nguyên tắc Menu
Menu do hệ thống cung cấp có nhiều loại:
Menu bằng lời (Words),
Menu biểu tượng (Icons),
Menu kết hợp (Biểu tượng và lời)
Ở Menu bằng lời hệ thống tạo ra các cửa sổ, trên đó ghi các công việc mà nó
có thể đáp ứng bằng một ngôn ngữ tự nhiên nào đó (tiếng Anh, tiếng Việt, tiếng Nhật, )
Trang 14Ưu điểm của menu bằng lời:
Có độ nén cao: trong một cửa sổ diện tích nhỏ hệ thống có thể giới thiệu hàng chục công việc khác nhau,
Có độ phân giải tốt: Người dùng hiểu được chính xác công việc được giới thiệu
Nhưng nhược điểm của nó là bị hạn chế bởi hàng rào ngôn ngữ Nếu đó là
một ngôn ngữ xa lạ thì menu này sẽ giúp ích gì cho người dùng?
Ví dụ: Với menu dưới đây ta chỉ có thể đoán được vài thông tin nếu không biết tiếng Nhật
Menu biểu tượng
Menu
Menu
Menu kết hợp
Hình 1.12 Các lo ại
menu
Trang 15Để khắc phục nhược điểm này người ta tổ chức menu dạng biểu tượng Mỗi công việc trong bảng chọn được thể hiện bằng một hình (icon) biểu tượng cho công việc đó Với ngôn ngữ bằng hình ảnh này
người ta đã tránh được hạn chế của hàng rào ngôn
ngữ Đó là ưu điểm nổi bật của loại menu này Tuy
vậy giá phải trả ở đây là độ nén và độ phân giải
Hình ảnh chiếm nhiều chỗ hơn so với việc thông
báo bằng lời, nên trên cùng một diện tích cửa sổ
màn hình số lượng mục công việc thông thường ít
hơn so với việc dùng văn bản Các công việc khác
nhau dễ diễn tả bằng lời, còn bằng biểu tượng –
Bước hoàn thiện cơ chế bảng chọn tiếp theo là tổ chức kết hợp giữa văn bản
Hình 1.14 Hình 1.13 M ột menu bằng lời tiếng Nhật
Trang 16thiện đáng kể Văn bản giải thích biểu tượng được đưa vào dưới dạng tĩnh hoặc động
để thực hiện một công việc nào đó,
Các mô đun chương trình cung cấp dịch vụ phải hoạt động chủ yếu trên cơ
sở nguyên tắc ra lệnh
c – Hiệu ứng tự đào tạo
Người dùng chỉ cần biết những kiến thức chung, đơn giản nhất về tin học là
có thể làm việc với hệ thống Theo hướng dẫn của menu người dùng sẽ thực hiện được những công việc cần thiết Càng làm việc nhiều người ta càng biết sâu về hệ thống và biết cách khai thác nó một cách tốt hơn Điều đáng lưu ý là những kiến thức người dùng dần dần nắm được đều tập trung xung quanh nhu cầu làm việc của họ! Ngoài ra menu còn cung cấp hệ thống trợ giúp để quá trình tự đào tạo này diễn
ra nhanh hơn (và rộng hơn nếu muốn) Chính vì vậy những cuốn sách dày hướng dẫn khai thác, sử dụng phần mềm dần dần biến khỏi kệ sách ở các cửa hàng
d – Hiệu ứng WYSIWYG
WYSIWYG là nguyên lý “Bạn nhìn thấy như thế nào thì sẽ nhận được như
th ế đó” (What You See is What You Get) Các phần mềm cho hình ảnh thông tin
đúng như khi nó được đưa ra thiết bị vật lý sau khi kết thúc công việc Như vậy ta
có thể nhìn thấy trước kết quả để có thể xử lý một cách thích hợp Ví dụ, một hình
vẽ được biên tập trong Microsoft Visio Ở chế độ màn hình màu hình trông rất đẹp
và cũng vẫn đẹp như vậy nếu ta in ra trên máy in màu Nhưng nếu in trên máy in đen trắng Độ tương phản màu có thể làm cho hình rất khó xem, không nổi bật phần định nhấn mạnh Ta có thể xem trước ở chế độ in đen trắng , chỉnh lý lại màu sao cho hình màu vẫn đẹp mà kết quả in đen trắng vẫn đáp ứng yêu cầu về độ phân giải thông tin
Trang 17Như vậy hệ thống đã cung cấp phương tiện để ta có thể sử dụng giác quan quan trọng nhất – thị giác, vào việc xử lý thông tin Như chúng ta đã biết, thị giác cung cấp 90% lượng thông tin cho con người Năng suất lao động sẽ tăng lên nhiều khi ta sử dụng được thông tin do mắt cung cấp
Hệ thống càng hiện đại bao nhiêu thì hiệu ứng
WYSIWYG càng được triển khai sâu và rộng bấy nhiêu
Ví dụ, từ MS Office 2000 trở đi, tên font chữ được đưa ra
bằng chính font đó Điều này làm cho việc lựa chọn font
phù hợp trở nên dễ dàng, đơn giản hơn nhiều
Bên cạnh công cụ xác lập bằng mắt hệ thống vẫn
đảm bảo các công cụ cho phép ta xác lập các tham số một
cách tuyệt đối chính xác theo con đường toán học
e – Giải phóng người dùng khỏi sự ràng buộc của
thiết bị vật lý cụ thể
Một văn bản được soạn thảo có thể in ra thiết bị bất
kỳ hoặc lưu ra file trên thiết bị tùy ý mà người dùng
không phải lo trước Có thể thay đổi nơi nhập dữ liệu hoặc đưa kết quả ra mà không cần sửa đổi gì trong chương trình
1.3 – Tài nguyên cơ bản của hệ thống
Hệ thống phải tồn tại trên cơ sở của các thực thể vật chất cụ thể Những thực
thể vật chất chủ yếu làm nền tảng cho mọi hệ thống được gọi là các tài nguyên cơ
Trang 18với các tài nguyên Các phương thức quản lý cụ thể với từng loại tài nguyên sẽ được xét kỹ hơn ở các phần sau
1.3.1 – B ộ nhớ trong
Toàn bộ mọi thông tin, bao gồm cả chương trình và dữ liệu, muốn xử lý đều phải được đưa vào bộ nhớ trong Từ đó, thông tin sẽ được đưa đi xử lý Kết quả xử
lý được ghi trở lại bộ nhớ Kết quả cuối cùng sẽ được đưa từ bộ nhớ trong ra thiết
bị ngoại vi (màn hình, giấy in, file trên đĩa
Dung lượng bộ nhớ trong là một trong những tham số chủ yếu của hệ thống Ngày nay các máy tính cá nhân có dung lượng bộ nhớ trong phổ biến không ít hơn 2GB Những máy tính tốt nhất của những năm 1970 cũng chỉ có bộ nhớ với dung lượng 512KB, tuy vậy nó vẫn giải quyết được phần lớn mọi bài toán như máy tính hiện đại Như vậy sử dụng bộ nhớ như thế nào còn quan trọng hơn cả việc có bao nhiêu bộ nhớ
Thông tin đưa vào trong bộ nhớ có thể bị sao chép hoặc sửa đổi ngoài ý muốn của người chủ thông tin Vì vậy cần có cơ chế bảo vệ, đủ hữu hiệu nhưng không ảnh hướng đến tốc độ xử lý chung
Hình 1.16 Vai trò b ộ
Trang 19sử dụng chưa tới 10-5 khả năng của mình Thời gian CPU không làm gì được gọi là
“thời gian chết”
Muốn nâng cao hiệu quả hoạt động của hệ thống thì phải giảm thời gian chết của CPU CPU là thiết bị đắt tiền nhất vì vậy việc giảm thời gian chết của CPU là con đường hiệu quả nhất để nâng cao năng suất
toàn hệ thống
1.3.3 – Thi ết bị ngoại vi
Máy tính nào cũng phải có các thiết bị ngoại
vi Một số thiết bị ngoại vi bắt buộc phải có, một
số khác – lắp theo nhu cầu và khả năng Ví dụ,
với máy tính IBM PC, thiết bị ngoại vi bắt buộc
phải có là màn hình và bàn phím Các thiết bị lắp
thêm có thể là đĩa đặc (SSD), đĩa cứng (HD), Flash Disk USB, chuột, máy chiếu,
Hình 1.17 CPU và s ơ đồ cấu trúc trong
Hình 1.19 Flash
Trang 20Đặc điểm của thiết bị ngoại vi:
1.3.4 – Tài nguyên ch ương trình
Sự tồn tại các mô đun chương trình khác nhau, sự hoàn thiện, tính đa dạng chức năng và mức độ vạn năng của chúng, mối quan hệ giữa các mô đun sẽ quyết định chất lượng của phần mềm Cấu trúc chương trình cũng tác động nhiều lên chất lượng hệ thống Phần lớn các chương trình ứng dụng có cấu trúc “Vào nhiều lần” (Reenter/Reentable) đảm bảo khả năng đồng thời dịch vụ nhiều dữ liệu vào khác nhau Ở các hệ thống hiện đại, phần mềm có thể lưu trữ như một cơ sở dữ liệu phân tán, không nhất thiết phải tập trung ở một máy
Nhiệm vụ chung của hệ thống đối với tài nguyên là:
Quản lý trạng thái,
Phân phối tài nguyên
Quản lý trạng thái là xác định xem với mỗi tài nguyên có bao nhiêu đơn vị đang ở trạng thái sẵn sàng sử dụng, trong số đó bao nhiêu đơn vị tài nguyên đang
Hình 1.18 M ột số loại thiết bị
ngo ại vi
Đĩa đặc (SSD)
Trang 21được sử dụng (trạng thái bận) Có những tài nguyên nào đã được hệ thống chuẩn bị nhưng hiện tại chưa kết nối Với những tài nguyên phân chia được, tỷ lệ đang sử dụng là bao nhiêu và phần nào còn tự do Việc quản lý trạng thái phải được thực hiện theo thời gian thực, tức là mọi sự thay đổi phải được nhận dạng ngay lập tức khi nó xẩy ra
Phân phối tài nguyên là quyết định cho ai, khi nào và bao nhiêu tài nguyên Việc quản lý tài nguyên phải đảm bảo cho hệ thống hoạt động có hiệu quả nhất Tiêu chuẩn đánh giá tính hiệu quả có thể là thông lượng của hệ thống, tức là
số trung bình công việc mà nó hoàn thành được trong một đơn vị thời gian hoặc độ linh hoạt của hệ thống trước các tình huống Các hệ thống khác nhau có những giải pháp khác nhau trong quản lý tài nguyên và điều này thể hiện qua giao diện mà nó cung cấp cho người dùng, qua các đặc trưng kỹ thuật của hệ thống và phạm vi ứng dụng của hệ thống
1.4 – Định nghĩa Hệ điều hành
Phần mềm bao trùm lên các thiết bị kỹ thuật phải giải quyết hai vấn đề về chức năng ít liên quan tới nhau, đó là:
Đảm bảo một giao diện thuận tiện cho người dùng,
Nâng cao hiệu quả hoạt động của thiết bị nói riêng và toàn hệ thống nói chung qua cách quản lý tài nguyên của mình
Các hệ thống đảm bảo hai yêu cầu trên phải được xây dựng và phát triển theo một số quy tắc nhất định và có một số tính chất nhất định Những hệ thống đảm bảo các yêu cầu đã nêu được gọi chung là Hệ điều hành
Việc định nghĩa một cách thống nhất hệ điều hành là một điều khó khăn và cũng không thực sự cần thiết
Hệ điều hành liên quan và ảnh hưởng tới công việc của nhiều lớp đối tượng khác nhau Mỗi lớp đối tượng có những yêu câu, đòi hỏi riêng đối với hệ thống, nhìn hệ thống trên quan điểm của mình và từ đó có định nghĩa riêng cho hệ điều hành Đó là một điều bình thường đối với các đối tượng trong khoa học ứng dụng Mọi định nghĩa, có thể hơi phiến diện, nhưng đều có tính hợp lý của nó Mỗi định nghĩa làm nổi bật tính chất này hay tính chất của đối tượng được định nghĩa trên quan điểm của một lớp người liên quan Việc xem xét các định nghĩa khác nhau sẽ mang lại cho chúng ta cái nhìn toàn diện về đối tượng được định nghĩa
Trang 22Người dùng, sử dụng máy tính để giải quyết các vấn đề của mình,
Nhà quản lý, người có trách nhiệm hành chính đảm bảo cho hệ thống luôn ở trạng thái hoạt động tốt nhất,
Nhà kỹ thuật, người thiết kế, chế tạo ra phần cứng của hệ thống,
Người lập trình hệ thống – người thiết kế, xây dựng, bảo trì và cải tiến phần mềm của hệ thống
a – Trên quan điểm của người dùng
Đối với người sử dụng máy tính để giải quyết các vấn đề của mình, Hệ điều
hành là “Hệ thống phục vụ cho việc khai thác thuận tiện các tài nguyên của hệ
mà họ đã làm việc nhiều
Các hệ thống khác nhau đảm bảo mức độ thuận tiện khác nhau Hệ thống càng hiện đại bao nhiêu thì mức độ thuận tiện càng cao bấy nhiêu
b – Trên quan điểm của nhà quản lý
Nhà quản lý và người sử dụng có thể là hai đối tượng tách rời, khác nhau, nhưng người sử dụng có thể đồng thời là nhà quản lý Nếu bạn mua một máy tính
cá nhân cho mình thì bạn vừa là người khai thác, sử dụng vừa là người quản lý Bạn phải lo lắng tìm cách cài đặt các phần mềm cần thiết, phải tìm cách đảm bảo sao cho hệ thống không bị nhiễm vi rút, phải quan tâm đến việc đĩa cứng ít bị phân mãnh và nếu bị phân mãnh quá nhiều thì phải bố trí lại thông tin trên đĩa để khắc phục, bạn phải tìm cách bảo vệ hệ thống để người khác không thể xóa hay thay đổi những gì được cài đặt trong hệ thống
Đối nhà quản lý, “Hệ điều hành là hệ thống chương trình phục vụ quản lý
ch ặt chẽ các tài nguyên của hệ thống tính toán và tổ chức khai thác chúng một
cách t ối ưu”
c – Nhà kỹ thuật
Người làm kỹ thuật nhìn phần mềm từ góc độ của phần cứng, quan sát những thay đổi xuất hiện khi có phần mềm
Trang 23Với các nhà kỹ thuật, hệ điều hành là hệ thống chương trình bao trùm lên
máy v ật lý, tạo ra một máy lô gic với những tài nguyên và khả năng mới
Ví dụ, với máy tính IBM PC được trang bị hệ điều hành Windows, ta có thể
xem nội dung ổ đĩa C: bằng lệnh DIR C:\, sao chép các files từ ổ đĩa F: sang thư mục hiện tại của ổ đĩa C: bằng lệnh COPY
F:*.* C: Nếu có hệ thống lập trình trên
C/C++ ta có thể viết các câu lệnh như i++;
x1=(-b+sqrt(b*b-4*a*c))/2/a;
Những câu lệnh đó đều có thể thực hiện được
như máy đã có những processor mới có khả
năng hiểu được những mã lệnh mới
Thông thường, máy chỉ được lắp một ổ đĩa
vật lý (HD hoặc SSD), nhưng hệ thống cho
phép chia đĩa vật lý này thành các phần được sử
Trang 24Lập trình hệ thống là những người thiết kế, xây dựng, bảo trì và nâng cấp hệ thống Họ phải hiểu cách tổ chức chương trình trong phần mềm này, những đặc thù của hệ thống, những nhiệm vụ của hệ thống và cách giải quyết những nhiệm vụ đó
Vì vậy họ phải nhìn hệ thống từ bên trong và có đánh giá riêng từ góc độ của mình
Với người lập trình hệ thống, Hệ điều hành là hệ thống mô hình hóa, mô
ph ỏng các hoạt động của máy, người sử dụng và thao tác viên, hoạt động trong
ch ế độ đối thoại, tạo môi trường để quản lý chặt chẽ các tài nguyên của hệ thống
tính toán, t ổ chức khai thác chúng một cách thuận tiện và tối ưu
Hệ điều hành hoạt động trong chế độ đối thoại, điều này có nghĩa đây không phải là một hệ thống tự động mà là hệ thống tự động hóa Có những vấn đề hệ thống không tự động giải quyết mà chỉ nêu vấn đề, nêu các hướng giải quyết và chờ quyết định của con người Chế độ đối thoại được xác lập với mục đích làm cho
hệ thống trở nên gọn nhẹ và linh hoạt Người ta không phải xây dựng các mô đun phức tạp để phân tích những tình huống nhạy cảm có thể gây tổn thất thông tin hoặc cố tìm cách thực hiện công việc khi thiếu những tham số quan trọng Sẽ đơn giản hơn nhiều nếu chờ đợi quyết định hoặc những thông tin bổ sung từ con người Đối tượng có nhiệm vụ đối thoại với hệ thống là thao tác viên Với máy tính
cá nhân, trong phần lớn các trường hợp người sử dụng đồng thời là thao tác viên,
Hệ điều hành
Hình 1.22 L ập trình hệ
th ống và
Trang 25nhưng chức năng và khối lượng kiến thức cần biết của hai đối tượng này là khác nhau Thao tác viên cần biết nạp hệ thống, ra khỏi hệ thống, biết cách xác lập các tham số để có một hệ thống phù hợp với nhu cầu sử dụng, biết đưa ra các giải pháp đúng đắn trước các câu hỏi hoặc đề xuất của hệ thống Người sử dụng chỉ cần các kiến thức để khai thác tốt các phần mềm ứng dụng, cao hơn nữa là có khả năng lập trình đưa vào hệ thống những chương trình ứng dụng mới
Sự tồn tại của chế độ đối thoại dẫn đến phải có ngôn ngữ đối thoại Đó là ngôn ngữ bằng lời (như ngôn ngữ JCL của OS IBM 360, ngôn ngữ MS DOS cho tất cả các hệ điều hành của Microsoft) hoặc ngôn ngữ cử chỉ (hệ thống menu của MAC OS của Apple hoặc WINDOWS của Microsoft) Cần tránh sai lầm đồng nhất ngôn ngữ đối thoại với hệ điều hành
Trong các đối tượng mà hệ thống mô phỏng có hai đối tượng là con người vì vậy hệ điều hành là một hệ thống trí tuệ nhân tạo Hệ thống trí tuệ nhân tạo này áp dụng trong một lĩnh vực hẹp là khai thác máy tính, vì vậy nó là một hệ chuyên gia Đây là hệ chuyên gia ra đời sớm nhất và thuộc loại hoàn thiện nhất
Ban đầu xã hội còn chưa biết đến khả năng xử lý dữ liệu phi số của máy tính Tháng 4 năm 1951 người ta đã thử nghiệm dùng máy tính để xử lý số liệu điều tra dân số ở Mỹ Kết quả cho thấy máy tính có khả năng tuyệt vời giải quyết các bài toán phi số và lại hiệu quả còn cao hơn cả việc giải quyết các bài toán số Từ đó nẩy sinh ra nhu cầu chuẩn hóa việc biểu diễn ký tự và xâu, trang bị các công cụ xử
lý chúng trong hệ thống
Năm 1952 Von Neuman đề xuất tư tưởng xây dựng “chương trình tự hoàn
thi ện” Theo đề xuất của ông, ta có thể xây dựng các chương trình có khả năng tích
lũy kinh nghiệm trong quá trình khai thác, tự thay đổi để trở nên hoàn thiện hơn
Đề xuất này đã đặt nền móng cho việc xây dựng trí tuệ nhân tạo Đáng tiếc là ở thời kỳ đó các phương tiện kỹ thuật chưa cho phép hiện thực hóa tư tưởng này Năm 1960 phòng thí nghiệm Bell Lab của hãng Bell Telephone đã đưa ra hai trò chơi trên máy tính gây tiếng vang lớn: Animal (Động vật) và Core War (Chiến tranh bộ nhớ) Ở trò chơi Animal, máy tính đề nghị người chơi nghĩ trong đầu một con vật, sau một số câu hỏi máy sẽ cho biết đó là con vật gì Nếu máy đoán đúng thì diễn biến tiếp theo không có gì đặc biệt, nhưng nếu đoán sai thì máy sẽ đề nghị người chơi cho biết cần đưa ra câu hỏi gì để tránh sai lầm Thông tin sẽ được tự động lưu lại trong chương trình và từ đó trở đi máy sẽ không bị sai lầm với con vật này nữa Như vậy càng chơi nhiều bao nhiêu thì chương trình càng trở nên thông
Trang 26Nguyên lý Hệ điều hành - Bài 1 Trang 26
minh hơn bấy nhiêu! Người ta bắt đầu nghiên cứu về trí tuệ nhân tạo và xây dựng
hệ chuyên gia Các hệ chuyên gia đầu tiên được đưa ra khai thác rộng rãi vào những năm 1971 – 1972
Trong lúc đó hệ điều hành được nghiên cứu và triển khai xây dựng từ đầu những năm 50 và đến năm 1965 hãng IBM đã đưa ra hệ điều hành cực kỳ nổi tiếng của mình – Hệ điều hành DOS IBM 360 và sau đó là OS IBM 360, một hệ điều hành mà chúng ta còn có nhiều dịp nhắc đến
Hệ điều hành là hệ chuyên gia hoàn thiện nhất vì sự tác động của hai yếu chính:
Đặt vấn đề,
Tay nghề
Đặt vấn đề là khâu phát biểu bài toán, xác dịnh nhiệm vụ cần giải quyết, xác định input, ouput và giải thuật xử lý thông tin UNESCO đã thống kê rằng 73% số công trình trên thế giới không hoàn thành được là do khâu đặt vấn đề Để xây dựng một hệ chuyên gia người ta phải mời cán bộ chuyên ngành tới giới thiệu cho những người lập trình, yêu cầu, bài toán của mình và cách họ xử lý dữ liệu Phải rất lâu sau giữa cán bộ chuyên ngành và những người lập trình mới có tiếng nói chung vì một bên không hiểu về các đặc điểm xử lý thông tin trên máy tính còn bên khác – không biết về các kiến thức chuyên ngành Chính vì vậy các hệ thống tạo ra thường mắc những lỗi “ngớ ngẫn”, “thô thiển” không xẩy ra khi con người trực tiếp xử lý Với hệ điều hành tình hình hoàn toàn khác Những người lập trình giải quyết vấn đề của chính mình Họ hiểu rất rõ:
Vấn đề phải giải quyết,
Khả năng của thiết bị dùng để giải quyết,
Khả năng của chính mình trong việc giải quyết vấn đề này
Ví dụ, vào đầu những năm 1980, với đội ngũ nhân viên có kinh nghiệm phong
Trang 27phú của mình, với những máy tính tốt nhất chính hãng, công ty IBM đã đưa ra hệ điều hành OS/2 cho máy tính IBM PC với chế độ đa nhiệm một người sử dụng và đến năm 1990 – nâng cấp thành OS/2 Warp hoạt động tương tự như WINDOWS
95 sau này của Microsoft.
Trong lúc đó, công ty Microsoft non trẻ, không có đội ngũ cán bộ có kinh nghiệm, không có các thiết bị mạnh và chuẩn chỉ xây dựng một hệ điều hành đơn chương trình một người sử dụng MS DOS và mãi tới tận 1995 mới đưa ra hệ điều hành đa nhiệm một người sử dụng WINDOWS 95
Sản phẩm của Microsoft, tuy đơn giản, vẫn được thị trường chấp nhận vì nó đáp ứng đúng yêu cầu và khả năng của đại đa số người dùng đương thời
Năm 1974 có một hội nghị quốc tế về các công trình sáng tạo của loài người Tại hội nghị có ba công trình được lựa chọn là đỉnh cao tiêu biểu cho các công trình xây dựng của loài người:
Hệ thống điện thoại tự động liên lục địa (bằng hệ thống cáp ngầm xuyên đại dương),
Hệ thống Appolo đưa người lên mặt trăng,
Hệ điều hành OS IBM 360
Với máy tính IBM 360/60, tốc độ 4×105 phép tính/giây , bộ nhớ trong 512
KB, đĩa từ 29.3 MB/đĩa ×8, băng từ 16 MB/cuộn tốc độ 4m/giây hệ điều hành OS
Hình 1.24 MS DOS
Trang 28IBM 360 cho phép tổ chức trong phạm vi bán kính 100 km tới 20 điểm truy cập và
ở đó mỗi người đều có cảm giác như chỉ có một mình mình sử dụng máy tính!
1.5 – Tính chất cơ bản của hệ điều hành
Mọi hệ điều hành, đơn giản hay phức tạp đều phải có một số tính chất chung
a – Tin cậy và chuẩn xác
Khi thực hiện một công việc bất kỳ hệ thống đều tiến hành kiểm tra:
Kiểm tra điều kiện thực hiện công việc,
Kiểm tra kết quả thực hiện
Mọi thông báo mà hệ thống đưa ra đều phải rõ ràng và chuẩn xác
b – Bảo vệ chặt chẽ
Thông tin trong hệ thống (bao gồm chương trình và dữ liệu) phải được bảo vệ liên tục trong suốt quá trình tồn tại và ở mọi khâu xử lý bằng nhiều công cụ khác nhau Hệ thống càng hoàn thiện bao nhiêu thì cơ chế bảo vệ càng phong phú, chặt chẽ và hiệu quả bấy nhiêu
Có nhiều mức bảo vệ phụ thuộc vào tầm quan trọng của thông tin đối với hệ thống
Phần lớn các công việc bảo vệ được tổ chức thực hiện theo nguyên tắc “trong suốt” đối với người dùng, tức là người sử dụng hệ thống không cảm nhận thấy sự hiện diện của các hoạt động bảo vệ
Lưu ý rằng tất cả các công cụ và cơ chế bảo vệ của hệ thống đều chỉ có thể và chỉ nhằm mục đích hạn chế tối đa việc tổn thất thông tin bởi các sai sót vô tình hay
cố ý Không có phương pháp và hệ thống nào có thể đảm bảo an toàn tuyệt đối vì bảo vệ và chống bảo vệ đều cùng một mức: bằng con đường chương trình và đều
do con người thực hiện Chính vì vậy việc thay đổi, cải tiến cơ chế bảo vệ là một trong những trọng tâm nâng cấp hệ thống
Trang 29c – Kế thừa và thích nghi
Mỗi hệ điều hành mới được phát triển từ một phiên bản nào đó phải đảm bảo
tính kế thừa từ phiên bản trước đó Mọi chương trình ứng dụng đã có, nếu không
vi phạm các quy tắc bảo vệ đều phải thực hiện được trên hệ điều hành mới Điều này tạo điều kiện cho người dùng có thể chuyển sang hệ thống mới với những tính năng ưu việt hơn, tiếp tục làm việc bình thường với vốn chương trình và dữ liệu đã
có của mình
Hệ thống mới phải tồn tại trong một thời gian đủ dài, thích nghi với những điều kiện và thiết bị mới đồng thời phải có khả năng cho phép người dùng chuyển đổi dữ liệu sang dạng có thể truy nhập được bởi các các công cụ trong các hệ thống
cũ
Ví dụ, khi chuyển sang chế độ cho phép đặt tên dài, dữ liệu lưu trữ trên phải được tổ chức sao cho các công cụ chỉ làm việc với cách đặt tên ngắn cho files cơ bản vẫn làm việc được bình thường như các files đó không phải là có tên dài
d – Hiệu quả
Hệ thống phải hỗ trợ người dùng khai thác tối đa khả năng các tài nguyên của
hệ thống đặc biệt là những tài nguyên quan trọng như CPU, bộ nhớ trong và bộ nhớ ngoài
Các hệ thống hiện nay đều hoạt động theo chế độ đa nhiệm để nâng cao hiệu quả sử dụng CPU vốn có tốc độ rất cao Việc tổ chức quản lý files một cách hợp lý
đã làm giảm đáng kể hiện tượng phân mảnh và làm tăng đáng kể tốc độ truy nhập thông tin ở bộ nhớ ngoài
Môi trường làm việc thường xuyên thay đổi và mở rộng Với máy tính cá nhân, trước đây người ta thường dùng máy để bàn với nguồn điện ngoài và khai thác trong môi trường cục bộ Dần dần môi trường cục bộ được thay thế bằng môi trường mạng LAN với nhu cầu kết nối và khai thác chung tài nguyên trong mạng Ngày nay môi trường làm việc phổ biến là mạng WAN với môi trường kết nối Intermet không dây và sử dụng khá phổ biến máy tính xách tay Các hệ thống tiên tiến phải đảm bảo được việc khai thác các tài nguyên phân tán, cung cấp các dịch
vụ để máy tính trở thành một công cụ vạn năng, đáp ứng được các yêu cầu đa dạng của người dùng, kể cả những yêu cầu khá khắt khe như cần tổ chức các hoạt động của hệ thống sao cho thời gian sử dụng pin cho máy tính xách tay càng dài càng tốt
Trang 30Mỗi người dùng có một số nhiệm vụ và mục đích mục đích nhất định Hệ thống cần có cơ chế tự thay đổi, thích nghi với môi trường và mục đích khai thác của người dùng để hiệu quả hoạt động của cả hệ thống và người dùng là cao nhất
e – Thuận tiện
Đây là tiêu chuẩn chính của người dùng để so sánh các hệ thống khác nhau Những tính chất khác được coi như đương nhiên phải có Người dùng phải được thông tin đầy đủ, rõ ràng về các dịch vụ mà hệ thống có thể cung cấp và tiếp cận
được các dịch vụ đó một cách đơn giản nhất Người dùng cần một hệ thống cung cấp nhiều và đa dạng các dịch vụ đối với mỗi đối tượng có liên quan tới công việc của mình cũng như cách thực hiện chính công việc đó.
Một đặc điểm chung của tất cả các hệ thống là càng thuận tiện bao nhiêu thì người dùng càng bị “đẩy xa” khỏi máy bấy nhiêu, tức là các dịch vụ được thực hiện một cách “trong suốt” đối với người dùng Các dịch vụ được thực hiện một cách độc lập với bản chất vật lý của thiết bị Ví dụ, trong WINDOWS 7 với người dùng việc ghi một file ra CD hoặc DVD được thực hiện hoàn toàn không khác gì ghi ra đĩa cứng hay ra flash disk USB
Hình 1.25 D ịch vụ đối với một file được
ch ọn
Trang 311.6 – Nguyên lý xây dựng và hoạt động của hệ điều hành
Hệ thống phải dành tối đa tài nguyên cho người dùng vì vậy nó phải được xây dựng và hoạt động theo một số nguyên lý nhất định
a – Nguyên lý mô đun
Các công việc trong hệ thống được đảm bảo bằng các mô đun chương trình độc lập Hệ thống không chứa chương trình hoàn thiện cho mỗi công việc mà hệ điều hành có thể sẽ thực hiện
Các mô đun này liên kết với nhau thông qua dữ liệu vào/ra
Cách tổ chức này cho phép dễ dàng sửa đổi, cải tiến, nâng cấp hệ thống Khi
có một công việc nào đó hoạt động không hiệu quả như mong muốn, người ta chỉ việc xây dựng lại mô đun chương trình tương ứng, giữ nguyên quy cách vào/ra dữ liệu Việc thay thế mô đun cũ bằng mô đun mới không ảnh hưởng đến mọi hoạt động khác của hệ thống
Các mô đun này được nhóm lại theo một số tiêu chuẩn phân loại Những nhóm này tạo ra thành phần của hệ thống
b – Nguyên lý phủ chức năng
Một công việc trong hệ thống thường có được thực hiện theo nhiều cách khác nhau với những công cụ, phương tiện khác nhau Ví dụ, khi cần in nội dung một file văn bản ( loại TXT) ta có thể dùng dịch vụ PRINT do hệ thống cung cấp và cũng có thể nhận được bản in bằng cách dùng lệnh TYPE xem nội dung file đó trên máy in
Một trong những lý do tồn tại nhiều cách thực hiện một công việc là hiện
tượng hiệu ứng phụ chức năng Một mô đun chương trình, ngoài chức năng chính
còn có thể sử dụng để giải quyết một số công việc khác
Hình 1.26 Liên k ết giữa các mô đun
Trang 32Ngoài ra, để đi từ một đích này sang đích khác ta có thể có nhiều đường di chuyển theo hệ thống các mô đun đã có
Nguyên lý phủ chức năng là việc cho phép người dùng khai thác các hiệu ứng phụ chức năng hoặc lựa chọn các con đường khác khác nhau để thực hiện công việc của mình Điều này nói lên rằng, khi xây dựng các mô đun cho hệ thống người lập trình phải đảm bảo mọi tính chất của hệ điều hành trong mọi khả năng khai thác mô đun
Nguyên lý phủ chức năng được duy trì để phục vụ các mục đích:
Đảm bảo thuận tiện cho người sử dụng: thực hiện công việc theo cách mình biết, theo cách mình thích và theo các khả năng, phương tiện hiện có,
Đảm bảo toàn vẹn chức năng cho hệ thống: các chức năng của hệ thống vẫn đảm bảo đầy đủ ngay cả khi hệ thống bị thiếu hoặc hỏng một số mô đun thành phần
c – Nguyên lý Macroprocessor
Trong hệ thống chỉ có sẵn các chương trình tiếp nhận yêu cầu và các chương trình điều khiển Mỗi khi có yêu cầu đưa vào hệ thống sẽ tạo ra chương trình tương ứng và thực hiện chương trình vừa tạo ra
Nguyên lý làm việc này được áp dụng với cả hệ điều hành Trên đĩa không có
hệ điều hành mà chỉ có các thành phần, các mô đun từ đó có thể lắp ráp thành hệ điều hành
Để có thể làm việc với máy tính việc đầu tiên người ta phải nạp hệ thống, bắt đầu từ chương trình mồi – một chương trình nhỏ làm nhiệm vụ đọc một số dữ liệu
và chương trình nhỏ, chuyển điều khiển cho chương trình này Chương trình được kích hoạt sẽ đọc tiếp các chương trình và dữ liệu mới, kích hoạt chúng, Cứ như vậy cho đến khi có một hệ điều hành hoàn thiện để cùng với máy tính tạo thành một hệ thống đủ khả năng phục vụ người sử dụng Hệ điều hành chỉ thực sự tồn tại sau khi quá trình nạp hoàn thành và tồn tại trong một khoảng thời gian khá ngắn – cho đến khi người dùng đóng và thoát khỏi hệ thống (Shut down)
Hình 1.27 Nguyên lý Macroprocessor
Trang 33d – Nguyên lý bảng tham số điều khiển
Mỗi đối tượng trong hệ thống được đặt tương ứng với một bảng tham số dùng
để quản lý, điều khiển nó Bảng tham số này được gọi là bảng tham số điều khiển (Control Table, Control block)
Hệ thống không bao giờ tham chiếu trực tiếp tới đối tượng vật lý mà chỉ tham chiếu tới bảng tham số điều khiển tương ứng
Nếu bảng tham số
điều khiển lớn và phức
tạp thì nó trở thành một
đối tượng được quản lý
bởi một hoặc một chuỗi
nó được gắn ngay trên
phần đầu của đối tượng
để có thể dễ dàng truy nhập
Một số bảng tham số điều khiển có tên riêng Ví dụ bảng tham số điều khiển file chương trình (gồm 100H bytes gắn ở đầu mỗi chương trình) có tên là Khối tiền
t ố chương trình ( PSP – Program Segment Prefix) PSP cho biết bắt đầu thực hiện
chương trình từ địa chỉ nào, kết thúc chương trình thì chuyển điều khiển tới đâu, v
v Bảng tham số của các files định kiểu đều có bảng tham số điều khiển gọi
chung là Đầu file (Header) Header bao gồm hai phần: phần đầu và phần thân
Phần đầu dùng để nhận dạng và giải mã phần thân, phần thân dùng để giải mã file hoặc các bản ghi trong file
Bảng tham số cho toàn bộ hệ thống hoặc từng thành phần của hệ thống thường được tổ chức dưới dạng các files độc lập Trong WINDOWS các files đó
thường có đuôi là INI, ví dụ WINDOWS.INI, WINWORD.INI
Hình 1.28
Trang 34e – Nguyên lý giá trị chuẩn
Hệ thống chuẩn bị sẵn bảng giá trị cho các tham số Bảng giá trị này được gọi
là Bảng giá trị chuẩn Nếu trong yêu cầu cần thực hiện chưa nêu đủ các tham số
cần thiết thì những tham số còn thiếu sẽ được lấy từ bảng giá trị chuẩn của hệ
thống Vì vậy nguyên lý còn được gọi là Nguyên lý ngầm định (Default)
Ví dụ, ta có thể ra lệnh
C:\CSDL>DIR
Dù không chỉ ra một tham số nào nhưng lệnh này vẫn được thực hiện mặc dù đây là một trong số các lệnh có nhiều tham số nhất
Lưu ý là hệ thống chỉ chuẩn bị giá trị cho các tham số không dẫn đến nguy cơ
mất thông tin Ví dụ, với việc FORMAT đĩa, địa chỉ của ổ đĩa phải do người sử
dụng tự khai báo, hệ thống không gán sẵn một địa chỉ nào
Trong các hệ điều hành thường có công cụ cho phép truy cập tới các bảng tham số chuẩn của hệ thống và cập nhật chúng trong trường hợp cần thiết Với WINDOWS công cụ đó là CONTROL PANEL Nhiều bảng tham số điều khiển đồng thời cũng là bảng giá trị chuẩn cho hệ thống hoặc cho đối tượng mà nó quản
lý
f – Nguyên lý hai loại tham số
Các tham số nêu trong mỗi yêu cầu chuyển giao cho hệ điều hành được chia làm hai loại:
Tham số vị trí (Positional Parameters),
Tham số khóa (Keyword Parameters)
Tham số vị trí là loại tham số mà ý nghĩa của nó được xác định bởi vị trí xuất hiện trong dòng tham số Thông thường, tham số vị trí nằm ở đầu hoặc cuối dòng tham số để thuận tiện cho việc nhận dạng và phân lập
Tham số khóa là tham số mà ý nghĩa của nó được xác định bởi từ khóa Các tham số khóa có thể được viết theo trình tự tùy ý Với việc sử dụng tham số khóa,
/S/P/ON/L/W
Trang 35các lệnh hoặc yêu cầu truy vấn có thể chứa rất nhiều tham số vào nhưng người dùng vẫn có thể dễ dàng chỉ ra giá trị cho các tham số đó Ngoài ra, nguyên lý giá trị chuẩn cho phép nêu danh sách các giá trị này một cách ngắn nhất
Ngày nay, khi yêu cầu được đưa vào ở chế
độ đối thoại việc cung cấp tham số vào được
thực hiện thông qua Bảng nhập tham số
(Wizard) Điều này cho phép người dùng tiếp
cận các tham số vị trí theo phương thức giống
như tiếp cận tham số khóa Nhưng dạng biểu
diễn trong của hệ thống vẫn phân biệt tham số vị
Tuy vậy, không phụ thuộc vào quan điểm phân loại và mức độ chi tiết bao giờ cũng phải có các thành phần:
a – Hệ thống Supervisior
Các mô đun Supervisor phục vụ quản lý và phân phối tài nguyên Đây là nhóm mô đun quan trọng nhất trong mỗi hệ điều hành Các mô đun supervisor bao giờ cũng có mức ưu tiên thực hiện cao nhất Điều này có nghĩa là nếu có nhiều mô đun cùng cần được thực hiện, nếu trong đó có các mô đun supervisor thì những mô đun này sẽ được ưu tiên thực hiện trước
b – Hệ thống quản lý thiết bị ngoại vi
Hình 1.30 B ảng nhập
Trang 36Các mô đun trong hệ thống quản lý thiết bị ngoại vi có nhiệm vụ chuẩn bị và cung cấp thông tin để các mô đun khác của hệ điều hành và chương trình ứng dụng
có thể xác lập quan hệ với thiết bị ngoại vi kết nối với hệ thống Hệ thống quản lý thiết bị ngoại vi cung cấp phương tiện để khai thác triệt để các thiết bị ngoại vi theo các tính năng kỹ thuật của chúng Hệ thống càng hiện đại bao nhiêu thì khả năng nhận dạng thiết bị ngoại vi càng phong phú bấy nhiêu và các dịch vụ tổ chức khai thác càng đa dạng, thuận tiện bấy nhiêu
c – Hệ thống quản lý file
Đây là hệ thống quản lý tài nguyên thông tin lưu trữ ở bộ nhớ ngoài Hệ thống cung cấp các dịch vụ để tạo files, lưu trữ, tìm kiếm và truy nhập tới chúng Việc lưu trữ và truy nhập phải được đảm bảo độc lập tối đa với bản chất vật lý của thiết
bị lưu trữ và đáp ứng một cách đa dạng với các yêu cầu lưu trữ, tìm kiếm và tuy nhập
d – Hệ thống điều khiển
Nhóm mô đun trong hệ thống điều khiển có các nhiệm vụ chính:
Thu thập thông tin phục vụ cho các công việc:
Tổ chức lại hệ thống, cập nhật và nâng cấp hệ thống,
Xác định trình tự thích hợp để thực hiện các chương trình một cách có hiệu quả,
Tổ chức thực hiện chương trình,
Ghi nhận biên bản hoạt động của hệ thống,
Xử lý sự kiện, tình huống đặc biệt xuất hiện trong khi thực hiện chương trình
Các chương trình điển hình là Điều phối nhiệm vụ, Thư ký (Monitor), Biên bản hệ thống
e – Các chương trình phục vụ hệ thống
Các chương trình phục vụ hệ thống (System Utilities) là nhóm mô đun mở rộng các khả năng của hệ thống Những mô dun chương trình này là thành phần của hệ thống vì vậy chúng phải đảm bảo cho hệ thống duy trì được mọi các tính chất chung đã nêu ở trên Chương trình phục vụ của phiên bản hệ thống nào thì mở rộng và chỉ mở rộng cho phiên bản hệ thống đó Đây là một trong số các khác biệt giữa chương trình phục vụ hệ thống với chương trình ứng dụng Chương trình ứng dụng chạy trên nền của hệ điều hành và nếu không vi phạm các quy tắc bảo vệ nó
có thể thực hiện được trên phiên bản bất kỳ của hệ điều hành
Trang 37f – Hệ thống đối thoại
Có một nhóm mô đun chương trình đặc biệt trong thành phần của hệ điều hành bất kỳ – nhóm chương trình đảm bảo đối thoại giữa thao tác viên với hệ thống Các chương trình hoạt động theo nguyên tắc thông dịch (Interpretor) Nhiều người thường nhầm lẫn khi đồng nhất hệ điều hành với thành phần này của hệ thống!
Trang 38BÀI II QUẢN LÝ TIẾN TRÌNH
2.1 – Khái niệm tiến trình (Proccess)
2.1.1 – Định nghĩa tiến trình
Tiến trình là một khái niệm được nhắc tới trong nhiều công trình nghiên cứu
Đó là một trong những khái niệm được dùng phổ biến nhất nhưng đồng thời đó cũng là khái niệm kém chuẩn xác nhất nếu xét về mặt định nghĩa
Một cách không hình thức có thể coi tiến trình là một nhóm các bytes có nội dung thay đổi theo một luật nào đó Luật này được mô tả bằng chương trình, hướng dẫn các hoạt động của processor Mặc dù bản chất của khái niệm tiến trình khá rõ ràng, định nghĩa tiến trình hết sức đa dạng Theo Saltzer thì “tiến trình là chương trình do một processor logic thực hiện” Theo Dijkstra E W thì tiến trình
là những gì liên quan đến một hệ thống tính toán, xuất hiện khi thực hiện một chương trình Horning và Randell năm 1973 đã xây dựng một định nghĩa hình thức cho tiến trình Định nghĩa này khá phù hợp với nhu cầu sử dụng của chúng ta, vì vậy ta sẽ dừng lại kỹ hơn trước khi nêu lên định nghĩa
Ký hiệu s1, s2, …, sn, … là các biến trạng thái Vector S = (s1, s2, …, sn, …) gọi
là bộ biến trạng thái Trạng thái là bộ giá trị cụ thể của vector S Tập tất cả các trạng thái đó có thể tạo thành không gian trạng thái Không gian trạng thái là hữu hạn mặc dù có số chiều và lực lượng cực lớn Tác động việc gán giá trị cho một biến trạng thái Dãy trạng thái trong không gian trạng thái của hệ thống tạo thành một công việc Một trong những cách tạo công việc là thực hiện chuỗi các hành động khác nhau Để thực hiện được hành động ta cần hàm hành động – ánh xạ trạng thái sang hành động Hàm hành động có thể sinh ra công việc dựa vào trạng thái ban đầu Nó mô tả hành động cần thực hiện ứng với mỗi trạng thái nhận được
và kết quả là ta có một chuỗi trạng thái, tức là một công việc Người sử dụng nói chung chỉ quan tâm đến giá trị biến mình xây dựng Vì vậy trạng thái của hệ thống
Các vấn đề trong bài này liên quan tới điều khiển hoạt động các chương trình trong điều kiện có cạnh tranh tài nguyên, xét mối quan hệ tác động qua lại giữa các chương trình đang hoạt động trong môi trường đa nhiệm, các biện pháp chống bế tắc và cơ chế gọi gọi tiến trình
Trang 39có thể hạn chế trong phạm vi nội dung phạm vị bộ nhớ, còn hàm hành động là chương trình
Dựa trên những khái niệm cơ bản đó ta có thể định nghĩa tiến trình như quá
trình chuy ển từ trạng thái này sang trạng thái khác dưới tác động của hàm hành động
th ực hiện tuyến không khác nhiều với tiến trình, vì vậy tuyến còn được gọi là tiểu
ti ến trình (miniprocess) Các vấn đề quản lý tuyến và quản lý tiến trình sẽ được xét
dưới tiêu đề chung là quản lý tiến trình Lưu ý rằng các tiến trình khác nhau sẽ có không gian bộ nhớ khác nhau, nhưng các tuyến của một tiến trình đều có chung một không gian bộ nhớ duy nhất
Trang 40Mỗi tiến trình tương ứng với một cấu trúc thông tin cho phép xác định đơn trị
tiến trình Cấu trúc thông tin này gọi là khối mô tả tiến trình Khối mô tả tiến trình
bao gồm:
Biến trạng thái tiến trình cho biến trạng thái hiện tại của tiến trình (sẵn sàng, thực hiện hay bị ngắt)
Vùng bộ nhớ lưu trữ giá trị các thanh ghi tiến trình sử dụng
Thông tin về tài nguyên tiến trình đang sử dụng hoặc có quyền sử dụng
Mỗi tiến trình cũng như mỗi tuyến đều phải có một bộ đếm lệnh (Instruction
Pointer – IP) riêng
Ngoài ra, khối mô tả tiến trình còn chứa một số thông tin hỗ trợ khác phục vụ trao đổi thông tin và đối thoại giữa các tiến trình
2.1.3 – Phân lo ại tiến trình
Phụ thuộc vào thời gian tồn tại tiến trình người ta chia chúng thành 2 loại: kế tiếp và song song Hai tiến trình được gọi là song song nếu thời điểm bắt đầu của một tiến trình nằm giữa thời điểm bắt đầu và kết thúc của một tiến trình khác Hai tiến trình không song song là những tiến trình kế tiếp Các tiến trình kế tiếp không có điều kiện tác động trực
tiếp tới nhau vì vậy không nảy sinh các
vấn đề phức tạp trong quản lý và điều
khiển Các vấn đề lý thuyết chủ yếu
xoáy quanh việc quản lý và điều khiển
tiến trình song song
Dựa vào mối quan hệ thông tin và
tác động qua lại với nhau các tiến trình song song được chia thành 4 loại chính: Tiến trình độc lập,
Tiến trình có quan hệ thông tin,
Có 3 cơ chế tổ chức truyền tin:
Hình 2.2 Tiến trình song song