Hệ điều hành, môi trường và shell. Kiến trúc, mục đích và chức năng của hệ điều hành

Bất kỳ hệ thống máy tính nào bao gồm những gì? Từ cái thường được gọi là phần cứng ở các nước nói tiếng Anh, hoặc hỗ trợ kỹ thuật: bộ xử lý, bộ nhớ, màn hình, thiết bị đĩa, v.v., được kết nối bằng kết nối đường trục gọi là bus.


Chia sẻ công việc của bạn trên mạng xã hội

Nếu tác phẩm này không phù hợp với bạn, ở cuối trang có danh sách các tác phẩm tương tự. Bạn cũng có thể sử dụng nút tìm kiếm


Phần 1 Hệ điều hành, môi trường và shell p. 18 trên 18

Bài giảng 1

Bài giảng 1 Giới thiệu về hệ điều hànhđịnh nghĩa, mục đích và lịch sử phát triển.

Hệ thống vận hành là gì

Cấu trúc hệ thống máy tính

Hệ điều hành là gì

Hệ điều hành như một máy ảo

Hệ điều hành đóng vai trò quản lý tài nguyên

Hệ điều hành là người bảo vệ người dùng và chương trình

Hệ điều hành như một hạt nhân chạy liên tục

Truyện ngắn sự tiến hóa hệ thống máy tính

Thời kỳ thứ nhất (1945-1955). Máy đèn. Không có hệ điều hành

Giai đoạn thứ hai (1955–đầu thập niên 60). Máy tính dựa trên bóng bán dẫn. Hệ điều hành hàng loạt

Thời kỳ thứ ba (đầu thập niên 60 - 1980). Máy tính dựa trên mạch tích hợp. Hệ điều hành đa nhiệm đầu tiên

Giai đoạn thứ tư (từ 1980 đến nay). Những máy tính cá nhân. Cổ điển, mạng và hệ thống phân phối

Các khái niệm cơ bản, khái niệm hệ điều hành

Cuộc gọi hệ thống

Ngắt

Tình huống đặc biệt

Các tập tin

Tiến trình, chủ đề

Đặc điểm kiến ​​trúc hệ điều hành

lõi nguyên khối

Hệ thống phân lớp

Máy ảo

Kiến trúc vi hạt nhân

Hệ thống hỗn hợp

Phân loại hệ điều hành

Thực hiện đa nhiệm

Hỗ trợ nhiều người dùng

Đa xử lý

Hệ thống thời gian thực

Phần kết luận

Phụ lục 1.

Một số thông tin về kiến ​​trúc máy tính

Sự tương tác thiết bị ngoại vi

  1. Bài giảng 1 Giới thiệu về định nghĩa, mục đích và lịch sử phát triển của hệ điều hành.
  2. Hệ thống vận hành là gì
    1. Cấu trúc hệ thống máy tính

Bất kỳ hệ thống máy tính nào bao gồm những gì? Thứ nhất, từ những gì ở các nước nói tiếng Anh thường được gọi là từ phần cứng hoặc hỗ trợ kỹ thuật: CPU , bộ nhớ, màn hình, thiết bị đĩa, v.v., được thống nhất bởi một kết nối đường trục gọi là bus.

Thứ hai, một hệ thống máy tính bao gồm phần mềm. Tất cả phần mềm thường được chia thành hai phần: ứng dụng và hệ thống. Phần mềm ứng dụng thường bao gồm nhiều chương trình ngân hàng và kinh doanh khác, trò chơi, trình xử lý văn bản, v.v. Phần mềm hệ thống thường đề cập đến các chương trình hỗ trợ vận hành và phát triển các chương trình ứng dụng. Phải nói rằng việc phân chia thành phần mềm ứng dụng và phần mềm hệ thống có phần tùy tiện và phụ thuộc vào người thực hiện phân chia. Vì thế, Người sử dụng thường xuyên Người chưa có kinh nghiệm lập trình có thể coi Microsoft Word là một chương trình hệ thống, nhưng theo quan điểm của người lập trình thì nó là một ứng dụng. Trình biên dịch ngôn ngữ C đối với một lập trình viên thông thường là một chương trình hệ thống và đối với một lập trình viên hệ thống, nó là một chương trình ứng dụng. Bất chấp cạnh mờ này, tình huống này có thể được hiển thị dưới dạng một chuỗi các lớp (xem Hình 1.1), làm nổi bật riêng phần phổ biến nhất của phần mềm hệ thống - hệ điều hành:

Cơm. 1.1. Lớp phần mềm hệ thống máy tính

  1. Hệ điều hành là gì

Hầu hết người dùng đều có kinh nghiệm vận hànhcác hệ điều hành, nhưng tuy nhiên họ sẽ khó đưa ra một định nghĩa chính xác cho khái niệm này. Chúng ta hãy xem xét nhanh các quan điểm chính.

  1. Hệ điều hành như một máy ảo

Khi phát triển một hệ điều hành trừu tượng hóa được sử dụng rộng rãi, đây là một phương pháp đơn giản hóa quan trọng và cho phép bạn tập trung vào sự tương tác của các thành phần cấp cao của hệ thống, bỏ qua các chi tiết triển khai chúng. Trong trường hợp này hệ điều hành đại diện cho giao diện giữa người dùng và máy tính.

Kiến trúc của hầu hết các máy tính ở cấp độ hướng dẫn máy rất bất tiện cho việc sử dụng các chương trình ứng dụng. Ví dụ: làm việc với đĩa đòi hỏi kiến ​​thức cơ cấu nội bộ bộ điều khiển thành phần điện tử của nó để nhập các lệnh xoay đĩa, tìm kiếm và định dạng các rãnh, các cung đọc và ghi, v.v.

Rõ ràng là một lập trình viên trung bình không thể tính đến tất cả các tính năng của thiết bị (theo thuật ngữ hiện đại là phát triển trình điều khiển thiết bị), mà phải có một sự trừu tượng hóa cấp cao đơn giản, chẳng hạn như biểu diễn không gian thông tinđĩa dưới dạng một tập hợp các tập tin. Tệp có thể được mở để đọc hoặc ghi, được sử dụng để truy xuất hoặc đặt lại thông tin, sau đó đóng lại. Về mặt khái niệm, điều này đơn giản hơn việc lo lắng về các chi tiết di chuyển đầu đĩa hoặc tổ chức hoạt động của động cơ. Tương tự, với sự trợ giúp của các tính năng trừu tượng đơn giản và rõ ràng, tất cả các chi tiết không cần thiết của tổ chức sẽ bị ẩn khỏi lập trình viên. ngắt quãng , hoạt động hẹn giờ, quản lý bộ nhớ, v.v. Hơn nữa, trên các hệ thống máy tính hiện đại, bạn có thể tạo ra ảo ảnh về kích thước không giới hạn bộ nhớ hoạt động và những con số bộ vi xử lý . Có tất cả điều nàyhệ điều hành. Như vậy, hệ điều hànhxuất hiện với người dùngmáy ảo, việc này dễ xử lý hơn là xử lý trực tiếp với phần cứng máy tính.

  1. Hệ điều hành đóng vai trò quản lý tài nguyên

hệ điều hànhđược thiết kế để kiểm soát tất cả các phần của kiến ​​trúc máy tính rất phức tạp. Ví dụ, hãy xem xét điều gì sẽ xảy ra nếu một số chương trình chạy trên cùng một máy tính cố gắng xuất ra máy in cùng một lúc. Chúng tôi sẽ kết thúc với một mớ bòng bong các dòng và trang được tạo bởi các chương trình khác nhau.hệ điều hànhngăn chặn kiểu hỗn loạn này bằng cách lưu vào bộ đệm thông tin có thể in được trên đĩa và xếp hàng để in. Đối với máy tính nhiều người dùng, nhu cầu quản lý và bảo vệ tài nguyên càng rõ ràng hơn. Kể từ đây, hệ điều hành, Làm sao người quản lý tài nguyên, thực hiện phân phối có trật tự và có kiểm soát bộ vi xử lý , bộ nhớ và các tài nguyên khác giữa các chương trình khác nhau.

  1. Hệ điều hành là người bảo vệ người dùng và chương trình

Nếu hệ thống máy tính cho phép làm việc cùng nhau nhiều người dùng thì vấn đề tổ chức các hoạt động an toàn của họ sẽ nảy sinh. Cần đảm bảo an toàn cho thông tin trên đĩa để không ai có thể xóa, làm hỏng file của người khác. Chương trình của một người dùng không được phép tự ý can thiệp vào hoạt động của chương trình của người dùng khác. Cần phải ngăn chặn các nỗ lực sử dụng trái phép hệ thống máy tính. Tất cả những hoạt động này được thực hiệnhệ điều hànhvới tư cách là người tổ chức hoạt động an toàn của người dùng và chương trình của họ.Từ quan điểm nàyhệ điều hànhdường như là một hệ thống an ninh nhà nước, được giao cho cảnh sát và các chức năng phản gián.

  1. Hệ điều hành như một hạt nhân chạy liên tục

Cuối cùng, chúng ta có thể đưa ra định nghĩa sau:hệ điều hành – Đây là chương trình chạy liên tục trên máy tính và tương tác với mọi ngườichương trình ứng dụng. Có vẻ như điều này hoàn toàn định nghĩa đúng nhưng, như chúng ta sẽ thấy sau này, trong nhiềucác hệ điều hànhChỉ một phần hoạt động liên tục trên máy tínhhệ điều hànhngười thường được gọi là cô ấy cốt lõi.

Như chúng ta có thể thấy, có nhiều quan điểm về việc nó là gìhệ điều hành. Không thể đưa ra một định nghĩa chặt chẽ đầy đủ cho nó. Nói rằng không có gì thì dễ hơnhệ điều hành, tại sao nó lại cần thiết và nó có tác dụng gì? . Để làm rõ vấn đề này, hãy xem xét lịch sử phát triển của hệ thống máy tính.

  1. Tóm tắt lịch sử về sự phát triển của hệ thống máy tính

Chúng ta sẽ xem xét lịch sử phát triển của máy tính chứ không phảicác hệ điều hànhbởi vì phần cứng và phần mềm đã cùng nhau phát triển, ảnh hưởng lẫn nhau. Sự xuất hiện của mới Năng lực kỹ thuậtđã dẫn đến bước đột phá trong việc tạo ra các chương trình tiện lợi, hiệu quả và an toàn, đồng thời những ý tưởng mới trong lĩnh vực phần mềm đã kích thích việc tìm kiếm các giải pháp kỹ thuật mới. Chính những tiêu chí này - sự tiện lợi, hiệu quả và bảo mật - đã đóng vai trò là yếu tố chọn lọc tự nhiên trong quá trình phát triển của hệ thống máy tính.

  1. Thời kỳ thứ nhất (1945-1955). Máy đèn. Không có hệ điều hành

Chúng ta sẽ bắt đầu nghiên cứu về sự phát triển của hệ thống máy tính với sự ra đời của hệ thống máy tính điện tử (bỏ qua lịch sử của các thiết bị cơ và cơ điện).

Những bước đầu tiên trong quá trình phát triển máy tính điện tử được thực hiện vào cuối Thế chiến thứ hai. Vào giữa những năm 1940, các thiết bị điện toán dạng ống đầu tiên đã được tạo ra và nguyên lý của một chương trình được lưu trong bộ nhớ của máy đã xuất hiện (John Von Neumann, tháng 6 năm 1945). Vào thời điểm đó, cùng một nhóm người đã tham gia thiết kế, vận hành và lập trình máy tính. Đó là một công việc nghiên cứu trong lĩnh vực công nghệ máy tính hơn là việc sử dụng máy tính thường xuyên như một công cụ để giải quyết mọi vấn đề thực tế từ các lĩnh vực ứng dụng khác. Việc lập trình được thực hiện độc quyền trong ngôn ngữ máy. Vềcác hệ điều hànhkhông còn nghi ngờ gì nữa, mọi nhiệm vụ tổ chức quá trình tính toán đều được từng lập trình viên từ bảng điều khiển giải quyết thủ công. Chỉ có một người dùng có thể ở điều khiển từ xa. Chương trình tốt nhất được tải vào bộ nhớ của máy từ một bộ thẻ đục lỗ và thường sử dụng một bảng công tắc.

Hệ thống máy tính chỉ thực hiện một thao tác tại một thời điểm (đầu vào-đầu ra hoặc tính toán thực tế). Việc gỡ lỗi chương trình được thực hiện từ bảng điều khiển bằng cách nghiên cứu trạng thái bộ nhớ và thanh ghi của máy. Vào cuối thời kỳ này, phần mềm hệ thống đầu tiên xuất hiện: năm 1951–1952. nguyên mẫu của trình biên dịch đầu tiên từ các ngôn ngữ tượng trưng (Fortran, v.v.) đã xuất hiện và vào năm 1954 Nat Rochester đã phát triển một trình biên dịch chương trình cho IBM-701.

Một phần đáng kể thời gian được dành để chuẩn bị khởi động chương trình và bản thân các chương trình được thực hiện một cách tuần tự nghiêm ngặt. Chế độ hoạt động này được gọi làxử lý tuần tựdữ liệu. Nhìn chung, giai đoạn đầu tiên được đặc trưng bởi chi phí cực cao của hệ thống máy tính, số lượng nhỏ và hiệu quả sử dụng thấp.

  1. Giai đoạn thứ hai (1955–đầu thập niên 60). Máy tính dựa trên bóng bán dẫn. Hệ điều hành hàng loạt

Kể từ giữa những năm 50, giai đoạn tiếp theo trong quá trình phát triển của công nghệ máy tính bắt đầu gắn liền với sự xuất hiện của nền tảng kỹ thuật mới - các phần tử bán dẫn. Ứng dụng Linh kiện bán dẫn thay vì thường xuyên bị đốt cháy điện tửđèn đã làm tăng độ tin cậy của máy tính. Máy móc giờ đây có thể hoạt động liên tục đủ lâu để có thể được giao thực hiện các nhiệm vụ thực tế quan trọng. Tiêu thụ điện của máy tính giảm và hệ thống làm mát được cải thiện. Kích thước máy tính đã bị thu hẹp. Chi phí vận hành và bảo trì thiết bị máy tính đã giảm. Việc sử dụng máy tính của các công ty thương mại bắt đầu. Đồng thời, có sự phát triển nhanh chóng của các ngôn ngữ thuật toán (LISP, COBOL, ALGOL-60, PL-1, v.v.). Các trình biên dịch thực sự đầu tiên, trình soạn thảo liên kết, thư viện các chương trình toán học và tiện ích đầu tiên xuất hiện. Quá trình lập trình được đơn giản hóa. Không cần thiết phải tạo gánh nặng cho những người giống nhau trong toàn bộ quá trình phát triển và sử dụng máy tính. Trong thời kỳ này, nhân sự được chia thành các lập trình viên và người vận hành, chuyên gia vận hành và nhà phát triển máy tính.

Quá trình chạy chương trình tự nó thay đổi. Bây giờ người dùng mang đến cho chương trình dữ liệu đầu vào dưới dạng một cỗ bài đục lỗ và cho biết các tài nguyên cần thiết. Bộ bài này được gọi là một nhiệm vụ. Người vận hành tải tác vụ vào bộ nhớ của máy và khởi động nó để thực thi. Dữ liệu đầu ra thu được sẽ được in trên máy in và người dùng sẽ nhận lại sau một thời gian (khá dài).

