Hỗ trợ đào tạo

OSG202 - Hệ điều hành

9Chủ đề
0Câu hỏi

OSG202 - Hệ điều hành (Operating System) là môn học 3 tín chỉ của Đại học FPT, dạy vai trò, cơ chế và các bài toán lớn của hệ điều hành theo giáo trình Modern Operating Systems của Andrew S. Tanenbaum, kèm một làn thực hành Linux chạy song song suốt học kỳ. Nội dung môn học bao quát trọn bộ chương trình theo mười một chuẩn đầu ra CLO1 đến CLO11: nhập môn hệ điều hành (hệ điều hành như máy ảo mở rộng và như bộ quản lý tài nguyên, đơn nhiệm và đa nhiệm, đơn người dùng và đa người dùng, lịch sử qua các thế hệ đèn điện tử - transistor - mạch tích hợp - máy tính cá nhân - thiết bị di động, ôn tập phần cứng với bộ xử lý, phân cấp bộ nhớ, đĩa và thiết bị vào ra, các họ hệ điều hành từ mainframe tới nhúng và thời gian thực, các khái niệm nền tảng gồm tiến trình, không gian địa chỉ, tệp, thư mục, ống dẫn và shell, lời gọi hệ thống cho quản lý tiến trình - tệp - thư mục, các kiểu cấu trúc nhân đơn khối, phân tầng, vi nhân, máy ảo và exokernel); tiến trình và luồng (mô hình tiến trình, tạo và kết thúc tiến trình, ba trạng thái chạy - sẵn sàng - chờ, bảng tiến trình, luồng và mô hình luồng cổ điển, hiện thực luồng ở không gian người dùng và ở nhân, pthreads, truyền thông liên tiến trình với tranh chấp dữ liệu, miền găng, loại trừ tương hỗ, giải pháp Peterson, lệnh TSL, đèn báo, mutex, monitor, truyền thông điệp và rào chắn, lập lịch FCFS, SJF, SRTN, quay vòng, độ ưu tiên, nhiều hàng đợi, xổ số và chia sẻ công bằng, các bài toán IPC kinh điển như bữa tối triết gia và bài toán đọc ghi); quản lý bộ nhớ (không trừu tượng hoá bộ nhớ, không gian địa chỉ với thanh ghi cơ sở và giới hạn, hoán đổi, quản lý bộ nhớ trống bằng bản đồ bit và danh sách liên kết, bộ nhớ ảo, phân trang, bảng trang, MMU, lỗi trang, bộ đệm TLB, bảng trang nhiều mức và bảng trang nghịch đảo, các thuật toán thay trang tối ưu - NRU - FIFO - cơ hội thứ hai - đồng hồ - LRU - lão hoá - tập làm việc - WSClock, nghịch lý Belady, cấp phát cục bộ và toàn cục, kích thước trang, trang dùng chung và thư viện dùng chung, tệp ánh xạ bộ nhớ, phân đoạn và phân đoạn kết hợp phân trang); hệ thống tệp (đặt tên, cấu trúc, kiểu và thuộc tính tệp, truy cập tuần tự và ngẫu nhiên, thư mục và đường dẫn tuyệt đối - tương đối, hiện thực tệp bằng cấp phát liên tục - danh sách liên kết - FAT - i-node, hiện thực thư mục, liên kết cứng và liên kết mềm, hệ thống tệp ghi nhật ký, quản lý không gian đĩa và kích thước khối, sao lưu, kiểm tra nhất quán, bộ đệm khối và đọc trước, chống phân mảnh); vào ra (thiết bị khối và thiết bị ký tự, bộ điều khiển thiết bị, vào ra ánh xạ bộ nhớ, DMA, ngắt chính xác và không chính xác, mục tiêu của phần mềm vào ra, vào ra bằng chương trình - bằng ngắt - bằng DMA, bốn tầng phần mềm vào ra, trình điều khiển thiết bị, đĩa từ và RAID và SSD, các thuật toán lập lịch cánh tay đĩa FCFS - SSF - thang máy, lưu trữ ổn định, đồng hồ và bộ định thời, giao diện người dùng với bàn phím, chuột, màn hình, máy khách mỏng và quản lý năng lượng); và bế tắc (tài nguyên tiếm quyền được và không tiếm quyền được, bốn điều kiện gây bế tắc gồm loại trừ tương hỗ, giữ và chờ, không tiếm quyền và chờ vòng tròn, mô hình hoá bằng đồ thị tài nguyên, thuật toán đà điểu, phát hiện và khắc phục bế tắc, tránh bế tắc với trạng thái an toàn và thuật toán nhà băng, ngăn ngừa bế tắc bằng cách phá từng điều kiện, khoá hai pha, bế tắc truyền thông, livelock và đói tài nguyên). Môn học còn có làn thực hành Linux xuyên suốt: dòng lệnh, phân quyền, ống dẫn và chuyển hướng, lập trình shell, và lập trình C trên Linux với gcc cùng các lời gọi hệ thống.

