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

Đ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

Định dạng
Số trang 12
Dung lượng 152,12 KB

Nội dung

lOMoARcPSD|12114775 ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH HỆ ĐIỀU HÀNH (CO2017) Báo cáo Bài tập lớn SIMPLE OPERATING SYSTEM GVHD: Hoàng Lê Hải Thanh SVTH: Cao Thanh Bình - 1912715 Võ Mạnh Hào - 1913238 Ngọ Tiến Đạt - 1913040 Mai Đức Long - 1913996 Lớp TH: L08 Hồ Chí Minh, ngày 12 tháng năm 2021 Downloaded by Vu Vu (quangchinhlas199@gmail.com) lOMoARcPSD|12114775 Trường đại học Bách khoa - ĐHQG TP Hồ Chí Minh Khoa khoa học kỹ thuật máy tính Mục lục Scheduler 1.1 Thực 1.2 Trả lời câu hỏi 2 Memory Management 2.1 Thực 2.2 Trả lời câu hỏi 5 11 Phân chia công việc 11 Bài tập lớn Hệ điều hành - Năm học 2020-2021 Downloaded by Vu Vu (quangchinhlas199@gmail.com) Trang 1/11 lOMoARcPSD|12114775 Trường đại học Bách khoa - ĐHQG TP Hồ Chí Minh Khoa khoa học kỹ thuật máy tính Scheduler 1.1 Thực Ta sử dụng max heap để thực code file queue.c v o i d enqueue ( s t r u c t queue_t ∗ q , s t r u c t pcb_t ∗ p r o c ) { /∗ TODO: put a new p r o c e s s t o queue [ q ] ∗/ i f ( p r o c == NULL) r e t u r n ; q−>p r o c [ q−>s i z e ] = p r o c ; heapUp ( q−>proc , q−>s i z e ) ; q−>s i z e ++; } 10 11 12 13 14 15 16 17 18 19 20 21 s t r u c t pcb_t ∗ dequeue ( s t r u c t queue_t ∗ q ) { /∗ TODO: r e t u r n a pcb whose p r i o p r i t y i s t h e h i g h e s t ∗ i n t h e queue [ q ] and remember t o remove i t from q ∗ ∗/ i f ( ! empty ( q ) ) { s t r u c t pcb_t ∗ r s = q−>p r o c [ ] ; q−>s i z e −−; swap (&(q−>p r o c [ ] ) , &(q−>p r o c [ q−>s i z e ] ) ) ; heapDown ( q−>proc , q−>s i z e , ) ; return rs ; } r e t u r n NULL; } Hiện thực code file sched.c s t r u c t pcb_t ∗ pop_proc ( s t r u c t queue_t ∗ run_queue ) { s t r u c t pcb_t ∗ p r o c ; pthread_mutex_lock(& queue_lock ) ; p r o c = dequeue ( run_queue ) ; pthread_mutex_unlock(& queue_lock ) ; return proc ; } 10 11 12 13 14 15 16 17 18 s t r u c t pcb_t ∗ get_proc ( v o i d ) { s t r u c t pcb_t ∗ p r o c = NULL; /∗TODO: g e t a p r o c e s s from [ ready_queue ] I f r e a d y queue ∗ i s empty , push a l l p r o c e s s e s i n [ run_queue ] back t o ∗ [ ready_queue ] and r e t u r n t h e h i g h e s t p r i o r i t y one ∗ Remember t o u s e l o c k t o p r o t e c t t h e queue ∗ ∗/ i f ( queue_empty ( ) ) { r e t u r n NULL; } 19 i f ( empty(&ready_queue ) ) { w h i l e ( ! empty(&run_queue ) ) { p r o c = pop_proc(&run_queue ) ; add_proc ( p r o c ) ; } } pthread_mutex_lock(& queue_lock ) ; p r o c = dequeue (&ready_queue ) ; pthread_mutex_unlock(& queue_lock ) ; return proc ; 20 21 22 23 24 25 26 27 28 29 30 } Bài tập lớn Hệ điều hành - Năm học 2020-2021 Downloaded by Vu Vu (quangchinhlas199@gmail.com) Trang 2/11 lOMoARcPSD|12114775 Trường đại học Bách khoa - ĐHQG TP Hồ Chí Minh Khoa khoa học kỹ thuật máy tính • Thực thi file cấu hình sched_0 Dữ liệu đầu vào file sched_0 cho thấy time slice 2, sử dụng CPU có process 212 s0 s1 Process s0 bao gồm 15 lệnh, có độ ưu tiên 12 Process s1 bao gồm lệnh, có độ ưu tiên 20 Mỗi lệnh cần đơn vị thời gian để thực thi – Process s0 thực thi thời điểm 1, sau đơn vị thời gian bị tạm dừng đẩy vào run_queue Do ban đầu có process s0 nên ready_queue trống, process s0 đẩy qua ready_queue để tiếp tục thực thi – Tại thời điểm thứ 5, process s1 nạp vào để thực thi, tới thời điểm thứ process s1 đẩy vào run_queue, sau process s0 s1 đẩy qua ready_queue, s1 có độ ưu tiên cao nên s1 tiếp tục thực thi thời điểm – Cả process tiếp tục thực thi hai thực thi hết lệnh Kết thực thi dạng Gantt chart P1 P1 P2 P2 P1 P2 11 P1 13 P2 15 P1 16 P1 18 20 P1 P1 22 23 • Thực thi file cấu hình sched_1 Dữ liệu đầu vào file sched_1 cho thấy time slice 2, sử dụng CPU có process 214 s0 s1 s2 s3 Process s2 bao gồm 12 lệnh, có độ ưu tiên 20 Process s3 bao gồm 11 lệnh, có độ ưu tiên Mỗi lệnh cần đơn vị thời gian để thực thi Quá trình thực thi tương tự file cấu hình sched_0 Kết thực thi dạng Gantt chart P1 1.2 P1 P2 P3 P4 P2 P3 P1 P4 P2 P3 P1 P4 11 13 15 17 19 21 23 25 27 P2 P3 P1 P4 P3 P1 P4 P3 P1 P4 P1 27 28 30 32 34 36 38 40 42 44 45 46 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 giải thuật học: First Come First Serve (FCFS): Bài tập lớn Hệ điều hành - Năm học 2020-2021 Downloaded by Vu Vu (quangchinhlas199@gmail.com) Trang 3/11 lOMoARcPSD|12114775 Trường đại học Bách khoa - ĐHQG TP Hồ Chí Minh Khoa khoa học kỹ thuật máy tính • Ưu điểm: – Khơng thực phép toán logic phức tạp, nên dễ thực – Khơng xảy tình trạng starvation process thực • Nhược điểm: – Khơng có tùy chọn trước, tức process bắt đầu CPU thực kết thúc thực process khác – Vì lí trên, gặp process cần thời gian thực thi lâu process sau phải đợi thời gian tương ứng hậu làm cho hệ thống chạy chậm, phản hồi lâu Shortest Job First (SJF): • Ưu điểm: – Những process có thời gian thực thi ngắn (short process) thực trước, process có thời gian thực thi dài chạy sau Điều giúp cho thơng lượng tăng lên nhiều process thực thời gian ngắn tổng thời gian thực chúng • Nhược điểm: – Cần phải biết trước tổng thời gian thực thi process Điều bất khả thi – Những process có thời gian thực lâu phải đợi khoảng thời gian, sau process có thời gian thực ngắn thực xong Thậm chí chúng không thực (starvation) Round Robin (RR): • Ưu điểm: – Mỗi process thực khoảng thời gian định, chúng có độ ưu tiên – Starvation khơng xảy với vòng lặp round robin, process thực • Nhược điểm: – Thơng lượng tùy thuộc vào việc chọn độ dài thực process – Nếu chọn thời gian vượt qua mức cần thiết, có xu hướng thực giống FCFS Priority based Scheduling: • Ưu điểm: – Các process lựa chọn dựa yêu cầu nhớ (memory requirement), yêu cầu thời gian (time requirement) yêu cầu người dùng (user preference) • Nhược điểm: – Có thể xảy trường hợp process có độ ưu tiên Bài tập lớn Hệ điều hành - Năm học 2020-2021 Downloaded by Vu Vu (quangchinhlas199@gmail.com) Trang 4/11 lOMoARcPSD|12114775 Trường đại học Bách khoa - ĐHQG TP Hồ Chí Minh Khoa khoa học kỹ thuật máy tính – Giả sử ta chọn process có độ ưu tiên cao hơn, process có độ ưu tiên thấp phải đợi process có độ ưu tiên cao chạy xong chạy, chí khơng chạy (starvation) - Từ khái quát trên, ta thấy giải thuật sử dụng hiệu số tình định Trong trường hợp này, priority feedback queue sử dụng giải thuật Priority based Scheduling có lợi cao so với giải thuật khác trình đưa process vào CPU cần phải lựa chọn theo tiêu chuẩn định, Priority based Scheduling thích hợp để giải vấn đề dựa độ ưu tiên - Giải thuật priority feedback queue (PFQ) sử dụng hàng đợi ready_queue run_queue sau: • ready_queue: hàng đợi chứa process mức độ ưu tiên thực thi trước so với hàng đợi run_queue Khi CPU chuyển sang slot tiếp theo, tìm kiếm process hàng đợi • run_queue: hàng đợi chứa process chờ để tiếp tục thực thi sau hết slot mà chưa hồn tất trình Các process hàng đợi tiếp tục slot ready_queue rỗi đưa sang hàng đợi ready_queue để xét slot • Cả hai hàng đợi hàng đợi có độ ưu tiên, mức độ ưu tiên dựa mức độ ưu tiên process hàng đợi Từ đó, PFQ có ưu điểm: • Sử dụng time slot, tạo công thời gian thực thi process, tránh tình trạng chiếm CPU sử dụng, trì hỗn vơ hạn định • Sử dụng hai hàng đợi, hai hàng đợi chuyển qua lại process đến process hoàn tất, tăng thời gian đáp ứng cho process ( process có độ ưu tiên thấp đến sau thực thi trước process có độ ưu tiên cao sau xong slot ) nên linh hoạt phân chia thực công việc • Những process ngắn nhanh chóng hồn thành, nhường thời gian thực thi cho process khác • Tính cơng process đảm bảo, phụ thuộc vào độ ưu tiên có sẵn process Cụ thể xét khoảng thời gian t0 đó, process thực thi hoàn toàn phụ thuộc vào độ ưu tiên chúng Nếu có process p0 khác đến, giả sử ready_queue sẵn sàng, process p0 vào hàng đợi ưu tiên phụ thuộc vào độ ưu tiên nó, cho dù trước process khác có độ ưu tiên cao thực thi xong, chúng tranh chấp với process p0 chúng chờ run_queue ready_queue rỗi, tức p0 thực thi slot 2.1 Memory Management Thực Hiện thực hàm get_page_table() file mem.c Bài tập lớn Hệ điều hành - Năm học 2020-2021 Downloaded by Vu Vu (quangchinhlas199@gmail.com) Trang 5/11 lOMoARcPSD|12114775 Trường đại học Bách khoa - ĐHQG TP Hồ Chí Minh Khoa khoa học kỹ thuật máy tính /∗ S e a r c h f o r page t a b l e t a b l e from t h e a segment t a b l e ∗/ s t a t i c s t r u c t page_table_t ∗ get_page_table ( addr_t index , // Segment l e v e l i n d e x s t r u c t s e g _ t a b l e _ t ∗ s e g _ t a b l e ) { // f i r s t l e v e l t a b l e /∗ ∗ ∗ ∗ ∗ ∗ 10 11 TODO: Given t h e Segment i n d e x [ i n d e x ] , you must go t h ro u g h each row o f t h e segment t a b l e [ s e g _ t a b l e ] and c h e c k i f t h e v_index f i e l d o f t h e row i s e q u a l t o t h e i n d e x ∗/ 12 int i ; f o r ( i = ; i < s e g _ t a b l e −>s i z e ; i ++) { // Enter your code h e r e i f ( i n d e x == s e g _ t a b l e −>t a b l e [ i ] v_index ) { r e t u r n s e g _ t a b l e −>t a b l e [ i ] p a g e s ; } } r e t u r n NULL; 13 14 15 16 17 18 19 20 21 22 } Hiện thực hàm translate() file mem.c /∗ T r a n s l a t e v i r t u a l a d d r e s s t o p h y s i c a l a d d r e s s I f [ v i r t u a l _ a d d r ] i s v a l i d , ∗ r e t u r n and w r i t e i t s p h y s i c a l c o u n t e r p a r t t o [ p h y s i c a l _ a d d r ] ∗ Otherwise , r e t u r n ∗/ static int translate ( addr_t v i r t u a l _ a d d r , // Given v i r t u a l a d d r e s s addr_t ∗ p h y s i c a l _ a d d r , // P h y s i c a l a d d r e s s t o be r e t u r n e d s t r u c t pcb_t ∗ p r o c ) { // P r o c e s s u s e s g i v e n v i r t u a l a d d r e s s /∗ O f f s e t o f t h e v i r t u a l a d d r e s s ∗/ addr_t o f f s e t = g e t _ o f f s e t ( v i r t u a l _ a d d r ) ; /∗ The f i r s t l a y e r i n d e x ∗/ addr_t f i r s t _ l v = g e t _ f i r s t _ l v ( v i r t u a l _ a d d r ) ; /∗ The s e c o n d l a y e r i n d e x ∗/ addr_t second_lv = get_second_lv ( v i r t u a l _ a d d r ) ; 10 11 12 13 14 15 /∗ S e a r c h i n t h e f i r s t l e v e l ∗/ s t r u c t page_table_t ∗ p a g e _ t a b l e = NULL; p a g e _ t a b l e = get_page_table ( f i r s t _ l v , proc−>s e g _ t a b l e ) ; i f ( p a g e _ t a b l e == NULL) { return 0; } 16 17 18 19 20 21 22 int i ; f o r ( i = ; i < page_table−>s i z e ; i ++) { i f ( page_table−>t a b l e [ i ] v_index == second_lv ) { /∗ TODO: C o n c a t e n a t e t h e o f f s e t o f t h e v i r t u a l a d d e s s ∗ t o [ p_index ] f i e l d o f page_table−>t a b l e [ i ] t o ∗ p ro d u c e t h e c o r r e c t p h y s i c a l a d d r e s s and s a v e i t t o ∗ [ ∗ physical_addr ] ∗/ addr_t p_index = page_table−>t a b l e [ i ] p_index ; ∗ p h y s i c a l _ a d d r = ( p_index bp + num_pages∗PAGE_SIZE = num_pages ) { mem_avail = ; break ; } } } i f ( mem_avail ) { /∗ We c o u l d a l l o c a t e new memory r e g i o n t o t h e p r o c e s s ∗/ ret_mem = proc−>bp ; proc−>bp += num_pages ∗ PAGE_SIZE ; /∗ Update s t a t u s o f p h y s i c a l p a g e s which w i l l be a l l o c a t e d ∗ t o [ p r o c ] i n _mem_stat Tasks t o : ∗ − Update [ p r o c ] , [ i n d e x ] , and [ n e x t ] f i e l d ∗ − Add e n t r i e s t o segment t a b l e page t a b l e s o f [ p r o c ] ∗ t o e n s u r e a c c e s s e s t o a l l o c a t e d memory s l o t i s ∗ v a l i d ∗/ i n t v_idx = ; i n t prev_p_idx = ; f o r ( i n t i = ; i < NUM_PAGES; i ++) { i f ( _mem_stat [ i ] p r o c == ) { _mem_stat [ i ] p r o c = proc−>p i d ; _mem_stat [ i ] i n d e x = v_idx ; i f ( v_idx != ) { _mem_stat [ prev_p_idx ] n e x t = i ; } 51 52 53 54 addr_t v_addr = ret_mem + v_idx ∗PAGE_SIZE ; addr_t f i r s t _ l v = g e t _ f i r s t _ l v ( v_addr ) ; addr_t second_lv = get_second_lv ( v_addr ) ; 55 56 57 s t r u c t s e g _ t a b l e _ t ∗ s e g _ t a b l e = proc−>s e g _ t a b l e ; i f ( s e g _ t a b l e −>t a b l e [ ] p a g e s == NULL) s e g _ t a b l e −>s i z e = ; 58 59 60 61 62 i n t found = ; f o r ( i n t j = ; j < s e g _ t a b l e −>s i z e ; j ++){ i f ( s e g _ t a b l e −>t a b l e [ j ] v_index == f i r s t _ l v ) { s t r u c t page_table_t ∗ cur_pages = s e g _ t a b l e −>t a b l e [ j ] p a g e s ; Bài tập lớn Hệ điều hành - Năm học 2020-2021 Downloaded by Vu Vu (quangchinhlas199@gmail.com) Trang 7/11 lOMoARcPSD|12114775 Trường đại học Bách khoa - ĐHQG TP Hồ Chí Minh Khoa khoa học kỹ thuật máy tính 63 cur_pages−>t a b l e [ cur_pages−>s i z e ] v_index = second_lv ; cur_pages−>t a b l e [ cur_pages−>s i z e ] p_index = i ; cur_pages−>s i z e ++; 64 65 66 67 found = ; break ; 68 69 } 70 } 71 72 i f ( ! found ) { s e g _ t a b l e −>t a b l e [ s e g _ t a b l e −>s i z e ] v_index = f i r s t _ l v ; s e g _ t a b l e −>t a b l e [ s e g _ t a b l e −>s i z e ] p a g e s = ( s t r u c t page_table_t ∗ ) m a l l o c ( s i z e o f ( s t r u c t page_table_t ) ) ; 73 74 75 76 77 s t r u c t page_table_t ∗ new_pages = s e g _ t a b l e −>t a b l e [ s e g _ t a b l e −>s i z e ] 78 pages ; 79 new_pages−>t a b l e [ ] v_index = second_lv ; new_pages−>t a b l e [ ] p_index = i ; new_pages−>s i z e = ; 80 81 82 83 s e g _ t a b l e −>s i z e ++; 84 } 85 86 prev_p_idx = i ; v_idx++; i f ( v_idx == num_pages ) { _mem_stat [ i ] n e x t = −1; break ; } 87 88 89 90 91 92 } 93 } 94 } pthread_mutex_unlock(&mem_lock ) ; r e t u r n ret_mem ; 95 96 97 98 } Hiện thực hàm free_mem file mem.c 10 i n t free_mem ( addr_t a d d r e s s , s t r u c t pcb_t ∗ p r o c ) { /∗TODO: R e l e a s e memory r e g i o n a l l o c a t e d by [ p r o c ] The f i r s t b y t e o f ∗ t h i s r e g i o n i s i n d i c a t e d by [ a d d r e s s ] Task t o : ∗ − S e t f l a g [ p r o c ] o f p h y s i c a l page u s e by t h e memory b l o c k ∗ back t o z e r o t o i n d i c a t e t h a t i t i s f r e e ∗ − Remove unused e n t r i e s i n segment t a b l e and page t a b l e s o f ∗ the p r o c e s s [ proc ] ∗ − Remember t o u s e l o c k t o p r o t e c t t h e memory from o t h e r ∗ processes ∗/ pthread_mutex_lock(&mem_lock ) ; 11 12 13 14 15 16 17 18 19 20 21 22 23 addr_t f i r s t _ l v = g e t _ f i r s t _ l v ( a d d r e s s ) ; addr_t second_lv = get_second_lv ( a d d r e s s ) ; s t r u c t page_table_t ∗ p a g e _ t a b l e = get_page_table ( f i r s t _ l v , proc−>s e g _ t a b l e ) ; i n t found = ; addr_t p_index ; i f ( p a g e _ t a b l e != NULL) { f o r ( i n t i = ; i < page_table−>s i z e ; i ++) { i f ( second_lv == page_table−>t a b l e [ i ] v_index ) { found = ; p_index = page_table−>t a b l e [ i ] p_index ; break ; } Bài tập lớn Hệ điều hành - Năm học 2020-2021 Downloaded by Vu Vu (quangchinhlas199@gmail.com) Trang 8/11 lOMoARcPSD|12114775 Trường đại học Bách khoa - ĐHQG TP Hồ Chí Minh Khoa khoa học kỹ thuật máy tính } } i f ( found ) { addr_t v_addr ; addr_t v_idx = ; { // S e t f l a g [ p r o c ] o f p h y s i c a l page u s e by t h e memory b l o c k back t o z e r o t o i n d i c a t e that i t i s f r e e _mem_stat [ p_index ] p r o c = ; p_index = _mem_stat [ p_index ] n e x t ; // Remove unused e n t r i e s i n page t a b l e o f t h e p r o c e s s [ p r o c ] f o r ( i n t j = ; j < page_table−>s i z e ; j ++) { v_addr = a d d r e s s + v_idx ∗PAGE_SIZE ; second_lv = get_second_lv ( v_addr ) ; i f ( page_table−>t a b l e [ j ] v_index == second_lv ) { f o r ( i n t k = j ; k < page_table−>s i z e −1; k++) { page_table−>t a b l e [ k ] = page_table−>t a b l e [ k + ] ; } page_table−>s i z e −−; v_idx++; break ; } } } w h i l e ( p_index != −1) ; 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 int i ; // i n d e x o f s e g f o r ( i = ; i < proc−>s e g _ t a b l e −>s i z e ; i ++) { i f ( f i r s t _ l v == proc−>s e g _ t a b l e −>t a b l e [ i ] v_index ) b r e a k ; } 48 49 50 51 52 // Remove unused e n t r i e s i n segment t a b l e o f t h e p r o c e s s [ p r o c ] i f ( page_table−>s i z e == ) { f r e e ( page_table ) ; f o r ( i n t k = i ; k < proc−>s e g _ t a b l e −>s i z e −1; k++) { proc−>s e g _ t a b l e −>t a b l e [ k ] = proc−>s e g _ t a b l e −>t a b l e [ k + ] ; } proc−>s e g _ t a b l e −>s i z e −−; } 53 54 55 56 57 58 59 60 } pthread_mutex_unlock(&mem_lock ) ; i f ( found ) r e t u r n ; return 0; 61 62 63 64 65 } • Thực thi file cấu hình m0 17 (1) alloc 13535 (2) alloc 1568 (3) free (4) alloc 1386 (5) alloc 4564 (6) write 102 20 (7) write 21 1000 Lệnh alloc dùng để cấp phát nhớ: CPU kiểm tra xem kích thước nhớ vật lí có đủ để cấp phát hay khơng, đủ CPU cấp phát nhớ cho task cách Bài tập lớn Hệ điều hành - Năm học 2020-2021 Downloaded by Vu Vu (quangchinhlas199@gmail.com) Trang 9/11 lOMoARcPSD|12114775 Trường đại học Bách khoa - ĐHQG TP Hồ Chí Minh Khoa khoa học kỹ thuật máy tính lưu giá trị vào _mem_stat, gán giá trị cho seg_table page_table, lưu địa đầu vào ghi regs process Lệnh free dùng để thu hồi nhớ: CPU chuyển địa ảo sang địa vật lí, hủy cấp phát nhớ task cách thay đổi trạng thái _mem_stat thành free, xóa giá trị task seg_table page_table – Lệnh alloc (1) cấp phát nhớ cho task – Lệnh alloc (2) cấp phát nhớ cho task – Lệnh free (3) thu hồi nhớ task – Lệnh alloc (4) cấp phát nhớ cho task – Lệnh alloc (5) cấp phát nhớ cho task Kết thực thi sau chạy lệnh cấp phát thu hồi nhớ Page 10 11 12 13 14 15 Address 00000-003ff 00400-007ff 00800-00bff 00c00-00fff 01000-013ff 01400-017ff 01800-01bff 01c00-01fff 02000-023ff 02400-027ff 02800-02bff 02c00-02fff 03000-033ff 03400-037ff 03800-03bff 03c00-03fff (1) P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 0 (2) P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P1 P1 (3) 0 0 0 0 0 0 0 P1 P1 (4) P2 P2 0 0 0 0 0 0 P1 P1 (5) P2 P2 P4 P4 P4 P4 P4 0 0 0 P1 P1 • Thực thi file cấu hình m1 18 (1) alloc 13535 (2) alloc 1568 (3) free (4) alloc 1386 (5) alloc 4564 (6) free (7) free (8) free Quá trình thực thi tương tự file cấu hình m0 Kết thực thi sau chạy lệnh cấp phát thu hồi nhớ Bài tập lớn Hệ điều hành - Năm học 2020-2021 Downloaded by Vu Vu (quangchinhlas199@gmail.com) Trang 10/11 lOMoARcPSD|12114775 Trường đại học Bách khoa - ĐHQG TP Hồ Chí Minh Khoa khoa học kỹ thuật máy tính Page 10 11 12 13 14 15 2.2 Address 00000-003ff 00400-007ff 00800-00bff 00c00-00fff 01000-013ff 01400-017ff 01800-01bff 01c00-01fff 02000-023ff 02400-027ff 02800-02bff 02c00-02fff 03000-033ff 03400-037ff 03800-03bff 03c00-03fff (1) P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 0 (2) P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P0 P1 P1 (3) 0 0 0 0 0 0 0 P1 P1 (4) P2 P2 0 0 0 0 0 0 P1 P1 (5) P2 P2 P4 P4 P4 P4 P4 0 0 0 P1 P1 (6) 0 P4 P4 P4 P4 P4 0 0 0 P1 P1 (7) 0 0 0 0 0 0 0 P1 P1 (8) 0 0 0 0 0 0 0 0 Trả lời câu hỏi What is the advantage and disadvantage of segmentation with paging? • Advantage – Kích thước bảng trang giảm xuống trang hiển thị cho liệu phân đoạn, giảm yêu cầu nhớ – Hạn chế tượng phân mảnh ngoại cách phân trang đoạn – Vì khơng cần phải hốn đổi tồn phân đoạn nên việc hoán đổi vào nhớ ảo trở nên dễ dàng • Disadvantage – Dễ xảy tượng phân mảnh nội – Bắt buộc phải có phần cứng bổ sung Phân chia cơng việc Name Ngọ Tiến Đạt Cao Thanh Bình Mai Đức Long Võ Mạnh Hào Role Scheduler and Writing report Memory Management and Writing report Memory Management and Writing report Memory Management and Writing report Tài liệu [1] Slide môn học: CO2017-Operating Systems [2] Abraham Silberschatz, Greg Gagne, Peter B Galvin - Operating System Concepts 10th Bài tập lớn Hệ điều hành - Năm học 2020-2021 Downloaded by Vu Vu (quangchinhlas199@gmail.com) Trang 11/11

Ngày đăng: 21/06/2023, 22:08

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w