Kết quả là việc thay đổi các tài nguyên được yêu cầu khiến việc thực thi chương trình bị đình chỉ CPU thường nhàn rỗi. Để nâng cao hiệu quả sử dụng máy tính, các công việc có nguồn lực tương tự bắt đầu được tập hợp lại với nhau, tạo ra một loạt công việc.

Những cái đầu tiên xuất hiệnhệ thống xử lý hàng loạt, chỉ đơn giản là tự động hóa việc khởi chạy một chương trình từ gói này đến gói khác và do đó làm tăng hệ số tải bộ xử lý Khi triển khai hệ thống xử lý hàng loạtmột ngôn ngữ điều khiển tác vụ chính thức đã được phát triển, với sự trợ giúp của ngôn ngữ này, lập trình viên sẽ thông báo cho hệ thống và người vận hành biết công việc mà anh ta muốn thực hiện trên máy tính.Hệ thống xử lý hàng loạtđã trở thành nguyên mẫu của hiện đạicác hệ điều hành, chúng là những chương trình hệ thống đầu tiên được thiết kế để kiểm soát quá trình tính toán.

  1. Thời kỳ thứ ba (đầu thập niên 60 - 1980). Máy tính dựa trên mạch tích hợp. Hệ điều hành đa nhiệm đầu tiên

Giai đoạn quan trọng tiếp theo trong sự phát triển của máy tính bắt đầu từ đầu những năm 60 và 1980. Vào thời điểm này, một quá trình chuyển đổi đã diễn ra trong cơ sở kỹ thuật từ các phần tử bán dẫn riêng lẻ thuộc loại bóng bán dẫn để mạch tích hợp. Công nghệ máy tính đang trở nên đáng tin cậy hơn và rẻ hơn. Sự phức tạp và số lượng các vấn đề được giải quyết bằng máy tính ngày càng tăng. Tăng năng suất bộ vi xử lý

Cải thiện hiệu quả sử dụng thời gian của CPU tốc độ thấp vận hành các thiết bị đầu vào/đầu ra cơ học (đầu đọc thẻ đục lỗ nhanh có thể xử lý 1200 thẻ đục lỗ mỗi phút, máy in có thể in tới 600 dòng mỗi phút). Thay vì đọc trực tiếp một gói nhiệm vụ từ thẻ đục lỗ vào bộ nhớ, họ bắt đầu sử dụng bản ghi sơ bộ của nó, đầu tiên là trên băng từ, sau đó là trên đĩa. Khi dữ liệu đầu vào được yêu cầu trong một công việc, nó sẽ được đọc từ đĩa. Tương tự, thông tin đầu ra trước tiên được sao chép vào bộ đệm hệ thống và được ghi vào băng hoặc đĩa và chỉ được in sau khi công việc hoàn thành. Lúc đầu, các thao tác I/O thực tế được thực hiện ngoại tuyến, nghĩa là sử dụng các thao tác khác, đơn giản hơn, riêng biệt. máy tính đứng. Sau đó, chúng bắt đầu được thực thi trên cùng một máy tính thực hiện các phép tính, nghĩa là ở chế độ trực tuyến. Kỹ thuật này được gọi là spooling (viết tắt của Hoạt động ngoại vi đồng thời trực tuyến) hoặc bơm/bơm dữ liệu. Đưa công nghệ bơm bơm vàohệ thống hàng loạtcho phép kết hợp các hoạt động đầu vào-đầu ra thực tế của một tác vụ với việc thực hiện một tác vụ khác, nhưng yêu cầu phát triển một thiết bị ngắt để thông báo cho bộ xử lý về việc hoàn thành các hoạt động này.

Băng từ là thiết bị truy cập tuần tự, tức là thông tin được đọc từ chúng theo thứ tự được viết. Sự ra đời của đĩa từ, trong đó thứ tự đọc thông tin không quan trọng, tức là một thiết bị truy cập trực tiếp, đã dẫn đến sự phát triển hơn nữa của các hệ thống máy tính. Khi xử lý một loạt công việc trên băng từ, thứ tự các công việc được đưa ra được xác định theo thứ tự chúng được nhập. Khi xử lý một loạt tác vụ trên đĩa từ, có thể chọn tác vụ tiếp theo để thực thi.Hệ thống hàng loạtbắt đầu lên lịch các nhiệm vụ: tùy thuộc vào sự sẵn có của các nguồn lực được yêu cầu, mức độ khẩn cấp của việc tính toán, v.v. một hoặc một nhiệm vụ khác được chọn cho tài khoản.

Tăng thêm hiệu quả sử dụng bộ xử lý đã đạt được thông qua đa chương trình. Ý tưởng đằng sau đa chương trình là trong khi một chương trình đang thực hiện thao tác I/O, CPU không đứng yên như đã xảy ra ở chế độ chương trình đơn mà thực hiện một chương trình khác. Khi thao tác I/O kết thúc, CPU quay lại thực hiện chương trình đầu tiên. Ý tưởng này gợi nhớ đến hành vi của giáo viên và học sinh trong một kỳ thi. Trong khi một học sinh (chương trình) đang suy nghĩ về câu trả lời cho một câu hỏi (thao tác đầu vào/đầu ra), giáo viên ( CPU ) lắng nghe câu trả lời của một học sinh khác (tính toán). Đương nhiên, tình huống này cần có nhiều học sinh trong phòng. Tương tự như vậy, đa chương trình đòi hỏi phải có nhiều chương trình trong bộ nhớ cùng một lúc. Trong trường hợp này, mỗi chương trình được tải vào phần RAM riêng của nó, được gọi là phân vùng và sẽ không ảnh hưởng đến việc thực thi chương trình khác.

Sự xuất hiện của đa chương trình đòi hỏi một cuộc cách mạng thực sự trong cấu trúc của hệ thống máy tính.Hỗ trợ phần cứng đóng một vai trò đặc biệt ở đây.(nhiều cải tiến phần cứng đã xuất hiện ở giai đoạn phát triển trước đó), các tính năng quan trọng nhất được liệt kê dưới đây:

  • Thực hiện các cơ chế bảo vệ. Các chương trình không được có quyền truy cập độc lập vào việc phân bổ tài nguyên, điều này dẫn đến sự xuất hiện của các lệnh đặc quyền và không có đặc quyền. Các lệnh đặc quyền, chẳng hạn như lệnh I/O, chỉ có thể được thực thihệ điều hành. Họ nói nó chạy ở chế độ đặc quyền. Chuyển quyền điều khiển từ chương trình ứng dụng sang hệ điều hành kèm theo sự thay đổi chế độ có kiểm soát. Ngoài ra, đó là tính năng bảo vệ bộ nhớ, cho phép các chương trình người dùng cạnh tranh được tách biệt với nhau và hệ điều hành từ các chương trình của người dùng.
  • Sự hiện diện của sự gián đoạn. Các ngắt bên ngoài thông báo cho hệ điều hành về những gì đã xảy ra không đồng bộ sự kiện, chẳng hạn như một thao tác I/O đã hoàn thành. Ngắt nội bộ (ngày nay họ được gọi làtình huống đặc biệt) xảy ra khi việc thực hiện chương trình dẫn đến tình huống cần can thiệp hệ điều hành , chẳng hạn như chia cho 0 hoặc cố gắng vi phạm bảo mật.
  • Sự phát triển của tính song song trong kiến ​​trúc . Truy cập bộ nhớ trực tiếp và tổ chức các kênh I/O giúp giải phóng bộ nhớ trung tâm CPU từ các hoạt động thường ngày.

Không kém phần quan trọng trong tổ chức đa chương trình vai trò hệ điều hành. Cô chịu trách nhiệm cho các hoạt động sau:

  • Tổ chức giao diện giữa chương trình ứng dụng và Hệ điều hành sử dụng cuộc gọi hệ thống .
  • Xếp hàng công việc trong bộ nhớ và phân bổ bộ xử lý một trong những nhiệm vụ cần thiết là lập kế hoạch sử dụng bộ xử lý
  • Việc chuyển từ công việc này sang công việc khác yêu cầu bảo toàn nội dung của các thanh ghi và cấu trúc dữ liệu cần thiết để hoàn thành công việc, nói cách khác là bối cảnh để đảm bảo quá trình tính toán tiếp tục diễn ra chính xác.
  • Vì bộ nhớ là nguồn tài nguyên có hạn nên cần có các chiến lược quản lý bộ nhớ, nghĩa là cần hợp lý hóa các quy trình đặt, thay thế và truy xuất thông tin từ bộ nhớ.
  • Tổ chức lưu trữ thông tin trên phương tiện bên ngoài dưới dạng tệp và cung cấp quyền truy cập vào tập tin cụ thể chỉ dành cho một số nhóm người dùng nhất định.
  • Vì các chương trình có thể cần thực hiện trao đổi dữ liệu được ủy quyền nên cần phải cung cấp cho chúng phương tiện liên lạc.
  • Để trao đổi dữ liệu chính xác, bạn phải cho phép tình huống xung đột các vấn đề phát sinh khi làm việc với nhiều nguồn lực khác nhau và cung cấp sự phối hợp bằng các chương trình hành động của họ, tức là. cung cấp cho hệ thống các công cụ đồng bộ hóa.

Các hệ thống đa chương trình đã làm cho nó có thể thực hiện được nhiều hơn sử dụng hiệu quả tài nguyên hệ thống(Ví dụ, bộ xử lý , bộ nhớ, thiết bị ngoại vi), nhưng chúng vẫn tồn tại trong một thời gian dài lô hàng . Người dùng không thể tương tác trực tiếp với nhiệm vụ và phải thấy trước mọi tình huống có thể xảy ra bằng cách sử dụng thẻ điều khiển. Các chương trình gỡ lỗi vẫn tốn nhiều thời gian và yêu cầu kiểm tra các bản in nhiều trang về nội dung của bộ nhớ và các thanh ghi hoặc sử dụng tính năng in gỡ lỗi.

Sự ra đời của màn hình tia âm cực và việc xem xét lại việc sử dụng bàn phím đã mang lại giải pháp cho vấn đề này. Sự mở rộng hợp lý của các hệ thống đa chương trình là hệ thống chia sẻ thời gian, hoặc hệ thống chia sẻ thời gian. Họ có bộ xử lý chuyển đổi giữa các tác vụ không chỉ trong các thao tác I/O mà còn đơn giản sau khi một thời gian nhất định trôi qua. Những chuyển đổi này xảy ra thường xuyên đến mức người dùng có thể tương tác với các chương trình của họ trong khi chúng đang chạy, tức là mang tính tương tác. Kết quả là nhiều người dùng có thể làm việc đồng thời trên một hệ thống máy tính. Mỗi người dùng phải có ít nhất một chương trình trong bộ nhớ cho việc này. Để giảm bớt các hạn chế về số lượng người dùng đang làm việc, ý tưởng không đặt hoàn toàn chương trình thực thi trong RAM đã được đưa ra. Phần chính của chương trình nằm trên đĩa và đoạn cần thực thi lúc này có thể được tải vào RAM và phần không cần thiết có thể được tải trở lại đĩa. Điều này được thực hiện bằng cơ chế bộ nhớ ảo. Ưu điểm chính của cơ chế như vậy là tạo ra ảo giác về RAM máy tính không giới hạn.

TRONG hệ thống tách thời gian người dùng có thể gỡ lỗi chương trình một cách hiệu quả ở chế độ tương tác và ghi thông tin vào đĩa mà không cần sử dụng thẻ đục lỗ mà trực tiếp từ bàn phím. Sự xuất hiện của các tập tin trực tuyến dẫn đến nhu cầu phát triển các hệ thống tập tin tiên tiến.

Song song với sự phát triển bên trong của hệ thống máy tính, sự phát triển bên ngoài của chúng cũng diễn ra. Trước khi bắt đầu thời kỳ này, các hệ thống máy tính thường không tương thích. Mọi người đều có cái riêng của mình hệ điều hành, hệ thống lệnh riêng của nó, v.v. Kết quả là một chương trình chạy thành công trên một loại máy phải được viết lại hoàn toàn và gỡ lỗi lại để chạy trên một loại máy tính khác. Vào đầu thời kỳ thứ ba, ý ​​tưởng tạo ra các dòng máy tương thích với phần mềm hoạt động dưới cùng một điều khiển đã xuất hiện.hệ điều hành. Dòng máy tính tương thích với phần mềm đầu tiên được xây dựng trênmạch tích hợp, trở thành dòng máy IBM/360. Được phát triển vào đầu những năm 60, dòng máy này vượt trội hơn đáng kể so với các máy thế hệ thứ hai về mặt giá cả/hiệu suất. Tiếp theo là dòng máy tính PDP, không tương thích với dòng IBM và mẫu hàng đầu trong dòng này là PDP-11.

Sức mạnh của “một gia đình” cũng chính là điểm yếu của nó. Nhiều khả năng khái niệm này (sự hiện diện của tất cả các kiểu máy: từ máy tính mini đến máy khổng lồ; sự phong phú của các thiết bị ngoại vi khác nhau; môi trường khác nhau; nhiều người dùng khác nhau) tạo ra một phức tạp và cồng kềnhhệ điều hành. Hàng triệu dòng ngôn ngữ hội, được viết bởi hàng nghìn lập trình viên, chứa nhiều lỗi, gây ra hàng loạt ấn phẩm về chúng và cố gắng sửa chúng. Chỉ tronghệ điều hànhOS/360 chứa hơn 1000 lỗi đã biết. Tuy nhiên, ý tưởng về tiêu chuẩn hóacác hệ điều hànhđã được giới thiệu rộng rãi vào tâm trí người dùng và sau đó nhận được sự phát triển tích cực.

  1. Giai đoạn thứ tư (từ 1980 đến nay). Những máy tính cá nhân. Hệ thống cổ điển, mạng và phân tán

Giai đoạn tiếp theo trong quá trình phát triển của hệ thống máy tính gắn liền với sự xuất hiện của các hệ thống máy tính lớnmạch tích hợp(BIS). Những năm này chứng kiến ​​sự gia tăng mạnh mẽ về mức độ tích hợp và giá thành của vi mạch giảm. Một máy tính không khác biệt về kiến ​​​​trúc so với PDP-11 về giá cả và tính dễ sử dụng, đã có thể truy cập được đối với một cá nhân chứ không phải đối với một bộ phận của doanh nghiệp hoặc trường đại học. Thời đại của máy tính cá nhân đã đến. Ban đầu, máy tính cá nhân được thiết kế cho một người dùng sử dụng ở chế độ một chương trình, điều này dẫn đến sự xuống cấp về kiến ​​trúc của những máy tính này và hệ thống của chúng.các hệ điều hành(đặc biệt là không cần bảo vệ tập tin và bộ nhớ, lên lịch tác vụ, v.v.).

Máy tính bắt đầu không chỉ được sử dụng bởi các chuyên gia, điều này đòi hỏi phải phát triển phần mềm “thân thiện”.

Tuy nhiên, sự phức tạp và đa dạng ngày càng tăng của các vấn đề được giải quyết trong những máy tính cá nhân, nhu cầu cải thiện độ tin cậy trong công việc của họ đã dẫn đến sự hồi sinhhầu hết tất cả các tính năng đặc trưng của kiến ​​trúc của các hệ thống máy tính lớn.

Vào giữa những năm 80, các mạng máy tính, bao gồm cả máy tính cá nhân, hoạt động dưới sự kiểm soát của mạng hoặc hệ điều hành phân tán.

