Hệ điều hành là gì ?
Hệ điều hành tiếng anh là Operating system (OS) là phần mềm hệ thống quản lý phần cứng máy tính, tài nguyên hệ thống và cung cấp dịch vụ phổ biến cho các chương trình ứng dụng.
Đang xem: Hệ điều hành là phần mềm gì
Bạn đang xem: Hệ điều hành là phần mềm gì
Vì sao cần hệ điều hành ?
Hệ điều hành thực hiện nhiệm vụ chia sẻ các tài nguyên hệ thống để sử dụng hiệu quả và phân bổ tài nguyên của bộ xử lý, lưu trữ hàng loạt, in ấn và các tài nguyên khác.
Cái gì điều khiển máy tính ?
Đối với các phần cứng như đầu vào và đầu ra và cấp phát bộ nhớ, hệ điều hành đóng vai trò trung gian giữa các chương trình và phần cứng máy tính, mặc dù mã nguồn ứng dụng thường được phần cứng thực thi trực tiếp nhưng hệ điều hành có vai trò điều phối và cấp phát các tài nguyên phần cứng. Hệ điều hành được thấy trên nhiều thiết bị không chỉ máy tính, từ điện thoại di động, máy chơi video game đến máy chủ web và các siêu máy tính.
Hệ điều hành máy tính để bàn và laptop (máy tính cá nhân – PC) chiếm ưu thế là Microsoft Windows với thị phần khoảng 82,74%. macOS của Apple Inc ở vị trí thứ hai (13,23%) và các hệ điều hành họ Linux được xếp chung ở vị trí thứ ba (1,57%).
Trong lĩnh vực di động (bao gồm cả điện thoại thông minh và máy tính bảng ), thị phần của Google Android chiếm tới 70% trong năm 2017. Theo dữ liệu quý 3 năm 2018, thị phần của Android trên điện thoại thông minh chiếm ưu thế với 87,5% và tăng trưởng 10,3% mỗi năm, tiếp theo là Apple’s iOS với 12,1% nhưng thị phần có xu hướng giảm 5,2% mỗi năm, trong khi các hệ điều hành khác chỉ còn 0,3%.
Các hệ điều hành họ Linux chiếm ưu thế trong các lĩnh vực máy chủ và siêu máy tính, ngoài ra còn các nhánh chuyên biệt khác của hệ điều hành này, như hệ thống nhúng và thực thi thời gian thực, được sử dụng cho nhiều ứng dụng.
Phân loại hệ điều hành
Đơn nhiệm vụ và đa nhiệm
Một hệ điều hành đơn nhiệm chỉ có thể chạy một chương trình tại một thời điểm, trong khi hệ điều hành đa nhiệm cho phép nhiều chương trình chạy đồng thời. Điều này được hệ điều hành thực hiện bằng cách chia sẻ thời gian, trong đó thời gian sử dụng bộ xử lý được chia thành nhiều luồng.
Các luồng này được đan xen lặp lại và được quản lý bởi một hệ thống con có nhiệm vụ lập lịch tác vụ của hệ điều hành. Trong đa nhiệm ưu tiên, hệ điều hành sẽ chia thời gian sử dụng CPU và dành một khoảng nhất định cho mỗi chương trình.
Các hệ điều hành giống Unix, như Solaris và Linux, AmigaOS Hỗ trợ đa nhiệm ưu tiên. Đa nhiệm hợp tác, CPU được chia thành các luồng để phân bổ thời gian sử dụng cho các luồng. Các phiên bản 16 bit của Microsoft Windows đã sử dụng đa nhiệm hợp tác. Các phiên bản 32 bit của cả Windows NT và Win9x đều sử dụng đa nhiệm ưu tiên.
Người dùng đơn và đa người dùng
Hệ điều hành một người dùng không có chức năng phân biệt người dùng về mặt sử dụng tài nguyên phần cứng (định nghĩa này khác với nhiều acc log trên một máy), nhưng có thể cho phép nhiều chương trình chạy song song.
Hệ điều hành nhiều người dùng mở rộng khái niệm cơ bản về đa tác vụ với các phương thức xác định các tiến trình và tài nguyên, như không gian đĩa, cho nhiều người dùng và hệ thống cho phép nhiều người dùng tương tác với hệ thống cùng một lúc (ví dụ: nhiều người dùng trong cùng một mạng sử dụng chung 1 ổ cứng và hệ điều hành chung).
Hệ điều hành phân tán là gì ?
Một hệ điều hành phân tán quản lý một nhóm các máy tính riêng biệt và kết hợp chúng như là một máy tính duy nhất. Sự phát triển của các máy tính nối mạng có thể được liên kết và giao tiếp với nhau đã tạo ra điện toán phân tán (Cloud computing). Tính toán phân tán được thực hiện trên nhiều máy. Khi các máy tính trong một nhóm hợp tác giải quyết một vấn đề, chúng tạo thành một hệ thống phân tán.
Templated
Trong một hệ điều hành, bối cảnh điện toán phân tán và điện toán đám mây, templating đề cập đến việc tạo một hình ảnh máy ảo duy nhất như một hệ điều hành khách, sau đó lưu nó làm công cụ cho nhiều máy ảo đang chạy. Kỹ thuật này được sử dụng cả trong ảo hóa, quản lý điện toán đám mây và phổ biến trong các trung tâm máy chủ lớn.
Hệ thống nhúng là gì ?
Hệ điều hành nhúng được thiết kế để sử dụng trong các hệ thống máy tính nhúng. Chúng được thiết kế để hoạt động trên các máy nhỏ như máy PDA với ít tài nguyên hơn. Nó có thể hoạt động với một số lượng tài nguyên hạn chế. Chúng được thiết kế rất nhỏ gọn và cực kỳ hiệu quả. Windows CE và Minix 3 là một số ví dụ về hệ điều hành nhúng.
Các thành phần của hệ điều hành
Nhiệm vụ chính của hệ điều hành
Các thành phần của một hệ điều hành có nhiệm vụ điều khiển các phần cứng của máy tính hoạt động cùng nhau. Tất cả phần mềm người dùng cần phải đi qua hệ điều hành để sử dụng bất kỳ phần cứng nào, dù đơn giản như chuột hay bàn phím hay phức tạp như Internet.
Lõi Kernel hệ điều hành là gì ?
Lõi hệ điều hành kết nối phần mềm ứng dụng với phần cứng của máy tính.
Với sự trợ giúp của phần mềm điều khiển và trình điều khiển thiết bị (driver), kernel (lõi) cung cấp mức độ kiểm soát cơ bản nhất đối với tất cả các thiết bị phần cứng của máy tính. Nó quản lý truy cập bộ nhớ cho các chương trình trên RAM, nó xác định chương trình nào có quyền truy cập vào tài nguyên phần cứng nào, nó thiết lập hoặc đặt lại trạng thái hoạt động của CPU để hoạt động tối ưu mọi lúc và tổ chức dữ liệu để lưu trữ tập tin trên các phương tiện như đĩa, băng, bộ nhớ flash, v.v.
Thực thi chương trình
Hệ điều hành cung cấp giao diện giữa chương trình ứng dụng và phần cứng máy tính, để chương trình ứng dụng chỉ có thể tương tác với phần cứng bằng cách tuân theo các quy tắc và quy trình được lập trình của hệ điều hành.
Hệ điều hành cũng là một tập hợp các dịch vụ giúp đơn giản hóa việc phát triển và thực thi các chương trình ứng dụng. Thực thi một chương trình ứng dụng liên quan đến việc tạo ra một quy trình bởi nhân hệ điều hành cấp phát không gian bộ nhớ và các tài nguyên khác, thiết lập mức độ ưu tiên cho chương trình trong các hệ thống đa tác vụ, tải mã nhị phân chương trình vào bộ nhớ và bắt đầu thực thi chương trình ứng dụng sau đó tương tác với người dùng và các thiết bị phần cứng.
Ngắt của hệ điều hành là gì ?
Ngắt là trung tâm của hệ điều hành, chúng cung cấp một cách hiệu quả để hệ điều hành tương tác và phản ứng với môi trường. (Phương án thay thế – hệ điều hành “xem” các nguồn đầu vào khác nhau cho các sự kiện yêu cầu hành động – có thể được tìm thấy trong các hệ thống cũ có ngăn xếp rất nhỏ 50 hoặc 60 byte nhưng không thông dụng trong các hệ thống hiện đại có ngăn xếp lớn).
Lập trình dựa trên ngắt được hỗ trợ trực tiếp bởi hầu hết các CPU hiện đại. Các ngắt cung cấp cho máy tính một cách tự động lưu bối cảnh đăng ký cục bộ và chạy mã cụ thể để đáp ứng với các sự kiện. Ngay cả các máy tính rất cơ bản cũng hỗ trợ ngắt phần cứng và cho phép lập trình viên chỉ định mã có thể chạy khi sự kiện đó diễn ra.
Khi nhận được một ngắt, phần cứng của máy tính sẽ tự động tạm dừng bất kỳ chương trình nào đang chạy, lưu trạng thái của nó và chạy mã máy tính được liên kết trước đó với ngắt; điều này tương tự với việc đặt dấu trang vào một cuốn sách để đáp lại một cuộc gọi điện thoại. Trong các hệ điều hành hiện đại, các ngắt được xử lý bởi kernel của hệ điều hành. Ngắt có thể đến từ phần cứng của máy tính hoặc chương trình đang chạy.
Khi một thiết bị phần cứng kích hoạt ngắt, nhân của hệ điều hành quyết định cách xử lý sự kiện này, thường bằng cách chạy một số mã xử lý. Lượng mã được chạy tùy thuộc vào mức độ ưu tiên của ngắt (ví dụ: một người thường trả lời báo động phát hiện khói trước khi trả lời điện thoại).
Việc xử lý các ngắt phần cứng là một nhiệm vụ thường được giao cho trình điều khiển thiết bị, có thể là một phần của lõi kernel hệ điều hành, một phần của chương trình khác hoặc cả hai. Trình điều khiển thiết bị sau đó có thể chuyển tiếp thông tin đến một chương trình đang chạy bằng nhiều cách khác nhau.
Một chương trình cũng có thể kích hoạt một ngắt cho hệ điều hành. Ví dụ, nếu một chương trình muốn truy cập phần cứng, nó có thể làm gián đoạn kernel của hệ điều hành, điều này khiến cho điều khiển được chuyển trở lại kernel. Nhân sau đó xử lý yêu cầu. Nếu một chương trình muốn có thêm tài nguyên (hoặc muốn loại bỏ tài nguyên) như bộ nhớ, thì nó sẽ kích hoạt ngắt để báo cho kernel.
Chế độ chạy của hệ điều hành
Các thiết lập đặc quyền cho kiến trúc vi xử lý x86 có sẵn trong chế độ bảo vệ. Hệ điều hành xác định quá trình nào chạy trong mỗi chế độ.
Bộ vi xử lý hiện đại (CPU hoặc MPU) hỗ trợ nhiều chế độ hoạt động. CPU có khả năng cung cấp ít nhất hai chế độ: chế độ người dùng và chế độ giám sát (Supervisor). Khi hoạt động ở chế độ giám sát cho phép truy cập không hạn chế vào tất cả các tài nguyên máy, bao gồm tất cả các hướng dẫn MPU.
Hoạt động ở chế độ người dùng đặt giới hạn cho việc sử dụng lệnh và thường không cho phép truy cập trực tiếp vào tài nguyên máy. CPU cũng có thể có các chế độ khác tương tự chế độ người dùng, chẳng hạn như chế độ ảo để mô phỏng các loại bộ xử lý cũ hơn, như bộ xử lý 16 bit trên bộ xử lý 32 bit hoặc bộ xử lý 32 bit trên bộ xử lý 64 bit.
Khi bật nguồn hoặc reset, hệ thống bắt đầu ở chế độ giám sát. Khi một kernel hệ điều hành đã được tải và bắt đầu, ranh giới giữa chế độ người dùng và chế độ giám sát (còn được gọi là chế độ kernel) có thể được thiết lập.
Chế độ giám sát được sử dụng bởi kernel cho các tác vụ cấp thấp cần truy cập không hạn chế vào phần cứng, chẳng hạn như kiểm soát cách truy cập bộ nhớ và giao tiếp với các thiết bị như ổ đĩa và thiết bị hiển thị video.
Chế độ người dùng, ngược lại, được sử dụng cho hầu hết mọi thứ khác. Các chương trình ứng dụng, chẳng hạn như bộ xử lý văn bản và trình quản lý cơ sở dữ liệu, hoạt động trong chế độ người dùng và chỉ có thể truy cập tài nguyên máy bằng cách chuyển quyền điều khiển sang kernel, một quá trình gây ra chuyển đổi sang chế độ giám sát.
Thông thường, việc chuyển điều khiển sang kernel bằng cách thực hiện một lệnh ngắt. Việc ngắt phần mềm khiến bộ vi xử lý chuyển từ chế độ người dùng sang chế độ giám sát và bắt đầu thực thi mã cho phép kernel kiểm soát.
Trong chế độ người dùng, các chương trình thường có quyền truy cập vào một tập hợp các lệnh vi xử lý bị hạn chế và thường không thể thực hiện bất kỳ lệnh nào có khả năng gây gián đoạn cho hoạt động của hệ thống. Trong chế độ giám sát, các hạn chế thực thi lệnh thường được loại bỏ, cho phép truy cập không hạn chế vào tất cả các tài nguyên máy.
Thuật ngữ “tài nguyên chế độ người dùng” thường dùng để chỉ một hoặc nhiều thanh ghi CPU, chứa thông tin mà chương trình đang chạy không được phép thay đổi. Nỗ lực thay đổi các tài nguyên này thường gây ra sự chuyển đổi sang chế độ giám sát, trong đó hệ điều hành có thể xử lý hoạt động bất hợp pháp mà chương trình đang cố gắng, ví dụ, bằng cách buộc chấm dứt (“giết chết”) chương trình.
Quản lý bộ nhớ
Lõi hệ điều hành đa nhiệm phải chịu trách nhiệm quản lý bộ nhớ hệ thống hiện đang được các chương trình sử dụng. Điều này đảm bảo rằng một chương trình không can thiệp vào bộ nhớ đã được sử dụng bởi một chương trình khác. Mỗi chương trình phải có quyền truy cập độc lập vào bộ nhớ.
Quản lý bộ nhớ hợp tác, được sử dụng bởi nhiều hệ điều hành ban đầu, giả định rằng tất cả các chương trình sử dụng trình quản lý bộ nhớ của nhân hệ điều hành một cách tự nguyện và không vượt quá bộ nhớ được phân bổ của chúng.
Hệ thống quản lý bộ nhớ này hầu như không còn sử dụng nữa, vì các chương trình thường chứa các lỗi có thể khiến chúng vượt quá bộ nhớ được phân bổ. Nếu một chương trình gặp lỗi, nó có thể khiến bộ nhớ được sử dụng bởi một hoặc nhiều chương trình khác bị ảnh hưởng hoặc ghi đè.
Các chương trình hoặc vi-rút độc hại có thể cố ý thay đổi bộ nhớ của chương trình khác hoặc có thể ảnh hưởng đến hoạt động của chính hệ điều hành. Với quản lý bộ nhớ hợp tác, chỉ cần một chương trình hoạt động sai đủ để làm sập cả hệ thống.
Bảo vệ bộ nhớ cho phép lõi hệ điều hành giới hạn quyền truy cập vào bộ nhớ của máy tính. Có nhiều phương pháp bảo vệ bộ nhớ khác nhau, bao gồm phân đoạn bộ nhớ và phân trang. Tất cả các phương pháp đều yêu cầu một số mức hỗ trợ phần cứng, không giống nhau trong tất cả các máy tính.
Trong cả phân đoạn và phân trang, các thanh ghi chế độ được bảo vệ nhất định chỉ định cho CPU địa chỉ bộ nhớ nào sẽ cho phép chương trình đang chạy truy cập. Nỗ lực truy cập các địa chỉ khác kích hoạt một ngắt làm cho CPU vào lại chế độ giám sát, chuyển quyền điều khiển về lõi.
Đây được gọi là vi phạm phân đoạn hoặc viết tắt là Seg-V và vì rất khó để xác định hành vi cho hoạt động đó và nó thường là dấu hiệu của chương trình xử lý sai, nên lõi hệ điều hành thường dùng đến việc chấm dứt chương trình vi phạm và báo cáo lỗi.
Các phiên bản Windows 3.1 đến ME có một số mức bảo vệ bộ nhớ, nhưng các chương trình có thể dễ dàng tránh được. Một lỗi bảo vệ chung sẽ được tạo ra, cho thấy đã xảy ra vi phạm bộ nhớ; tuy nhiên, hệ thống thường sẽ bị sập