Giáo Trình Lý Thuyết Hệ Điều Hành Phần 2 của Nguyễn Kim Tuấn

Giáo trình nghiên cứu lý thuyết hệ điều hành phần 2 nguyễn kim tuấn, trình bày lý thuyết rõ ràng, minh họa ví dụ thực tế, phù hợp sinh viên .

Trường đại học

Trường Đại Học

Chuyên ngành

Lý Thuyết Hệ Điều Hành

Người đăng

Ẩn danh

Thể loại

Giáo Trình
139
2
0

Phí lưu trữ

35 Point

Mục lục chi tiết

3. CHƯƠNG 3: QUẢN LÝ BỘ NHỚ

3.1. Nhiệm vụ của quản lý bộ nhớ

3.2. Kỹ thuật cấp phát bộ nhớ (nạp chương trình vào bộ nhớ chính)

3.2.1. Kỹ thuật phân vùng cố định (Fixed Partitioning)

3.2.2. Kỹ thuật phân vùng động (Dynamic Partitioning)

Tóm tắt

I. Tổng quan về Giáo Trình Lý Thuyết Hệ Điều Hành Phần 2 Nguyễn Kim Tuấn

Giáo trình "Lý Thuyết Hệ Điều Hành Phần 2" của Nguyễn Kim Tuấn cung cấp cái nhìn sâu sắc về các khái niệm và nguyên lý cơ bản của hệ điều hành. Tài liệu này không chỉ giúp sinh viên nắm vững lý thuyết mà còn áp dụng vào thực tiễn. Nội dung được trình bày rõ ràng, dễ hiểu, phù hợp với nhu cầu học tập và nghiên cứu của sinh viên ngành công nghệ thông tin.

1.1. Nội dung chính của giáo trình

Giáo trình bao gồm các chủ đề như quản lý bộ nhớ, quản lý tiến trình và các khái niệm về hệ điều hành LinuxWindows. Mỗi chương đều có ví dụ minh họa cụ thể, giúp sinh viên dễ dàng tiếp cận và hiểu rõ hơn về lý thuyết.

1.2. Đối tượng sử dụng giáo trình

Giáo trình này được thiết kế cho sinh viên đại học, các giảng viên và những người làm trong lĩnh vực công nghệ thông tin. Nó cũng hữu ích cho những ai muốn tìm hiểu sâu về hệ điều hành và các khái niệm liên quan.

II. Thách thức trong việc quản lý tiến trình trong hệ điều hành

Quản lý tiến trình là một trong những thách thức lớn nhất mà các hệ điều hành phải đối mặt. Việc tạo, quản lý và kết thúc tiến trình đòi hỏi hệ thống phải có cơ chế hiệu quả để đảm bảo tài nguyên được sử dụng hợp lý. Nguyễn Kim Tuấn đã chỉ ra rằng, trong môi trường Windows NT, việc tạo tiến trình không được thực hiện trực tiếp mà thông qua hệ thống con.

2.1. Các vấn đề thường gặp trong quản lý tiến trình

Một số vấn đề phổ biến bao gồm việc tiến trình không thừa kế đúng các thuộc tính từ tiến trình cha, dẫn đến việc quản lý tài nguyên không hiệu quả. Điều này có thể gây ra tình trạng tắc nghẽn trong hệ thống.

2.2. Giải pháp cho quản lý tiến trình hiệu quả

Giải pháp bao gồm việc sử dụng các handle đối tượng để duy trì mối quan hệ giữa các tiến trình. Hệ thống cũng cần có cơ chế để đảm bảo rằng các tiến trình không truy cập vào vùng nhớ không được phép.

III. Phương pháp quản lý bộ nhớ trong hệ điều hành

Quản lý bộ nhớ là một nhiệm vụ quan trọng trong hệ điều hành. Nguyễn Kim Tuấn đã trình bày rõ ràng các phương pháp như phân trang và phân đoạn. Những phương pháp này giúp tối ưu hóa việc sử dụng bộ nhớ và đảm bảo rằng nhiều tiến trình có thể hoạt động đồng thời.

3.1. Phân trang và phân đoạn

Phân trang chia bộ nhớ thành các trang có kích thước cố định, trong khi phân đoạn cho phép các khối nhớ có kích thước khác nhau. Việc kết hợp cả hai phương pháp này giúp tăng cường hiệu quả quản lý bộ nhớ.

3.2. Tác động của quản lý bộ nhớ đến hiệu suất hệ thống

Quản lý bộ nhớ không chỉ ảnh hưởng đến hiệu suất của hệ thống mà còn quyết định khả năng mở rộng và tính linh hoạt của hệ điều hành. Việc tối ưu hóa quản lý bộ nhớ giúp giảm thiểu tình trạng phân mảnh và tăng cường khả năng xử lý của hệ thống.