Chủ đề học tập

Hệ điều hành

OSG202 Chuyên đề - Ảo hoá, điện toán đám mây và case study hệ điều hành

Khối đề tài thuyết trình được chọn ở buổi 27, gồm ba chương của Tanenbaum không được giảng trên lớp nhưng vẫn là nội dung sách và có chấm điểm. Chương 7 về ảo hoá và điện toán đám mây: hypervisor loại 1 và loại 2, các điều kiện để một kiến trúc ảo hoá được, ảo hoá bán phần, ảo hoá bộ nhớ và ảo hoá vào ra, máy ảo đóng gói sẵn, ba mô hình dịch vụ đám mây hạ tầng - nền tảng - phần mềm, và di trú máy ảo. Chương 10 là case study UNIX, Linux và Android: lịch sử và tổng quan, tiến trình trong Linux, quản lý bộ nhớ, vào ra, hệ thống tệp ext, cơ chế bảo mật; với Android là kiến trúc phân tầng, máy ảo thực thi ứng dụng, cơ chế binder và mô hình ứng dụng. Chương 11 là case study Windows: cấu trúc hệ thống, tầng executive, tiến trình và luồng, quản lý bộ nhớ, bộ đệm, vào ra, hệ thống tệp NTFS và bảo mật.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Hệ điều hành

OSG202 Chương 1 - Nhập môn hệ điều hành

Ứng với CLO1, buổi 1-4 và 7-9. Chương mở đầu định nghĩa hệ điều hành theo hai góc nhìn bổ sung nhau: như một máy ảo mở rộng che giấu sự phức tạp của phần cứng, và như một bộ quản lý tài nguyên phân phối bộ xử lý, bộ nhớ, thiết bị cho nhiều chương trình. Nội dung gồm lịch sử hệ điều hành qua các thế hệ đèn điện tử, transistor với hệ xử lý theo lô, mạch tích hợp với đa chương, máy tính cá nhân và thiết bị di động; ôn tập phần cứng với bộ xử lý, phân cấp bộ nhớ, đĩa, thiết bị vào ra và quá trình khởi động; các họ hệ điều hành từ mainframe, máy chủ, đa xử lý, máy cá nhân, thiết bị cầm tay tới hệ nhúng và thời gian thực; các khái niệm nền tảng gồm tiến trình, không gian địa chỉ, tệp, thư mục, ống dẫn và shell; lời gọi hệ thống cho quản lý tiến trình, tệp và thư mục; cùng năm kiểu cấu trúc nhân đơn khối, phân tầng, vi nhân, máy ảo và exokernel.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Hệ điều hành

OSG202 Chương 2 - Tiến trình và luồng

