Matching Pairs Hệ Điều HànhOnline version kiến thức chương 5 đến 11 by Nguyễn An Nhật 1 Linux sử dụng bộ lập lịch “hoàn toàn công bằng”, cụ thể nó như thế nào? 2 Lập lịch theo tỷ lệ phân bổ (Proportional share) 3 Bộ lặp lịch Windows có những đặc trưng gì 4 Lập lịch “Thời gian thực tỷ lệ đơn điệu” (Rate-monotonic realtime) 5 Lập lịch “Tác vụ tới hạn” (EDF / Earliest-deadline-first) 6 Khái niệm lập lịch đa nhân. 7 Lập lịch thời gian thực cứng (Hard realtime ) 8 Lập lịch thời gian thực mềm (Soft real-time) 9 Mô hình hóa và mô phỏng có thể được sử dụng để đánh giá một thuật toán lập lịch CPU. là khi hệ thống phải đáp ứng chính xác các yêu cầu thời gian thực mà không chấp nhận sai lệch. là phương pháp phân phối tài nguyên CPU cho các tiểu trình dựa trên tỷ lệ được xác định trước. mô phỏng các tình huống và xem xét các chỉ số như thời gian đáp ứng và sự công bằng trong phân phối tài nguyên. là một thuật toán lập lịch ưu tiên các tiểu trình dựa trên thời hạn gần nhất của chúng. để phân phối công việc đồng đều cho các tiểu trình. là việc quản lý và phân phối các tiểu trình trên nhiều nhân CPU trong hệ thống đa nhân. là một thuật toán lập lịch ưu tiên các tiểu trình dựa trên tần suất của chúng. là khi hệ thống cố gắng đáp ứng các yêu cầu thời gian thực nhưng có thể chấp nhận một số sai lệch. lập lịch đa cấp, ưu tiên tiểu trình và lập lịch theo sự ưu tiên của người dùng 1 Biến số đơn nguyên là gì? 2 Mutex lock là gì? 3 Lệnh đơn nguyên là gì? 4 Cách sử dụng Rào Cản? 5 Cách sử dụng Mutex lock ? 6 Rào cản (Barrier) là gì? 7 Đoạn code nào là đối tượng cần đồng bộ? Tại sao? Bằng cách nào? 8 Cấu trúc của một chương trình gồm những phần code nào? một điểm trong chương trình mà các tiểu trình phải đến trước khi tiếp tục thực hiện, tạo ra sự đồng bộ hóa. là một cơ chế đồng bộ hóa được sử dụng để bảo vệ các phần của chương trình khỏi sự cạnh tranh đảm bảo các tiểu trình không vượt qua nhau trước khi đạt tới rào cản. là một lệnh không bị ngắt giữa quá trình thực hiện khai báo biến, hàm, đoạn mã chính và các khối điều khiển như vòng lặp và điều kiện. có thể được đọc và ghi một cách nguyên tử, tránh tình trạng cạnh tranh. bị cạnh tranh (race condition) khi được thực thi bởi nhiều tiểu trình. Để đồng bộ hóa, có thể sử dụng các cơ chế như mutex lock, semaphore,hay monitor Khi một tiểu trình giữ mutex lock, các tiểu trình khác phải chờ đến khi nó được giải phóng để thực hiện phần mã đồng bộ. 1 Cách nó hoạt động? 2 03 tiêu chí của một giải thuật đồng bộ là gì? 3 Busy waiting là gì? 4 Giải thuật Peterson có cấu trúc ra sao? 5 Khi nào xuất hiện, tác động của Busy waiting đến hệ thống là gì? 6 Tính sống còn (liveness) của các bài toán đồng bộ là gì? 7 Semaphore là gì? 8 Test_and_set() hoạt động ra sao? 9 Tình trạng cạnh tranh (race condition) là gì? 10 Cách sử dụng? 11 Đặc điểm và cách Peterson hoạt động. 12 Starvation nói đến tình trạng nào trong hệ thống? 13 Monitor là gì? một cấu trúc dữ liệu đồng bộ hóa kết hợp mutex lock và điều kiện (condition) để quản lý các tiểu trình là khi một tiểu trình tiếp tục kiểm tra điều kiện đồng bộ trong một vòng lặp mà không chuyển quyền điều khiển cho tiểu trình khác. Nó có cấu trúc gồm hai quy tắc if và while để đảm bảo sự tuần tự trong việc truy cập tài nguyên. hoạt động như một lệnh đơn nguyên, kiểm tra giá trị của biến và đặt nó thành giá trị khác. Hàm này thường được sử dụng để triển khai mutex lock. 3 tiêu chí của một giải thuật đồng bộ là sự hoàn thành (safety), sự liên tục (liveness) và không bị bế tắc (freedom from deadlock). Giải thuật Peterson là một giải thuật đồng bộ hai tiểu trình, sử dụng các biến flag và turn để kiểm soát quyền truy cập vào phần mã đồng bộ. có thể tạo ra sự lãng phí tài nguyên CPU và làm tăng độ trễ. Nó có thể có giá trị không âm và cho phép một số tiểu trình truy cập đồng thời, trong khi số lượng truy cập vượt quá giá trị semaphore, TT khác đợi xảy ra khi hai hoặc nhiều tiểu trình cùng truy cập và thay đổi cùng một tài nguyên, dẫn đến kết quả không xác định hoặc không đúng. một cơ chế đồng bộ hóa dùng để quản lý tài nguyên chia sẻ. đề cập đến khả năng các tiểu trình hoàn thành công việc của mình, không bị bế tắc hoặc chết lặp khi một tiểu trình không thể tiếp tục thực thi hoặc không được ưu tiên trong việc truy cập tài nguyên Chỉ một tiểu trình có thể thực hiện các thao tác trên monitor tại một thời điểm. 1 Mô hình: Đồ thị cấp phát tài nguyên (Resource Allocation Graph - RAG) 2 Hệ thống không an toàn: 3 Thứ tự sử dụng tài nguyên của một loại tiến trình. 4 Loại trừ tắc nghẽn được thực hiện ra sao? 5 Giải thuật nhà băng (Banker's algorithm) 6 Hệ thống an toàn: 7 Thứ tự cấp phát nguyên của một loại tiến trình 8 4 điều kiện xảy ra tắc nghẽn là gì? giải thuậtnhà băng,sử dụng tài nguyên có ưu tiêntăng cường thứ tự cấp phát tài nguyên và giới hạn số lượng tài nguyên mà mỗi tiến trình có thể yêu cầu Sự yêu cầu không được thỏa mãn, Không có khả năng chờ, Không ưu tiên, Vòng chờ Là trạng thái trong đó có thể tìm thấy một thứ tự thỏa mãn tất cả các yêu cầu tài nguyên của các tiến trình mà không xảy ra tắc nghẽn. Thứ tự cấp phát tài nguyên của một loại tiến trình xác định cách mà tiến trình đó yêu cầu và sử dụng tài nguyên trong hệ thống. Là trạng thái mà không có thứ tự nào có thể thỏa mãn tất cả các yêu cầu tài nguyên của các tiến trình mà không xảy ra tắc nghẽn. là một giải thuật sử dụng để kiểm tra một yêu cầu cấp phát tài nguyên từ các tiến trình trong hệ thống có dẫn đến tình trạng tắc nghẽn hay không. là một đồ thị hướng đồng thời được sử dụng để biểu diễn mối quan hệ giữa các tiến trình và tài nguyên trong một hệ thống. Thông thường, tiến trình cần yêu cầu tài nguyên trước khi sử dụng và phải hoàn trả tài nguyên sau khi sử dụng xong. 1 Memory: 2 Sử dụng khung trang 3 Địa chỉ vật lý: 4 Cách truy cập vào đc vật lí 5 Cache: 6 Register: 7 Địa chỉ luận lý: 8 Bảng trang / bảng phân trang (page table) 9 Khung trang (frame): 10 Trang (page): Là một đơn vị nhỏ của bộ nhớ ảo, được chia thành các khối có cùng kích thước với khung trang Khi một tiến trình truy cập vào địa chỉ luận lý, hệ điều hành sẽ ánh xạ nó sang địa chỉ vật lý tương ứng để truy cập dữ liệu thực tế. Là địa chỉ thực tế trong bộ nhớ vật lý của hệ thống Là một bộ nhớ tạm được sử dụng để lưu trữ các dữ liệu và hướng dẫn mà CPU sử dụng thường xuyên để tăng tốc độ truy cập dữ liệu. Là một cấu trúc dữ liệu được sử dụngđể ánh xạ giữa địa chỉ ảo và địa chỉ vật lý. Chứa ttin trongbộ nhớ ảo và khung trang tương ứng trong bộ nhớ vật lý Là địa chỉ được sử dụng trong không gian địa chỉ của một tiến trình. Nó là địa chỉ mà một tiến trình truy cập và sử dụng trong quá trình thực thi. Là các vùng nhớ nhỏ và nhanh nằm trong CPU, được sử dụng để lưu trữ các giá trị trung gian và thực hiện các phép toán nhanh chóng. Khung trang được sử dụng để lưu trữ dữ liệu và chương trình khi chúng được đưa từ bộ nhớ ảo vào bộ nhớ vật lý. Là các khối nhỏ của bộ nhớ vật lý, có cùng kích thước với trang. Là bộ nhớ chính trong máy tính, nơi lưu trữ dữ liệu và chương trình trong quá trình thực thi. 1 3 giai đoạn gắn địa chỉ (binding) cho các biến số và lệnh là khi nào? 2 Hiện tượng phân mảnh nội xảy ra khi nào? 3 Giai đoạn biên dịch (compile-time binding): 4 Phân trang trong Windows: 5 Thanh ghi LIMIT: 6 Giai đoạn liên kết (link-time binding): 7 Cách khắc phục? 8 Giai đoạn thực thi (run-time binding): 9 Cách khắc phục? 10 Thanh ghi BASE 11 Hiện tượng phân mảnh ngoại xảy ra khi nào? không gian địa chỉ của mỗi tiến trình được chia thành các trang có kích thước cố định và được ánh xạ vào các khung trang trong bộ nhớ vật lý không gian bộ nhớ vật lý không đủ để chứa các tiến trình hoạt độngCác khung trang trong bộ nhớ vật lý không liên tục và gây ra sự lãng phí tài nguyên Xác định kích thước của vùng nhớ được gán cho một tiến trình, giới hạn các địa chỉ có thể truy cập. sử dụng kỹ thuật hoán đổi (swapping), nâng cấp bộ nhớ vật lý hoặc sử dụng các kỹ thuật quản lý bộ nhớ hiệu quả hơn Lưu trữ địa chỉ bắt đầu của vùng nhớ được gán cho một tiến trình trong bộ nhớ vật lý. Địa chỉ được gán vào biến và lệnh trong quá trình liên kết và có thể thay đổi khi chương trình được tạo ra Địa chỉ được gán vào biến và lệnh trong quá trình biên dịch và không thay đổi sau đó. khônggian địa chỉ của một tiến trình trong bộ nhớ ảo bị chia thành nhiều khối nhỏ không liền kề,khó khăn trong việc cấp phát bộ nhớ cho các tiến trình Cách khắc phục phân mảnh nội có thể bao gồm thu gom rác (garbage collection), nén bộ nhớ và tái cấu trúc không gian địa chỉ của tiến trình. Địa chỉ được gán vào biến và lệnh trong quá trình thực thi chương trình và có thể thay đổi trong suốt quá trình chạy. Giai đoạn biên dịch (compile-time binding), Giai đoạn liên kết (link-time binding), Giai đoạn thực thi (run-time binding) 1 Các cách chọn lổ trống khi cấp phát liên tục: 2 Chia sẻ trang: 3 Bộ MMU: 4 , độ dịch / offset: 5 , số khung Bộ MMU (Memory Management Unit) là TP ở cpu, được sử dụng để quản lý việc ánh xạ giữa địa chỉ ảo và địa chỉ vật lý trong quá trình truy cập bộ nhớ. là số lượng khung trang trong bộ nhớ vật lý. là kỹ thuật cho phép nhiều tiến trình chia sẻ cùng một trang trong bộ nhớ ảo, giúp tiết kiệm tài nguyên và tăng hiệu suất hệ thống. khoảng cách giữa địa chỉ trang và địa chỉ bắt đầu của khung trang. Có thể sử dụng các thuật toán như Best-Fit, First-Fit hoặc Next-Fit để chọn lổ trống phù hợp nhất cho quá trình cấp phát liên tục của các khối bộ nhớ.