TRONG hệ điều hành mạngNgười dùng có thể truy cập tài nguyên của một máy tính mạng khác; chỉ họ phải biết về sự hiện diện của chúng và có thể làm như vậy. Mỗi máy trên mạng chạy dưới địa chỉ cục bộ của riêng nóhệ điều hành, khác vớihệ điều hành máy tính độc lập sẵn có các công cụ bổ sung (hỗ trợ phần mềm cho các thiết bị giao diện mạng và quyền truy cập vào tài nguyên từ xa), nhưng những bổ sung này không làm thay đổi cấu trúchệ điều hành.

Hệ thống phân phối, ngược lại, nó trông bình thường hệ thống tự trị. Người dùng không và không nên biết các tập tin của mình được lưu trữ ở đâu trên máy cục bộ hoặc từ xa và nơi các chương trình của anh ta được thực thi. Anh ta thậm chí có thể không biết máy tính của mình có được kết nối mạng hay không. Cơ cấu nội bộhệ điều hành phân táncó sự khác biệt đáng kể so với các hệ thống tự trị.

Trong tương lai, quyền tự chủhệ điều hànhchúng ta sẽ gọi chúng là cổ điểncác hệ điều hành.

Nhìn vào các giai đoạn phát triển của hệ thống máy tính, chúng ta có thể xác định sáu chức năng chính được thực hiện bởi hệ thống máy tính cổ điểnhệ điều hànhtrong quá trình tiến hóa:

  • Lên lịch công việc và sử dụng bộ xử lý
  • Cung cấp các chương trình với phương tiện truyền thông và đồng bộ hóa.
  • Quản lý bộ nhớ.
  • Quản lý hệ thống tập tin.
  • Quản lý I/O.
  • Bảo vệ

Mỗi chức năng trên thường được triển khai dưới dạng một hệ thống con, là một thành phần cấu trúc hệ điều hành. Trong mỗi hệ điều hànhtất nhiên, những chức năng này được thực hiện theo cách riêng của chúng ở những mức độ khác nhau. Ban đầu chúng không được thiết kế như các thành phầncác hệ điều hành, nhưng xuất hiện trong quá trình phát triển, khi hệ thống máy tính trở nên thuận tiện, hiệu quả và an toàn hơn. Sự phát triển của các hệ thống máy tính do con người tạo ra đã đi theo con đường này, nhưng chưa ai chứng minh được rằng đây là con đường khả thi duy nhất cho sự phát triển của chúng.hệ điều hànhtồn tại bởi vì, tại thời điểm này, sự tồn tại của chúng là một cách hợp lý để sử dụng các hệ thống máy tính. Việc xem xét các nguyên tắc và thuật toán chung để thực hiện các chức năng của chúng tạo thành nội dung của hầu hết khóa học của chúng tôi, trong đó các hệ thống con được liệt kê sẽ được mô tả một cách nhất quán.

  1. Các khái niệm cơ bản, khái niệm hệ điều hành

Trong quá trình tiến hóa đã nảy sinhmột số khái niệm quan trọng, đã trở thành một phần không thể thiếu của lý thuyết và thực hành hệ điều hành . Bao gồm trong phần này các khái niệm sẽ được gặp và giải thích trong suốt khóa học. Dưới đây là một mô tả ngắn gọn về họ.

  1. Cuộc gọi hệ thống

Tại bất kỳ hệ điều hànhhỗ trợ cơ chế cho phép các chương trình người dùng truy cập các dịch vụ kernel hệ điều hành. TRONG các hệ điều hànhmáy tính nổi tiếng nhất của Liên Xô BESM-6, phương tiện “giao tiếp” tương ứng với kernel được gọi là ngoại mã, trongcác hệ điều hànhIBM gọi chúng là macro hệ thống, v.v. TRONG hệ điều hành Unix những công cụ như vậy được gọi làcuộc gọi hệ thống.

Cuộc gọi hệ thống(cuộc gọi hệ thống ) đây là giao diện giữahệ điều hànhvà chương trình người dùng. Họ tạo, xóa và sử dụng các đồ vật khác nhau, cái chính là các tiến trình và tập tin.

Chương trình người dùng yêu cầu một dịch vụ từhệ điều hành bằng cách thực hiện cuộc gọi hệ thống. Có các thư viện thủ tục tải các thanh ghi máy với các tham số nhất định và thực hiện ngắt CPU , sau đó quyền điều khiển được chuyển giao cho người xử lý việc này gọi , bao gồm trong lõihệ điều hành. Mục đích của các thư viện như vậy là tạo ra cuộc gọi hệ thống tương tự như bình thường cuộc gọi chương trình con.

Sự khác biệt chính là khicuộc gọi hệ thốngTác vụ sẽ chuyển sang chế độ đặc quyền hoặc chế độ kernel. Đó là lý do tại saocuộc gọi hệ thốngđôi khi còn được gọi là ngắt phần mềm, trái ngược với ngắt phần cứng thường được gọi đơn giản hơn sự gián đoạn

Mã kernel chạy ở chế độ nàyhệ điều hành, và nó được thực thi trong không gian địa chỉ và trongbối cảnh của nhiệm vụ gây ra nó. Vì vậy cốt lõihệ điều hànhNó có toàn quyền truy cập vào bộ nhớ chương trình của người dùng và khicuộc gọi hệ thốngchỉ cần chuyển địa chỉ của một hoặc một số vùng bộ nhớ có tham số là đủ gọi và địa chỉ của một hoặc nhiều vùng bộ nhớ cho kết quả gọi

Phần lớn cuộc gọi hệ điều hànhđược thực hiện bởi nhóm phần mềm ngắt (INT). Phần mềm gián đoạn Đây là sự kiện đồng bộ có thể được lặp lại khi cùng một mã chương trình được thực thi.

  1. Ngắt

Ngắt phần cứng ) đây là một sự kiện được tạo ra bên ngoài (so với bộ xử lý ) thiết bị. Thông qua phần cứng ngắt quãng thiết bị hoặc thông báo cho trung tâm CPU chỉ ra rằng một sự kiện đã xảy ra yêu cầu phản hồi ngay lập tức (ví dụ: người dùng đã nhấn một phím) hoặc báo cáo việc hoàn thành thao tác I/O không đồng bộ (ví dụ: dữ liệu đã được đọc từ đĩa vào bộ nhớ chính). Loại phần cứng quan trọng ngắt ngắt bộ định thời được tạo định kỳ sau một khoảng thời gian cố định. Ngắt bộ hẹn giờ được sử dụnghệ điều hànhkhi lập kế hoạch cho quá trình. Mỗi loại phần cứng ngắt quãng Nó có số riêng, xác định duy nhất nguồn ngắt quãng Ngắt phần cứng đây là một sự kiện không đồng bộ, nghĩa là nó xảy ra bất kể mã nào đang được thực thi bộ xử lý Ngay bây giờ. Xử lý phần cứng ngắt quãng không nên tính đến quá trình nào là hiện tại.

  1. Tình huống đặc biệt

Tình huống đặc biệt(ngoại lệ) một sự kiện xảy ra do chương trình cố gắng thực thi một lệnh mà vì lý do nào đó không thể hoàn thành để hoàn thành. Ví dụ về các lệnh như vậy bao gồm cố gắng truy cập tài nguyên mà không có đủ đặc quyền hoặc truy cập trang bộ nhớ bị thiếu.

Tình huống đặc biệt, cũng như cuộc gọi hệ thống, là sự kiện đồng bộ, phát sinh trong bối cảnh của nhiệm vụ hiện tại.Tình huống đặc biệtcó thể được chia thành có thể sửa được và không thể sửa được. Những cái có thể sửa được bao gồm:tình huống đặc biệt, vì thiếu thông tin cần thiết trong RAM. Sau khi loại bỏ nguyên nhân thì có thể khắc phục đượctình huống đặc biệtchương trình có thể tiếp tục chạy. Xảy ra trong quá trình làm việchệ điều hành sửa chữa được tình huống đặc biệtđược coi là bình thường. không thể sửa chữatình huống đặc biệtthường phát sinh nhất do lỗi trong chương trình (ví dụ: chia cho 0). Thông thường trong những trường hợp như vậyhệ điều hànhphản ứng bằng cách chấm dứt chương trình gọi nótình huống đặc biệt.

  1. Các tập tin

Các tệp nhằm mục đích lưu trữ thông tin trên phương tiện bên ngoài, nghĩa là người ta chấp nhận rằng thông tin được ghi, chẳng hạn như trên đĩa, phải nằm bên trong tệp. Thông thường, một tệp được hiểu là một phần không gian được đặt tên trên phương tiện lưu trữ.

nhiệm vụ chinh hệ thống tập tin (hệ thống tập tin ) ẩn các tính năng I/O và cung cấp cho người lập trình một mô hình trừu tượng đơn giản của các tệp độc lập với thiết bị.

Ngoài ra còn có một danh mục mở rộng để đọc, tạo, xóa, ghi, mở và đóng tệpcuộc gọi hệ thống(tạo, xóa, mở, đóng, đọc, v.v.). Người dùng đã quen thuộc với các khái niệm tổ chức hệ thống tệp như thư mục, thư mục hiện tại, thư mục gốc và đường dẫn.Để thao tác các đối tượng này tronghệ điều hành có sẵn cuộc gọi hệ thống.

  1. Tiến trình, chủ đề

Khái niệm quy trình trong hệ điều hành một trong những thứ nhấtcơ bản. Liên quan đến chúng là các khái niệm về luồng hoặc các tiến trình nhẹ.

  1. Đặc điểm kiến ​​trúc hệ điều hành

Cho đến nay người ta đã nói rằng tôi làm vậy hệ điều hành. Cần phải tưởng tượng họ làm điều này như thế nào và từ bên trong họ như thế nào, những cách tiếp cận nào đối với việc xây dựng của họ.

  1. lõi nguyên khối

Trong thực tế, hệ điều hànhcái này chương trình thường xuyên, vì vậy sẽ hợp lý nếu tổ chức nó theo cách giống như hầu hết các chương trình được tổ chức, nghĩa là bao gồm các thủ tục và hàm. Trong trường hợp này các thành phầnhệ điều hànhkhông mô-đun độc lập, MỘT các thành phần một chương trình lớn. Cấu trúc nàyhệ điều hành gọi điện lõi nguyên khối(hạt nhân nguyên khối). lõi nguyên khối là một tập hợp các thủ tục, mỗi thủ tục có thể gọi từng thủ tục. Tất cả các thủ tục chạy ở chế độ đặc quyền.

Vì vậy, một hạt nhân nguyên khối đây là một kế hoạch như vậyhệ điều hành, trong đó tất cả các thành phần của nó là thành phần của một chương trình, hãy sử dụng cấu trúc chung dữ liệu và tương tác với nhau bằng cách gọi trực tiếp các thủ tục.Đối với nguyên khối hệ điều hànhlõi trùng với toàn bộ hệ thống.

Ở nhiều nơi các hệ điều hành Với lõi nguyên khối lắp ráp hạt nhân, tức là quá trình biên dịch của nó , được thực hiện riêng cho từng máy tính được cài đặt nóhệ điều hành. Trong trường hợp này, bạn có thể chọn danh sách các giao thức phần cứng và phần mềm, hỗ trợ cho những giao thức này sẽ được bao gồm trong kernel. Vì kernel là một chương trình đơn lẻ nên việc biên dịch lại là cách duy nhất để thêm các thành phần mới vào nó hoặc loại bỏ những thành phần không sử dụng. Cần lưu ý rằng sự hiện diện của các thành phần không cần thiết trong lõi là điều cực kỳ không mong muốn, vì giống như cốt lõi luôn nằm hoàn toàn trong RAM. Ngoài ra, việc loại bỏ các thành phần không cần thiết sẽ cải thiện độ tin cậyhệ điều hành nói chung là.

lõi nguyên khối – cách cổ xưa nhất tổ chứccác hệ điều hành. Ví dụ về hệ thống cólõi nguyên khốilà hầu hết các hệ thống Unix.

Ngay cả trong các hệ thống nguyên khối, một số cấu trúc có thể được nhận ra. Giống như trong một khối bê tông, người ta có thể phân biệt được các tạp chất của đá dăm, cũng vậy trong lõi nguyên khối thủ tục dịch vụ xen kẽ tương ứng vớicuộc gọi hệ thống. Các thủ tục dịch vụ được thực thi ở chế độ đặc quyền, trong khi các chương trình người dùng được thực thi ở chế độ không có đặc quyền. Để chuyển từ cấp đặc quyền này sang cấp đặc quyền khác, đôi khi có thể sử dụng một chương trình tiện ích chính để xác định cấp nào cuộc gọi hệ thống đã được thực hiện, tính chính xác của dữ liệu đầu vào cho việc này gọi và chuyển quyền điều khiển sang quy trình dịch vụ tương ứng bằng cách chuyển sang chế độ vận hành đặc quyền. Đôi khi còn có một bộ phần mềm tiện ích giúp thực hiện các quy trình dịch vụ.

  1. Hệ thống phân lớp

Tiếp tục cấu trúc, có thể chia toàn bộ hệ thống máy tính thành một số cấp độ nhỏ hơn với hiệu suất tốt kết nối nhất định giữa chúng, do đó các đối tượng cấp N chỉ có thể gọi các đối tượng cấp N-1. Mức thấp nhất trong các hệ thống như vậy thường là phần cứng, cấp cao nhất giao diện người dùng. Cấp độ càng thấp thì các lệnh và hành động mà mô-đun ở cấp độ này có thể thực hiện càng có nhiều đặc quyền. Cách tiếp cận này lần đầu tiên được áp dụng khi Dijkstra và các học trò của ông tạo ra hệ thống THE (Technishe Hogeschool Eindhoven) vào năm 1968. Hệ thống này có các cấp độ sau:

Cơm. 1.2. Hệ thống lớp

Hệ thống lớp được thực hiện tốt. Khi sử dụng các thao tác lớp thấp hơn, bạn không cần biết chúng được triển khai như thế nào, bạn chỉ cần hiểu chúng làm gì. Hệ thống lớp được thử nghiệm tốt. Việc gỡ lỗi bắt đầu từ lớp dưới cùng và được thực hiện từng lớp một. Khi xảy ra lỗi, chúng ta có thể chắc chắn rằng lỗi đó nằm ở lớp đang được kiểm tra. Hệ thống phân lớp có thể dễ dàng sửa đổi. Nếu cần, bạn chỉ có thể thay thế một lớp mà không cần chạm vào các lớp khác. Nhưng các hệ thống phân lớp rất khó phát triển: khó xác định chính xác thứ tự của các lớp và cái gì thuộc về lớp nào. Các hệ thống phân lớp kém hiệu quả hơn các hệ thống nguyên khối. Vì vậy, ví dụ, để thực hiện các thao tác I/O, chương trình người dùng sẽ phải tuần tự đi qua tất cả các lớp từ trên xuống dưới.

  1. Máy ảo

