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

Tiểu luận nhập môn hệ điều hành thread scheduling (phần load sharing)

39 2 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 đề Tiểu luận nhập môn hệ điều hành thread scheduling (phần load sharing)
Tác giả Huỳnh Minh Ngọc
Người hướng dẫn Bùi Quy Anh, PTS.
Trường học Trường Đại Học Tôn Đức Thắng
Chuyên ngành Hệ Điều Hành
Thể loại Báo cáo
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 39
Dung lượng 387,83 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • I. Hệ thống nhúng (Embedded Operating Systems) (32)
    • 1. Định nghĩa (12)
    • 2. Cách thức hoạt động (12)
    • 3. Hệ thống nhúng khác nhau đáng kể (0)
    • 4. Ứng dụng thực tế (0)
  • II. Hệ điều hành thời gian thực (Real-time Operating Systems) (0)
    • 2. Cách thức hoạt động và đặc điểm (0)
    • 3. Phân loại (13)
  • I. Máy chủ web (Web server) (14)
    • 1. Máy chủ web (14)
    • 2. Luồng (Thread) (15)
    • 4. Đọc và giải thích hình (16)
    • 5. Giải pháp thứ ba Máy trạng thái hữu hạn (20)
    • 1. Lập lịch luồng (Thread Scheduling) (21)
    • 2. Chia sẻ tải (Load sharing) (22)
    • 3. Nhược điểm của chia sẻ tải (24)
    • 1. Các cơ chế hoạt động chung (26)
    • 2. Semaphore (26)
    • 3. Semaphore nhị phân (29)
    • 4. Hạn chế về thời gian chờ bận (busy waiting) (30)
  • PHỤ LỤC (32)
    • I. Các ví dụ thực tế (35)
      • 1. Lên lịch FCFS (35)
      • 2. Nút thắc cổ chai (36)
    • II. Một số bài toán minh họa nhược điểm của phương pháp FCFS:. 36 1. Bài toán 1: Cho dãy tiến trình và thời gian phục vụ tương ứng: 36 2. Bài toán 2: Giả sử các bộ xử lí P1, P2, P3 ở bài toán 1 có thời (0)

Nội dung

1 TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO TIỂU LUẬN NHẬP MÔN HỆ ĐIỀU HÀNH HỌC KÌ II Nhóm 04 Tổ 02 Họ Tên SV Huỳnh Minh Ngọc MSSV 52100651 Niên học 2021 2022 2 LỜI CẢM ƠN Đầu tiên[.]

Trang 1

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO TIỂU LUẬN NHẬP MÔN HỆ ĐIỀU HÀNH

Trang 2

LỜI CẢM ƠN

Đầu tiên em xin chân thành cảm ơn thầy BÙI QUY ANH, là người thầy dạy trực tiếp

bộ môn Nhập môn Hệ điều hành (Lý thuyết) Trong suốt thời gian học tập, thầy làngười đã tận tình chỉ dạy, hướng dẫn cũng như giúp đỡ để em có thể hoàn thành bàibáo cáo tiểu luận

Em cũng xin chân thành cảm ơn toàn thể giáo viên khoa Công nghệ thông tin củaTrường Đại học Tôn Đức Thắng đã ủng hộ, đồng hành cùng em để hoàn thiện bài báocáo này đồng thời giúp em có thêm nhiều kiến thức để chuẩn bị cho hành trang sắptới

Cuối cùng lời cảm ơn này em xin dành đến gia đình, các anh chị trong trường, nhất làcác anh chị trong câu lạc bộ ICON và những người bạn xung quanh luôn sát cánh,đưa ra những lời khuyên hữu ích cho em

Bài báo cáo này là minh chứng rõ nhất cho những cố gắng, nỗ lực học hỏi của em,tuy nhiên cũng không tránh khỏi thiếu sót Mong rằng em sẽ nhận được sự đóng góp,chỉ bảo từ các thầy cô để cho em có thể sửa đổi, bổ sung và hoàn thành tốt hơn nữa

Em rất mong sẽ nhận được sự hài lòng, giúp đỡ của các thầy cô Một lần nữa em xinchân thành cảm ơn!

TP Hồ Chí Minh, ngày 22 tháng 04 năm 2022

Tác giả (Ký tên và ghi rõ họ tên)

Huỳnh Minh Ngọc

Trang 3

BÁO CÁO ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG

Ngoài ra, trong bài Báo cáo còn sử dụng một số nhận xét, đánh giá cũng như số liệucủa các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung Báo cáo của mình Trường Đại học Tôn Đức Thắng không liên quan đến

những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếucó)

