Tải bản đầy đủ - 0 (trang)
Câu 2: Bản chất tiến trình, luồng. Quá trình chuyển CPU giữa các tiến trình.

Câu 2: Bản chất tiến trình, luồng. Quá trình chuyển CPU giữa các tiến trình.

Tải bản đầy đủ - 0trang

+ đc cung caaos đầy đủ tài nguyên cần thiết;

+ Đc CPU tiếp nhận và thực hiện

- HĐH: điều phối và thực hiện các tiến trình cũng như phân phối tài nguyên cần thiết cho

tiến trình;

- một tiến trìn gồm:

+ Mã nguồn chương trình (code) (kg thay đổi)

+ Dữ liệu (data)

+ bộ đệm CT (Program Counter)

+ Ngăn xếp (Stack)

+ Giá trị ở các thanh ghi (Register values)

* Đặc điểm tiến trình

-I/O-bound process – Tiến trình hướng I/O:

+ Sử dụng nhiều th.gian thực hiện vào/ra hơn việc tính tốn

+ Chiếm dụng CPU ngắn

+ cần chuyển ngữ cảnh thường xuyên khi bắt đầu và kết thúc I/O

- CPU-bound process – tiến trình hướng xử lý:

+ sử dụng nhiều th.gian cho việc tính toán hơn việc I/O

+ Chiếm dụng CPU dài

+ cũng cần chuyển ngữ cảnh thường xuyên để tránh trường hợp 1 tiến trình ngăn

chặn các tiến trình khác sử dụng CPU

- Tiến trình tương tác hay xử lý theo lơ: các tiến trình chiếm dụng CPU trong khoảng tg

như nhau gọi là lượng tử th.gian(quantum)

- Độ ưu tiên tiến trình: Các tiến trình có thể đc phân cấp theo 1 số tiêu chuẩn đánh giá



- thời gian sử dụng CPU của tiến trình: Cần biêt th.gian đã sử dụng CPU của tiến trình để

tiến tành điều phối (lập lịch)

- thời gian còn lại tiến trình cần để hồn tất: giảm nhiều th.gian chờ đợi trung bình của

tiến trình bằng cách cho các tiến trình cần ít tg nhất để hồn tất đc thực hiện trước.

* Luồng – Threads

- Khái niệm: Một luồng là dòng xử lý cơ bản trong hệ thống. Mỗi luồng xử lý tuần tự

đoạn code của nó, sỡ hữu 1 con trỏ lệnh, tập các thanh ghi và một vùng nhớ stack riêng

- Phân biệt luồng và tiến trình:

+ luồng đc coi là mức thấp hơn của tiến trình, mỗi tiến trình có thể gồm nhiều

luồng

+ Hoạt động của các luồng giống như tiên trình nhưng các luồng cùng chia sẻ kg

gian địa chỉ chung, các tiến trình thì hồn tồn độc lập.

- Khi máy tính có nhiều CPU, mỗi CPU có thể thực hiện các cơng việc khác nhau or các

luồng khác nhau cho cùng 1 công việc

- khi hệ thống chỉ có 1 CPU, mõi CPU có thể thực hiện luân phiên nhau, kg có luồng nào

chiếm ưu thế trong CPU

- luồng là hữu ích vì chúng loại trừ đc sự cần thiết phải để cho hệ điều hành liên tục tải

thông tin vào/ra bộ nhớ

- Mỗi luồng có thể tương tác với 1 phần riêng của hệ thống, như đĩa, I/O trên mạng or ng

dùng

- các luồng đc lập lịch để thực hiện vì một số luồng có thể chờ 1 biến cố nào đó xảy ra or

chờ kết thúc 1 cơng việc nào đó từ luồng khác

- luồng bao gồm:

+ mã luồng (thread ID)

+ bộ đếm chương trình (PC)



+ tập thanh ghi (register set)

+ stack

- các luồng trong 1 tiến trình chia sẻ vs nhau đoạn mã (code), đoạn dữ liệu (data) và các

tài nguyên hệ thống khác như các tệp mở, các tín hiệu



Câu 3: Các trạng thái tiến trình, quá trình chuyển trạng thái tiến trình.

* Các trạng thái tiến trình:

- Trạng thái của tiến trình tại một thời điểm xđ bởi hoạt động của tiến trình tại thời điểm

đó

- trong q trình sống, tiến trình có thể thay đổi trạng thái do các nguyên nhân:

+ phải dừng hoạt động do hết th.gian

+ đợi 1 thao tác I/O hoàn tất

+ phải chờ 1 sự kiện xảy ra

