Ví dụ về hệ điều hành đa chương

Sự khác biệt giữa đa chương trình và đa nhiệm - Công Nghệ

NộI Dung:

Đa chương trình và đa nhiệm là các khía cạnh của một hệ thống máy tính. Tuy nhiên, đây cũng là những loại hệ điều hành. Sự khác biệt trước đây giữa đa chương trình và đa nhiệm là đa chương trình dựa trên lập lịch trước trong đó điểm cân nhắc chính là thời gian không hoạt động của CPU. Mặt khác, trong hệ thống đa nhiệm, các công việc của CPU có khoảng thời gian xử lý bằng nhau và nó nhấn mạnh vào khả năng đáp ứng.

Hệ thống đa chương trình có lợi về mặt sử dụng các tài nguyên hệ thống như CPU, bộ nhớ và các thiết bị ngoại vi. Mặc dù nó không sử dụng bất kỳ tương tác nào giữa người dùng. Ngược lại, hệ thống đa nhiệm kết hợp lập lịch CPU và lập trình đa chương trình, do đó mỗi người dùng sẽ nhận được một phần nhỏ của máy tính được chia sẻ thời gian, nơi giao tiếp giữa những người dùng cũng diễn ra.


Biểu đồ so sánh

Cơ sở để so sánhĐa chương trìnhĐa nhiệm
Căn bảnCho phép nhiều chương trình sử dụng CPU đồng thời.Một dạng bổ sung của hệ thống đa chương trình cũng hỗ trợ sự tương tác của người dùng.
Mục tiêuCải thiện việc sử dụng CPU.Giảm thiểu thời gian phản hồi.
Chuyển mạchXảy ra khi quá trình đang chạy dừng lại.Thực hiện mỗi lần sau khi phần thời gian của quá trình kết thúc.
Phức tạpĐơn giảnPhức tạp

Định nghĩa về đa chương trình

Một hệ điều hành có khả năng đa chương trình trong đó nó có thể liên quan đến nhiều chương trình được thực thi trên một CPU. Đa chương trình là một khía cạnh thiết yếu của hệ điều hành có thể tạo ra hiệu suất sử dụng CPU một cách đáng kể. Nó sắp xếp các công việc [mã và dữ liệu] theo cách mà CPU sẽ luôn có một công việc để thực thi. Ở đây khái niệm là hệ điều hành lưu trữ nhiều công việc trong bộ nhớ cùng một lúc. Vì bộ nhớ chính có thể thiếu hụt để chứa tất cả các công việc. Vì vậy, ban đầu các đĩa được sử dụng để lưu trữ các công việc của CPU.


Nhóm công việc trong bộ nhớ có thể là tập hợp con của các công việc nằm trong nhóm công việc. Để xử lý các công việc này, hệ điều hành chọn một trong số chúng và bắt đầu thực hiện nó trong bộ nhớ. Cuối cùng, nếu bất kỳ công việc nào phải đợi một khoảng thời gian cụ thể để một số tác vụ khác kết thúc như hoạt động I / O hoặc lệnh khác, CPU sẽ chuyển sang công việc khác trong khoảng thời gian đó. Nó dừng CPU ở trạng thái nhàn rỗi cho đến khi chỉ còn một công việc vì nó chuyển từ công việc này sang công việc khác nếu nó chuyển sang trạng thái chờ. Bất kể, trong một hệ thống không đa chương trình, CPU phải ở trạng thái nghỉ.

Định nghĩa đa nhiệm

Đa nhiệm được xem như là phần mở rộng hợp lý của đa chương trình, vì nó thực hiện cùng một cách tiếp cận chuyển đổi giữa các công việc nhưng ở đây việc chuyển đổi diễn ra rất thường xuyên. Việc chuyển đổi thường xuyên này tạo điều kiện cho người dùng tương tác với từng chương trình khi chương trình đang chạy. Hệ thống đa nhiệm cần một hệ thống máy tính tương tác để cho phép giao tiếp giữa người dùng và hệ thống.


Người dùng đưa ra hướng dẫn cho hệ thống máy tính hoặc chương trình trực tiếp bằng một số thiết bị đầu vào như chuột hoặc bàn phím. Do đó, kết quả của đầu vào là ngay lập tức khi thời gian phản hồi ít hơn và có thể nằm trong khoảng mili giây đến giây. Nó cho phép nhiều người dùng chia sẻ tài nguyên chung đồng thời. Vì hành động hoặc lệnh trong hệ thống đa nhiệm thường ngắn và cần ít thời gian CPU cho mỗi người dùng. Vì quá trình chuyển đổi trong các hệ thống này diễn ra rất nhanh, nên người dùng không thể nhận thấy nó, và nó tạo cảm giác về một hệ thống chuyên dụng.

Phần kết luận

Hệ thống đa nhiệm có thể được coi là đa chương trình vì nó chạy nhiều chương trình cùng một lúc. Tuy nhiên, một hệ thống đa chương trình không nhất thiết phải đa nhiệm.

Bộ giám sát thường trực :