Khi bắt đầu bài giảng chúng ta đã nói về việc xem xéthệ điều hành Làm thế nào máy ảokhi người dùng không cần biết chi tiết về cấu trúc bên trong của máy tính. Nó hoạt động với các tập tin, không phải với đầu từ và động cơ; nó hoạt động với RAM ảo lớn thay vì RAM thực hạn chế; anh ấy không quan tâm lắm liệu anh ấy có phải là người dùng duy nhất trên máy hay không. Hãy xem xét một cách tiếp cận hơi khác một chút. Cho phép hệ điều hành dụng cụ máy ảođối với mỗi người dùng, nhưng không làm cho cuộc sống của họ dễ dàng hơn mà ngược lại, còn làm phức tạp nó. Mỗi người đều như thế nàymáy ảoxuất hiện với người dùng dưới dạng kim loại trần, một bản sao của tất cả phần cứng trong hệ thống máy tính, bao gồm cả CPU , các lệnh đặc quyền và không có đặc quyền, thiết bị đầu vào/đầu ra, ngắt quãng vân vân. Và anh ta bị bỏ lại một mình với bàn ủi này. Khi cố gắng truy cập phần cứng ảo như vậy ở cấp lệnh đặc quyền, điều thực sự xảy ra là cuộc gọi hệ thống thực sự hệ điều hành, thực hiện tất cả các hành động cần thiết. Cách tiếp cận này cho phép mỗi người dùng tải lênhệ điều hành TRÊN máy ảovà làm với cô ấy bất cứ điều gì trái tim bạn mong muốn

Cơm. 1.3. Lựa chọn máy ảo

Đầu tiên hệ thống thực Loại hệ thống này là CP/CMS, hay VM/370, như ngày nay được gọi, dành cho dòng máy IBM/370.

Nhược điểm như vậycác hệ điều hànhlà sự giảm hiệu quảmáy ảoso với một máy tính thật và chúng có xu hướng rất cồng kềnh. Ưu điểm nằm ở việc sử dụng trên một hệ thống máy tính các chương trình được viết cho nhiều mục đích khác nhau.các hệ điều hành.

  1. Kiến trúc vi hạt nhân

Xu hướng phát triển hiện naycác hệ điều hànhbao gồm việc chuyển một phần quan trọng của mã hệ thống sang cấp độ người dùng và đồng thời giảm thiểu hạt nhân.Chúng ta đang nói về một cách tiếp cận để xây dựng một hạt nhân được gọi làkiến trúc vi hạt nhân(kiến trúc vi hạt nhân) hệ điều hành, khi hầu hết các thành phần của nó chương trình độc lập. Trong trường hợp này, sự tương tác giữa chúng được đảm bảo bởi một mô-đun hạt nhân đặc biệt gọi là vi hạt nhân . Microkernel hoạt động ở chế độ đặc quyền và đảm bảo sự tương tác giữa các chương trình và lập lịch sử dụng bộ xử lý , xử lý sơ cấp ngắt quãng , các thao tác vào/ra và điều khiển cơ bản ký ức.

Cơm. 1.4. Kiến trúc hệ điều hành vi nhân

Các thành phần còn lại của hệ thống giao tiếp với nhau bằng cách truyền tin nhắn qua vi hạt nhân.

Ưu điểm chínhkiến trúc vi hạt nhânmức độ mô đun cốt lõi caohệ điều hành. Điều này làm cho việc thêm các thành phần mới vào nó dễ dàng hơn nhiều. Trong vi hạt nhânhệ điều hànhbạn có thể, mà không làm gián đoạn hoạt động của nó, tải và dỡ bỏ trình điều khiển, hệ thống tệp mới, v.v. Quá trình gỡ lỗi các thành phần hạt nhân được đơn giản hóa rất nhiều, vì phiên bản mới của trình điều khiển có thể được tải mà không cần khởi động lại toàn bộhệ điều hành. Thành phần hạt nhânhệ điều hànhvề cơ bản không khác biệt gì với các chương trình của người dùng, vì vậy bạn có thể sử dụng các công cụ thông thường để gỡ lỗi chúng.Kiến trúc vi hạt nhântăng độ tin cậy của hệ thống vì lỗi ở cấp chương trình không có đặc quyền sẽ ít nguy hiểm hơn lỗi ở cấp chế độ kernel.

Trong cùng thời gian kiến trúc hệ điều hành vi nhânđưa ra thêm chi phí liên quan đến việc truyền tin nhắn, điều này ảnh hưởng đáng kể đến hiệu suất. Để có vi hạt nhânhệ điều hànhkhông thua kém về tốc độcác hệ điều hành trên cơ sở lõi nguyên khối, bạn cần phải thiết kế rất cẩn thận việc phân chia hệ thống thành các thành phần, cố gắng giảm thiểu sự tương tác giữa chúng. Vì vậy, khó khăn chính trong việc tạo ra các vi hạtcác hệ điều hànhsự cần thiết phải thiết kế rất cẩn thận.

  1. Hệ thống hỗn hợp

Tất cả các phương pháp được coi là để xây dựngcác hệ điều hànhcó những ưu điểm và nhược điểm của chúng. Trong hầu hết các trường hợp hiện đạihệ điều hànhsử dụng kết hợp khác nhau những cách tiếp cận này. Vì vậy, ví dụ, hạt nhânhệ điều hànhLinux là một hệ thống nguyên khối với các thành phầnkiến trúc vi hạt nhân. Khi biên dịch kernel, bạn có thể kích hoạt tính năng tải và dỡ tải động của nhiều thành phần kernel, được gọi là mô-đun. Khi một mô-đun được tải, mã của nó sẽ được tải ở cấp hệ thống và được liên kết với phần còn lại của kernel. Bất kỳ hàm nào được kernel xuất đều có thể được sử dụng bên trong một mô-đun.

Một ví dụ khác về cách tiếp cận hỗn hợp là khả năng khởi độnghệ điều hành Với lõi nguyên khốiđược điều khiển bởi một vi hạt nhân. Đây là cách 4.4BSD và MkLinux, dựa trên vi nhân Mach, được thiết kế. Hạt nhân vi mô cung cấp khả năng quản lý bộ nhớ ảo và trình điều khiển cấp thấp. Tất cả các chức năng khác, bao gồm cả tương tác với các chương trình ứng dụng, đều được thực hiệnlõi nguyên khối. Cách tiếp cận nàyđược hình thành do những nỗ lực lợi dụngkiến trúc vi hạt nhân, giữ cho mã được gỡ lỗi tốt nhất có thểlõi nguyên khối.

Các yếu tố chặt chẽ nhấtkiến trúc vi hạt nhân và các yếu tố lõi nguyên khốiđan xen trong nhân Windows NT. Mặc dù Windows NT thường được gọi là microkernelhệ điều hành, Điều này không hoàn toàn đúng. Hạt nhân NT quá lớn (hơn 1 MB) để mang tiền tố "vi mô". Các thành phần Nhân Windows NT được đặt trong bộ nhớ có sẵn và tương tác với nhau bằng cách truyền tin nhắn, như mong đợi trong vi hạt nhâncác hệ điều hành. Đồng thời, tất cả các thành phần kernel hoạt động trong cùng một không gian địa chỉ và tích cực sử dụng các cấu trúc dữ liệu chung, điển hình làcác hệ điều hành Với lõi nguyên khối. Theo các chuyên gia của Microsoft, lý do rất đơn giản: một thiết kế thuần túy vi nhân sẽ không mang lại lợi nhuận về mặt thương mại vì nó không hiệu quả.

Vì vậy, Windows NT có thể được gọi một cách chính đáng là hybridhệ điều hành

  1. Phân loại hệ điều hành

Có một số sơ đồ phân loạicác hệ điều hành. Dưới đây là phân loại dựa trên một số đặc điểm theo quan điểm của người dùng.

  1. Thực hiện đa nhiệm

Theo số lượng nhiệm vụ được thực hiện đồng thờihệ điều hànhcó thể chia thành hai lớp:

  • đa nhiệm (Unix, OS/2, Windows);
  • tác vụ đơn lẻ (ví dụ: MS-DOS).

Hệ điều hành đa nhiệm, giải quyết bài toán phân bổ nguồn lực và cạnh tranh, thực hiện đầy đủ cơ chế đa chương trình theo yêu cầu của phần “Các khái niệm, khái niệm cơ bản hệ điều hành".

Chế độ đa nhiệm, thể hiện ý tưởng chia sẻ thời gian, được gọi là ưu tiên. Mỗi chương trình được phân bổ một lượng tử bộ xử lý thời điểm sau đó quyền điều khiển được chuyển sang chương trình khác. Họ nói rằng chương trình đầu tiên sẽ được thay thế. Hầu hết các chương trình người dùng thương mại đều hoạt động ở chế độ ưu tiên. hệ điều hành.

Trên một số hệ điều hành (ví dụ: Windows 3.11) một chương trình người dùng có thể độc quyền CPU , nghĩa là làm việc ở chế độ không dịch chuyển. Theo quy định, trong hầu hết các hệ thống, bản thân mã không được ưu tiên. hệ điều hành . Các chương trình quan trọng, đặc biệt là các tác vụ thời gian thực, cũng không được ưu tiên. Điều này được thảo luận chi tiết hơn trong bài giảng về lập kế hoạch công việc bộ xử lý

Dựa trên các ví dụ đã cho, người ta có thể đánh giá bản chất gần đúng của việc phân loại. Vì vậy, trong hệ điều hành MS-DOS có thể tổ chức khởi chạy một tác vụ con và sự hiện diện của hai hoặc nhiều tác vụ trong bộ nhớ cùng một lúc. Tuy nhiên, điều này hệ điều hành theo truyền thống được coi là đơn nhiệm, chủ yếu là do thiếu cơ chế phòng thủ và khả năng liên lạc.

  1. Hỗ trợ nhiều người dùng

Theo số lượng người dùng đồng thời hệ điều hành có thể được chia thành:

  • người dùng đơn (MS-DOS, Windows 3.x);
  • nhiều người dùng(Windows NT, Unix).

Sự khác biệt đáng kể nhất giữa những hệ điều hành nằm trong sự hiện diện củahệ thống nhiều người dùngcơ chế bảo vệ dữ liệu cá nhân của mỗi người dùng.

  1. Đa xử lý

Cho đến gần đây, các hệ thống máy tính có một bộ xử lý . Do nhu cầu nâng cao năng suất,hệ thống đa bộ xử lý, gồm có hai hoặc nhiều hơn bộ vi xử lý mục đích chung, thực hiện song song các lệnh. Hỗ trợ đa xử lý là một tính năng quan trọng hệ điều hành và dẫn đến sự phức tạp của tất cả các thuật toán quản lý tài nguyên. Đa xử lý được thực hiện theo cách như vậy hệ điều hành , như Linux, Solaris, Windows NT và một số khác.

Hệ điều hành đa xử lýchia thành đối xứng và bất đối xứng. Đối xứng Hệ điều hành trên mỗi bộ xử lý các chức năng cốt lõi giống nhau và tác vụ có thể được thực thi trên bất kỳ bộ xử lý , nghĩa là việc xử lý được phân quyền hoàn toàn. Đồng thời, mỗi bộ vi xử lý tất cả bộ nhớ đều có sẵn.

Trong bộ xử lý hệ điều hành bất đối xứng không cân bằng. Thường có một chính CPU (chủ) và cấp dưới (nô lệ), khối lượng công việc và tính chất của chúng do chủ quyết định bộ xử lý .

  1. Hệ thống thời gian thực

Trong thứ hạng hệ điều hành đa nhiệm, cùng với hệ thống góihệ thống chia sẻ thời gian, cũng được bao gồmhệ thống thời gian thực, điều mà cho đến nay vẫn chưa được đề cập đến.

Chúng được sử dụng để điều khiển các đối tượng kỹ thuật khác nhau hoặc quy trình công nghệ. Các hệ thống như vậy được đặc trưng bởi thời gian phản hồi tối đa cho phép đối với một sự kiện bên ngoài, trong thời gian đó chương trình điều khiển đối tượng phải được thực thi. Hệ thống phải xử lý dữ liệu đến nhanh hơn mức có thể đến và từ nhiều nguồn cùng một lúc.

Những hạn chế nghiêm ngặt như vậy ảnh hưởng đến kiến ​​trúchệ thống thời gian thực, ví dụ, chúng có thể bị thiếu bộ nhớ ảo, sự hỗ trợ của nó gây ra sự chậm trễ khó lường trong việc thực hiện chương trình. (Xem thêm các phần liên quan đến lập kế hoạch xử lý và triển khai bộ nhớ ảo.)

Sự phân loại đã cho hệ điều hành không đầy đủ. Chi tiết hơn, các tính năng của việc sử dụng hiện đại Hệ điều hành được xem xét trong Olifer, 2001].

Môi trường hoạt động là một tập hợp các chương trình hệ thống, mục đích chính của nó là cung cấp cho người dùng giao diện người dùng ( giao diện người dùng ) và giao diện phần mềm ( API ), vượt trội đáng kể về khả năng của chúng so với các giao diện tương tự do hệ điều hành cung cấp. Tính năng đặc biệt môi trường hoạt động là nó được xây dựng dựa trên hệ điều hành hiện có, tức là hoạt động của nó là không thể nếu không có hệ điều hành này.

Hệ điều hành là một tập hợp các chương trình hệ thống cung cấp giao diện thân thiện với người dùng ( giao diện người dùng ) với một hệ điều hành vượt trội hơn về mặt này hay cách khác (thường ở mức độ phi thủ tục và gần với ngôn ngữ hoạt động nghề nghiệp của người dùng) các công cụ giao diện người dùng tương tự do chính HĐH cung cấp.

  1. Phần kết luận

Chúng tôi đã xem xét các quan điểm khác nhau về nó là gìhệ điều hành; nghiên cứu lịch sử phát triểncác hệ điều hành; đã tìm ra những chức năng họ thường thực hiệnhệ điều hành; cuối cùng đã tìm ra cách tiếp cận xây dựng nào tồn tạicác hệ điều hành. Chúng tôi sẽ dành bài giảng tiếp theo để làm rõ khái niệm “quy trình” và các vấn đề về lập kế hoạch quy trình.

  1. Phụ lục 1.
    1. Một số thông tin về kiến ​​trúc máy tính

Các thành phần phần cứng chính của máy tính là: bộ nhớ chính, bộ nhớ trung tâm CPU và các thiết bị ngoại vi. Để trao đổi dữ liệu với nhau, các thành phần này được kết nối bằng một nhóm dây gọi là đường trục (xem Hình 2). Hình.1.5).

Cơm. 1.5. Một số linh kiện máy tính

Bộ nhớ chính được sử dụng để lưu trữ các chương trình và dữ liệu ở dạng nhị phân và được tổ chức dưới dạng một mảng các ô có thứ tự, mỗi ô có một địa chỉ kỹ thuật số duy nhất. Thông thường, kích thước ô là một byte. Các hoạt động điển hình trên bộ nhớ chính: đọc và ghi nội dung của một ô có địa chỉ cụ thể.

Hiệu suất hoạt động khác nhau dữ liệu được xử lý bởi một bộ phận biệt lập của máy tính gọi là trung tâm bộ xử lý (CPU). CPU cũng có các vị trí lưu trữ được gọi là các thanh ghi. Chúng được chia thành các thanh ghi mục đích chung và các thanh ghi chuyên dụng. Trong các máy tính hiện đại, dung lượng thanh ghi thường là 48 byte. Các thanh ghi mục đích chung được sử dụng để lưu trữ tạm thời dữ liệu và kết quả hoạt động. Để xử lý thông tin, dữ liệu thường được chuyển từ ô nhớ sang các thanh ghi đa năng và hoạt động được thực hiện bởi bộ điều khiển trung tâm. bộ xử lý và chuyển kết quả của thao tác vào bộ nhớ chính.

Các thanh ghi chuyên dụng được sử dụng để điều khiển hoạt động bộ xử lý . Quan trọng nhất là: bộ đếm chương trình, thanh ghi lệnh và thanh ghi chứa thông tin trạng thái chương trình.