TP Hồ Chí Minh, ngày 22 tháng 04 năm 2022

Tác giả (Ký tên và ghi rõ họ tên)

Huỳnh Minh Ngọc

Trang 4

MỤC LỤC

LỜI CẢM ƠN 2

BÁO CÁO ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG 3

DANH MỤC HÌNH ẢNH 6

DANH MỤC BẢNG 7

DANH MỤC VIẾT TẮT 8

NỘI DUNG 9

Câu 1: Trình bày về hệ thống nhúng và thời gian thực 9

I Hệ thống nhúng (Embedded Operating Systems) 9

1 Định nghĩa: 9

2 Cách thức hoạt động: 9

3 Hệ thống nhúng khác nhau đáng kể: 10

4 Ứng dụng thực tế: 10

II Hệ điều hành thời gian thực (Real-time Operating Systems) 11

1 Định nghĩa: 11

2 Cách thức hoạt động và đặc điểm: 11

3 Phân loại: 12

Câu 2: Trình bày về Thread usage (Web server) (đọc và giải thích hình 2.8) 13

I Máy chủ web (Web server) 13

1 Máy chủ web 13

2 Luồng (Thread) 14

Trang 5

3 Máy chủ đơn luồng và máy chủ đa luồng (Single threaded web

and multithreaded server web) 14

4 Đọc và giải thích hình 15

5 Giải pháp thứ ba Máy trạng thái hữu hạn 18

Câu 3: Thread Scheduling (phần LOAD SHARING) 19

1 Lập lịch luồng (Thread Scheduling) 20

2 Chia sẻ tải (Load sharing): 20

3 Nhược điểm của chia sẻ tải 23

Câu 4: Semaphores 24

1 Các cơ chế hoạt động chung: 25

2 Semaphore 25

3 Semaphore nhị phân 28

4 Hạn chế về thời gian chờ bận (busy waiting) 29

PHỤ LỤC 31

Câu 1: 31

I Hệ thống nhúng (Embedded Operating Systems) 31

II Hệ điều hành thời gian thực (Real-time Operating Systems) 32

Câu 2: 33

Câu 3: 34

I Các ví dụ thực tế: 34

1 Lên lịch FCFS 34

2 Nút thắc cổ chai 35

II Một số bài toán minh họa nhược điểm của phương pháp FCFS: 36 1 Bài toán 1: Cho dãy tiến trình và thời gian phục vụ tương ứng: 36 2 Bài toán 2: Giả sử các bộ xử lí P1, P2, P3 ở bài toán 1 có thời gian hoàn thành như trên nhưng có thứ tự thực hiện khác nhau: 36

Trang 6

TÀI LIỆU THAM KHẢO 38

Trang 7

DANH MỤC HÌNH ẢNH

Hình 1 1: Hệ thống thời gian thực cứng và thời gian thực mềm 11

Hình 2 1: Máy chủ Web 13

Hình 2 2: Hoạt động của multithreaded server web 15

Hình 2 3: A Multithreaded Web server 16

Hình 2 4: Sơ lược về code cho hình 2 3 (a) Dispatcher thread (b) Worker thread 17

Hình 3 1: Minh họa kĩ thuật Firsr-come-first-served 21

Hình 3 2: Hiện tượng nút thắt cổ chai 23

Hình 4 1: Edsger Dijkstra 25

Hình 4 2: Semaphore nguyên thủy 26

Hình 4 3: Semaphore nhị nhân nguyên thủy 27

Hình 4 4: Cơ chế hoạt động Semaphore 29

Hình 1- 1: So sánh Hệ điều hành tiêu chuẩn và hệ điều hành nhúng 31

Hình 1- 2: Mô hình ứng dụng điều khiển bay tự động 31

Hình 3- 1: Minh họa lên lịch FCFC 34

Hình 3- 2: Hình 3- 1: Minh họa lên lịch FCFC 35

Trang 8

DANH MỤC BẢNG

Trang 9

DANH MỤC VIẾT TẮT

(mạch tích hợp dành riêng cho các ứng dụng)

Trang 10

NỘI DUNG Câu 1: Trình bày về hệ thống nhúng và thời gian thực

Trả Lời:

1 Hệ thống nhúng (Embedded Operating Systems)

2 Định nghĩa:

thì các thiết bị điện tử cũng ngày càng trở nên hiện đại, một trong số đó là các hệ thốngnhúng

- Hệ thống nhúng (Embedded Operating Systems): là một hệ thống độc lập và nó có

thể là một phần của hệ thống lớn hơn và được “nhúng” vào hệ thống lớn hơn đó Nó được thiết kế để thực hiện một nhiệm vụ cụ thể, có thể hoàn thành nhiệm vụ hoặc tham gia vào hoàn thành một nhiệm vụ nào đó trong hệ thống lớn hơn

