You are on page 1of 68

Các hệ điều hành:

Internals và nguyên tắc thiết kế, 6 / E


William Stallings

Chương 3
Mô tả quá trình và kiểm soát
Nhấn vào đây để chỉnh sửa kiểu phụ đề Thạc sĩ

Dave Bremer Otago


9/14/11 Polytechnic, NZ © 2008,
lộ trình

-
Làm thế nào là quá trình đại diện và điều khiển bởi
hệ điều hành.
-
bang quá trình đặc trưng cho các hành vi của
quy trình.
-
Cấu trúc dữ liệu sử dụng để quản lý các quy trình.
-
Cách thức mà hệ điều hành sử dụng các cấu trúc dữ liệu
để kiểm soát quá trình thực hiện.
-
Thảo luận về quản lý quá trình trong UNIX SVR4.
Yêu cầu của một hệ điều
hành

Nhiệm vụ cơ bản: Quy trình quản lý

Hệ điều hành phải
-
Interleave thực hiện nhiều quy trình
-
Phân bổ nguồn lực để quy trình, và bảo vệ các nguồn
lực của mỗi quá trình từ các quá trình khác,

-
Kích hoạt các quy trình để chia sẻ và trao đổi thông
tin,
-
Kích hoạt tính năng đồng bộ hóa giữa các quá trình.
Các khái niệm


Từ các chương trước chúng ta đã thấy:
-
các nền tảng máy tính bao gồm một bộ sưu tập các tài nguyên
phần cứng

-
ứng dụng máy tính được phát triển để thực hiện một số
nhiệm vụ

-
Đó là không hiệu quả cho các ứng dụng được viết trực tiếp cho
một nền tảng phần cứng được
Các khái niệm cont ...

-
OS cung cấp một giao diện cho các ứng dụng sử dụng

-
OS cung cấp một đại diện của tài nguyên có thể được
yêu cầu và truy cập bằng ứng dụng
Hệ điều hành Quản lý Thực
hiện các ứng dụng

Tài nguyên được tạo sẵn cho nhiều ứng dụng


Bộ xử lý được bật giữa nhiều ứng dụng


Bộ xử lý và I / O thiết bị có thể được sử dụng một cách
hiệu quả
là gì "quá trình"?


Một chương trình trong thực hiện

Một thể hiện của một chương trình đang chạy trên một máy tính


Các đơn vị có thể được giao cho và thực hiện
trên một bộ xử lý

Một đơn vị hoạt động đặc trưng bởi việc thực hiện một
chuỗi các hướng dẫn, tình trạng hiện tại, và một bộ liên
quan đến các hướng dẫn hệ thống
Các yếu tố quá trình


Một quá trình bao gồm:
-
mã chương trình (có thể chia sẻ)
-
Một tập hợp các dữ liệu
-
Một số thuộc tính mô tả trạng thái của quá trình
Các yếu tố quá trình


Trong khi quá trình này đang chạy nó có một
số yếu tố bao gồm
-
định danh
-
Tiểu bang
-
Sự ưu tiên
-
truy cập chương trình
-
con trỏ bộ nhớ
-
dữ liệu bối cảnh
-
I / O thông tin trạng thái
-
thông tin kế toán
Xử lý Control Block

Chứa các yếu tố quá trình


Tạo ra và quản lý bởi hệ điều
hành

Cho phép hỗ trợ cho
nhiều quy trình
Dấu vết của quá trình


Hành vi của một quá trình cá nhân được hiển thị
bằng cách liệt kê chuỗi các lệnh được thực thi


Danh sách này được gọi là một dấu vết

Điều phối là một chương trình nhỏ mà chuyển sang
bộ xử lý từ một quá trình khác
Quy trình thi công


Hãy xem xét ba quá
trình được thực thi


Tất cả đều trong bộ nhớ
(cộng dispatcher)

Cho phép bỏ qua bộ nhớ ảo
cho việc này.
Theo dõi từ
quá trình quan điểm:

Mỗi quá trình chạy đến khi kết thúc
Dấu vết từ bộ xử lý
quan điểm

Hết giờ
Timeout
Timeout
I/O
lộ trình