Các chương trình được lưu trữ dưới dạng một chuỗi các lệnh máy phải được thực thi bởi bộ điều khiển trung tâm CPU . Mỗi lệnh bao gồm một trường thao tác và các trường toán hạng, tức là dữ liệu mà thao tác được thực hiện. Toàn bộ tập lệnh máy được gọi là ngôn ngữ máy.

Chương trình được thực hiện như sau. Lệnh máy được trỏ tới bởi bộ đếm chương trình được đọc từ bộ nhớ và sao chép vào thanh ghi lệnh. Ở đây nó được giải mã và sau đó được thực thi. Sau khi lệnh được thực thi, bộ đếm chương trình trỏ tới lệnh tiếp theo. Những hành động này, được gọi là chu trình máy, sau đó được lặp lại.

  1. Tương tác với các thiết bị ngoại vi

Các thiết bị ngoại vi được thiết kế để nhập và xuất thông tin. Mỗi thiết bị thường bao gồm một máy tính chuyên dụng gọi là bộ điều khiển hoặc bộ chuyển đổi. Khi bộ điều khiển được cắm vào đầu nối trên bo mạch chủ, nó kết nối với bus và nhận được một số (địa chỉ) duy nhất. Bộ điều khiển sau đó giám sát các tín hiệu trên bus và phản hồi các tín hiệu gửi đến nó.

Mọi thao tác I/O đều liên quan đến cuộc đối thoại giữa CPU và bộ điều khiển thiết bị. Khi bộ xử lý Khi gặp lệnh liên quan đến I/O như một phần của chương trình, nó sẽ thực thi lệnh đó bằng cách gửi tín hiệu đến bộ điều khiển thiết bị. Đây được gọi là I/O có thể lập trình.

Đổi lại, bất kỳ thay đổi nào đối với các thiết bị bên ngoài đều dẫn đến việc truyền tín hiệu từ thiết bị đến CPU. Theo quan điểm của CPU, đây là một sự kiện không đồng bộ và cần có phản hồi của nó. Để phát hiện sự kiện như vậy, giữa các chu kỳ máy CPU truy vấn một sổ đăng ký đặc biệt, chứa thông tin về loại thiết bị tạo ra tín hiệu. Nếu có tín hiệu thì CPU sẽ thực hiện một tác vụ cụ thể của thiết bị này một chương trình có nhiệm vụ phản ứng với sự kiện này một cách thích hợp (ví dụ: nhập một ký tự được nhập từ bàn phím vào bộ đệm đặc biệt). Chương trình như vậy được gọi là chương trình xử lý ngắt và bản thân sự kiện đó là một gián đoạn , bởi vì nó làm gián đoạn công việc theo kế hoạch bộ xử lý . Sau khi xử lý xongbộ xử lý bị gián đoạnquay trở lại việc thực hiện chương trình. Những hành động này của máy tính được gọi là đầu vào/đầu ra bằng cách sử dụng ngắt quãng

Các máy tính hiện đại còn có khả năng giao tiếp trực tiếp giữa bộ điều khiển và bộ nhớ chính, bỏ qua CPU, hay còn gọi là cơ chế truy cập bộ nhớ trực tiếp.

Câu hỏi

  1. Mục đích của hệ điều hành trong máy tính;
  2. Sơ lược về lịch sử phát triển của hệ thống máy tính và hệ điều hành;
  3. Các định nghĩa về lý thuyết và thực hành hệ điều hành: lệnh gọi hệ thống, ngắt, ngoại lệ, tệp;
  4. Phân loại hệ điều hành

Khác tác phẩm tương tựđiều đó có thể bạn quan tâm.vshm>

13757. Tạo hệ thống mạng để thử nghiệm hỗ trợ khóa học điện tử Hệ điều hành (sử dụng ví dụ về shell công cụ Joomla) 1,83 MB
Chương trình biên soạn bài kiểm tra sẽ cho phép bạn làm việc với các câu hỏi ở dạng điện tử và sử dụng tất cả các loại thông tin sốđể hiển thị nội dung câu hỏi. Mục đích của công việc của khóa học là tạo ra mô hình hiện đại dịch vụ web để kiểm tra kiến ​​thức bằng cách sử dụng các công cụ phát triển web và triển khai phần mềm để làm việc hiệu quả Hệ thống thử nghiệm bảo vệ chống sao chép thông tin và gian lận trong quá trình kiểm soát kiến ​​thức, v.v. Hai điều cuối cùng có nghĩa là tạo điều kiện bình đẳng cho tất cả việc vượt qua kiểm soát kiến ​​thức, không thể gian lận và...
6179. CÁC HỆ ĐIỀU HÀNH 13,01 KB
Để xem xét các chức năng của hệ điều hành, mọi người có thể chia thành hai nhóm: người dùng và lập trình viên, ở đây khái niệm về người dùng bị hạn chế hơn so với sự hiểu biết về người dùng như bất kỳ người nào giao tiếp với máy tính. Một lập trình viên của một hệ điều hành yêu cầu một bộ công cụ có thể giúp anh ta phát triển và gỡ lỗi sản phẩm cuối cùng của chương trình. Dòng lệnh là dòng màn hình bắt đầu bằng dấu nhắc của hệ điều hành.
9146. Giới thiệu về hệ điều hành 11,94 KB
Hệ điều hành. Định nghĩa và mục đích. Chức năng của các hệ điều hành. Những phẩm chất cơ bản của hệ điều hành. Các thế hệ hệ điều hành Đánh giá ngắn hệ điều hành hiện đại. Phân loại hệ điều hành theo tính năng thuật toán quản lý tài nguyên, tính năng nền tảng phần cứng, tính năng lĩnh vực sử dụng.
10804. Tổn thương dị ứng niêm mạc miệng ở trẻ em 47,16 KB
Đặc điểm động cơ của chủ đề bài học: như một kết quả bài học thực hành thực tập sinh phải có được các kỹ năng lý thuyết và thực hành sau đây: học các kiến ​​thức cơ bản và phương pháp bổ sung nghiên cứu trẻ em bị tổn thương dị ứng ở niêm mạc miệng; dựa trên dữ liệu thu được và tiền sử bệnh, có thể đưa ra chẩn đoán sơ bộ; lập kế hoạch điều trị có tính đến độ tuổi của trẻ; biết chỉ định và chống chỉ định sử dụng thuốc điều trị bệnh lý này. Điều này có vẻ là do ô nhiễm...
2622. Sinh thái học của vi sinh vật, môi trường sinh thái của chúng. Ảnh hưởng của các yếu tố vật lý, hóa học môi trường đến vi sinh vật 41,12 KB
Tác động của các yếu tố vật lý và hóa học môi trườngảnh hưởng của các yếu tố vật lý đến vi sinh vật.Ảnh hưởng của các yếu tố hóa học đến vi sinh vật. Sự phân bố của vi sinh vật trong tự nhiên Trong tự nhiên, vi sinh vật cư trú ở hầu hết mọi môi trường, đất, không khí, nước và phân bố rộng rãi hơn nhiều so với các sinh vật khác.
8621. Ngôn ngữ lập trình. Các hệ thống lập trình. Môi trường thiết kế trực quan 21,13 KB
Bsic là ngôn ngữ có cả trình biên dịch và trình thông dịch, nó đứng đầu thế giới về mức độ phổ biến. Ngôn ngữ này đứng thứ hai về mức độ phổ biến sau Bsic. Các môi trường sau đây hiện đang phổ biến nhất lập trình trực quan cho ngôn ngữ...
16438. Phân tích môi trường hoạt động 39,84 KB
Tất cả các chỉ số này được gọi là chỉ số hiệu suất một chiều riêng tư. Các công nghệ khách quan hơn để đánh giá hiệu quả của các hệ thống phức tạp chỉ xuất hiện vào nửa sau thế kỷ 20. Hiện được sử dụng rộng rãi trên toàn thế giới như một công cụ để phân tích hiệu quả của các hệ thống kinh tế xã hội phức tạp, các công ty dầu mỏ lớn, ngân hàng, công ty sản xuất, nhà ở và dịch vụ xã, trường đại học, bệnh viện và các tổ chức thương mại và phi lợi nhuận khác. Đồng thời, Farrell xác định các loại sau...
342. Môi trường lập trình 14,75 KB
Trước hết, môi trường lập trình công cụ chứa một trình soạn thảo văn bản cho phép bạn xây dựng các chương trình bằng một ngôn ngữ lập trình nhất định; các công cụ cho phép bạn biên dịch hoặc giải thích các chương trình bằng ngôn ngữ này, cũng như kiểm tra và gỡ lỗi các chương trình kết quả. Các loại công cụ lập trình sau đây được phân biệt, xem: Các công cụ lập trình đa năng chứa một bộ Công cụ phần mềm hỗ trợ phát triển các chương trình về ngôn ngữ khác nhau lập trình chẳng hạn...
561. Chất lượng môi trường sống 5,35 KB
Chất lượng môi trường sống Chất lượng môi trường sống là mức độ mà các thông số môi trường đáp ứng được nhu cầu của con người và các sinh vật sống khác. Yêu cầu của họ về chất lượng môi trường sống khá thận trọng, do đó chất lượng của tầng kỹ thuật không được khác biệt đáng kể so với môi trường tự nhiên. Do tác động đáng kể của con người, sự suy thoái thảm thực vật xảy ra ở hầu hết các thành phố, làm cho tình trạng môi trường đô thị trở nên tồi tệ hơn. Ô nhiễm môi trường với các chất độc hại đang dần làm giảm chất lượng thực phẩm và nước uống...
522. Nhận thức về môi trường sống. Máy phân tích 5,11 KB
Nhận thức về môi trường sống. Máy phân tích Một người cần thông tin liên tục về trạng thái và những thay đổi môi trường bên ngoài và xử lý thông tin này. Máy phân tích cung cấp khả năng thu thập thông tin về môi trường, khả năng điều hướng trong không gian và đánh giá các tính chất của môi trường. Thông tin đến từ môi trường bên ngoài được phân tích ở vỏ não, cấp độ cao nhất của hệ thần kinh trung ương.

Một máy tính hiện đại là một hệ thống phần cứng và phần mềm phức tạp. Viết chương trình máy tính, gỡ lỗi và thực thi chúng là một công việc phức tạp và tốn thời gian. Lý do chính cho điều này là sự khác biệt rất lớn giữa những gì thuận tiện cho con người và những gì thuận tiện cho máy tính. Máy tính chỉ hiểu ngôn ngữ máy của chính nó (hãy gọi nó là L0), nhưng đối với con người, tiện lợi nhất là ngôn ngữ nói hoặc ít nhất là ngôn ngữ mô tả thuật toán - ngôn ngữ thuật toán. Vấn đề có thể được giải quyết theo hai cách. Cả hai phương pháp đều liên quan đến việc phát triển các lệnh thân thiện với con người hơn các lệnh máy tích hợp trong máy tính. Các lệnh mới này cùng nhau tạo thành một ngôn ngữ nhất định mà chúng ta sẽ gọi là L1.

Hai phương pháp giải quyết vấn đề được đề cập khác nhau ở cách máy tính sẽ thực thi các chương trình được viết bằng ngôn ngữ L1. Phương pháp đầu tiên là thay thế từng lệnh trong ngôn ngữ L1 bằng một bộ lệnh tương đương trong ngôn ngữ L0. Trong trường hợp này, máy tính thực thi một chương trình mới được viết bằng L0 thay vì chương trình được viết bằng L1. Công nghệ này được gọi là phát tin.

Cách thứ hai là viết một chương trình trong L0 lấy các chương trình được viết bằng L1 làm đầu vào, xem xét lần lượt từng lệnh và thực hiện ngay lập tức một bộ lệnh L0 tương đương. Công nghệ này không yêu cầu biên dịch chương trình mới tới R0. Nó được gọi là diễn dịch, và chương trình thực hiện việc giải thích được gọi là thông dịch viên.

TRONG tình huống tương tự Sẽ dễ dàng hơn để tưởng tượng sự tồn tại của một chiếc máy tính giả định hoặc ảo máy mà ngôn ngữ máy là L1, hơn là nghĩ về dịch thuật và phiên dịch. Hãy gọi máy ảo đó là M1 và máy ảo có ngôn ngữ R0 - M0. Có thể viết chương trình cho các máy ảo như thể chúng (các máy) đó thực sự tồn tại.

Rõ ràng, bạn có thể tiến xa hơn - tạo một bộ lệnh khác thiên về con người hơn và ít thiên về máy tính hơn L1. Bộ này tạo thành ngôn ngữ L2 và theo đó là máy ảo M2. Chúng ta có thể tiếp tục theo cách này cho đến khi đạt được ngôn ngữ cấp n phù hợp với mình.

Hầu hết các máy tính hiện đại bao gồm hai hoặc nhiều lớp. Cấp 0 – Phần cứngô tô. Các mạch điện tử ở cấp độ này thực hiện các chương trình được viết bằng ngôn ngữ Cấp độ 1. Cấp độ tiếp theo là vi kiến ​​trúc mức độ.

Ở cấp độ này, bạn có thể thấy các bộ sưu tập gồm 8 hoặc 32 thanh ghi (đôi khi nhiều hơn) tạo thành bộ nhớ cục bộ và ALU ( đơn vị logic số học). Các thanh ghi cùng với ALU tạo thành đường dẫn dữ liệu qua đó dữ liệu đến. Hoạt động chính của đường dẫn này như sau. Một hoặc hai thanh ghi được chọn, ALU thực hiện một số thao tác trên chúng và kết quả được đặt vào một trong các thanh ghi này. Trên một số máy, hoạt động của đường dẫn được điều khiển bởi một chương trình đặc biệt gọi là phần sụn. Ở các máy khác, việc điều khiển này được thực hiện bằng phần cứng.

Cấp độ tiếp theo (thứ hai) là cấp độ bản hướng dẫn kiến ​​trúc. Hướng dẫn sử dụng các thanh ghi và các tính năng phần cứng khác. Các hướng dẫn tạo thành lớp ISA (Kiến trúc tập lệnh), được gọi là ngôn ngữ máy. Thông thường, ngôn ngữ máy chứa từ 50 đến 300 lệnh, chủ yếu được sử dụng để di chuyển dữ liệu xung quanh máy tính, thực thi các phép tính toán học và so sánh về số lượng.

Cấp độ tiếp theo (thứ ba) thường là cấp độ lai. Hầu hết các lệnh trong ngôn ngữ của nó cũng ở cấp độ kiến ​​trúc hệ thống lệnh. Mức độ này có một số Tính năng bổ sung: tập lệnh mới, khác tổ chức bộ nhớ, khả năng thực hiện đồng thời hai hoặc nhiều chương trình và một số chương trình khác. Theo thời gian, phạm vi của các đội như vậy đã mở rộng đáng kể. Nó giới thiệu cái gọi là macro hệ điều hành hoặc lệnh gọi giám sát, hiện được gọi là lệnh gọi hệ thống.

Các tính năng mới được giới thiệu ở cấp độ thứ ba được thực thi bởi trình thông dịch chạy ở cấp độ thứ hai. Thông dịch viên này đã từng được gọi hệ điều hành. Các lệnh cấp ba, giống với các lệnh cấp hai, được thực thi bởi phần sụn hoặc phần cứng chứ không phải bởi hệ điều hành. Nói cách khác, một phần của lệnh cấp ba được hệ điều hành diễn giải và phần còn lại được phần sụn diễn giải. Đây là lý do tại sao lớp hệ điều hành này được coi là kết hợp.

