Tải bản đầy đủ (.pdf) (39 trang)

(Tiểu luận) tiểu luận nhập môn hệ điều hành tiểu luận nhập môn hệ điều hành trình bày về thread usage (web server) (đọc và giải thích hình 2 8)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (815.36 KB, 39 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
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

h


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ể hồn thành bài
báo cáo tiểu luận.
Em cũng xin chân thành cảm ơn tồn thể giáo viên khoa Cơng nghệ thông tin của
Trường Đại học Tôn Đức Thắng đã ủng hộ, đồng hành cùng em để hoàn thiện bài
báo cá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ắp tớ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à hồ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 xin
châ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

h


3

BÁO CÁO ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC
TƠN ĐỨC THẮNG
Tơi xin cam đoan đây là cơng trình nghiên cứu của riêng tôi và được sự hướng dẫn
khoa học của GV.Bùi Quy Anh. Các nội dung nghiên cứu, kết quả trong đề tài này
là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây. Những số liệu

trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác
giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo.
Ngồ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ệu
củ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 q trình thực hiện (nếu
có).

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

h


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

h


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 tố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 tốn 1 có thời
gian hồn thành như trên nhưng có thứ tự thực hiện khác nhau:..36

h


6

TÀI LIỆU THAM KHẢO............................................................................................38

h


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

h


8

DANH MỤC BẢNG
Bảng 3. 1: Định nghĩa một số cơ chế hoạt động..........................................................25
Bảng 1- 1: So sánh Hệ điều hành tiêu chuẩn và hệ điều hành nhúng............................31
Bảng 2- 1: Bảng so sánh các cách xây dựng máy chủ..................................................34

h


9

DANH MỤC VIẾT TẮT
STT

Kí tự viết tắt

Chữ viết đầy đủ

1

OS

Operating Systems (Hệ điều hành)


2

ASIC

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

3

CPU

Bộ xử lí trung tâm

4

I/O

Input/ Output (Đầu vào/ Đầu ra)

h


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:

-

Ngày nay, khi công nghệ đã trở thành một phần khơng thể thiếu trong cuộc sống
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ống nhú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:

-

Hệ thống nhúng có xu hướng chỉ thực hiện những nhiệm vụ cụ thể.
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.

-

Hệ điều hành cung cấp các tính năng hạn chế do các hệ thống mà chúng chạy

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

h


11

-

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

-

Thơng thường thì các thiết bị này có rất ít hoặc khơng có giao diện người dù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 tồ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,…

h


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.

-

Chúng được sử dụng khi các yêu cầu về thời gian nghiêm ngặt được đặt ra đối
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 tốn và thời điểm đưa ra đáp ứng của hệ thống.

-


Để nhấn mạnh quan điểm này, tác giả Robert Oshana cũng nhắc đến:
“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:

-

Các cảm biến (sensors) sẽ đưa dữ liệu đến máy tính, tại đây máy tính sẽ phân 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: q 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.

h


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 hồ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ơ,…

 Ví dụ:
i.

Phẫu thuật Robot từ xa: nếu hệ thống quá nhanh hoặc quá chậm so với thự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.

ii.

Các hệ thống xe hơi không người lái trên nền tảng QNX.

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.

h


14

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

 Ví dụ:
Khi mở ổ CD/DVD của máy tính cá nhân (PC) có sự chậm trễ nhưng hồn tồn
khơng gay ra thiệt hại nào.

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

Máy chủ web (Web server) 
1. Máy chủ web 

-

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 tồ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

h


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ác luồ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ơn luồ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)

-


Một tiến trình có thể tạo nhiều luồng, mỗi luồng thực hiện một chức năng riêng
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ự.

h


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
 Là vòng lặp để đọc các yêu cầu và chuyển chúng đến Dispatcher để xử lý.
-

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 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 độ
và hiệu năng hệ thống.
4. Đọc và giải thích hình
-

Giải thích từ khóa:

 Web server process: Tiến trình máy chủ web

h


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ân tí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

h


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 hồ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:

 Chương trình của người điều phối bao gồm một vịng lặp vơ hạn để nhận u
cầu cơng việc và giao nó cho nhân viên.

h


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 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
-

Ở đây, TRUE được giả định là hằng số 1. Ngoài ra, buf và page là để lưu giữ
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 u cầu, kiểm tra nó và thực hiện nó để hồ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 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.

h


20

5. Giải pháp thứ ba Máy trạng thái hữu hạn
Ta đã thấy được hai thiết kế là một máy chủ Web đa luồng và một máy chủ Web
một luồng. Giả sử rằng các luồng khơng có sẵn nhưng các nhà thiết kế hệ thống nhận
thấy sự mất hiệu suất do luồng đơn là điều đáng quan tâm. Vậy nếu có sẵn phiên
bản không chặn (nonblocking) của lệnh gọi hệ thống đọc, thì có thể thực hiện được
cách tiếp cận thứ ba:
-


Khi một yêu cầu đến, sẽ có một luồng duy nhất sẽ kiểm tra nó. Nếu nó có thể
được đáp ứng từ bộ nhớ cache là tốt, nhưng nếu không, hoạt động đĩa không
chặn sẽ được thực thi.

-

Máy chủ ghi lại trạng thái của yêu cầu hiện tại trong một bảng (table) và sau đó
đi và nhận yêu cầu tiếp theo. Nó có thể là một u cầu về cơng việc mới hoặc
câu trả lời từ đĩa về một hoạt động trước đó. Nếu đó là cơng việc mới, cơng việc
đó được bắt đầu. Nếu đó là câu trả lời từ đĩa, thơng tin liên quan sẽ được tìm nạp
từ bảng và câu trả lời được xử lý. Với I / O đĩa khơng chặn, một phản hồi có
thể sẽ phải ở dạng tín hiệu hoặc ngắt.

-

Trong thiết kế này, mơ hình '' quy trình tuần tự '' trong hai trường hợp đầu tiên
bị mất. Trạng thái của tính tốn phải được lưu và khôi phục một cách rõ ràng
trong bảng mỗi khi máy chủ chuyển từ hoạt động theo yêu cầu này sang yêu cầu
khác. Trên thực tế, chúng tôi đang mô phỏng các luồng và ngăn xếp của chúng
một cách khó khăn. Một thiết kế như thế này, trong đó mỗi tính tốn có một trạng
thái đã lưu, và tồn tại một số sự kiện có thể xảy ra để thay đổi trạng thái, được
gọi là máy trạng thái hữu hạn (finite-state machine).

Nhận xét: Phương pháp trên có thể giữ lại ý tưởng về các quy trình tuần tự thực
hiện các lệnh gọi chặn (ví dụ: cho I / O đĩa) và vẫn đạt được tính song song. Máy chủ
đơn luồng vẫn giữ được sự đơn giản của việc chặn các cuộc gọi hệ thống nhưng lại

h




×