-
Làm thế nào là quá trình đại diện và điều khiển bởi
hệ điều hành.
-
bang quá trình đặc trưng cho các hành vi của
quy trình.
-
Cấu trúc dữ liệu sử dụng để quản lý các quy trình.
-
Cách thức mà hệ điều hành sử dụng các cấu trúc dữ liệu
để kiểm soát quá trình thực hiện.
-
Thảo luận về quản lý quá trình trong UNIX SVR4.
Process Model hai Nhà nước


Quá trình có thể theo một trong hai tiểu bang
-
Đang chạy
-
Không chạy
Queuing Diagram

Vv ... các quá trình di chuyển của các điều phối của hệ điều hành để CPU sau đó trở lại hàng đợi cho đến khi
công việc được thi đấu
Quá trình sinh và cái chết

Sự sáng tạo chấm dứt


công việc hàng loạt mới hoàn thành bình thường

Đăng nhập Interactive bộ nhớ không có sẵn


Được tạo bởi hệ điều hành để lỗi bảo vệ
cung cấp một dịch vụ

Sinh ra bởi quá trình hiện Nhà điều hành hoặc hệ


điều hành can thiệp

Xem bảng 3.1 và 3.2 để biết thêm


Process Creation

Các hệ điều hành được xây dựng một cấu trúc dữ liệu để quản lý quá
trình

Theo truyền thống, hệ điều hành tạo ra tất cả các quá trình
-
Nhưng nó có thể hữu ích để cho một quá trình chạy tạo
khác

Hành động này được gọi là quá trình sinh sản
-
Process mẹ là bản gốc, tạo, quy trình

-
Quy trình con là quá trình mới
Quy trình chấm dứt


Phải có một số cách mà một quá trình có thể chỉ
hoàn thành.

Chỉ định này có thể là:
-
Một hướng dẫn HALT tạo ra một cảnh báo ngắt cho hệ điều
hành.
-
Một hành động sử dụng (ví dụ như log off, bỏ một ứng
dụng)
-
Một lỗi hoặc sai sót
-
quá trình chấm dứt mẹ
Process Model
Năm-Nhà nước
Sử dụng hai Queues
Nhiều Queues bị chặn
Processes lơ lửng

Bộ xử lý nhanh hơn so với I / O vì vậy tất cả các quá trình có thể được
chờ đợi cho I / O
-
Trao đổi các quá trình này vào đĩa để giải phóng nhiều bộ xử lý
bộ nhớ và sử dụng trên quá trình hơn

tình trạng bị chặn trở thành đình chỉ nhà nước khi
hoán đổi vào đĩa

Hai trạng thái mới
-
Bị chặn / Suspend
- Ready / Suspend
Một Đình Nhà nước
Hai Đình Hoa
Lý do quá trình
Huyền phù
lý do Bình luận

trao đổi Các hệ điều hành cần phải phát hành đủ bộ nhớ chính để mang lại một
quá trình đã sẵn sàng để thực thi.

Lý do hệ điều hành khác OS nghi ngờ quá trình gây ra một vấn đề.

Yêu cầu tài ví dụ như gỡ lỗi hoặc liên quan đến việc sử dụng các tài nguyên.
Interactive

thời gian Một quá trình có thể được thực hiện theo định kỳ (ví dụ, một quá trình
kế toán hoặc giám sát hệ thống) và có thể bị đình chỉ trong khi chờ
đợi cho thời gian tới.

Cha mẹ xử lý yêu Một quá trình cha mẹ có thể muốn đình chỉ thực hiện một hậu duệ
cầu để kiểm tra hoặc sửa đổi các quy trình đình chỉ, hoặc phối hợp các
hoạt động của con cháu khác nhau.

Bảng 3.3 Lý do Process Đình


lộ trình

-
Làm thế nào là quá trình đại diện và điều khiển bởi
hệ điều hành.
-
bang quá trình đặc trưng cho các hành vi của
quy trình.
-
Cấu trúc dữ liệu sử dụng để quản lý các quy trình.
-
Cách thức mà hệ điều hành sử dụng các cấu trúc dữ liệu
để kiểm soát quá trình thực hiện.
-
Thảo luận về quản lý quá trình trong UNIX SVR4.
Quy trình và Tài
nguyên
Hoạt động cấu trúc điều
khiển hệ thống

Đối với hệ điều hành là để quản lý các quy trình và
nguồn lực, nó phải có thông tin về tình trạng hiện tại
của mỗi quá trình và nguồn lực.