hệ điều hànhđược tạo ra để tự động hóa công việc của người vận hành và che giấu cho người dùng những khó khăn khi giao tiếp với thiết bị, cung cấp cho anh ta nhiều thông tin hơn hệ thống tiện lợi lệnh Ba cấp độ thấp hơn (từ 0 đến giây) không được thiết kế để một lập trình viên bình thường có thể làm việc với chúng. Ban đầu chúng được thiết kế để vận hành các trình thông dịch và biên dịch hỗ trợ các cấp độ cao hơn. Những trình biên dịch và phiên dịch này được biên soạn bởi các lập trình viên hệ thống chuyên thiết kế và xây dựng các máy ảo mới.

Phía trên hệ điều hành (OS) là các phần còn lại chương trình hệ thống. Đây là nơi đặt trình thông dịch lệnh (shell), trình biên dịch, trình soạn thảo, v.v. Các chương trình tương tự không phải là một phần của HĐH (đôi khi người dùng coi shell là hệ điều hành). Một hệ điều hành thường có nghĩa là phần mềm, chạy trong chế độ hạt nhân hoặc, như nó còn được gọi là, chế độ giám sát. Nó được bảo vệ khỏi sự can thiệp của người dùng bằng phần cứng đặc biệt.

Cấp độ thứ tư là dạng biểu tượng của một trong các ngôn ngữ cấp thấp (thường là hợp ngữ). Ở cấp độ này, các chương trình có thể được viết ở dạng con người có thể đọc được. Các chương trình này trước tiên được dịch sang ngôn ngữ cấp 1, 2 hoặc 3, sau đó được giải thích bằng máy ảo hoặc thực tế (vật lý) tương ứng.

Cấp độ năm trở lên dành cho các lập trình viên ứng dụng giải quyết nhiệm vụ cụ thể bằng các ngôn ngữ cấp cao (C, C++, C#, VBA, v.v.). Trình biên dịch và biên tập ở các cấp độ này chạy ở chế độ người dùng. Ở cấp độ cao hơn nữa là các chương trình ứng dụng của người dùng.

Hầu hết người dùng máy tính đều có ít nhất đủ kinh nghiệm với hệ điều hành để thực hiện các tác vụ hiện tại của họ một cách hiệu quả. Tuy nhiên, họ gặp khó khăn khi cố gắng xác định một hệ điều hành. Ở một mức độ nhất định, vấn đề là do hệ điều hành thực hiện hai chức năng chính nhưng thực tế không liên quan đến nhau: mở rộng khả năng của máy tính và quản lý tài nguyên của nó.

Theo quan điểm của người dùng, hệ điều hành hoạt động như một máy mở rộng hoặc máy ảo, dễ lập trình và vận hành hơn phần cứng thực tế tạo nên máy tính thực tế. hệ điều hành Nó không chỉ loại bỏ nhu cầu làm việc trực tiếp với đĩa và cung cấp giao diện đơn giản, hướng tệp mà còn che giấu rất nhiều công việc khó chịu với các ngắt, bộ đếm thời gian, tổ chức bộ nhớ và các thành phần cấp thấp khác.

Tuy nhiên, khái niệm xem hệ điều hành chủ yếu như một giao diện thân thiện với người dùng là cách nhìn từ trên xuống. Một góc nhìn khác, từ dưới lên, đưa ra ý tưởng về hệ điều hành như một cơ chế có trong máy tính để quản lý tất cả các thành phần của hệ thống cực kỳ phức tạp này. Theo cách tiếp cận này, công việc của hệ điều hành là cung cấp sự phân phối có tổ chức và có kiểm soát các bộ xử lý, bộ nhớ, đĩa, máy in, thiết bị đầu vào/đầu ra, cảm biến thời gian, v.v.. giữa các chương trình khác nhau cạnh tranh quyền sử dụng chúng.

1.2. Hệ điều hành, môi trường và vỏ điều hành

Hệ điều hành (OS) theo cách hiểu hiện đại (mục đích và bản chất của chúng) xuất hiện muộn hơn nhiều so với những chiếc máy tính đầu tiên (mặc dù, rất có thể, chúng sẽ biến mất về bản chất này trong các máy tính của tương lai). Tại sao và khi nào hệ điều hành xuất hiện? Đếm 1 Theo các nguồn tin khác, chiếc máy tính đầu tiên được tạo ra ở Anh vào năm 1943 để giải mã mật mã của tàu ngầm Đức. rằng máy tính kỹ thuật số đầu tiên ENIAC (Bộ tích hợp số điện tử và máy tính) được tạo ra vào năm 1946 trong dự án Project PX của Bộ Quốc phòng Hoa Kỳ. 500 nghìn đô la đã được chi cho dự án. Máy tính chứa 18.000 ống chân không, rất nhiều loại thiết bị điện tử, bao gồm 12 bộ cộng 10 bit và để tăng tốc một số phép tính số học, nó có một hệ số nhân và một "bộ chia-rút" căn bậc hai. Lập trình bắt đầu kết nối các khối khác nhau bằng dây. Tất nhiên, không có phần mềm, càng không có hệ điều hành nào tồn tại vào thời điểm đó [,].

Sáng tạo mãnh liệt mô hình khác nhau Máy tính có từ đầu những năm 50 của thế kỷ trước. Trong những năm này, vẫn có những nhóm người tham gia vào việc thiết kế, chế tạo, lập trình và vận hành máy tính. Lập trìnhđược thực hiện độc quyền bằng ngôn ngữ máy (và sau này là hợp ngữ), không có phần mềm hệ thống nào ngoài thư viện các chương trình toán học và tiện ích. Hệ điều hành khi đó chưa xuất hiện, mọi công việc tổ chức quá trình tính toán đều được mỗi lập trình viên giải quyết thủ công từ bảng điều khiển máy tính thô sơ.

Với sự xuất hiện phần tử bán dẫn Khả năng tính toán của máy tính đã tăng lên đáng kể. Cùng với đó, điều đáng chú ý tiến triển những tiến bộ trong lập trình và tổ chức tự động hóa công việc tính toán. Ngôn ngữ thuật toán (Algol, Fortran, Cobol) và hệ thống phần mềm(người dịch, người biên tập giao tiếp, người tải, v.v.). Việc thực hiện các chương trình trở nên phức tạp hơn và bao gồm các hành động chính sau:

  • tải trình dịch được yêu cầu (cài đặt các ML cần thiết, v.v.);
  • khởi chạy trình dịch và lấy chương trình bằng mã máy;
  • liên kết chương trình với các hoạt động thường ngày của thư viện;
  • tải chương trình vào RAM;
  • khởi động chương trình;
  • xuất kết quả của chương trình tới thiết bị in hoặc thiết bị ngoại vi khác.

Để tổ chức tải hiệu quả tất cả tài nguyên máy tính, các vị trí nhân viên vận hành được đào tạo đặc biệt đã được giới thiệu vào đội ngũ nhân viên của trung tâm máy tính, những người thực hiện công việc tổ chức quy trình máy tính cho tất cả người dùng của trung tâm này một cách chuyên nghiệp. Tuy nhiên, người vận hành dù có chuẩn bị kỹ càng đến đâu thì cũng khó có thể cạnh tranh về năng suất với công việc của các thiết bị máy tính. Và do đó, bộ xử lý đắt tiền hầu hết không hoạt động và do đó việc sử dụng máy tính không hiệu quả.

Để loại bỏ thời gian chết, các nỗ lực đã được thực hiện để phát triển các chương trình đặc biệt - màn hình, nguyên mẫu của hệ điều hành đầu tiên, thực hiện quá trình chuyển đổi tự động từ nhiệm vụ này sang nhiệm vụ khác. Người ta tin rằng hệ điều hành đầu tiên được tạo ra vào năm 1952 cho máy tính IBM-701 bởi phòng thí nghiệm nghiên cứu của General Motors. Năm 1955, công ty này và North American Aviation cùng nhau phát triển hệ điều hành cho máy tính IBM -704.

Vào cuối những năm 50 của thế kỷ trước, các nhà sản xuất hàng đầu đã cung cấp hệ điều hành với các đặc điểm sau:

  • xử lý hàng loạt một luồng nhiệm vụ;
  • Có sẵn các chương trình đầu vào/đầu ra tiêu chuẩn;
  • khả năng chuyển đổi tự động từ chương trình này sang chương trình khác;
  • công cụ khắc phục lỗi tự động dọn dẹp máy tính của bạn nếu tai nạn nhiệm vụ tiếp theo và cho phép bạn khởi chạy nhiệm vụ tiếp theo với sự can thiệp tối thiểu của người vận hành;
  • ngôn ngữ quản lý công việc, cho phép người dùng mô tả nhiệm vụ của họ và các nguồn lực cần thiết để hoàn thành chúng.

Một gói là một bộ (bộ bài) các thẻ đục lỗ, được sắp xếp theo cách đặc biệt (tác vụ, chương trình, dữ liệu). Để tăng tốc độ công việc, nó có thể được chuyển sang băng từ hoặc đĩa. Điều này giúp giảm thời gian ngừng hoạt động của thiết bị đắt tiền. Phải nói rằng hiện nay, do sự tiến bộ của công nghệ vi điện tử và phương pháp lập trình nên giá thành phần cứng, phần mềm máy tính đã giảm đáng kể. Do đó, trọng tâm hiện nay là làm cho công việc của người dùng và lập trình viên hiệu quả hơn, vì chi phí lao động có tay nghề cao hiện chiếm tỷ trọng lớn hơn nhiều trong tổng chi phí của hệ thống máy tính so với phần cứng và phần mềm máy tính.

Vị trí của hệ điều hành trong cấu trúc phân cấp của phần mềm và phần cứng Máy tính có thể được biểu diễn như trong Hình 2. 1.1.


Cơm. 1.1.

Mức thấp nhất chứa các thiết bị máy tính khác nhau bao gồm vi mạch, dây dẫn, nguồn điện, ống tia âm cực, v.v. Cấp độ này có thể được chia thành các cấp độ phụ, ví dụ bộ điều khiển thiết bị, sau đó là chính các thiết bị. Có thể chia thành nhiều cấp độ hơn. Trên đây là cấp độ vi kiến ​​trúc, trong đó các thiết bị vật lý được coi là các đơn vị chức năng riêng biệt.

Ở cấp độ vi kiến ​​trúc có các thanh ghi nội bộ bộ xử lý trung tâm(có thể có một vài trong số chúng) và các thiết bị logic số học có phương tiện điều khiển chúng. Ở cấp độ này, việc thực thi các lệnh máy được thực hiện. Trong quá trình thực hiện các lệnh, các thanh ghi của bộ xử lý và thiết bị cũng như các khả năng phần cứng khác sẽ được sử dụng. Các lệnh mà người lập trình hợp ngữ có thể nhìn thấy ở cấp độ thời gian dẫn truy cập các tiện ích để thực hiện các chức năng cụ thể. Chương trình hệ thống quan trọng nhất là hệ điều hành, giúp giải phóng lập trình viên khỏi nhu cầu hiểu biết chuyên sâu về cấu trúc máy tính và cung cấp cho anh ta giao diện thuận tiện để sử dụng. hệ điều hànhđóng vai trò trung gian, giúp lập trình viên, người dùng và ứng dụng phần mềm dễ dàng truy cập các dịch vụ và khả năng khác nhau của máy tính.

Như vậy, hệ điều hành là tập hợp các chương trình điều khiển hoạt động của các chương trình ứng dụng, ứng dụng hệ thống và đóng vai trò là giao diện giữa người dùng, người lập trình, chương trình ứng dụng, ứng dụng hệ thống và phần cứng máy tính.

Nói một cách hình tượng, chúng ta có thể nói rằng phần cứng máy tính cung cấp sức mạnh tính toán “thô” và nhiệm vụ của hệ điều hành là làm cho việc sử dụng sức mạnh tính toán này trở nên dễ tiếp cận và, nếu có thể, thuận tiện cho người dùng. Lập trình viên có thể không biết chi tiết về cách quản lý các tài nguyên cụ thể (chẳng hạn như đĩa) trên máy tính và phải thực hiện các cuộc gọi thích hợp đến hệ điều hành để có được dịch vụ cần thiết và chức năng. Tập hợp các dịch vụ và chức năng này thể hiện môi trường vận hành trong đó các chương trình ứng dụng được thực thi.

Như vậy, môi trường hoạt động là môi trường phần mềm được tạo bởi hệ điều hành xác định giao diện lập trình ứng dụng (API) là một tập hợp chức năng hệ thống và các dịch vụ (cuộc gọi hệ thống) được cung cấp cho các chương trình ứng dụng. Môi trường hoạt động có thể bao gồm nhiều giao diện lập trình ứng dụng. Ngoài môi trường vận hành chính, gọi là tự nhiên, các môi trường phần mềm bổ sung có thể được tổ chức thông qua mô phỏng (mô phỏng) để cho phép thực thi các ứng dụng được thiết kế cho các hệ điều hành khác và thậm chí cả các máy tính khác.

Một khái niệm quan trọng khác liên quan đến hệ điều hành liên quan đến việc triển khai giao diện người dùng. Theo quy định, bất kỳ hệ điều hành cung cấp trải nghiệm người dùng thuận tiện với chi phí kinh phí giao diện người dùng. Các công cụ này có thể là một phần không thể thiếu của môi trường điều hành (ví dụ: giao diện đồ họa Windows hoặc giao diện dòng lệnh văn bản MS DOS) hoặc chúng có thể được triển khai bởi một chương trình hệ thống riêng biệt - shell hệ điều hành (ví dụ: Chỉ huy Norton cho MS DOS). Nhìn chung, dưới vỏ hệ điều hànhđề cập đến một phần của môi trường vận hành xác định giao diện người dùng, việc triển khai nó (văn bản, đồ họa, v.v.), khả năng ra lệnh và dịch vụ của người dùng để điều khiển các chương trình ứng dụng và máy tính.

Hãy chuyển sang xem xét sự phát triển của hệ điều hành.

Chủ đề 1. Hệ thống máy tính. Thành phần của hệ thống máy tính

Một trong những nhiệm vụ chính của các ngành kỹ thuật là lựa chọn phương tiện, phương pháp cơ giới hóa, tự động hóa công việc. Tự động hóa công việc với dữ liệu có những đặc điểm riêng và các thiết bị đặc biệt được sử dụng để thực hiện.

Một tập hợp các thiết bị được thiết kế để xử lý dữ liệu tự động hoặc tự động được gọi là công nghệ máy tính .

Một tập hợp cụ thể các thiết bị và chương trình tương tác, được thiết kế để phục vụ một khu vực làm việc, được gọi là hệ thống máy tính . Thiết bị trung tâm của hầu hết các hệ thống máy tính là máy tính . Nó được thiết kế để tự động hóa việc tạo, lưu trữ, xử lý và truyền dữ liệu.

Thành phần của hệ thống máy tính được gọi là cấu hình .

Xem xét riêng cấu hình phần cứng hệ thống máy tính và chúng cấu hình phần mềm. Tiêu chí để lựa chọn giải pháp phần cứng hoặc phần mềm là hiệu suất và hiệu quả.

Cơm. 1. Thành phần hệ thống máy tính

Phần cứng

Phần cứng hệ thống máy tính bao gồm các thiết bị và công cụ tạo thành cấu hình phần cứng. Máy tính hiện đại và hệ thống máy tính có thiết kế mô-đun khối - cấu hình phần cứng cần thiết để thực hiện các loại công việc cụ thể có thể được lắp ráp từ các đơn vị và khối làm sẵn.

Dựa trên cách các thiết bị được định vị so với bộ xử lý trung tâm, chúng được chia thành nội bộbên ngoài thiết bị. Theo quy định, bên ngoài là hầu hết các thiết bị đầu vào/đầu ra (còn gọi là thiết bị ngoại vi) và một số thiết bị được thiết kế để lưu trữ dữ liệu lâu dài.

Việc phối hợp giữa các nút và khối riêng lẻ được thực hiện bằng cách sử dụng các thiết bị logic-phần cứng chuyển tiếp được gọi là giao diện phần cứng. Các tiêu chuẩn cho giao diện phần cứng được gọi là giao thức. Như vậy, giao thức- là một bộ sưu tập Thông số kỹ thuật, phải được nhà phát triển thiết bị cung cấp để hài hòa thành công hoạt động của họ với các thiết bị khác.

Vô số giao diện hiện diện trong kiến ​​trúc của bất kỳ hệ thống máy tính nào có thể được chia thành hai nhóm lớn: tuần tựsong song .

1. Thông qua giao diện nối tiếp, dữ liệu được truyền tuần tự, từng bit một và hiệu suất của nó được đo bằng bit trên giây (bps, Kbps, Mbps).

2. Thông qua giao diện song song, dữ liệu được truyền đồng thời theo nhóm bit. Số lượng bit liên quan đến một tin nhắn được xác định độ sâu bit giao diện, ví dụ: giao diện song song tám bit truyền một byte (8 bit) mỗi chu kỳ. Giao diện song song thường phức tạp hơn giao diện nối tiếp nhưng mang lại hiệu suất cao hơn. Chúng được sử dụng khi tốc độ truyền dữ liệu là quan trọng: để kết nối các thiết bị in, thiết bị nhập thông tin đồ họa, thiết bị ghi dữ liệu trên phương tiện truyền thông bên ngoài v.v. Hiệu suất của các giao diện song song được đo bằng byte trên giây (byte/s; KB/s; MB/s).

Ban đầu, các giao diện nối tiếp được sử dụng để kết nối các thiết bị “chậm” (các thiết bị in đơn giản). Chất lượng thấp, thiết bị đầu vào và đầu ra thông tin tín hiệu, cảm biến điều khiển, thiết bị liên lạc hiệu suất thấp, v.v.), cũng như trong trường hợp không có hạn chế đáng kể theo thời gian trao đổi dữ liệu.

