Tìm hiểu các nền tảng cơ bản về Công nghệ – Phần 1: Hệ điều hành

Máy chủ là trung tâm của mọi thứ bởi vì các ứng dụng hoạt động ở đây, các máy chủ và thực tế là mọi máy tính đều dựa trên các hệ điều hành. Việc hiểu rõ cơ sở nền tảng về các hệ điều hành là điều tối quan trọng để có thể khắc phục các vấn đề CNTT của Doanh nghiệp. Hãy tìm hiểu qua bài viết sau đây!

1. Bốn ông lớn

Hiện nay, mặc dù có vô số thành phần cấu tạo nên các hệ điều hành hiện đại và phức tạp, bốn phần chính vẫn là chìa khóa để hiểu về cách chúng hoạt động như thế nào. Chúng ta sẽ tiếp tục đề cập đến “bốn ông lớn” này trong toàn bộ phần này.

CPU(s) – Bộ Xử lý Trung tâm. Thực hiện tất cả mọi hoạt động được tiến hành bởi máy tính ( ví dụ, số học, Nhập/Xuất – I/O, điều khiển bộ nhớ, v.v…) . Máy tính có CPU càng nhanh và càng nhiều thì số lượng quy trình mà nó có thể xử lý trong một khoảng thời gian càng nhiều. Tuy nhiên, các yếu tố khác dưới đây có thể hạn chế về những gì có thể được xử lý, bất kể công suất sẵn có của CPU.

RAM – Bộ nhớ Truy cập Ngẫu nhiên (bộ nhớ truy cập nhanh, volatile/khả biến). Lưu trữ công việc cho quá trình xử lý và bộ đệm dữ liệu. Việc thiếu RAM có thể gây ra sự phân trang bộ nhớ quá mức và sụt giảm hiệu suất nghiêm trọng. RAM bổ sung có thể được sử dụng để “lưu bộ nhớ đệm” nhiều mục hơn đang cư trú trên bộ lưu trữ vĩnh viễn để truy xuất nhanh hơn và tránh sự chậm trễ .

Lưu trữ Vĩnh viễn – Lưu trữ non-volatile / không khả biến cho các dữ liệu vĩnh viễn. Đây có thể là ổ cứng quay cơ học hoặc thiết bị thể rắn/SSD ( ví dụ, ổ đĩa flash). Nhập/Xuất đến bộ lưu trữ vĩnh viễn chậm hơn việc truy cập vào RAM và do đó làm giảm Nhập/Xuất được yêu cầu bởi một ứng dụng, cải thiện hiệu suất của nó một cách đáng kể . Các chương trình thực hiện Nhập/ Xuất được hệ điều hành đặt vào trong một “trạng thái chờ ”. Ngoài ra, Nhập/ Xuất đến cùng các đĩa cũng có thể gây ra độ trễ cực kỳ lớn. Các thiết bị thể rắn nhanh hơn các ổ cứng truyền thống nhưng cũng đắt đỏ hơn.

Mạng – Giao thức được đóng gói để giao tiếp giữa một hoặc nhiều máy tính. Các lệnh gọi ra mạng tới thiết bị khác có thể chậm hoặc thường chậm hơn việc truy cập vào bộ lưu trữ vĩnh viễn, tuy nhiên, các kiến trúc mới lại khuyến khích lưu lượng mạng nhiều hơn (không phải ít hơn). Chìa khóa để đạt được sự vững chắc đối với giao tiếp mạng là đảm bảo không có tắc nghẽn hoặc thắt cổ chai trên các liên kết khác nhau giữa các thiết bị.

Ghi chú : Volatile để chỉ trạng thái dữ liệu trong RAM sẽ bị mất đi khi mất nguồn cung cấp điện.

2. Tiến trình

“Tiến trình” là đơn vị luận lý chủ yếu của một hệ điều hành. Một tiến trình là một phiên bản của một chương trình máy tính đang được thực thi. Một tiến trình bao gồm mã lập trình và các hoạt động của nó chẳng hạn như mức sử dụng bộ nhớ hiện tại. Mọi chương trình, bao gồm cả các thành phần của hệ điều hành, đều thực thi trong bối cảnh của một tiến trình. Mọi ứng dụng thực thi trong một hoặc nhiều tiến trình. Ngoài ra, điều quan trọng là phải hiểu rằng vài tiến trình có thể chạy cùng một chương trình.

