đề cương ôn tập NGUYÊN lý hệ điều HÀNH

27 329 2
đề cương ôn tập NGUYÊN lý hệ điều HÀNH

Đ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

odule (i.e. file có thể thực thi, executable) + Ví dụ trong Windows: module ngoài là các file .DLL còn trong Unix, các module ngoài là các file .so (shared library) Load module chứa các stub tham chiếu (refer) đến routine của external module. + Lúc thực thi, khi stub được thực thi lần đầu (do process gọi routine lần đầu), stub nạp routine vào bộ nhớ, tự thay thế bằng địa chỉ của routine và routine được thực thi. + Các lần gọi routine sau sẽ xảy ra bình thường Stub cần sự hỗ trợ của OS (như kiểm tra xem routine đã được nạp vào bộ nhớ chưa). Ưu điểm của dynamic linking: Thông thường, external module là một thư viện cung cấp các tiện ích của OS. Các chương trình thực thi có thể dùng các phiên bản khác nhau của external module mà không cần sửa đổi, biên dịch lại. Chia sẻ mã (code sharing): một external module chỉ cần nạp vào bộ nhớ một lần. Các process cần dùng external module này thì cùng chia sẻ đoạn mã của external module Þ tiết kiệm không gian nhớ và đĩa. Phương pháp dynamic linking cần sự hỗ trợ của OS trong việc kiểm tra xem một thủ tục nào đó có thể được chia sẻ giữa các process hay là phần mã của riêng một process (bởi vì chỉ có OS mới có quyền thực hiện việc kiểm tra này). 1. Phân trang, phân đoạn Phân trang: Kg gian địa chỉ logic của 1 tiến trình có thể kg kề nhau; tiến trình đc phân phối bộ nhớ vật lý bất kỳ lúc nào khi bộ nhớ sẵn có. Chia bộ nhớ vật lý thành những khối có kích thước cố định là lũy thừa của 2 (512 bytes – 16Mb), đgl các frame (page vật lý) chia bộ nhớ logic (dành cho các tiến trình) thành các khối cùng kích thước – các page, mỗi page có kích thước = 1 frame Luôn theo dõi all các frame còn trống để chạy 1 ch.trình có kích thước n pages, cần phải tìm n frames còn trống và nạp chương trình thiết lập 1 bảng phân trang (page table) để biên dịch (translate) các địa chỉ logic thành địa chỉ vật lý nội dung mỗi phần tử trong page table co biết chỉ số frame (địa chỉ cơ sở) của bộ nhớ vật lý. Cách đánh địa chỉ theo trang địa chỉ đc đánh 1 cách phân cấp: + Số hiệu trang (Page number p) – Được sử dụng làm chỉ số đến phần tử trong bảng trang chứa địa chỉ cơ sở của các frame trong bộ nhớ vật lý + Offset trang (Page offset d) – Địa chỉ tương đối trong trang. Kết hợp vs địa chỉ cơ sở để xác định địa chỉ bộ nhớ vật lý đc gửi đến bộ nhớ. Địa chỉ ảo có m bit, sử dụng mn bit cao làm số hiệu trang và n bít thấp làm Offset Kg có phân mảnh ngoài, có phân mảnh trong: + giản cỡ trang > giảm phân mảnh trong  giảm hiệu năng + tăng cở trang  tăng hiệu suất  tăng phân mảnh trong Phân đoạn: Phương thức quản lý bộ nhớ cho phép NSD “nhìn” bộ nhớ một cách dễ dàng dưới góc độ lập trình Một chương trình gồm nhiều phân đoạn, mỗi phân đoạn thể hiện dưới góc độ lập trình ở dạng: main program (Chương trình chính) function, (Các hàm) method (Các phương thức) object, (Các đối tượng, lớp) localglobal variables, (Các biến) common block, (Các khối chung) stack, (Ngăn xếp) symbol table, arrays (Bảng ký hiệu, mảng) Kiến trúc phân đoạn: + địa chỉ logic gồm 2 thành phần: + Segement table – ánh xạ địa chỉ vật lý 2 cấp, nội dung mỗi mục trong Sement table gồm có: _ Base: chứa địa chỉ vật lý đầu tiên của đoạn trong bộ nhớ _ Limit : xác định độ dài của đoạn + Segmenttable base register (STBR): trỏ tới vị trí của Segement table (bảng ohaan đoạn) trong bộ nhớ + Segementtable length register (STLR): xác định số đoạn mà một chương trình sử dụng + Segement number s là hợp lệ nếu s < STLR + Phân đoạn: các đoạn có kicks thước khác nhau ( khác vs phân trang) + định vị: Động. Được thực hiện bởi bẳng phân đoạn + phân phối bộ nhớ: Giải quyết bài toán phân phối bộ nhớ động. First Fit Best fit Worst fit. Có sự phân mảnh ngoài. 2. Kỹ thuật Overlay Ý tưởng: chỉ giữ trong bộ nhớ những lệnh và dữ liệu cần đến tại mọi thời điểm (thường là các module tải)  giảm kg gian nhớ liên tục dành cho ch.trình Cơ chế Overlay + Cho phép tổ chức ch.trình thành các đơn vị ch.trình(module) + Module luôn tồn tại trong quá trình thực hiện  module chương trình chính + Quan hệ độc lậpphụ thuộc chỉ sự có mặt của 1 nhóm module trong bộ nhớ đòi hỏikhông đòi hỏi sự có mặt của 1 nhóm module khác + Các module độc lập kg cần thiết phải có mặt đồng thời trong bộ nhớ Cần đến khi tiến trình có dung lượng lớn bộ nhứ đc cấp phát cho nó Ưu điêm – nhược điểm Ưu điểm: + Cấu trúc Overlay có tính chất định vị động  cho phép sử dụng bộ nhớ nhiều hơn phần bộ nhớ mà hệ thống dành cho ch.trình. Cấu trúc ch.trình mang tính chất tĩnh, kg thay đỏi trong tất cả các lần thực hiện chương trình + So vs cấu trúc động,cấu trúc Overlay đòi hỏi cung cấp thông tin đơn giản, kg gắn cấu trúc vào chương trình nguồn + Với sơ đồ Overlay tốt và các module độ dài kg quá lớn thì hiệu quả kg kém so vs cấu trúc động Nhược điểm: Hiệu quả tiết kieemk bộ nhớ phụ thuộc cách tổ chức, bố trí các module chương trình.