Ứng với CLO2, buổi 11-12 và 15-17. Phần tiến trình gồm mô hình tiến trình, cách tạo và kết thúc tiến trình, cây phân cấp tiến trình, ba trạng thái chạy - sẵn sàng - chờ cùng các chuyển trạng thái, bảng tiến trình và khối điều khiển tiến trình. Phần luồng giải thích vì sao cần luồng, mô hình luồng cổ điển, thư viện pthreads, và so sánh hiện thực luồng ở không gian người dùng với ở nhân. Phần truyền thông liên tiến trình là trọng tâm: tranh chấp dữ liệu, miền găng, các giải pháp loại trừ tương hỗ có chờ bận gồm cấm ngắt, biến khoá, luân phiên nghiêm ngặt, giải pháp Peterson và lệnh TSL; rồi tới ngủ và đánh thức, đèn báo, mutex, monitor, truyền thông điệp và rào chắn. Phần lập lịch trình bày FCFS, SJF, SRTN, quay vòng, độ ưu tiên, nhiều hàng đợi, xổ số và chia sẻ công bằng. Khép lại bằng bài toán bữa tối triết gia và bài toán đọc ghi.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Hệ điều hành

OSG202 Chương 3 - Quản lý bộ nhớ

Ứng với CLO3, buổi 23-33, là chương dài nhất của môn. Nội dung đi theo trình tự lịch sử: trước hết là chạy chương trình khi không có trừu tượng hoá bộ nhớ; rồi tới khái niệm không gian địa chỉ với thanh ghi cơ sở và thanh ghi giới hạn, kỹ thuật hoán đổi, quản lý vùng nhớ trống bằng bản đồ bit và bằng danh sách liên kết. Phần bộ nhớ ảo trình bày phân trang, bảng trang, khối quản lý bộ nhớ MMU, cơ chế lỗi trang, tăng tốc bằng bộ đệm TLB, và bảng trang nhiều mức cùng bảng trang nghịch đảo cho bộ nhớ lớn. Phần thuật toán thay trang so sánh tối ưu, NRU, FIFO, cơ hội thứ hai, đồng hồ, LRU, lão hoá, tập làm việc và WSClock, kèm nghịch lý Belady. Phần thiết kế và hiện thực bàn về cấp phát cục bộ hay toàn cục, kích thước trang, trang dùng chung, thư viện dùng chung và tệp ánh xạ bộ nhớ. Khép lại bằng phân đoạn và phân đoạn kết hợp phân trang.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Hệ điều hành

OSG202 Chương 4 - Hệ thống tệp

Ứng với CLO4, buổi 34-38. Phần tệp gồm quy tắc đặt tên, cấu trúc tệp, các kiểu tệp thường - thư mục - tệp đặc biệt, hai cách truy cập tuần tự và ngẫu nhiên, thuộc tính tệp và các thao tác cơ bản. Phần thư mục gồm thư mục một mức và thư mục phân cấp, đường dẫn tuyệt đối và tương đối, các thao tác trên thư mục. Phần hiện thực hệ thống tệp là trọng tâm: bố trí hệ thống tệp trên đĩa, bốn cách hiện thực tệp gồm cấp phát liên tục, danh sách liên kết, bảng FAT và i-node cùng ưu nhược điểm của từng cách; hiện thực thư mục; tệp dùng chung với liên kết cứng và liên kết mềm; hệ thống tệp ghi nhật ký và hệ thống tệp ảo. Phần quản lý và tối ưu gồm kích thước khối, theo dõi khối trống, hạn ngạch, sao lưu, kiểm tra nhất quán, bộ đệm khối, đọc trước và chống phân mảnh, kèm ví dụ FAT, UNIX V7 và ISO 9660.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Hệ điều hành

OSG202 Chương 5 - Vào ra (Input/Output)

Ứng với CLO5, buổi 41-48. Phần nguyên lý phần cứng gồm phân biệt thiết bị khối với thiết bị ký tự, bộ điều khiển thiết bị, hai cách đánh địa chỉ cổng là vào ra ánh xạ bộ nhớ và không gian cổng riêng, truy nhập bộ nhớ trực tiếp DMA, cùng ngắt chính xác và không chính xác. Phần nguyên lý phần mềm nêu các mục tiêu độc lập thiết bị, đặt tên thống nhất, xử lý lỗi, đồng bộ hay bất đồng bộ, đệm dữ liệu, rồi so sánh ba kỹ thuật vào ra bằng chương trình, bằng ngắt và bằng DMA. Phần các tầng phần mềm vào ra gồm trình xử lý ngắt, trình điều khiển thiết bị, phần mềm độc lập thiết bị và phần mềm ở không gian người dùng. Phần đĩa gồm đĩa từ, RAID, ổ thể rắn, định dạng, các thuật toán lập lịch cánh tay đĩa FCFS - SSF - thang máy và lưu trữ ổn định. Khép lại bằng đồng hồ, giao diện người dùng, máy khách mỏng và quản lý năng lượng.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Hệ điều hành