Ví dụ, khi bạn khởi động trình duyệt web trên máy tính và ghé thăm một trang web, bạn bắt đầu một tiến trình. Nếu sau đó bạn tiếp tục khởi động một phiên trình duyệt khác để ghé thăm một trang web khác, bạn đang bắt đầu một tiến trình khác chạy trên cùng một chương trình (đó là trình duyệt của bạn). Tuy nhiên, mỗi tiến trình là duy nhất với các hoạt động và bộ nhớ RAM khác nhau bởi vì nó phải thực hiện các chức năng khác nhau.

Một khái niệm quan trọng khác là mỗi tiến trình thực thi “như thể” nó có quyền truy cập độc quyền vào các) CPU và một lượng lớn RAM của máy tính (không gian địa chỉ (bộ nhớ) ảo) . Khi có nhiều tiến trình đang hoạt động đồng thời trên máy tính của bạn, các tiến trình riêng lẻ không cần lo lắng về điều này – chúng chỉ cần thực hiện chương trình của chúng. Tương tự như RAM, đối với các hệ thống đánh địa chỉ 32-bit, các tiến trình hoạt động như thể chúng có quyền truy cập tới tất cả 4GB RAM có thể đánh địa chỉ được, và đối với các hệ thống đánh địa chỉ 64 -bit là 16 exabyte của bộ nhớ RAM có thể đánh địa chỉ được (nhiều hơn những gì chúng ta sẽ có trên bất kỳ hệ thống nào trong một thời gian khá dài sắp tới). Chúng ta sẽ thảo luận thêm về khái niệm này về không gian địa chỉ ảo trong phần tiếp theo.

Vẫn còn một khái niệm quan trọng nữa là các tiến trình có thể thực thi trong “Chế độ Lõi” hoặc “Chế độ Người dùng” và chúng chuyển qua lại giữa hai chế độ này tùy thuộc vào chức năng đang được thực thi tại thời điểm đó. Chế độ lõi được sử dụng để truy cập vào những tài nguyên hệ thống được chia sẻ (ví dụ, gọi hệ điều hành để giao tiếp với đĩa cứng, RAM, mạng, v.v…). Chế độ người dùng dành cho mọi thứ khác. Khi một tiến trình chạy trong “Chế độ Người dùng”, nó không có cách nào truy cập vào không gian địa chỉ ảo của tiến trình khác – điều này còn được gọi là “bảo vệ bộ nhớ”.

CÁC CHỈ LỆNH
– Để tìm các tiến trình đang chạy trên một máy Windows cùng với PID tương ứng của chúng, hãy sử dụng “Task Manager ” và click vào thanh “Details”.
– Để tìm các tiến trình đang chạy trên một máy MAC hoặc Linux, gõ lệnh “top” từ giao diện dòng lệnh teminal .

3. Đa nhiệm, Đa xử lý, Đa luồng

Những khái niệm này nghe có vẻ giống nhau nhưng ý nghĩa của chúng lại rất khác nhau. Việc hiểu rõ ràng về những khái niệm này chính là chìa khóa khi khắc phục các vấn đề trên một hệ thống.

Đa nhiệm

Đa nhiệm còn được gọi là chia sẻ thời gian

Đa nhiệm còn được gọi là chia sẻ thời gian. Điều này đòi hỏi hệ điều hành cung cấp các lát cắt thời gian trên một CPU duy nhất để chạy các quá trình dựa trên khả năng chạy, mức độ ưu tiên hóa và các yếu tố khác. Chìa khóa ở đây là nếu bạn chỉ có một CPU và sau đó chỉ có một tiến trình có thể được chạy tại một thời điểm nhất định. Dĩ nhiên, có rất nhiều tiến trình trên một hệ thống cần phải chạy một cách đồng thời, và điều này được mô phỏng bằng cách cấp cho mỗi tiến trình một lát cắt thời gian rất nhỏ trước khi hoán đổi nó cho tiến trình tiếp theo.

Đa xử lý

Đa xử lý là chia sẻ thời gian trên nhiều CPU ( hoặc nhiều Lõi CPU)

Đa xử lý là chia sẻ thời gian trên nhiều CPU ( hoặc nhiều Lõi CPU) để từ đó nhiều tiến trình có thể chạy đồng thời. Nói cách khác, đa xử lý đơn giản chính là đa nhiệm nhưng với nhiều CPU.