Hay một định nghĩa khác:

- Hệ thống nhúng là một hệ điều hành (OS) chuyên biệt được thiết kế để thực

hiện một nhiệm vụ cụ thể cho một thiết bị mà không phải là máy tính

3 Cách thức hoạt động:

Ví dụ: Hệ thống nhúng của thang máy là một bộ vi xử lí (microprocessor) hay

vi điều khiển (microcontroller), chúng cho phép thang máy hiểu được một người nhấn vào nút nào và thực hiện đúng yêu cầu

thường là nguyên thủy

Trang 11

- Chúng dành thời gian để quản lí và theo dõi các thiết bị phần cứng.

- Một số hệ thống nhúng hiện nay: Embedded Linux, VxWorks, Integrity, QNX,…

4 Hệ thống nhúng khác nhau đáng kể:

- Hệ điều hành tiêu chuẩn: có mục đích dùng chung Chẳng hạn như Hệ điều hành

Linux với các ứng dụng dành cho mục đích cục thể để triển khai chức năng

- Hệ điều hành nhúng với các thiết bị phần cứng: có mục đích đặc biệt và chỉ

cung cấp các chức năng cụ thể Trong đó các thiết bị phần cứng có mạch tích hợp dành riêng cho các ứng dụng (ASIC) dùng để thực hiện các tác vụ mà không cần hệ điều hành

5 Ứng dụng thực tế:

- Ứng dụng tiêu dùng: máy giặt, lò vi sóng, thiết bị giải trí bằng Audio/ Video,

đồ chơi điều khiển từ xa,

- Ứng dụng phương tiện: các thiết bị an toàn trên xe ô tô (túi khí, ABS), cửa tự

động

- Ứng dụng liên lạc: hệ thống định vị toàn cầu (GPS), thiết bị không dây (điện

thoại, máy chiếu), máy ATM, thẻ tín dụng,…

- Lĩnh vực công nghiệp: robotics, nhà máy điện hóa chất/ hạt nhân, đèn giao

thông, camera an ninh,…

- Lĩnh vực y tế: màn hình quan sát tim, máy tạo nhiệt tim, máy lọc máu, kĩ thuật

gắn chân giả,

- Lĩnh vực quân sự: thiết bị điều hướng và xác định máy bay, trực thăng; máy

xác nhận mục tiêu, tháo bom tự động,…

Trang 12

6 Hệ điều hành thời gian thực (Real-time Operating Systems).

1 Định nghĩa:

- Hệ thống nhúng hầu hết luôn chạy trên hệ điều hành thời gian thực.

với hoạt động của bộ xử lí hoặc luồng dữ liệu, nhờ đó, nó chỉ được sử dụng cho một thiết

bị điều khiển trong một ứng dụng chuyên dụng, cụ thể nào đó

- Một định nghĩa khác của Stankovic:

“Hệ thời gian thực là một hệ thống mà ở đó tính chính xác trong hoạt động

của chúng không chỉ phụ thuộc vào kết quả mang tính logic, mà còn phụ thuộc

cả vào thời điểm đưa ra kết quả ấy.” Nó cho thấy sự quan trọng của hệ thời

gian thực đối với thời gian tính toán và thời điểm đưa ra đáp ứng của hệ thống.

“Hãy luôn ghi nhớ điều này khi đề cập đến hệ thời gian thực, rằng: đưa ra

quá muộn đáp án đúng thì cũng là kết quả sai.”

2 Cách thức hoạt động và đặc điểm:

tích dữ liệu và có thể điều chỉnh các điều khiển để sửa đổi các đầu vào cảm biến

- Hệ thống thời gian thực có các giới hạn thời gian cố định và được xác định rõ

ràng:

Tính kịp thời: quá trình xử lí phải được thực hiện đúng trong khoảng thời gian

đã ràng buộc

Tính chính xác: nó chỉ hoạt động đúng nếu nó trả về đúng trong giới hạn thời

gian ràng buộc, ngược lại sẽ thất bại

- Điểm khác so với các loại máy tính truyền thống (không có hệ thống thời gian thực) là chúng cần thực hiện chính xác trong khoảng thời gian cố định còn các loại máy tính

trước thì không bắt buộc hệ thống phải phản hồi nhanh chóng

Trang 13

Ví dụ: Các ứng dụng như Word, Excel sẽ mất khoảng thời gian thực thi và hiển

thị khác nhau ở mỗi lần được kích hoạt

3 Phân loại: Có 2 loại:

