1. Trang chủ
  2. » Công Nghệ Thông Tin

ĐỀ CƯƠNG NGUYÊN LÝ HỆ ĐIỀU HÀNH ĐÁP ÁN

19 332 1

Đ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 19
Dung lượng 125,63 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ÔN TẬP NGUYÊN LÝ HỆ ĐIỀU HÀNH Câu 1: Các khái niệm và ví dụ về HĐH, hệ song song, phân tán, hệ thời gian thực; các loại HĐH? Hệ điều hành: Hệ điều hành là một bộ chương trình (mã nguồn và dữ liệu các tham số hệ thống) đã được cài đặt sẵn có chức năng: + Điều phối, phân phối công việc cho các thành phần chức năng trong máy tính; + Thỏa mãn tối đa yêu cầu ng dùng; + đóng vai trò trung gian trong việc giao tiếp giữa người sử dụng và phần cứng máy tính, cung cấp một môi trường cho phép người sử dụng phát triển và thực hiện các ứng dụng của họ một cách dễ dàng Một số hệ điều hành phổ biến: MS Dos, Windows, Ubuntu, Fedora, IOS, Android,….. Hệ song song: – Cho các hệ thống có nhiều CPU chia sẻ đường truyền, bộ nhớ, đồng hồ, thiết bị IO… – Các CPU làm việc phụ thuộc độc lập do phải chia sẻ tài nguyên – So với hệ thống 1 CPU : Nhanh hơn; An toàn hơn ( 1 CPU hỏng kg ảnh hưởng tới all hệ thống)” Phối hợp nhiều bộ xử lý nhằm giải quyết một vấn đề cho trước 1 cách nhanh nhất Ngoài các hệ thống tín chỉ có một bộ xử lý còn có các hệ thống có nhiều bộ xử lý cùng chia xẻ hệ thống đường truyền dữ liệu, đồng hồ, bộ nhớ và các thiết bị ngoại vi. Thuận lợi của hệ thống xử lý song song: + Xử lý nhiều công việc cùng lúc thật sự +Tăng độ tin cậy Trong hệ thống xử lý song song được thành hai loại: + Đa xử lý đối xứng _ Mỗi bộ xử lý chạy một bản sao hệ điều hành. _ Nhiều tiến trình có thể chạy cùng lúc mà không gây hỏng. _ Hầu hết các thế hệ hệ điều hành đều hỗ trợ đa xử lý đối xứng + Đa xử lý không đối xứng _ Mỗi bộ xử lý được gắn vào một công việc cụ thể; Bộ xử lý chủ lập lịch và cấp phát công việc cho bộ xử lý phụ. _ Phổ biến nhiều trong hệ thống cực kỳ lớn. Kiến trúc hệ thống đa bộ xử lý đối xứng: Hệ phân tán: ( Tập hợp các thiết bị tính riêng rẻ có th

Trang 1

ÔN TẬP NGUYÊN LÝ HỆ ĐIỀU HÀNH Câu 1: Các khái niệm và ví dụ về HĐH, hệ song song, phân tán, hệ thời gian thực; các loại HĐH?

* Hệ điều hành:

- Hệ điều hành là một bộ chương trình (mã nguồn và dữ liệu các tham số hệ thống) đã được cài đặt sẵn có chức năng:

+ Điều phối, phân phối công việc cho các thành phần chức năng trong máy tính; + Thỏa mãn tối đa yêu cầu ng dùng;

+ đóng vai trò trung gian trong việc giao tiếp giữa người sử dụng và phần cứng máy tính, cung cấp một môi trường cho phép người sử dụng phát triển và thực hiện các ứng dụng của họ một cách dễ dàng

- Một số hệ điều hành phổ biến: MS Dos, Windows, Ubuntu, Fedora, IOS, Android,…

* Hệ song song:

– Cho các hệ thống có nhiều CPU chia sẻ đường truyền, bộ nhớ, đồng hồ, thiết bị I/O… – Các CPU làm việc phụ thuộc độc lập do phải chia sẻ tài nguyên

– So với hệ thống 1 CPU : Nhanh hơn; An toàn hơn ( 1 CPU hỏng kg ảnh hưởng tới all

hệ thống)”

- Phối hợp nhiều bộ xử lý nhằm giải quyết một vấn đề cho trước 1 cách nhanh nhất

- Ngoài các hệ thống tín chỉ có một bộ xử lý còn có các hệ thống có nhiều bộ xử lý cùng chia xẻ hệ thống đường truyền dữ liệu, đồng hồ, bộ nhớ và các thiết bị ngoại vi

- Thuận lợi của hệ thống xử lý song song:

+ Xử lý nhiều công việc cùng lúc thật sự

+Tăng độ tin cậy

- Trong hệ thống xử lý song song được thành hai loại:

Trang 2

+ Đa xử lý đối xứng

_ Mỗi bộ xử lý chạy một bản sao hệ điều hành

_ Nhiều tiến trình có thể chạy cùng lúc mà không gây hỏng

_ Hầu hết các thế hệ hệ điều hành đều hỗ trợ đa xử lý đối xứng

+ Đa xử lý không đối xứng

_ Mỗi bộ xử lý được gắn vào một công việc cụ thể; Bộ xử lý chủ lập lịch và cấp phát công việc cho bộ xử lý phụ

_ Phổ biến nhiều trong hệ thống cực kỳ lớn

- Kiến trúc hệ thống đa bộ xử lý đối xứng:

* Hệ phân tán: ( Tập hợp các thiết bị tính riêng rẻ có thể giao tiếp với nhau)

- Trong hệ phân tán, mỗi bộ xử lý nói chung có chương trình làm việc riêng bán độc lập,

vì lợi ích chung nên cần phối hợp hành động vs nhau

- Hệ thống thực hiện phân tán việc tính toán giữa các bộ xử lý

- Mỗi bộ xử lý có vùng nhớ riêng; các bộ xử lý truyền thông với nhau qua hệ thống mạng tốc độ cao

- Thuận lợi của hệ thống phân tán:

+ Chia xẻ tài nguyên

+ Tăng tốc độ tính toán

+ Đáng tin cậy

Trang 3

+ Truyền thông

- Trong hệ thống yêu cầu cơ sở hạ tầng về mạng Mạng cục bộ (LAN) hoặc mạng diện rộng (WAN), cũng có thể là hệ thống client-server hoặc peer-to-peer

- Mô hình hệ thống Client- server:

* Hệ điều hành thời gian thực:

- Đảm bảo giải quyết bài toán (tiến trình) kg muộn hơn 1 thời điểm xác định

- Mỗi tiến trình đc gắn với một th.gian xác định phải hoàn thành gọi là DeadTime

- Hoàn thiện bài toán muộn hơn kg có ý nghĩa

- VD: giải quyết bào toán trong các lò phản ứng hạt nhân, game thời gian thực,…

* Phân loại HĐH:

- Hệ điều hành đơn chương trình

- Hệ điều hành đa chương trình

- Hệ điều hành thời gian thực

- Hệ song song

- Hệ phân tán

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.

* Khái niệm tiến trình

- Việc thực hiện công việc đc mô tả thông qua cá chương trình;

- Khi ch.trình hoạt động, nó chuyển thành tiến trình; để thực hiện tiến trình cần:

Trang 4

+ đ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 toá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á

Trang 5

- 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 để hoà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 để hoà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ì hoàn toà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)

Trang 6

+ 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 quá 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 thoát của nó

Trang 7

* Hoạt động( quá 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) hoàn tất; tiến trình chuyển sang ready

Trang 8

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

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

Trang 9

+ 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: <segment-number, offset>

+ 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

Trang 10

+ 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

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 luôn tồn tại trong quá trình thực hiện  module chương trình chính

Trang 11

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

Trang 12

- 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 hoà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 quá 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à “load-time” và khác nhau trong “execution-“load-time”

Trang 13

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 hoàn toà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 toá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 hoàn thành i f (finishing time): Là thời điểm mà tại đó tác vụ hoà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 non-preemptive 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ề

Ngày đăng: 27/09/2019, 19:49

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w