- Tại 1 thời điểm, tiến trình có thể có một trong các trạng thái:

+ New: tiến trình đg đc tạo

+ running: tiến trình đg chiếm hữu CPU và thực hiện các lệnh

+ waiting: tiến trình đg chờ cũng đc cấp tài nguyên or chờ 1 sự kiện nào đó xuất

hiện để chuyển sang trạng thái sẵn sàng

+ ready: tiến trình ở trạng thái sẵn sàng, đc phân phối đủ tài nguyên cần thiết, đang

chờ đến lượt đc thực hiện theo cơ chế lập lịch của hệ điều hành

+ terminated: tiến trình kết thúc. Nó kg biến mất cho đến khi 1 tiến trình khác đọc

đc trạng thái thốt của nó



* Hoạt động( q trình chuyển trạng thái)

+ Tại 1 thời điểm, chỉ có 1 tiến trình có thể nhận trạng thái running. Trong khi đó,

nhiều tiến trình có thể ở trạng thái waiting hay ready

+ tiến trình ms tạo đc đưa vào hệ thống, đc cung cấp đủ tài nguyên ở trạng thái

ready ( chờ đc phân phối CPU để thực hiện)

+ Khi tiến trình đg thực hiện (running), nó có thể chuyển sang trạng thái:

_ Kết thúc( terminal) nếu thực hiện xong

_ Chờ (waiting) tiến trình yêu cầu 1 tài nguyên nhưng chưa đc đáp ứng vì

tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó; or tiến trình phải chờ 1 sự kiện or

thao tác nhập/xuất

_ Sẵn sàng (ready): khi xảy ra ngắt để chuyển CPU cho tiến trình có mức

ưu tiên cao hơn bộ điều phối cấp phát cho tiến trình một khoảng th.gian sử dụng CPU or

hết th.gian chiếm hữu CPU

+ Bộ điều phối chọn 1 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 sự kiện or

thao tác I/O tiến trình đg đợi (có trạng thái waiting) hồn tất; tiến trình chuyển sang

ready.



Câu 4: 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

- Ln 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 m-n bit cao làm số hiệu trang và 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 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)

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

+ Segment-table base register (STBR): trỏ tới vị trí của Segement table (bảng

ohaan đoạn) trong bộ nhớ

+ Segement-table 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 ngồi.



Câu 5: Phân mảnh trong – Ngoài

- phân mảnh ngoài (external fragmentation): là hiện tượng khi kích thước kg gian nhớ

còn trống đủ để thỏa mãn yêu cầu cấp phát nhưng kg gian nhớ này lại kg liên tục. Hiện

tượng phân mảnh ngoài xảy ra khi bạn thường xuyên cấp phát vùng nhớ mới, sau đó xóa

đi những phân vùng cấp phát một cách kg thứ tự

- phân mảnh trong (internal fragmentation): là hiện tượng sẽ có vùng nhớ dư thừa khi ta

cấp phát 1 vùng nhớ hơi lớn hơn kích thước yêu cầu.

VD: cấp 1 khoảng trống 18,464 bytes cho 1 process yêu cầu 18,462 bytes

Hiện tượng phânmảnh nội thường xảy ra khi bộ nhớ thực hiện đc chia thành các khối

kích thước cố định ( fixed-sized block) và các process đc cấp pát theo đơn vị khối.



Câu 6: 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 ln tồn tại trong quá trình thực hiện  module chương trình chính



+ quan hệ độc lập/phụ thuộc chỉ sự có mặt của 1 nhóm module trong bộ nhớ đòi

hỏi/khơ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

+ vs 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âu 7: Liên kết thư viện(liên kết động cho windows .dll)

Dynamic linking( Liên kết động):

- Quá trình link đến một module ngoài (external module) được thực hiện sau khi đã tạo

xong load module (i.e. file có thể thực thi, executable)

+ Ví dụ trong Windows: module ngồi là các file .DLL còn trong Unix, các module

ngồ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).



Câu 8: bản chất địa chỉ vật lý,logic

- Để quản lý bộ nhớ một cách hồn chỉnh, cần có hai cách nhìn địa chỉ khác nhau:

+ Địa chỉ logic (Logical address) – là một vị trí nhớ được diễn tả trong một

chương trình. . Mọi tham chiếu bộ nhớ trong mã lệnh chương trình được compiler tạo ra

đều là địa chỉ logic - sinh bởi CPU; còn gọi là địa chỉ ảo (virtual address).

+ Địa chỉ vật lý (Physical address): là một vị trí thực trong bộ nhớ chính. Địa chỉ

