Ôn tập nguyên lý Hệ điều hành - Công nghệ thông tin | Trường Đại học Quy Nhơn
Ôn tập nguyên lý Hệ điều hành - Công nghệ thông tin | Trường Đại học Quy Nhơn được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!
Môn: Công nghệ thông tin (BLA2001)
Trường: Đại học Quy Nhơn
Thông tin:
Tác giả:
Preview text:
ÔN TẬP NGUYÊN LÝ HỆ ĐIỀU HÀNH 1. Hệ điều hành là gì? 1.1. Khái niệm
Hệ điều hành là phần mềm trung gian giữa người dùng và phần
cứng máy tính. Mục đích thực thi các chương trình của người dùng để
sử dụng máy tính thuận tiện hơn, sử dụng phần cứng hiệu quả hơn.
Là tập hợp các chương trình được thi?t k? để điều khiển toàn bộ
các thi?t bD phần cứng và phần mềm ứng dụng trong máy tính, tương
tác và quản lý việc giao ti?p giữa máy tính và người sử dụng Mỗi máy
tính đòi hỏi phải có hệ điều hành để thực hiện các chức năng.
OS là phần mềm hoạt động ở lớp trung gian giữa người sử dụng máy tính và phần cứng.
Hệ điều hành (operating systems) là chương trình đóng vai trò
trung gian giữa người sửdụng và phần cứng của máy tính.
Hệ điều hành che dấu sự phức tạp, đa dạng của phần cứng,
giúp việc sử dụng máy tính trở nên đơn giản, hiệu quả.
Nhiệm vụ của hệ điều hành là quản lý tàinguyên của máy tính,
thực thi các chương trình ứng dụng, hỗ trợ các chức năng mạng, vv …
Một hệ thống máy tính được chia thành 4 thành phần sau: phần
cứng, hệ điều hành,chương trình ứng dụng/chương trình hệ thống, người sử dụng.
+ Phần cứng (hardware) : CPU, bộ nhớ, các thi?t bD nhập/xuất, …
+ Hệ điều hành (operating systems): điều khiển và phối hợp
việc sử dụng phần cứng cho nhiều ứng dụng với nhiều người sử dụng khác nhau.
+ Chương trình ứng dụng và chương trình hệ thống (system and
applications programs): là các chương trình giải quy?t những vấn đề
của người sử dụng như là chương trình dDch, hệ quản trD cơ sở dữ liệu,
chương trình trò chơi, chương trình thương mại,…
+ Người sử dụng (user): người sử dụng hoặc máy tính.
1.2. Mục tiêu là làm cho người sử dụng:
• Thực thi dễ dàng các ứng dụng của mình
• Thao tác điều khiển máy tính trở nên thuận tiện.
• Khai thác phần cứng máy tính một cách có hiệu quả
2. Hoạt động của hệ điều hành là gì?
Đối với các chức năng phần cứng như đầu vào, đầu ra và cấp phát bộ nhớ,
hệ điều hành đóng vai trò trung gian giữa các chương trình và phần cứng
máy tính,[1][2] mặc dù mã ứng dụng thường được thực thi trực ti?p bởi phần
cứng và thường thực hiện các lệnh gọi hệ thống đ?n Chức năng hệ điều hành
hoặc bD hệ điều hành làm gián đoạn. Hệ điều hành được tìm thấy trên nhiều
thi?t bD có máy tính – từ điện thoại di động và bảng điều khiển trò chơi điện
tử đ?n máy chủ web và siêu máy tính.
2.1. Đa chương trình và đa tác vụ
- Một trong những khía cạnh quan trọng nhất của hệ điều hành là
khả năng chạy nhiều chương trình, vì một chương trình đơn lẻ nói
chung không thể giữ cho CPU hoặc các thi?t bD IC luôn bận rộn.
Hơn nữa, người dùng thường muốn chạy nhiều chương trình cùng
một lúc. Đa chương trình làm tăng khả năng sử dụng CPU, cũng
như giữ cho người dùng hài lòng, bằng cách tổ chức các chương
trình sao cho CPU luôn có một chương trình để thực thi. Trong
một hệ thống đa chương
- Đa nhiệm là khái niệm phần mở rộng của đa chương trình. Trong
các hệ thống đa nhiệm, CPU thực hiện nhiều ti?n trình bằng cách
chuyển đối giữa chúng, nhưng việc chuyển đổi xảy ra thường
xuyên, cung cấp cho người dùng thời gian phản hồi nhanh.
2.2. Chế độ kép và đa chế độ
- Ch? độ hoạt động kép cung cấp cho chúng là các phương tiện để
bảo vệ hệ điều hình khỏi những người dùng sai lầm. Chúng ta thực
hiện biện pháp bảo vệ này bằng cách chỉ đDnh một số lệnh máy có
thể gây hại làm lệnh độc quyền. Phần cứng chỉ cho phép các lệnh
đặc quyền được thực thi trong ch? độ nhân. N?u cố gắng thực hiện
một lệnh đặc quyền trong ch? độ người dùng, phần cứng sẽ không
thực hiện lệnh đo mà coi nó là bất hợp pháp và chuyển nó vào hệ điều hành.
- Tại thời điểm khởi động hệ điều hành, phần cứng khởi động ở ch?
độ nhân Hệ điều hành sau đó được tải và khởi động các ứng dụng
người dùng ở ch? độ người dùng. Bất cứ khi nào bẫy hoặc ngắt xảy
ra, phần cứng sẽ chuyển từ ch? độ người dùng sang ch? độ nhiên
(nghĩa là thay đổi trạng thái của bit ch? độ thành 0). Do đó, bất cứ
khi nào bD điều hành giành được quyền kiểm soát máy tính, nó sẽ ở
ch? độ nhân. Hệ thống luôn chuyển sang ch? độ người dùng (bằng
cách đặt bớt ch? độ thành 1) trước khi chuyển quyền điều khiển
cho chương trình người dùng. 2.3. Timer
- Chúng ta phải đảm bảo rằng hệ điều hành duy trì quyền kiểm soát
đối với CPU, Chúng ta không cho phép một chương trình người
dùng bD kẹt trong một vòng lặp vô hạn hoặc không gọi được các
dDch vụ hệ thống và không bao giờ trả lại quyền kiểm soát cho hệ điều hành.
- Để thực hiện mục tiêu này, chúng ta có thể sử dụng bộ đ?m thời
gian (Timer). Bộ hẹn giờ có thể được đặt để ngắt máy tính sau một
khoảng thời gian nhất đDnh. Khoảng thời gian có thể cố đDnh (ví dụ:
1/60 giây ) hoặc bi?n đổi (ví dụ: từ 1 mili giây đ?n 1 giây). Một bộ
đ?m thời gian thay đổi thường được thực hiện bởi một đồng hồ tốc
độ cố đDnh và một bộ đ?m. Hệ điều hành đặt bộ đểm. Mỗi khi đồng
hổ chạy, bộ đểm được giảm dần. Khi bộ đ?m về 0, ngắt xảy ra. Ví
dụ: bộ đ?m 10 bit với đồng hồ | mili giây cho phép ngắt ở khoảng
thời gian từ 1 mili giây đ?n 1.024 mili giây, trong các bước 1 mili giây. 3. Lập lDch ti?n trình 3.1. Khái niệm :
- Trong một hệ thống có một lõi CPU, chi một ti?n trình có thể chạy
tại một thời điểm. Những ti?n trình khác phải đợi cho đ?n khi lợi
của CPU trắng và có thể được lập lDch lại. Mục tiêu của đa chương
trình là luôn có một số tiền trình chạy, để tối đa hóa việc sử dụng CPU.
- Ý tưởng là tương đối đơn giản. Một ti?n trình được thực thi cho
đ?n khi nó phải đợi, thưởng là để hoàn thành một số yêu cầu DO.
Trong một hệ thống máy tỉnh đơn gian, CPU chỉ ở ch? độ chở. Tất
cả thời gian chờ đợi này bD lãng phí không có công việc hữu ích
nào được thực hiện. Với đa chương trình, chúng ta cố gắng sử
dụng thời gian này một cách hiệu quả. Một số ti?n trình được lưu
trong bộ nhỏ cùng một lúc. Khi một ti?n trình phải chở, hệ điều
hành sẽ đưa CPU ra khỏi ti?n trình đó và đưa CPU cho một ti?n
trình khác. Trên hệ thống đã lỗi, khái niệm giữ CPU bận rộn này
được mở rộng cho tất cả các lỗi xử lý trên hệ thống,
- Lập lDch là một chức năng cơ bản của hệ điều hành. Hầu h?t tất cả
các tài nguyên máy tính đều được lập lDch trước khi sử dụng. Tất
nhiên, CPU là một trong những tài nguyên máy tính chính. Do đó,
lập lDch CPU là trọng tâm của thi?t k? hệ điều hành.
- Mục tiêu để chạy nhiều chương trình cùng lúc
- Chia sẻ thời gian CPU chuyển đổi các chương trình để người dùng
tương tác với chương trình 3.2. Các loại :
Chu kỳ I/O và chu kỳ CPU
- Lập lDch CPU phụ thuộc vào tính chất sau của ti?n trình thực
thi ti?n trình ba gồm một chu kỳ thực thi CPU và chờ I/O.
- Các ti?n trình luận phiên giữa hai trạng thái này. Thực thi
ti?n trình bắt đầu bằng một chu kì CPU, sau đó là một loạt
10, sau đổi là một loạt CPU khác, sau đó là một loạt | O
khác, vv. Cuối cùng, chu kì CPU cuối cùng k?t thúc với yêu
cầu hệ thống chấm dứt thực thi
Bộ lập lDch CPU(Scheduler)
Bất cứ khi nào CPU rồi hệ điều hành phải chọn một trong các ti?n
trình trong hàng đợi sẵn sàng để được thực thi.
Lập lDch ưu tiên và không ưu tiên
Quy tắc lập lDch là ưu tiên và không ưu tiên
Lập lDch là không nhường quyền ưu tiên
Lập lDch không nhường quyền của tiên (độc quyền -
Nonpreemptive) : khi 1 ti?n trình đang thực hiện trên CPU , thì nó
thực hiện cho đ?n khi k?t thúc hoặc tự nguyện nhường quyền ưu tiên .
Lập bi?t nhường quyền của tiên ( không độc quyền quyền -
Preemptive): khi 1 ti?n trình đang thực hiện, hệ điều hành có thể
ngắt CPU ra khỏi ti?n trình đó và đưa cho 1 ti?n trình khác.
Các quy tắc lập lDch là ưu tiên hoặc không ưu tiên. Lập lịch là
không ưu tiên (đặc quyền - Nonpreemptive) n?u, một khi hệ thống
đã chỉ đDnh một bộ xử lý cho một ti?n trình, hệ thống không thể
xóa bộ xử lý đó khỏi ti?n trình đó. Lập lịch ưu tiên (hoặc không
độc quyền - Preemptive) n?u hệ thống có thể xóa bộ xử lý khỏi ti?n
trình nó đang chạy .Theo chế độ lập lịch không ưu tiên, mỗi ti?n
trình, khi được cung cấp cho một bộ xử lý sẽ chạy đ?n khi hoàn
thành hoặc cho đ?n khi nó tự nguyện từ bỏ bộ xử lý của mình.
Theo chế độ lập lịch ưu tiên, bộ xử lý có thể thực thi một phần mã
của ti?n trình và sau đó thực hiện chuyển đổi ngữ cảnh.
Bộ điều phối(Dispatcher)
Một thành phần khác tham gia vào chức năng lập lDch CPU là bộ
điều phối. Bộ điều phối là mộ-dun cung cấp quyền kiểm soát lõi
CPU đối với tiến trình do bộ lập lịch CPU chọn. Chức năng này
bao gồm những thao tác sau:
Chuyển ngữ cảnh từ ti?n trình này sang ti?n trình khác.
• Chuyển sang ch? độ người dùng.
• Chuyển đ?n vD trí thích hợp trong chương trình người dùng để
ti?p tục chương trình đó.
Bộ điều phối phải nhanh nhất có thể, vì nó được gọi trong mọi lần
chuyển đổi ngữ cảnh. Thời gian để bộ điều phối dùng một ti?n
trình và bắt đầu một ti?n trình chạy khác 4. Thuật toán lập lDch
a) First-In-First-Out(FIFO)Scheduling hoặc FCFS
Cơ ch? : ưu tiên (vào trước ra trước - CPU xử lý) b) Shortest-Jobs-First(SJF)
Cơ ch? độc quyền : Chương trình sử dụng CPU ngắn nhất sẽ thực hiện trước
và chuyển đ?n ti?n trình ti?p theo
Cơ ch? không độc quyền : Ti?n trình đang chạy, xuất hiện ti?n trình mới, ti?n
trình có thời gian còn lại ngắn nhất đi trước(SR T).
Giải thuật này gán tới mỗi quá trình chiều dài của chu kỳ CPU ti?p theo cho quá
trình sau đó.Khi CPU sẵn dùng, nó được gán tới quá trình có chu kỳ CPU k? ti?p
ngắn nhất. N?u hai quá trình có cùng chiều dài chu kỳ CPU k? ti?p, đDnh thời FIFO được dùng.
c) Thuật toán Round-Robin(RR)
Quy đDnh có ti?n trình có khoảng thời gian cố đDnh CPU phải thực hiện trong khoảng thời gian đó.
Thuật toán FCS với cơ ch? không độc quyền (quantum-đDnh mức)
Đây là một giải thuật điều phối không độc quyền : khi một ti?n trình sử dụng CPU
đ?n h?t thời gian quantum dành cho nó, hệ điều hành thu hồi CPU và cấp cho ti?n
trình k? ti?p trong danh sách. N?u ti?n trình bD khóa hay k?t thúc trước khi sử dụng
h?t thời gian quantum, hệ điều hành cũng lập tức cấp phát CPU cho ti?n trình khác.
Khi ti?n trình tiêu thụ h?t thời gian CPU dành cho nó mà chưa hoàn tất, ti?n trình
được đưa trở lại vào cuối danh sách sẵn sàng để đợi được cấp CPU trong lượt k? ti?p. Tiến trình Thời điểm vào RL Thời gian xử lý P1 0 24 P2 1 3 P3 2 3
N?u sử dụng quantum là 4 milisecondes, thứ tự cấp phát CPU sẽ là P1 P2 P3 P1 P1 P1 P1 P1 0 4 7 10 14 18 22 26 30
Thời gian chờ đợi trung bình sẽ là (0+6+3+5)/3 = 4.66 milisecondes. d) Priority e) Hàng đợi đa cấp
Các ti?n trình có cùng độ ưu tiên x?p vào một hàng đợi lập lDch , mỗi hàng đợi sẽ
lập lDch theo thuật toán RR , khi hàng đợi mức ưu tiên hơn trống thì hdh chuyển
qua thực hiện các ti?n trình có mức ưu liền kề . Các ti?n trình trong mỗi hàng đợi cố đDnh độ ưu tiên.
f) Hàng đợi phản hồi đa cấp
Các ti?n trình có thể thay đổi độ ưu tiên trong quá trình thực thi.
g) Lập lDch với độ ưu tiên
h) Thuật toán Highest-Response-Ratio-Next(HRRN)
Tỷ lệ đáp ứng cao nhất Ti?p theo (HRNN) là một trong những thuật toán lập lDch
tối ưu nhất. Đây là một thuật toán không phủ đầu, trong đó, việc lập lDch được thực
hiện trên cơ sở một tham số bổ sung được gọi là Tỷ lệ đáp ứng. Tỷ lệ phản hồi
được tính cho từng công việc hiện có và Công việc có Highest Response Ratio
Next được ưu tiên hơn các công việc khác. i) Shortest Remain Time (SRT)
Tương tự như SJF nhưng trong thuật toán này, độ ưu tiên thực hiện các ti?n
trình dựa vào thời gian cần thi?t để thực hiện nốt ti?n trình(bằng tổng thời gian trừ
đi thời gian đã thực hiện).
5. Đồng bộ hóa ti?n trình
- Cách ti?n trình đồng thời hoặc song song có nhu cầu giao ti?p với nhau
- Cơ ch? giao ti?p: gửi thông điệp và chia sẻ vùng nhớ
- Khi sử dụng một nhớ chung chia sẻ giữa các ti?n trình dẫn đ?n tình
huống là các ti?n trình truy đồng thời vào vùng nhớ đó dẫn đ?n sai khác về dữ liệu
ví dụ có ti?n trình cùng truy cập vào vùng nhớ là tổng số lượng Ti?n trình A Ti?n trình B
Bi?n TongSoLuong là bi?n dùng chung cho hai ti?n trình A và B
Giả sử TongSoLuong =5,nA=4,nB=3 If(nAIf(nB < TongSoLuong TongSoLuong = TongSoLuong-nA
TongSoLuong = TongSoLuong –nB Giả sử
- Đồng bộ ti?n trình cơ ch? đảm bảo việc truy cập dữ liệu dùng chung
của các ti?n trình diễn ra nhất quán
- Miền găng (crripticaal –sectioon)- miền tranh chấp .Vùng mã lệnh của
các ti?n trình đang truy cập và dữ liệu dùng chung
- Bài toán miền căng xây dựng một thuật toán cơ ch? cho phép Các ti?n
trình vào miền khăn thực hiện các lệnh truy cập vào dữ liệu dùng
chung đảm bảo yêu cầu sau: Loại trừ lẫn nhau Ti?n độ
Chờ đợi có giới hạn 2 thuật toán Thuật toán peterson
P là một giải pháp cổ điển dựa trên phần mềm cho bài toán về miền găng.
thuật toán của p bD giới hạn ở hai ti?n trình thực hiện luân phiên giữa các
miền găng và các phần còn lại của chúng.
Giải pháp của p không đảm bảo sự hoạt động hợp lệ trên các ki?n trúc máy
tính hiện đại .Vì lý do chính là để cải thiện hiệu suất hệ thống bộ xử lý và
hoặc trình biên dDch có thể sắp x?p lại các thao tác đọc và ghi lệnh không có phụ thuộc nhau.