Tuy nhiên, với sự phát triển của công nghệ, các giao diện nối tiếp mới, tốc độ cao đã xuất hiện không hề thua kém các giao diện song song và thường vượt trội về thông lượng. Ngày nay, giao diện nối tiếp được sử dụng để kết nối bất kỳ loại thiết bị nào với máy tính.

Phần mềm

Chương trình là các chuỗi lệnh được sắp xếp theo thứ tự. Mục tiêu cuối cùng của bất kỳ chương trình máy tính nào là kiểm soát phần cứng.

Thành phần của phần mềm hệ thống máy tính được gọi là cấu hình phần mềm. Có một mối quan hệ giữa các chương trình, cũng như giữa các nút và khối vật lý - nhiều chương trình hoạt động dựa trên các chương trình cấp thấp hơn khác, nghĩa là chúng ta có thể nói về chương trình chéo giao diện. Khả năng tồn tại của giao diện như vậy cũng dựa trên sự tồn tại của các điều kiện kỹ thuật và giao thức tương tác, và trên thực tế, nó được đảm bảo bằng việc phân phối phần mềm thành nhiều cấp độ tương tác.

Các lớp phần mềm có cấu trúc hình kim tự tháp. Mọi cấp độ tiếp theo dựa vào phần mềm từ các cấp độ trước đó. Mỗi cấp độ cao hơn sẽ làm tăng chức năng của toàn bộ hệ thống. Ví dụ, một hệ thống máy tính có phần mềm cơ bản không có khả năng thực hiện hầu hết các chức năng nhưng cho phép cài đặt phần mềm hệ thống.

Cơm. 2. Cấu trúc phần mềm

1. Cấp độ cơ bản. Hầu hết cấp thấp phần mềm đại diện cho phần mềm cơ sở. Nó chịu trách nhiệm tương tác với phần cứng cơ bản. Theo quy định, phần mềm cơ bản được bao gồm trực tiếp trong phần cứng cơ bản và được lưu trữ trong các chip đặc biệt gọi là thiết bị bộ nhớ chỉ đọc (ROM - ReadOnlyMemory, ROM). Các chương trình và dữ liệu được ghi (“flash”) vào chip ROM ở giai đoạn sản xuất và không thể thay đổi trong quá trình hoạt động.

2. Cấp độ hệ thống. Cấp độ hệ thống là chuyển tiếp. Các chương trình hoạt động ở cấp độ này đảm bảo sự tương tác của các chương trình hệ thống máy tính khác với các chương trình cấp cơ bản và trực tiếp với phần cứng, nghĩa là chúng thực hiện các chức năng “trung gian”.

công cụ giao diện người dùng– nhờ chúng, máy tính có cơ hội nhập dữ liệu vào hệ thống máy tính, kiểm soát hoạt động của nó và thu được kết quả ở dạng thuận tiện cho chính nó.

trình điều khiển– mở rộng khả năng của HĐH, cho phép nó hoạt động với một hoặc một thiết bị được kết nối khác, dạy cho nó một giao thức trao đổi dữ liệu mới, v.v.

Bộ sưu tập phần mềm cấp hệ thống tạo thành cốt lõi của hệ điều hành máy tính. Chúng ta sẽ xem xét khái niệm đầy đủ về hệ điều hành sau, nhưng ở đây chúng ta sẽ chỉ lưu ý rằng nếu một máy tính được trang bị phần mềm cấp hệ thống thì nó đã được chuẩn bị sẵn sàng để cài đặt thêm các chương trình. mức độ cao, đến sự tương tác của phần mềm với phần cứng và quan trọng nhất là tương tác với người dùng. Nghĩa là, sự có mặt của nhân hệ điều hành là điều kiện tất yếu để có khả năng công việc thực tế người có hệ thống máy tính.

3. Mức độ dịch vụ. Phần mềm ở cấp độ này tương tác với cả chương trình cấp cơ sở và cấp hệ thống. Mục đích chính của các chương trình tiện ích (còn gọi là tiện ích) là tự động hóa công việc kiểm tra, thiết lập và cấu hình hệ thống máy tính. Trong nhiều trường hợp, chúng được sử dụng để mở rộng hoặc cải thiện chức năng của các chương trình hệ thống. Một số tiện ích(theo quy định, đây là các chương trình bảo trì) ban đầu được đưa vào hệ điều hành, nhưng hầu hết các chương trình tiện ích đều nằm bên ngoài hệ điều hành và dùng để mở rộng các chức năng của nó.

Có hai hướng thay thế trong việc phát triển và vận hành các chương trình tiện ích:

a) tích hợp với hệ điều hành - các chương trình tiện ích có thể thay đổi đặc tính tiêu dùng của các chương trình hệ thống, giúp chúng thuận tiện hơn cho công việc thực tế.

b) vận hành tự động - các tiện ích được kết hợp lỏng lẻo với phần mềm hệ thống nhưng cung cấp cho người dùng nhiều cơ hội hơn để cá nhân hóa sự tương tác của họ với phần cứng và phần mềm.

4. Lớp ứng dụng. Phần mềm cấp ứng dụng là một tập hợp các chương trình ứng dụng với sự trợ giúp của các nhiệm vụ cụ thể được thực hiện tại một nơi làm việc nhất định.

Ví dụ về phần mềm ứng dụng

1. Trình soạn thảo văn bản.

Nhập và chỉnh sửa dữ liệu văn bản;

Tự động hóa quá trình nhập liệu và chỉnh sửa.

Đối với các thao tác nhập, xuất và lưu, người soạn thảo văn bản gọi và sử dụng phần mềm hệ thống (điều này cũng đặc trưng cho tất cả các loại chương trình ứng dụng khác)

2. Bộ xử lý văn bản. Sự khác biệt chính giữa trình xử lý văn bản và soạn thảo văn bản là chúng cho phép bạn không chỉ nhập và chỉnh sửa văn bản mà còn cho phép định dạng nó, tức là thiết kế nó. Theo đó, các công cụ chính của trình xử lý văn bản bao gồm các công cụ đảm bảo sự tương tác của văn bản, đồ họa, bảng và các đối tượng khác tạo nên tài liệu cuối cùng và các công cụ bổ sung bao gồm các công cụ để tự động hóa quá trình định dạng.

Phong cách làm việc với tài liệu hiện đại bao gồm hai cách tiếp cận thay thế - làm việc với tài liệu giấy và làm việc với tài liệu điện tử (sử dụng công nghệ không giấy tờ). Do đó, trình xử lý văn bản cho phép bạn thực hiện 2 loại định dạng - định dạng tài liệu dự định để in và định dạng các tài liệu điện tử dự kiến để hiển thị trên màn hình. Các kỹ thuật và phương pháp trong những trường hợp này khác nhau đáng kể. Các bộ xử lý văn bản cũng khác nhau tùy theo, mặc dù nhiều bộ xử lý kết hợp thành công cả hai phương pháp.

Bộ Giáo dục và Khoa học Liên bang Nga

"Nghiên cứu quốc gia St. Petersburg

TÔI TÁN THÀNH

Trưởng phòng IS

“____“ ___________20___

GHI CHÚ BÀI GIẢNG

Mô-đun số: _ 3 _ Lý thuyết hệ điều hành

Chủ đề bài giảng: Lý thuyết hệ điều hành

Văn học :

Chủ yếu:

1. Stalings V. Hệ điều hành, tái bản lần thứ 4. M.: "Williams", 2004. – 848 tr.

2. Tanenbaum E. Hệ điều hành hiện đại - St. Petersburg: Peter, 2003 - 992 tr.

Trong các hệ điều hành bất đối xứng, các bộ xử lý không đồng đều. Thông thường có bộ xử lý chính (chính) và phụ (nô lệ), tải và tính chất của chúng được xác định bởi bộ xử lý chính.

Hệ thống thời gian thực

Danh mục hệ điều hành đa nhiệm, cùng với hệ thống hàng loạt và hệ thống chia sẻ thời gian, còn bao gồm các hệ thống thời gian thực mà cho đến nay vẫn chưa được đề cập đến.

Chúng được sử dụng để kiểm soát các đối tượng kỹ thuật hoặc quy trình công nghệ khác nhau. Các hệ thống như vậy được đặc trưng bởi thời gian phản hồi tối đa cho phép đối với một sự kiện bên ngoài, trong thời gian đó chương trình điều khiển đối tượng phải được thực thi. Hệ thống phải xử lý dữ liệu đến nhanh hơn mức có thể đến và từ nhiều nguồn cùng một lúc.

Những hạn chế nghiêm trọng như vậy ảnh hưởng đến kiến ​​trúc của các hệ thống thời gian thực; ví dụ, chúng có thể thiếu bộ nhớ ảo, sự hỗ trợ của bộ nhớ này gây ra sự chậm trễ khó lường trong việc thực thi chương trình.

Phân loại hệ điều hành nhất định không đầy đủ

Bài giảng 3

Định nghĩa quy trình

Nói chung quá trình -Đây là một số hoạt động liên quan đến việc thực thi một chương trình trên bộ xử lý.

Khi thực thi các chương trình trên bộ xử lý trung tâm, các trạng thái riêng lẻ sau đây thường được phân biệt nhiều nhất:

1. thế hệ- các điều kiện được chuẩn bị cho lần thực hiện đầu tiên trên bộ xử lý

2. trạng thái hoạt động, hoặc trạng thái “Tài khoản” - chương trình được thực thi trên bộ xử lý

3. kỳ vọng- chương trình không được thực thi trên bộ xử lý do sự bận rộn của bất kỳ tài nguyên cần thiết nào

4. sẵn sàng- chương trình không được thực thi nhưng tất cả các tài nguyên cần thiết hiện tại đều được cung cấp để thực thi, ngoại trừ bộ xử lý trung tâm

5. kết thúc- chấm dứt thực hiện chương trình một cách bình thường hoặc khẩn cấp, sau đó bộ xử lý và các tài nguyên khác không được cung cấp cho nó

Một tiến trình tồn tại ở mỗi trạng thái hợp lệ của nó trong một thời gian, sau đó nó chuyển sang một số trạng thái hợp lệ khác. Thành phần của các trạng thái được chấp nhận, cũng như các chuyển tiếp được chấp nhận từ trạng thái này sang trạng thái khác, thường được xác định dưới dạng biểu đồ tồn tại của quá trình.

Đối với HĐH, một quy trình theo cách giải thích này được coi là một đối tượng cần thiết để đảm bảo việc thực hiện từng trạng thái cho phép, cũng như các chuyển đổi được phép từ trạng thái này sang trạng thái khác để đáp ứng với các sự kiện có thể gây ra các chuyển đổi đó. . Những sự kiện như vậy cũng có thể được bắt đầu bởi chính các quy trình, có khả năng yêu cầu bộ xử lý hoặc một số tài nguyên cần thiết khác để thực hiện chương trình.

Thuộc tính và phân loại

Các quá trình được xác định bởi một số đặc điểm thời gian. Tại một thời điểm nào đó, một quy trình có thể được tạo ra (hình thành) và sau một thời gian nó có thể được hoàn thành. Khoảng thời gian giữa những khoảnh khắc này được gọi là khoảng thời gian tồn tại của quá trình.

Tại thời điểm tạo, trình tự và khoảng thời gian tồn tại của quá trình ở mỗi trạng thái của nó (dấu vết quá trình) nói chung là không thể đoán trước được. Do đó, độ dài của khoảng thời gian tồn tại cũng không thể đoán trước được. Tuy nhiên, một số loại quy trình nhất định yêu cầu lập kế hoạch như vậy để đảm bảo rằng quy trình được hoàn thành trước một thời điểm cụ thể. Các tiến trình của lớp này được gọi quy trình thời gian thực. Một loại khác bao gồm các quy trình mà thời gian tồn tại của nó không được vượt quá khoảng thời gian mà máy tính có thể chấp nhận được để đáp ứng các yêu cầu của người dùng. Các tiến trình của lớp này được gọi tương tác. Các tiến trình không có trong các lớp này được gọi là lô hàng.

Trong bất kỳ HĐH nào, theo yêu cầu của một quy trình hiện có hoặc hiện có, công việc được thực hiện để tạo ra các quy trình. Quá trình xác định yêu cầu này, gọi điện tạo ra và được tạo theo yêu cầu - tạo ra. Nếu một quy trình được tạo ra, trong khoảng thời gian tồn tại của nó, lại đưa ra yêu cầu tạo ra một quy trình khác, thì nó đồng thời trở thành một quy trình tạo ra.

Khi quản lý các quy trình, điều quan trọng là phải đảm bảo khả năng tái tạo kết quả của từng quy trình, phải tính đến và quản lý tình huống phát triển trong quá trình phát triển quy trình. Vì vậy, điều quan trọng không chỉ là kết quả tính toán mà còn cả cách đạt được kết quả này. Từ những vị trí này, HĐH so sánh các quy trình theo các thuộc tính động, sử dụng khái niệm “đường dẫn” - thứ tự và thời lượng duy trì của một quy trình ở trạng thái có thể chấp nhận được trong khoảng thời gian tồn tại.