Đa luồng

Đa luồng (Multithreading)

Mọi tiến trình đều chứa ít nhất một luồng (luồng 0), tuy nhiên, các ứng dụng có thể được lập trình để một tiến trình có thể sử dụng nhiều hơn một luồng và do đó sử dụng nhiều hơn một CPU tại một thời điểm. Hãy lưu ý rằng ứng dụng sẽ cần phải được lập trình để hỗ trợ đa luồng. Phần lớn các hệ thống doanh nghiệp (các cơ sở dữ liệu, máy chủ web, máy chủ mail, v.v…) hỗ trợ đa luồng và thường cung cấp các tùy chọn cấu hình về cách các luồng hoạt động như thế nào. Ngược lại, các ứng dụng cây nhà lá vườn (tự xây dựng và phát triển) của Bộ phận CNTT của Doanh nghiệp hiếm khi đa luồng, mặc dù chúng có thể sử dụng một nền tảng (ví dụ, một máy chủ ứng dụng) cho phép chúng đa luồng bằng cách hỗ trợ nhiều yêu cầu đơn luồng tại một thời điểm.

4. Bộ nhớ ảo

Quản lý bộ nhớ là một chức năng chính của bất kỳ hệ điều hành nào và việc thiếu RAM có thể dễ dàng gây ra các vấn đề cho một máy chủ hoặc thậm chí, một máy tính cá nhân. Do đó, một khái niệm quan trọng khác để tìm hiểu khi khắc phục các vấn đề CNTT của Doanh nghiệp là cách thức bộ nhớ ảo hoạt động như thế nào.

Không gian Địa chỉ Ảo

Như đã được đề cập trước đây, mỗi tiến trình thực thi “như thể” nó có quyền truy cập độc quyền vào một lượng lớn bộ nhớ RAM của máy tính. Một hệ điều hành đạt được điều này bằng cách cung cấp cho mỗi tiến trình một không gian địa chỉ ảo. Không gian địa chỉ ảo này bao gồm mọi địa chỉ bộ nhớ có thể truy cập được bởi tiến trình, thậm chí ngay cả khi nó hiện không thực sự sẵn sàng trong bộ nhớ RAM. Dĩ nhiên, có rất nhiều tiến trình trên một máy tính và không nơi nào có gần đủ bộ nhớ RAM để cho phép mỗi tiến trình có riêng một lượng lớn bộ nhớ RAM để cấp phát cho nó. Do đó, khái niệm về bộ nhớ ảo cho phép một hệ điều hành chia sẻ không gian bộ nhớ vật lý cho các tiến trình.

Điều quan trọng là hiểu rằng những không gian địa chỉ ảo được chia thành các phân khúc nhỏ được gọi là các trang (pages) (thường có kích cỡ là 4K nhưng cũng có thể khác). Trong hình dưới đây, bạn sẽ phải lưu ý về cách các trang không gian địa chỉ ảo được ánh xạ tới bộ nhớ vật lý như thế nào. Khi một tiến trình phải truy cập vào mọi bộ nhớ có thể đánh địa chỉ được khả dĩ mà nó cần, phần lớn các tiến trình chỉ sử dụng một phần nhỏ của không gian địa chỉ. Bất kỳ địa chỉ nào được sử dụng đều được ánh xạ tới một bảng địa chỉ bộ nhớ được liên kết với tiến trình và chỉ ra vị trí của địa chỉ bộ nhớ ảo cụ thể được định vị trong bộ nhớ thật (vật lý). Ngay cả khi chỉ một phần nhỏ của không gian bộ nhớ ảo là cần thiết cho phần lớn các tiến trình, lượng (bộ nhớ) cần thiết hiếm khi vừa vặn hoàn toàn trong bộ nhớ thật (vật lý). Do đó, khi các trang địa chỉ bộ nhớ ảo đã cũ (ví dụ, đã không được sử dụng trong một thời gian) , chúng có thể được “chuyển ra” (“paged out”) sang vùng hoán đổi, nơi sử dụng bộ lưu trữ vĩnh viễn. Do bộ lưu trữ vĩnh viễn chậm hơn rất nhiều lần so với RAM, nếu một tiến trình cần truy xuất lại các trang địa chỉ ảo đã “chuyển ra”, nó phải đánh đổi bằng một chi phí hiệu suất nghiêm trọng.

