1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Slide Hệ điều hành Kiến trúc máy tính

116 28 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 116
Dung lượng 11,64 MB

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

Nội dung

1/22/2008 Nguyên lý Hệ điều hành 5Định nghĩa hệ điều hành Bộ phân phối tài nguyên Quản lý và điều phối tài nguyên Bộ điều khiển chương trình Điều khiển thực thi chương trình của người dù

Trang 1

1/22/2008 Nguyên lý Hệ điều hành 2

1 Hệ điều hành là gì?

Thành phần trung gian giữa người dùng và

hệ thống phần cứng máy tính Mục đích của hệ điều hành:

Thực thi chương trình người dùng dễ dàng hơn

Sử dụng hệ thống máy tính thuận tiện hơn

Sử dụng hệ thống máy tính một cách hiệu quả

Điều khiển và điều phối việc sử dung phần cứng máy tính

phục vụ các chương trình ứng dụng của người dùng.

Các chương trình ứng dụng

Sử dụng các tài nguyên máy tính để giải quyết các vấn đề

tính toán của người dùng

Người dùng

tính

Trang 2

1/22/2008 Nguyên lý Hệ điều hành 5

Định nghĩa hệ điều hành

Bộ phân phối tài nguyên

Quản lý và điều phối tài nguyên

Bộ điều khiển chương trình

Điều khiển thực thi chương trình của người dùng

và điều khiển thao tác của các thiết bị vào ra

Các hệ máy tính cá nhân Các hệ song song, các hệ phân tán, các hệ thời gian thực

Hệ điều hành đầu tiên, tương đối đơn giản

Nhiệm vụ của HĐH: truyền quyền điều khiển

tuần tự cho các “công việc” (job) trong lô

(batch)

“Công việc”: chương trình, dữ liệu, các thông

tin điều khiển…

Nhược điểm: không tận dụng CPU một cách

hiệu quả

đơn giản

Trang 3

Một chương trình người dùng không thể cùng một

lúc sử dụng cả CPU và các thiết bị vào ra

1/22/2008 Nguyên lý Hệ điều hành 10

Các hệ xử lý theo lô, đa chương trình

Tư tưởng chính:

Trong trường hợp công việc đang phải đợi thực

hiện một thao tác nào đó (ví dụ thao tác vào/ra)

HĐH sẽ chọn việc khác để thực hiện

Các hệ xử lý theo lô, đa chương trình

Đặc điểm:

Tương đối phức tạpKhái niệm “Nhóm công việc” (job pool)Lập lịch công việc: chọn các công việc để chuyểnvào bộ nhớ trong

Quản lý lưu trữ: lưu cùng lúc một số công việctrong bộ nhớ trong

Lập lịch CPU: chọn thực thi một trong các côngviệc đang ở bộ nhớ trong

Trang 4

1/22/2008 Nguyên lý Hệ điều hành 13

2.3 Các hệ phân chia thời gian

Vì sao?

Các hệ xử lý theo lô, đa chương trình cung cấp

một môi trường trong đó các tài nguyên hệ thống

được sử dụng một cách hiệu quả, nhưng không

cung cấp cho người dùng khả năng tương tác với

hệ thống

Các hệ phân chia thời gian là sự mở rộng của

các hệ xử lý theo lô, đa chương trình

Khái niệm “tiến trình”: chương trình được nạp vào

bộ nhớ và đang được thực thi

Vào/ra tương tác I/O phụ thuộc “people speech” ví dụ tốc độ nhập dữ liệu

Các hệ phân chia thời gian

Đặc điểm:

Phức tạp hơn hệ xử lý theo lô, đa chương trình

Quản lý bộ nhớ và bảo vệ

Tráo đổi các công việc từ đĩa cứng và bộ nhớ

(swap in/swap out) phương pháp bộ nhớ ảo

Hệ thống file trên một số đĩa cứng quản lý đĩa

cứng

Thực thi đồng thời Lập lịch CPU

Giao tiếp và đồng bộ hoá

Giải quyết bế tắc

2.4 Các hệ máy tính cá nhân

