



















Preview text:
  lOMoARcPSD| 41967345
Đề cương ôn tập môn Cấu trúc máy tính và hệ điều hành   RcPSD| 4196734 I.Lý thuyết 
1. Kể tên các thành phần cơ bản của máy tính PC? CPU80286 là dòng CPU bao  nhiêu bit? Vì sao?  Gợi ý: 
- Các thành phần cơ bản của máy tính gồm 5 thành phần: CPU, bộ nhớ 
( ROM,RAM, Cache, bộ nhớ ngoài),  
- CPU 80286 là loại 16 bit (độ rộng của dữ liệu hoặc mã lệnh là 16 bit) do vậy 
mỗi lần đọc dữ liệu trong ô nhớ sẽ có kích thước 2 bytes. 
2. Hệ thống Bus gồm những loại Bus nào? Trong các loại Bus, Bus nào có vai 
trò quyết định kích thước của bộ nhớ RAM? Bus nào có vai trò quyết định 
kích thước giá trị trong ô nhớ?  Gợi ý: 
- Hệ thống Bus gồm 3 loại bus hỗ trợ máy tính trong việc vào/ra dữ liệu: Bus dữ 
liệu (2 chiều), bus địa chỉ (1 chiều: chiều ra từ CPU) và bus điều khiển (2 chiều) 
- Bus địa chỉ có vai trò quyết định kích thước của bộ nhớ RAM  
- Bus dữ liệu quyết định kích thước giá trị trong ô nhớ 
3. Kể tên các thanh ghi đoạn trong chế độ thực của CPU 80286? Khi trong 
chương trình có khai báo biến nhớ, thì biến nhớ này sẽ nằm trong đoạn nào?  Gợi ý 
- Trong chế độ thực các thanh ghi đoạn: Thanh ghi đoạn mã lệnh CS, thanh ghi 
đoạn dữ liệu DS, thanh ghi ghi đoạn ngăn xếp SS và thanh ghi đoạn mở rộng  ES 
- Khi trong chương trình có khai báo biến nhớ, thì các biến này sẽ nằm trongđoạn  dữ liệu DS 
4. Kể tên các thanh ghi đa năng. Khi CPU thực hiện lệnh với số lần lặp là 255 
thì giá trị của thanh ghi CX =?  Gợi ý:  
- Các thanh ghi đa năng trong CPU 80286 là: AX, BX,CX,DX 
- Khi thực hiện lệnh lặp 255 (nghĩa là giá trị 255 đang ở hệ cơ số 10 chúng ta 
cần đổi sang hệ 16 bằng cách chia liên tiếp cho 16 lấy phần dư và lấy theo 
chiều từ dưới lên => 25510 = FFh vì CX là thanh ghi 16 bit mà FF là 8 bit nên 
cần thêm 2 giá trị 0 cho đủ 16 bit) do vậy CX = 00FFh  1      lOMoARcPSD| 41967345
5. H愃̀y liệt kê các phương pháp (chế độ) định vị toán hạng trong CPU 80286? Đối 
với kiểu định vị cơ sở chỉ số, có những thanh ghi nào tham gia vào quá trình định  vị?  Gợi ý:  
- Các phương pháp định vị toán hạng trong CPU 80286: 
+ Định vị tức thời 
+ Định vị thanh ghi 
+ Định vị trực tiếp 
+ Định vị gián tiếp  + Định vị cơ sơ 
+ Định vị chỉ số 
+ Định vị cơ sở chỉ số 
+Định vị đầy đủ 
- Đối với kiểu định vị cơ sở chỉ số có 4 thanh ghi tham gia vào quá trình định vị:  BX, BP, SI và DI 
6. Trình bày vai trò của bộ đồng xử lý và CMOS trong kiến trúc cơ bản của máy tính  PC?  Gợi ý 
- Bộ đồng xử lý trợ giúp CPU xử lý trợ giúp CPU xử lý các phép tính số học có 
giá trị là dấu chấm động, các phép tính logarit và lượng giác với tốc độ 
nhanh và độ chính xác cao. 
- Thiết bị CMOS gồm 2 bộ phận chính: Đồng hồ thời gian thực và RAM CMOS. 
+ Đồng hồ thời gian thực cung cấp thông tin thời gian thực như: năm – tháng 
– ngày, giờ - phút – giây. 
+ RAM –CMOS: chứa thông tin về cấu hình hệ thống  
7. Kể tên các thiết bị giao diện trong máy tính PC? Vì sao cần phải có thiết bị giao  diện?  Gợi ý: 
- Các thiết bị giao diện tring máy tính PC: 
+ Thiết bị giao diện màn hình CRTC 
+Thiết bị giao bàn phím KC8042 
+ Thiết bị giao diện nối tiếp UART 
+ Thiết bị giao diện song song PPI 
+ Thiết bị giao diện đĩa cứng HDC 
+ (Thiêt bị giao diện đĩa mềm – tuy nhiên ngày nay không còn sử dụng) 
- Lý do cần có thiết bị giao diện là do có sự khác biệt rất lớn về dạng thức truyền 
tải và tốc độ xử lý thông tin giữa đơn vị xử lý trung tâm và các thiết bị ngoại vi. 
8. Giải thích ý nghĩa các chân tín hiệu INT, NMI, INTA, HOLD, HLDA của CPU 
80286. Căn cứ vào tín hiệu nào chúng ta biết được CPU 80286 làm việc với bộ 
nhớ hay thiết bị vào/ra? MI/IO  Gợi ý trả lời 
- INT: tín hiệu yêu cầu ngắt cứng, có thể bị che khi bit cờ IF trong thanh ghi  2      lOMoARcPSD| 41967345 FLAGS 
- INTA xuất phá từ CPU truyền đến PIC để trả lời yêu cầu ngắt - NMI: yêu cầu 
ngắt không che được bằng cờ IF. 
- HOLD: là tín hiệu từ bên ngoài yêu cầu CPU “thả nổi” hệ thống BUS (nhường  BUS). 
- HLDA: CPU trả lời đồng ý nhường Bus 
- MI/IO cho biết CPU làm việc với bộ nhớ hay thiết bị vào/ra  
9. Giải thích ý nghĩa các chân tín hiệu Vcc, GND, CLK, RST. Kể tên các chân của 
CPU phục vụ cho mục đích ngắt. 
Gợi ý trả lời 
- CLK: tín hiệu xung tạo nhịp thời gian cơ sở cho đơn vị xử lý trung tâm. 
- Vcc: cung cấp điện áp dương nguồn cho CPU (Cung cấp nguồn nuôi +5V cho  vi xử lý) 
- GND tạo nguồn điện cho CPU hoạt động 
- RST: tín hiệu khởi động hệ thống ( đưa mạch logic bên trong CPU về trạng thái  ban đầu) 
- Các chân phục vụ ngắt: INT, NMI, INTA 
10. Kể tên các đơn vị chính tạo thành cấu hình bên trong của CPU. Lệnh sau khi giải 
m愃̀ sẽ được chuyển tới cho đơn vị nào? 
Gợi ý trả lời  - 
CPU 80286 được cấu thành từ 4 đơn vị chính như sau: AU ( đơn  vị địa chỉ); 
BU (Đơn vị BUS); IU (Đơn vị lệnh); EU (đơn vi thực hiện)  - 
Lệnh sau khi giải mã sẽ được đưa tới đơn vị thực hiện EU 11. 
Trình bày vai trò của các đơn vị AU, BU, IU, EU của CPU80286.  Gợi ý trả lời  - 
Đơn vị BUS (BU) : thực hiện giao diện BUS, tạo ra và nhận vào các tín hiệu 
địa chỉ, điều khiển và dữ liệu và nhập lệnh từ bộ nhớ vào hàng đợi.  - 
Đơn vị lệnh IU : Đơn vị lệnh IU thực hiện giải mã lệnh và đưa vào hàng đợi.  - 
Đơn vị thực hiện EU : EU thực hiện lệnh đã được giải mã.   - 
Đơn vị địa chỉ AU : AU quản lý bộ nhớ trong cả hai chế độ làm việc : chế độ 
thực và chế độ bảo vệ.  
12. H愃̀y cho biết ý nghĩa của các bit cờ CF, ZF, IF, DF trong thanh ghi cờ FLAGS. 
Gợi ý trả lời 
- CF (Carry Flag) : cờ nhớ ; Nếu có hiện tượng nhớ từ bit cao nhất khi thực hiện 
phép tính thì CF = 1. 
- ZF (Zero Flag) : cờ zero. Nếu kết quả phép tính bằng không thì ZF = 1.  
- IF (Interrupt Flag) : cờ ngắt ; Nếu IF = 1, cho phép CPU phản ứng với tín hiệu  báo ngắt INT.  3      lOMoARcPSD| 41967345
- DF (Direction Flag): cờ hướng ; DF xác định hướng tăng hoặc giảm của các 
thanh ghi SI. DI khi thực hiện các lệnh thao tác xâu ký tự. 
13. H愃̀y cho biết ý nghĩa của các bit cờ CF, PF, SF, AF trong thanh ghi cờ FLAGS. 
Gợi ý trả lời 
- CF (Carry Flag) : cờ nhớ ; Nếu có hiện tượng nhớ từ bit cao nhất khi thực 
hiện phép tính thì CF = 1. 
- PF (Parity Flag) : cờ kiểm tra chẵn lẻ ; Nếu lượng các bit 1 trong kết quả chẵn  thì PF=1. 
- SF (Sign Flag): cờ dấu. Nếu kết qủa âm (bít cao nhất của kết quả có giá trị 1)  thì SF= 1. 
- AF (Auxiliary Flags) : cờ nhớ phụ. Cờ AF được sử dụng trong các phép tính 
số học với các số BCD (Binary Cođe Decimal). Nếu có nhớ hay có mượn đối 
với 4 bit thấp thì AF= 1. 
14. Kể tên các thanh ghi địa chỉ trong CPU 802856. Nêu vai trò của thanh ghi SP.Gợi  ý trả lời 
- Các thanh ghi địa chỉ BP, SI, DI, SP : là các thanh ghi 16 bit 
- SP (Stack Pointer) : Con trỏ ngắn xếp SP chứa địa chỉ offset của ô nhớ trong 
đoạn ngăn xếp. SP luôn trỏ đến đỉnh ngăn xếp.  
15. Kể tên các nhóm thanh ghi trong CPU80286. Cho biết vai trò của thanh ghi IP. 
Gợi ý trả lời 
- Các nhóm thanh ghi: nhóm thanh ghi đa năng (AX, BX, CX, DX); Các thanh 
ghi địa chỉ (BP, SI, DI, SP); Các thanh ghi đoạn (CS, DS, ES, SS); Các thanh 
ghi điều khiển và trạng thái (Con trỏ lệnh IP và thanh ghi cờ Flags và Thanh 
ghi trạng thái máy (MSW)); Các thanh ghi khác ( TR, LDT, GDT, IDT MSW) 
- Con trỏ lệnh IP (In struction Pointer): là thanh ghi 16 bit IP chứa địa chỉ offset 
của ô nhớ trong đoạn m愃̀ lệnh. Khi nhập lệnh thì IP tự động tăng dần và khi 
CPU nhập xong một lệnh thì IP trỏ đến ô nhớ chứa lệnh tiếp theo trong đoạn 
m愃̀ lệnh. Nội dung IP bị thay đổi bất thường khi CPU thực lệnh nhảy, lệnh gọi 
chương trình con hoặc bởi các cơ chế ngắt cứng và mềm. 
16. Định dạng địa chỉ logic là gì? Công thức tính địa chỉ vật lý. Địa chỉ offset 
đượchiểu như thế nào? Gợi ý trả lời 
- Địa chỉ logic là cặp địa chỉ địa chỉ đoạn : địa chỉ offset ( hay segment : offset . 
Trong đó địa chỉ segment là địa chỉ đoạn của đoạn nhớ chứa ô nhớ , offset là 
địa chỉ mang thông tin về độ lệch của địa chỉ ô nhớ so với địa chỉ nền đoạn  nhớ )  4      lOMoARcPSD| 41967345 - Công thức tính:  
Địa chỉ vật lý = Địa chỉ đoạn *10h + Địa chỉ offset  
= địa chỉ đoạn *16 + địa chỉ off set 
= địa chỉ đoạn *100002 + địa chỉ offset 
= địa chỉ nền đoạn + địa chỉ offset 
17. Trình bày đặc điểm của FAT32  Gợi ý 
- Sử dụng không gian địa chỉ 32 bit nên FAT32 hỗ trợ nhiều cluster trên một partition hơn, 
do vậy không gian đĩa cứng được tận dụng nhiều hơn.  
- Hỗ trợ kích thước của phân vùng từ 2GB lên 2TB và chiều dài tối đa của tên tập tin được 
mở rộng đến 255 ký tự.  
- Tính bảo mật và khả năng chịu lỗi (Fault Tolerance) không cao. 
18. Trình bày đặc điểm của NTFSGợi ý 
- Không gian địa chỉ 64 bit, khả năng thay đổi kích thước của cluster độc lập với dung lượng  đĩa cứng,  
- Hầu như đã loại trừ được những hạn chế về số cluster, kích thước tối đa của tập tin trên 
một phân vùng đĩa cứng. 
- NTFS sử dụng bảng quản lý tập tin MFT (Master File Table) thay cho bảng FAT nhằm 
tăng cường khả năng lưu trữ, tính bảo mật cho tập tin và thư mục, khả năng mã hóa dữ 
liệu đến từng tập tin. 
- Có khả năng chịu lỗi cao, cho phép người dùng đóng một ứng dụng “chết” (not 
responding) mà không làm ảnh hưởng đến những ứng dụng khác.  
- NTFS lại không thích hợp với những ổ đĩa có dung lượng thấp (dưới 400 MB)  
19. Trình bày các yếu tố ảnh hưởng đến việc cài đặt hệ điều hành windows.Gợi  ý: 
Khi tiến hành cài đặt máy tính ta phải xét đến các yếu tố ảnh hưởng tới quá trình cài đặt, 
sử dụng và bảo trì hệ thống sau này. Các yếu tố đó bao gồm:  - Cấu hình máy 
- Mục đích và yêu cầu sử dụng:  
- Hiểu biết của người sử dụng về máy tính: Các giai đoạn cài đặt hệ thống 
20. Nêu các giai đoạn cài đặt máy tính sử dụng hệ điều hành windows  Gợi ý: 
Việc cài đặt hệ thống có thể chia làm 4 giai đoạn: 
- Phân hoạch ổ đĩa; 
- Cài đặt hệ điều hành và các phần mềm điều khiển thiết bị 
- Cài đặt các phần mềm bảo vệ và phần mềm ứng dụng, tối ưu hệ thống -  Tạo  File 
Backup để sao lưu hệ thống, đóng băng hệ thống. 
21. Trình bày quy trình tối ưu máy tính cài đặt hệ điều hành windowsGợi ý:  5      lOMoARcPSD| 41967345
- Tắt các ứng dụng chạy nền không cần thiết 
- Gỡ bỏ các ứng dụng khởi động cùng Windows 
- Sử dụng phần mềm tối ưu hệ thống hoặc tiện ích dọn dẹp ổ đĩa tích disk cleanup hợp trong 
Windows để xóa các file nháp, tăng dung lượng đĩa cứng, chạy phần mềm chống phân 
mảnh ổ đĩa Disk Defragmenter (chỉ dùng khi sử dụng ổ đĩa cứng HDD) 
- Tắt các hiệu ứng đặc biệt về video, hình ảnh của Windows 
22. Trình bày các yêu cầu để hệ thống máy tính được bảo vệ an toàn  Gợi ý 
- Bật tính năng Update của windows theo lịch biểu để cập nhật các bản vá lỗi. 
- Cài đặt một phần mềm diệt virus đủ mạnh, thường xuyên cập nhật cơ sở dữ liệu virus  
- Cấu hình đầy đủ cho phần mềm diệt virus bảo vệ thời gian thực và thiết lập tường lửa 
trong hệ điều hành windows. 
- Luôn quét virus với các thiết bị lưu trữ ngoài được gắn vào máy tính 
- Tạo bản sao lưu ổ đĩa chứa hệ điều hành và các ổ đĩa chứa dữ liệu quan trọng 
- Cài đặt một phần mềm lưu trữ online ( Goolge Drive, Dropbox…) để liên tục lưu trữ các 
tại liệu quan trọng. 
23. Trình bày đặc điểm của bộ nhớ ROM 
Gợi ý trả lời 
ROM: ROM là bộ nhớ chỉ đọc. Dữ liệu trong ROM được duy trì ngay cả khi không có nguồn 
điện nuôi. ROM chứa các phần mềm cơ bản sau: 
Các chương trình kiểm tra hệ thống (quá trình POST):  
Chương trình xác lập cấu hình hệ thống. 
Chương trình quét ROM mở rộng  
Chương trình đọc cung khởi động  
Các chương trình điều khiển các thiết bị vào-ra cơ bản của máy tính 
24. Trình bày đặc điểm của bộ nhớ RAM 
Gợi ý trả lời 
RAM: RAM là bộ nhớ thao tác. Bộ nhớ RAM có chức năng chứa các phần mềm của hệ thống 
(hệ điều hành), phần mềm và dữ liệu của một hoặc nhiều chương trình đang hoạt động (chương  trình ứng dụng).  
Các dạng bài tập - LƯU Ý ĐÂY CHỈ LÀ DẠNG BÀI THI 
Bài 1: Thực hiện phép tính và chuyển đổi sau  1. 15010 = ?2,8,16 
 Lấy 150 chia liên tiếp 2/8/16 lấy dư lấy dưới lên  6      lOMoARcPSD| 41967345 2. 1101111001.112 =?10,8,16 