ĐỀ CƯƠNG ÔN TẬP NGUYÊN LÝ HỆ ĐIỀU HÀNH Hệ điều hành gì? Cho ví dụ hệ thống khơng có HDH ví dụ hệ thống có HDH? a HDH: - HDH chương trình (mã nguồn liệu – tham số hệ thống) cài đặt sẵn có chức năng: điều phối, phân phối cơng việc cho thành phần chức máy tính; thỏa mãn tối đa yêu cầu người dùng - Là chương trình trung gian phần cứng máy tính người sử dụng - Mục tiêu: o Giúp người dùng dễ dàng sử dụng hệ thống o Quản lý cấp phát tài nguyên hệ thống cách hiệu b Ví dụ: - hệ thống khơng có HDH: hệ thống luận văn, hệ thống xí nghiệp, hệ thống quan hành quốc gia, hệ thống thơng tin, hệ thống làm mát - hệ thống có HDH: hệ thống nhúng sử dụng hệ điều hành thời gian thực; Windows 95, 98, XP; MS Dos sử dụng năm 80 kỷ XX; Ubuntu; Fedora Phân tích q trình chuyển CPU tiến trình - Tiến trình P1: vào hàng đợi Job-Queue trạng thái new, đợi khoảng thời gian trình điều phối chậm (Scheduler Long Term) hệ điều hành (HĐH) để chọn tiến trình, sau O.S chọn, P1 chuyển sang hàng đợi trạng thái ready Lúc P1 đợi cấp CPU running - Sau khỏang thời gian running, tiến trình P2 xuất Lúc này, hệ điều hành ghi lại thông tin P1 vào PCB1 bao gồm thông tin: trỏ, trạng thái P1, số hiệu tiến trình P1, Bộ đếm P1, nội dung P1…Và chuyển P1 sang hàng đợi waiting chuyển trạng thái Ready Lúc này, P2 cấp CPU running Và sau khỏang thời gian running, P2 chuyển sang hàng đợi waiting chuyển trạng thái ready, lúc HĐH ghi lại thông tin vào ghi PCB2 làm P1 Sau đó, HĐH load lại thông tin PCB1 P1 tiếp tục running Quá trình lập lại cho P2 Đển P1 P2 kết thúc - Sơ đồ hệ thống chuyển đổi CPU tiến trình Trình bày ý tưởng kỹ thuật định vị file liên kết sơ đồ bên Biết kích thước block 512byte Tính kích thước Jeep - Kỹ thuật định vị file liên kết: - Mỗi tập tin danh sách liên kết disk block: Các block phân - tán ( rải rác) nơi đĩa Đơn giản - cần bắt đầu địa chỉ: địa bắt đầu trỏ đến đầu danh sách liên - kết Hệ thống quản lý không gian trống - khơng lãng phí khơng gian Khơng có truy cập ngẫu nhiên Mapping : o Bảng phân bổ tệp (FAT) - dung lượng đĩa phân chia MSDOS OS/2 o Truy cập bảng FAT => danh sách khối file - Tệp 'jeep' hình ảnh cho thấy cách khối phân phối ngẫu nhiên Khối cuối (25) chứa -1, biểu thị trỏ null không trỏ đến khối khác - Kích thước file jeep = 508 bytes Trình bày trạng thái trình chuyển trạng thái tiến trình Cho ví dụ phân tích a Các trạng thái tiến trình: Trạng thái tiến trình thời điểm xác định hoạt động tiến trình thời điểm Trong q trình sống, tiến trình thay đổi trạng thái nguyên nhân: - Phải dừng hoạt động hết thời gian - Đợi thao tác I/O hoàn tất - Phải chờ kiện xảy Tại thời điểm, tiến trình có trạng thái: - new: tiến trình tạo running: tiến trình chiếm hữu CPU thực lệnh waiting: tiến trình chờ cấp tài nguyên chờ kiện xuất để chuyển sang trạng thái sẵn sàng ready: tiến trình trạng thái sẵn sàng, phân phối đủ tài nguyên cần thiết, chờ đến lượt đc thực theo chế lập lịch hệ điều hành terminated: tiến trình kết thúc Nó khơng biến tiến trình khác đọc đc trạng thái b Q trình chuyển trạng thái tiến trình : Tại thời điểm, có tiến trình nhận trạng thái running Trong đó, nhiều tiến trình trạng thái waiting hay ready Tiến trình tạo đưa vào hệ thống, cung cấp đủ tài nguyên trạng thái ready(chờ phân phối CPU để thực hiện) Khi tiến trình thực (running), chuyển sang trạng thái: - Kết thúc(terminal) thực xong - Chờ(waiting) tiến trình yêu cầu tài nguyên chưa đáp ứng tài nguyên chưa sẵn sàng để cấp phát thời điểm ; tiến trình phải chờ kiện hay thao tác nhập/xuất - Sẵn sàng(ready) xảy ngắt để chuyển CPU cho tiến trình có mức ưu tiên cao Bộ điều phối cấp phát cho tiến trình khoảng thời gian sử dụng CPU hết thời gian chiếm hữu CPU Bộ điều phối chọn tiến trình khác có trạng thái ready cho xử lý Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát hay kiện thao tác I/O tiến trình đợi(có trạng thái waiting) hồn tất, tiến trình chuyển sang ready c Ví dụ: Phân biệt hệ song song hệ phân tán Cho ví dụ * Hệ song song: - Hệ song song phối hợp nhiều xử lý nhằm giải vấn đề cho trước cách nhanh - Cho hệ thống có nhiều CPU chia sẻ đường truyền, nhớ, đồng hồ, thiết bị I/O… - Các CPU làm việc phụ thuộc độc lập phải chia sẻ tài nguyên So với hệ thống CPU Nhanh hơn; An tồn - Phối hợp nhiều xử lý nhằm giải vấn đề cho trước cách nhanh - Thuận lợi: Xử lý nhiều công việc lúc thật ,Tăng độ tin cậy - Chia làm loại: Đa xử lý đối xứng , Đa xử lý không đối xứng * Hệ phân tán: - Hệ phân tán, xử lý nói chung có chương trình làm việc riêng bán độc lập, lợi ích chung nên cần phối hợp hành động với - Hệ thống thực phân tán việc tính tốn xử lý - Mỗi xử lý có vùng nhớ riêng; xử lý truyền thông với qua hệ thống mạng tốc độ cao - Thuận lợi: Chia xẻ tài ngun , Tăng tốc độ tính tốn , Đáng tin cậy , Truyền thông - Trong hệ thống yêu cầu sở hạ tầng mạng Mạng cục (LAN) mạng diện rộng (WAN), hệ thống client-server peer-to-peer * Ví dụ: hệ thống song song version Encore UNIX cho máy tính Multimax Hệ thống có hàng tá xử lý Ưu điểm nhiều tiến trình thực lúc Ví dụ hệ phân tán hệ thống world wide web hay hệ thống email, mạng xã hội , v.v Khóa chết gì? - Là trạng thái hay nhiều tiến trình chờ đợi số kiện khơng có tác động đặc biệt từ bên ngồi chờ đợi xem vô hạn - Hiện tượng tắc nghẽn xảy hệ thống tồn điều kiện sau: - Có thể sử dụng tài ngun khơng thể chia sẻ: Mỗi thời điểm, tài nguyên cấp phát cho tiến trình Khi tiến trình sử dụng xong, hệ thông thu hồi cấp phát tài ngun cho tiến trình khác - Có tượng giữ đợi tài nguyên: Các tiến trình chiếm giữ tài nguyên cấp phát cho chờ cấp phát thêm tài nguyên - Không có hệ thống phân phối lại tài nguyên: Tài nguyên khơng thể được thu hồi từ tiến trình chiếm giữ chúng trước tiến trình sử dụng chúng xong - Có tượng chờ đội vòng tròn: Có tiến trình chờ đợi lẫn nhau: tiến trình chờ cấp phát tài nguyên mà tiến trình chiếm giữ ngược lại Phân biệt địa logic địa vật lý Cho ví dụ Một địa vật lý có nhiều địa logic khơng? Cho ví dụ a Phân biệt địa logic địa vật lý: - Địa logic (Logical address) – vị trí nhớ diễn tả chương trình Mọi tham chiếu nhớ mã lệnh chương trình compiler tạo địa logic - sinh CPU; gọi địa ảo - Địa vật lý (Physical address): vị trí thực nhớ Địa vật lý chuyển từ địa logic trình biên dịch thực q trình linking/loading- gọi địa thật – sinh đơn vị quản lý nhớ - Địa thật ảo giống lược đồ ánh xạ địa “compile-time” “load-time” khác “execution-time” - Ví dụ: Nếu ghi tái định vị có giá trị 4000, người dùng mong muốn địa 45 MMU sinh địa 4025 b Một địa vật lý có nhiều địa logic Ví dụ: địa vật lý 12345h ứng địa logic 1234h:0005h, 1230h:0045h,1200h:0345h Do segment gối đầu nên nhớ thuộc vài segment khác Vì địa vật lý ứng vơi nhiều địa logic khác Trình bày ý tưởng kỹ thuật định vị file liên tục Kỹ thuật có xảy phân mảnh trong/ngồi khơng? Cho ví dụ giải thích a Định vị file liên tục: Mỗi file cấp khoảng không gian gồm khối nằm liên tiếp đĩa Vị trí file đĩa xác định vị trí khối độ dài số khối mà file chiếm Chẳng hạn, file cầp phát n khối khối thứ s, khối file s, s+1, s+2,…s+n-1 Khoản mục file thư mục chứa địa khối số khối mà file chiếm b Phân mảnh hay khơng? - Kỹ thuật có xảy phân mảnh ngồi vấn đề cấp phát liên tục tìm kiếm khơng gian trống dành cho file (ổ đĩa bị phân thành nhiều mảnh trống, không mảnh đủ lớn để lưu trữ liệu) - Có xảy phân mảnh Giả sử, kích thước file tăng dần thời gian dài, file phải cấp phát tối đa, kể phần lớn không gian khơng đc sử dụng thời gian dài c Ví dụ: Trên hình sau, vùng trống nằm trước fileA có kích thước khối khơng thể cấp phát cho file kích thước lớn Những vùng trống bị bỏ phí Mặc dù tượng khắc phục cách chuyển file lại gần để tập trung tất vùng trống cuối đĩa việc di chuyển file cần nhiều thời gian, đặc biệt kích thước đĩa lớn Trình bày loại lập lịch tác vụ Với loại, cho ví dụ phân tích Long-term scheduler (trình lập lịch dài kỳ) gọi job scheduler (lập lịch công việc, lập lịch tác vụ) - Lựa chọn tiến trình nên đưa từ ổ đĩa vào ready list - Được sử dụng đến không thường xuyên (seconds, minutes) - May be slow - Kiểm soát mức đa chương trình (degree of multiprogramming) - Tuỳ thuộc vào loại hình tác vụ người ta hai phương pháp lập lịch có chu kỳ khơng có chu kỳ - Các loại lập lịch tác vụ: - Lập lịch không ưu tiên (non‐ preemptive): Phương pháp đảm bảo tác vụ thực hoàn thành thực thi - Lập lịch ưu tiên (preemptive): Phương pháp khắc phục nhược điểm lập lịch nonpreemptive thời gian thực thi tác vụ lâu Các tác vụ thực bị ngắt chừng để phục vụ thực thi tác vụ khác thời gian đáp ứng cho kiện tác vụ ngắn - Lập lịch offline/tĩnh: Việc lập lịch thực dựa hiểu biết dự báo kiện tác vụ thực hệ định thời điểm thiết kế áp dụng cố định suốt trình hoạt động hệ thống - Lập lịch online/động: Bộ xử lý thực việc lập lịch trình thực thi dựa sở thông tin hoạt động hành hệ thống Sơ đồ lập lịch không xác định trước thay đổi động theo trình thực - Lập lịch tập trung phân tán: Việc lập lịch thực áp dụng cho tác vụ thực thi (tập trung) nhiều xử lý (phân tán) - Lập lịch Mono hay Multi‐ processor: Nhiệm vụ lập lịch thực thi đảm nhiệm (mono) nhiều vi xử lý (multi) 10 Trình bày ý tưởng kỹ thuật phân trang nhớ Giải thích kích thước trang ln lũy thừa a Ý tưởng: - Phân nhớ vật lý thành khối (Block) có kích thước cố định nhau, gọi khung trang Không gian địa chia thành khối có kích thước với khung trang gọi la trang Khi cần nạp tiến trình dể xử lý trang tiến trình nạp vào khung trang trống Một tiến trình có kích thước N trang yêu cầu N khung trang tự - Cơ chế MMU (Memory Management Unit) chế phần cứng hỗ trợ thực chuyển đổi địa chế phân trang gọi bảng trang Mỗi phần tử bảng trang cho biết địa bắt đầu vị trí lưu trữ trang tương ứng nhớ vât lý - Mỗi địa phát sinh CPU chia làm phần: + Số hiệu trang (p) + Địa tương ứng trang (d) + Địa vật lý trang = d + địa bắt đầu trang b Giải thích: Việc chuyển địa logic thành phần riêng biệt số hiệu trang (p) độ dời trang (d) dễ dàng Bởi bit tượng trưng cho số lũy thừa 2, tách địa thành phần có kết lũy thừa Nếu không gian địa m, kích thước trang nhớ 2n có 2(m - n) mục bảng trang, với (m – n) bits cao cho số hiệu trang, n bits thấp cho độ dời trang 11 Trình bày ý tưởng thuật toán lập lịch ổ đĩa SSTF, FCFS a SSTF: - Di chuyển đầu đọc đến khối cần thiết theo vị trí gần với vị trí đầu đọc - Luôn cho seektime nhỏ b FCFS: - FCFS gọi first in first out - Xử lý yêu cầu cách (yêu cầu đến trước thực trước) - Công cho tất tiến trình - Nếu nhiều tiến trình xác suất xem ngẫu nhiên - Phương pháp dễ lập trình khơng cung cấp dịch vụ tốt - Ý tưởng: o Di chuyển đầu đọc theo thứ tự yêu cầu o Không xếp lại hàng đợi công việc 12 Một tiến trình Găng trạng thái nào? Giải thích thơng qua ví dụ cụ thể a Tài nguyên găng: - Tài nguyên Găng tài nguyên logic vật lý phân bổ cho tiến trình song hành - Miền Găng đoạn lệnh chương trình có khả phát sinh mâu thuẫn Để không xảy mâu thuẫn truy xuất, cần đảm bảo thời điểm có tiến trình vào miền Găng b Một tiến trình Găng trạng thái nào? o Một tiến trình đoạn Găng có trạng thái Running Ready đoạn Găng định cho tiến trình hợp lệ vào miền Găng để thực lệnh miền (tức trạng tháiRunning ), lại tiến trình khác phải chờ tiến trình miền Găng thực xong thực (tức trạng thái Ready) chúng vào miền Găng gây xung đột q trình xử lý c Ví dụ: o Để tránh sụp đổ, người ta có cho phép tối đa xe lưu thông đồng thời qua cầu cũ Hãy xây dựng thủ tục ArriveBridge(int direction) ExitBridge() kiểm sốt giao thơng cầu cho :  Tại thời điểm, cho phép tối đa xe lưu thông cầu  Tại thời điểm, cho phép tối đa xe lưuthông hướng cầu o Mỗi xe đến đầu cầu gọi ArriveBridge(direction) để kiểm tra điều kiện lên cầu, qua cầu gọi ExitBridge() để báo hiệu kết thúc  Nhanh  An tồn hơn: CPU hỏng khơng ảnh hưởng tới tồn hệ thống  Ví dụ: version Encore UNIX cho máy tính Multimax - Hệ phân tán  Tập hợp thiết bị tính riêng rẽ giao tiếp với nhau,  Các mơ hình hệ thống phân tán : client-server, peer-to-peer (ví dụ : Gnutella) 15 Trình bày phân mảnh nhớ, phân mảnh trong, phân mảnh ngồi Cho ví dụ phân tích a Phân mảnh nhớ Phân mảnh nhớ: Khi tiến trình dc tải vào, sau giải phóng nhớ, ko gian nhớ trống bị phân thành nhiều mảnh nhỏ b Phân mảnh o Phân mảnh trong: nhớ phân phối lớn khơng đáng kể so với nhớ yêu cầu; o Ví dụ: cấp khoảng trống 18,464 bytes cho process yêu cầu 18,462 bytes o Hiện tượng phân mảnh nội thường xảy nhớ thực (physical memory) chia thành khối kích thước cố định (fixed-sized block) process cấp phát theo đơn vị khối o Ví dụ: chế phân trang (paging) c Phân mảnh o Phân mảnh ngoài: tượng tổng lượng nhớ trống đủ lớn để đáp ứng u cầu đó, khoảng trống khơng liên tục mà rải rác toàn nhớ Mức độ phân mảnh ngồi phụ thuộc vào tổng dung lượng nhớ kích thước trung bình tiến trình o Ví dụ: từ phân tích thống kê thuật toán first- fit, N khối nhớ đc cấp phát N/2 khối nhớ khơng sử dụng tượng phân mảnh Vậy có tới ⅓ khơng gian nhớ bị lãng phí 16 Trình bày ý tưởng kỹ thuật file theo số Với kỹ thuật này, kích thước khối 512 byte, kích thước phần tử khối số byte Tính kích thước tối thiểu tối đa file Giải thích a Định vị file theo số: - Kỹ thuật định vị file theo số mang tất trỏ vào vị trí: khối mục (index block) - Khối mục file mảng chứa khối liệu nằm ổ đĩa Thành phần thứ i mảng địa khối thứ i file Thư mục chứa file ghi lại địa khối mục Khi file tạo ra, tất trỏ khối mục thiết lập giá trị NIL( null) Trong lần ghi khối thứ i, quản lý khơng gian trống tìm khối tự địa khối đưa vào thành phần thứ i khối mục Cấp phát theo mục hỗ trợ truy cập trục tiếp tượng phân mảnh trong, hệ thống cấp phát khối trống ổ đĩa b Tính kích thước tối thiểu tối đa file - Mỗi phần tử khối số bytes = 2^2 bytes => có bit - Kích thước block 512 bytes = 2^9 bytes => có bit - Số bit tối thiểu – = bit => Kích thước tối thiểu file 2^7 = 128 bytes - Kích thước tối đa file 2^9 x (2^7 + 1) = 66048 bytes Cách 2: Kích thước tối đa = 512 * 129 = 66048 bytes, kích thước tối thiểu = 128 bytes 17 Trình bày ý tưởng kỹ thuật Overlay Chương trình gồm module tổ chức hình vẽ Tính kích thước nhớ sử dụng kỹ thuật Overlay a Ý tưởng: - Chỉ giữ nhớ lệnh liệu cần đến thời điểm (thường module tải)  giảm không gian nhớ liên tục dành cho chương trình - Cơ chế Overlay + Cho phép tổ chức ch.trình thành đơn vị chương trình (module) + Module ln tồn q trình thực  module chương trình + Quan hệ độc lập/phụ thuộc có mặt mộy nhóm module nhớ đòi hỏi/khơng đòi hỏi có mặt nhóm module khác + Các module độc lập kg cần thiết phải có mặt đồng thời nhớ - Cần đến tiến trình có dung lượng lớn nhứ đc cấp phát cho b Tính kích thước - Modul A sd modul độc lập B(30kb) , C(35kb) - Modul B sd modul độc lập D(20kb) , E(10kb) - Modul C sd modul độc lập G(30kb) , H(20kb) - Modul H sd modul độc lập I(25kb) , J(5kb)  Kỹ thuật Overlay - ABD = 10+30+20=60 - ABE = 10+30+10=50 - ACG = 10+35+10=55 - ACHI = 10+35+10+15=70 - ACHJ = 10+35+10+5=60 =>>>> Cả chương trình cần 70kb 18 Phân biệt luồng tiến trình Minh họa ví dụ với mã giả (C, Java, ) a Phân biệt luồng tiến trình o Một luồng dòng xử lý hệ thống Mỗi luồng xử lý đoạn code nó, sỡ hữu trỏ lệnh, tập ghi vùng nhớ stack riêng o Một tiến trình chương trình xử lý (hoạt động, thực hiện), sở hữu trỏ lệnh, tập ghi biến Để hồn thành tác vụ, tiến trình cần tài nguyên: CPU, nhớ, thiết bị I/O,  Một tiến trình gồm:  Mã nguồn chương trình (code) (khơng thay đổi)  Dữ liệu (data)  Bộ đếm CT (Program Counter)  Ngăn xếp (Stack)  Giá trị ghi (Register values) o Phân biệt luồng tiến trình:  Luồng coi mức thấp tiến trình, tiến trình gồm nhiều luồng  Hoạt động luồng giống tiến trình luồng chia sẻ khơng gian địa chung, tiến trình hồn tồn độc lập b Ví dụ: public class Hello extends Thread { // luồng public void run(){ System.out.println(“Hello Word”); } // tiến trình => hàm main thực chương trình Public static void main(String args[]){ (new Hello()).start(); // thực luồng run() phương thức start() có sẵn Thread } } 19 Trình bày ý tưởng giải pháp Sleep-Weakup Trong giải pháp, tiến trình muốn vào đoạn Găng chưa đủ điều kiện sau thời gian kiểm tra điều kiện vào đoạn Găng trước thời gian đánh thức tiến trình có ảnh hưởng đến việc lập lịch cho tiến trình khác khơng? Giải thích a Ý tưởng sử dụng SLEEP WAKEUP: - Khi tiến trình chưa đủ điều kiện vào miền găng, gọi SLEEP để tự khóa đến có tiến trình khác gọi WAKEUP để giải phóng cho Một tiến trình gọi WAKEUP khỏi miền găng để đánh thức tiến trình chờ, tạo hội cho tiến trình vào miền găng : int busy; // miền găng bị chiếm, không int blocked; // đếm số lượng tiến trình bị khóa while (TRUE) { if (busy){ blocked = blocked + 1; sleep();} else busy = 1; critical-section (); busy = 0; if(blocked){ wakeup(process); blocked = blocked - 1;} Noncritical-section (); } b Giải thích:  Tiến trình có ảnh hưởng đến việc lập lịch cho tiến trình khác :  Giả sử tiến trình A vào miền găng, trước rời khỏi miền găng tiến trình B kích hoạt Tiến trình B thử vào miền găng nhận thấy A đó, B tăng giá trị biến blocked chuẩn bị gọi SLEEP để tự khố Tuy nhiên trước B thực SLEEP, tiến trình A lại tái kích hoạt khỏi miền găng Khi khỏi miền găng A nhận thấy có tiến trình chờ (blocked=1) nên gọi WAKEUP giảm giá trị blocked Khi tín hiệu WAKEUP lạc tiến trình B chưa thật « ngủ » để nhận tín hiệu đánh thức !Khi tiến trình B tiếp tục xử lý, goi SLEEP tự khóa vĩnh viễn ! 20 Trình bày lược đồ biên dịch địa kỹ thuật phân trang Phân trang nhớ có xảy phân mảnh trong/ngồi khơng? Giải thích a Lược đồ biên dịch địa chỉ: Chuyển đổi địa chỉ: Mỗi địa phát sinh CPU chia thành hai phần: - Số hiệu trang (p): sử dụng mục đến phần tử tương ứng bảng trang - Địa tương đối trang (d): kết hợp với địa bắt đầu trang để tạo địa vật lý mà trình quản lý nhớ sử dụng - Kích thước trang phần cứng qui định Để dễ phân tích địa ảo thành số hiệu trang địa tương đối, kích thước trang thông thường lũy thừa (biến đổi phạm vi 512 bytes 8192 bytes) Nếu kích thước khơng gian địa 2m kích thước trang n, m-n bits cao địa ảo biễu diễn số hiệu trang, n bits thấp cho biết địa tương đối trang b Phân mảnh hay không? Kỹ thuật phân trang loại bỏ tượng phân mảnh ngồi: khung trang cấp phát cho tiến trình có u cầu Tuy nhiên tượng phân mảnh xảy kích thước tiến trình khơng bội số kích thước trang, đó, trang cuối không sử dụng hết 21 Trình bày hoạt động hệ điều hành quản lý tiến trình Mỗi hoạt động cho ví dụ phân tích - Các hoạt động: Tạo tiến trình, kết thúc tiến trình ( hoạt động phụ: Tạm dừng tiến trình, Tái kích hoạt tiến trình, Thay đổi độ ưu tiên tiến trình) a Tạo tiến trình: - Một tiến trình tạo lập nhiều tiến trình cách sử dụng lời gọi hệ thống tương ứng o Tiến trình sử dụng lời gọi hệ thống để tạo lập Tiến trình cha o Tiến trình tạo gọi tiến trình - Một tiến trình tạo tiến trình mới…q trình tạo tiến trình - Tạo tiến trình cơng việc "nặng nhọc" phải phân phối nhớ tài nguyên - Ví dụ: Nhập 100 số, in số nguyên tố -> (1) Kiểm tra số nguyên tố -> (2) kiểm tra số dương -> (3) In số nguyên tố b Kết thúc tiến trình:  Tiến trình kết thúc xử lý hồn tất thị cuối sử dụng lời gọi hệ thống để yêu cầu HĐH hủy bỏ  Trong trình kết thúc:  Dữ liệu từ tiến trình đến tiến trình cha (qua lệnh wait)  Tiến trình cha chấm dứt việc thực tiến trình (abort)  Tiến trình dùng tài nguyên phân phối  Nhiệm vụ mà tiến trình thực khơng cần thiết  Khi tiến trình kết thúc, HĐH thực công việc:  Thu hồi tài nguyên hệ thống cấp phát cho tiến trình  Hủy tiến trình khỏi tất danh sách quản lý hệ thống  Hủy bỏ PCB tiến trình  Các tài nguyên phân phối lại  Hầu hết hệ điều hành không cho phép tiến trình tiếp tục tồn tiến trình cha kết thúc 22 Thao tác nguyên tử gì? Cho ví dụ Tại giải pháp Test&Set, thao tác Test&Set(Lock) phải thao tác nguyên tử a Thao tác nguyên tử gì? Thao tác đọc ghi nhớ thao tác nguyên tử (atomic) bị xen ngang chừng b Ví dụ: TSL (boolean &target) { TSL = target; target = TRUE; } c Tại sao: Nguyên tắc chung giải pháp Test&Set hai thao tác kiểm tra giá trị thay đổi giá trị cho biến (một ô nhớ), thao tác so sánh hoán đổi giá trị hai biến, thực lệnh máy đảm bảo thực mà không bị xen vào Đơn vị thực không bị xen vào gọi thao tác nguyên tử (atomic) Ta gọi lệnh lệnh “kiểm tra xác lập” Test_and_Set 23 Mô tả địa vật lý địa logic nhớ Thời gian truy cập ổ đĩa tính nào? Tại với cấu hình phần cứng với hệ điều hành khác tốc độ ghi liệu đĩa lại khác nhau? a Mô tả địa vật lý địa logic nhớ ngoài: - Địa vật lý vị trí thực nhớ - Địa logic vị trí nhớ diễn tả chương trình o Các trình biên dịch tạo mã lệnh chương trình mà tham chiếu nhớ địa luận lý o Địa tương đối kiểu địa logic mà địa biểu diễn tương đối so với vị trí xác định chương trình o Địa tuyệt đối địa tương đương với địa thực b Thời gian truy cập ổ đĩa: Thời gian truy cập = Thời gian đợi + Thời gian trao đổi liệu = (thời gian tìm kiếm + thời gian trễ) + thời gian trao đổi liệu Chú ý: Thời gian đợi (thời gian định vị + thời gian trễ) gọi thời gian truy cập 24 Khóa chết, RAG * Khóa chết (Deadlock) - Bốn điều kiện cần (necessary condition) để xảy deadlock + Mutual exclusion: tài nguyên giữ theo nonsharable mode (ví dụ: printer; ví dụ sharable resource: read-only files) + Hold and wait: process giữ tài nguyên đợi thêm tài nguyên trình khác giữ + No preemption: (= no resource preemption) tài nguyên bị lấy lại, mà trả lại từ process giữ tài nguyên khi muốn + Circular wait: tồn tập {P0,…,Pn} trình đợi cho : P0 đợi tài nguyên mà P1 giữ P1 đợi tài nguyên mà P2 giữ … Pn đợi tài nguyên mà P0 giữ * Các phương pháp giải deadlock Ba phương pháp - Bảo đảm hệ thống không rơi vào tình trạng deadlock cách ngăn (preventing) tránh (avoiding) deadlock Khác biệt: +Ngăn deadlock: khơng cho phép (ít nhất) điều kiện cần cho deadlock +Tránh deadlock: q trình cần cung cấp thơng tin tài nguyên cần để hệ thống cấp phát tài nguyên cách thích hợp - Cho phép hệ thống vào trạng thái deadlock, sau phát deadlock phục hồi hệ thống - Bỏ qua vấn đề, xem deadlock không xảy hệ thống + Khá nhiều hệ điều hành sử dụng phương pháp +Deadlock không phát hiện, dẫn đến việc giảm hiệu suất hệ thống Cuối cùng, hệ thống ngưng hoạt động phải khởi động lại - Mơ hình RAG: - RAG đồ thị có hướng , với tập đỉnh V tập cạnh E - Tập đỉnh V gồm loại: P= {P1 , P2 …, Pn} // tất Process hệ thống R = {R1, R2…Rm} // tất loại tài nguyên hệ thống - Tập cạnh E gồm loại : Cạnh yêu cầu: Pi  Rj Cạnh cấp phát:Rj  Pi 25 Các giải pháp đồng * Giải pháp Busy waiting - Giải pháp phần mềm: + Sử dụng biến cờ hiệu (simaphore) + Sử dụng việc kiểm tra luân phiên + Giải pháp Peterson - Giải pháp có hỗ trợ phần cứng; + Cắm ngắt + Test & Set * Giải pháp Sleep and Wakeup - Khắc phục nhược điểm giải pháp Busy waiting cách cho tiến trình chưa đủ điều kiện vào đoạn găng sang trạng thái waiting + tạm khóa tiến trình kg cho sử dụng CPU tiến trình sử dụng CPU trạng thái waiting + tiến trình chuyển sang trạng thái running trạng thái ready (sẵn sàng) - Giải pháp: + HĐH sử dụng thủ tục sleep wakeup _ sleep lời gọi hệ thống có tác dụng tạm dừng hoạt động tiến trình (chuyển sang trạng thái waiting) gọi chờ đến đc tiến trình khác _ lời gọi hệ thống wakeup nhận tham số nhất: tiến trình đc tái kích hoạt (đặt trạng thái ready) + ý tưởng _ tiến trình chưa đủ điều kiện vào đoạn găng, gọi sleep đẻ tự khóa đến có tiến trình khác gọi wakeup để igiair phóng cho _ tiến trình gọi wakeup khỏi miền găng để đánh thức tiến trình đg chờ, tạo hội cho tiến trình vào miền găng - Các giải pháp phổ biến: + Simaphore (Dijktra đề xuất) + Monitors + Trao đổi thông điệp 26 Liên kết thư viện động Dynamic linking( Liên kết động): - Q trình link đến module ngồi (external module) thực sau tạo xong load module (i.e file thực thi, executable) + Ví dụ Windows: module ngồi file DLL Unix, module ngồi file so (shared library) - Load module chứa stub tham chiếu (refer) đến routine external module + Lúc thực thi, stub thực thi lần đầu (do process gọi routine lần đầu), stub nạp routine vào nhớ, tự thay địa routine routine thực thi + Các lần gọi routine sau xảy bình thường - Stub cần hỗ trợ OS (như kiểm tra xem routine nạp vào nhớ chưa) * Ưu điểm dynamic linking: - Thông thường, external module thư viện cung cấp tiện ích OS Các chương trình thực thi dùng phiên khác external module mà không cần sửa đổi, biên dịch lại - Chia sẻ mã (code sharing): external module cần nạp vào nhớ lần Các process cần dùng external module chia sẻ đoạn mã external module Þ tiết kiệm khơng gian nhớ đĩa - Phương pháp dynamic linking cần hỗ trợ OS việc kiểm tra xem thủ tục chia sẻ process phần mã riêng process (bởi có OS có quyền thực việc kiểm tra này) 27 Phân trang, phân đoạn * Phân trang: - Kg gian địa logic tiến trình kg kề nhau; tiến trình đc phân phối nhớ vật lý lúc nhớ sẵn có - Chia nhớ vật lý thành khối có kích thước cố định lũy thừa (512 bytes – 16Mb), đgl frame (page vật lý) - chia nhớ logic (dành cho tiến trình) thành khối kích thước – page, page có kích thước = frame - Ln theo dõi all frame trống - để chạy ch.trình có kích thước n pages, cần phải tìm n frames trống nạp chương trình - thiết lập bảng phân trang (page table) để biên dịch (translate) địa logic thành địa vật lý - nội dung phần tử page table co biết số frame (địa sở) nhớ vật lý * Cách đánh địa theo trang - địa đc đánh cách phân cấp: + Số hiệu trang (Page number - p) – Được sử dụng làm số đến phần tử bảng trang chứa địa sở frame nhớ vật lý + Offset trang (Page offset - d) – Địa tương đối trang Kết hợp vs địa sở để xác định địa nhớ vật lý đc gửi đến nhớ - Địa ảo có m bit, sử dụng m-n bit cao làm số hiệu trang n bít thấp làm Offset - Kg có phân mảnh ngồi, có phân mảnh trong: + giản cỡ trang > giảm phân mảnh  giảm hiệu + tăng cở trang  tăng hiệu suất  tăng phân mảnh * Phân đoạn: - Phương thức quản lý nhớ cho phép NSD “nhìn” nhớ cách dễ dàng góc độ lập trình - Một chương trình gồm nhiều phân đoạn, phân đoạn thể góc độ lập trình dạng: main program (Chương trình chính) function, (Các hàm) method (Các phương thức) object, (Các đối tượng, lớp) local/global variables, (Các biến) common block, (Các khối chung) stack, (Ngăn xếp) symbol table, arrays (Bảng ký hiệu, mảng) - Kiến trúc phân đoạn: + địa logic gồm thành phần: + Segement table – ánh xạ địa vật lý cấp, nội dung mục Sement table gồm có: _ Base: chứa địa vật lý đoạn nhớ _ Limit : xác định độ dài đoạn + Segment-table base register (STBR): trỏ tới vị trí Segement table (bảng ohaan đoạn) nhớ + Segement-table length register (STLR): xác định số đoạn mà chương trình sử dụng + Segement number s hợp lệ s < STLR + Phân đoạn: đoạn có kicks thước khác ( khác vs phân trang) + định vị: Động Được thực bẳng phân đoạn + phân phối nhớ: Giải toán phân phối nhớ động First Fit / Best fit / Worst fit Có phân mảnh 28 Kỹ thuật Overlay - Ý tưởng: giữ nhớ lệnh liệu cần đến thời điểm (thường module tải)  giảm kg gian nhớ liên tục dành cho ch.trình - Cơ chế Overlay + Cho phép tổ chức ch.trình thành đơn vị ch.trình(module) + Module ln tồn trình thực  module chương trình + Quan hệ độc lập/phụ thuộc có mặt nhóm module nhớ đòi hỏi/khơng đòi hỏi có mặt nhóm module khác + Các module độc lập kg cần thiết phải có mặt đồng thời nhớ - Cần đến tiến trình có dung lượng lớn nhứ đc cấp phát cho * Ưu điêm – nhược điểm - Ưu điểm: + Cấu trúc Overlay có tính chất định vị động  cho phép sử dụng nhớ nhiều phần nhớ mà hệ thống dành cho ch.trình Cấu trúc ch.trình mang tính chất tĩnh, kg thay đỏi tất lần thực chương trình + So vs cấu trúc động,cấu trúc Overlay đòi hỏi cung cấp thông tin đơn giản, kg gắn cấu trúc vào chương trình nguồn + Với sơ đồ Overlay tốt module độ dài kg lớn hiệu kg so vs cấu trúc động - Nhược điểm: Hiệu tiết kieemk nhớ phụ thuộc cách tổ chức, bố trí module chương trình ... phục hồi hệ thống - Bỏ qua vấn đề, xem deadlock không xảy hệ thống + Khá nhiều hệ điều hành sử dụng phương pháp +Deadlock không phát hiện, dẫn đến việc giảm hiệu suất hệ thống Cuối cùng, hệ thống... loại: Hệ điều hành hoạt động theo mẻ (batch - lo) hệ điều hành chia sẻ thời gian  Ví dụ: hệ điều hành windows 95; OS windows 2003 server - Hệ điều hành thời gian thực  Đảm bảo giải tốn( tiến trình)... nhớ  Ví dụ: Hệ điều hành MS DOC - Hệ điều hành đa chương trình  Tại thời điểm có nhiều ctr có mặt đồng thời nhớ  Các chương trình có nhu cầu phân phối nhớ CPU  Gồm loại: Hệ điều hành hoạt động

Ngày đăng: 27/09/2019, 21:53

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan