1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập lớn 2 simple operating system

12 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề SIMPLE OPERATING SYSTEM
Tác giả Cao Thanh Binh, Võ Manh Hao, Ngô Tiến Đạt, Mai Diệu Long
Người hướng dẫn Hoàng Lợi Hải Thanh
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Hệ điều hành
Thể loại Bài tập lớn
Năm xuất bản 2020-2021
Thành phố Hồ Chí Minh
Định dạng
Số trang 12
Dung lượng 2,1 MB

Nội dung

— Tại thời điểm thứ 5, process s1 được nạp vào để thực thi, tới thời điểm thứ 7 thì process sĩ được đẩy vào run_ queue, sau đó cä 2 process sŨ và sĩ được đẩy qua ready_ queue, đo s1 có

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHO HO CHi MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

HE DIEU HANH (CO2017)

Báo cáo Bài tập lớn 2

SIMPLE OPERATING SYSTEM

GVHD: Hoang Lê Hải Thanh

SVTH: Cao Thanh Binh - 1912715 V6 Manh Hao - 1913238 Ngo Tién Dat - 1913040

Mai Dite Long - 1913996

Lớp TH: 0S

Hồ Chí Minh, ngày 12 tháng 5 năm 2021

Trang 2

@¬» Khoa khoa học và kỹ thuật máy tính

Mục lục

3 Phan chia công việc

Trang 3

@¬» Khoa khoa học và kỹ thuật máy tính

1 Scheduler

1.1 "Thực hiện

Ta sử dụng max heap để hiện thực code trong file queue.c

}

Hiện thực code trong file sched.c

pthread_ mutex_ loek(&queue_ lock);

7 }

8

Trang 4

@¬» Khoa khoa học và kỹ thuật máy tính

e Thực thi file cầu hình sched_ 0

Dữ liện đầu vào của ñle sehed _ 0 cho thấy time slice là 2, sử dụng 1 CPU và có 2 process

Process s0 bao gồm 15 lệnh, có độ tru tiên là 12

Process s1 bao gồm 7 lệnh, có độ tu tiên là 20

Mỗi lệnh cần 1 đơn vị thời gian để thực thi

— Process s0 thực thi tại thời điểm 1, sau 2 đơn vị thời gian nó sẽ bị tạm dừng và được đẩy vào run_ queue Do ban đầu chỉ có process s0 nên ready_ queue hiện tai dang trống, process sÚ được đẩy qua, ready_ queue để tiếp tục thực thi

— Tại thời điểm thứ 5, process s1 được nạp vào để thực thi, tới thời điểm thứ 7 thì process

sĩ được đẩy vào run_ queue, sau đó cä 2 process sŨ và sĩ được đẩy qua ready_ queue,

đo s1 có độ tu tiên cao hơn nên s1 tiếp tục được thực thi tại thời điểm 7

— Cả 2 process cứ tiếp tục thực thi như vậy cho đến khi cả hai thực thi hết lệnh

kết quả thực thỉ dưới dạng Gantt chart

[ | Pi] Pi] P2] P2] Pi] P2] Pi]

9 11 13 1 P2 [|PI|[PI|PI|PI

0 1 3 5 5 16 18 2 O 22 23 Thực thì ñle cấu hình sched_ 1

Dữ liện đầu vào của ñle sehed_ 1 cho thấy time slice là 2, sử dụng 1 CPU và có 4 process

Process s2 bao gồm 12 lệnh, có độ ưu tiên là 20

Process s3 bao gồm 11 lệnh, có độ tru tiên là 7

Mỗi lệnh cần 1 đơn vị thời gian để thực thi

Quá trình thực thi tương tự như ñle cấu hình sched_ 0

kết quả thực thỉ dưới dạng Gantt chart

[ |PI|PI|P2|P3|P4|P2|[P3|PI|P41|P2|P3|PiI| P4]

0 1 8 5 7 9 11 13 lỗ 17 19 21 23 25 27 [ P2] P3] Pl] P4] P3] Pi | P4] P3] Pi P4] Pld

27 28 30 32 31 356 3S 40 42 44 45 46

1.2 Trả lời câu hỏi

What is the advantage of using priority feedback queue in comparison with other scheduling algorithms you have learned?

Trả lời:

Tổng quan về các giải thuật đã học:

1 First Come First Serve (FCFS):

Trang 5

@¬» Khoa khoa học và kỹ thuật máy tính

e Ưu điểm:

— Không thực hiện những phép toán logic phức tạp, nên dễ hiện thực

— Không xảy ra tình trang starvation vì mỗi process đều sẽ được thực hiện

e Nhược điểm:

— Không có tùy chọn trước, tức khi một process bắt đầu thì CPU sẽ thực hiện cho đến

khi nó kết thúc rồi mới thịrc hiện process khác

—_ Vì lí do trên, nếu gặp proeess cần thời gian thực thi lâu thì những process sau đó phải đợi một thời gian tương ứng hậu quả làm cho hệ thống chạy chậm, phản hồi lâu

2 Shortest Job First (SJF):

e Uu diém:

— Những process có thời gian thực thi ngắn (short process) sẽ thực hiện trước, những process có thời gian thực thi dài hơn sẽ chạy san Điều này giúp cho thông lượng tăng lên vì nhiều process có thể thực hiện trong thời gian ngắn hơn tổng thời gian thực hiện của chúng

e Nhược điểm:

— Cần phải biết trước tổng thời gian thực thi của process Điều này là bat kha thi

— Những process có thời gian thực hiện lâu hơn sẽ phải đợi một khoảng thời gian, sau khi những process có thời gian thực hiện ngắn thực hiện xong Thậm chí chúng có thể

không được thực hiện (starvation)

3 Round Robin (RR):

e Ưu điểm:

— Mỗi process đều được thực hiện trong khoảng thời gian nhất định, vì vậy chúng có cing dé wu tiên

— §tarvation không xây ra vì với mỗi vòng lặp round robin, mỗi process đều được thực hiện

e Nhược điểm:

— Thông lượng của nó tùy thuộc vào việc chọn độ dài thực hiện của mỗi process

— Nếu chọn thời gian trên vượt qua mức cần thiết, nó sẽ có xu hướng thực hiện giống như FCES

4 Priority based Scheduling:

e Ưu điểm:

— Các process có thể được lựa chọn dựa trên yêu cầu của bộ nhớ (memory requirement), yêu cầu thời gian (time requirement) hoặc yêu cầu của người ding (user preference)

e Nhược điểm:

— Có thể xảy ra trường hợp 2 process có cùng độ ưu tiên

Trang 6

Trường đại học Bách khoa - ĐHQG TP Hồ Chí Minh

6

— Giả sử ta chọn process có độ tu tiên cao hơn, thì những process có độ tru tiên thấp phải đợi những process có độ tru tiên cao hơn chạy xong thì mới được chạy, thậm chí khong duge chay (starvation)

- Từ khái quát trên, ta có thể thấy mỗi giải thuật sẽ sử dụng hiệu quả trong một số tình huống nhất định Trong trường hợp này, priority feedback queue sử dụng giải thuật Priority based Scheduling sẽ có lợi cao hơn so với giải thuật khác vì quá trình đưa process vào CPU cần phải

được lựa chọn theo một tiên chuẩn nhất định, và Priority based Scheduling thích hợp để giải

quyết vấn đề này dựa trên độ tu tiên

- Giải thuật priority feedback queue (PFQ) sử dụng 2 hàng đợi là ready_ queue và run_ queue như sau:

e ready queue: hang doi chita các process ở mức độ wu tiên thực thi trước hơn so với hàng đợi run quene Khi CPU chuyển sang slot tiếp theo, nó sẽ tìm kiếm process trong hàng

đợi này

e run queue: hàng đợi này chứa các process đang chờ để tiếp tục thực thi sau khi hết slob của nó mà chưa hoàn tất quá trình của mình Các process ở hàng đợi này chỉ được tiếp tuc slot tiếp theo khi ready_ queue rỗi và được đưa sang hàng đợi ready_ queue để xét slot tiếp theo