Bàn được xây dựng cho từng đối tượng hệ điều hành
quản lý
Bàn OS kiểm soát
Bàn Memory


bảng bộ nhớ được sử dụng để theo dõi cả hai bộ
nhớ chính và thứ yếu.

Phải bao gồm những thông tin này:
-
Phân bổ bộ nhớ chính vào các quá trình
-
Phân bổ bộ nhớ thứ cấp đến các quá trình
-
thuộc tính bảo vệ cho quyền truy cập vào vùng bộ nhớ
chia sẻ
-
Thông tin cần thiết để quản lý bộ nhớ ảo
I / O Bàn


Được sử dụng bởi hệ điều hành để quản lý các thiết bị I / O và
các kênh truyền hình của máy tính.

Các hệ điều hành cần biết
-
Cho dù các I / O thiết bị có sẵn hoặc giao

-
Tình trạng của I / O hoạt động
-
Các vị trí trong bộ nhớ chính được sử dụng như nguồn
hoặc đích của I / O chuyển
tập tin bảng


Các bảng này cung cấp thông tin về:
-
Sự tồn tại của file
-
Vị trí trên bộ nhớ thứ cấp
-
Tình trạng hiện tại
-
các thuộc tính khác.


Đôi khi thông tin này được duy trì bởi một hệ thống
quản lý tập tin
Bàn Process

Để quản lý các quy trình hệ điều hành cần phải biết
chi tiết về các quá trình
-
Tình trạng hiện tại
-
Xử lý ID
-
Vị trí trong bộ nhớ
-
Vân vân


khối điều khiển tiến trình
-
hình ảnh quá trình là tập hợp các chương trình. Dữ liệu, ngăn xếp,
và các thuộc tính
Thuộc tính trình


Chúng tôi có thể nhóm các xử lý thông tin khối điều
khiển thành ba loại chính:
-
xác định quá trình
-
thông tin trạng thái xử lý
-
thông tin điều khiển quá trình
Quy trình nhận dạng


Mỗi quá trình được gán một định danh số
độc đáo.

Nhiều người trong số các bảng khác được kiểm soát bởi hệ điều hành
có thể sử dụng quá trình định danh để chéo- bảng quá trình tham
khảo
Nhà nước xử lý
Thông tin

Này bao gồm các nội dung của thanh ghi bộ xử lý.

-
đăng ký sử dụng có thể nhìn thấy
-
thanh ghi điều khiển và trạng
-
con trỏ ngăn xếp

từ trạng thái chương trình (PSW)
-
chứa thông tin trạng thái
-
Ví dụ: EFLAGS đăng ký trên bộ vi xử lý Pentium
Pentium II
EFLAGS Đăng ký

Cũng xem Bảng


3.6
Quy trình kiểm soát
Thông tin

Đây là thông tin bổ sung cần thiết bởi hệ điều hành để
kiểm soát và phối hợp các quá trình hoạt động khác
nhau.
-
Xem bảng 3.5 cho phạm vi thông tin
Cấu trúc của quá trình hình ảnh
trong Virtual Memory
Vai trò của Process
Control Block

Cấu trúc dữ liệu quan trọng nhất trong một hệ điều hành

-
Nó định nghĩa trạng thái của hệ điều hành


Process Control Block yêu cầu bảo vệ
-
Một thói quen bị lỗi có thể gây ra thiệt hại cho khối phá hủy
khả năng của hệ điều hành để quản lý quá trình

-
Bất kỳ thay đổi thiết kế để khối có thể ảnh hưởng nhiều mô-đun
của hệ điều hành
lộ trình

-
Làm thế nào là quá trình đại diện và điều khiển bởi
hệ điều hành.
-
bang quá trình đặc trưng cho các hành vi của
quy trình.
-
Cấu trúc dữ liệu sử dụng để quản lý các quy trình.
-
Cách thức mà hệ điều hành sử dụng các cấu trúc dữ liệu
để kiểm soát quá trình thực hiện.
-
Thảo luận về quản lý quá trình trong UNIX SVR4.
Phương thức Thực hiện

Hầu hết các bộ vi xử lý hỗ trợ ít nhất hai phương
thức thực hiện

Chế độ người dùng
-
chế độ ít đặc quyền
-
chương trình sử dụng thường thực hiện trong chế độ này

chế độ hệ thống
-
Chế độ nhiều đặc quyền
-
Kernel của hệ điều hành
Process Creation