Khi một công việc chấm dứt, hệ thống sẽ thực hiện công việc kế tiếp mà không cần sự can thiệp của người lập trình, do đó thời gian thực hiện sẽ mau hơn. Một chương trình, còn gọi là bộ giám sát thường trực được thiết kế để giám sát việc thực hiện dãy các công việc một cách tự động, chương trình này luôn luôn thường trú trong bộ nhớ chính.

Hệ điều hành theo lôthực hiện các công việc lần lượt theo những chỉ thị định trước.

CPU và thao tác nhập xuất :

CPU thường hay nhàn rỗi do tốc độ làm việc của các thiết bị nhập xuất [thường là thiết bị cơ] chậm hơn rất nhiều lần so với các thiết bị điện tử. Cho dù là một CPU chậm nhất, nó cũng nhanh hơn rất nhiều lần so với thiết bị nhập xuất. Do đó phải có các phương pháp để đồng bộ hóa việc hoạt động của CPU và thao tác nhập xuất.

Xử lý off_line :

Xử lý off_line là thay vì CPU phải đọc trực tiếp từ thiết bị nhập và xuất ra thiết bị xuất, hệ thống dùng một bộ lưu trữ trung gian. CPU chỉ thao thác với bộ phận này. Việc đọc hay xuất đều đến và từ bộ lưu trữ trung gian.

Spooling :

Spool [simultaneousperipheraloperationon-line] là đồng bộ hóa các thao tác bên ngoài on-line. Cơ chế này cho phép xử lý của CPU là on-line, sử dụng đĩa để lưu các dữ liệu nhập cũng như xuất.

Khi có nhiều công việc cùng truy xuất lên thiết bị, vấn đề lập lịch cho các công việc là cần thiết. Khía cạnh quan trọng nhất trong việc lập lịch là khả năng đa chương. Đa chương [multiprogram] gia tăng khai thác CPU bằng cách tổ chức các công việc sao cho CPU luôn luôn phải trong tình trạng làm việc .

Ý tưởng như sau : hệ điều hành lưu giữ một phần của các công việc ở nơi lưu trữ trong bộ nhớ . CPU sẽ lần lượt thực hiện các phần công việc này. Khi đang thực hiện, nếu có yêu cầu truy xuất thiết bị thì CPU không nghỉ mà thực hiện tiếp công việc thứ hai…

Với hệ đa chương hệ điều hành ra quyết định cho người sử dụng vì vậy, hệ điều hành đa chương rất tinh vi. Hệ phải xử lý các vấn đề lập lịch cho công việc, lập lịch cho bộ nhớ và cho cả CPU nữa.

Hệ thống chia xẻ thời gian là một mở rộng logic của hệ đa chương. Hệ thống này còn được gọi là hệ thống đa nhiệm [multitasking]. Nhiều công việc cùng được thực hiện thông qua cơ chế chuyển đổi của CPU như hệ đa chương nhưng thời gian mỗi lần chuyển đổi diễn ra rất nhanh.

Hệ thống chia xẻ được phát triển để cung cấp việc sử dụng bên trong của một máy tính có giá trị hơn. Hệ điều hành chia xẻ thời gian dùng lập lịch CPU và đa chương để cung cấp cho mỗi người sử dụng một phần nhỏ trong máy tính chia xẻ. Một chương trình khi thi hành được gọi là một tiến trình. Trong quá trình thi hành của một tiến trình, nó phải thực hiện các thao tác nhập xuất và trong khoảng thời gian đó CPU sẽ thi hành một tiến trình khác. Hệ điều hành chia xẻ cho phép nhiều người sử dụng chia xẻ máy tính một cách đồng bộ do thời gian chuyển đổi nhanh nên họ có cảm giác là các tiến trình đang được thi hành cùng lúc.

Hệ điều hành chia xẻ phức tạp hơn hệ điều hành đa chương. Nó phải có các chức năng : quản trị và bảo vệ bộ nhớ, sử dụng bộ nhớ ảo. Nó cũng cung cấp hệ thống tập tin truy xuất on-line…

Hệ điều hành chia xẻ là kiểu của các hệ điều hành hiện đại ngày nay.

Ngoài các hệ thống chỉ có một bộ xử lý còn có các hệ thống có nhiều bộ xử lý cùng chia xẻ hệ thống đường truyền dữ liệu, đồng hồ, bộ nhớ và các thiết bị ngoại vi. Các bộ xử lý này liên lạc bên trong với nhau .

Có nhiều nguyên nhân xây dựng dạng hệ thống này. Với sự gia tăng số lượng bộ xử lý, công việc được thực hiện nhanh chóng hơn, Nhưng không phải theo đúng tỉ lệ thời gian, nghĩa là có n bộ xử lý không có nghĩa là sẽ thực hiện nhanh hơn n lần.

Hệ thống với máy nhiều bộ xử lý sẽ tối ưu hơn hệ thống có nhiều máy có một bộ xử lý vì các bộ xử lý chia xẻ các thiết bị ngoại vi, hệ thống lưu trữ, nguồn … và rất thuận tiện cho nhiều chương trình cùng làm việc trên cùng một tập hợp dữ liệu.

