Hệ thống máy tính là nội dung mà chương 3 thuộc bộ Bài giảng Tin học đại cương Phần 1 hướng đến trình bày. Ở chương này các bạn sẽ được tìm hiểu về tổ chức bên trong máy tính; phần mềm máy tính.
TIN HỌC ĐẠI CƯƠNG PHẦN 1: TIN HỌC CĂN BẢN Chương 03: Hệ thống máy tính Chương 03: Hệ thống máy tính 3.1 Tổ chức bên máy tính 3.1.1 Mơ hình máy tính 3.1.2 Bộ xử lý trung tâm – CPU 3.1.3 Bộ nhớ 3.1.4 Hệ thống vàovào-ra 3.1.5 Liên kết hệ thống (buses) 3.2 Phần mềm máy tính 3.2.1 Dữ liệu giải thuật 3.2.2 Chương trình ngơn ngữ lập trình 3.2.3 Phần mềm máy tính Chương 03: Hệ thống máy tính 3.1 Tổ chức bên máy tính 3.1.1 Mơ hình máy tính 3.1.2 Bộ xử lý trung tâm – CPU 3.1.3 Bộ nhớ 3.1.4 Hệ thống vàovào-ra 3.1.5 Liên kết hệ thống (buses) 3.2 Phần mềm máy tính 3.2.1 Dữ liệu giải thuật 3.2.2 Chương trình ngơn ngữ lập trình 3.2.3 Phần mềm máy tính 3.1.1 Mơ hình máy tính a Chức hệ thống máy tính b Cấu trúc hệ thống máy tính c Hoạt động máy tính a Chức hệ thống máy tính Xử lý liệu Lưu trữ liệu Trao đổi liệu Điều khiển a Chức hệ thống máy tính Xử lý liệu: liệu: Chức quan trọng máy tính Dữ liệu có nhiều dạng khác có yêu cầu xử lý khác Lưu trữ liệu: liệu: Dữ liệu đưa vào máy tính xử lý lưu nhớ Khi cần chúng lấy xử lý a Chức hệ thống máy tính (tiếp) Trao đổi liệu: liệu: Trao đổi liệu thành phần bên bên thơng qua thiết bị ngoại vi Q trình vào (input(input-output) Các thiết bị vàovào-ra coi nguồn cung cấp liệu nơi tiếp nhận liệu Khi liệu vận chuyển khoảng cách xa với thiết bị máy tính gọi truyền liệu (data communication) Điều khiển: khiển: Máy tính cần phải điều khiển ba chức b Cấu trúc hệ thống máy tính Các thành phần máy tính Bộ xử lý trung tâm – CPU (Central Processor Unit) Điều khiển hoạt động máy tính thực xử lý liệu Bộ nhớ (Main Memory) Lưu trữ chương trình liệu Hệ thống vào (Input(Input-Output System): Trao đổi thông tin giới bên ngồi với máy tính Liên kết hệ thống (System Interconnection): Kết nối vận chuyển thông tin CPU, nhớ hệ thống vào máy tính với c Hoạt động máy tính Hoạt động máy tính thực chương trình trình Chương trình gồm tập lệnh lưu trữ nhớ 10 Chương 03: Hệ thống máy tính 3.1 Tổ chức bên máy tính 3.1.1 Mơ hình máy tính 3.1.2 Bộ xử lý trung tâm – CPU 3.1.3 Bộ nhớ 3.1.4 Hệ thống vàovào-ra 3.1.5 Liên kết hệ thống (buses) 3.2 Phần mềm máy tính 3.2.1 Dữ liệu giải thuật 3.2.2 Chương trình ngơn ngữ lập trình 3.2.3 Phần mềm máy tính 11 a Chức hoạt động Chức Điều khiển hoạt động toàn hệ thống máy tính Xử lý liệu Nguyên tắc hoạt động bản:: CPU hoạt động theo chương trình nằm nhớ chính, cách:: cách Nhận lệnh từ nhớ Sau tiến hành giải mã lệnh phát tín hiệu điều khiển thực thi lệnh Trong trình thực thi lệnh, CPU trao đổi liệu với nhớ hay hệ thống vào vào ra 12 b Cấu trúc CPU 13 Các thành phần CPU Khối điều khiển (Control Unit – CU) Điều khiển hoạt động máy tính theo chương trình định sẵn Khối tính tốn số học logic (Arithmetic – Logic Unit - ALU) ALU):: Thực phép toán số học phép toán logic liệu cụ thể Tập ghi (Register File - RF RF)) Lưu trữ thông tin tạm thời phục vụ cho hoạt động CPU Bus bên (Internal Bus) Kết nối thành phần bên CPU với Đơn vị ghép nối bus (Bus Interface Unit – BIU) Kết nối trao đổi thông tin với bus bên với bus bên ngoài 14 Bộ vi xử lý (Microprocessor) Bộ vi xử lý CPU chế tạo vi mạch gọi vi xử lý lý Có thể gọi CPU vi xử lý Tuy nhiên, vi xử lý có cấu trúc phức tạp nhiều so với CPU bản Tốc độ vi xử lý Số lệnh thực 1s MIPS (Milliions of Intructions per Second) Khó đánh giá xác Tần số xung nhịp xử lý Bộ xử lý hoạt động theo xung nhịp (clock) có tần số xác định Tốc độ xử lý đánh giá gián tiếp thông qua tần số xung nhịp 15 Tốc độ vi xử lý (tiếp) 16 Intel 4004 - Bộ vi xử lý bit 17 Intel 8008 - Bộ vi xử lý bit INTEL 8008 18 Intel 8080 - Bộ vi xử lý bit INTEL 8080 19 Intel 80286 - Bộ vi xử lý 16 bit 20 10 Ví dụ Bài tốn: Giải phương trình bậc I Đầu vào: Hai hệ số a, b Đầu ra: Nghiệm phương trình ax + b = Ý tưởng: Lần lượt xét a = xét b = để xét trường hợp phương trình 55 Ví dụ - Mô tả bước B1: Nhập a b B2: Nếu a0 hiển thị “Phương trình có nghiệm x = -b/a” B3: (a=0) Nếu Nếu b hiển thị “Phương trình vơ nghiệm” và kết thúc B4: (a=0)(b=0) Hiển Hiển thị “Phương trình vơ số nghiệm” kết thúc 56 28 Ví dụ - Mơ tả lưu đồ thuật toán Nhập a b a0 Đ Hiển thị “Nghiệm là: x = -b/a” S b0 Đ Hiển thị “Phương trình vơ nghiệm” S Hiển thị “Phương trình vơ số nghiệm” 57 Ví dụ Bài tốn: Tìm giá trị lớn dãy số nguyên có N số Đầu vào: Số số nguyên dương N N số nguyên a1, a2,…, aN Đầu ra: số nguyên lớn dãy ak, k khoảng [1…N] Ý tưởng: Khởi tạo giá trị Max = a1 Lần lượt so sánh Max với với i=2,3,…, N; > Max ta gán giá trị cho Max 58 29 Ví dụ - Mơ tả bước B1: Nhập N dãy số a1, a2,…,aN B2: Max a1; i=2 B3: Nếu i > N, Hiển thị Max giá trị lớn dãy kết thúc B4: Nếu > Max, Max B5: Tăng i lên đơn vị B6: Quay lên B3 B7: Kết thúc 59 Ví dụ - Mơ tả lưu đồ thuật tốn Nhập N dãy số a1, a2,…,aN Max a1; i=2 Đ i>N Hiển thị “Max số lớn nhất” S > Max Đ Max S ii+1 60 30 Ví dụ Bài tốn tốn:: Sắp xếp phương pháp tráo đổi (Exchange Sort) Đầu vào vào:: Dãy A gồm N số nguyên a1, a2,…, aN Đầu ra:: Dãy A dược lại theo thứ tự không giảm giảm Ý tưởng tưởng:: Với cặp số liên tiếp dãy dãy,, số trước lớn số sau ta đổi chỗ chúng cho nhau Việc lặp khơng có đổi chỗ cho 61 Ví dụ - Mô tả bước B1: Nhập số N dãy số a1,a2,…,aN B2: M N B3: Nếu M < thuật tốn kết thúc hiển thị dãy B4: M M – 1, i B5: Tăng i lên đơn vị B6: Nếu i > M quay lại B3 B7: Nếu > ai+1 tráo đổi hai số cho B8: Quay lên B5 62 31 Nhập N dãy số a1, a2,…,aN MN Ví dụ Mơ tả lưu đồ thuật toán MM S ai+1 Đ > ai+1 Đ 63 Bài tập Bài tốn: Giải phương trình bậc II Đầu vào: Ba hệ số a, b, c Đầu ra: Nghiệm phương trình ax2 + bx + c = Ý tưởng: Lần lượt xét a = 0, b = xét c=0 để xét trường hợp phương trình 64 32 b Các tiêu chí giải thuật cần thỏa mãn Tính hữu hạn: giải thuật phải dừng sau thời gian hữu hạn Khi kết thúc, giải thuật phải cung cấp kết đắn Tính hiệu quả: Thời gian tính tốn nhanh Sử dụng tài ngun khơng gian nhớ, thiết bị,… Mang tính phổ dụng, dễ hiểu, dễ cài đặt mở rộng cho lớp toán khác 65 c Các cấu trúc lập trình cấu trúc Cấu trúc Cấu trúc rẽ nhánh Cấu trúc lặp 66 33 Cấu trúc Các bước thực theo trình tự tuyến tính, hết bước đến bước khác Bước Bước … Bước n 67 Cấu trúc rẽ nhánh Việc thực bước phụ thuộc vào điều kiện xác định Ví dụ: Tìm max số a, b Nếu a > b max a, ngược lại max b Diễn giải: B1: B2: B3: B4: Nhập số a, b Nếu a > b Max = a đến bước kết thúc (B4) (a b Max a Max b 68 34 Cấu trúc lặp Một tác động/ nhiệm vụ thực lặp nhiều lần Số lần lặp biết trước trước.Tuy nhiên số lần lặp phải hữu hạn Điều kiện Thực cơng việc vòng lặp Thực cơng việc khỏi vòng lặp 69 Cấu trúc lặp (tiếp) Ví dụ: Tìm số lớn dãy có n số Lần lượt phải so sánh số Max tạm thời (lúc đầu Max gán phần tử thứ nhất, a1) với ai, với i từ 2, 3,…, n Việc so sánh thực lặp nhiều lần Max Khi kết thúc trình lặp, ta thu Max số lớn dãy n số Nhập N dãy số a1, a2,…,aN Max a1; i=2 i>N Đ Hiển thị “Max số lớn nhất” S > Max Đ Max S ii+1 70 35 Chương 03: Hệ thống máy tính 3.1 Tổ chức bên máy tính 3.1.1 Mơ hình máy tính 3.1.2 Bộ xử lý trung tâm – CPU 3.1.3 Bộ nhớ 3.1.4 Hệ thống vàovào-ra 3.1.5 Liên kết hệ thống (buses) 3.2 Phần mềm máy tính 3.2.1 Dữ liệu giải thuật 3.2.2 Chương trình ngơn ngữ lập trình 3.2.3 Phần mềm máy tính 71 3.2.2 Chương trình ngơn ngữ lập trình Lập trình: trình: Để máy hiểu tiến hành xử lý ta phải biến bước thao tác thành thị (statement) biểu diễn dạng mà máy tính hiểu được Chương trình: Giải thuật biếu diễn dạng tập thị ngơn ngữ Ngơn ngữ lập trình: Ngơn ngữ dùng để lập trình: Dùng để trao đổi với máy tính, máy tính hiểu thực thi nhiệm vụ 72 36 3.2.2 Chương trình ngơn ngữ lập trình (tiếp) Cấu trúc liệu: Cách thức tổ chức để lưu trữ liệu Niklaus E Wirth người sáng lập trường phái lập trình cấu trúc NNLT Pascal: Chương trình = Cấu trúc liệu + Giải thuật 73 a Các loại ngôn ngữ lập trình Ngơn ngữ máy: Mỗi loại máy tính có ngơn ngữ máy riêng Loại ngơn ngữ để viết chương trình mà máy tính hiểu trực tiếp thực Các thị (lệnh) ngôn ngữ viết mã nhị phân hay mã hechec-xa Nó gắn chặt với kiến trúc phần cứng máy khai thác đặc điểm phần cứng Không thuận lợi cho người lập trình tính khó nhớ mã, tính thiếu cấu trúc,… 74 37 a Các loại ngôn ngữ lập trình (tiếp) Hợp ngữ: Hợp ngữ cho phép người lập trình sử dụng số từ gợi nhớ viết tắt để thể câu lệnh thực Ví dụ: để cộng nội dung ghi AX BX ghi kết vào AX, ta dùng câu lệnh hợp ngữ sau: ADD AX, BX Một chương trình hợp ngữ phải dịch ngơn ngữ máy nhờ chương trình hợp dịch trước máy tính thực 75 a Các loại ngơn ngữ lập trình (tiếp) Ngơn ngữ bậc cao: Ít phụ thuộc vào kiến trúc phần cứng máy tính, gần với tiếng Anh tự nhiên, có tính độc lập cao để khắc phục hạn chế hợp ngữ Các chương trình viết ngơn ngữ này, trước để máy thực thi cần phải chuyển đổi sang ngơn ngữ máy Q trình chuyển đổi gọi q trình dịch Ví dụ: FORTRAN, COBOL, ALGOL60, BASIC, Pascal, Foxpro, Visual Foxpro, Visual Basic, C, Visual C, C++, Java, C#, Python,… 76 38 b Hai phương thức dịch Thông dịch (Interpreter): Bộ thơng dịch đọc lệnh chương trình nguồn, phân tích cú pháp câu lệnh thực Quá trình lệnh chương trình đến lệnh cuối khơng có lỗi Bộ thơng dịch giống vai trò thơng dịch viên (translator) Biên dịch (Compiler): Trình biên dịch dịch tồn chương trình nguồn sang ngơn ngữ đích Với chương trình đích này, máy hiểu biết cách thực thi Quá trình biên dịch tạo chương trình đích lệnh chương trình nguồn khơng có lỗi 77 c Qui trình giải tốn máy tính 78 39 Chương 03: Hệ thống máy tính 3.1 Tổ chức bên máy tính 3.1.1 Mơ hình máy tính 3.1.2 Bộ xử lý trung tâm – CPU 3.1.3 Bộ nhớ 3.1.4 Hệ thống vàovào-ra 3.1.5 Liên kết hệ thống (buses) 3.2 Phần mềm máy tính 3.2.1 Dữ liệu giải thuật 3.2.2 Chương trình ngơn ngữ lập trình 3.2.3 Phần mềm máy tính 79 a Quy trình phát triển phần mềm máy tính B1: Xác định tốn: Xác định u cầu người dùng B2: Phân tích tốn: Tìm hiểu nhiệm vụ (chức năng) mà phần mềm cần xây dựng phải có liệu cần thiết Xây dựng giải pháp khả thi Tìm hiểu hệ thống gì? Và làm gì? (What) B3: Thiết kế hệ thống: Thực thiết kế kiến trúc hệ thống, thiết kế mơ đun chương trình, thiết kế giao tiếp, thiết kế an tồn,… Thiết kế mơ đun xây dựng giải thuật cho mơ đun cách diễn tả giải thuật Hệ thống cần làm nào? (How) 80 40 a Quy trình phát triển phần mềm máy tính (tiếp) B4: Xây dựng chương trình: Viết mã nguồn (source code) cho mơ đun theo ngơn ngữ lập trình xác định B5: Kiểm thử chương trình: Nhằm kiểm tra tính đắn mơ đun hệ thống trước bàn giao cho khách hàng B7: Triển khai: Cài đặt, triển khai cho khách hàng (người dùng) sử dụng chương trình Viết tài liệu hướng dẫn sử dụng cho phần mềm B8: Bảo trì: Sửa lỗi trình người sử dụng dùng thử chương trình thời gian đầu 81 b Phân loại phần mềm máy tính Phân loại theo quan điểm sử dụng chung: Phần mềm hệ thống: thống: Phần mềm điều khiển hoạt động bên máy tính cung cấp mơi trường giao tiếp người dùng máy tính nhằm khai thác hiệu phần cứng phục vụ cho nhu cầu sử dụng Loại phần mềm đòi hỏi tính ổn định, tính an toàn cao Chẳng hạn hệ điều hành máy đơn hay hệ điều hành mạng, tiện ích hệ thống,… Phần mềm ứng dụng: dụng: Phần mềm dùng để giải vấn đề phục vụ cho hoạt động khác người quản lý, kế tốn, soạn thảo văn bản, trò chơi… Nhu cầu phần mềm ứng dụng ngày tăng đa dạng 82 41 b Phân loại phần mềm máy tính (tiếp) Phân loại theo đặc thù ứng dụng môi trường: Phần mềm thời gian thực (Real(Real-time SW) Phần mềm nghiệp vụ (Business SW) Phần mềm tính tốn KH&KT (Eng.&Scie SW) Phần mềm nhúng (Embedded SW) Phần mềm Web (Web(Web-based SW) Phần mềm trí tuệ nhân tạo (AI SW) … 83 Câu hỏi 84 42 ... trung tâm – CPU 3. 1 .3 Bộ nhớ 3. 1.4 Hệ thống vàovào-ra 3. 1.5 Liên kết hệ thống (buses) 3. 2 Phần mềm máy tính 3. 2.1 Dữ liệu giải thuật 3. 2.2 Chương trình ngơn ngữ lập trình 3. 2 .3 Phần mềm máy... memory card 33 Chương 03: Hệ thống máy tính 3. 1 Tổ chức bên máy tính 3. 1.1 Mơ hình máy tính 3. 1.2 Bộ xử lý trung tâm – CPU 3. 1 .3 Bộ nhớ 3. 1.4 Hệ thống vàovào-ra 3. 1.5 Liên kết hệ... thống (buses) 3. 2 Phần mềm máy tính 3. 2.1 Dữ liệu giải thuật 3. 2.2 Chương trình ngơn ngữ lập trình 3. 2 .3 Phần mềm máy tính 34 17 3. 1.4 Hệ thống vàovào-ra Chức năng: Trao đổi thơng tin máy tính