=> 1101111001.112 =  1*20 + 0*21 + 0*2 ==== 
- chuyển từ 2 – sang hệ 8 nhóm 3 bit lại  
- Chuyển từ 2 sang hệ 16 – nhóm 4 bit lại   3. 110.2510 = ?2,8,16 
- Phân nguyên chia liên tiếp cho 2,8, 16 Phần thập phân nhân liên tiếp với 2,8 và 16  4. AC8Eh + 7D9Fh  = ? 
=> A =10, B= 11, C= 12, D=13, E=14, F= 15 
Nếu cộng lớn hơn 16 thì trừ 16 và nhớ 1 sang bên cạnh  5. FC0416 = ?2   
- Chuyển từ hệ 16 sang hệ 2 các đối chiếu hệ 16 với các bit nhị phân tương ứng   6538 = ?2   
- - Chuyển từ hệ 8 sang hệ 2 các đối chiếu hệ 16 với các bit nhị phân tương ứng 
145.12510= ?2 100011010100112 = ?16,8 
6. Biểu diễn số 9710 và -11510 theo m愃̀ bù 2. 
- Bù 2 dùng để biểu diễn số âm cần 8 bit . 
- Nếu số dương chuyển sang bù 2 đổi sang nhị phân và biểu diễn đủ 8 bitSố âm biểu  diễn bù 2 qua 3 bước: 
+ B1: chuyển đổi hệ 10 sang 2 ( dùng 8 biết và chỉ ghi số dương bỏ dấu) 
+ B2: Chuyển sang bù 1 bằng cách: đổi các bit 0 ->1 và 1->0 
Bước 3: lấy bù 1 cộng 1 = bù 2=> kết luận   
6. H愃̀y biểu biễn số có dấu chấm động -123.6875(10) theo chuẩn IEEE754 đơn giản 
 B1 chuyển đổi hệ 10 sang hệ 2 
 B2 chuẩn hóa ( Tịnh tiến dấu chấm về ngay sau soos1 thành 1. ……*2x 
 Bước 3 Áp dụng chuẩn IEEE &54 đơn giản  S=1 nếu số âm S=0  nếu số dương E- 127 =x => E= ???  F = …..  Kết luận ….  7      lOMoARcPSD| 41967345
Bài 2:  H愃̀y chỉ ra các căp địa chỉ logic đúng và giải thích vì sao đúng?̣    SS:IP  SS:BX SS:BP  SS: SI  SS:DI  SS:SP    ES: IP  ES:BXES:BP  ES:SI  ES:DI  ES:SP    DS:IP  DS:BXDS:BP DS:SI  DS:DI DS:SP  Gợi ý 
CS: IP => Vì IP xác định địa chỉ offset của ô nhớ trong đoạn CS 
DS:BX=> Vì BX các định địa chỉ offset của ô nhớ trong đoạn DS  DS: BP  SS:BP 
 Vì BP xác định địa chỉ offset của ô nhớ trong đoạn dữ liệu và đoạn ngăn xếp 
SS: SP => SP xác định địa chỉ offset của ô nhớ trong đoạn ngăn xếp 
DS:SI => SI xác định địac chỉ offset của ô nhớ trong đoạn dữ liệu  DS:DI  DS:DI 
 DI xác định địa chỉ offset của ô nhớ trong đoạn dữ liệu và đoạn mở rộng  Bài 3 
a. Tính địa chỉ vật lý và chỉ ra 5 cặp địa chỉ logic mới tương ứng với SS = AD89h và SP =  B6AEh. 
b. Tính địa chỉ vật lý của ô nhớ có địa chỉ logic AB78h:A59Dh. Từ địa chỉ vật lý vừa tính 
chỉ ra 5 cặp địa chỉ logic mới tương ứng.   Áp dụng công thức 
 Địa chỉ vật lý = địa chỉ đoạn*10h+địa chỉ offset 
c. Với CPU 80286, trong chế độ thực địa chỉ offset của ô nhớ có giá trị lớn nhất là bao 
nhiêu? Nếu AH có giá trị là 16d, AL có giá trị là 14d thì AX có giá trị là bao nhiêu? 
- d là hệ cơ số 10 nên cần chuyển đổi sang hệ hexa bằng cách chia cho 16  - AX = AHAL  - AH =16d= 10h  - AL =14d = 0Eh  - => AX= 100Eh 
d. Khi thực hiện các câu lệnh/thao tác sau sẽ tác động vào bit cờ nào?  1. ADCh+ BA2h => CF, AF  2. EFCDh- EFCDh => ZF  8      lOMoARcPSD| 41967345
3. Khi thực hiện các lệnh thao tác với xâu ký tự làm giá trị trong các thanh ghi SI/DI  tăng hoặc giảm. => DF  4. 10002 – 11112 => SF 
Bài 4: H愃̀y xác định phương pháp định vị toán hạng cho toán hạng nguồn trong các câu lệnh  ASM sau đây: 
1- Mov AX,1234h; => định vị tức thời, chuyển giá trị 1234h vào thanh ghi AX 
2- Mov BX,[1234h]; -> Định vị trực tiếp, chuyển nội dung của ô nhớ có địa chỉ DS:  1234h vào thanh ghi BX 
3- Mov AX,BX; -> định vị thanh ghi chuyển giá trị của thanh ghi BX vào thanh ghi  AX 
4- Mov AX,[BX]; => Định vị gián tiếp, chuyển nội dung của ô nhớ có địa chỉ DS: BX  vào thanh ghi AX 
5- Mov [1234],BX; -> Định vị thanh ghi, chuyển giá trị của thanh ghi BX vào ô nhớ có  địa chỉ DS: 1234h 
6- Mov AX,[SI]; => Định vị gián tiếp, chuyển nội dung của ô nhớ có địa chỉ DS: SI  vào thanh ghi AX 
7- Mov AX,[DI + 3h]; => Định vị chỉ số, chuyển nội dung của ô nhớ có địa chỉ DS:  DI+3h vào thanh ghi AX 
8- Mov DX,[SP+SI]; => Lỗi 
9- Mov BX,[BP+DI+3h]; => định vị đầy đủ, chuyển nội dung của ô nhớ có địa chỉ DS:  BP+DI+3h vào thanh ghi BX 
10- Mov 1234h,AX => lỗi Bài 5. Thực hiện các yêu cầu sau: 
a. Tạo tài khoản cho một user có tên đăng nhập là họ tên của sinh viên, bao gồm trường 
comment, thư mục làm việc (trùng tên với tên user), mật khẩu đăng nhập (Thí dụ, sv 
Trần Binh An thì tên đăng nhập an_tb). 
=> $ sudo useradd –c ‘Tran Binh An’ –d /home/an_tb an_tb  $ sudo mkdir /home/an_tb 
$ sudo chown an_tb /home/an_tb  $sudo passwd an_tb 
# kiểm tra tài khoản tạo => $cat /etc/passwd hoặc tail -3 /etc/passwd 
b. Tạo nhóm người dùng có tên CS. Thêm user trong câu a là thành viên phụ của nhóm  CS.  9      lOMoARcPSD| 41967345 => $ sudo groupadd CS 
# tạo nhóm người dùng kiểm tra kết quả nhóm bằng câu lệnh tail -3  /etc/group 
$ sudo usermod –G CS an_tb # Thêm tài khoản người dùng an_tb là thành viên phụ usermod là 
sửa tài khoản – Kiểm tra kết quả bằng câu lệnh tail -3 /etc/group 
c. Chuyển user trong câu a thành admin có quyền sudo. Xoá nhóm CS và tài khoản vừa 
tạo trong câu a khỏi hệ thống. 
=> $ sudo usermod –aG sudo an_tb # chuyển user thành admin có quyền sudo 
$ sudo groupdel CS #xóa nhóm CS $tail -3 /etc/group 
$sudo userdel –r an_tb # xóa tài khoản người dùng, kiểm tra bằng câu lệnh tail -3 /etc/paswd 
Bài 6. Thực hiện các lệnh sau, biết rằng khi đăng nhập vào hệ thống đứng tại thư mục  /home/ubuntu:  Gợi ý 
- Có 3 nhóm truy cập u(owner) quyền của user mà chử sợ hữu của file này, g(group) quyền sở 
hữu của users thuộc group mà chủ sở hữu của file này, o (other): quyền của tất cả các user khác 
trên máy, a(all) tất cả user, ‘+” là thêm quyền, dấu ‘- ‘ là bớt quyền. Có các quyền:  
 -r ( read) - quyền đọc được biểu diễn bằng số 4 
- w(write) – quyền viết được biểu diễn bằng số 2 
-x (execute) – quyền thực thi được biểu diễn bằng số 1  # chmod 
Ví dụ file test1 có thông số như sau  • 
owner có quyền rw- = 1102 =68  • 
group có quyền r--=1002= 48 
other có quyền r--= 1002 = 48 
 $chmod u=rw,go=r test1 hoặc  $chmod 644 test1  Ví dụ 2: 
 Tạo thư mục HDH, và thiết lập quyền cho thư mục HDH biết u= đọc và thực thi, g có 
quyền viêt, o có quyền viết và thực thi ( u=4+1=5, g=2, 0= 2+1=3)   $mkdir HDH   $chmod 523 HDH 
Thông số file test2 như sau  10      lOMoARcPSD| 41967345 • 
owner có quyền r+w+x = 4+2+1 = 7  • 
group có quyền r+-+x = 4+0+1 = 5 other có quyền r+-+x = 4+0+1 = 5   chmod u=rwx, go=rx test2   chmod 755 test2 
Thông số file test3 như sau  • 
owner có quyền r+w+x = 4+2+1 = 7  • 
group có quyền r+w+- = 4+2+0 = 6  • 
other có quyền r+w+- = 4+2+0 = 6 
 chmod u=rwx, go=rw test3   chmod 766 test3 
a. Tạo thư mục EXAM trong thư mục hiện hành, thiết lập quyền truy cập cho thư mục này sao 
cho u=rw-, g=r-x, o=r--. Gợi ý  $mkdir EXAM  $chmod 654 EXAM  
b. Tạo file thidu1.txt trong thư mục EXAM bằng lệnh cat và nhập nội dung "Đây là bài kiểm 
tra số 2, không được mở tài liệu trong quá trình làm bài" Gợi ý   $cd EXAM   $cat > thidu1.txt 
Đây la bai kiểm tra số 2, không được mở tài liệu trong quá trình làm bài  Ctrl +d 
c. Tạo thư mục DIR1 trong thư mục /home và sao chép file thidu1.txt trong câu b sang thư 
mục DIR1 vừa tạo.  Gợi  ý   $cd ..  $mkdir DIR1  
$cp –r /home/ubuntu/EXAM/thidu1.txt /home/ubutu/DIR1 
d. Viết lệnh xem nội dung thư mục thư mục DIR1 đ愃̀ tạo trong câu c.  Gợi ý $ls  DIR1 
e. Viết lệnh sao chép tất cả các file có đuôi .txt trong thư mục hiện hành sang thư mục DIR1 
trong đ愃̀ tạo câu c. Gợi ý $cp *.txt DIR1  11      lOMoARcPSD| 41967345
f. Xoá thư mục EXAM và thư mục DIR1 vừa tạo.  Gợi ý:  $rm –r EXAM   $rm –r DIR1 
Bài 7. Thực hiện các lệnh sau, biết rằng khi đăng nhập vào hệ thống đứng tại thư mục  /home/ubuntu: 
a. In ra màn hình cột tên user, groupid, commend, thư mục làm việc của các người dùng 
trong hệ thống. => /etc/passwd 
Gợi ý: Người dùng trong hệ thống sẽ được lưu trong /etc/passwd => khi dùng lệnh $cat  
/etc/passwd sẽ hiển thị ra các thông số 
Username: password:userId:groupId:comment:homedir:startup 
=>$cut /etc/passwd –d ‘:’ –f 1,4,5,6 
b. Cho file thidu2.txt trong thư mục hiện hành chứa nội dung sau:   
H愃̀y viết lệnh để loại bỏ các dòng trống, các dòng bị trùng lặp trong file và lưu kết vào file mới 
có tên thidu2_clean.txt.  Gợi ý  
- Dùng lệnh xóa các dòng sed 
+ Xóa dòng đầu tiên: sed ‘1d’ vd.txt 
+ Xóa dòng cuối cùng: sed ‘$d’ vd.txt 
+Xóa dòng cụ thể ví dụ dòng 2: sed ‘2d’ vd.txt 
+Xóa nhiều dòng liên tiếp: sed ‘2,4d’ vd.txt 
+ Xóa dòng trống trong file: sed ‘/^$/d’ vd.txt   $cat >thidu2.txt  Hell  12      lOMoARcPSD| 41967345 Hello  My name is Jenny  My name í Jenny  Goodbye  Goodbye  Hello  Goodbye  Ctrl +D 
$ sed ‘/^$/d’ thidu2.txt >> thidu1_clean.txt 
$uniq thidu1_clearn.txt >> thidu2_clean.txt 
d. Cho 2 file name.txt và diachi.txt như sau:  name.txt: 1 -  diachi.txt:  Hùng - MS01  Thái Nguyên  2 - Mạnh - MS02  Bắc Giang  3 - Hằng - MS03  Hà Nội 
H愃̀y viết lệnh để tạo ra file name_diachi.txt có cấu trúc như 
sau: name_diachi.txt: 1 - Hùng - MS01 @ Thái Nguyên 
2 - Mạnh - MS02 @ Bắc Giang  3 - Hằng - MS03 @ Hà Nội  $ cat > name.txt  1 – Hung – MS01  2 – Manh – MS02  3 – Hang – MS03  Ctrl +D  $cat > diachi.txt  Thai Nguyen  Băc Giang  Ha noi  Ctrl +D 
$paste –d ‘@’ name.txt diachi.txt  
>> name_diachi.txt  13      lOMoARcPSD| 41967345
Bài 8 Tạo tài khoản cho một user có tên đăng nhập là họ tên của sinh viên, bao gồm trường 
comment, thư mục làm việc (trùng tên với tên user), mật khẩu đăng nhập (Thí dụ, sv 
Nguyễn Thái An thì tên đăng nhập nt_an).  Gợi ý 
 $sudo useradd –c ‘ Nguyen Thai An ‘ –d /home/nt_an nt_an 
$sudo mkdir /home/nt_an 
$sudo chown nt_an /home/nt_an  $sudo passwd nt_an  
b. Tạo nhóm người dùng có tên N02_K20. Thêm user trong câu a là thành viên phụ của  nhóm N02_K20.  Gợi ý  
=> $sudo groupadd N02_K20   
$sudo usermod –G N02_K20 nt_an 
c. Đổi tên nhóm N02_K20 thành N02. Xoá nhóm N02 và tài khoản vừa tạo khỏi hệ thống.  Gợi ý  
 $ sudo groupmod –n N02 N02_K20  
# đổi tên nhóm $sudo groupmod –n [tennhommoi] [ten nhomcu] 
$sudo groupdel N02 # Xóa nhóm    
$sudo userdel –r nt_an 
#Xóa tài khoản người dùng  
Bài 9 Thực hiện các lệnh sau, biết rằng khi đăng nhập vào hệ thống đứng tại thư mục  /home/ubuntu: 
a.Tạo thư mục KiemTra trong thư mục hiện hành, thiết lập quyền truy cập cho thư mục này sao 
cho u=rwx và cấm tất cả các quyền đối với nhóm và những người dùng khác. Gợi ý:  $mkdir KiemTra  $chmod 700 KiemTra 
b. Tạo file vidu1.txt trong thư mục kiểm tra bằng lệnh cat và nhập nội dung "Đây là bài kiểm 
tra số 2, không được mở tài liệu trong quá trình làm bài" Gợi ý  $cd KiemTra 
c. Tạo thư mục KetQua trong thư mục /home và sao chép file vidu1.txt trong câu b sang thư 
mục KetQua vừa tạo. 
d. Viết lệnh xem nội dung thư mục thư mục KetQua đ愃̀ tạo trong câu c. 
e. Viết lệnh in ra màn hình tất cả các file có đuôi .txt tại thư mục hiện hành. 
f. Xoá thư mục KiemTra và thư mục KetQua vừa tạo. 
 Bài 10. Thực hiện các lệnh tạo một tài khoản người dùng có tên tài khoản nvmanh, thư mục làm 
việc /home/nvmanh, chú thích 'Nguyen Van Manh'. 
Bài 11. Đăng nhập vào tài khoản vừa tạo ở câu 10, thực hiện các lệnh sau trên Terminal 
1. Tạo thư mục HDH trong thư mục hiện hành  14      lOMoARcPSD| 41967345
2. Tạo các thư vuamục TaiLieu và BaiTap trong thư mục HDH. 
3. Tạo file danhsach.txt trong thư mục TaiLieu với nội dung như sau (gồm 4 trường: stt, 
họ tên, điểm, địa chỉ): 
1 - Nguyen Huu Cong - 9.4 – Thai Nguyen 
2 - Tran Van Thai - 8.7 - Bac Giang 
3 - Chu Thi Huong - 7.5 - Hoa Binh 
4 - Nguyen Minh Anh - 6.3 - Thai Nguyen 
4. In ra 2 dòng đầu tiên của file danhsach.txt trong câu 3. 
5. Lấy ra trường 2 trường họ tên, điểm và lưu vào file diem.txt trong thư mục TaiLieu. 
6. Xóa dòng thứ 2 trong file danhsach.txt và lưu kết quả vào file danhsach1.txt. 
7. Đổi tên thư mục TaiLieu trên thành thư mục TaiLieu1. 
8. Tạo file vd1.txt trong thư mục BaiTap và nhập nội dung như sau (số thứ tự, m愃̀ số, tên  thiếtbị):  1. MS001 Laptop  2. MS002 PC  3. MS003 Mouse  4. MS004 Keyborad  5. MS004 Speaker 
9. In ra các dòng có chứa d愃̀y ký tự 'ey'. 
10. In ra các cột số thứ tự và tên thiết bị 
11. Xóa các dòng 2 và 3 rồi lưu kết quả vào file vd2.txt. 
12. Tạo 2 file name.txt và diachi.txt như sau trong thư mục HDH:  name.txt:  diachi.txt:  MS01 - Hung  MS01 - Thái Nguyên  MS02 – Mạnh  MS02 - Bắc Giang  MS03 – Hằng  MS03 - Hà Nội 
H愃̀y viết lệnh để tạo ra file name_diachi.txt có cấu trúc như sau:  name_diachi.txt:  MS01 – Hung - Thái Nguyên  MS02 – Manh - Bắc Giang  MS03 – Hằng - Hà Nội  15      lOMoARcPSD| 41967345  
$join –j 1 name.txt diachi.txt >>  name_diachi.txt 
13. Xem nội dung của thư mục HDH. 
14. Xóa thư mục HDH vừa tạo trên. 
Bài 12. Đăng nhập vào Ubuntu, thực hiện các lệnh sau trên Terminal 
a. Tạo thư mục BaiTap trong thư mục hiện hành (/home/ubuntu). 
b. Tạo file vd1.txt sử dụng lệnh touch trong thư mục BaiTap 
c. Ghi kết quả đầu ra của lệnh ls vào file vd1.txt vừa tạo trong câu b. 
d. Đổi tên file vd1.txt thành file vd2.txt. 
e. Tạo ra file vd3.txt trong thư mục BaiTap bằng cách sử dụng lệnh cat > và nhập vào nội dung  sau:   This is my example   My name is Mr Minh 
I’m a student of ICTU nhấn ctrl+D 
để kết thúc việc nhập. 
f. Tạo mới thư mục BT trong thư mục hiện hành. 
g. Tạo một file file1.sh trong thư mục BaiTap bằng lệnh touch. 
h. Sao chép các file có đuôi .txt trong thư mục BaiTap sang thư mục BT. 
i. Xóa file vd2.txt trong thư mục BT. 
k. Xem số ký tự, số từ, số dòng trong file vd3.txt sử dụng lệnh wc Bài 
13. Đăng nhập vào Ubuntu, thực hiện các lệnh sau trên Terminal a. 
Tạo một file bai1.txt trong thư mục hiện hành rồi nhập vào nội dung: 
Để thực hiện sao chép nội dung của 2 file trong Linux cần sử dụng lệnh cp với 2 tham số 
là file nguồn và file đích. Trong trường hợp tham số thứ 1 là file nguồn và tham số thứ 2 
là thư mục thì lệnh cp sao chép file nguồn vào thư mục. 
b. Tạo một file bai2.txt trong thư mục hiện hành. 
c. Sao chép nội dung của file bai1.txt sang file bai2.txt 
d. Tạo 2 thư mục dir1 và dir2 trong thư mục hiện hành 
e. Sao chép 2 file bai1.txt và file bai2.txt vào thư mục dir1 
f. Sao chép tất cả các file có đuôi .txt vào trong thư mục hiện hành vào thư mục dir2 
g. Xóa tất cả các file có đuôi .txt trong thư mục hiện hành.  16      lOMoARcPSD| 41967345
h. Đếm số lượng file và thư mục trong thư mục hiện hành (sử dụng lệnh ls kết hợp với lệnh  wcvới tùy chọn –l) 
Bài 14: Đăng nhập vào hệ thống Linux, rồi khởi động shell bash và thực hiện các công việc sau: 
a. Tạo thư mục UNIX trong thư mục hiện hành 
b. Tạo file test.txt trong thư mục UNIX 
c. Ghi kết quả đầu ra của ls đối với thư mục hiện hành vào file test.txt, xem kết quả nội dung  củafile test.txt. 
d. Xem nội dung của file test.txt bằng cách đổi các ký tự chữ thường thành chữ hoa. 
e. Đếm số dòng, và số từ của file test.txt 
Bài 15 Thực hiện các lệnh sau, biết rằng khi đăng nhập vào hệ thống đứng tại thư mục  /home/ubuntu: 
1. Tạo thư mục mang tên của bạn 
2. Đổi tên thư mục LOPN03 
3. Tạo thư mục mang tên Baithuchanh trong thư mục hiện hành 
4. Sao chép thư mục LOPN03 vào thư mục Baithuchanh 
5. Xem nội dung của thư mục Baithuchanh 
6. Xóa thư mục LOPN03 ở thư mục hiện hành  7. Xoa thư mục Baithuchanh 
Bài 16. Viết kịch bản shell cho phép nhập vào một mảng các số nguyên n phần tử rồi thực hiện: 
1. In mảng vừa nhập ra màn hình 
2. In ra các số chia hết cho 2 (hoặc 3,4,5 …) trong mảng 
3. In ra số âm lớn nhất trong mảng/ Số dương nhỏ nhất trong mảng/ số chẵn 
lớnnhất (nhỏ nhất) trong mảng/ Số lẻ lớn nhất (số nhỏ nhất) trong mảng/ số lớn 
nhất / số nhỏ nhất  
4. Sắp xếp mảng các phân tử chẵn theo chiều tăng dần/ hoặc giảm dần  
5. Tính tổng các phần tử chẵn/lẻ 
6. Tìm vị trí của phần tử max/ min …. 
7. Tìm phần tử x trong mảng với x nhập từ bàn phím  
Bài 17. Viết các kịch bản shell thực hiện các yêu cầu sau: 
a. Nhập vào 1 xâu ký tự từ bàn phím. 
b. Đếm đồ dài của chuỗi vừa nhập  17      lOMoARcPSD| 41967345
c. Đổi các ký tự thường thành ký tự hoa của xâu ban đầu 
d. Đếm xem xâu có bao nhiêu từ ở trong xâu. 
e. Đếm xem ký tự 'c' xuất hiện bao nhiêu lần trong xâu. 
f. In ra màn hình xâu theo chiều ngược lại. 
Bài 18: Viết chương trình nhập vào n (với 0 
+ Nếu k=1 thì in ra s = 1+2+....+n 
+ Nếu k =2 thì in ra s= 1+3+5+..... 
+ Nếu k=3 thì in ra s= 2+4+6+...... 
+Nếu k=4 in ra s = 1*2*3.....*n 
+ Các trường hợp còn lại in ra ‘ Lựa chọn không hợp lệ ‘ 
Bài 19 Viết chương trình Shell tính tổng sau: 
 S(x,n) = x/1 + x2/(1*2)+x3/(1*2*3)+……. + x n /(1*2*….*n)  
 Với x,n được nhâp từ bàn phím và x ≠ 0, n>=1̣  Gợi ý: 
Bài 20 Viết chương trình Shell tính tổng sau: 
 S(x,n) = -x + x2-x3 +……. + (-1)nx n 
Với x,n được nhâp từ bàn phím và x ≠ 0,n >0̣      Gợi ý :  - tu=1  - s=0  - for …  tu=tu*x +  nếu i%2 =0  S=s+tu  Else  S=s-tu  Fi  Done  Echo “ s” 
Bài 21 Viết chương trình Shell tính tổng sau: 
 S(x,n) = -x+1/ x2 -x3 +1/x4 -..... - x n  
 Với x,n được nhâp từ bàn phím và x ≠ 0, n > 0̣  Gợi ý   18      lOMoARcPSD| 41967345 Tu=1  S=0  For   Tu=tu*x  If i%2 =0  S=s+1/tu  Else  S=s-tu  Fi  Done  Echo “s”  
Bài 22 Viết chương trình Shell tính tổng sau: 
 S(x,n) = x + x3+x5+……. + x 2n+1  
 Với x,n được nhâp từ bàn phím và x ≠ 0,n >1 ̣  Gợi ý  - s=$x  tu=$x  for   tu=tu*x*x  s=s+tu 
Bài 23 Viết chương trình Shell tính tổng sau: 
 S(x,n) = x/(2*12) + x2/(2*22)+x3/(2*32)+……. + x n /(2*n2)  
 Với x,n được nhâp từ bàn phím và x ≠ 0,n >1̣  Gợi ý - tu=1  mau=1 s=0  for tu=tu*x  mau=2*$i*$i  s=s+tu/mau  done echo s  19      lOMoARcPSD| 41967345
Bài 24 Viết chương trình Shell tính tổng sau S(x,n) = x2 + x4 +x6 +……. + x2 n 
Với x,n được nhâp từ bàn phím và x ≠ 0,n > 0̣  Gợi ý -  s=0 tu=1  for  tu=tu*x*x  s=s+tu  done echo  s 
Bài 25 Giải phương trình ax2 + bx + c = 0 . Với a,b,c nhập vài từ bàn phím ( với a khác 0). 
Bài 26 Giải hệ phương trình    
Với a1,b1,c1,a2,b2,c2 nhập vào từ bàn phím.  
Bài 27 Viết chương trình Shell tính tổng sau: 
 S(x,n) = x/1 + x2/(1*2)+x3/(1*2*3)+……. + x n /(1*2*….*n)  
 Trường hợp 1 Với x,n được nhâp từ bàn phím và x ≠ 0, n>0̣ 
Trường hợp 2 Với x,n được nhâp từ bàn phím và x ≠ 0̣      20