1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo nguyên lý hệ điều hành chủ đề quản lý tiến trình, luồng và các thuật toán điều độ tiến trình

34 11 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Quản Lý Tiến Trình, Luồng Và Các Thuật Toán Điều Độ Tiến Trình
Tác giả Nguyễn Thị Thu Hằng, Hồ Thị Khánh, Bùi Thị Phương Anh, Trần Văn Hải
Người hướng dẫn Thầy Vũ Thành Vinh
Trường học Trường Đại Học Thủy Lợi
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 34
Dung lượng 1,49 MB

Cấu trúc

  • CHƯƠNG 1: QUẢN LÝ TIẾN TRÌNH (4)
    • 1. Định nghĩa (4)
    • 2. Ưu điểm của đa tiến trình (4)
    • 3. Ví dụ minh họa đa tiến trình (5)
    • 4. Lưu đồ thuật toán (5)
    • 5. Mã nguồn chương trình (6)
  • CHƯƠNG 2: LUỒNG (8)
    • 1. Khái niệm (8)
    • 2. Mô hình luồng (8)
    • 3. Chương trình minh họa (9)
    • 4. Lưu đồ (0)
    • 5. Mã nguồn (0)
  • CHƯƠNG 3: CÁC THUẬT TOÁN ĐIỀU ĐỘ TIẾN TRÌNH (11)
    • 1. Thuật toán First – come First Served (11)
      • 1.1. Tìm hiểu về thuật toán (11)
      • 1.2. Chương trình mô tả thuật toán (12)
      • 1.3. Lưu đồ thuật toán (14)
      • 1.4. Mã nguồn của chương trình (15)
    • 2. Thuật toán Round Robin (17)
      • 2.1. Tìm hiểu về thuật toán (17)
      • 2.2. Chương trình mô tả thuật toán (18)
      • 2.3. Lưu đồ thuật toán (20)
      • 2.4. Mã nguồn chương trình (20)
    • 3. Thuật toán Shortest Job First (24)
      • 3.1. Tìm hiểu về thuật toán (24)
      • 3.2. Chương trình mô tả thuật toán (24)
      • 3.3. Lưu đồ thuật toán (26)
      • 3.4. Mã nguồn (26)
    • 4. Thuật toán Shortest Remaining Time Next (SRTN) (29)
      • 4.1. Tìm hiểu về thuật toán (29)
      • 4.2. Chương trình mô tả thuật toán (30)

Nội dung

Ưu điểm của đa tiến trình Đồng thời và đáp ứng nhanh hơn: Các tiểu tiến trình chạy song song, giúp ứng dụng phản hồi nhanh hơn khi một tiến trình gặp trở ngại, các tiến trình khác vẫn h

QUẢN LÝ TIẾN TRÌNH

Định nghĩa

Đa tiến trình là khả năng của hệ thống máy tính thực hiện nhiều nhiệm vụ và quy trình đồng thời, bao gồm phần cứng và phần mềm Tính năng này cho phép máy tính xử lý nhiều công việc mà không ảnh hưởng đến hiệu suất tổng thể Nhờ vào đa tiến trình, việc tối ưu hóa sử dụng tài nguyên và cải thiện khả năng hoạt động của hệ thống được thực hiện hiệu quả hơn.

Ưu điểm của đa tiến trình

Các tiểu tiến trình hoạt động song song, cho phép ứng dụng phản hồi nhanh chóng ngay cả khi một tiến trình gặp sự cố, trong khi các tiến trình khác vẫn tiếp tục hoạt động bình thường.

Đa tiến trình giúp chia sẻ tài nguyên và dữ liệu một cách dễ dàng hơn so với việc sử dụng nhiều quy trình riêng biệt.

 Giúp giảm lãng phí và tăng hiệu suất tổng thể của hệ thống.

 Thực hiện song song: Tận dụng hiệu quả CPU core có sẵn, giúp máy tính thực hiện nhiều tác vụ mà không làm gián đoạn đáng kể hiệu suất.

Quản lý linh hoạt và dễ dàng cho phép quản lý các tiến trình một cách hiệu quả hơn so với các quy trình độc lập Việc tạo ra và kết thúc tiến trình diễn ra nhanh chóng, mang lại sự linh hoạt tối ưu cho người dùng.