Hình 1 1: Hệ thống thời gian thực cứng và thời gian thực mềm

- Hệ thống xử lí thời gian thực cứng (Hard real-time): các công việc tuyệt đối

phải được hoàn thành đúng, chính xác trong thời gian quy định

Ứng dụng: trong các lĩnh vực quan sự, y tế, ngành công nghiệp, hàng không,

robotics, hệ thống phun nhiên liệu cho động cơ – ô tô,…

hành động của bác sĩ thì có thể gây hại đến tính mạng của bệnh nhân

iii Trong hệ thống phóng vệ tinh, nếu vòi phun của tên lửa không hoạt động vào đúng thời gian quy đinh, nó dẫn đến thất bại và gây thiệt hại nặng về mặt tài

chính

- Hệ thống xử lí thời gian thực mềm (Soft real-time): là hệ thống mà thời gian

thực thi có thể bị vi phạm trong một khoảng nhỏ không thường xuyên , tuy vậy vẫn có thểchấp nhận được nếu không gây ra bất kì thiệt hại nào

Trang 14

Ứng dụng: hệ thống âm thanh kĩ thuật số, điện thoại,…

- Web server là máy chủ web, một máy tính lớn được kết nối với tập hợp mạng

máy tính mở rộng Máy chủ chứa toàn bộ dữ liệu mà nó được giao quyền quản lý Mỗi

máy chủ có một IP riêng và có thể đọc đa dạng ngôn ngữ như HTML, HTM, File,… Máy chủ có dung lượng lớn và tốc độ rất cao để có thể lưu trữ và vận hành tốt kho dữ

liệu trên internet

Hình 2 1: Máy chủ Web

Trang 15

- Thông qua cổng giao tiếp riêng biệt của mỗi máy chủ mà hệ thống máy tính có khảnăng hoạt động trơn tru hơn Máy chủ phải đảm bảo hoạt động liên tục để có thể cung cấp

dữ liệu cho mạng lưới máy tính của nó

- Máy chủ web theo luồng là một máy chủ xử lý từng yêu cầu với một luồng mới, trái ngược với việc xử lý từng yêu cầu bằng một quy trình mới

- Đó là một máy chủ web có một hàng đợi cho các yêu cầu HTTP đến và một nhóm cácluồng để đáp ứng chúng Máy chủ đưa yêu cầu đầu tiên ra khỏi hàng đợi và chỉ định một luồng

từ nhóm để thực hiện công việc Các yêu cầu xếp hàng trong hàng đợi khi chúng đến nhanh hơnluồng có thể xử lý chúng hoặc nếu nhóm hết luồng

Ví dụ: Người dùng truy cập vào website tdtu.edu.vn Khi đó, server sẽ cung cấp

tất cả dữ liệu về website đó thông qua lệnh giao tiếp

2 Luồng (Thread)

biệt và thực thi đồng thời cũng bằng cách chia sẻ CPU Các luồng trong cùng một tiến trình dùng chung không gian địa chỉ tiến trình nhưng có con trỏ lệnh, tập các thanh ghi và stack riêng Một luồng cũng có thể tạo lập các tiến trình con, và nhận các trạng thái khác nhau như một tiến trình

3 Máy chủ đơn luồng và máy chủ đa luồng (Single threaded web and

multithreaded server web)

- Máy chủ đơn luồng: là loại máy chủ đơn giản nhất, chỉ sinh ra một luồng duy

nhất nên khi đó:

 Chỉ xử lý được một yêu cầu tại một thời điểm

 Các yêu cầu chỉ có thể được xử lý tuần tự

Trang 16

 Các yêu cầu có thể được xử lý bởi các tiến trình khác nhau và được gửi đến các server khác nhau.

 Không đảm bảo tính trong suốt, nếu các việc gửi lên chưa được xử lý kịp và đang phải xếp trong hàng đợi sẽ kiến người dùng không cảm nhận được sự trong suốt của hệthống

- Máy chủ đa luồng: là một máy chủ có thể xử lý nhiều luồng, trong đó mỗi luồng

chịu trách nhiệm xử lý một yêu cầu riêng biệt từ mọi máy khách (người dùng) Máy chủ bắt đầu chạy một luồng mới bất cứ khi nào nó tìm thấy một yêu cầu sắp tới

Ví dụ:

Hình 2 2: Hoạt động của multithreaded server web

Lợi ích: Việc sử dụng cơ chế đa luồng giúp cho việc trao đổi thông tin giữa client và

server có thể tiến hành song song với các công việc xử lý thông tin khác => tăng tốc

Trang 17

Dispatcher thread (luồng điều phối): Là luồng chuyên dụng đảm nhiệm chức