Khi hệ điều hành quyết định để tạo ra một quy trình mới
nó:
-
Gán một định danh quá trình độc đáo
-
Phân bổ không gian cho quá trình này
-
Khởi khối điều khiển tiến trình
-
Thiết lập mối liên kết thích hợp
-
Tạo hoặc mở rộng cấu trúc dữ liệu khác
Switching Processes


Một số vấn đề thiết kế được nâng lên về
quá trình chuyển đổi
-
Những sự kiện kích hoạt một chuyển đổi quá trình?
-
Chúng ta phải phân biệt giữa chuyển mạch chế độ và quá trình
chuyển đổi.
-
hệ điều hành phải làm gì để các cấu trúc dữ liệu khác nhau dưới sự
kiểm soát của mình để đạt được một chuyển đổi quá trình?
Khi chuyển đổi các quá trình
Một chuyển đổi quá trình có thể xảy ra bất cứ lúc nào mà hệ điều hành đã giành quyền kiểm soát từ quá trình đang
chạy. sự kiện có thể cho kiểm soát hệ điều hành bao gồm:

cơ chế Nguyên nhân Sử dụng

Làm gián đoạn Bên ngoài để thực hiện các hướng Phản ứng đối với một sự kiện bên ngoài không
dẫn hiện hành đồng bộ

Bẩy Liên quan đến việc thực hiện các Xử lý một lỗi hoặc một điều kiện
hướng dẫn hiện hành ngoại lệ

gọi Supervisor yêu cầu rõ ràng Gọi đến một chức năng hệ điều
hành

Bảng 3.8 Các cơ chế cho gián đoạn Thi hành một Process
Thay đổi quá trình
Nhà nước ...

Các bước trong một switch quá trình bao gồm:
1. Lưu bối cảnh của bộ xử lý bao gồm cả chương trình
truy cập và đăng ký khác
2. Cập nhật các khối điều khiển quá trình

quá trình đó hiện đang trong tình trạng chạy


3. kiểm soát quá trình di chuyển khối để phù hợp
hàng đợi - đã sẵn sàng; chặn; sẵn sàng / đình chỉ
Thay đổi quy trình tiếp
Nhà nước ...
4. Chọn một quá trình để thực hiện
5. Cập nhật các khối điều khiển quá trình
quá trình lựa chọn
6. cập nhật dữ liệu quản lý bộ nhớ
cấu trúc
7. Khôi phục bối cảnh của quá trình chọn
Là hệ điều hành một quá trình?


Nếu hệ điều hành chỉ là một tập hợp các chương trình và nếu nó
được thực hiện bởi bộ vi xử lý giống như bất kỳ chương trình nào
khác, là hệ điều hành một quá trình?


Nếu vậy, làm thế nào là nó được kiểm soát?
-
Ai (cái gì) điều khiển nó?
Thi hành hệ điều
hành
Non-quá trình hạt nhân


Execute hạt nhân bên ngoài của quá trình bất kỳ

Khái niệm về quá trình được coi là chỉ áp dụng cho các
chương trình sử dụng
-
mã hệ điều hành được thực hiện như một thực thể riêng biệt mà
hoạt động trong chế độ đặc quyền
Chấp hành ở trong
Processes người dùng

Thực hiện Trong quá trình tài
khoản
-
phần mềm hệ điều hành trong bối cảnh của một
quá trình sử dụng
-
Không cần cho quá trình chuyển đổi để chạy thường xuyên
OS
Hệ điều hành dựa
trên quá trình

hệ điều hành dựa trên quá trình
-
Thực hiện các hệ điều hành như một tập hợp các quy trình hệ thống
Vân đê bảo mật

• Một hệ điều hành liên kết một tập hợp các đặc quyền với mỗi quá trình.

- mức cao nhất là quản trị viên, người giám sát, hoặc gốc, truy cập.

• Một vấn đề an ninh quan trọng trong việc thiết kế của bất kỳ hệ điều hành
là để ngăn chặn bất cứ điều gì (dùng hoặc quá trình) từ đạt được đặc
quyền trái phép trên hệ thống
- Đặc biệt - từ đạt được quyền truy cập root.
mối đe dọa truy cập hệ thống


những kẻ xâm nhập
-
Masquerader (người ngoài)
-
Misfeasor (người trong cuộc)
-
sử dụng bí mật (bên ngoài hay người trong cuộc)