Một lý do nữa là độ tin cậy. Các chức năng được xử lý trên nhiều bộ xử lý và sự hỏng hóc của một bộ xử lý sẽ không ảnh hưởng đến toàn bộ hệ thống.

Hệ thống đa xử lý thông thường sử dụng cách đa xử lý đối xứng, trong cách này mỗi bộ xử lý chạy với một bản sao của hệ điều hành, những bản sao này liên lạc với nhau khi cần thiết. Một số hệ thống sử dụng đa xử lý bất đối xứng, trong đó mỗi bộ xử lý được giao một công việc riêng biệt.. Một bộ xử lý chính kiểm soát toàn bộ hệ thống, các bộ xử lý khác thực hiện theo lệnh của bộ xử lý chính hoặc theo những chỉ thị đã được định nghĩa trước. Mô hình này theo dạng quan hệ chủ tớ. Bộ xử lý chính sẽ lập lịch cho các bộ xử lý khác.

Một ví dụ về hệ thống xử lý đối xứng là version Encore của UNIX cho máy tính Multimax. Hệ thống này có hàng tá bộ xử lý. Ưu điểm của nó là nhiều tiến trình có thể thực hiện cùng lúc . Một hệ thống đa xử lý cho phép nhiều công việc và tài nguyên được chia xẻ tự động trong những bộ xử lý khác nhau.

Hệ thống đa xử lý không đồng bộ thường xuất hiện trong những hệ thống lớn, trong đó hầu hết thời gian hoạt động đều dành cho xử lý nhập xuất.

Hệ thống này cũng tương tự như hệ thống chia xẻ thời gian nhưng các bộ xử lý không chia xẻ bộ nhớ và đồng hồ, thay vào đó mỗi bộ xử lý có bộ nhớ cục bộ riêng. Các bộ xử lý thông tin với nhau thông qua các đường truyền thông như những bus tốc độ cao hay đường dây điện thoại. 

Các bộ xử lý trong hệ phân tán thường khác nhau về kích thước và chức năng. Nó có thể bao gồm máy vi tính, trạm làm việc, máy mini, và những hệ thống máy lớn. Các bộ xử lý thường được tham khảo với nhiều tên khác nhau như site, node, computer v.v.... tùy thuộc vào trạng thái làm việc của chúng.

Các nguyên nhân phải xây dựng hệ thống phân tán là:

Chia xẻ tài nguyên : Một người sử dụng A có thể sử dụng máy in laser của người sử dụng B và người sử dụng B có thể truy xuất những tập tin của A. Tổng quát, chia xẻ tài nguyên trong hệ thống phân tán cung cấp một cơ chế để chia xẻ tập tin ở vị trí xa, xử lý thông tin trong một cơ sở dữ liệu phân tán, in ấn tại một vị trí xa, sử dụng những thiết bị ở xa đểõ thực hiện các thao tác.

Tăng tốc độ tính toán : Một thao tác tính toán được chia làm nhiều phần nhỏ cùng thực hiện một lúc. Hệ thống phân tán cho phép phân chia việc tính toán trên nhiều vị trí khác nhau để tính toán song song.

An toàn : Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí khác vẫn tiếp tục làm việc.

Thông tin liên lạc với nhau :Có nhiều lúc , chương trình cần chuyển đổi dữ liệu từ vị trí này sang vị trí khác. Ví dụ trong hệ thống Windows, thường có sự chia xẻ và chuyển dữ liệu giữa các cửa sổ. Khi các vị trí được nối kết với nhau trong một hệ thống mạng, việc trao đổi dữ liệu diễn ra rất dễ. Người sử dụng có thể chuyển tập tin hay các E_mail cho nhau từ cùng vị trí hay những vị trí khác.

Hệ thống xử lý thời gian thựcđược sử dụng khi có những đòi hỏi khắt khe về thời gian trên các thao tác của bộ xử lý hoặc dòng dữ liệu, nó thường được dùng điều khiển các thiết bị trong các ứng dụng tận hiến [dedicated]. Máy tính phân tích dữ liệu và có thể chỉnh các điều khiển giải quyết cho dữ liệu nhập.

 Một hệ điều hành xử lý thời gian thực phải được định nghĩa tốt, thời gian xử lý nhanh. Hệ thống phải cho kết quả chính xác trong khoảng thời gian bị thúc ép nhanh nhất. Có hai hệ thống xử lý thời gian thực là hệ thống thời gian thực cứng và hệ thống thời gian thực mềm..

Hệ thống thời gian thực cứng là công việc được hoàn tất đúng lúc. Lúc đó dữ liệu thường được lưu trong bộ nhớ ngắn hạn hay trong ROM. Việc xử lý theo thời gian thực sẽ xung đột với tất cả hệ thống liệt kê ở trên.

Dạng thứ hai là hệ thống thời gian thực mềm, mỗi công việc có một độ ưu tiên riêng và sẽ được thi hành theo độ ưu tiên đó. Có một số lĩnh vực áp dụng hữu hiệu phương pháp này là multimedia hay thực tại ảo.

Video liên quan

Chủ Đề