Ca hai hàng đợi đều là hàng đợi có độ ru tiên, mức độ tru tiên dựa trên mức độ tru tiên

của process trong hàng đợi

Từ đó, PFQ có những ưu điểm:

2

Sử dụng time slot, tạo sự công bằng về thời gian thực thi giữa các process, tránh tình trạng

chiếm CPU sử dụng, trì hoãn vô hạn định

Sử dụng hai hàng đợi, trong đó hai hàng đợi được chuyển qua lại các process đến khi process được hoàn tất, tăng thời gian đáp ứng cho các process ( các process có độ tu tiên

thấp đến sau vẫn có thể được thực thi trước các process có độ wu tiên cao hơn sau khi đã

xong slot của mình ) nên sẽ linh hoạt trong phân chia thực hiện công việc

Những process ngắn sẽ nhanh chóng được hoàn thành, nhường thời gian thực thi cho các process khác

Tính công bằng giữa các process là được đảm bảo, chỉ phụ thuộc vào độ tru tiên có sẵn của, các process Cụ thể xét trong khoảng thời gian t0 nào đó, nếu các process đang thực thi thì hoàn toàn phụ thuộc vào độ ưu tiên của chúng Nếu có một process p0 khác đến, giả

SỬ ready_ queue đang sẵn sàng, process pŨ này vào hàng đợi ưu tiên và phụ thuộc vào độ

tu tiên của nó, cho dù trước đó các process khác có độ tru tiên cao hơn đã thực thi xong, chúng cũng không thể tranh chấp với process p0 được vì chúng đang chờ trong run_ quene cho đến khi ready_ queue là rỗi, tức p0 đã được thực thi slot của nó

Memory Management

2.1 Thực hiện

Hiện thực hàm get_ page_ table() trong file mem.ec

Trang 7

@¬» Khoa khoa học và kỹ thuật máy tính

10 *

12

18 }

19 }

22 }

Hiện thực hàm translate() trong file mem.c

8

21

33 }

34 }

36 }

Hiện thực hàm alloc_ mem trong ñle mem.c

Trang 8

1

3

5

pthread mutex _lock(&mem_loc

addr_t ret_mem = 0;

uint32_t num_pages = (size % PAGE SIZE) ? size / PAGE SIZE +1

int mem_avail = 0; // We could allocate new memory region or not?

*/

int free frame = 0;

if(_mem_stat[i].proc — 0) free frame++;

if (free frame >= num_pages) { mem avail = 1;

break;

} }

}

