BÀI KIỂM TRA QUÁ TRÌNH
Môn học: KTMT & HĐH
Thời gian làm bài: 360ph
I. Thông tin sinh viên
STT Họ và tên Lớp tín chỉ Lớp niên chế Mã số sinh viên
45 Vũ Mai Hương 41.1.LT2 CQ62/41.02 247340405400062
II. Bài làm
Bài 1:
Đề bài cho:
Số A là số nguyên không dấu 2 byte: A = 43(h)
Số B là số nguyên không dấu 2 byte: B = 23XX(10)
Thay XX = 45: B = 2345(10)
Số C: C = B - 123.45
1, Tính A+ B và kiểm tra tràn số
Số A = 00000000 01000011
Số B = 00001001 101001
=> A+B= 0000 1001 0110 1100
Chuyển sang thập phân: 2412 < 65535
=> Không xảy ra tràn số.
2, Tính A x B và kiểm tra tràn số.
A x B = 67 x 2345= 157115 > 65535 => Tràn số
3, Biểu diễn C= B - 123.45 dưới dạng IEE 754
Số cần biểu diễn: C= 2345 -123.45 = 2221.55
=> C= 010001010 00010101101100011000110
- Gộp thành 4 byte (HEX)
+ Byte 1: 0100 0101 = 45
+ Byte 2: 0110 1101 = 6D
+ Byte 3: 1000 1100 = 8C
+ Byte 4: 0110 0011 = 63
=> biểu diễn hex: 45 6D 8C 63
Bài 2:
Cho hai số 02 byte có dấu:
A = AE:49 (h)
B = 432xx (10)
a. Tính A + B và kiểm tra tràn số
Số A là số nguyên có dấu 2 byte: A = AE(h)
Số B là số nguyên có dấu 2 byte: B = 43XX(10)
Thay XX = 45: B = 4345(10)
Số C:C = B - 123.45
A = 1111 1111 1010 1110
=> A= -82
B= 0001 0001 1111 1001
1, Tính A+B và kiểm tra tràn số:
A+B= 0001 0001 1011 1001
Chuyển sang hệ thập phân: 4263 nằm trong phạm vi => không xảy ra tràn số
2, Tính A-B và kiểm tra tràn số.
A-B= A+ (-B)= 1110 1110 0000 1001
Chuyển sang số thập phân: -4427 nằm trong phạm vi [-32768, +32767]
=> không xảy ra tràn số
3, Tính A x B và kiểm tra tràn số
A x B = (-82) x 4345 = -356290
|A x B| = 356290 > 32767 => bị tràn số
4, C = B - 123.45 dưới dạng IEEE 754
C= 4345 - 123.45 = 4221.55
=> C= 0 10001011 00000110110001100011
Gộp thành 4 byte:
- Byte 1: 0100 0101 = 45
- Byte 2: 1000 0011= 83
- Byte 3: 0110 1100 = 6C
- Byte 4: 0110 0011 = 63
=> Biểu diễn Hex: 45 83 6C 63
Bài 3
a
2
+b
2
+ab
(
a+2b
)
a b
2
Cho biểu thức: C=
Các lệnh CPU thực hiện
1. LOAD a
2. MUL b → b²
3. LOAD a
4. MUL b → ab
5. LOAD a
6. ADD 2b
7. MUL ab(a+2b)
8. LOAD ab²
9. SUB
10.ADD các thành phần → C
Kết quả lưu tại ô nhớ BC: YY (h).
Bài 4
Cho lệnh:
ADD #4A(h), 4A
Quy trình CPU thực hiện
1. Nạp toán hạng tức thời #4A vào ALU
2. Đọc dữ liệu tại ô nhớ 4A
3. Thực hiện phép cộng
4. Ghi kết quả về ô nhớ 4A
→ Giá trị mới tại ô nhớ 4A bằng: Giá trị cũ tại 4A + 4A (h)
Bài 5
1, Vẽ chip nhớ 16KB / 8 bit
Phân tích:
16KB = 16 × 1024 = 2¹⁴ ô nhớ
Mỗi ô nhớ: 8 bit (1 byte)
→ Cần 14 đường địa chỉ (A0 – A13)
8 đường dữ liệu (D0 – D7)
2, Mô hình chip nhớ 16KB/8bit:
┌───────────────────────────┐
A0 ────│ │
A1 ────│ │
... │ CHIP NHỚ │
A13 ───│ 16KB / 8 BIT │
│ │
CS ────│ Chip Select │
RD ────│ Read │
WR ────│ Write │
│ │
D0 ───│ │
D1 ───│ │
... │ │
D7 ───│ │
└───────────────────────────┘
Sơ đồ bộ nhớ 8KB/8bit
┌───────────────────────────┐
A0 ──────│ │
A1 ──────│ │
... │ CHIP 16KB/8bit │
A12 ─────│ │
│ │
A13 ──── │ CS (chọn 1/2 bộ nhớ) │
│ │
RD ──────│ RD │
WR ──────│ WR │
│ │
D0 ─────│ │
... │ │
D7 ─────│ │
└───────────────────────────┘
Kết luận: Bộ nhớ thu được: 8KB / 8bit
3, Sơ đồ tổng bộ nhớ 48KB / 16bit
RD, WR (chung)
┌──────────────┴──────────────┐
│ │ │
CS0 │ CS1│ CS2 │
│ │ │
┌──────▼──────┐ ┌────▼ ┐ ┌──────▼──────┐
│ 16KB/16bit │ │16KB/16bit │ │ 16KB/16bit │
│ (2 chip) │ │(2 chip) │ │ (2 chip) │
└─────────────┘ └──────────┘ └─────────────┘
Tóm tắt:
Chip cơ sở: 16KB/8bit
Bộ nhớ 8KB/8bit: 1 chip, dùng 1/2
Bộ nhớ 48KB/16bit: 6 chip
Ghép song song để tăng bit
Ghép nối tiếp để tăng dung lượng
Bài 6:
a) Xác định thứ tự cấp phát CPU & vẽ hình
FIFO (FCFS)
Không phân quyền, xử lý theo thứ tự đến
Biểu đồ Gantt
0 9 12 14 18 30 34
| P1 | P2 | P3 | P4 | P2 | P5 |
SJF không độc quyền (Non-preemptive)
Chọn tiến trình có CPU nhỏ nhất, không ngắt giữa chừng
Biểu đồ Gantt
0 9 12 16 22 34
| P1 | P2 | P3 | P2 | P4 | P5
SJF độc quyền (Preemptive – SRTF)
Luôn chọn tiến trình thời gian còn lại nhỏ nhất
Biểu đồ Gantt
0 3 7 11 15 19 28 34
|P1 |P2 |P3 |P2 |P5 | P1 | P4 |
Giải thích:
P2 bị ngắt → P3 chiếm CPU
P5 đến có CPU nhỏ → chạy trước P1, P4
Round Robin (RR, quantum = 3)
Biểu đồ Gantt
0 3 6 9 12 15 18 21 24 27 30 33 34
|P1|P2|P1|P3|P4|P2|P5|P1|P4|P5|P4|
b) Thời gian chờ của từng tiến trình
FIFO
Tiến trình Thời gian chờ
P1 0
P2 3
P3 5
P4 6
P5 15
SJF không độc quyền
Tiến trình Thời gian chờ
P1 0
P2 3
P3 5
Tiến trình Thời gian chờ
P4 10
P5 7
Round Robin (q=3)
Tiến trình Thời gian chờ
P1 15
P2 7
P3 2
P4 14
P5 8
Thời gian chờ trung bình
Thuật toán Thời gian chờ TB
FIFO 5.8
SJF không độc quyền 5.0
SJF độc quyền 5.6
RR (q=3) 9.2
Kết luận
Thuật toán có thời gian chờ trung bình nhỏ nhất: SJF không độc quyền