Phần mềm độc hại (malware)
Biện pháp đối phó:
Intrusion Detection

hệ thống phát hiện xâm nhập thường được thiết kế để
phát hiện kẻ xâm nhập của con người và hành vi phần
mềm độc hại.

Có thể là máy chủ hoặc mạng dựa

hệ thống phát hiện xâm nhập (IDS) thường bao gồm

-
Cảm biến
-
Máy phân tích
-
Giao diện người dùng
biện pháp đối phó:
Xác thực

Hai giai đoạn:
-
Nhận biết
-
xác minh

Bốn yếu tố:
-
Một cái gì đó cá nhân biết
-
Một cái gì đó cá nhân sở hữu
-
Một cái gì đó cá nhân Là ( sinh trắc học tĩnh)
-
Một cái gì đó cá nhân làm ( sinh trắc học động)
Biện pháp đối phó:
Access Control

Một chính sách quản lý quyền truy cập vào các nguồn tài nguyên

Một quản trị viên an ninh duy trì một cơ sở dữ
liệu cho phép
-
Chức năng kiểm soát truy cập tư vấn này để xác định xem
có nên cấp quyền truy cập.

Một màn hình chức năng kiểm toán và giữ một kỷ lục của
người dùng truy cập đến tài nguyên hệ thống.
biện pháp đối phó:
Tường lửa

Theo truyền thống, một tường lửa là một máy tính chuyên
dụng:
-
giao diện với các máy tính bên ngoài một mạng
-
có biện pháp phòng ngừa an ninh đặc biệt được xây dựng vào nó để
bảo vệ tập tin nhạy cảm trên máy tính trong mạng.
lộ trình

-
Làm thế nào là quá trình đại diện và điều khiển bởi
hệ điều hành.
-
bang quá trình đặc trưng cho các hành vi của
quy trình.
-
Cấu trúc dữ liệu sử dụng để quản lý các quy trình.
-
Cách thức mà hệ điều hành sử dụng các cấu trúc dữ liệu
để kiểm soát quá trình thực hiện.
-
Thảo luận về quản lý quá trình trong UNIX SVR4.
Unix SVR4
System V Release 4


Sử dụng mô hình của fig3.15b nơi hầu hết các hệ điều hành thực
hiện trong quá trình sử dụng

Processes hệ thống - chế độ Kernel chỉ

Processes người dùng
-
chế độ người dùng để thực hiện các chương trình sử dụng và tiện ích
-
chế độ Kernel thực thi câu lệnh thuộc về hạt nhân.
UNIX Process Diagram
Chuyển Nhà nước
UNIX Hoa Process
Một quá trình Unix


Một quá trình trong UNIX là một tập hợp các cấu trúc dữ
liệu cung cấp hệ điều hành với tất cả các thông tin cần
thiết để quản lý và quy trình công văn.


Xem Bảng 3.10 đơn vị tổ chức các yếu tố
thành ba phần:
-
bối cảnh người dùng cấp,
-
đăng ký bối cảnh, và
-
hệ thống cấp ngữ cảnh.
Process Creation


tạo quá trình là bằng phương tiện của cuộc gọi hệ thống hạt
nhân, fork ().

Điều này làm cho hệ điều hành, trong Kernel Mode, để:
1. Phân bổ một khe trong bảng quá trình cho
quy trình mới.
2. Gán một quá trình ID duy nhất cho đứa trẻ
quá trình.
3. Bản sao của hình ảnh quá trình của cha mẹ, với
ngoại trừ bất kỳ bộ nhớ chia sẻ.
Process Creation
cont ...
4. Tăng các quầy cho bất kỳ tập tin thuộc sở hữu của cha mẹ,
để phản ánh rằng một quá trình bổ sung hiện cũng sở hữu
những tập tin.
5. Gán quá trình con để Ready to
Chạy nhà nước.

6. Trả về số ID của đứa trẻ đến


quá trình cha mẹ, và một giá trị từ 0 đến quá trình con.
sau Creation


Sau khi tạo quá trình các hạt nhân có thể làm một trong
những điều sau đây, như một phần của thói quen phối:

-
Ở trong quá trình cha mẹ.
-
Chuyển điều khiển đến quá trình con
-
Chuyển điều khiển quá trình khác.

You might also like