Đa tiến trình giúp ứng dụng thực hiện nhiều tác vụ đồng thời, như cập nhật giao diện người dùng, tải dữ liệu từ mạng và xử lý thông tin, mà không làm chậm hoặc đóng ứng dụng.

Ví dụ minh họa đa tiến trình

Quản lý thông tin các tiến trình hiện có

LUỒNG

Khái niệm

- Luồng: Chương trình đang thực hiện trong ngữ cảnh tiến trình

 Nhiều tiến trình -> nhiều luồng, mỗi luồng trên 1 vi xử lý.

 Hệ điều hành trước đây, mỗi tiến trình chỉ tương với ứng với một đơn vị xử lý duy nhất.

 Các lệnh được thực hiện một cách tuần tự

 Mỗi tiến trình chỉ thực hiện được một công việc ở một thời điểm.

 Hệ điều hành hiện đại, mỗi tiến trình có nhiều đơn vị xử lý:

 Mỗi đơn vị thực hiện của tiến trình là một chuỗi các lệnh được cấp

 phát CPU để thực hiện độc lập (song song), được gọi là luồng

 Luồng là đơn vị sử dụng CPU cơ bản , gồm:

 Định danh luồng( ID Thread)

 Bộ đếm chương trình (Program Computer)

 Tập các thanh ghi (Rigisters)

Mô hình luồng

- Mô hình đơn luồng (MS-DOS, UNIX):

 Tiến trình có một luồng điều khiển

 Tiến trình có khối quản lý PCB chứa đầy đủ thông tin trạng thái tiến trình, giá trị thanh ghi.

 Ngăn xếp chứa tham số, trạng thái hàm/ thủ tục/ chương trình con.

 Khi tiến trình thực hiện, nó sẽ làm chủ nội dung các thanh ghi và con trỏ lệnh.

- Mô hình đa luồng (Windows, Linux):

 Tiến trình có thể có nhiều luồng, có thể thực hiện nhiệm vụ tại nhiều thời điểm

 Mỗi luồng cần có khả năng quản lý con trỏ lệnh, nội dung thanh ghi.

 Luồng cũng có trạng thái riêng.

 chứa trong khối quản lý luồng

 Luồng cũng cần có ngăn xếp riêng.

 Tất cả các luồng của 1 tiến trình chia sẻ không gian nhớ và tài nguyên.

 Các luồng có cùng không gian địa chỉ và có thể truy cập tới dữ liệu của tiến trình.

Chương trình minh họa

Mã nguồn

1 Thuật toán First – come First Served

1.1 Tìm hiểu về thuật toán

- First-Come First-Served (FCFS) là một thuật toán lập lịch CPU đơn giản nhất lập lịch theo thời gian đến của các tiến trình.

Thuật toán lập lịch "đến trước phục vụ trước" (FCFS) quy định rằng quá trình nào yêu cầu CPU trước sẽ được cấp phát CPU trước Cách thức thực hiện của thuật toán này là sử dụng hàng đợi FIFO (First In, First Out), đảm bảo rằng các tiến trình được xử lý theo thứ tự mà chúng đến.

Khi một tiến trình sẵn sàng, PCB của nó sẽ được thêm vào cuối hàng đợi Khi CPU có sẵn, nó sẽ phân bổ cho tiến trình ở đầu hàng đợi, và tiến trình đang chạy sẽ bị loại bỏ khỏi hàng đợi FCFS là thuật toán lập lịch không ưu tiên.

CÁC THUẬT TOÁN ĐIỀU ĐỘ TIẾN TRÌNH

Thuật toán First – come First Served

1.1 Tìm hiểu về thuật toán

- First-Come First-Served (FCFS) là một thuật toán lập lịch CPU đơn giản nhất lập lịch theo thời gian đến của các tiến trình.

Thuật toán lập lịch "đến trước phục vụ trước" (FCFS) quy định rằng các quá trình yêu cầu CPU trước sẽ được cấp phát CPU trước Phương pháp này được thực hiện thông qua việc sử dụng hàng đợi FIFO (First In, First Out).