Xuất hiện những năm 1970 Hướng tới sự tiện dụng của người dùng Các hệ điều hành cho máy tính cá nhân

Microsoft Windows, Apple MacintoshLinux, Unix-like OS cho PCs

Kế thừa sự phát triển của hệ điều hành cho các

hệ Mainframe

Trang 5

1/22/2008 Nguyên lý Hệ điều hành 17

Các hệ song song

Còn gọi là Hệ đa xử lý (multiprocessor systems)

Một hệ thống có nhiều bộ xử lý, giao tiếp “gần”,

chia sẻ computer bus, clock …

1/22/2008 Nguyên lý Hệ điều hành 18

Các hệ song song: ưu điểm

Tăng thông lượng: làm được nhiều việc hơn trong một đơn vị thời gian

Hiệu quả kinh tế: Hệ song song tiết kiệm hơn nhiều hệ đơn vì có thể chia sẻ các thiết bị ngoại vi, thiết bị lưu trữ và nguồn

Tăng độ tin cậy: Một bộ xử lý gặp trục trặc không làm sụp đổ cả hệ thống

Các hệ song song: Phân loại

Hai loại

Đa xử lý đối xứng (SMP)

Mỗi bộ xử lý có một phiên bản sao chép hệ điều hành,

giao tiếp với nhau peer-to-peer

Đa xử lý không đối xứng (AMP):

Mỗi bộ xử lý được gán một nhiệm vụ

Bộ xử lý chủ (master) sắp xếp công việc và quản lý các

Các hệ phân tán:

Các hệ client-server

Trang 6

1/22/2008 Nguyên lý Hệ điều hành 21

Các hệ thời gian thực

Các hệ thời gian thực có những ràng buộc về

thời gian

Xử lý phải được thực hiện trong một thời gian xác

định hoặc việc thực thi sẽ không có ý nghĩa

Ví dụ: các hệ điều khiển máy móc tự động, robot

Một hệ thống máy tính gồm một hoặc nhiều CPU và một số

bộ điều khiển thiết bị kết nối với nhau thông qua một bus

chung , chia sẻ một bộ nhớ chung

Các thao tác trong hệ thống máy tính

Các thao tác trong hệ thống máy tính

Khởi động (người dùng)Chương trình mồi (thường nằm trong ROM hay EPROM)

Khởi tạo: thanh ghi CPU, các bộ điều khiển thiết bị, nội dung bộ nhớ

Tải hệ điều hành (chương trình mồi phải biết địa chỉ bắt đầu của hệ điều hành) vào bộ nhớ trong

Chuyển quyền thực thi cho hệ điều hành

Hệ điều hành

Thực hiện tiến trình đầu tiên (init) và chờ đợi các “sự kiện” (các “ngắt” từ phần cứng/phần mềm)

Trang 7

1/22/2008 Nguyên lý Hệ điều hành 25

Các thao tác trong hệ thống máy tính

Các thiết bị vào ra và CPU có thể thực thi đồng thời;

tương tranh các chu kì bộ nhớ

Mỗi bộ điều khiển thiết bị(device controller) chịu trách

nhiệm một loại thiết bị xác định

Mỗi bộ điều khiển thiết bị có mộtbộ đệm

CPU chuyển dữ liệu từ/vào bộ nhớ ra/từ các bộ đệm

Thao tác vào ra(I/O) là các thao tác từ thiết bị đến bộ

đệm của bộ điều khiển

Các bộ điều khiển thiết bị báo cho CPU biết chúng đã

hoàn thành các tác vụ của chúng bằng cách làm sinh

Thiết bị lưu trữ thứ cấp

Vd: đĩa từ

Cấu trúc lưu trữ

Cơ chế đọc đĩa

3.3 Phân cấp thiết bị lưu trữ

Các hệ thống lưu trữ được phân cấp theo các tiêu chí về.

Tốc độGiá thànhTính không ổn định (Volatility)

Caching – sao chép thông tin vào thiết bị lưu trữ nhanh hơn; bộ nhớ chính có thể được xem là cache của bộ nhớ thứ cấp

Trang 8

Sử dụng bộ nhớ tốc độ cao để lưu trữ dữ liệu