IV. Ứng dụng thực tiễn của lý thuyết hệ điều hành

Lý thuyết về hệ điều hành không chỉ dừng lại ở lý thuyết mà còn có nhiều ứng dụng thực tiễn. Các khái niệm như quản lý tiến trình và bộ nhớ được áp dụng trong việc phát triển phần mềm và hệ thống máy tính hiện đại.

4.1. Ứng dụng trong phát triển phần mềm

Các nhà phát triển phần mềm cần hiểu rõ về cách thức hoạt động của hệ điều hành để tối ưu hóa ứng dụng của họ. Việc nắm vững lý thuyết giúp họ thiết kế các ứng dụng hiệu quả hơn.

4.2. Ứng dụng trong quản lý hệ thống

Quản lý hệ thống yêu cầu kiến thức vững về lý thuyết hệ điều hành. Các chuyên gia cần biết cách tối ưu hóa tài nguyên và đảm bảo rằng hệ thống hoạt động ổn định và hiệu quả.

V. Kết luận về Giáo Trình Lý Thuyết Hệ Điều Hành Phần 2

Giáo trình "Lý Thuyết Hệ Điều Hành Phần 2" của Nguyễn Kim Tuấn là một tài liệu quý giá cho sinh viên và những người làm trong lĩnh vực công nghệ thông tin. Nó không chỉ cung cấp kiến thức lý thuyết mà còn giúp người đọc áp dụng vào thực tiễn.

5.1. Tương lai của nghiên cứu hệ điều hành

Nghiên cứu về hệ điều hành sẽ tiếp tục phát triển, đặc biệt trong bối cảnh công nghệ ngày càng tiến bộ. Các khái niệm mới sẽ được đưa vào giảng dạy và nghiên cứu.

5.2. Khuyến nghị cho sinh viên và giảng viên

Sinh viên và giảng viên nên thường xuyên cập nhật kiến thức mới và áp dụng lý thuyết vào thực tiễn. Việc tham gia các khóa học và hội thảo sẽ giúp nâng cao hiểu biết về hệ điều hành.

15/07/2025

Trích đoạn nội dung tài liệu

một tiến trình, nó không tự động tạo một tiểu trình. Do đó, đối với các hệ điều hành này, hệ thống con gọi trình quản lý tiến trình windows NT một lần nữa để tạo ra một tiểu trình cho tiến trình mới, mà nó nhận được một handle của tiểu trình từ windows NT. Thông tin tiểu trình và tiến trình thích hợp sau đó được trả lại cho ứng dụng. Trong Windows 16-bit và POSIX, các tiểu trình không được hỗ trợ.

Do đó, đối với các hệ điều hành như thế này, hệ thống con có một tiểu trình cho tiến trình mới từ windows NT, cho nên tiến trình có thể được kích hoạt, nhưng chi trả lại thông tin tiến trình cho ứng dụng. Trong thực tế, tiến trình ứng dụng được cài đặt bằng cách sử dụng một tiểu trình không thấy cho ứng dụng. Khi một tiến trình mới được tạo trong Win32 hay OS/2, tiến trình mới thừa kế nhiều đặc tính của nó từ tiến trình tạo. Tuy nhiên, trong môi trường hệ điều hành windows NT, việc tạo tiến trình này không được thực hiện trực tiếp.

Một tiến trình client ứng dụng phát ra yêu cầu tạo tiến trình của nó đến cho hệ thống con hệ điều hành; sau đó một tiến trình trong hệ thống con đến lượt nó phát ra một yêu cầu tiến trình cho thành phần Executive của windows NT. Vì tác dụng mong đợi là tiến trình mới thừa kế các đặc tính của tiến trình client và không thừa kế từ tiến trình server, nên windows NT cho phép hệ thống con chỉ định cha của tiến trình mới. Sau đó tiến trình mới thừa kế token truy xuất, thời gian quota, độ ưu tiên cơ sở, và mối quan hệ processor mặc định của tiến trình cha. Trong windows NT, không có quan hệ được định nghĩa trước giữa các tiến trình.

Tuy nhiên, cả hệ điều hành POSIX và hệ điều hành OS/2 đều áp đặt một mối quan hệ phân cấp. Mỗi tiến trình mở rộng một tiến trình ban đầu được tạo bởi một tiến trình khác và được xem như cấp dưới tiến trình tạo ra nó. Bằng cách sử dụng các handle đối tượng, hệ thống con hệ điều hành có thể duy trì các mối quan hệ giữa các tiến trình này. Chương III QUẢN LÝ BỘ NHỚ Quản lý bộ nhớ là một trong những nhiệm vụ quan trọng và phức tạp nhất của hệ điều hành.