Khi một tiến trình sẵn sàng, PCB của nó sẽ được thêm vào cuối hàng đợi Khi CPU có sẵn, tiến trình ở đầu hàng đợi sẽ được phân bổ để chạy, và tiến trình đang chạy sẽ bị xóa khỏi hàng đợi FCFS là thuật toán lập lịch không ưu tiên, đảm bảo rằng tiến trình được xử lý theo thứ tự đến.

 Dạng đơn giản và cơ bản nhất của thuật toán Lập lịch CPU.

 Phương thức đến trước được phục vụ trước

 Nó rất phù hợp với các hệ thống theo mẻ trong đó khoảng thời gian dài hơn cho mỗi quy trình thường được chấp nhận.

 Vì đây là Thuật toán lập lịch CPU không được ưu tiên nên nó sẽ chạy cho đến khi hoàn tất quá trình thực thi.

 Thời gian chờ đợi trung bình ở FCFS cao hơn nhiều so với các thuật toán khác

 Các tiến trình ở cuối hàng đợi sẽ phải đợi lâu hơn để hoàn thành.

 Nó không phù hợp với các hệ điều hành chia sẻ thời gian trong đó mỗi tiến trình sẽ nhận được cùng một lượng thời gian CPU.

1.2 Chương trình mô tả thuật toán

- Chương trình giúp bạn hiểu về vấn đề điều phối tiến trình CPU bằng thuật toán First-Come First-Served (FCFS).

- Input: Thời gian xuất hiện và thời gian sử dụng CPU của mỗi tiến trình

- Output: Thời gian chờ trung bình

- Sau khi nhập thông tin:

Nhập Number of processes và ấn Create

Hiển thị số tiến trình cần nhập

Nhập thời gian xuất hiện và thời gian sử dụng CPU của mỗi tiến trình và ấn Calculate

1.4 Mã nguồn của chương trình

Thuật toán Round Robin

2.1 Tìm hiểu về thuật toán

- Round-Robin là một giải thuật định thời CPU

 Trong một chu kỳ, mỗi tiến trình được gán một thời gian giữ CPU nhất định.

 Round Robin xuất phát từ nguyên tắc vòng tròn, lần lượt mỗi người sẽ nhận được một phần bằng nhau của một thứ gì đó.

 Với sự hỗ trợ của Round Robin giúp các công việc phân bổ cho CPU được phân bổ hợp lý.

 Tất cả các quy trình đều được xử lý mà không có bất kỳ ưu tiên nào.

 Giải thuật mang lại hiệu suất tốt cho thời gian phản hồi trung bình

 Trong giải thuật không gặp phải các vấn đề thiếu hụt hay hiệu ứng bảo vệ.

 Round Robin không mang tính chu kỳ.

 Thêm các quy trình mới tạo vào cuối hàng đợi.

 Nếu thời gian ngắt của hệ điều hành thấp, đầu ra của bộ xử lý sẽ bị giảm.

 Hiệu suất bị phụ thuộc nhiều vào lượng tử thời gian.

 Không ưu tiên cho những việc quan trọng khi lập lịch vòng tròn.

 Phương pháp này mất nhiều thời gian cho việc chuyển đổi ngữ cảnh.

 Lượng tử thời gian thấp nên dẫn đến quá trình chuyển đổi ngữ cảnh trong hệ

 Trở ngại trong việc tìm một lượng tử thời gian chính xác.

 Không đặt được mức độ ưu tiên.

 Khả năng hiểu suy giảm.

2.2 Chương trình mô tả thuật toán

- Chương trình code dưới đây giúp bạn hiểu về vấn đề điều phối tiến trình CPU bằng thuật toán Round-Robin (RR).

- Input: Thời gian xuất hiện, thời gian sử dụng CPU của tiến trình và time slice

- Output: Thời gian chờ trung bình và thời gian lưu lại hệ thống trung bình

- Sau khi nhập thông tin và hiển thị kết quả:

Nhập Number of processes, Time slice và ấn Create

Hiển thị số tiến trình cần nhập

Nhập thời gian xuất hiện và thời gian sử dụng CPU của mỗi tiến trình và ấn Calculate

Thuật toán Shortest Job First