Cách các trang không gian địa chỉ ảo được ánh xạ tới bộ nhớ vật lý

Phân trang so với Hoán đổi so với Phá (Paging/ Swapping/ Thrashing)

Phân trang, hoán đổi và phá là mọi thuật ngữ tương ứng với quá trình có được các trang bộ nhớ địa chỉ ảo thay đổi từ việc nằm trong RAM sang được đặt trong vùng hoán đổi và ngược lại. Điều quan trọng là hiểu được cách chúng được định nghĩa như thế nào.

– Phân trang là việc phân bổ không gian địa chỉ ảo thành các phân đoạn nhỏ hơn có thể đánh địa chỉ được, để quản lý bộ nhớ.
Một lỗi trang xảy ra khi một tiến trình yêu cầu một “trang” từ bộ nhớ không gian địa chỉ ảo nhưng không cư trú trong bộ nhớ vật lý. Điều này khiến cho hệ điều hành phải “chuyển vào” những nội dung bộ nhớ từ khu vực lưu trữ vĩnh viễn (thường là các phân đoạn của mã chương trình).

– Hoán đổi là quá trình loại bỏ một trang thường trú trong bộ nhớ vật lý của không gian địa chỉ ảo để giải phóng bộ nhớ vật lý sẽ bị chiếm bởi trang khác của không gian bộ nhớ ảo, có khả năng là từ tiến trình khác (do đó thuật ngữ hoán đổi nghĩa là hoán đổi từ trang này qua trang khác). Những trang nạn nhân của hoán đổi (bị hoán đổi) được chuyển ra thường được chọn thông qua các thuật toán LRU ( ít được sử dụng gần đây nhất). Điều này diễn ra tại mọi thời điểm trên mọi hệ điều hành và bản thân nó không phải là vấn đề miễn là nó có giới hạn.

– Phá xảy ra khi hầu như không có công việc hiệu quả nào được thực hiện trên một hệ thống bởi vì quá nhiều thời gian được dành để hoán đổi các trang bộ nhớ qua lại giữa RAM và vùng hoán đổi.

5. Ảo hóa máy chủ

Phần lớn các máy chủ trong môi trường CNTT của Doanh nghiệp ngày nay là máy ảo. Một máy ảo hay một VM là một loại ảo hóa mà theo đó một hệ điều hành được mô phỏng trong một hệ điều hành khác để từ đó, nhiều hệ thống độc lập đang được hoạt động trên cùng một phần cứng nền tảng (các CPU, RAM, thẻ giao tiếp mạng, thẻ lưu trữ, v.v.. được chia sẻ). Vì việc ảo hóa được sử dụng rất nhiều trong CNTT của Doanh nghiệp, việc hiểu cách nó hoạt động như thế nào là điều rất quan trọng để có khả năng khắc phục các vấn đề.

Các máy ảo giám sát

Một máy ảo giám sát hay người quản lý máy ảo – virtual machine manager (VMM) là hệ điều hành nền tảng hỗ trợ cho việc mô phỏng các hệ điều hành máy khách. Phần lớn các hệ điều hành này là những biến thể của Linux bên dưới vỏ bọc (Hyper-V là một ngoại lệ khi chạy trên Windows), nhưng các quản trị viên phần lớn là sử dụng giao diện đồ họa người dùng được cung cấp bởi sản phẩm máy ảo giám sát để thực hiện các chức năng khác nhau, chẳng hạn như:

– Tạo ra các máy chủ ảo mới trên một máy chủ vật lý cụ thể bằng cách cung cấp một hình ảnh hệ điều hành và kích cỡ của VM (ví dụ, CPU, RAM).

– Điều chỉnh tài nguyên của các máy chủ ảo hiện hữu (CPU, RAM).

– Giám sát các máy chủ ảo để xác định bao nhiêu CPU mà mỗi máy chủ ảo đang sử dụng, và mức sử dụng CPU tổng thể của máy chủ vật lý tại thời điểm đó.

– Tắt, khởi động, tái chế hoặc thậm chí xóa bỏ máy chủ ảo.

Điều quan trọng là phải hiểu rằng có hai kiểu máy ảo giám sát:

