Chương 2: Tiến trình và luồng Flashcards

(66 cards)

1
Q

Tiến trình là gì ?

A

Khi chương trình hoạt động , nó chuyển thành tiến trình

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hệ điều hành có chức năng

A

Điều phối việc 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Một tiến trình gồm:

A
Mã nguồn chương trình (code) (không thay đổi)
Data
Program Counter
Stack
Register values
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Trạng thái của tiến trình xác định bởi

A

Hoạt động của tiến trình tại thời điểm đó

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Tiến trình có thể thay đổi do các nguyên nhân:

A

Phải dừng hoạt động do hết thời gian
Đợi I/O hoàn tất
Phải chờ một sự kiện xảy ra

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

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

A

new: Tiến trình đang được tạo
running: Tiến trình đang chiếm hữu CPU & thực hiện các lệnh.
waiting: Tiến trình đang chờ cung được cấp tài nguyên hoặc chờ một 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ó không biến mất cho đến khi một tiến trình khác đọc được trạng thái thoát của nó.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Tại một thời điểm, có bao nhiêu tiến trình ở trạng thái running

A

1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Tại một thời điểm có nhiều tiến trình ở trạng thái ready hay waiting

A

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Tiến trình được khở tạo, cung cấp đủ tài nguyên đi vào trạng thái nào

A

Running

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

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

A

Kết thúc(terminal) nếu thực hiện xong
Chờ(waiting) tiến trình yêu cầu một 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 đó ; hoặc tiến trình phải chờ một sự kiện hay 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ời gian sử dụng CPU hoặc hết thời gian chiếm hữu CPU

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Tiến trình ở trạng thái chờ khi chuyển sang ready có đặc điểm gì:

A

Tài nguyên cung cấp đủ cho tiến trình

Sự kiện hoặc thao tác I/O tiến trình đang đợi hoàn tất

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

PCB là gì?

A

Là vùng nhớ lưu trữ các thông tin mô tả của tiến trình;

Mỗi tiến trình chỉ có một PCB

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cấu trúc PCB:

A

Process Id
Process state
Ngữ cảnh tiến trình: Mô tả các tài nguyên liên quan đến tiến trình
Trạng thái CPU: Con trỏ lệnh, CPU registers; được lưu trữ khi xảy ra ngắt
để có thể phục hồi trạng thái khi phục vụ ngắt xong
Thông tin lịch trình CPU - CPU scheduling information
Thông tin quản lý bộ nhớ: danh sách khối nhớ đang cấp cho tiến trình
Tài nguyên sử dụng: danh sách tài nguyên tiến trình đang sử dụng
Tài nguyên tạo lập: danh sách các tài nguyên mà tiến trình yêu cầu
Information Communicate: quan hệ giữa tiến trình này và tiến trình khác trong hệ thống
Statistic : Những thông tin về hoạt động tiến trình(tg thực hiện, tg chờ….)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Hệ điều hành căn cứ nội dung của PCB:

A

Phân phối và phân phối lại CPU

Giải phóng CPU ảo mà không phân phối lại

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Trong chế độ đa chương trình, CPU phục vụ bao nhiêu chương trình trong một thời điểm

A

1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Trong chế độ đa chương trình, các chương trình còn lại được chạy bởi CPU logic ?

A

Đúng. Hay còn gọi là CPU ảo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

CPU ảo là gì

A

Là CPU logic được phân phối cho toàn bộ tiến trình

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Tốc độ CPU ảo nhanh hơn CPU thực

A

Sai

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

CPU chuyển giữa các tiến trình

A
Hai tiến trình P0 , P1
1,  P0 executing then save state into PCB0 then P0 idle
2, Reload state from PCB1 
3, Finish then executing P1
4, Save state into PCB1
5, Reload state from PCB0 then executing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Mục tiêu của multiprogramming:

A

Thực thi nhiều chương trình cùng một thời điểm để tối đa hoá sử dụng CPU

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Mục tiêu của time-sharing

A

Luân chuyển giữa các tiến trình để giúp người dùng sử dụng nhiều chương trình khi nó đang chạy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Hệ điều hành sử dụng mấy danh sách để điều phối tiến trình

A

2

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Waiting list có giải thuật lập lịch nào ko?

A

Không vì chúng yêu cầu loại tài nguyên khác nhau

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Ready List có giải thuật lập lịch hay không