năng điều phối các công việc yêu cầu Mỗi khi nhận được yêu cầu thì luồng này sẽ phântích các yêu cầu này và gửi đến các luồng phù hợp để xử lí

Worker thread (luồng làm việc/ luồng người xử lí): Là thread mà người lập

trình tạo thêm cho chương trình để nó thực thi một công việc nào đó không liên quan đến giao diện

Network connection: các yêu cầu công việc từ mạng gửi vào

Web page cache: là bộ nhớ đệm trên trang web có chức năng lưu trữ tạm thời các nội dung tĩnh thường được truy cập Nó giúp các lần truy cập sau sẽ xuất dữ liệu nhanh hơn mà không cần phải thông qua bộ nhớ chính

User space (không gian người dùng): Nó là không gian địa chỉ mà mã thực thi

bị giới hạn truy cập Bảng quản lý luồng lưu trữ nằm ở đây và các việc điều phối luồng là

do tiến trình chịu trách nhiệm.

Kernel space (không gian nhân): bảng quản lý thread lưu trữ ở phần kernel và

việc điều phối các luồng là do hệ điều hành chịu trách nhiệm

- Giải thích hình:

Hình 2 3: A Multithreaded Web server

Trang 18

Ở đơn luồng , người điều phối (dispatcher), đọc các yêu cầu công việc đến từ mạng gửi vào Sau khi kiểm tra yêu cầu, nó chọn một luồng làm việc (worker thread) không hoạt động (idle or blocked) (tức là bị chặn) và gửi cho chúng yêu cầu (request), có

thể bằng cách viết một con trỏ tới thông báo bằng một từ đặc biệt được liên kết với mỗi luồng Sau đó, người điều phối đánh thức nhân viên/ người xử lí đang ngủ, chuyển nó từ

trạng thái bị chặn (blocked) sang trạng thái sẵn sàng (ready).

 Khi nhân viên thức dậy, nó sẽ kiểm tra xem liệu yêu cầu có thể được đáp ứng từ bộ

đệm của trang Web (Web page cache), nơi mà tất cả các luồng đều có quyền truy cập hay

không Nếu không có đữ liệu từ bộ đệm , nó sẽ bắt đầu thao tác đọc để lấy các trang từ đĩa và

thực hiện chặn cho đến khi hoàn thành thao tác trên đĩa Song song đó, khi luồng chặn

đang hoạt động trên đĩa, một luồng khác được

chọn để chạy, có thể là bộ điều phối, để nhận thêm công việc hoặc có thể là nhân viên khác hiện đã sẵn sàng chạy

- Nhận xét: Mô hình này cho phép máy chủ được viết như một tập hợp các luồng tuần tự (sequential thread) Mỗi web server có hai luồng là dispatcher thread và worker

thread có nhiệm vụ sau:

cầu công việc và giao nó cho nhân viên

Trang 19

Mỗi mã của nhân viên bao gồm một vòng lặp vô hạn bao gồm việc chấp nhận

yêu cầu từ người điều phối và kiểm tra bộ nhớ cache của Web để xem trang đó có xuất hiện hay không Nếu có, nó sẽ được trả lại cho khách hàng và nhân viên sẽ chặn chờ một yêu cầu mới Nếu không, nó sẽ lấy trang từ đĩa và thực hiện như trên

Hình 2 4: Sơ lược về code cho hình 2 3 (a) Dispatcher thread (b) Worker thread

một yêu cầu công việc và một trang Web tương ứng

Vậy khi máy chủ web không có luồng thì thực thi như thế nào?

- Xem xét cách máy chủ Web có thể được viết khi không có luồng: Một khả

năng là để nó hoạt động như một luồng duy nhất Vòng lặp chính của máy chủ Web nhận

một yêu cầu, kiểm tra nó và thực hiện nó để hoàn thành trước khi nhận được yêu cầu tiếp theo Trong khi chờ đĩa, máy chủ không hoạt động và không xử lý bất kỳ yêu cầu gửi đến nào khác Nếu máy chủ Web đang chạy trên một máy chuyên dụng, như thường thấy, CPU chỉ đơn giản là không hoạt động trong khi máy chủ Web đang đợi đĩa

- Ta thấy, kết quả thực tế cho thấy là nhiều yêu cầu/giây có thể ít được xử lý hơn Do đó, các luồng đạt được hiệu suất đáng kể, nhưng mỗi luồng được lập trình tuần

tự, theo cách thông thường Vì thế, ta có cần có giải pháp khác cho vẫn đề này ở phần sau

Ngày đăng: 25/04/2023, 09:37

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w