Preview text:

BÀI KIỂM TRA QUÁ TRÌNH

Môn học: KTMT & HĐH

Thời gian làm bài: 360ph

I. Thông tin sinh viên

STT

Họ và tên

Lớp tín chỉ

Lớp niên chế

Mã số sinh viên

45

Vũ Mai Hương

41.1.LT2

CQ62/41.02

247340405400062

II. Bài làm

Bài 1:

Đề bài cho:

  • Số A là số nguyên không dấu 2 byte: A = 43(h)
  • Số B là số nguyên không dấu 2 byte: B = 23XX(10)
  • Thay XX = 45: B = 2345(10)
  • Số C: C = B - 123.45

1, Tính A+ B và kiểm tra tràn số

Số A = 00000000 01000011

Số B = 00001001 101001

=> A+B= 0000 1001 0110 1100

Chuyển sang thập phân: 2412 < 65535

=> Không xảy ra tràn số.

2, Tính A x B và kiểm tra tràn số.

A x B = 67 x 2345= 157115 > 65535 => Tràn số

3, Biểu diễn C= B - 123.45 dưới dạng IEE 754

Số cần biểu diễn: C= 2345 -123.45 = 2221.55

=> C= 010001010 00010101101100011000110

- Gộp thành 4 byte (HEX)