3.1 Tìm hiểu về thuật toán

- Shortest Job First (SJF) là một thuật toán lập lịch CPU trong hệ thống máy tính.

- Thuật toán này lựa chọn trong hàng đợi tiến trình có thời gian sử dụng CPU (CPU burst) ngắn nhất để phân phối CPU

- Nếu nhiều tiến trình tiếp theo với chu kỳ CPU bằng nhau, tiến trình đứng trước sẽ được chọn.

 Giải thuật được xem là tối ưu, thời gian chờ đợi trung bình giảm

 Tận dụng hết năng lực của CPU

 Cài đặt phức tạp, tốn nhiều xử lý để quản lý quá trình.

Mặc dù thuật toán SJF (Shortest Job First) tối ưu hóa thời gian chờ đợi, nhưng nó không thể được triển khai ở cấp định thời CPU ngắn do không thể dự đoán độ dài chu kỳ CPU tiếp theo.

Giải thuật SJF có thể được triển khai theo nhiều phương pháp khác nhau, bao gồm cả cách trưng dụng và không trưng dụng CPU Sự lựa chọn giữa các phương pháp này có thể tác động đáng kể đến hiệu suất hoạt động của giải thuật.

3.2 Chương trình mô tả thuật toán

- Chương trình code dưới đây giúp bạn hiểu về vấn đề điều phối tiến trình CPU bằng thuật toán SJF.

- Input: Thời gian xuất hiện, thời gian sử dụng CPU của tiến trình

- Output: Thời gian chờ trung bình và thời gian lưu lại hệ thống trung bình

- Sau khi nhập number of processes:

Thuật toán Shortest Remaining Time Next (SRTN)

4.1 Tìm hiểu về thuật toán

Shortest Remaining Time Next (SRTN) là một thuật toán lập lịch CPU quan trọng, được áp dụng trong hệ thống máy tính để tối ưu hóa việc chia sẻ thời gian CPU giữa các tiến trình.

- Ưu tiên tiến trình có thời gian còn lại ngắn nhất

SRTN (Shortest Remaining Time Next) tối ưu hóa thời gian chờ đợi bằng cách ưu tiên các tiến trình có thời gian thực thi ngắn nhất còn lại Phương pháp này không chỉ giảm thiểu thời gian chờ đợi của các tiến trình mà còn nâng cao hiệu suất tổng thể của hệ thống.

Để đảm bảo thời gian thực hiện tối thiểu, thuật toán SRTN ưu tiên các tiến trình có thời gian thực thi ngắn nhất Điều này giúp các tiến trình ngắn hoàn

SRTN yêu cầu hệ điều hành theo dõi và so sánh thời gian thực thi còn lại của tất cả các tiến trình, điều này dẫn đến khối lượng tính toán lớn và có thể tiêu tốn nhiều tài nguyên hệ thống.

Rủi ro đói tài nguyên (starvation) xảy ra khi các tiến trình có thời gian thực thi dài không được chạy do sự xuất hiện liên tục của các tiến trình ngắn hơn trong hàng đợi sẵn sàng Điều này dẫn đến tình trạng không công bằng, khiến cho các tiến trình dài bị bỏ rơi và không bao giờ có cơ hội thực thi.

SRTN đòi hỏi tính toán chi tiết và thường xuyên cập nhật thời gian thực thi còn lại cho tất cả các tiến trình, điều này có thể dẫn đến tăng tải CPU và độ phức tạp trong việc quản lý lịch trình.

 Không phù hợp cho hệ thống thời gian thực: SRTN có thể gây ra sự

4.2 Chương trình mô tả thuật toán

- Chương trình code dưới đây giúp bạn hiểu về vấn đề điều phối tiến trình CPU bằng thuật toán SJF.

- Input: Thời gian xuất hiện, thời gian sử dụng CPU của tiến trình

- Output: Thời gian chờ trung bình và thời gian lưu lại hệ thống trung bình

- Sau khi nhập number of processes:

- Hiển thị kết quả sau khi nhập thời gian từng tiến trình và ấn calculate:

4.3 Lưu đồ mô tả thuật toán

Ngày đăng: 03/01/2024, 15:10

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w