if (mem avail) {

ret_ mem = proc—>bp;

proc—>bp += num_pages * PAGE SIZE;

int v_idx = 0;

int prev_p_idx = 0;

{

if (_mem_stat[i].proc — 0) _mem_stat[i] proc = proc—spid;

_mem_stat[i].index = v_idx;

if(v_idx != 0) _mem_stat[prev_p_idx].next = i;

}

addr_t v_addr = ret_mem + v_idx*PAGE SIZE;

addr_t first lv = get first lv(v addr);

if(seg_table—>table [0] pages == NULL) seg table—>size = 0;

for(int j = 0; j < seg_table—>size; j++){

if(seg_table—>table[j].v_index — first _lv){

Trang 9

Khoa khoa học và kỹ thuật máy tính

¢ ề

cur _pages—>table[cur_pages—>size].v_index = second_ lv;

cur _pages—>table[cur_pages—>size].p index = i;

cur _pages—>size+4+;

break;

}

seg table—>table[seg_table—>size].v_index = first _lv;

= (struct page table _t *)malloc(sizeof(struct page table t));

struct page table _t * new pages = seg table—>table[seg table—>size | pages

new _pages—>table [0].v_index = second_lv;

new _pages—>table [0].p_index = i;

seg table—>size+4;

}

v_idx++;

if(v_idx == num_pages) { _mem_ stat[i | next = —l;

break;

t

Hiện thực hàm free_mem trong file mem.c

pthread _mutex_lock(&mem_lock) ;

addr_t first lv = get first lv(address);

addr_t second_lv = get second Iv(address);

addr_t p_index;

if(page_table != NULL) {

if (second_lv == page _table—>table[i].v_index) {

p_index = page _table—>table[i].p_index;

break;

}

Trang 10

BN

62

63

65

}

if(found) {

addr_t v_addr;

addr_t v_idx = 0;

do {

_mem_stat[p_index].proc = 0;

p_index = _mem_ stat[p index] next;

for(int j = 0; j < page _table—>size; j++) { v_addr = address + v_idx*PAGE SIZE;

if (page_table—stable[j].v_index = second_lv) {

page_ bable—>table [k] = page_ table—>table [k+ 1];

page_ table— >size——;

v_idx+-;

break;

} while(p index l!l= —1);

if (page_table—>size — 0)

free(page table);

proc—sseg_table—>table[k] = proc—>seg_ bable—>table[k+l];

proc—>seg_ table—>size ——;

}

e Thực thi file cấu hình m0

alloc 1568 1 alloc 1386 2 alloc 4564 4 write 102 1 20 write 21 2 1000

5

6

7

Lệnh alloc dùng để cấp phát bộ nhớ: CPU sẽ kiểm tra xem kích thước của bộ nhớ vật lí

có đủ để cấp phát hay không, nếu đủ thì CPU sẽ cấp phát bộ nhớ cho task đó bằng cách

Trang 11

@¬» Khoa khoa học và kỹ thuật máy tính

lưu giá trị vào _mem_ stat, gan gid tri cho seg_ table vA page_ table, lu dia chi dau vao thanh ghi regs cla process

Lệnh free dùng để thu hồi bộ nhớ: CPU sẽ chuyển địa chỉ ảo sang địa chỉ vật lí, hủy

cấp phát bộ nhớ của task đó bằng cách thay đổi trạng thái của mem stat thành free, xóa, các giá trị của task d6 trong seg_ table và page_ table

— Lệnh alloe (1) cấp phát bộ nhớ cho task 0

— 2) cấp phát bộ nhớ cho task 1

— Lệnh free (3) thu hồi bộ nhớ của task 0

— Lénh alloc

— Lệnh alloe (4) cấp phát bộ nhớ cho task 2 Lệnh alloc (5) cấp phát bộ nhớ cho task 4 kết quả thực thỉ sau khi chạy các lệnh cấp phát và thu hồi bộ nhớ

01400-01

01c000

02800-02

03400-037ff | P0

e Thực thi file cấu hình m1

(1) alloc 13535 0 (2) alloc 1568 1 (3) free 0 (4) alloc 1386 2 (5) alloc 4564 4

(6) (7) (8)

Quá trình thực thi tương tự nhi file ciu hinh m0

kết quả thực thỉ sau khi chạy các lệnh cấp phát và thu hồi bộ nhớ

Trang 12

@¬» Khoa khoa học và kỹ thuật máy tính

01000-01

15

2.2 Trả lời câu hỏi

What is the advantage and disadvantage of segmentation with paging?

e Advantage

— Kích thước bảng trang được giảm xuống vì các trang chỉ hiển thị cho dữ liệu của các phân đoạn, do đó giảm yêu cầu bộ nhớ

— Hạn chế được hiện tượng phân mảnh ngoại bằng cách phân trang trong mỗi đoạn

— Vì không cần phải hoán đổi toàn bộ phân đoạn nên việc hoán đổi vào bộ nhớ ảo trở

nên dễ dàng hơn

e Disadvantage

— Dé xay ra hiện tượng phân mảnh nội

— Bắt buộc phải có phần cứng bổ sung

3 Phân chia công việc

ame

Cao Thanh Binh Mai Đức

õ

Tài liệu

[1] Slide mén hoe: CO2017-Operating Systems

(2) Abraham Silberschatz, Greg Gagne, Peter B Galvin - Operating System Concepts 10th

Ngày đăng: 08/11/2024, 17:21

w