+ Byte 1: 0100 0101 = 45

+ Byte 2: 0110 1101 = 6D

+ Byte 3: 1000 1100 = 8C

+ Byte 4: 0110 0011 = 63

=> biểu diễn hex: 45 6D 8C 63

Bài 2:

Cho hai số 02 byte có dấu:

  • A = AE:49 (h)
  • B = 432xx (10)

a. Tính A + B và kiểm tra tràn số

Số A là số nguyên có dấu 2 byte: A = AE(h)

Số B là số nguyên có dấu 2 byte: B = 43XX(10)

Thay XX = 45: B = 4345(10)

Số C:C = B - 123.45

A = 1111 1111 1010 1110

=> A= -82

B= 0001 0001 1111 1001

1, Tính A+B và kiểm tra tràn số:

A+B= 0001 0001 1011 1001

Chuyển sang hệ thập phân: 4263 nằm trong phạm vi => không xảy ra tràn số

2, Tính A-B và kiểm tra tràn số.

A-B= A+ (-B)= 1110 1110 0000 1001

Chuyển sang số thập phân: -4427 nằm trong phạm vi [-32768, +32767]

=> không xảy ra tràn số

3, Tính A x B và kiểm tra tràn số

A x B = (-82) x 4345 = -356290

|A x B| = 356290 > 32767 => bị tràn số

4, C = B - 123.45 dưới dạng IEEE 754

C= 4345 - 123.45 = 4221.55

=> C= 0 10001011 00000110110001100011

Gộp thành 4 byte:

- Byte 1: 0100 0101 = 45

- Byte 2: 1000 0011= 83

- Byte 3: 0110 1100 = 6C

- Byte 4: 0110 0011 = 63

=> Biểu diễn Hex: 45 83 6C 63

Bài 3

Cho biểu thức: C=

Các lệnh CPU thực hiện

  1. LOAD a
  2. MUL b → b²
  3. LOAD a
  4. MUL b → ab
  5. LOAD a
  6. ADD 2b
  7. MUL ab(a+2b)
  8. LOAD ab²
  9. SUB
  10. ADD các thành phần → C

Kết quả lưu tại ô nhớ BC: YY (h).

Bài 4

Cho lệnh:

ADD #4A(h), 4A

Quy trình CPU thực hiện

  1. Nạp toán hạng tức thời #4A vào ALU
  2. Đọc dữ liệu tại ô nhớ 4A
  3. Thực hiện phép cộng
  4. Ghi kết quả về ô nhớ 4A

→ Giá trị mới tại ô nhớ 4A bằng: Giá trị cũ tại 4A + 4A (h)

Bài 5

1, Vẽ chip nhớ 16KB / 8 bit

Phân tích:

16KB = 16 × 1024 = 2¹⁴ ô nhớ