mới được truy cập

Cần một chiến lược quản lý cache

Caching làm nảy sinh một cập độ mới trong

phân cấp lưu trữ

đảm bảo tính nhất quán của dữ liệu được lưu trữ

cùng lúc ở nhiều nơi (với các cấp độ truy cập

Trình điều khiển thiết bị (device driver)

Thường được cung cấp bởi Hệ điều hành Tương ứng với mỗi bộ điều khiển thiết bị là một trình điều khiển thiết bị

Cung cấp một giao diện truy nhập đến thiết bị cho các thành phần khác của hệ điều hành

Trang 9

1/22/2008 Nguyên lý Hệ điều hành 33

Cấu trúc vào/ra

1/22/2008 Nguyên lý Hệ điều hành 34

4 Các thao tác trong hệ điều hành

Hệ điều hành quản lý bởi ngắt

Cơ chế dual-mode Timer

Các nhiệm vụ của ngắt

Ngắt chuyển điều khiển đến dịch vụ ngắt, thông qua

một vectoc ngắt– nơi chứa địa chỉ của tất cả các dịch

vụ ngắt

Trong kiến trúc ngắt, ta phải lưu giữ địa chỉ của lệnh

tại đó có tín hiệu ngắt ngắt cho việc khôi phục lại

quá trình tính toán sau khi xử lý ngắt

Trong khi một ngắt đang được xử lý, các ngắt khác sẽ

bị từ chối để tránh hiện tượng “lost interupt”

người dùng, sinh ra do lỗi hoặc một yêu cầu đặc biệt

Xác định loại tín hiệu ngắt, gọi dịch vụ ngắt

Tìm kiếm tuần tự theo thông tin ngắt

Sử dụng vector ngắt

Dịch vụ ngắt

Phân tích thông tin ngắt (interrupt information)

Trang 10

1/22/2008 Nguyên lý Hệ điều hành 37

Cơ chế dual-mode

Hỗ trợ phần cứng cho việc tách biệt ít nhất

hai modes thao tác

User mode – thực thi dưới tư cách người dùng

Monitor mode (còn gọi là kernel mode hay

system mode) – thực thi dưới tư cách hệ điều

hành

Bit mode được thêm vào phần cứng để chỉ

mode hiện thời: monitor (0) or user (1).

Khi có ngắt hoặc là phát sinh lỗi, phần cứng

được chuyển qua monitor mode

1/22/2008 Nguyên lý Hệ điều hành 38

Cơ chế dual-mode (cont.)

Timer

Timer được sử dụng để ngăn các tiến trình

chiếm tài nguyên quá lâu

Sinh ra ngắt sau một đơn vị thời gian

Các chương trình hệ thống Cấu trúc hệ điều hành

Trang 11

Giao diện người dùng

CLI, GUI, Batch

Thực thi chương trình

Hệ thống phải có khả năng tải chương trình người dùng vào

bộ nhớ và thực thi chương trình, sau đó kết thúc việc thực thi (có lỗi hoặc thành công)

Các thao tác vào/ra – Một chương trình đang thực thi có thể có yêu cầu vào/ra như đọc một file hay một thiết bị vào/ra

Thực thi hệ thống file – Cung cấp cách tổ chức file, thư mục, các thao tác đọc/ghi/sửa/xóa/liệt kê

Các dịch vụ hệ thống

Một tập các dịch vụ hệ điều hành cung cấp

các tính năng hữu ích cho người dùng (cont.)

Giao tiếp – Các tiến trình (trên cùng một máy/trên

một mạng) có thể trao đổi thông tin với nhau

Giao tiếp có thể thông qua sử dụng bộ nhớ chia sẻ

hoặc truyền thông báo

Sửa lỗi

Xác định được lỗi xuất hiện tại CPU hay bộ nhớ, trong

thiết bị vào/ra hay trong chương trình người dùng

Với mỗi loại lỗi, Hệ điều hành (OS) lựa chọn một hoạt

động thích hợp để đảm bảo việc tính toán đúng đắn và

Các dịch vụ hệ thống

Một số tính năng khác của OS cho phép thực thi hệ thống hiệu quả nhờ chia sẻ tài nguyên

Phân phối tài nguyên

Kế toán: cho biết người dùng nào sử dụng baonhiêu và những loại tài nguyên hệ thống nào.Bảo vệ và bảo mật: bảo vệ việc sử dụng thông tin trong các hệ thống đa người dùng, các hệ thốngnối mạng; bảo vệ các tiến trình thực thi đồng thời

Trang 12

1/22/2008 Nguyên lý Hệ điều hành 45

5.3 Các lời gọi hệ thống

Giao diện lập trình đến các dịch vụ hệ thống

được cung cấp bởi OS

Thường được viết bằng ngôn ngữ bậc cao

(C hay C++)

Các chương trình thường truy nhập đến các

lời gọi hệ thống thông qua giao diện chương

trình ứng dụng (API) (không gọi trực tiếp các

Ví dụ của một API chuẩn

Hàm Readfile trong Win32 API –hàm cho

phép đọc từ một file

Cài đặt lời gọi hệ thống

Các lời gọi hệ thống được liên kết với một số hiệu

Giao diện lời gọi hệ thống quản lý một bảng đánh chỉ số theo các số hiệu này

Giao diện lời gọi hệ thống tham chiếu đến lời gọi hệthống mong muốn trong nhân OS và trả lại trạngthái của lời gọi hệ thống và các giá trị trả về nếu cóChương trình không cần biết lời gọi hệ thống đượcthực thi thế nào

Chỉ cần gọi đúng API và hiểu OS sẽ làm gì với lời gọi đó Hầu hết các chi tiết của OS được che dấu

Trang 13

1/22/2008 Nguyên lý Hệ điều hành 49

1/22/2008 Nguyên lý Hệ điều hành 50

Ví dụ về thư viện C chuẩn

Truyền tham số cho lời gọi hệ thống

Ba cách truyền tham số

Truyền qua thanh ghi

Các tham số được lưu trong khối (hay bảng) trong bộ nhớ

và địa chỉ của khối được truyền cho thanh ghi

Được thực hiện bởi Linux và Solaris

Các tham số được chương trình người dùng đặt hoặc đẩy

vào một ngăn xếp và sau đó được đọc ra bởi hệ điều hành

Các phương pháp thông qua khối hay ngăn xếp

không giới hạn số lượng của các tham số được

truyền

Truyền tham số thông qua bảng

Trang 14

Một số hệ thống thực thi registry – được sử dụng để lưu và nhận các thông tin cấu hình

Các chương trình hệ thống

Soạn thảo file

Trình tạo và soạn thảo file

Các lệnh cho phép tìm kiểm và định dạng text

Hỗ trợ chương trình người dùng – compilers,

assemblers, debuggers và intereters

Giao tiếp

Web browser, gửi thông điệp giữa các máy, gửi

thư điện tử, remote, truyền file

Mục tiêu người dùng và mục tiêu hệ thống

Mục tiêu người dùng: hệ điều hành phải dễ dùng,

dễ học, tin cậy, an toàn và nhanhMục tiêu hệ thống: OS phải dễ dàng thiết kế, càiđặt, bảo trì, hiệu quả, kháng lỗi, linh hoạt, đáng tin

Trang 15

1/22/2008 Nguyên lý Hệ điều hành 57

Cấu trúc đơn giản

MS-DOS – được viết để cung cấp hầu hết

các tính năng và dung lượng bé nhất có thể

Không được chia thành các modules

Dù MS-Dos cũng có cấu trúc, giao diện và các

tính năng của nó không được phân chia tốt lắm

Bao gồm mọi thứ dưới giao diện lời gọi hệ thống và trên phần cứng vật lý

Cung cấp hệ thống file, lập lịch CPU, quản lý bộ nhớ, và các tính năng khác của OS

Trang 16

Hầu hết các OS hiện đại thực hiện module hóa nhân

Hướng tiếp cận hướng đối tượngCác thành phần nhân tách biệtCác thành phần giao tiếp thông qua giao diễn.Mỗi thành phần có thể được tải theo yêu cầu

Trang 18

Truyền thông giữa các tiến trình

1.1 Khái niệm về tiến trình

Một HĐH thực hiện nhiều chương trình

Hệ thống xử lý theo lô: công việc (job)

Hệ thống chia sẻ thời gian: tác vụ(task)

Ở đây chúng ta dùng tiến trình và công việc

với cùng ý nghĩa

Tiến trình

Chương trình đang được thực hiện

Phần văn bản Ngăn xếp Phần dữ liệu Giá trị bộ đếm chương trình, thanh ghi

CPU xử lý tiến trình tuần tựThực thể hoạt động

vs chương trình

Trang 19

Tại một thời điểm chỉ có một tiến trình ở trạng tháirunning

Trang 20

Mục đích của phân chia thời gian

Người dùng có thể tương tác với tiến trình tronglúc nó đang thực thi

Xử lý nhiều tiến trình Lập lịch tiến trình

Tập các tiến trình chờ một thiết bị vào/ra

Các tiến trình di trú từ hàng đợi này đến hàng đợi

khác

Trang 21

3/12/2008 Nguyên lý Hệ điều hành 13

3/12/2008 Nguyên lý Hệ điều hành 14

Vòng đời của một tiến trình

Khởi tạo: hàng đợi sẵn sàng

Các sự kiện có thể xảy ra khi tiến trình đã đượcgán CPU

Sinh ra một yêu cầu I/O, đi vào hàng đợi I/O Tạo ra một tiến trình con và đợi cho nó kết thúc

Bị tước quyền sử dụng CPU

Bộ lập lịch ngắn hạn (lập lịch CPU)

Chọn trong số các tiến trình trong hàng đợi sẵnsàng để thực hiện

Trang 22

Không thường xuyên

Thể hiện mức độ “đa chương trình”

3/12/2008 Nguyên lý Hệ điều hành 18

Bộ lập lịch dài hạn

Hai loại tiến trình:

Giới hạn I/O Giới hạn CPU

Chọn một kết hợp tốt các tiến trình giới hạn vào/ra và các tiến trình giới hạn CPU.

Một số hệ thống phân chia thời gian không

Hoạt động chuyển đổi ngữ cảnh

Kernel lưu lại ngữ cảnh của tiến trình cũ trongPCB và tải ngữ cảnh được lưu của tiến trình mớiđược lập lịch

Trang 23

3/12/2008 Nguyên lý Hệ điều hành 21

Chuyển đổi ngữ cảnh (tt)

Thời gian chuyển đổi ngữ cảnh: lãng phí

Phụ thuộc vào máy, thông thường từ 1 đến 1000

micro giây

Phụ thuộc vào sự hỗ trợ của phần cứng

Các kĩ thuật quản lý bộ nhớ

Bottleneck sử dụng các cấu trúc mới như

thread để tránh nút cổ chai này

3/12/2008 Nguyên lý Hệ điều hành 22

1.3 Các thao tác trên tiến trình

Tạo tiến trình Hủy tiến trình

Tạo tiến trình

Một tiến trình có thể tạo ra nhiều tiến trình

con, qua lời gọi hệ thống create_process

Tiến trình cha

Tiến trình con

Cây tiến trình

Trang 24

Tạo tiến trình trong Unix

Mỗi tiến trình có một ID (PID) Gọi lời gọi hệ thống fork() để tạo tiến trình mới

Tiến trình cha có thể đợi hoặc thực hiện đồng thờivới tiến trình con

Không gian địa chỉ của tiến trình con là một BẢN SAO của không gian địa chỉ tiến trình cha

Mã trả về từ fork()Tiến trình con có thể gọi lời gọi hệ thống execlp()

để tải một chương trình mới vào thực hiện

Hủy tiến trình

Tiến trình thực thi xong

HĐH thực hiện lệnh exit (có thể) trả về dữ liệu cho tiến trình cha Hủy các tài nguyên đã được phân phối cho tiến trình

Tiến trình bị hủy bởi một tiến trình khác (tiến trìnhcha)

Tiến trình cha cần biết chỉ số của tiến trình con

Trang 25

3/12/2008 Nguyên lý Hệ điều hành 29

Hủy tiến trình (tt)

Tiến trình cha dừng sự hoạt động của tiến trình con

Tiến trình con dùng quá tài nguyên cho phép

Nhiệm vụ của tiến trình con không còn quan trọng

Tiến trình cha thoát và HĐH thực thi cơ chế “hủy theo dây

chuyền”(cascading termination)

¦ u£¨hông thực hiện cơ chế hủy theo dây

chuyền, tiến trình init ¬ £thành tiến trình cha

Chia sẻ thông tin

Đồng thời truy cập đến tài nguyên chia sẻ

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

Chia thành các bài toán con, thực thi song song

Chỉ có được trong các hệ thống có nhiều thành phần xử lý

(đa CPU, đa kênh vào/ra)

Tính module hóa: Chia nhỏ các chức năng

Tiện dụng

Có thể thực hiện nhiều nhiệm vụ tại một thời điểm

Bài toán “Producer - Consumer” (1)

Nhà sản xuất (producer)

Sinh sản phẩm (thông tin)

Người tiêu dùng (consumer)

Dùng s ª£«§ © do Nhà sản xuất sinh ra

Bộ đệm chung

Không giới hạn Giới hạn

Hỗ trợ bởi hệ điều hành (thông qua IPC)

Trang 26

1.5 Truyền thông giữa các tiến trình

Các tiến trình có thể giao tiếp thông qua tính năng truyền thông giữa các tiến trình (IPC) của HĐH

IPC cho phép các tiến trình không gian địa chỉ giao tiếp và đồng bộ

Hệ thống truyền thông báo

Trang 27

3/12/2008 Nguyên lý Hệ điều hành 37

Hệ thống truyền thông báo (1)

Giao tiếp giữa các tiến trình người dùng

không cần chia sẻ dữ liệu mà thông qua việc

truyền thông báo

Hai tiến trình P & Q truyền thông bằng cách gửi và nhận thông báo

Tạo thành một kết nối truyền thông

Hệ thống truyền thông báo (3)

Các phương pháp để thiết lập liên kết và các

thao tác gửi/nhận

Truyền thông trực tiếp/ gián tiếp

Truyền thông đối xứng/ bất đối xứng

Gửi bản sao hay gửi tham chiếu

Các thông điệp kích thước cố định hoặc thay đổi

Định danh

Các tiến trình muốn giao tiếp với nhau cần có một cách thức để tham chiếu đến nhau!

Trang 28

3/12/2008 Nguyên lý Hệ điều hành 41

Truyền thông trực tiếp (1)

Phải khai báo tên của người nhận/gửi trong khi giao

tiếp

send (P, message)

receive (Q, message)

Tính chất

Tự động thiết lập liên kết khi cần giao tiếp

Mỗi liên kết có đúng hai tiến trình

Có đúng một liên kết giữa bất kì 2 cặp tiến trình

3/12/2008 Nguyên lý Hệ điều hành 42

Truyền thông trực tiếp (2)

Hệ thống vừa xét: đối xứng địa chỉ

Hệ thống bất đối xứng địa chỉ

Chỉ có người gửi định danh người nhậnNgười nhận không cần định danh người gửi

Send(P, message) Receive(id, message)

Thay đổi tên một tiến trình duyệt lại toàn bộcác tiến trình

Truyền thông gián tiếp (1)

Gửi và nhận thông qua hòm thư hoặc cổng

Mỗi hòm thư có một số định danh

Các thao tác gửi/nhận

Send(A, message) – A là hòm thư

Receive(A, message) – nhận một thông báo từ

Trang 29

3/12/2008 Nguyên lý Hệ điều hành 45

Đồng bộ hóa

Truyền thông báo có thể là phong tỏa hay

không phong tỏa(đồng bộ hoặc không đồng

bộ)

Phong tỏa gửi

Không phong tỏa gửi

Thực hiện kiểm tra ngữ pháp và chính tả ngầm

luồng

Trang 30

Phân phối tài nguyên và bộ nhớ cho tiến trình tốnkém

Tận dụng các kiến trúc đa xử lý

Quản lý luồng được thực hiện bởi thư viện

Trang 32

3/12/2008 Nguyên lý Hệ điều hành 57

Pthreads

Chuẩn Posix (IEEE 1003.1c), API cho việc

tạo và đồng bộ tiến trình

API xác định giao diện của thư viện,thực thi

tùy thuộc vào cài đặt thư viện.

Phổ biến trong dòng hệ điều hành Unix.

2.1 Các khái niệm cơ bản

Tận dụng tối đa CPU trong đa chương trình Chu kỳ của các CPU-I/O burst – Việc thực thi tiến trình là một chu kì của các thực thi bởi CPU và chờ đợi vào ra

Phân phối CPU burst

Trang 33

Chọn trong số các tiến trình trong bộ nhớ trong và ở trạng thái

ready để thực hiện (trao quyền sử dụng CPU cho tiến trình đó)

Việc lập lịch có thể được thực hiện trong một số trường hợp

1 Tiến trình trạng thái running chuyển sang waiting

2 Tiến trình trạng thái running chuyển sang trạng thái ready

3 Có một tiến trình ở trạng thái waiting chuyển sang trạng thái

ready

4 Tiến trình hiện tại kết thúc thực thi

Lập lịch trong chỉ trong các trường hợp 1 và 4 gọi là lập lịch

không chiếm đoạt (hay còn gọi là cộng tác)

Các trường hợp còn lại gọi là lập lịch chiếm đoạt

Bộ điều vận

Bộ điều vận có nhiệm vụ chuyển điều khiển CPU cho tiến trình được lựa chọn bởi bộ lập lịch ngắnhạn

Chức năng của bộ điều vận bao gồm

Chuyển đổi ngữ cảnh Chuyển sang user mode Chuyển điều khiển đến một vị trí xác định trong chương trình người dùng để khởi động lại chương trình

Độ trễ điều vận

Trang 34

Vấn đề tối ưu các điều kiện

Cực đại hóa tính tận dụng CPU Cực đại hóa thông lượng

Cực tiểu hóa thời gian quay vòng Cực tiểu hóa thời gian đợi

Cực tiểu hóa thời gian phản ứng

2.3 Các thuật toán lập lịch

Đến trước – Phục vụ trước (FCFS)

Công việc ngắn nhất trước (SJF)

Lập lịch với độ ưu tiên

Biểu đồ Gantt trong lập lịch FCFS

Thời gian chờ của P1 = 0; P2= 24; P3 = 27 Thời gian chờ trung bình: (0 + 24 + 27)/3= 17

0

Trang 35

3/12/2008 Nguyên lý Hệ điều hành 69

Nếu các tiến trình đến theo thứ tự P2, P3, P1

Biểu đồ Gantt cho lập lịch

Thời gian chờ của P1 = 6; P2 = 0; P3 = 3

Thời gian chờ trung bình: (6 + 0 + 3)/3 = 3

Tốt hơn nhiều so với trường hợp trên

Công việc ngắn nhất trước (SJF)

Liên kết mỗi tiến trình độ dài của “CPU burst” tiếptheo Sử dụng độ dài này để lập lịch tiến trình vớithời gian ngắn nhất

Hai dạng

Không chiếm đoạt – Một khi CPU đã được gán cho tiến trình, CPU không thể bị chiếm đoạt bởi một tiến trình nào khác (SJN)

Chiếm đoạt – Nếu một tiến trình mới đến với độ dài CPU burst nhỏ hơn thời gian thực thi còn lại của tiến trình sở hữu CPU, tiến trình mới được chiếm hữu CPU – Dạng

“Thời gian còn lại ngắn nhất trước” (SRN)

SJF tối ưu thời gian chờ

SJF không chiếm đoạt: Ví dụ

SJF (không chiếm đoạt(SJN))

Thời gian chờ trung bình:(0 + 6 + 3 + 7)/4 = 4

Trang 36

3/12/2008 Nguyên lý Hệ điều hành 73

Ước lượng độ dài nhờ độ dài của các CPU

burst trước đó

: Define 4.

1 0 , 3.

burst CPU next the for value predicted

2.

burst CPU of

lenght actual

α α

Lập lịch với độ ưu tiên

Mỗi tiến trình liên kết với một độ ưu tiên (số nguyên)

xác định

CPU được phân phối cho tiến trình với độ ưu tiên

cao nhất (giá trị độ ưu tiên nhỏ nhất)

Chiếm đoạt

Không chiếm đoạt

SJF là lập lịch với độ ưu tiên trong đó độ ưu tiên

chính là khoảng CPU burst tiếp theo

Vấn đề: “Chết đói” – Những tiến trình với độ ưu tiên

thấp có thể sẽ không bao giờ được gán CPU

Giải pháp: các tiến trình tăng độ ưu tiên theo thời gian

FIFO

Q phải đủ lớn so với thời gian chuyển giao ngữcảnh

Trang 37

3/12/2008 Nguyên lý Hệ điều hành 77

Process Burst Time

RR có thời gian quay vòng trung bình (lưu trung bình)

cao hơn SJF nhưng có tính phản ứng tốt hơn

Sử dụng nhiều hơn một hàng đợi sẵn sàng

Ví dụ: hàng đợi nền trước ( foreground queue ) cho các chương trình tương tác, hàng đợi nền sau ( background ) cho các chương trình duy trì hệ thống, các chương trình theo lô

Sử dụng các thuật toán lập lịch khác nhau cho cáchàng đợi

Ví dụ: RR cho hàng đợi nền trước, FCFS cho hàng đ i n n sau

Chia thời gian cho các hàng đợi

Ví dụ: 80% thời gian cho hàng đợi nền trước, 20% cho nền

Trang 38

3/12/2008 Nguyên lý Hệ điều hành 81

Hàng đợi nhiều mức

3/12/2008 Nguyên lý Hệ điều hành 82

Hàng đợi nhiều mức phản hồi (MFQ)

Không cố định tiến trình trên một hàng đợi

Ví dụ: các hàng đợi với các độ ưu tiên khác nhau

Các tiến trình gắn với Vào/Ra ở hàng đợi có độ

ưu tiên caoChuyển các tiến trình sử dụng CPU đến các hàngđợi có độ ưu tiên thấp

Chuyển các tiến trình phải đợi lâu đều đặn lênphía trên

JVM sử dụng thuật toán Preemptive, và

dựa trên độ ưu tiên trong lập lịch

Hàng đợi FIFO được sử dụng nếu có

nhiều luồng cùng mức ưu tiên

Lập lịch các luồng trong Java

JVM lập lịch khi:

1. Tiến trình đang chạy ra khỏi trạng thái runnable

2. Một tiến trình có độưu tiên cao hơn vào trạngtháirunnable

Trang 39

Giải pháp của Peterson Đồng bộ nhờ phần cứng Semaphores

3 bài toán đồng bộ điển hình Monitors

Trang 40

3/12/2008 Nguyên lý Hệ điều hành 89

4.1 Nền tảng

Truy nhập đồng thời đến dữ liệu chia sẻ có

thể gây ra sự không nhất quán về dữ liệu

//produce an item while (count == BUFFER_SIZE);

while (count == 0)

; // do nothing

nextConsumed = buffer[out]; out = (out + 1) %

Giả sử ban đầu “count = 5”:

S0: producer thực thi register1 = count {register1 = 5}

S1: producer thực thi register1 = register1 + 1 {register1 = 6}

S2: consumer thực thi register2 = count {register2 = 5}

S3: consumer thực thi register2 = register2 - 1 {register2 = 4}

S4: producer thực thi count = register1 {count = 6 }

S5: consumer thực thi count = register2 {count = 4}

Chạy đua

Chạy đua: Tình huống nhiều tiến trình cùng truycập và xử lý dữ liệu dùng chung đồng thời Giá trịcuối cùng của dữ liệu phụ thuộc vào tiến trình sẽ kếtthúc cuối

Để tránh việc chạy đua, các tiến trình đồng thời cầnphải được đồng bộ hóa

Ngày đăng: 01/07/2021, 03:17

TỪ KHÓA LIÊN QUAN

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