A

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
``` Chọn ý sai cho reay list Lập lịch dài kì đưa từ ổ đĩa vào trong ready list May be slow Được sử dụng đến rất thường xuyên Được sử dụng đến rất không thường xuyên ```
C
26
Thao tác chủ yếu trên một tiến trình của hệ điều hành
``` create or new destroy or terminal suspend resume thay đổi độ ưu tiên tiến trình ```
27
Process Creation : Một tiến trình có thể tạo ra các tiến trình khác không
28
Khi tạo tiến trình cần phải làm gì
29
Khi tạo tiến trình cần phải làm gì
phân phối bộ nhớ và tài nguyên
30
Tạo lập tiến trình gồm các bước:
``` Định danh tiến trình mới phát sinh Đưa vào danh sách quản lý của hệ thống Xác định độ ưu tiên cho tiến trình Then Tạo PCB cho tiến trình Cấp phát tài nguyên cho tiến trình ```
31
Resource sharing
Chia sẻ tất cả Chia sẻ tập con các tài nguyên của tiến trình cha Không có sự chia sẻ
32
Execution(Process Creation)
Hàm con xong mới đến hàm to
33
Kết thúc tiến trình, hệ điều hành thực hiện các công việc
Thu hồi tài nguyên Xoá tiến trình khỏi danh sách Phân phối lại tài nguyên
34
Các tiến trình có liên kết với nhau qua
Cơ chế do hệ điều hành cung cấp
35
Vấn đề chính yếu của HĐH
Liên lạc tường minh hay tiềm ẩn Liên lạc theo chế độ đồng bộ hay không đồng bộ Liên lạc giữa các tiến trình trong hệ thống tập trung và không tập trung
36
Các cơ chế liên lạc
``` Signal Pipe Share-Memory Messages Sockets ```
37
Các tín hiệu được gửi đi bởi
Phần cứng HĐH gửi đến một tiến trình Cha gửi con Người dùng
38
Liên lạc bằng tín hiệu mang tính chất
Không đồng bộ
39
Tiến trình giao tiếp bằng tín hiệu được không
Không
40
Các tiến trình chỉ có thể ..... cho nhau về một | biến cố nào đó
Thông báo
41
Khái niệm về Pipe
Kênh liên lạc trực tiếp một chiều | Dữ liệu xuất của tiến trình này là dữ liệu nhập tiến trình kia dưới dạng dòng các byte
42
Hoạt động cơ chế Pipe
Tiến trình ghi dữ liệu vào Pipe | Tiến trình kia đọc dữ liệu từ Pipe
43
Thứ tự truyền dữ liệu qua pipe theo nguyên tắc
FIFO
44
Một tiến trình trong cơ chế Pipe có đặc điểm như nào
Sử dụng một Pipe do nó tạo ra hoặc kế thừa từ tiến trình cha
45
Lời gọi hệ thống từ hệ điều hành trong cơ chế Pipe để đọc/ghi dữ liệu
Read/Write
46
Liên lạc bằng cơ chế Pipe còn gọi là
unidirectional
47
Liên lạc bằng hai pipe giữa hai tiến trình có thể dẫn đến tình trạng
Deadlock
48
Lý do dẫn đến deadlock khi liên lạc bằng 2 Pipe
khi cả hai pipe nối kết hai tiến trình đều đầy(hoặc đều trống) và cả hai tiến trình đều muốn ghi (hay đọc) dữ liệu vào pipe(mỗi tiến trình ghi dữ liệu vào một pipe), chúng sẽ cùng bị khóa và chờ lẫn nhau mãi!
49
Giới hạn hình thức liên lạc theo cơ chế Pipe là
Hai tiến trình quan hệ cha-con, trên cùng một máy tính
50
Khó khăn trong việc đồng bộ hoá cơ chế vùng nhớ chia sẻ
Không biết dữ liệu đang truy cập là mới nhất? Làm sao ngăn cản nhiều tiến trình cùng truy nhập bộ nhớ chung
51
Cơ chế vùng nhớ chia sẻ áp dụng cho .....
Máy tính
52
Cơ chế trao đổi thông điệp khái niệm
cơ chế các tiến trình giao tiếp và đồng bộ hành động của chúng không chia sẻ không gian địa chỉ chung , thông qua trao đổi các thông điệp
53
Cấu trúc tài nguyên:
SourceID: để phân biệt các tài nguyên SourceState : đây là các thông tin mô tả chi tiết trạng thái tài nguyên: +) Phần nào của tài nguyên đã cấp phát cho tiến trình +) Phần nào còn có thể sử dụng Hàng đợi trên một tài nguyên : danh sách chứa các tiến trình đang chờ được cấp phát tài nguyên tương ứng. Bộ cấp phát: là đoạn code đảm nhiệm việc cấp phát một tài nguyên đặc thù.
54
Để tăng tốc độ sử dụng CPU hiệu quả hơn
Cần nhiều dòng xử lý và cùng chia sẻ một không gian địa chỉ
55
Mỗi dòng xử lý là
Một luồng
56
Luồng khác tiến trình ở chỗ nào
Luồng có thể nằm chung trong tiến trình Tiến trình thì phải cung cấp tài nguyên ban đầu Luồng chỉ cần một phần rất nhỏ và dùng chung trong tiến trình
57
Mỗi luồng ....... với một phần riêng của hệ thống như đĩa, I/O trên mạng, hoặc người dùng
Tương tác
58
Luồng bao gồm
Thread Id Counting program Register list Stack
59
Lợi ích tiến trình đa luồng: Đáp ứng nhanh
Một luồng tương tác với người dùng | Một luồng thực hiện tải dữ liệu
60
Lợi ích tiến trình đa luồng: Chia sẻ tài nguyên
Các luồng chia sẻ bộ nhớ và tài nguyên của tiến trình chưa có Cụ thể: Tốt thuật toán song song Trao đổi luồng bằng bộ nhớ phân chia
61
Lợi ích kinh tế tiến trình đa luồng
Các thao tác khởi tạo, huỷ bỏ ít tốn kém
62
Luồng chia làm 2 loại là:
Luồng mức nhân và luồng mức người dùng
63
Các loại mô hình đa luồng
Many to One One to One Many to Many
64
Windows NT/2000/XP là mô hình đa luồng
One to One
65
Hạn chế mô hình Many to One
Quản lý luồng thực hiện trong không gian người sử dụng nên nhanh nhưng cũng dễ bị khoá Các luồng ko chạy song song trong các hệ thống multiprocessor
66
UNIX là mô hình đa luồng kiểu j
Many to Many