Mỗi ô nhớ: 8 bit (1 byte)
→ Cần 14 đường địa chỉ (A0 – A13)
8 đường dữ liệu (D0 – D7)

2, Mô hình chip nhớ 16KB/8bit:

┌───────────────────────────┐

A0 ────▶│ │

A1 ────▶│ │

... │ CHIP NHỚ │

A13 ───▶│ 16KB / 8 BIT │

│ │

CS ────▶│ Chip Select │

RD ────▶│ Read │

WR ────▶│ Write │

│ │

D0 ◀───▶│ │

D1 ◀───▶│ │

... │ │

D7 ◀───▶│ │

└───────────────────────────┘

Sơ đồ bộ nhớ 8KB/8bit

┌───────────────────────────┐

A0 ──────▶│ │

A1 ──────▶│ │

... │ CHIP 16KB/8bit │

A12 ─────▶│ │

│ │

A13 ────▶ │ CS (chọn 1/2 bộ nhớ) │

│ │

RD ──────▶│ RD │

WR ──────▶│ WR │

│ │

D0 ◀─────▶│ │

... │ │

D7 ◀─────▶│ │

└───────────────────────────┘

Kết luận: Bộ nhớ thu được: 8KB / 8bit

3, Sơ đồ tổng bộ nhớ 48KB / 16bit

RD, WR (chung)

┌──────────────┴──────────────┐

│ │ │

CS0 │ CS1│ CS2 │

│ │ │

┌──────▼──────┐ ┌────▼ ┐ ┌──────▼──────┐

│ 16KB/16bit │ │16KB/16bit │ │ 16KB/16bit │

│ (2 chip) │ │(2 chip) │ │ (2 chip) │

└─────────────┘ └──────────┘ └─────────────┘

Tóm tắt:

Chip cơ sở: 16KB/8bit

Bộ nhớ 8KB/8bit: 1 chip, dùng 1/2

Bộ nhớ 48KB/16bit: 6 chip

Ghép song song để tăng bit

Ghép nối tiếp để tăng dung lượng

Bài 6:

a) Xác định thứ tự cấp phát CPU & vẽ hình

FIFO (FCFS)

Không phân quyền, xử lý theo thứ tự đến

Biểu đồ Gantt

0 9 12 14 18 30 34

| P1 | P2 | P3 | P4 | P2 | P5 |

SJF không độc quyền (Non-preemptive)

Chọn tiến trình có CPU nhỏ nhất, không ngắt giữa chừng

Biểu đồ Gantt

0 9 12 16 22 34

| P1 | P2 | P3 | P2 | P4 | P5

SJF độc quyền (Preemptive – SRTF)

Luôn chọn tiến trình thời gian còn lại nhỏ nhất

Biểu đồ Gantt

0 3 7 11 15 19 28 34

|P1 |P2 |P3 |P2 |P5 | P1 | P4 |

Giải thích:

  • P2 bị ngắt → P3 chiếm CPU
  • P5 đến có CPU nhỏ → chạy trước P1, P4

Round Robin (RR, quantum = 3)

Biểu đồ Gantt

0 3 6 9 12 15 18 21 24 27 30 33 34

|P1|P2|P1|P3|P4|P2|P5|P1|P4|P5|P4|

b) Thời gian chờ của từng tiến trình

FIFO

Tiến trình

Thời gian chờ

P1

0

P2

3

P3

5

P4

6

P5

15

SJF không độc quyền

Tiến trình

Thời gian chờ

P1

0

P2

3

P3

5

P4

10

P5

7

Round Robin (q=3)

Tiến trình

Thời gian chờ

P1

15

P2

7

P3

2

P4

14

P5

8

Thời gian chờ trung bình

Thuật toán

Thời gian chờ TB

FIFO

5.8

SJF không độc quyền

5.0

SJF độc quyền

5.6

RR (q=3)

9.2

Kết luận

Thuật toán có thời gian chờ trung bình nhỏ nhất: SJF không độc quyền