Bộ phận quản lý bộ nhớ xem bộ nhớ chính như là một tài nguyên của hệ thống dùng để cấp phát và chia sẻ cho nhiều tiến trình đang ở trong trạng thái active. Các hệ điều hành đều mong muốn có nhiều hơn các tiến trình trên bộ nhớ chính. Công cụ cơ bản của quản lý bộ nhớ là sự phân trang (paging) và sự phân đoạn (segmentation). Với sự phân trang mỗi tiến trình được chia thành nhiều phần nhỏ có quan hệ với nhau, với kích thước của trang là cố định.

Sự phân đoạn cung cấp cho chươngtrình người sử dụng các khối nhớ có kích thước khác nhau. Hệ điều hành cũng có thể kết hợp giữa phân trang và phân đoạn để có được một chiến lược quản lý bộ nhớ linh hoạt hơn. Nhiệm vụ của quản lý bộ nhớ Trong các hệ thống đơn chương trình (uniprogramming), trên bộ nhớ chính ngoài hệ điều hành, chỉ có một chương trình đang thực hiện. Trong các hệ thống đa chương (multiprogramming) trên bộ nhớ chính ngoài hệ điều hành, có thể có nhiều tiến trình đang hoạt động.

Do đó nhiệm vụ quản lý bộ nhớ của hệ điều hành trong hệ thống đa chương trình sẽ phức tạp hơn nhiều so với trong hệ thống đơn chương trình. Trong hệ thống đa chương bộ phận quản lý bộ nhớ phải có nhiệm vụ đưa bất kỳ một tiến trình nào đó vào bộ nhớ khi nó có yêu cầu, kể cả khi trên bộ nhớ không còn không gian trống, ngoài ra nó phải bảo vệ chính hệ điều hành và các tiến trình trên bộ nhớ tránh các trường hợp truy xuất bất hợp lệ xảy ra. Như vậy việc quản lý bộ nhớ trong các hệ thống đa chương là quan trọng và cần thiết. Bộ phận quản lý bộ nhớ phải thực hiện các nhiệm vụ sau đây:  Sự tái định vị (Relocation): Trong các hệ thống đa chương, không gian bộ nhớ chính thường được chia sẻ cho nhiều tiến trình khác nhau và yêu cầu bộ nhớ của các tiến trình luôn lớn hơn không gian bộ nhớ vật lý mà hệ thống có được.

Do dó, một chương trình đang hoạt động trên bộ nhớ cũng có thể bị đưa ra đĩa (swap- out) và nó sẽ được đưa vào lại (swap-in) bộ nhớ tại một thời điểm thích hợp nào đó sau này. Vấn đề đặt ra là khi đưa một chương trình vào lại bộ nhớ thì hệ điều hành phải định vị nó vào đúng vị trí mà nó đã được nạp trước đó. Để thực hiện được điều này hệ điều hành phải có các cơ chế để ghi lại tất cả các thông tin liên quan đến một chương trình bị swap-out, các thông tin này là cơ sở để hệ điều hành swap-in chương trình vào lại bộ nhớ chính và cho nó tiếp tục hoạt động. Hệ điều hành buộc phải swap-out một chương trình vì nó còn không gian bộ nhớ chính để nạp tiến trình khác, do dó sau khi swap-out một chương trình hệ điều hành phải tổ chức lại bộ nhớ để chuẩn bị nạp tiến trình vừa có yêu cầu.

Các nhiệm vụ trên do bộ phần quản lý bộ nhớ của hệ điều hành thực hiện. Ngoài ra trong nhiệm vụ này hệ điều hành phải có khả năng chuyển đổi các địa chỉ bộ nhớ được ghi trong code của chương trình thành các địa chỉ vật lý thực tế trên bộ nhớ chính khi chương trình thực hiện các thao tác truy xuất trên bộ nhớ, bởi vì người lập trình không hề biết trước hiện trạng của bộ nhớ chính và vị trí mà chương trình được nạp khi chương trình của họ hoạt động. Trong một số trường hợp khác các chương trình bị swap- out có thể được swap-in vào lại bộ nhớ tại vị trí khác với vị trí mà nó được nạp trước đó.  Bảo vệ bộ nhớ (Protection): Mỗi tiến trình phải được bảo vệ để chống lại sự truy xuất bất hợp lệ vô tình hay có chủ ý của các tiến trình khác.