Bare metal hypervisor – Chúng được cài đặt trực tiếp trên phần cứng và bao gồm VMWare của Dell, Hyper-V của Microsoft, XenServer của Citrix, Nutanix AHV, hoặc mã nguồn mở (KVM, XEN) . Đây là kiểu máy ảo giám sát được sử dụng trong các môi trường CNTT của Doanh nghiệp.

Hosted hypervisor – Chúng hoạt động trong một hệ Điều hành như Windows, Linux, hoặc MAC, bao gồm máy trạm VMWare, Virtual Box của Oracle, Parallels của MAC, Máy tính ảo của Microsoft (Virtual PC). Mặc dù kiểu máy ảo này rất hữu ích cho mục đích kiểm nghiệm nhưng nó không được sử dụng trong các môi trường CNTT của Doanh nghiệp.

Trong sơ đồ dưới đây, bạn có thể nhìn thấy sự tương phản giữa phương pháp truyền thống trong việc triển khai một hệ điều hành (giờ đây hiếm khi được sử dụng trong các môi trường CNTT của Doanh nghiệp) , máy chủ ảo bare metal , và máy chủ ảo hosted (không được sử dụng trong các môi trường CNTT của Doanh nghiệp).

Sự tương phản giữa phương pháp truyền thống, máy chủ ảo bare metal và máy chủ ảo hosted

Ưu điểm của các Máy Ảo (VMs)

– Tách riêng Phần cứng (Di chuyển) – Nếu phần cứng gặp vấn đề hoặc thiếu tài nguyên trên một số phần cứng vật lý, máy chủ có thể được chuyển đi một cách nhanh chóng.

– Dự phòng Tự động – Nếu máy chủ vật lý bị lỗi sau đó mọi máy khách trên nó có thể được chuyển đi một cách tự động sang các máy vật lý khác trong cụm.

– Nhu cầu Tài nguyên Có thể điều chỉnh được – Nếu RAM hoặc CPU bổ sung là cần thiết, chúng có thể được thêm vào một cách nhanh chóng miễn là công suất hiện hữu trên cùng một máy vật lý.

– Tối ưu hóa việc Sử dụng Tài nguyên – Các CPU và RAM có thể được đăng ký quá mức để từ đó mức sử dụng tổng thể phần cứng được tối ưu hóa ngay cả nếu các hệ thống hiếm khi sử dụng mọi thứ chúng cần.

Khuyết điểm của các Máy Ảo ( VMs)

– Chi phí Mô phỏng – Có một lượng nhất định tài nguyên máy tính đã bị “lãng phí” khi quá trình mô phỏng phần cứng lấy bớt đi chu kỳ CPU bổ sung.

– Sự phức tạp của Chẩn đoán Hiệu suất – Do việc đăng ký quá mức, sự thiếu thốn CPU hoặc RAM (ví dụ, phá (thrashing) có thể là không rõ ràng trên máy khách nhưng xảy ra trên máy chủ.

Người ta thường chấp nhận rằng những lợi ích của ảo hóa máy chủ vượt xa những khuyết điểm đối với các máy chủ của CNTT, của Doanh nghiệp. Ngoài ra, ảo hóa máy chủ cũng đã cho phép điện toán đám mây phát triển một cách mạnh mẽ.

(Nguồn dịch tài liệu tham khảo từ: Group FB Quản trị & Bảo mật hệ thống ASV)

Nếu có bất kỳ thắc mắc hay góp ý nào, vui lòng bình luận phía dưới, hoặc liên hệ với HOSTVN, chúng tôi sẵn sàng hỗ trợ bạn ngay lập tức!

Ebook Wordpress

Đăng ký nhận Ebooks toàn tập hướng dẫn sử dụng WordPress cơ bản


Công nghệ

Góc nhìn tương lai của chuyển đổi số trải qua đại dịch Covid

2021-4-13 14:00:49

Công nghệTin tức

Tìm hiểu các nền tảng cơ bản về Công nghệ - Phần 2: Các hệ thống tập tin và lưu trữ

2021-5-13 15:38:23

0 trả lời ATác giả MQuản lý
    Chưa có phản hồi nào
Trung tâm cá nhân
Giỏ hàng
Phiếu mua hàng
Đăng nhập ngay
Tin nhắn Danh sách tin nhắn
Tìm kiếm
Tối