Hai quy trình có cùng kết quả cuối cùng là xử lý cùng một dữ liệu đầu vào cho cùng một hoặc thậm chí các chương trình khác nhau trên cùng một bộ xử lý hoặc trên các bộ xử lý khác nhau được gọi là tương đương. Trong trường hợp tổng quát, dấu vết của các quá trình tương đương không trùng nhau. Nếu trong mỗi quy trình tương đương, việc xử lý dữ liệu diễn ra theo cùng một chương trình, nhưng các dấu vết nhìn chung không trùng nhau thì các quy trình đó được gọi là giống hệt nhau. Khi dấu vết của các quá trình giống hệt nhau trùng khớp, chúng được gọi là bình đẳng. Trong tất cả các trường hợp khác, các quy trình luôn khác nhau.

Vấn đề với việc quản lý quy trình là tại thời điểm các quy trình được sinh ra, dấu vết của chúng vẫn chưa được xác định. Ngoài ra, cần phải tính đến khoảng thời gian tồn tại của các quá trình tương quan với thời gian như thế nào. Nếu các khoảng thời gian của hai quá trình không giao nhau theo thời gian thì hai quá trình đó được gọi là nhất quán nhau trong tương đối với nhau. Nếu hai quá trình tồn tại đồng thời trong khoảng thời gian đang xét thì chúng là song song nhau trong tương đối với nhau. Nếu trong khoảng đang xét có ít nhất một điểm tại đó một quá trình tồn tại, nhưng quá trình kia không tồn tại và ít nhất một điểm tại đó cả hai quá trình tồn tại đồng thời thì hai quá trình đó được gọi là kết hợp.

Trong hệ điều hành, người ta thường phân biệt các quy trình không chỉ theo thời gian mà còn theo vị trí phát triển của chúng, tức là chương trình xử lý được thực thi trên bộ xử lý nào. Điểm bắt đầu được coi là bộ xử lý trung tâm (bộ xử lý), trên đó các tiến trình được gọi là phần mềm hoặc nội bộ. Tên này cho biết khả năng tồn tại trong hệ thống các quy trình được gọi là bên ngoài. Đây là các quá trình mà quá trình phát triển diễn ra dưới sự kiểm soát hoặc kiểm soát của HĐH trên các bộ xử lý không phải bộ xử lý trung tâm. Ví dụ, chúng có thể là các quá trình đầu vào-đầu ra đang phát triển trong kênh. Hoạt động của bất kỳ người dùng máy tính nào, dưới hình thức này hay hình thức khác, nhập vào hệ điều hành thông tin cần thiết để thực hiện một hoặc nhiều chương trình, cũng có thể được coi là một quy trình bên ngoài.

Các quy trình phần mềm thường được chia thành mang tính hệ thốngphong tục. Khi một tiến trình hệ thống phát triển, một chương trình từ hệ điều hành sẽ được thực thi. Khi một tiến trình người dùng phát triển, chương trình người dùng (ứng dụng) sẽ được thực thi.

Các quy trình, bất kể loại của chúng, có thể được liên kết với nhau hoặc bị cô lập từ nhau. Hai quy trình được kết nối với nhau nếu một số loại kết nối được duy trì giữa chúng bằng hệ thống kiểm soát quy trình: chức năng, không gian, điều khiển, thông tin, v.v. Mặt khác, chúng bị cô lập (chính xác hơn là các quy trình có kết nối yếu, vì không có kết nối rõ ràng , chúng có thể được kết nối gián tiếp và theo một cách nào đóảnh hưởng đến sự phát triển của nhau).

Nếu có kết nối điều khiển giữa các quy trình, thì mối quan hệ có dạng “do máy phát điện tạo ra”, đã thảo luận ở trên, sẽ được thiết lập. Nếu hai quy trình được kết nối với nhau trong quá trình phát triển sử dụng cùng nhau một số tài nguyên nhưng không được kết nối thông tin với nhau, tức là không trao đổi thông tin, thì các quy trình đó được gọi là thông tin độc lập. Sự kết nối giữa các quá trình như vậy có thể là chức năng hoặc không gian. Với sự hiện diện của liên kết thông tin giữa hai quá trình chúng được gọi là tương tác và các sơ đồ, cũng như các cơ chế thiết lập các kết nối như vậy, có thể khác nhau.

Tính đặc hiệu trước hết được xác định bởi động lực của các quá trình (tức là liệu các quá trình tương tác là tuần tự, song song hay kết hợp); thứ hai, phương thức giao tiếp được chọn (rõ ràng, sử dụng trao đổi thông báo rõ ràng giữa các tiến trình hoặc ngầm, sử dụng cấu trúc dữ liệu dùng chung). Khi cần nhấn mạnh sự kết nối giữa các quy trình tài nguyên có liên quan với nhau, chúng được gọi là cạnh tranh.

Hệ điều hành (OS) theo cách hiểu hiện đại (mục đích và bản chất của chúng) xuất hiện muộn hơn nhiều so với những chiếc máy tính đầu tiên (mặc dù, rất có thể, chúng sẽ biến mất về bản chất này trong các máy tính của tương lai). Tại sao và khi nào hệ điều hành xuất hiện? Đếm 1) rằng máy tính kỹ thuật số đầu tiên, ENIAC (Bộ tích hợp số điện tử và máy tính), được tạo ra vào năm 1946 trong dự án Project PX của Bộ Quốc phòng Hoa Kỳ. 500 nghìn đô la đã được chi cho dự án. Chiếc máy tính chứa 18.000 ống chân không, rất nhiều loại thiết bị điện tử, bao gồm 12 bộ cộng 10 bit, và để tăng tốc một số phép tính số học, nó có một hệ số nhân và một bộ chia căn bậc hai. Lập trình bắt nguồn từ việc kết nối các khối khác nhau bằng dây dẫn. Tất nhiên, không có phần mềm, càng không có hệ điều hành nào tồn tại vào thời điểm đó.

Việc tạo ra nhiều mẫu máy tính khác nhau có từ đầu những năm 50 của thế kỷ trước. Trong những năm này, vẫn có những nhóm người tham gia vào việc thiết kế, chế tạo, lập trình và vận hành máy tính. Việc lập trình được thực hiện hoàn toàn bằng ngôn ngữ máy (và sau này là hợp ngữ) và không có phần mềm hệ thống nào ngoài thư viện các chương trình toán học và tiện ích. Hệ điều hành khi đó chưa xuất hiện, mọi công việc tổ chức quá trình tính toán đều được mỗi lập trình viên giải quyết thủ công từ bảng điều khiển máy tính thô sơ.

Với sự ra đời của các phần tử bán dẫn, khả năng tính toán của máy tính đã tăng lên đáng kể. Cùng với đó, những thành tựu trong lĩnh vực tự động hóa lập trình và tổ chức công việc tính toán cũng có những tiến bộ rõ rệt. Các ngôn ngữ thuật toán (Algol, Fortran, Cobol) và phần mềm hệ thống (trình dịch, trình soạn thảo giao tiếp, trình tải, v.v.) đã xuất hiện. Việc thực hiện các chương trình trở nên phức tạp hơn và bao gồm các hành động chính sau:

· Khởi chạy trình dịch và lấy chương trình bằng mã máy;

· liên kết chương trình với các hoạt động thường ngày của thư viện;

· Khởi động chương trình;

· Xuất kết quả của chương trình ra thiết bị in hoặc thiết bị ngoại vi khác.

Để tổ chức tải hiệu quả tất cả tài nguyên máy tính, các vị trí nhân viên vận hành được đào tạo đặc biệt đã được giới thiệu vào đội ngũ nhân viên của trung tâm máy tính, những người thực hiện công việc tổ chức quy trình máy tính cho tất cả người dùng của trung tâm này một cách chuyên nghiệp. Tuy nhiên, người vận hành dù có chuẩn bị kỹ càng đến đâu thì cũng khó có thể cạnh tranh về năng suất với công việc của các thiết bị máy tính. Và do đó, bộ xử lý đắt tiền hầu hết không hoạt động và do đó việc sử dụng máy tính không hiệu quả.


Để loại bỏ thời gian chết, các nỗ lực đã được thực hiện để phát triển các chương trình đặc biệt - màn hình, nguyên mẫu của hệ điều hành đầu tiên, thực hiện quá trình chuyển đổi tự động từ nhiệm vụ này sang nhiệm vụ khác. Người ta tin rằng hệ điều hành đầu tiên được phòng thí nghiệm nghiên cứu của General Motors tạo ra vào năm 1952 cho máy tính IBM-701 của họ. Năm 1955, công ty này và North American Aviation cùng nhau phát triển hệ điều hành cho máy tính IBM-704.

Vào cuối những năm 50 của thế kỷ trước, các nhà sản xuất hàng đầu đã cung cấp hệ điều hành với các đặc điểm sau:

· xử lý hàng loạt một luồng nhiệm vụ;

· Có sẵn các chương trình đầu vào/đầu ra tiêu chuẩn;

· khả năng chuyển đổi tự động từ chương trình này sang chương trình khác;

· Các công cụ khôi phục lỗi cung cấp khả năng "dọn dẹp" máy tính tự động trong trường hợp tác vụ tiếp theo bị chấm dứt khẩn cấp và cho phép bạn khởi chạy tác vụ tiếp theo với sự can thiệp tối thiểu của người vận hành;

· Ngôn ngữ quản lý công việc cung cấp cho người dùng khả năng mô tả công việc của họ và các nguồn lực cần thiết để hoàn thành chúng.

Một gói là một bộ (bộ bài) các thẻ đục lỗ, được sắp xếp theo cách đặc biệt (tác vụ, chương trình, dữ liệu). Để tăng tốc độ công việc, nó có thể được chuyển sang băng từ hoặc đĩa. Điều này giúp giảm thời gian ngừng hoạt động của thiết bị đắt tiền. Phải nói rằng hiện nay, do sự tiến bộ của công nghệ vi điện tử và phương pháp lập trình nên giá thành phần cứng, phần mềm máy tính đã giảm đáng kể. Do đó, trọng tâm hiện nay là làm cho công việc của người dùng và lập trình viên hiệu quả hơn, vì chi phí lao động có tay nghề hiện chiếm tỷ trọng lớn hơn nhiều trong tổng chi phí của hệ thống máy tính so với phần cứng và phần mềm máy tính.

Vị trí của hệ điều hành trong cấu trúc phân cấp của phần mềm và phần cứng máy tính có thể được biểu diễn như trong Hình 2. 1.1.

Cơm. 1.1. Cấu trúc phân cấp của phần cứng và phần mềm máy tính

Mức thấp nhất chứa các thiết bị máy tính khác nhau bao gồm vi mạch, dây dẫn, nguồn điện, ống tia âm cực, v.v. Lớp này có thể được chia thành các lớp con, chẳng hạn như bộ điều khiển thiết bị và sau đó là chính các thiết bị. Có thể chia thành nhiều cấp độ hơn. Trên đây là cấp độ vi kiến ​​trúc, trong đó các thiết bị vật lý được coi là các đơn vị chức năng riêng biệt.

Ở cấp độ vi kiến ​​trúc có các thanh ghi bên trong của bộ xử lý trung tâm (có thể có một vài trong số chúng) và các thiết bị logic số học có phương tiện để điều khiển chúng. Ở cấp độ này, việc thực thi các lệnh máy được thực hiện. Trong quá trình thực hiện các lệnh, các thanh ghi của bộ xử lý và thiết bị cũng như các khả năng phần cứng khác sẽ được sử dụng. Các hướng dẫn mà một lập trình viên biên dịch chương trình có thể nhìn thấy tạo thành lớp ISA (Kiến trúc tập lệnh), thường được gọi là ngôn ngữ máy.

Hệ điều hành được thiết kế để che giấu tất cả những sự phức tạp này. Người dùng cuối thường không quan tâm đến chi tiết phần cứng máy tính. Anh ấy coi máy tính là một tập hợp các ứng dụng. Ứng dụng có thể được viết bởi một lập trình viên bằng bất kỳ ngôn ngữ lập trình nào. Để đơn giản hóa công việc này, người lập trình sử dụng một bộ chương trình hệ thống, một số chương trình được gọi là tiện ích. Với sự trợ giúp của họ, các chức năng được sử dụng thường xuyên sẽ được triển khai để giúp bạn làm việc với các tệp, quản lý thiết bị I/O, v.v. Lập trình viên sử dụng các công cụ này khi phát triển chương trình và các ứng dụng gọi các tiện ích trong thời gian chạy để thực hiện các chức năng cụ thể. Điều quan trọng nhất của các chương trình hệ thống là hệ điều hành, giúp người lập trình thoát khỏi nhu cầu hiểu biết sâu về cấu trúc máy tính và cung cấp cho anh ta giao diện thuận tiện để sử dụng. Hệ điều hành hoạt động như một trung gian, giúp lập trình viên, người dùng và ứng dụng phần mềm dễ dàng truy cập các dịch vụ và khả năng khác nhau của máy tính.

Như vậy, hệ điều hành là tập hợp các chương trình điều khiển hoạt động của các chương trình ứng dụng, ứng dụng hệ thống và đóng vai trò là giao diện giữa người dùng, người lập trình, chương trình ứng dụng, ứng dụng hệ thống và phần cứng máy tính.

Nói một cách hình tượng, chúng ta có thể nói rằng phần cứng máy tính cung cấp sức mạnh tính toán “thô” và nhiệm vụ của hệ điều hành là làm cho việc sử dụng sức mạnh tính toán này trở nên dễ tiếp cận và, nếu có thể, thuận tiện cho người dùng. Lập trình viên có thể không biết chi tiết về việc quản lý các tài nguyên cụ thể (ví dụ: đĩa) của máy tính và phải thực hiện các lệnh gọi thích hợp tới hệ điều hành để có được các dịch vụ và chức năng cần thiết từ nó. Tập hợp các dịch vụ và chức năng này thể hiện môi trường vận hành trong đó các chương trình ứng dụng được thực thi.

Như vậy, môi trường hoạt động là môi trường phần mềm được tạo bởi hệ điều hành, xác định giao diện lập trình ứng dụng (API) là một tập hợp các chức năng và dịch vụ hệ thống (cuộc gọi hệ thống) được cung cấp cho các chương trình ứng dụng. Môi trường hoạt động có thể bao gồm nhiều giao diện lập trình ứng dụng. Ngoài môi trường vận hành chính, gọi là tự nhiên, các môi trường phần mềm bổ sung có thể được tổ chức thông qua mô phỏng (mô phỏng) để cho phép thực thi các ứng dụng được thiết kế cho các hệ điều hành khác và thậm chí cả các máy tính khác.

Một khái niệm quan trọng khác liên quan đến hệ điều hành liên quan đến việc triển khai giao diện người dùng. Theo quy định, bất kỳ hệ điều hành nào cũng cung cấp trải nghiệm thuận tiện cho người dùng thông qua các công cụ giao diện người dùng. Các công cụ này có thể là một phần không thể thiếu của môi trường điều hành (ví dụ: giao diện đồ họa Windows hoặc giao diện dòng lệnh văn bản MS DOS) hoặc chúng có thể được triển khai bằng một chương trình hệ thống riêng biệt - shell hệ điều hành (ví dụ: Norton Commander cho MS DOS). Nhìn chung, dưới vỏ hệ điều hànhđề cập đến một phần của môi trường vận hành xác định giao diện người dùng, việc triển khai nó (văn bản, đồ họa, v.v.), khả năng ra lệnh và dịch vụ của người dùng để điều khiển các chương trình ứng dụng và máy tính.

Hãy chuyển sang xem xét sự phát triển của hệ điều hành.