Vì thế các tiến trình trong các chương trình khác không thể tham chiếu đến các vùng nhớ đã dành cho một tiến trình khác để thực hiện các thao tác đọc/ghi mà không được phép (permission), mà nó chỉ có thể truy xuất đến không gian địa chỉ bộ nhớ mà hệ điều hành đã cấp cho tiến trình đó. Để thực hiện điều này hệ thống quản lý bộ nhớ phải biết được không gian địa chỉ của các tiến trình khác trên bộ nhớ và phải kiểm tra tất cả các yêu cầu truy xuất bộ nhớ của mỗi tiến trình khi tiến trình đưa ra địa chỉ truy xuất. Điều này khó thực hiện vì không thể xác định địa chỉ của các chương trình trong bộ nhớ chính trong quá trình biên dịch mà phải thực hiện việc tính toán địa chỉ tại thời điểm chạy chương trình. Hệ điều hành có nhiều chiến lược khác nhau để thực hiện điều này.

Điều quan trọng nhất mà hệ thống quản lý bộ nhớ phải thực hiện là không cho phép các tiến trình của người sử dụng truy cập đến bất kỳ một vị trí nào của chính hệ điều hành, ngoại trừ vùng dữ liệu và các rountine mà hệ điều hành cung cấp cho chương trình người sử dụng.  Chia sẻ bộ nhớ (Sharing): Bất kỳ một chiến lược nào được cài đặt đều phải có tính mềm dẻo để cho phép nhiều tiến trình có thể truy cập đến cùng một địa chỉ trên bộ nhớ chính. Ví dụ, khi có nhiều tiến trình cùng thực hiện một chương trình thì việc cho phép mỗi tiến trình cùng truy cập đến một bản copy của chương trình sẽ thuận lợi hơn khi cho phép mỗi tiến trình truy cập đến một bản copy sở hữu riêng. Các tiến trình đồng thực hiện (co-operating) trên một vài tác vụ có thể cần để chia sẻ truy cập đến cùng một cấu trúc dữ liệu.

Hệ thống quản lý bộ nhớ phải điều khiển việc truy cập đến không gian bộ nhớ được chia sẻ mà không vi phạm đến các yêu cầu bảo vệ bộ nhớ. Ngoài ra, trong môi trường hệ điều hành đa nhiệm hệ điều hành phải chia sẻ không gian nhớ cho các tiến trình để hệ điều hành có thể nạp được nhiều tiến trình vào bộ nhớ để các tiến trình này có thể hoạt động đồng thời với nhau.  Tổ chức bộ nhớ logic (Logical organization): Bộ nhớ chính của hệ thống máy tính được tổ chức như là một dòng hoặc một mảng, không gian địa chỉ bao gồm một dãy có thứ tự các byte hoặc các word. Bộ nhớ phụ cũng được tổ chức tương tự.

Mặc dù việc tổ chức này có sự kết hợp chặt chẽ với phần cứng thực tế của máy nhưng nó không phù hợp với các chương trình. Đa số các chương trình đều được chia thành các modun, một vài trong số đó là không thể thay đổi (read only, execute only) và một vài trong số đó chứa dữ liệu là có thể thay đổi. Nếu hệ điều hành và phần cứng máy tính có thể giao dịch một cách hiệu quả với các chương trình của người sử dụng và dữ liệu trong các modun thì một số thuận lợi có thể thấy rõ sau đây:  Các modun có thể được viết và biên dịch độc lập, với tất cả các tham chiếu từ một modun đến modun khác được giải quyết bởi hệ thống tại thời điểm chạy.  Các mức độ khác nhau của sự bảo vệ, read-only, execute-only, có thể cho ra các modun khác nhau.

 Nó có thể đưa ra các cơ chế để các modun có thể được chia sẻ giữa các tiến trình. Công cụ đáp ứng cho yêu cầu này là sự phân đoạn (segmentation), đây là một trong những kỹ thuật quản lý bộ nhớ được trình bày trong chương này.  Tổ chức bộ nhớ vật lý (Physical organization): Như chúng ta đã biết bộ nhớ máy tính được tổ chức theo 2 cấp: bộ nhớ chính và bộ nhớ phụ. Bộ nhớ chính cung cấp một tốc độ truy cập dữ liệu cao, nhưng dữ liệu trên nó phải được làm tươi thường xuyên và không thể tồn tại lâu dài trên nó.

Bộ nhớ phụ có tốc độ truy xuất chậm và rẻ tiền hơn so với bộ nhớ chính nhưng nó không cần làm tươi thường xuyên. Vì thế bộ nhớ phụ có khả năng lưu trữ lớn và cho phép lưu trữ dữ liệu và chương trình trong một khoảng thời gian dài, trong khi đó bộ nhớ chính chỉ để giữ (hold) một khối lượng nhỏ các chương trình và dữ liệu đang được sử dụng tại thời điểm hiện tại.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