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 1TRƯỜ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 2LỜ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 3BÁ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 4MỤ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 53 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 6TÀI LIỆU THAM KHẢO 38
Trang 7DANH 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 8DANH MỤC BẢNG
Trang 9DANH MỤC VIẾT TẮT
(mạch tích hợp dành riêng cho các ứng dụng)
Trang 10NỘ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 126 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