OSG202 Chương 6 - Bế tắc (Deadlock)

Ứng với CLO6, buổi 49-54, chương cuối được giảng của môn. Phần tài nguyên phân biệt tài nguyên tiếm quyền được với tài nguyên không tiếm quyền được và trình tự xin cấp tài nguyên. Phần nhập môn bế tắc nêu bốn điều kiện cần đồng thời xảy ra thì mới sinh bế tắc gồm loại trừ tương hỗ, giữ và chờ, không tiếm quyền và chờ vòng tròn, cùng cách mô hình hoá bằng đồ thị tài nguyên để phát hiện chu trình. Bốn hướng xử lý được trình bày lần lượt: thuật toán đà điểu tức phớt lờ vấn đề; phát hiện và khắc phục với trường hợp mỗi loại tài nguyên có một thực thể và trường hợp nhiều thực thể, khắc phục bằng tiếm quyền, quay lui hoặc giết tiến trình; tránh bế tắc với quỹ đạo tài nguyên, trạng thái an toàn và không an toàn cùng thuật toán nhà băng; và ngăn ngừa bế tắc bằng cách phá từng điều kiện trong bốn điều kiện. Khép lại bằng khoá hai pha, bế tắc truyền thông, livelock và đói tài nguyên.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Hệ điều hành

OSG202 Thực hành - Linux, dòng lệnh và lập trình shell

Ứng với CLO7, CLO8 và CLO9, trải các buổi 5, 6, 10, 13, 14 và 18-22 — làn thực hành chạy song song với phần lý thuyết chứ không thuộc chương nào. Nội dung gồm tổng quan hệ điều hành Linux, phân biệt nhân với shell, cây thư mục chuẩn và ý nghĩa các thư mục gốc; bộ lệnh cơ bản để di chuyển, xem và thao tác tệp thư mục, tìm kiếm và lọc văn bản, xem tiến trình và tài nguyên, nén và giải nén, tra cứu trang hướng dẫn; cơ chế phân quyền đọc - ghi - thực thi cùng cách đọc và đặt quyền theo ký tự và theo số bát phân; ống dẫn và chuyển hướng đầu vào đầu ra; ký tự đại diện và biến môi trường; trình soạn thảo dòng lệnh. Phần lập trình shell gồm dòng shebang, biến và cách trích dẫn, thay thế lệnh, cấu trúc rẽ nhánh và vòng lặp, hàm, tham số vị trí, mã trả về và lệnh kiểm tra điều kiện.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày
Hệ điều hành

OSG202 Thực hành - Lập trình C trên Linux

Ứng với CLO10, tập trung ở buổi 39-40 và các bài lab từ buổi 34 trở đi. Phần này nối kiến thức hệ điều hành với lập trình thực tế: biên dịch chương trình C bằng gcc cùng các tuỳ chọn đặt tên tệp đầu ra, bật cảnh báo và bật thông tin gỡ lỗi; tổ chức mã nguồn nhiều tệp với tệp tiêu đề và Makefile cơ bản; phân biệt liên kết tĩnh với liên kết động. Trọng tâm là gọi lời gọi hệ thống trực tiếp từ C để quan sát các khái niệm đã học ở phần lý thuyết: mở, đọc, ghi và đóng tệp; tạo tiến trình con và chờ tiến trình con kết thúc; nạp chương trình mới bằng họ hàm exec; truyền dữ liệu giữa hai tiến trình qua ống dẫn; xử lý tín hiệu; và tạo luồng bằng thư viện pthreads. Kèm theo là kỹ năng gỡ lỗi chương trình bằng trình gỡ lỗi dòng lệnh.

0Bộ đềbộ đề
0+Câu hỏicâu hỏi
đăng ngày