Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (17.98 MB, 141 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
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 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:
<i>Mã lệnh </i>
<i>Tên lệnh </i>
<i>Cơng việc </i>
<b>FA </b> CLI Xóa tất cả các tín hiệu sự kiện
<b>90 </b> NOP Lệnh rỗng(Bỏ qua, khơng làm gì hết)
<i><small>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. </small></i>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="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
<i>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. . . </i>
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:
<i>Hình 1.1 Làm việc trên ngôn ngữ </i>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">Cá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 hồ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
<i>Hình 1.2 Sử dụng thư viện chương trình </i>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">lậ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 tố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. Ngồ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.
<i>Hình 1.5 Thư viện và giao diện. </i>
Bâ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.
<i>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 </i>
<i><b>tạo thành một Hệ thống tính tốn hay gọi tắt là Hệ thống (System). </b></i>
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
<b><small>Phần cứng </small></b>
<i>Hình 1.6 Hai thành phần của </i>
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">Microsoft 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.
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ố.
<i><small>1.2.1 – Tác động lên phần thiết bị kỹ thuật </small></i>
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 tố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:
<i><b>a- Cơ sở hóa hệ lệnh của máy tính </b></i>
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), <i><small>x</small></i>, |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
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">bả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 <i><small>x</small></i>, |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ả.
<i><b>b – Cho phép thiết kế MTĐT với tốc độ cao </b></i>
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.
<i><b>c – MTĐT trở nên vạn năng hơn </b></i>
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, Giá trị số, Ký tự và xâu, Âm thanh, Hình ảnh.
MTĐT khơng đơn thuần là cơng cụ phục vụ tính tốn đơn thuần mà nó cịn cung cấp các khả năng để soạn thảo văn bản, nghe nhạc, xem ảnh và phim . . . Các hệ cơ sở dữ liệu bây giờ cho phép lưu trữ và xử lý thuộc tính nhiều loại khác nhau
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">cho 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 khn 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.
<i><b>d – Tin cậy hơn </b></i>
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 tố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 tố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, 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.
<i><b>e – Giảm giá thành </b></i>
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. . .
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">Nă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.
<i><b>f – Năng cao độ mềm dẻo linh hoạt của cấu hình </b></i>
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 . . .
<i><small>1.2.2 – Tác động của phần mềm lên người dùng </small></i>
<i><b>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 </b></i>
<i><b>để và tối ưu mọi thiết bị kỹ thuật </b></i>
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ể q trình xử lý thơng tin. Ngồ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.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Ngà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.
<i>Hình 1.7. Bảng điều khiển máy IBM </i>
<i>360/50 (trái) máy in phun Epson với bảng điều </i>
<i><b>Phím dừng Phím đẩy giấy ra </b></i>
<i>Hình 1.8. Máy in laser màu HP Color LaserJet P1215. </i>
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">Rõ 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. . .
<i>Hình 1.9. Bảng điều khiển máy in laser màu HP Color </i>
<i>LaserJet P1215 do phần mềm cung cấp. Từ bảng điều khiển chính </i>
<i>này có vào các bảng thứ cấp với các tham số chi tiết hơn. </i>
<i>Hình1.10. Xử lý tín hiệu gõ từ bàn </i>
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">Phụ 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 tồn hơn và các thiết bị ln hoạt động ở chế độ tối ưu.
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13"><i><b>b – Thay đổi nguyên lý làm việc </b></i>
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 q 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
<i>quy cách viết câu lệnh ấy. Đó là cách giao tiếp theo nguyên tắc ra lệnh. </i>
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
<i>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ẽ </i>
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
<i>hệ thống cơng việc nó phải là, đó là ngun tắc Menu. </i>
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, ...).
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="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.
<i>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à </i>
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ể đốn được vài thơng tin nếu khơng biết tiếng Nhật.
Menu biểu tượng
<small>Menu </small>
Menu
<i>Menu kết hợp </i>
<i>Hình 1.12. Các loại </i>
<i>menu. </i>
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="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 – nhiều khi rất khó. Ví dụ, rất khó để có những hình đơn giản thể hiện 3 công việc COPY, MOVE và
<i><b>DELETE</b></i>.
Trong những cơng việc khơng thể diễn tả chính xác bằng ngơn ngữ tự nhiên thì menu biểu tượng là cơng cụ khơng thay thế được, điển hình là việc giới thiệu màu trong đồ họa.<small> </small>
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
<i>Hình 1.14. Hình 1.13. Một menu bằng lời tiếng Nhật. </i>
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">thiệ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.
Trong nhiều trường hợp, việc ra lệnh trực tiếp có hiệu quả cao hơn việc dùng menu, đặc biệt là khi phải truy vết kích hoạt nhiều mục trên các bảng chọn để 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.
<i><b>c – Hiệu ứng tự đào tạo </b></i>
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ọ! Ngồ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.
<i><b>d – Hiệu ứng WYSIWYG </b></i>
<i>WYSIWYG là nguyên lý “Bạn nhìn thấy như thế nào thì sẽ nhận được như </i>
<i>thế đó” (What You See is What You Get). Các phần mềm cho hình ảnh thơng tin </i>
đú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.
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">Như 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 tốn học.
<i><b>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ể </b></i>
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.
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
<i>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ơ </i>
<i>bản. </i>
Những tài nguyên không thể thiếu được cho sự tồn tại và hoạt động của hệ thống là:
Bộ nhớ trong, Bộ xử lý trung tâm, Thiết bị ngoại vi, Chương trình.
Mỗi tài ngun có một vai trị riêng. Cách thức tổ chức và khai thác nó sẽ tác động rất lớn đến năng suất của hệ thống cũng như của người sử dụng. Ở phần này ta chỉ xem xét vai trò của mỗi loại tài nguyên và nhiệm vụ chung của hệ thống đối
<i>Hình 1.15. </i>
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">vớ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.
<i><small>1.3.1 – Bộ nhớ trong </small></i>
Tồ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 tố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.
<i>Hình 1.16. Vai trò bộ </i>
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">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.
<i><small>1.3.3 – Thiết bị ngoại vi </small></i>
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,
<i>Hình 1.17. CPU và sơ đồ cấu trúc trong. </i>
<i>Hình 1.19. Flash </i>
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">Đặc điểm của thiết bị ngoại vi: Số lượng nhiều,
Chất lượng: đa dạng,
Tốc độ: rất chậm so với CPU.
Chỉ tính riêng chuột và thiết bị tương đương ta đã có chuột bi, chuột quang, chuột khơng dây Bluetooth, chuột không dây WIFI, bàn xoa (Touch Path), . . . của đủ các hãng sản xuất khác nhau với những tham số kỹ thuật khác nhau. Có những thiết bị cực chậm như bàn phím, máy in hoặc cực nhanh như màn hình.
Nhiệm vụ của hệ thống là thích nghi với số lượng nhiều và tính đa dạng của các thiết bị ngoại vi, cung cấp dịch vụ theo một cách thống nhất cho người dùng và phải đảm bảo sao cho tốc độ chậm của thiết bị ngoại vi không ảnh hưởng đáng kể đến năng suất chung của hệ thống.
<i><small>1.3.4 – Tài nguyên chương trình </small></i>
Sự tồn tại các mơ đun chương trình khác nhau, sự hồ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
<i>Hình 1.18. Một số loại thiết bị </i>
<i>ngoại vi. </i>
<i><small>Đĩa đặc (SSD) </small></i>
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="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ó hồ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.
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à tồ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 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 tồn diện về đối tượng được định nghĩa.
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">Ngườ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.
<i><b>a – Trên quan điểm của người dùng </b></i>
Đố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
<i><b>hành là “Hệ thống phục vụ cho việc khai thác thuận tiện các tài ngun của hệ </b></i>
<i>thống tính tốn”. </i>
Người dùng nói chung không quan tâm đến cách quản lý tài nguyên của hệ thống. Họ chỉ cần mọi yêu cầu của mình có thể được đáp ứng một cách đơn giản và nhanh chóng nhất. Ví dụ, với một Flash Disk USB, người dùng cần một hệ thống đảm bảo chỉ cần cắm nó vào máy là có thể đọc thơng tin trên đĩa, có thể dễ dàng tạo file mới để ghi lên trên đó và cách làm phải quen thuộc như với đĩa cứng 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.
<i><b>b – Trên quan điểm của nhà quản lý </b></i>
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 q 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ý
<i>chặt chẽ các tài nguyên của hệ thống tính tốn và tổ chức khai thác chúng một </i>
<i>cách tối ưu”. </i>
<i><b>c – Nhà kỹ thuật </b></i>
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.
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23"><i>Vớ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 </i>
<i>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. </i>
Ví dụ, với máy tính IBM PC được trang bị hệ điều hành Windows, ta có thể
<b>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 </b>
<b>F:*.* C:</b> 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++;
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ử dụng như những đĩa độc lập.
<i><b>d – Người lập trình hệ thống </b></i>
Những định nghĩa nêu trên phản ánh quan điểm từ bên ngồi nhìn vào hệ thống, quan sát các hiệu quả và đánh giá nó.
Lậ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.
<i>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ơ </i>
<i>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 </i>
<i>chế độ đối thoại, tạo môi trường để quản lý chặt chẽ các tài ngun của hệ thống </i>
<i>tính tốn, tổ chức khai thác chúng một cách thuận tiện và tối ưu. </i>
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,
<i>Hình 1.22. Lập trình hệ </i>
<i>thống và </i>
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">như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ệ chun gia. Đây là hệ chuyên gia ra đời sớm nhất và thuộc loại hồ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 tố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.
<i>Năm 1952 Von Neuman đề xuất tư tưởng xây dựng “chương trình tự hồn </i>
<i>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 </i>
lũy kinh nghiệm trong quá trình khai thác, tự thay đổi để trở nên hồ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 đốn đúng thì diễn biến tiếp theo khơng có gì đặc biệt, nhưng nếu đố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
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26"><b><small>Nguyên lý Hệ điều hành - Bài 1 Trang 26 </small></b>
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 hồ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, u cầu, bài tố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 chun 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 hồn tồ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
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">phú 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.<small> </small>
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 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 lồ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×10<sup>5</sup> 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
<i><small>Hình 1.24. MS DOS. </small></i>
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">IBM 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!
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. Đó là các tính chất:
Tin cậy và chuẩn xác, Bảo vệ chặt chẽ, Kế thừa và thích nghi, Hiệu quả,
Thuận tiện.
<i><b>a – Tin cậy và chuẩn xác </b></i>
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.
<i><b>b – Bảo vệ chặt chẽ </b></i>
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 hồ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 tồ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.
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29"><i><b>c – Kế thừa và thích nghi </b></i>
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
<i>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 </i>
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.
<i><b>d – Hiệu quả </b></i>
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ớ ngồ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 ngồ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.
</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">Mỗ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.
<i><b>e – Thuận tiện </b></i>
Đâ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 đó.<small> </small>
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 hồn tồn khơng khác gì ghi ra đĩa cứng hay ra flash disk USB.
<i>Hình 1.25. Dịch vụ đối với một file được </i>
<i>chọn. </i>
</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">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.
<i><b>a – Nguyên lý mô đun </b></i>
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 hồ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ữ ngun 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.
<i><b>b – Nguyên lý phủ chức năng </b></i>
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
<i>tượng hiệu ứng phụ chức năng. Một mơ đun chương trình, ngồi chức năng chính </i>
cịn có thể sử dụng để giải quyết một số công việc khác.
<i>Hình 1.26. Liên kết giữa các mơ đun. </i>
</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">Ngồ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.
<i><b>c – Nguyên lý Macroprocessor </b></i>
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ó 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 hồ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 q trình nạp hồ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à thốt khỏi hệ thống (Shut down).
<i>Hình 1.27. Nguyên lý Macroprocessor. </i>
</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33"><i><b>d – Nguyên lý bảng tham số điều khiển </b></i>
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 các bảng tham số khác (bảng tham số điều khiển thứ cấp).
Tùy theo loại đối tượng, bảng tham số có thể lưu trữ độc lập hoặc gắn liền với đối tượng mà nó quản lý, khi đó 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 100<small>H</small><i> bytes gắn ở đầu mỗi chương trình) có tên là Khối tiền </i>
<i>tố chương trình ( PSP – Program Segment Prefix). PSP cho biết bắt đầu thực hiện </i>
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
<i>chung là Đầu file (Header). Header bao gồm hai phần: phần đầu và phần thân. </i>
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 đó
<b>thường có đi là .INI, ví dụ WINDOWS.INI, WINWORD.INI. </b>
<i>Hình 1.28. </i>
</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34"><i><b>e – Nguyên lý giá trị chuẩn </b></i>
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
<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ố </i>
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ệ
<i>thống. Vì vậy ngun lý cịn được gọi là Nguyên lý ngầm định (Default). </i>
Ví dụ, ta có thể ra lệnh
<b> C:\CSDL>DIR </b>
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ơ
<b>mất thông tin. Ví dụ, với việc FORMAT đĩa, địa chỉ của ổ đĩa phải do người sử </b>
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ý.
<i><b>f – Nguyên lý hai loại tham số </b></i>
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,
cá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ố đó. Ngồi ra, ngun 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
<i>thực hiện thông qua Bảng nhập tham số </i>
(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ị trí và tham số khóa.
Ví dụ, để Format một đĩa hệ thống cung cấp Bảng nhập tham số dạng nêu ở hình 1.30.
Như đã nói ở trên, các mơ đun trong hệ thống có thể được nhóm lại theo chức năng, mỗi nhóm tạo thành một thành phần của hệ thống. Mỗi nhóm tạo thành một hệ thống con và thường được gọi tắt là hệ thống. Như vậy, thành phần của một hệ điều hành phản ánh việc phân nhóm các mơ đun và phản ánh quan điểm chủ quan của người tiến hành phân nhóm.
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:
<i><b>a – Hệ thống Supervisior </b></i>
Các mô đun Supervisor phục vụ quản lý và phân phối tài ngun. Đâ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.
<i><b>b – Hệ thống quản lý thiết bị ngoại vi </b></i>
<i>Hình 1.30. Bảng nhập </i>
</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">Cá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.
<i><b>c – Hệ thống quản lý file </b></i>
Đây là hệ thống quản lý tài nguyên thơng tin lưu trữ ở bộ nhớ ngồ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.
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.
<i><b>e – Các chương trình phục vụ hệ thống </b></i>
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.
</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37"><i><b>f – Hệ thống đối thoại </b></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!
</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38"><i><small>2.1.1 – Định nghĩa tiến trình </small></i>
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 tố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 s<sub>1</sub>, s<sub>2</sub>, …, s<sub>n</sub>, … là các biến trạng thái. Vector S = (s<sub>1</sub>, s<sub>2</sub>, …, s<sub>n</sub>, …) 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
<small>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. </small>
</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">có 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.
<i>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á </i>
<i>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 </i>
<i>Các phần này được gọi là tuyến (threads). Trên quan điểm tổ chức quản lý và </i>
<i>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 </i>
<i>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 </i>
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.
</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">Mỗ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ị
<i>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 </i>
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 ngun tiến trình đang sử dụng hoặc có quyền sử dụng.
<i> Mỗi tiến trình cũng như mỗi tuyến đều phải có một bộ đếm lệnh (Instruction </i>
<i>Pointer – IP) riêng. </i>
Ngồ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.
<i><small>2.1.3 – Phân loại tiến trình </small></i>
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, Tiến trình phân cấp,
Có 3 cơ chế tổ chức truyền tin:
<small>Hình 2.2. Tiến trình song song. </small>
</div>