vật lý được chuyển từ địa chỉ logic khi trình biên dịch thức j hiện q trình

linking/loading - còn gọi là địa chỉ thật – sinh bởi đơn vị quản lý bộ nhớ

- Địa chỉ thật và ảo giống nhau trong lược đồ ánh xạ địa chỉ “compile-time” và “loadtime” và khác nhau trong “execution-time”



Câu 9: Hoạt động quản lý tiến trình của OS

Câu 10: Lập lịch

- Lập lịch là một phép thực hiện phân bổ và gán quy trình thực thi các tác vụ cho bộ xử lý

sao cho mỗi tác vụ được thực hiện hồn tồn.

- Có một số thơng tin về tác vụ luôn phải quan tâm đối với bất kỳ bộ lập lịch thời gian

thực nào, bao gồm:

• Thời gian xuất hiện i a (arrival time): Khi sự kiện xảy ra và tác vụ tương ứng được

kích hoạt.

• Thời điểm bắt đầu thực thi i r (release time): Thời điểm sớm nhất khi việc xử lý đã

sẵn sàng và có thể bắt đầu.

• Thời điểm bắt đầu thực hiện i s (starting time): Là thời điểm mà tại đó tác vụ bắt

đầu việc thực hiện của mình.

• Thời gian tính tốn/thực thi i c (Computation time): Là khoảng thời gian cần thiết

để bộ xử lý thực hiện xong nhiệm vụ của mình mà khơng bị ngắt.

• Thời điểm hồn thành i f (finishing time): Là thời điểm mà tại đó tác vụ hồn thành

việc thực hiện của mình.

• Thời gian rủi ro/ xấu nhất i w (worst case time): khoảng thời gian thực hiện lâu nhất

có thể xảy ra.

• Thời điểm kết thúc i d (due time): Thời điểm mà tác vụ phải hoàn thành.

* Các phương pháp lập lịch phổ biến: Tuỳ thuộc vào loại hình tác vụ, người ta ra hai

phương pháp lập lịch là có chu kỳ và khơng có chu kỳ.

- Lập lịch khơng ưu tiên(non‐ preemptive): Phương pháp này đảm bảo các tác vụ được

thực hiện hoàn thành mỗi khi thực thi

- Lập lịch ưu tiên(preemptive): Phương pháp này khắc phục nhược điểm của lập lịch nonpreemptive khi thời gian thực thi các tác vụ lâu . Các tác vụ sẽ được thực hiện và có thể

bị ngắt giữa chừng để phục vụ thực thi các tác vụ khác .thời gian đáp ứng cho các sự kiện

và tác vụ ngắn

- Lập lịch offline/tĩnh: Việc lập lịch được thực hiện dựa trên các hiểu biết hoặc dự báo về



các sự kiện tác vụ thực hiện trong hệ và được quyết định tại thời điểm thiết kế và được áp

dụng cố định trong suốt quá trình hoạt động của hệ thống

- Lập lịch online/động: Bộ xử lý thực hiện việc lập lịch trong quá trình thực thi dựa trên

cơ sở các thông tin hoạt động hiện hành của hệ thống Sơ đồ lập lịch là không xác định

trước và thay đổi động theo quá trình thực hiện

- Lập lịch tập trung hoặc phân tán: Việc lập lịch được thực hiện áp dụng cho các tác vụ

thực thi bởi một (tập trung) hoặc nhiều bộ xử lý (phân tán).

- Lập lịch Mono hay Multi‐ processor: Nhiệm vụ lập lịch và thực thi được đảm nhiệm bởi

một (mono) hoặc nhiều bộ vi xử lý (multi).

 Tính khả lập lịch: Một hệ thống với một tập các tác vụ và các điều kiện ràng buộc được

gọi là khả lập lịch nếu tồn tại ít nhất một cơ chế lịch trình thực hiện thoả mãn các tác vụ

và điều kiện ràng buộc đó.

Câu 11: Thao tác đơn vị

Câu 12: các giải pháp đồng bộ

* Giải pháp Busy waiting

- Giải pháp phần mềm:

+ Sử dụng các biến cờ hiệu (simaphore)

+ Sử dụng việc kiểm tra luân phiên

+ Giải pháp của Peterson

- Giải pháp có sự 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 của các giải pháp Busy waiting bằng cách cho 1 tiến trình chưa

đủ điều kiện vào đoạn găng sang trạng thái waiting



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Câu 2: Bản chất tiến trình, luồng. Quá trình chuyển CPU giữa các tiến trình.

Tải bản đầy đủ ngay(0 tr)

×