Giáo trình môn Tin học đại cương

pdf 89 trang vanle 2570
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình môn Tin học đại cương", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_mon_tin_hoc_dai_cuong.pdf

Nội dung text: Giáo trình môn Tin học đại cương

  1. HỌC VIỆN NÔNG NGHIỆP VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN CHỦ BIÊN: PHẠM QUANG DŨNG GIÁO TRÌNH TIN HỌC ĐẠI CƯƠNG 2015
  2. LỜI NÓI ĐẦU Cuốn giáo trình Tin học đại cương này được viết bởi các giảng viên Khoa Công nghệ thông tin, Học viện Nông nghiệp Việt Nam. Giáo trình bao gồm những kiến thức cơ bản và những kiến thức cập nhật của một số khía cạnh chủ yếu trong lĩnh vực Khoa học máy tính và Công nghệ thông tin như phần cứng, phần mềm, hệ điều hành, mạng máy tính và Internet, cơ sở dữ liệu, thuật toán, ngôn ngữ lập trình, an toàn thông tin. Mỗi chương được viết bởi giảng viên có kinh nghiệm giảng dạy nhiều năm các học phần chuyên về nội dung tương ứng. Cuốn giáo trình này được dùng để làm tài liệu giảng dạy và học tập chính cho học phần Tin học đại cương gồm 2 tín chỉ trong chương trình đào tạo của các ngành không chuyên Tin học thuộc Học viện Nông nghiệp Việt Nam. Tất nhiên giáo trình cũng có thể được dùng làm tài liệu tham khảo cho nhiều đối tượng bạn đọc khác muốn mở mang kiến thức. Giáo trình gồm 7 chương, mỗi chương là một mảng kiến thức tương đối độc lập với các chương khác. Bạn đọc có thể lựa chọn đọc những phần phù hợp với nhu cầu mà hầu như không gặp trở ngại về sự đòi hỏi kiến thức từ các phần trước. Chương 1: Giới thiệu chung, do TS. Phạm Quang Dũng và ThS. Trần Thị Thu Huyền viết. Chương này giới thiệu một số kiến thức nền tảng chung gồm: (1) Các khái niệm về dữ liệu, thông tin, tin học, công nghệ thông tin; (2) Các hệ thống số dùng trong máy tính; (3) Mã hóa và biểu diễn thông tin trong máy tính; và (4) Các ứng dụng của công nghệ thông tin. Chương 2: Cấu trúc máy tính, do TS. Phạm Quang Dũng biên soạn. Chương 2 đề cập đến: (1) Chức năng, sơ đồ tổ chức, nguyên lý hoạt động của máy tính; (2) Cấu trúc và chức năng của các thành phần cơ bản của máy tính, thuộc 4 khối chức năng gồm: bộ xử lý trung tâm, bộ nhớ, thiết bị ngoại vi và liên kết hệ thống. Chương 3: Phần mềm máy tính và hệ điều hành, được viết bởi ThS. Phạm Thủy Vân. Qua chương này bạn đọc có thể hiểu được các vấn đề về: (1) Khái niệm và phân loại phần mềm máy tính, quy trình phát triển phần mềm; (2) Khái niệm, lịch sử phát triển hệ điều hành, một số hệ điều hành thông dụng cho máy tính và các thiết bị di động. Chương 4: Mạng máy tính và Internet, do ThS. Phan Thị Thu Hồng đảm nhiệm. Chương này giới thiệu đến bạn đọc các kiến thức cơ bản về mạng máy tính và Internet bao gồm: (1) Khái niệm, các thành phần cơ bản, các mô hình kết nối và giao thức mạng, phân loại mạng máy tính; (2) Các khái niệm, các dịch vụ phổ biến như world wide web, tìm kiếm, thư điện tử, lưu trữ đám mây. Chương 5: Cơ sở dữ liệu, do ThS. Hoàng Thị Hà biên soạn. Trong chương này bạn đọc có thể nắm được những kiến thức về: (1) Cơ sở dữ liệu: khái niệm, lợi ích các mức thể hiện của cơ sở dữ liệu, hệ cơ sở dữ liệu; (2) Khái niệm và chức năng của hệ quản trị cơ sở dữ liệu; và (3) Các câu lệnh của ngôn ngữ truy vấn có cấu trúc (SQL). Chương 6: Thuật toán và ngôn ngữ lập trình, được viết bởi ThS. Lê Thị Nhung. Chương này giới thiệu với bạn đọc: (1) Khái niệm, các tính chất, các cách diễn đạt thuật toán, thiết kế thuật toán và đánh giá độ phức tạp; (2) Khái niệm về ngôn ngữ lập trình, trình biên dịch và trình thông dịch. iii
  3. Chương 7: Các vấn đề xã hội của công nghệ thông tin; do ThS. Nguyễn Văn Hoàng đảm nhiệm. Qua chương này bạn đọc có thể thu nhận được các kiến thức về: (1) An toàn thông tin như các tài nguyên có thể bị xâm phạm, các hình thức tấn công để lấy cắp hay phá hoại thông tin; (2) Một số điều trong Bộ luật hình sự về tội phạm trong lĩnh vực tin học; và (3) Vấn đề sở hữu trí tuệ nói chung và sở hữu trí tuệ trong công nghệ thông tin nói riêng. Do đây là lần đầu tiên viết giáo trình Tin học đại cương theo hướng cải tiến nên chắc chắn chúng tôi không thể tránh khỏi những thiếu sót. Nhóm tác giả mong nhận được những ý kiến góp ý từ các bạn đọc để lần tái bản sau giáo trình sẽ tốt hơn. Mọi ý kiến đóng góp xin gửi về địa chỉ pqdung@vnua.edu.vn. Chúng tôi xin chân thành cảm ơn! Hà Nội, tháng 1 năm 2015 Nhóm tác giả iv
  4. MỤC LỤC LỜI NÓI ĐẦU III MỤC LỤC V DANH MỤC CHỮ VIẾT TẮT VIII CHƯƠNG 1. GIỚI THIỆU CHUNG 1 1.1. MỘT SỐ KHÁI NIỆM CƠ BẢN 1 1.1.1. Dữ liệu 1 1.1.2. Thông tin 1 1.1.3. Tin học 2 1.1.4. Công nghệ thông tin 3 1.2. CÁC HỆ THỐNG SỐ VÀ CÁC PHÉP TOÁN DÙNG TRONG MÁY TÍNH 3 1.2.1. Các hệ thống số 3 1.2.2. Chuyển đổi giữa các hệ cơ số 4 1.2.3. Các phép toán số học trên hệ 2 6 1.3. BIỂU DIỄN VÀ MÃ HÓA THÔNG TIN 8 1.3.1. Biểu diễn thông tin trong máy tính và các đơn vị thông tin 8 1.3.2. Khái niệm về mã hóa 9 1.3.3. Mã hóa tập ký tự 10 1.3.4. Mã hóa số nguyên và số thực 11 1.3.5. Mã hóa dữ liệu logic 13 1.3.6. Mã hóa hình ảnh tĩnh 13 1.3.7. Mã hóa âm thanh và phim ảnh 15 1.4. ỨNG DỤNG CỦA CÔNG NGHỆ THÔNG TIN 15 1.4.1. Các bài toán khoa học kỹ thuật 15 1.4.2. Các bài toán quản lý 16 1.4.3. Tự động hóa 17 1.4.4. Công tác văn phòng 17 1.4.5. Giáo dục 17 1.4.6. Thương mại điện tử 18 CHƯƠNG 2. CẤU TRÚC MÁY TÍNH 19 2.1. GIỚI THIỆU 19 2.2. CHỨC NĂNG VÀ SƠ ĐỒ CẤU TRÚC CỦA MÁY TÍNH 20 2.2.1. Chức năng của máy tính: 20 2.2.2. Sơ đồ cấu trúc chung của máy tính 20 2.2.3. Nguyên lý hoạt động của máy tính 21 2.3. CÁC THÀNH PHẦN CƠ BẢN CỦA MÁY TÍNH 22 2.3.1. Bộ xử lý trung tâm 23 2.3.2. Bộ nhớ 26 v
  5. 2.3.3. Thiết bị vào/ra 35 2.3.4. Liên kết hệ thống 40 CHƯƠNG 3. PHẦN MỀM MÁY TÍNH VÀ HỆ ĐIỀU HÀNH 42 3.1. PHẦN MỀM MÁY TÍNH 42 3.1.1. Khái niệm về phần mềm 42 3.1.2. Phân loại phần mềm 43 3.1.3. Quy trình phát triển phần mềm 45 3.1.4. Phần mềm mã nguồn đóng và mã nguồn mở 46 3.2. HỆ ĐIỀU HÀNH 47 3.2.1. Khái niệm hệ điều hành 47 3.2.2. Lịch sử phát triển và phân loại hệ điều hành 48 3.2.3. Một số hệ điều hành điển hình 51 3.2.4. Quản lý dữ liệu trên bộ nhớ ngoài 57 CHƯƠNG 4. MẠNG MÁY TÍNH VÀ INTERNET 59 4.1. MẠNG MÁY TÍNH 59 4.1.1. Các thành phần cơ bản của mạng máy tính 59 4.1.2. Mô hình kết nối và giao thức mạng 60 4.1.3. Phân loại mạng máy tính 62 4.2. INTERNET 63 4.2.1. Một số khái niệm 63 4.2.2. Kết nối Internet 67 4.3. MỘT SỐ DỊCH VỤ CƠ BẢN CỦA INTERNET 67 4.3.1. WWW (World Wide Web) 67 4.3.2. Tìm kiếm 68 4.3.3. Thư điện tử 72 4.3.4. Lưu trữ dữ liệu đám mây 76 CHƯƠNG 5. CƠ SỞ DỮ LIỆU 80 5.1. CƠ SỞ DỮ LIỆU 80 5.1.1. Khái niệm cơ sở dữ liệu 80 5.1.2. Các mức thể hiện của cơ sở dữ liệu 81 5.1.3. Mô hình dữ liệu quan hệ 83 5.1.4. Hệ cơ sở dữ liệu 85 5.1.5. Lợi ích của hệ cơ sở dữ liệu 85 5.2. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 86 5.2.1. Khái niệm 86 5.2.2. Phân loại hệ quản trị cơ sở dữ liệu 87 5.2.3. Chức năng cơ bản của hệ quản trị cơ sở dữ liệu 88 5.3. NGÔN NGỮ TRUY VẤN SQL 88 5.3.1. Câu lệnh truy vấn dữ liệu 89 5.3.2. Câu lệnh cập nhật dữ liệu 99 vi
  6. 5.3.3. Thêm dữ liệu 99 5.3.4. Xóa dữ liệu 100 5.3.5. Các hàm của SQL 100 CHƯƠNG 6. THUẬT TOÁN VÀ NGÔN NGỮ LẬP TRÌNH 103 6.1. PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ BẰNG MÁY TÍNH 103 6.2. THUẬT TOÁN 103 6.2.1. Khái niệm thuật toán 103 6.2.2. Các tính chất của thuật toán 105 6.2.3. Cách diễn đạt thuật toán 106 6.2.4. Thiết kế thuật toán 108 6.2.5. Độ phức tạp của thuật toán và vấn đề đánh giá thuật toán 110 6.3. NGÔN NGỮ LẬP TRÌNH 113 6.3.1. Khái niệm về ngôn ngữ lập trình 113 6.3.2. Lịch sử phát triển của ngôn ngữ lập trình 113 6.3.3. Trình biên dịch và trình thông dịch 117 6.3.4. Các công việc của người lập trình 117 CHƯƠNG 7. CÁC VẤN ĐỀ XÃ HỘI CỦA CÔNG NGHỆ THÔNG TIN 122 7.1. CÁC TÀI NGUYÊN CÓ THỂ BỊ XÂM PHẠM 122 7.1.1. Nội dung thông tin 122 7.1.2. Tài nguyên hạ tầng công nghệ thông tin 122 7.1.3. Định danh người dùng 122 7.2. CÁC HÌNH THỨC TẤN CÔNG 123 7.2.1. Tận dụng các lỗ hổng phần mềm 123 7.2.2. Sử dụng các phần mềm độc hại 123 7.2.3. Tấn công từ chối dịch vụ 127 7.2.4. Lừa đảo 129 7.3. SỞ HỮU TRÍ TUỆ 130 7.3.1. Tài sản trí tuệ 130 7.3.2. Quyền sở hữu trí tuệ 130 7.3.3. Luật sở hữu trí tuệ 130 7.4. CÁC QUY ĐỊNH, ĐIỀU LUẬT VỀ AN TOÀN THÔNG TIN VÀ SỞ HỮU TRÍ TUỆ 132 7.4.1. Các điều trong Bộ luật hình sự 132 7.4.2. Điều trong Nghị định Chính phủ 135 7.4.3. Các điều trong Luật Công nghệ thông tin 137 TÀI LIỆU THAM KHẢO 140 vii
  7. DANH MỤC CHỮ VIẾT TẮT Chữ viết tắt Từ tiếng Anh Nghĩa tiếng Việt AAC Advanced Audio Coding Mã hóa âm thanh tiên tiến ADSL Asymmetric Digital Subscriber Đường dây thuê bao số bất đối xứng Line ALU Arithmetic and Logic Unit Đơn vị toán học và logic, nằm trong CPU AMD Các vi thiết bị tiên tiến, cũng là tên của một tập đoàn phát triển các thiết bị loại Advanced Micro Devices này như bộ vi xử lý máy tính và các công nghệ liên quan Một loại cấu trúc vi xử lý 32-bit kiểu ARM Advanced RISC Machine RISC American Standard Code for Bảng mã chuẩn của Mỹ dùng để trao đổi ASCII Information Interchange thông tin ATA Cách gọi ngắn gọn của Paralell ATA, là một chuẩn giao tiếp kết nối giữa máy tính Advanced Technology Attachment và các ổ đĩa cứng, ổ đĩa quang trong máy tính ATI Tên tập đoàn được thành lập năm 1985, chuyên sản xuất cạc đồ họa cho máy tính Array Technology Inc. cá nhân. Năm 2006, ATI được tập đoàn AMD mua lại. Một dạng đĩa quang cho phép ghi/phát lại BD Bluray Disk hình ảnh/âm thanh với chất lượng cao BIOS Basic Input/Output System Hệ thống vào/ra cơ bản CCFL Cold-Cathode Fluorescent Lamp Đèn huỳnh quang catốt lạnh CD Compact Disc Đĩa CD (gọn nhẹ), một dạng đĩa quang CIDR Classless Inter-Domain Routing Lược đồ địa chỉ mới của Internet Complex Instruction Set Computer Kiến trúc tập lệnh phức tạp CISC [Architecture] CMOS Complementary Metal–Oxide– Công nghệ bán dẫn kim loại bù, dùng để Semiconductor, chế tạo các vi mạch tích hợp CMYK Hệ màu gồm 4 màu cơ sở: Cyan, Magenta, Yellow, Black CNTT Công nghệ thông tin CPU Central Processing Unit Bộ xử lý trung tâm CSDL Cơ sở dữ liệu CU Control Unit Đơn vị điều khiển, nằm trong CPU DBMS Database Management System Hệ quản trị cơ sở dữ liệu viii
  8. Chữ viết tắt Từ tiếng Anh Nghĩa tiếng Việt DDR- Double Data Rate SDRAM, SDRAM có tốc độ truyền dữ liệu gấp đôi SDRAM Dạng biểu diễn ảnh Bitmap mà không phụ DIB Device-Independent Bitmap thuộc vào thiết bị lưu trữ DNS Hệ thống tên miền Internet, cho phép thiết Domain Name System, lập tương ứng giữa địa chỉ IP và tên miền DRAM Dynamic RAM RAM động, được dùng để chế tạo bộ nhớ chính Digital Video Disc, hoặc Digital Đĩa video số, hoặc đĩa đa năng số, một DVD Versatile Disc dạng đĩa quang EEPROM Electrically Erasable Programmable Bộ nhớ chỉ đọc có thể lập trình và xóa ROM bằng điện ENIAC Máy tính và bộ tích hợp số điện tử, tên của Electronic Numerical Intergator chiếc máy tính điện tử đầu tiên trên thế and Computer giới (năm 1946) EOF Tên của ký tự đặc biệt đánh dấu kết thúc End Of File tệp tin FSB Front Side Bus Tên bus bên trong CPU GPL General Public License Một điều kiện áp dụng cho việc sử dụng phần mềm nguồn mở HD (1) High Definition Độ rõ nét cao HD (2) Hard Disk Đĩa cứng, ngầm hiểu là dùng công nghệ từ tính. Một dạng ổ cứng khác dùng công nghệ flash là SSD – ổ cứng thể rắn. HQTCSDL Hệ quản trị cơ sở dữ liệu HTML Hypertext Markup Language Ngôn ngữ đánh dấu siêu văn bản IDE (1) Một chuẩn kết nối khác giữa máy tính với Integrated Drive Electronics các loại ổ đĩa nêu trên IDE (2) Integrated Development Môi trường phát triển tích hợp Environment IP Internet Protocol Giao thức mạng Internet ISP Internet Service Provider Nhà cung cấp dịch vụ Internet KHKT Khoa học kỹ thuật LAN/ MAN/ Local/ Metropolitan/ Wide/ Vast Mạng cục bộ / đô thị / diện rộng / toàn cầu WAN/ VAN Area Network LCD Liquid Crystal Display Màn hình tinh thể lỏng LED Light-Emitting Diode Điốt phát sáng Loại cổng song song để kết nối với máy in LPT Line Printer Terminal theo dòng ix
  9. Chữ viết tắt Từ tiếng Anh Nghĩa tiếng Việt MIPS Million Instructions per Second Số triệu lệnh trên một giây MPEG Moving Picture Experts Group Một định dạng tệp video MS-DOS Microsoft Disk Operating System Hệ điều hành hướng đĩa của hãng Microsoft NAT Network Address Translation Biên dịch địa chỉ mạng NCP Network Control Protocol Giao thức điều khiển mạng NIC Network Interface Card Cạc giao diện mạng ODBMS Object BDMS Hệ quản trị cơ sở dữ liệu hướng đối tượng OS Operating System Hệ điều hành PC Personal Computer Máy tính cá nhân RAM Random Access Memory Bộ nhớ truy nhập ngẫu nhiên RDBMS Relational BDMS Hệ quản trị cơ sở dữ liệu quan hệ Hệ màu gồm 3 màu cơ sở: Red, Green, RGB Blue RISC Reduced Instruction Set Computer Kiến trúc tập lệnh tập lệnh rút gọn [Architecture], ROM Read Only Memory Bộ nhớ chỉ cho phép đọc SATA Một chuẩn gắn kết nối tiếp, để nối ổ đĩa Serial ATA cứng hoặc ổ đĩa quang với bo mạch chủ SDRAM Synchronous DRAM RAM động làm việc được đồng bộ bởi xung đồng hồ SQL Structured Query Language Ngôn ngữ truy vấn có cấu trúc SRAM Static RAM RAM tĩnh, được dùng để chế tạo bộ nhớ cache SSD Solid State Drive Ổ cứng thể rắn, dùng công nghệ flash TCP/IP Transmission Control Protocol/ Giao thức điều khiển truyền dữ liệu/giao Internet Protocol thức Internet USB Universal Serial Bus Bus nối tiếp đa năng, là một chuẩn kết nối các thiết bị ngoại vi với máy tính Tên cạc đồ họa video hoặc cổng kết nối VGA Video Graphics Array máy tính với màn hình hoặc máy chiếu (projector) VXL Vi xử lý XML Ngôn ngữ đánh dấu có thể mở rộng, có khả năng mô tả nhiều loại dữ liệu khác nhau, với mục đích chính là đơn giản hóa eXtensible Markup Language, việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ thống được kết nối với Internet x
  10. Chương 1 GIỚI THIỆU CHUNG Chương 1 giới thiệu những kiến thức cơ bản và nền tảng nhất của Tin học. Mục 1.1 nêu những khái niệm về dữ liệu, thông tin, tin học và công nghệ thông tin. Mục 1.2 trình bày về biểu diễn dữ liệu trong máy tính, các hệ thống số và chuyển đổi giữa các hệ cơ số. Các mã hóa một số dạng dữ liệu thông dụng sẽ được trình bày trong mục 1.3. Cuối cùng, mục 1.4 sẽ giới thiệu những ứng dụng của công nghệ thông tin trong các lĩnh vực đời sống. 1.1. MỘT SỐ KHÁI NIỆM CƠ BẢN Đối với chúng ta, quá trình hình thành trí tuệ bắt đầu từ việc thu nhận và xử lý dữ liệu rời rạc để có thông tin, rồi kiểm nghiệm thông tin để có thể vận dụng vào mục đích cụ thể nào đó ta gọi là tri thức. Trí tuệ là khả năng sử dụng tri thức một cách khôn ngoan nhằm đạt được mục đích. Một ví dụ cụ thể về quá trình trên như sau: - Dữ liệu: mưa, nắng, râm, cao, thấp, vừa, bay, chuồn chuồn, trời. - Thông tin: khi thấy chuồn chuồn bay thấp thường thấy một lúc sau trời mưa, bay cao vừa phải thì trời râm mát, còn khi bay cao thì trời nắng. - Tri thức: chuồn chuồn bay thấp trời mưa, bay cao trời nắng, bay vừa trời râm. - Trí tuệ: khi thấy chuồn chuồn bay thấp thì ta cất quần áo đang phơi. Ví dụ đỉnh cao lợi dụng thời tiết thời Tam Quốc như Chu Du lợi dụng gió đánh hỏa công trận Xích Bích, Gia Cát Lượng lợi dụng mưa tuyết phá trận xe thiết xa của rợ Khương. Trong lĩnh vực công nghệ thông tin, máy tính trợ giúp con người chủ yếu ở khâu đầu tiên, từ dữ liệu đến thông tin. Phần này sẽ giới thiệu tới bạn đọc các khái niệm về dữ liệu, thông tin, tin học và công nghệ thông tin. 1.1.1. Dữ liệu Dữ liệu (Data) là những con số hoặc dữ kiện thuần túy, rời rạc do quan sát hoặc đo đếm được, không có ngữ cảnh hay diễn giải. Dữ liệu sau khi được tổ chức lại và xử lý sẽ cho ra thông tin. Ví dụ: Với một quyển sách thì chữ, hình ảnh là dữ liệu còn nội dung của quyển sách là thông tin. Để biết được nội dung thì phải đọc sách. Việc đọc sách chính là xử lý dữ liệu. Trong thực tế dữ liệu có thể là: - Văn bản: Sách, báo, truyện, công văn - Các loại số liệu: Số liệu thống kê về nhân sự, thời tiết, kho tàng - Âm thanh, hình ảnh: Tiếng nói, âm nhạc, phim ảnh, tranh vẽ 1.1.2. Thông tin Thông tin (Information) là một khái niệm trừu tượng được thể hiện qua các thông báo, các biểu hiện , đem lại một nhận thức chủ quan cho một đối tượng nhận tin. Thông tin là dữ liệu đã được xử lý xong, mang ý nghĩa rõ ràng. Tương tự như dữ liệu, thông tin có thể tồn tại dưới nhiều hình thức khác nhau như âm thanh, hình ảnh, ký tự , có thể được nén, giải nén, mã hóa, giải mã và được truyền tải qua các môi trường vật lý khác nhau như ánh sáng, sóng âm, sóng điện từ. 1
  11. Ví dụ: Khi chúng ta nói chuyện trực tiếp với nhau, thông tin được thể hiện dưới dạng âm thanh và được truyền tải qua môi trường sóng âm. Còn khi chúng ta trao đổi với nhau qua điện thoại, thông tin được biểu diễn dưới dạng âm thanh nhưng được truyền tải qua môi trường sóng điện từ. Tuy nhiên, giữa dữ liệu và thông tin không phải lúc nào cũng đồng nhất với nhau. Ví dụ: Một số kí hiệu trong hệ đếm La Mã mang ý nghĩa thông tin là số nhưng trong hệ thống chữ La-tinh lại mang ý nghĩa là chữ cái. Cùng một dữ liệu nhưng tùy thuộc vào đối tượng tiếp nhận dữ liệu khác nhau lại có thể cho ra khối lượng và chất lượng thông tin khác nhau. Ví dụ: Cùng một tài liệu có sinh viên hiểu được 100% nhưng cũng có sinh viên chỉ hiểu được 50%, có sinh viên có thể phát triển liên hệ được với các vấn đề khác nhưng có sinh viên lại không Hình thức vật lý của thông tin được gọi là tín hiệu. Giữa thông tin và tín hiệu không phải lúc nào cũng đồng nhất với nhau. Cùng một thông tin có thể được biểu diễn bởi nhiều tín hiệu khác nhau và ngược lại cùng một tín hiệu có thể biểu diễn nhiều dạng thông tin khác nhau. Ví dụ: Cùng một thông tin về chỉ dẫn giao thông nhưng có thể được biểu diễn dưới các tín hiệu khác nhau như là đèn tín hiệu giao thông hay là chỉ dẫn của cảnh sát giao thông Hay cùng tín hiệu là gật đầu trong từng trường hợp khác nhau lại biểu diễn thông tin khác nhau tùy thuộc vào câu hỏi 1.1.3. Tin học Thông tin nằm trong dữ liệu, xử lý thông tin bao gồm nhiều quá trình xử lý dữ liệu để rút ra thông tin hữu ích phục vụ con người. Khi xã hội càng phát triển thì khối lượng thông tin, dữ liệu ngày càng nhiều và con người không thể xử lý thông tin một cách thủ công được mà cần tới sự hỗ trợ của máy móc để xử lý thông tin một cách tự động. Trước yêu cầu đó của con người, một ngành khoa học mới đã ra đời, đó là Tin học. Tin học (Informatics) là một ngành khoa học chuyên nghiên cứu các phương pháp, công nghệ và các kỹ thuật xử lý thông tin một cách tự động. Hay nói một cách khác: Tin học là một ngành khoa học chuyên nghiên cứu về khả năng lưu trữ, truyền tải và xử lý thông tin. Điều này đã được thể hiện rõ qua quá trình hình thành và phát triển của ngành tin học. Trước đây, những thiết bị lưu trữ chưa đa dạng có dung lượng nhỏ với dung lượng tính theo Megabyte, Gigabyte được thay thế dần bởi các thiết bị lưu trữ đa dạng, gọn nhẹ hơn nhưng có dung lượng lưu trữ lớn hơn rất nhiều, tính theo Terabyte; Đường truyền thông tin có tốc độ thấp dần được thay thế bởi đường truyền tốc độ cao, không dây; Những bộ vi xử lý có tốc độ thấp dần được thay thế bởi những bộ vi xử lý tốc độ cao, bộ đa xử lý Sản phẩm mà tin học phát minh ra để giúp con người xử lý thông tin tự động là máy vi tính hay máy tính (computer). Từ "tin học" đã được dịch từ từ informatique trong tiếng Pháp. Từ informatics trong tiếng Anh cũng bắt nguồn từ từ tiếng Pháp này, nhưng theo thời gian informatics đã mang nghĩa khác dần với nghĩa ban đầu. Ngày nay, thuật ngữ tiếng Anh tương đương với informatique là computer science, nghĩa là “khoa học máy tính”. Thuật ngữ này được sử dụng rất rộng rãi trên thế giới và đa số các trường đại học ở nước ngoài sử dụng cụm từ Computer Science để đặt tên cho khoa chuyên môn. 2
  12. Khoa học máy tính là ngành nghiên cứu các cơ sở lý thuyết về thông tin và tính toán cùng sự thực hiện và ứng dụng của chúng trong các hệ thống máy tính. Khoa học máy tính gồm nhiều ngành hẹp; một số ngành tập trung vào các ứng dụng thực tiễn cụ thể chẳng hạn như đồ họa máy tính, trong khi một số ngành khác lại tập trung nghiên cứu đến tính chất cơ bản của các bài toán tính toán như lý thuyết độ phức tạp tính toán. Ngoài ra còn có những ngành khác nghiên cứu các vấn đề trong việc thực thi các phương pháp tính toán. Ví dụ, ngành lý thuyết ngôn ngữ lập trình nghiên cứu những phương thức mô tả cách tính toán khác nhau, trong khi ngành lập trình nghiên cứu cách sử dụng các ngôn ngữ lập trình và các hệ thống phức tạp và ngành tương tác người-máy tập trung vào những thách thức trong việc làm cho máy tính và công việc tính toán hữu ích và dễ sử dụng đối với mọi người dùng. (trích từ wikipedia) 1.1.4. Công nghệ thông tin Thuật ngữ Công nghệ thông tin (Information Technology) mang ý nghĩa về khía cạnh kỹ thuật, công nghệ hơn là khía cạnh khoa học. Ở Việt Nam, thuật ngữ này được sử dụng rộng rãi, dễ gây nhầm lẫn là “Công nghệ thông tin” mang nghĩa rộng hơn “Khoa học máy tính”. Luật Công nghệ thông tin do Quốc hội nước Cộng hòa XHCN Việt Nam ban hành ngày 29/6/2006 có đưa ra khái niệm: “Công nghệ thông tin là tập hợp các phương pháp khoa học, công nghệ và công cụ kỹ thuật hiện đại để sản xuất, truyền đưa, thu thập, xử lý, lưu trữ và trao đổi thông tin số”. Ở đây, thông tin số là thông tin được tạo lập bằng phương pháp dùng tín hiệu số. Trước đây, khi muốn gửi thư người ta thường dùng phương pháp chuyển thư tay nhưng giờ đây đã được thay thế bằng thư điện tử. Với khối lượng lớn công văn giấy tờ trong các cơ quan, xí nghiệp, trường học việc lưu trữ số trở nên đơn giản và gọn nhẹ hơn. 1.2. CÁC HỆ THỐNG SỐ VÀ CÁC PHÉP TOÁN DÙNG TRONG MÁY TÍNH Trong máy tính có sử dụng 3 hệ thống số là hệ cơ số 10 (gọi tắt là hệ 10), hệ cơ số 2 và hệ cơ số 16. Trong đó, hệ 2 là hệ cốt lõi được bộ vi xử lý sử dụng để tính toán, xử lý (ta sẽ xét kỹ hơn ở mục 1.3). Trong mục này sẽ giới thiệu các nội dung về 3 hệ thống số và chuyển đổi giữa chúng, các phép toán số học trên hệ 2 và các phép toán logic. 1.2.1. Các hệ thống số a. Hệ cơ số 10 (Hệ thập phân - Decimal Numeral System) Hệ 10 là hệ đếm được sử dụng để đếm và tính toán trong đời sống hàng ngày. Hệ 10 sử dụng 10 ký hiệu số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 để biểu diễn các số. Các chương trình máy tính thường cho phép người dùng nhập vào các số hệ 10, xuất kết quả ở hệ 10, nhưng quá trình tính toán trung gian ở bên trong là các số hệ 2. Khi làm việc với nhiều hệ thống số khác nhau, để phân biệt một số viết trong hệ cơ số này với một số viết trong hệ cơ số khác người ta thường viết kèm theo chỉ số có giá trị bằng cơ số của hệ đếm. Ví dụ: 209210; 789,1210; 12A16; 101102 Một số hệ 10 có thể biểu diễn ở dạng khai triển theo cơ số 10. Ví dụ: 3 2 1 0 -1 -2 8623,5610 = 8 10 + 6 10 + 2 10 + 3 10 + 5 10 + 6 10 Trong đó: - 8, 6, 2, 3, 5, 6 là các chữ số thành phần của số 8623,56 3
  13. - 10 là cơ số của hệ - Số mũ tương ứng với vị trí của chữ số thành phần: bằng 0 với chữ số phần nguyên nhỏ nhất, tăng dần về phía trái (1, 2, 3 ), giảm dần về phía phải (-1, -2 ). Từ hệ cơ số 10 ta tổng quát hóa cho hệ cơ số a (a 2). Số hệ a có các chữ số là bi, Na = bnbn-1 b1b0,b-1b-2 b-m có thể biểu diễn theo cơ số a như sau: n n-1 1 0 -1 -2 -m Na = bn a + bn-1 a + + b1 a + b0 a + b-1 a + b-2 a + + b-m a (1.1) Giá trị của tổng ở vế phải trong công thức (1.1) được gọi là giá trị của số Na. Công thức (1.1) sẽ được sử dụng để chuyển đổi số hệ a sang hệ 10. b. Hệ cơ số 2 (Hệ nhị phân - Binary Numeral System) - Hệ 2 hay hệ nhị phân chỉ sử dụng 2 ký hiệu số là 0 và 1 để biểu diễn các số. Đây là hệ cơ số cơ sở của máy tính. Máy tính chỉ lưu trữ và xử lý các dữ liệu ở dạng số nhị phân. - Có thể biểu diễn một số trong hệ 2 ra thành tổng các hệ số nhân theo quy tắc nêu ở phần trên: 4 3 2 1 0 Ví dụ: 100112 = 1 2 + 0 2 + 0 2 + 1 2 + 1 2 = 1910 c. Hệ cơ số 16 (Hexadecimal Numeral System) - Hệ 16 sử dụng 16 ký hiệu để biểu diễn các số: 10 ký hiệu số từ 0, 1 , 9 để biểu diễn các giá trị từ 0 đến 9 và 6 ký hiệu chữ A, B, C, D, E, F để biểu diễn các giá trị từ 10 đến 15. - Hệ 16 được dùng để đánh địa chỉ các ô nhớ, địa chỉ vật lý của các máy tính trong mạng (địa chỉ MAC), địa chỉ của các cổng vào-ra trong máy tính. Các địa chỉ này hiển thị cho người dùng ở dạng số hệ 16 mà không phải hệ 2 vì lý do làm cho địa chỉ ngắn gọn hơn, dễ nhớ, dễ sử dụng hơn. - Có thể biểu diễn một số trong hệ 16 ra thành tổng các hệ số nhân với lũy thừa của cơ số. 2 1 0 Ví dụ: 12A16 = 1 16 + 2 16 + A 16 = 29810 1.2.2. Chuyển đổi giữa các hệ cơ số a. Chuyển từ hệ a sang hệ 10 Quy tắc: Muốn chuyển một số hệ a (2 hoặc 16) sang hệ 10 ta đem triển khai số trong hệ a ra thành tổng các hệ số nhân với lũy thừa của cơ số, khi đó ta sẽ được biểu thức trong hệ 10. Tính giá trị của biểu thức đó ta sẽ được số tương ứng trong hệ 10. Ví dụ: 5 4 3 2 1 0 1101012 = 1 2 + 1 2 + 0 2 + 1 2 + 0 2 + 1 2 = 32 + 16 + 4 + 1 = 5310 2 0 0 10F16 = 1 16 + 0 161 + F 16 = 256 + 15 16 = 256 + 15 = 27110 b. Chuyển từ hệ 10 sang hệ a Ta chỉ xét trường hợp chuyển số nguyên hệ 10 sang hệ a. * Quy tắc: Đem số hệ 10 chia nguyên liên tiếp cho cơ số a cho tới khi thương bằng 0 thì dừng lại, với mỗi phép chia ta nhận được một số dư. Lấy các số dư của phép chia theo thứ tự ngược lại ta được số trong hệ a (số dư của phép chia cuối cùng là chữ số có trọng số lớn nhất, chữ số đầu tiên bên trái). 4
  14. Ví dụ 1: Đổi số 3410 sang hệ 2, ta thực hiện các phép chia như sau: 34 2 dư 0 17 2 1 8 2 0 4 2 0 2 2 0 1 2 1 0 Kết quả là 3410 = 1000102 Ví dụ 2: Đổi số 17210 sang hệ 16 172 16 dư 12 10 16 10 0 Kết quả là 17210 = AC16 (10 ứng với A, 12 ứng với C) c. Chuyển từ hệ 2 sang hệ 16 Bảng 1.1. Mười sáu số đầu tiên trong 3 hệ cơ số Hệ 10 Hệ 2 Hệ 16 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F Nhận xét: Từ bảng trên ta thấy khi hệ 16 dùng đến chữ số lớn nhất thì hệ 2 phải dùng đến 4 chữ số. Vì 16 = 24, mỗi chữ số hệ 16 sẽ tương đương với 4 chữ số hệ 2. Quy tắc: Để chuyển một số từ hệ 2 sang hệ 16 ta nhóm thành các nhóm 4 chữ số hệ 2 từ phải qua trái, sau đó chuyển từng nhóm 4 chữ số hệ 2 thành các chữ số hệ 16. 5
  15. Ví dụ: 110 1100 10112 = ?16 0110 1100 1011 => 6CB16 d. Chuyển từ hệ 16 sang hệ 2 Quy tắc: chuyển từng chữ số hệ 16 thành 4 chữ số hệ 2. Ví dụ: 9C0A16 = ?2 = 1001 1100 0000 10102 1.2.3. Các phép toán số học trên hệ 2 a. Phép cộng Bảng cộng hai bit: A B Tổng Số nhớ (Sum, S) (Carry, C) 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Cách thức thực hiện phép cộng hai số hệ 2 thủ công: Thực hiện cộng như trong hệ 10, cộng từng cột bit từ phải qua trái, có nhớ sang cột bit cao hơn. Ví dụ: C 1 1 A 0 1 0 1 1 B 1 0 0 1 1 A+B 1 1 1 1 0 Trong máy tính, phép cộng hai bit được thực hiện bằng mạch cộng như sau: A S + B C b. Phép trừ Trong kỹ thuật máy tính, để tận dụng các mạch cộng đã có sẵn người ta thực hiện phép trừ thông qua phép cộng và phép lấy số đối: cộng số bị trừ với số đối của số trừ. A - B = A + (-B) Vấn đề đặt ra là phải có cách biểu diễn số âm trong hệ 2 trong máy tính để các phép tính toán vẫn cho kết quả đúng. Cách biểu diễn số nguyên và số thực (dương, âm) sẽ được trình bày ở mục 1.3. c. Phép nhân và phép chia Trong máy tính, phép nhân và phép chia được thực hiện qua phép cộng, phép trừ và phép dịch bit. Ở mức đại cương, chúng ta không xét sâu hơn hai phép toán này ở đây. 6
  16. 1.2.4. Các phép toán logic Ngoài việc hỗ trợ các phép toán số học, máy tính cũng phải hỗ trợ các phép toán logic như NOT, AND, OR vì sự cần thiết của chúng. Ta hay phải làm việc với các phép toán logic trong bảng tính Excel hay trong khi lập trình. Ví dụ với ngôn ngữ lập trình Pascal, để kiểm tra một biến x có nằm trong khoảng [7,8) hay không, nếu đúng thì viết dòng “Điểm B”: If (x>=7) and (x<8) then Writeln(“Diem B”); Giá trị logic biểu diễn một trong hai trạng thái đối lập là đúng/sai, có/không. Trong đại số logic giá trị đúng được gọi là TRUE, giá trị sai được gọi là FALSE. Các phép toán logic tác động trên các giá trị logic TRUE, FALSE gồm có: a. Phép toán NOT (phủ định hay đảo) Bảng chân lý: X NOT X FALSE TRUE TRUE FALSE b. Phép toán AND (và) Bảng chân lý: X Y X AND Y FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE TRUE TRUE Nhận xét: Phép toán AND chỉ cho kết quả “đúng” khi cả hai toán hạng đều “đúng”. c. Toán tử OR (hoặc) Bảng chân lý: X Y X OR Y FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE Nhận xét: Phép toán OR chỉ cho kết quả “sai” khi cả hai toán hạng đều “sai”. d. Toán tử XOR (eXclusive OR, hoặc loại trừ) Bảng chân lý: 7
  17. X Y X XOR Y FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE FALSE Nhận xét: Phép toán XOR cho kết quả “đúng” khi hai toán hạng khác nhau, cho kết quả “sai” khi hai toán hạng giống nhau. e. Biểu thức logic và thứ tự ưu tiên các phép toán - Biểu thức logic là sự kết hợp các giá trị logic bằng các phép toán logic để tạo ra một giá trị logic mới. Mỗi biểu thức logic có kết quả là một giá trị hoặc đúng (TRUE) hoặc sai (FALSE). - Nếu trong biểu thức logic có chứa nhiều phép toán logic thì các phép toán logic được thực hiện theo thứ tự ưu tiên sau: NOT AND OR, XOR (OR và XOR cùng mức ưu tiên). Các phép toán cùng mức ưu tiên được thực hiện từ trái qua phải. Ví dụ: (Các SV có hộ khẩu Hà Nội) AND NOT (Các SV dân tộc Kinh) Trong ví dụ này cần ưu tiên thực hiện phép NOT trước rồi mới thực hiện phép AND. 1.3. BIỂU DIỄN VÀ MÃ HÓA THÔNG TIN 1.3.1. Biểu diễn thông tin trong máy tính và các đơn vị thông tin a. Biểu diễn thông tin trong máy tính Như đã đề cập ở mục 1.1, dữ liệu thực có thể tồn tại ở nhiều dạng khác nhau: dạng số (số nguyên, số thực) hoặc phi số (chữ viết, âm thanh, hình ảnh). Tuy nhiên, máy tính chỉ xử lý được dữ liệu ở dạng số nhị phân (hệ cơ số 2). Do vậy, dữ liệu thực bất kể ở dạng nào muốn đưa vào máy tính để lưu trữ, xử lý, hay truyền tải cần phải được mã hóa (số hóa thành số nhị phân). Sau khi xử lý, dữ liệu kết quả sẽ được khôi phục lại ở dạng dễ hiểu, dễ cảm nhận đối với con người. Sở dĩ trong máy tính chỉ dùng được số nhị phân để biểu diễn thông tin là vì các linh kiện và vật liệu điện tử dùng để chế tạo bộ nhớ trong của máy tính (flip-flop, tụ điện) chỉ có hai trạng thái đối lập (ví dụ như có điện hoặc không có điện), tương ứng được biểu diễn là 1 và 0. b. Các đơn vị thông tin Trong khoa học máy tính, mỗi chữ số nhị phân được gọi là một bit (viết tắt của từ tiếng Anh là BInary digiT). Mỗi ô nhớ trong máy tính lưu trữ được một bit. Bản thân mỗi ô nhớ đó còn được gọi là một bit. Các bit được đánh số thứ tự bắt đầu từ 0. Một nhóm 8 bit bắt đầu từ bit thứ 8i (i ≥ 0, nguyên) được gọi là một byte. Các byte được đánh địa chỉ bắt đầu từ 0. Byte 0 gồm các bit từ 0 đến 7, byte 1 gồm các bit từ 8 đến 15 Một đơn vị nữa cũng hay được sử dụng là word (từ nhớ). Một word gồm 2, 4, hay 8 byte tùy thuộc vào bộ vi xử lý (CPU) cụ thể có thể xử lý mỗi lần được bao nhiêu byte. Các đơn vị bội của byte hay được sử dụng và cách quy đổi như sau: 1 Kilobyte (1 KB) = 210 byte = 1024 byte 1 Megabyte (1 MB) = 210 KB = 220 byte = 1.048.576 byte 8
  18. 1 Gigabyte (1 GB) = 210 MB = 220 KB = 230 byte 1 Terabyte (1 TB) = 210 GB = 220 MB = 230 KB = 240 byte 1.3.2. Khái niệm về mã hóa Mã hóa thông tin trong máy tính thực chất là số hóa dữ liệu thành các chuỗi số nhị phân (hình 1.1) theo những quy ước chung để các máy tính có thể lưu trữ, xử lý và trao đổi thông tin với nhau. Hình 1.1. Sơ đồ số hóa dữ liệu Trong máy tính người ta dùng các số nhị phân có độ dài (số bit) cố định để biểu diễn thông tin. Các số nhị phân này được gọi là từ mã. Với độ dài từ mã là n, ta có thể biểu diễn được 2n thông tin khác nhau. Ví dụ: - Nếu dùng 1 byte (8 bit) để biểu diễn các số nguyên không dấu thì ta có thể biểu diễn được 28 = 256 số có giá trị từ 0 đến 255 như sau: Từ mã Số nguyên 0000 0000 0 0000 0001 1 0000 0010 2 . 1111 1111 255 - Nếu dùng 1 byte để biểu diễn các ký tự (chữ cái, chữ số thập phân, các dấu chấm câu, các ký hiệu phép toán ) thì có thể biểu diễn được 28 = 256 ký tự khác nhau. Cách mã hóa các loại dữ liệu được tuân theo những chuẩn chung để các máy tính có thể “hiểu” được nhau khi trao đổi, xử lý thông tin. - Các ký tự: mã hóa theo bảng mã ASCII hoặc Unicode - Các số nguyên: mã hóa theo một số chuẩn quy ước - Các số thực: mã hóa theo số dấu phẩy động - Dữ liệu ảnh, âm thanh, phim: mã hóa rời rạc thành các ma trận số thực biểu diễn cường độ sáng, tần số âm. Câu hỏi đặt ra là làm sao máy tính phân biệt được chuỗi số nhị phân nào ứng với dữ liệu dạng số, chuỗi nào ứng với dạng ký tự Ví dụ với một chuỗi 8 bit 0100 0001, khi nào thì máy tính cần hiểu đó là biểu diễn của số 6510, khi nào cần hiểu là biểu diễn của ký tự ‘A’? Để thực hiện được điều này, bằng cách nào đó các chương trình máy tính hoặc người sử dụng phải khai 9
  19. báo kiểu và cấu trúc dữ liệu của các thành phần trong chương trình để hệ điều hành ghi nhớ vào các vùng nhớ thích hợp có địa chỉ và kích thước xác định. Ví dụ, với file ảnh thì các thông tin đó được chương trình tạo ảnh số lưu ở đầu file. Với các ngôn ngữ lập trình, người lập trình sẽ khai báo các hằng, biến qua các câu lệnh. Ta lấy ví dụ trong ngôn ngữ Pascal như sau: Var ch: char; {biến ch có kiểu ký tự} st: string; {biến st có kiểu chuỗi ký tự} i: byte; {biến i có kiểu số nguyên không dấu 8 bit} j: shortint; {biến j có kiểu số nguyên có dấu 8 bit} k1: word; {biến k1 có kiểu số nguyên không dấu 16 bit} k2: integer; {biến k2 có kiểu số nguyên có dấu 16 bit} m: longint; {biến m có kiểu số nguyên có dấu 32 bit} r: real; {biến r có kiểu số thực 6 byte} t: double; {biến t có kiểu số thực 8 byte} Các mục con tiếp theo sẽ trình bày việc mã hóa các loại dữ liệu thông dụng gồm: ký tự, số nguyên, số thực, ảnh tĩnh, âm thanh và phim ảnh. 1.3.3. Mã hóa tập ký tự Về nguyên tắc, mỗi quốc gia đều có thể tự thiết kế một bảng mã riêng để biểu diễn các ký tự của nước mình. Nếu làm như vậy thì các máy tính và thậm chí các bộ phận của cùng một máy tính sẽ không hiểu nhau khi kết nối với nhau. Bởi vậy, các nước phải quy định dùng chung một bảng mã để biểu diễn ký tự, bảng mã này được gọi là bảng mã chuẩn. Trong thực tế có nhiều bảng mã chuẩn nhưng được sử dụng phổ biến nhất trên máy tính hiện nay là bảng mã ASCII (America Standard Code for Information Interchange) và bảng mã Unicode. Bảng mã ASCII có 256 từ mã 8 bit, biểu diễn 256 ký tự khác nhau. Bảng mã ASCII được chia thành phần tiêu chuẩn (gồm các từ mã có giá trị trong hệ 10 từ 0 đến 127) và phần mở rộng (có mã từ 128 đến 255). Các máy tính trên thế giới có bảng mã ASCII tiêu chuẩn giống nhau, phần mở rộng có thể khác nhau vì được dùng để biểu diễn các ký tự của riêng từng nước. Bảng 1.2. Bảng mã ASCII tiêu chuẩn Các bit cao p ấ Các bit th ` Ví dụ: ký tự ‘A’ được mã hóa thành 0100 0001 (= 6510). Khi ta ấn Shift+A trên bàn phím, một xung điện truyền đến bộ xử lý máy tính có dạng tương ứng là: 10
  20. 1 1 0 0 0 0 0 0 Tại các chu kỳ có mức điện thế thấp, ô nhớ tương ứng sẽ được ghi bit 0; các ô nhớ tương ứng với các chu kỳ có mức điện thế cao sẽ được ghi bit 1. Máy tính xử lý chuỗi nhị phân đó rồi “vẽ” lên màn hình ký tự ‘A’. Do bảng mã ASCII mở rộng của các nước trên thế giới khác nhau nên khi gửi một văn bản từ nước này sang nước khác thì văn bản không hiển thị đúng. Bởi vậy, cả thế giới lại thống nhất dùng chung một bảng mã trong đó biểu diễn được tất cả ký tự của các nước, bảng mã này được gọi là bảng mã Unicode. Bảng mã Unicode có 65536 (= 216) từ mã 16 bit. 128 từ mã đầu tiên của Unicode mã hóa giống với ASCII. 1.3.4. Mã hóa số nguyên và số thực Khi ta nhập vào các số hệ 10, máy tính cũng phải tính toán ở hệ 2. Số nguyên và số thực được biểu diễn trong máy tính theo các chuẩn khác nhau. a. Số nguyên Máy tính có thể dùng 8 bit, 16 bit hoặc 32 bit để biểu diễn một số nguyên, càng dùng nhiều bit thì biểu diễn được số nguyên càng lớn. Với 32 bit, máy tính có thể biểu diễn được các số nguyên trong đoạn [-2.147.483.648, 2.147.483.647]. Muốn biểu diễn, tính toán được với số nguyên vượt ra ngoài khoảng này, ta phải dùng cách biểu diễn của số thực. Có 2 loại số nguyên biểu diễn trong máy tính: - Số nguyên không dấu: các số nguyên lớn hơn hoặc bằng 0. - Số nguyên có dấu: gồm số 0 và các số nguyên âm, số nguyên dương. Sau đây, ta xét cách mã hóa với số nguyên không dấu và có dấu 8 bit. Số nguyên 16 bit và 32 bit được suy ra tương tự. Số nguyên không dấu 8 bit Với số không dấu, máy tính dùng cả 8 bit để biểu diễn độ lớn, có thể biểu diễn được 28 = 256 số nguyên. Dải biểu diễn là 0000 0000 1111 1111 (hay 0 25510). Số mã hóa Số nguyên 0000 0000 0 0000 0001 1 0000 0010 2 1111 1111 255 Cách biểu diễn: + Đổi số hệ 10 sang hệ 2. + Thêm vào bên trái số nhị phân các bit 0 cho đủ 8 bit. Với số 3410 trong một ví dụ ở trên, ta đã tính được 3410 = 1000102. Vậy số 3410 được biểu diễn trong máy tính bởi 8 bit như sau: 0010 0010. 11
  21. Số nguyên có dấu 8 bit Với số nguyên có dấu, máy tính dùng bit đầu tiên để biểu diễn dấu, 7 bit còn lại biểu diễn độ lớn. Bit dấu bằng 0 thể hiện số dương, bằng 1 thể hiện số âm. Dải biểu diễn của số nguyên có dấu 8 bit là 1000 0000 0111 1111 (hay -12810 +12710). Bit dấu Với nửa dương, dải biểu diễn từ 0000 0000 0111 1111 Số mã hóa Số nguyên 0000 0000 0 0000 0001 1 0000 0010 2 0111 1111 127 Với nửa âm, dải biểu diễn từ 1000 0000 1111 1111 Số mã hóa Số nguyên 1000 0000 -128 1000 0001 -127 1000 0010 -126 1111 1111 -1 Mỗi số nguyên âm được biểu diễn bởi số bù 2 của biểu diễn số nguyên dương tương ứng chứ không đơn giản chỉ thay mỗi bit đầu tiên từ 0 thành 1. Cách tìm biểu diễn 8 bit của một số nguyên âm được máy tính thực hiện qua các bước: - Bước 1: Tìm biểu diễn 8 bit của số nguyên dương tương ứng. - Bước 2: Tìm số bù 1 của số vừa tìm được bằng cách đảo tất cả các bit (dùng toán tử NOT). - Bước 3: Tìm số bù 2 bằng cách lấy số bù 1 cộng thêm 1. Ví dụ: Để tìm biểu diễn của số nguyên -3410: - Bước 1: Tìm được biểu diễn 8 bit của +3410 là 0010 0010 - Bước 2: Tìm được số bù 1 là 1101 1101 - Bước 3: Cộng 1 vào số bù 1 Số bù 1: 1101 1101 + 1 Số bù 2: 1101 1110 Vậy biểu diễn 8 bit của số -3410 trong máy tính là 1101 1110. 12
  22. Lưu ý là cách lấy bù 2 có tính chất 2 chiều. Tìm số bù 2 của biểu diễn số nguyên âm ta cũng được biểu diễn của số nguyên dương tương ứng. Cách biểu diễn này giúp cho việc tính toán trong máy tính cho những kết quả chính xác. Ví dụ: Phép cộng 2 số đối nhau phải cho kết quả bằng 0. Ta sẽ kiểm nghiệm với phép cộng +3410 với -3410 được thực hiện trong máy tính. +3410: 0 0 1 0 0 0 1 0 -3410: + 1 1 0 1 1 1 1 0 Tổng: 0 0 0 0 0 0 0 0 Kết quả lấy 8 bit là 0000 0000, bằng 010. Số nhớ tràn ra ngoài 8 bit không được tính vào tổng cuối. b. Số thực Các số thực được biểu diễn bởi số dấu phẩy động (floating point number) theo chuẩn IEEE 754. Một số thực có thể được viết theo nhiều cách với vị trí dấu phẩy khác nhau (nên gọi là “dấu phẩy động”). Ví dụ với số 580,0410: 2 1 -1 -2 580,9410 = 5,8094 x 10 = 58,094 x 10 = 5809,4 x 10 = 58094,0 x 10 Để biểu diễn số phẩy động, số phải được phân tích dưới dạng mũ: ±Px X = ± mx x 10 Trong đó: mx là phần định trị. ±Px là phần mũ. Ta thấy, một số có thể được phân tích ra thành nhiều số dạng mũ khác nhau, tuy nhiên nếu ràng buộc cho phần định trị là một số trong khoảng 1 và 10-1 thì việc phân tích luôn luôn là duy nhất và được gọi là dạng chuẩn. Bit dấu Phần mũ Phần định trị Chuẩn IEEE 754 sử dụng các dạng 32 bit, 44 bit, 64 bit và 80 bit. Ví dụ với dạng 32 bit, bit đầu tiên biểu diễn dấu, 8 bit kế tiếp cho phần mũ, 23 bit còn lại cho phần định trị; dải biểu diễn (xấp xỉ) từ -10-38 1038. 1.3.5. Mã hóa dữ liệu logic Dữ liệu logic là loại dữ liệu chỉ nhận một trong hai giá trị là TRUE/FALSE, hoặc 1/0. Do đó, việc mã hóa dữ liệu logic người ta thường chỉ dùng 1 byte. 1.3.6. Mã hóa hình ảnh tĩnh Kích thước của các hình ảnh là đáng kể, vì thế người ta cần có phương pháp mã hóa để giảm kích thước của các ảnh. Có rất nhiều kiểu mã hóa ảnh trong đó ảnh bitmap và ảnh vector là hai kiểu thông dụng nhất. Ảnh bitmap Ảnh bitmap dùng lưới các điểm ảnh (pixel) để biểu thị hình ảnh. Mỗi điểm ảnh được gán một vị trí và gán giá trị mầu cụ thể. Do đó, ảnh bitmap là ảnh được tạo bởi ma trận các điểm ảnh. Một ảnh theo chuẩn VGA với độ phân giải 640x480 có nghĩa là một ma trận gồm 480 đường ngang và mỗi đường gồm 640 điểm ảnh. 13
  23. Hình 1.2. Ví dụ dạng số hóa của một ảnh bitmap Một điểm ảnh được mã hóa tùy thuộc vào chất lượng của ảnh: - Ảnh đen trắng: Sử dụng một bit để mã hóa một điểm: giá trị 0 cho điểm ảnh màu đen và 1 cho điểm ảnh màu trắng. - Ảnh 256 mức xám: Mỗi điểm được thể hiện bằng một byte (8 bit). - Ảnh màu: Thường sử dụng hệ màu RGB, gồm phối trộn của 3 màu đỏ (Red), xanh lá (Green) và xanh dương (Blue) theo tỷ lệ khác nhau để tạo ra hàng triệu màu. Vì thế một màu bất kỳ có thể được biểu biễn bởi biểu thức: x = aR + bG + cB Trong đó a, b, c là các lượng của các màu cơ bản. Thông thường một ảnh đẹp sẽ có lượng màu với giá trị từ 0 đến 255. Và như thế, một ảnh màu thuộc loại này được thể hiện bằng 3 ma trận tương ứng cho 3 loại màu cơ bản. Mỗi phần tử của mảng có giá trị của 8 bit. Chính vì thế cần có 24 bit để mã hóa cho một điểm ảnh màu. Ảnh vector Ảnh Vector được tạo bởi các đoạn thẳng và đường cong được định nghĩa bằng các đối tượng toán học gọi là Vector. Hình Vector mô tả hình ảnh dựa trên các thuộc tính hình học của hình ảnh đó. Hình 1.3. Ảnh vector Với ảnh vector, kiểu này chỉ phù hợp với các ảnh có thành phần là các điểm rời rạc, các đường hoặc hình thể hiện bằng các đường biên (bản đồ, bản vẽ kỹ thuật ). Cách lưu trữ là lưu thông tin về các thành phần của ảnh. Ví dụ: lưu tọa độ các đầu mút đối với đoạn thẳng, lưu tọa độ tâm và bán kính đối với hình tròn Với cách lưu thông tin như trên, các ảnh vector thường gọn gàng và linh hoạt trong việc phóng to thu nhỏ. 14
  24. 1.3.7. Mã hóa âm thanh và phim ảnh Các tín hiệu âm thanh và phim ảnh là những tín hiệu dạng tương tự (Analog), tần số (cao độ) và thời gian (trường độ) đều là các số nên mã hóa được. Việc số hóa các tín hiệu này có thể thực hiện qua 3 bước: lấy mẫu, lượng tử và mã hóa. - Lấy mẫu: Từ tín hiệu liên tục ban đầu có thể rời rạc hóa để thu được tập các số đo biên độ theo thời gian (hình 1.4a). - Lượng hóa: Lấy tương ứng các giá trị của biên độ với giá trị thang đo (hình 1.4b). - Mã hóa: Mỗi một giá trị sau đó được mã hóa thành các giá trị nhị phân và đặt vào trong các tệp tin. Ví dụ: 011001100110111110101110110010 (hình 1.4c) a) b) c) Hình 1.4. Số hóa tín hiệu tương tự Như vậy, âm thanh hay phim ảnh chúng ta nghe hay xem từ máy tính thực chất là chuỗi những âm thanh, hình ảnh rời rạc nhau, nhưng các khoảng rời rạc đó là quá nhỏ khiến chúng ta vẫn có cảm giác những âm thanh, hình ảnh đó là liên tục. Khoảng cách (tần số) lấy mẫu càng nhỏ thì âm thanh, hình ảnh càng “liên tục”, tuy nhiên khi đó kích thước dữ liệu cần lưu trữ, xử lý sẽ tăng lên đáng kể. Ngoài tần số lấy mẫu, dung lượng tệp tin dạng này còn phụ thuộc vào dải giá trị biên độ. Ví dụ trong hình 1.4, các giá trị biên độ được lượng hóa thành các giá trị nguyên trong đoạn [0,7], gồm 8 giá trị. Tập giá trị này chỉ cần 3 bit để mã hóa (vì 8 = 23). Nhưng nếu tập giá trị biên độ chỉ cần mở rộng thành [0,8], ta sẽ phải cần đến 4 bit để mã hóa. Như vậy, dung lượng lưu trữ cho mỗi mẫu tăng thêm 1 bit. Với số lượng hàng triệu mẫu cho mỗi file âm thanh thì dung lượng tăng thêm là rất đáng lưu ý. 1.4. ỨNG DỤNG CỦA CÔNG NGHỆ THÔNG TIN Công nghệ thông tin được ứng dụng trong tất cả các lĩnh vực hoạt động của con người mà cần xử lý thông tin tự động. 1.4.1. Các bài toán khoa học kỹ thuật Đối với các bài toán khoa học kỹ thuật, thuật toán thường phức tạp. Ví dụ nhóm các bài toán dự báo (tài chính, thời tiết ), nhóm các bài toán thiết kế (robot, tên lửa, công trình thủy điện ), nhóm các bài toán thăm dò (khoáng sản, thị trường, vũ trụ ) Để giải các bài toán đó đòi hỏi phải thực hiện một khối lượng các phép toán khổng lồ lên đến hàng trăm triệu, thậm chí hàng tỉ phép toán. Việc sử dụng tính toán dựa trên sức người là điều không tưởng trong trường hợp này, việc đó không những tốn kém về thời gian công sức mà kết quả cũng như độ tin cậy không được đánh giá cao. Với sự ra đời của máy tính điện tử đã góp phần giải quyết được các bài toán khoa học kỹ thuật một cách tối ưu và triệt để. Trong giai đoạn đầu, những năm 1950- 1970, do máy tính còn ít và giá thành máy tính khá đắt nên chúng chưa được ứng dụng rộng rãi trong cuộc sống mà mới chỉ được dùng cho mục đích khoa học kỹ thuật. 15
  25. Ngày nay, đối với rất nhiều bài toán khoa học kỹ thuật, người ta muốn kết quả đưa ra không phải dưới dạng số liệu mà còn thể hiện minh hoạ cho lời giải. Vì thế kể từ khi máy tính được trang bị những màn hình có khả năng thể hiện đồ hoạ thì xử lý hình học là một trong những vấn đề được quan tâm nhiều đối với các bài toán khoa học kỹ thuật. Với những máy tính như vậy người ta có thể làm việc theo kiểu tương tác với các sự kiện đang mô phỏng trên máy tính như sửa chữa các bản thiết kế, điều khiển một nhóm đối tượng phức tạp thông qua các hình ảnh mô phỏng trên màn hình. Cùng với sự phát triển của mình, CNTT đã được áp dụng trên hầu hết các mặt của đời sống xã hội. Tuy nhiên các bài toán khoa học kỹ thuật vẫn có chỗ đứng nhất định, là cơ sở, là nền tảng cho sự phát triển các lĩnh vực khác và sự ra đời siêu máy tính đã trở thành công cụ hữu ích hỗ trợ giải quyết các bài toán khoa học kỹ thuật. 1.4.2. Các bài toán quản lý Trước đây, khi CNTT còn chưa phổ biến, các hoạt động văn thư và hành chính trong các cơ quan chủ yếu là các thao tác thủ công và phụ thuộc rất nhiều vào sự góp mặt của con người. Các thao tác thủ công đó rất đơn giản trong quy trình và dễ thực hiện các thao tác. Do đó, với các nhân viên có chút kinh nghiệm và hiểu biết về nghiệp vụ đều có thể thực hiện được. Tuy nhiên, nhược điểm của nó lại quá lớn: tốn thời gian, công sức, không cập nhật thường xuyên, những rủi ro về mất mát thông tin, giấy tờ trong lưu trữ, gây lãng phí không nhỏ về kết quả thông tin lưu trữ Ngày nay, với sự phát triển không ngừng của CNTT đã đưa con người sang một kỷ nguyên mới, kỷ nguyên của công nghệ, kỷ nguyên của máy móc thay thế một phần hoạt động của con người. Với việc ứng dụng CNTT vào đời sống xã hội đã đem lại nhiều lợi ích cho các cơ quan, tổ chức, làm giảm chi phí, thời gian, công sức, tăng khả năng lưu trữ Các hoạt động quản lý rất đa dạng và xuất hiện rất nhiều trong xã hội, ở đâu có tổ chức là ở đó có nhu cầu quản lý. Khác với bài toán khoa học kỹ thuật, các bài toán quản lý có quy trình xử lý đơn giản nhưng khối lượng thông tin lưu trữ lại lớn. Một bài toán quản lý thường có những công việc sau: - Tạo cơ sở dữ liệu (CSDL): Tập hợp các dữ liệu, thông tin cần được tổ chức lưu trữ của hệ thống cần quản lý và quản lý một cách thống nhất trên máy tính. - Duy trì cơ sở dữ liệu: Cập nhật dữ liệu thường xuyên để đảm bảo dữ liệu phản ánh đúng và kịp thời hoạt động của hệ thống quản lý. - Sử dụng cơ sở dữ liệu: Có hai hình thức sử dụng là tra cứu và thống kê. Kiểu sử dụng dạng tra cứu nhằm tìm ra các thông tin vốn có trong CSDL theo một tiêu chuẩn nào đó. Ví dụ lập danh sách sinh viên có học bổng, lập danh sách các cán bộ nghỉ hưu Việc tra cứu dữ liệu thường được thực hiện thông qua các chương trình và các chương trình đó sẽ truy cập trực tiếp vào CSDL và xử lý theo yêu cầu tra cứu. Do đó, hoạt động tra cứu thông thường chỉ trích ra các dữ liệu có sẵn trong cơ sở dữ liệu. Kiểu sử dụng dữ liệu dạng thống kê thường thiên về tính đếm để rút ra các đặc trưng thống kê như tính tổng có điều kiện, lấy trung bình, tính các giá trị lớn nhất hay nhỏ nhất. Ví dụ, sau khi cập nhật kết quả của một kỳ thi có thể phải đánh giá chất lượng sinh viên thông qua những thống kê về điểm xuất sắc, giỏi, khá, trung bình, yếu, kém. Mục đích cuối cùng của các hệ thông tin quản lý là hỗ trợ cho quá trình ra quyết định của một tổ chức hay cá nhân. Ví dụ, thông qua thống kê hàng tồn kho mà quyết định giảm giá, tra cứu những sinh viên đủ điều kiện để quyết định hình thức và mức khen thưởng. Vì thế các phần 16
  26. mềm quản lý thường phải được xây dựng trên cơ sở các hoạt động hỗ trợ quyết định, chứ không đơn giản chỉ là tra cứu hay thống kê. Quản lý là lĩnh vực sử dụng tin học nhiều nhất. Người ta ước tính 85% đầu tư tin học là dành cho quản lý. Những hệ thống như quản lý ngân hàng, kế toán xí nghiệp, quản lý bán hàng và kho tàng, quản lý nhân sự đều là những ứng dụng trong lĩnh vực quản lý. 1.4.3. Tự động hóa Trước đây, khi CNTT còn chưa phát triển, kỹ thuật tự động hóa khá đơn giản chủ yếu là theo kiểu điện cơ, do đó còn hạn chế trong việc đáp ứng các quá trình điều khiển phức tạp. Ngày nay, với việc ứng dụng CNTT đã cho ra đời những loại hình điều khiển có tính thích nghi, hay chính là hệ hỗ trợ ra quyết định. Ví dụ: ứng dụng tự động hóa trong các nhà máy sản xuất ô tô, máy bay không người lái, các robot Mức độ tự động hoá: có 2 mức độ Tự động hoá một phần: có sự phân chia việc xử lý thông tin giữa con người và máy tính. Nhược điểm: Thường xảy ra mâu thuẫn khi kết nối từng phần nhỏ. Tự động hoá toàn bộ: toàn bộ hệ thông tin được xử lý bằng máy tính, con người chỉ có vai trò phụ. Ưu điểm: Xử lý thông tin tổng thể và tập trung, điều khiển chung nằm tại một khối nên rất hiệu quả. Dữ liệu tập trung ở một nơi và chỉ có một bản nên giảm được chi phí và tránh được sai lệch. Nhược điểm: Khó xây dựng. Các hệ thống nhúng là một ví dụ phổ biến nhất về tự động hóa trên cơ sở máy tính và đã trở nên rất phổ biến đến mức người ta ít khi để ý đến sự có mặt của nó. 1.4.4. Công tác văn phòng Công tác văn phòng là công tác thường gặp tại các cơ quan, tổ chức, đoàn thể Do đó, ứng dụng CNTT vào các hoạt động văn phòng được chú ý từ rất sớm và là lĩnh vực ứng dụng phổ biến của CNTT. Việc ứng dụng CNTT đã giảm tải được rất nhiều thời gian, công sức và nhân lực và đã thay đổi hoàn toàn bộ mặt hoạt động của công tác văn phòng. Các hoạt động cơ bản của công tác văn phòng: - Lưu trữ văn bản, tài liệu. - Xử lý và lập kế hoạch. - Nhận và lưu chuyển văn bản, tài liệu. - Tạo và gửi văn bản, tài liệu. Với sự ra đời phần mềm văn phòng điện tử đã đánh dấu sự thay đổi của việc ứng dụng CNTT vào trong các cơ quan, tổ chức, xí nghiệp. 1.4.5. Giáo dục Giáo dục cũng không nằm ngoài xu thế phát triển của CNTT. Việc ứng dụng của CNTT vào trong giáo dục đã mở ra nhiều cơ hội mới hơn cho người học, người dạy và người quản lý. 17
  27. Người học có nhiều cơ hội tiếp cận hơn với kiến thức của nhân loại mà không phải gói gọn trong nội dung bài học của mình, tiếp cận được với những phương pháp dạy và học tiên tiến trên thế giới, có nhiều cơ hội giao lưu học hỏi, tăng tính chủ động và sáng tạo. Với người dạy, có nhiều phương pháp hỗ trợ hơn trong việc bổ sung kiến thức và việc truyền tải bài giảng đến người học cũng phong phú và sinh động hơn. Tạo được mối liên kết chặt chẽ hơn giữa nhà trường và gia đình. Thông qua đó cũng có cách đánh giá chính xác hơn đến người học. Với người quản lý, ứng dụng CNTT cũng mang lại nhiều lợi ích trong việc quản lý giáo dục, quản lý người dạy, người học, nội dung chương trình dạy và học, có những đánh giá khách quan hơn. Việc ra đời các hệ thống thư viện điện tử, bài giảng điện tử, sổ liên lạc điện tử, website của các cơ sở giáo dục là minh chứng mạnh mẽ nhất của CNTT đã lan tỏa trong ngành giáo dục nước nhà và trên thế giới. 1.4.6. Thương mại điện tử CNTT phát triển kéo theo sự phát triển của rất nhiều ngành nghề và thương mại điện tử cũng không nằm ngoài xu thế đó. Có thể kể đến một số hoạt động thương mại điện tử điển hình như: - Quảng cáo trên mạng. - Mua bán và thanh toán qua mạng. - Thương thảo các hợp đồng qua mạng. Cùng với đó là sự ra đời của các website bán hàng, website quảng cáo, website các công ty Tuy nhiên, với sự phát triển của mình thì thương mại điện tử cũng phải đối diện với nhiều thách thức lớn hiện nay như vấn đề pháp lý, vấn đề bảo mật và an toàn thông tin CÂU HỎI VÀ BÀI TẬP 1. Nêu các khái niệm: Dữ liệu, Thông tin, Tin học, Công nghệ thông tin? 2. Thông tin số là gì? 3. Đơn vị đo dung lượng thông tin? 4. So sánh bảng mã ASCII và bảng mã UNICODE? 5. Mã hóa dữ liệu kiểu số? 6. Mã hóa dữ liệu phi số? 7. Các lĩnh vực ứng dụng của công nghệ thông tin? 18
  28. Chương 2 CẤU TRÚC MÁY TÍNH Các loại máy tính như máy tính để bàn, máy tính xách tay, máy tính bảng hay điện thoại di động có cấu trúc chung gồm các khối chức năng: bộ xử lý trung tâm, bộ nhớ, hệ thống vào-ra và liên kết hệ thống. Chương này giới thiệu một số vấn đề cơ bản về cấu trúc máy tính gồm các khối nêu trên. Mục 2.1 giới thiệu sơ lược về lịch sử ra đời và quá trình phát triển của máy tính điện tử. Mục 2.2 trình bày về chức năng, sơ đồ cấu trúc chung và nguyên lý hoạt động của máy tính. Mục cuối cùng 2.3 sẽ giới thiệu về chức năng và cấu trúc của các thành phần cơ bản của máy tính. 2.1. GIỚI THIỆU Máy tính điện tử (từ sau gọi tắt là máy tính) đầu tiên ra đời năm 1946, có tên là ENIAC (Electronic Numerical Intergator and Computer), là sản phẩm của một dự án thuộc Bộ Quốc phòng Hoa Kỳ phục vụ mục đích quân sự. ENIAC được thiết kế bởi John Mauchly và John Presper Eckert ở Đại học Pennsylvania. Chiếc máy tính này nặng 30 tấn, kích thước 140m2, thực hiện được 5.000 phép cộng/giây, xử lý theo số thập phân, bộ nhớ chỉ lưu trữ dữ liệu và lập trình bằng cách thiết lập vị trí của các chuyển mạch và các cáp nối. Hình 2.1. Máy tính điện tử đầu tiên - ENIAC 19
  29. Năm 1952, máy tính von Neumann ra đời tại Học viện Nghiên cứu tiên tiến Princeton. Chiếc máy tính này được xây dựng theo ý tưởng “chương trình được lưu trữ”, xử lý theo số nhị phân. Những nguyên lý của von Neumann (phần 2.2.3) đã trở thành mô hình cơ bản của máy tính cho đến ngày nay. Năm 1980, hãng IBM cho ra đời chiếc máy tính cá nhân đầu tiên, sử dụng bộ vi xử lý 8 bit 8085 của Intel. Với 70 năm phát triển, máy tính đã trải qua 4 thế hệ: dùng đèn điện tử (1943-1956), dùng transistor (1957-1965), dùng vi mạch tích hợp (1966-1980) và dùng siêu vi mạch tích hợp (1981- nay). Ngày nay, các máy tính cá nhân, máy tính bảng, điện thoại thông minh có kích thước nhỏ gọn, cấu hình mạnh mẽ. Tất cả vẫn có cấu trúc chung và sử dụng những nguyên lý được đề ra bởi von Neumann. Trong phần tiếp theo chúng tôi sẽ giới thiệu chức năng của máy tính, nguyên lý hoạt động và sơ đồ cấu trúc chung của các máy tính. Phần 2.3. sẽ giới thiệu cấu tạo và các đặc tính kỹ thuật chính của các thành phần cơ bản của máy tính gồm CPU, bộ nhớ và các thiết bị ngoại vi. 2.2. CHỨC NĂNG VÀ SƠ ĐỒ CẤU TRÚC CỦA MÁY TÍNH 2.2.1. Chức năng của máy tính: Máy tính có những chức năng sau: - Nhận thông tin vào (input) từ người sử dụng hoặc từ máy tính khác thông qua các thiết bị vào; - Xử lý thông tin đã nhận theo dãy lệnh đã nhớ sẵn bên trong; - Đưa thông tin sau xử lý (output) tới người sử dụng hoặc tới máy tính khác thông qua các thiết bị ra; - Lưu trữ thông tin dạng số hóa. 2.2.2. Sơ đồ cấu trúc chung của máy tính Bộ nhớ chính Các thiết bị vào-ra Hình 2.2. Sơ đồ cấu trúc của máy tính Các khối chức năng: Bộ xử lý trung tâm (CPU): Chức năng - Điều khiển hoạt động của máy tính; - Xử lý dữ liệu. 20
  30. Nguyên tắc hoạt động cơ bản - CPU hoạt động theo chương trình nằm trong bộ nhớ chính. Các thành phần chính - Đơn vị điều khiển (Control Unit); - Đơn vị số học và logic (Arithmetic and Logic Unit); - Tập các thanh ghi (Registers). Bộ nhớ: Chức năng: Lưu trữ chương trình và dữ liệu. Các thao tác cơ bản với bộ nhớ - Đọc (Read); - Ghi (Write). Các thành phần chính - Bộ nhớ trong (Internal Memory); - Bộ nhớ ngoài (External Memory). Hệ thống vào-ra: Chức năng: Trao đổi thông tin giữa máy tính với thế giới bên ngoài. Các thao tác cơ bản - Vào dữ liệu (Input); - Ra dữ liệu (Output). Các thành phần chính - Các thiết bị ngoại vi (Peripheral Devices) ; - Các môđun vào-ra (IO Modules). 2.2.3. Nguyên lý hoạt động của máy tính Từ khi ra đời đến nay, các máy tính đều hoạt động theo những nguyên lý được đề xuất năm 1946 bởi nhà khoa học lỗi lạc người Mỹ gốc Hungary John von Neumann (1903-1957). a. Nguyên lý Von Neumann - Nguyên lý điều khiển bằng chương trình: máy tính hoạt động theo chương trình lưu trữ sẵn trong bộ nhớ của nó. Nguyên lý này đảm bảo cho máy tính có khả năng tự điều khiển không cần có sự can thiệp của người sử dụng trong quá trình xử lý thông tin. - Nguyên lý truy cập theo địa chỉ: các chương trình, dữ liệu trước, trong và sau khi xử lý đều được đưa vào bộ nhớ trong những vùng nhớ được đánh địa chỉ. Việc truy cập dữ liệu là gián tiếp thông qua địa chỉ của nó trong bộ nhớ. Nguyên lý này đảm bảo tính mềm dẻo trong xử lý thông tin: người lập trình chỉ cần viết các yêu cầu một cách tổng quát theo vị trí các đối tượng mà không cần biết giá trị cụ thể của chúng. b. Cấu trúc lệnh và quá trình thực hiện lệnh Để xử lý thông tin tự động, mỗi máy tính cần được cài đặt sẵn một tập lệnh, thường vào trong bộ nhớ ROM. Mỗi lệnh máy là một chuỗi số nhị phân, yêu cầu CPU thực hiện một thao tác nào đó đối với các toán hạng. Các lệnh này phải chỉ ra đầy đủ các thông tin sau: - Thao tác cần thực hiện: chuyển dữ liệu, xử lý số học với số nguyên/số dấu phẩy động, xử lý logic, điều khiển vào-ra, chuyển điều khiển (rẽ nhánh), điều khiển hệ thống, xử lý các dữ liệu chuyên dụng. 21
  31. - Nơi đặt dữ liệu của lệnh và nơi đặt kết quả xử lý: tại bộ nhớ trong hoặc tại các thanh ghi trong CPU. Cấu trúc chung của lệnh máy như sau: Mã thao tác Địa chỉ các toán hạng Ví dụ: Mã lệnh Đ.chỉ 1 Đ.chỉ 2 Giá trị trung gian Lệnh gợi nhớ tương ứng: $r1 $r2 350 Hình 2.3. Một lệnh cộng trong tập lệnh MIPS32 Một chương trình máy tính là một dãy các lệnh. Do chương trình cũng nằm trong bộ nhớ nên chính các lệnh cũng có địa chỉ, đó chính là địa chỉ byte đầu tiên của lệnh. Quá trình thực hiện một chương trình thường là một quá trình thực hiện liên tiếp từng lệnh. Để quản lý thứ tự thực hiện các lệnh, trong bộ vi xử lý có một thanh ghi gọi là Bộ đếm chương trình (Program Counter – PC) để ghi địa chỉ của lệnh sẽ thực hiện tiếp theo. Giá trị khởi tạo của PC là địa chỉ lệnh đầu tiên của chương trình. Máy tính điện tử được điều khiển bởi các lệnh của chương trình. Chu kỳ thực hiện một lệnh bao gồm các bước sau: - Nhận lệnh (Fetch Instruction): Bộ điều khiển trong CPU gửi nội dung PC vào Bộ giải mã địa chỉ để đọc byte đầu tiên của lệnh lên thanh ghi lệnh. Nếu không có lệnh nhảy (ví dụ lệnh goto trong Pascal) PC sẽ tăng lên một đơn vị để bộ điều khiển chuẩn bị đọc byte tiếp theo, trường hợp ngược lại thì PC sẽ được nạp vào địa chỉ của lệnh kế tiếp sẽ nhảy đến. - Giải mã lệnh (Decode Instruction): Bộ điều khiển căn cứ vào mã lệnh để biết lệnh dài bao nhiêu byte để đọc nốt các thông tin địa chỉ của lệnh và hoàn thành việc đọc lệnh. PC tiếp tục tăng theo số lượng byte đã đọc vào. - Nhận dữ liệu (Fetch Data): Nhận dữ liệu từ bộ nhớ hoặc các cổng vào-ra. - Xử lý dữ liệu (Process Data): Thực hiện phép toán số học hay phép toán logic với các dữ liệu. - Ghi dữ liệu (Write Data): Ghi dữ liệu ra bộ nhớ hay cổng vào-ra. Sau đó quay lại chu kỳ mới, bắt đầu từ nhận lệnh. 2.3. CÁC THÀNH PHẦN CƠ BẢN CỦA MÁY TÍNH Như đã đề cập ở phần 2.2.2, một hệ thống máy tính gồm 4 khối chức năng: bộ xử lý trung tâm, bộ nhớ, các thiết bị vào-ra và liên kết hệ thống. Phần này chúng ta sẽ đề cập sâu hơn đến cấu tạo và những đặc tính kỹ thuật của các thiết bị trong các khối chức năng đó của các máy tính cá nhân. Người sử dụng thường quen thuộc với những thiết bị ngoại vi phổ biến như bàn phím, con chuột, màn hình, máy in; nhưng bên trong hộp máy có những thiết bị gì? Trước khi đề cập từng thiết bị cụ thể, chúng tôi giới thiệu một số thiết bị thường có trong hộp máy trong hình 2.4: 22
  32. Quạt hệ thống Ổ đĩa mềm Tản nhiệt cho CPU Hộp máy Ổ đĩa cứng Nguồn điện Ổ đĩa quang Bo mạch chủ Bộ vi xử lý Hình 2.4. Các thành phần phổ biến bên trong hộp máy tính cá nhân 2.3.1. Bộ xử lý trung tâm Bộ xử lý trung tâm (CPU: Central Processing Unit), hay bộ vi xử lý (microprocessor, processor) là một mạch xử lý dữ liệu theo chương trình được thiết lập trước. Nó là một mạch tích hợp phức tạp gồm hàng triệu transitor trên một bảng mạch nhỏ. Đây là thành phần quan trọng nhất, được xem như bộ não và thường là đắt nhất của một máy tính. Hai nhà sản xuất CPU lớn nhất hiện nay là Intel và AMD (Advanced Micro Devices). Những chức năng của CPU: - Nhận lệnh, giải mã lệnh và điều khiển các khối khác thực hiện lệnh; - Thực hiện các phép tính số học, logic và các phép tính khác; - Sinh ra các tín hiệu địa chỉ để truy nhập bộ nhớ. Một bộ vi xử lý gồm những khối cơ bản là: Khối điều khiển, khối số học và logic, các thanh ghi (hình 2.5). Đơn vị Đơn vị số học Tập các điều khiển và logic thanh ghi (CU) (ALU) (RF) bus bên trong Đơn vị phối ghép bus (BIU) bus điều khiển bus dữ liệu bus địa chỉ Hình 2.5. Sơ đồ khối của CPU 23
  33. Khối điều khiển (CU: control unit): là khối có chức năng điều khiển sự hoạt động của máy tính theo chương trình định sẵn. Khối số học và logic (ALU: arithmetic and logic unit): gồm các mạch chức năng để thực hiện các phép toán cơ sở như phép toán số học, phép toán logic, phép tạo mã Các thanh ghi (registers): được dùng như những bộ nhớ nhanh, có thể tương tác trực tiếp với các mạch xử lý của CPU. Có thanh ghi ghi địa chỉ lệnh sắp thực hiện, có thanh ghi ghi lệnh đang thực hiện, có thanh ghi ghi dữ liệu, có thanh ghi ghi kết quả xử lý Những yếu tố ảnh hưởng đến hiệu năng của bộ vi xử lý bao gồm: tốc độ đồng hồ, tốc độ bus, kích thước từ nhớ, dung lượng bộ nhớ cache, tập lệnh, số lượng lõi, các kỹ thuật xử lý. Đồng hồ trong bộ vi xử lý (clock): là thiết bị thiết lập bước thực hiện lệnh. Mạch xung nhịp đồng hồ dùng để đồng bộ các thao tác xử lý trong và ngoài CPU theo các khoảng thời gian không đổi. Khoảng thời gian chờ giữa hai xung gọi là chu kỳ xung nhịp. Xung nhịp hệ thống tạo ra các xung tín hiệu chuẩn thời gian gọi là tốc độ xung nhịp – tốc độ đồng hồ tính bằng triệu hoặc tỷ đơn vị mỗi giây (MHz/GHz). Tuy nhiên, cần hiểu là tốc độ đồng hồ không bằng số lệnh mà bộ vi xử lý thực hiện trong một giây. Trong nhiều máy tính, mỗi chu kỳ có thể có vài lệnh, nhưng các lệnh khác có thể cần nhiều chu kỳ. Bạn có thể nghĩ rằng máy tính có bộ vi xử lý 1,6 GHz thực hiện chậm hơn máy tính có bộ vi xử lý 2.3 GHz. Điều này chỉ đúng khi so sánh các bộ vi xử lý trong cùng họ chip. Ví dụ, bộ vi xử lý 1.87 GHz i7 840QM nhanh hơn bộ vi xử lý 1.6 GHz i7 720QM. Bạn có thể ngạc nhiên vì bộ vi xử lý i7 1.6 GHz nhanh hơn bộ vi xử lý i5 2.4 GHz vì i7 có nhiều lõi hơn i5. Bộ vi xử lý nhiều lõi (multi-core processor): Một bộ vi xử lý có thể có nhiều hơn một đơn vị xử lý, được gọi là bộ xử lý nhiều lõi. Nhiều lõi thường có hiệu năng nhanh hơn. Bộ vi xử lý i5 2.4 GHz có 2 lõi, hiệu năng tương đương 4.8 GHz. Còn bộ vi xử lý i7 1.6 GHz có 4 lõi, hiệu năng tương đương 6.4 GHz. Tốc độ bus (FSB: front side bus): là đường truyền dữ liệu đến và ra khỏi bộ vi xử lý. Bus tốc độ cao giúp chuyển dữ liệu nhanh, giúp CPU hoạt động với công suất lớn nhất. Tốc độ bus được đo bằng megahertz. Megahertz (MHz) có nghĩa là một triệu chu kỳ/giây. Các máy tính ngày nay có tốc độ bus từ 1000-1600 MHz. Dung lượng cache: CPU cache là bộ nhớ đệm tốc độ rất cao, cho phép bộ vi xử lý truy cập dữ liệu nhanh hơn từ bộ nhớ RAM. Dung lượng cache lớn làm tăng hiệu năng của máy tính. CPU cache được chia thành 2-3 mức. Cache L1 (mức 1) có tốc độ nhanh nhất; cache L2, L3 có tốc độ chậm hơn một chút nhưng vẫn nhanh hơn tốc độ truy nhập bộ nhớ chính (RAM) hay các đĩa. Dung lượng cache thường được đo bằng megabytes (MB). Kích thước từ nhớ: Là số bit mà bộ vi xử lý có thể thực hiện được mỗi lần. Kích thước từ nhớ được dựa trên kích thước của các thanh ghi trong khối số học và logic (ALU) và của các mạch dẫn đến các thanh ghi đó. Ví dụ, bộ vi xử lý 64-bit có các thanh ghi 64-bit và xử lý mỗi lần 64 bit. Kích thước từ nhớ lớn giúp cho bộ vi xử lý có khả năng xử lý nhiều dữ liệu hơn trong mỗi chu kỳ - một yếu tố làm tăng hiệu năng của máy tính. Các máy tính cá nhân ngày nay thường có bộ vi xử lý 32-bit hoặc 64-bit. Tập lệnh: Khi các nhà thiết kế chip phát triển tập lệnh cho các bộ vi xử lý (VXL), họ ngày càng thêm các lệnh phức tạp mà mỗi lệnh cần vài chu kỳ đồng hồ để thực hiện. Bộ VXL có tập lệnh như vậy sử dụng công nghệ CISC (complex instruction set computer). Bộ VXL có tập lệnh rút gọn gồm các lệnh đơn giản sử dụng công nghệ RISC (reduced instruction set computer). Bộ VXL RISC thực hiện hầu hết các lệnh nhanh hơn so với bộ VXL CISC. Tuy nhiên, nó có thể 24
  34. cần nhiều lệnh đơn giản để hoàn thành một tác vụ so với bộ VXL CISC. Đa số bộ VXL trong các máy tính cá nhân hiện nay sử dụng công nghệ CISC. Nhiều bộ VXL trong các thiết bị cầm tay như iPod, Droid, BlackBerry là ARM (advanced RISC machine). Các kỹ thuật xử lý: - Serial processing (xử lý tuần tự): bộ VXL phải hoàn thành tất cả các bước của chu kỳ lệnh trước khi bắt đầu thực hiện lệnh kế tiếp. - Pipelining (kỹ thuật đường ống lệnh): công nghệ này giúp cho bộ VXL có thể bắt đầu thực hiện một lệnh trước khi nó hoàn thành lệnh trước đó. - Parallel processing (xử lý song song): công nghệ này giúp cho bộ VXL có thể thực hiện nhiều lệnh cùng một lúc. Minh họa cho các kỹ thuật trên được thể hiện trong hình 2.6. Trong đường ống lệnh, 1 lệnh có Trong xử lý song song, nhiều thể được bắt đầu xử lý trước khi lệnh có thể được xử lý tại Trong xử lý tuần tự, chỉ 1 lệnh lệnh trước đó kết thúc cùng thời điểm được xử lý tại một thời điểm Hình 2.6. Các kỹ thuật xử lý lệnh của CPU So sánh hiệu năng tổng quát của các bộ vi xử lý: Nhiều phòng thí nghiệm chạy một loạt các thí nghiệm để đánh giá tốc độ tổng quát của một bộ VXL. Các kết quả này được gọi là benchmark (điểm chuẩn) và có thể dùng để so sánh với các bộ VXL khác. Những kết quả thí nghiệm benchmark thường được đưa lên Web và được xuất bản trong các tạp chí máy tính. Subscore đánh giá hiệu Base score đánh giá năng của từng thành phần hiệu năng tổng quát Hình 2.7. Một báo cáo về điểm đánh giá của Windows Experience Index 25
  35. 2.3.2. Bộ nhớ Hệ thống nhớ (hình 2.8) của máy tính gồm nhiều mức bộ nhớ để sử dụng ưu điểm, khắc phục nhược điểm của từng loại bộ nhớ. Dung lượng tăng dần, tốc độ giảm dần, giá thành/1 bit giảm dần Bộ vi xử lý CPU Bộ Bnộh ớ Bộ Bộ Tập Bộ Bộ Bnộmh ớạn g nhớ nhớ thanh g nhớ nhớ nmhớạn g Cache Cache Bộ ghi chính ngoài mạng L1 L2 Bnộh ớ nmhạớn g mạng Hình 2.8. Sơ đồ hệ thống nhớ Các thanh ghi đã được đề cập khi nói về Bộ vi xử lý ở trên. Trong phần này chúng ta chỉ xem xét các mức bộ nhớ còn lại. a. Bộ nhớ trong Khái niệm: Bộ nhớ trong (memory) là bộ nhớ có thời gian truy cập nhỏ, được dùng để nạp hệ điều hành, ghi chương trình và dữ liệu trong thời gian xử lý. Bộ nhớ trong gồm các mức bộ nhớ mà CPU có thể truy cập trực tiếp. Bộ nhớ trong gồm các loại: cache, RAM và ROM. Trong đó cache và RAM là các bộ nhớ có thể đọc và ghi dữ liệu, bị mất thông tin khi mất nguồn nuôi; còn ROM là bộ nhớ chỉ cho phép đọc, dữ liệu không bị xóa khi mất nguồn. Cấu tạo: Bộ nhớ trong được cấu tạo từ các phần tử vật lý có 2 trạng thái đối lập. Một trạng thái dùng để thể hiện bit 0, còn trạng thái kia thể hiện bit 1. Có nhiều kỹ thuật chế tạo các phần tử có 2 trạng thái như dùng từ tính, dùng mạch bán dẫn. Ngày nay, người ta dùng các bộ nhớ bán dẫn là các mạch bán dẫn điều khiển được có 2 trạng thái đóng/mở để thể hiện các bit. Nhờ tiến bộ của công nghệ vi điện tử, các bộ nhớ bán dẫn có thể được chế tạo là các vi mạch tích hợp (vài cm2) có dung lượng vài gigabyte (GB). Tổ chức: Ta có thể hình dung bộ nhớ trong như dãy liên tiếp các byte nhớ được đánh số thứ tự - là địa chỉ của byte nhớ. Địa chỉ được đánh số lần lượt từ 0, 1, 2 Mỗi byte gồm 8 bit, mỗi bit được thiết lập bằng 0 hoặc 1. Byte là đơn vị thông tin thuận lợi cho xử lý dữ liệu vì nó có thể chứa vừa đủ một ký tự mã hóa theo bảng mã ASCII hay một số nguyên nhỏ hơn 256 (= 28-1). Để thể hiện các dữ liệu dài hơn như một ký tự mã hóa theo bảng mã Unicode cần 2 byte, một số nguyên lớn hơn cần 2 hoặc 4 byte, một số thực cần 4, 8 hoặc 10 byte liền nhau. 26
  36. Nội dung Địa chỉ 00101011 0000 11010101 0001 00001010 0010 01011000 0011 11111011 0100 00001000 0101 11101010 0110 00000000 0111 10011101 1000 00101011 1001 11101011 1010 00101000 1011 11111111 1100 10101010 1101 00101011 1110 01010101 1111 Hình 2.9. Hình ảnh địa chỉ hóa bộ nhớ trong Như vậy, mỗi byte nhớ có 2 đặc trưng: - Địa chỉ: là thứ tự của vị trí byte nhớ trong Bộ nhớ trong. Địa chỉ của mỗi byte nhớ là cố định. - Nội dung: là giá trị số dạng mã nhị phân, được lưu trữ bằng các trạng thái vật lý trong byte nhớ. Nội dung byte nhớ có thể thay đổi. Do mỗi byte nhớ có địa chỉ riêng nên có thể truy cập tới dữ liệu trong từng byte nhớ không phụ thuộc vào các byte nhớ khác. Đọc/ghi với bộ nhớ trong: Khi đọc bộ nhớ, nội dung chứa trong ô nhớ không thay đổi. Quá trình đọc thông tin từ bộ nhớ trong diễn ra như sau: - Đầu tiên CPU gửi địa chỉ của vùng nhớ thông qua bus địa chỉ tới một mạch gọi là bộ giải mã địa chỉ. - Tiếp theo, CPU gửi một tín hiệu điều khiển qua bus điều khiển tới kích hoạt bộ giải mã địa chỉ. - Bộ giải mã địa chỉ mở mạch điện thực hiện chức năng sao chép dữ liệu trong vùng nhớ đưa ra bus dữ liệu, CPU ghi nhận dữ liệu vào các thanh ghi. Quá trình ghi cũng tương tự nhưng xảy ra theo chiều ngược lại, dữ liệu đi từ CPU đến bộ nhớ. Khi ghi vào bộ nhớ thì nội dung có trong bộ nhớ đó bị xóa để lưu nội dung mới. Do cơ chế địa chỉ hóa và do giá thành cao nên bộ nhớ trong thường có dung lượng không lớn lắm, từ vài megabyte (cache) đến vài gigabyte (RAM). Các loại bộ nhớ trong: Bộ nhớ cache là bộ nhớ đệm giữa CPU (chính xác là các thanh ghi trong CPU) và bộ nhớ chính (RAM), có tốc độ rất cao, cho phép CPU truy cập dữ liệu nhanh hơn từ bộ nhớ chính. Cache thường được đặt trên chip của CPU. 27
  37. Bộ nhớ CPU cache chính Truyền theo Truyền theo từ nhớ block nhớ Hình 2.10. Cache đệm giữa CPU và bộ nhớ chính Khi CPU cần đọc dữ liệu, nó tìm dữ liệu trong cache trước, nếu không thấy thì mới tìm trong bộ nhớ chính rồi đưa dữ liệu đó vào cache để tăng tốc độ xử lý dữ liệu trong các lệnh kế tiếp. Cache được làm từ RAM tĩnh (SRAM, Static Random Access Memory – bộ nhớ truy cập ngẫu nhiên tĩnh), các bit được lưu trữ bằng các Flip-Flop, có cấu trúc phức tạp và giá thành cao. RAM (Random Access Memory) Thực chất, RAM là cách gọi tắt phổ biến của RAM động (DRAM, Dynamic RAM), các bit được lưu trữ trên tụ điện, có cấu trúc đơn giản hơn, tốc độ chậm hơn và giá thành thấp hơn so với SRAM. Khi tụ điện được tích điện, nó biểu diễn bit 1. Ngược lại, khi tụ điện xả hết sẽ biểu diễn bit 0. Tương tự như cache, RAM là “phòng đợi” cho CPU. Nó được dùng để nạp vào hệ điều hành (đặt ở bộ nhớ ngoài, thường là đĩa cứng) khi khởi động máy tính, để chứa các lệnh chương trình ứng dụng, để lưu trữ dữ liệu tạm thời chờ được CPU đọc vào các mức bộ nhớ phía trong hoặc ghi lên các mức bộ nhớ ngoài. Các máy tính cá nhân ngày nay thường có 2-8 GB RAM. Để đạt mức hiệu năng cơ bản tốt, máy tính cài hệ điều hành Windows 7 nên có ít nhất 1GB RAM. Các ứng dụng/trò chơi đồ họa, video để chạy tốt cần tối thiểu 2GB RAM. Lượng RAM mà máy tính cần phụ thuộc vào phần mềm được sử dụng. Dung lượng RAM yêu cầu thường được ghi trên nhãn của các gói phần mềm. Các hệ điều hành ngày nay có khả năng phân phối rất tốt không gian RAM cho nhiều chương trình tại cùng một thời điểm. Trong trường hợp một chương trình vượt quá không gian cấp cho nó, hệ điều hành dùng một vùng trên đĩa cứng, gọi là bộ nhớ ảo, để chứa các phần của chương trình hoặc tệp dữ liệu đến khi chúng được cần đến. Bằng cách đổi dữ liệu trong RAM và bộ nhớ ảo, máy tính tạo ra dung lượng bộ nhớ chính gần như là không giới hạn. Tuy nhiên, vì tốc độ truy cập đĩa cứng nhỏ hơn rất nhiều so với RAM nên nếu phụ thuộc quá nhiều vào bộ nhớ ảo thì hiệu năng của máy tính sẽ bị giảm đáng kể. Đa số các máy tính cá nhân ngày nay sử dụng SDRAM (synchronous DRAM – RAM động làm việc được đồng bộ bởi xung đồng hồ), có tốc độ cao và tương đối rẻ. SDRAM được phân lớp tiếp thành DDR (Double Data Rate), DDR2 (2 kênh truyền dữ liệu), DDR3. 28
  38. Hình 2.11. DDR3-SDRAM ROM (Read Only Memory) ROM là loại bộ nhớ có nội dung cố định, chỉ cho phép người dùng/máy tính đọc dữ liệu nhưng không cho phép ghi vào. Dữ liệu thường được ghi vào ROM trong lúc chế tạo, là tập các lệnh cốt lõi để khởi động máy tính như cách truy cập đĩa cứng, tìm hệ điều hành và nạp vào RAM. Tập lệnh này được gọi là BIOS (Basic Input/Output System). EEPROM (Electrically Erasable Programmable ROM): là bộ nhớ có thể ghi chương trình theo từng byte và xóa được bằng điện. EEPROM thay thế công nghệ CMOS dùng một pin nhỏ cấp nguồn gắn trên bo mạch chủ. Loại bộ nhớ này được dùng để lưu trữ các thông tin hệ thống mà có thể bị thay đổi như thời gian, dung lượng RAM, dung lượng đĩa cứng. Khi người dùng thay đổi cấu hình của máy tính – ví dụ như lắp thêm RAM – dữ liệu trong EEPROM phải được cập nhật. Một số hệ điều hành nhận biết và thực hiện cập nhật tự động. Người dùng cũng có thể tự thay đổi thiết lập trong EEPROM bằng cách chạy chương trình cài đặt như hình 2.12. Hình 2.12. EEPROM chứa các thiết lập cấu hình máy tính 29
  39. b. Bộ nhớ ngoài RAM chỉ dùng cho việc ghi dữ liệu khi đang xử lý, không giữ được dữ liệu khi không còn nguồn nuôi. Vì vậy, đối với các dữ liệu cần lưu giữ lâu dài, không thể để trên RAM được. Mặt khác, tuy tốc độ truy nhập trên RAM nhanh, nhưng dung lượng của nó nhỏ, không thể lưu trữ lượng thông tin lớn. Vì vậy, để có thể lưu trữ thông tin lâu dài với khối lượng lớn, ta phải sử dụng bộ nhớ ngoài. Bộ nhớ ngoài (storage devices) gồm các loại bộ nhớ mà CPU không thể truy cập trực tiếp, thông tin lưu trữ không bị xóa khi mất nguồn, có dung lượng lớn hơn bộ nhớ trong nhưng tốc độ truy cập thấp hơn. Bộ nhớ ngoài gồm các loại đĩa từ tính (đĩa cứng từ, đĩa mềm), đĩa quang (CD, DVD, Bluray), bộ nhớ flash (các loại thẻ nhớ, thanh nhớ usb, ổ cứng thể rắn). Đặc điểm cơ bản của bộ nhớ ngoài là thông tin không được định vị bằng địa chỉ giống như bộ nhớ trong mà được tổ chức theo từng khối logic gọi là tệp (file). Do đó CPU không thể làm việc trực tiếp với dữ liệu ở bộ nhớ ngoài. Trước khi sử dụng, dữ liệu ở các file được chuyển dần vào bộ nhớ trong để CPU có thể xử lý. Bộ vi xử lý chỉ làm việc với các dữ liệu đã được mã hóa thành các bit 1 và 0. Khi dữ liệu được lưu trữ, các bit đó phải được chuyển thành dạng tín hiệu hay dấu hiệu nào đó lâu dài, nhưng có thể thay đổi được khi cần thiết. Dễ nhận thấy là dữ liệu không thể được ghi dạng số 0/1 theo nghĩa đen. Thay vào đó, các bit 0 và 1 phải được chuyển thành dạng nào đó thể hiện được trên bề mặt của các phương tiện lưu trữ. Có 3 công nghệ được dùng để chế tạo bộ nhớ ngoài là: từ tính, quang, thể rắn. Đĩa cứng từ (Magnetic Hard Disk) Đĩa cứng từ (hay gọi tắt là đĩa cứng) thường là một bộ đĩa hợp kim nhôm đường kính 3,5”, có phủ vật liệu từ tính trên mặt (hình 2.13). Các đĩa từ lưu thông tin bằng cách từ hóa các hạt rất nhỏ trên bề mặt đĩa. Các hạt đó duy trì hướng từ của chúng cho đến khi hướng bị thay đổi (hình 2.14). Vì vậy, thông tin trên đĩa từ được lưu trữ lâu dài nhưng cũng có thể thay đổi được hoặc xóa được. Tính chất này cung cấp sự linh hoạt trong việc sửa đổi dữ liệu, sử dụng lại những vùng nhớ chứa dữ liệu không cần thiết nữa. Các đĩa Trục quay Đầu đọc-ghi Hình 2.13. Ổ đĩa cứng từ khi nguyên trạng (trái) và khi tháo lớp vỏ bảo vệ (phải) 30
  40. Hướng dòng điện Nam châm điện Mặt đĩa a củ y ua q ĩa ng đ ớ ục Hư tr Các hạt kim loại lộn xộn (không biểu diễn dữ liệu) Các hạt có tổ chức (biểu diễn dữ liệu) Khi đĩa quay, đầu đọc-ghi ghi dữ liệu bằng cách từ hóa, đặt các hạt có tổ chức Hình 2.14. Từ hóa các hạt trên bề mặt đĩa từ Đĩa cứng gồm nhiều đĩa được xếp thành chồng, đồng trục. Mỗi mặt đĩa được chia thành các đường tròn đồng tâm gọi là các đường ghi (track). Các đường ghi lại được chia thành các cung (sector). Dữ liệu được định vị trên đĩa theo địa chỉ, được xác định thông qua chỉ số của mặt đĩa, chỉ số đường ghi và chỉ số cung (hình 2.15). Hình 2.15. Cấu tạo đĩa cứng Dữ liệu được đọc/ghi trên các mặt đĩa nhờ các đầu từ (còn được gọi là đầu đọc/ghi). Mỗi mặt đĩa có một đầu từ riêng. Chúng được gắn kết thành một khối và di chuyển đồng thời. Đầu từ dịch chuyển theo phương bán kính, đĩa thì quay tròn. Nhờ sự kết hợp đó, đầu từ có thể tiếp xúc với mọi vùng thông tin trên các đường ghi. Mặc dù tất cả các đầu từ đều đặt vào các mặt đĩa tương ứng nhưng đọc/ghi trên mặt đĩa nào thì đầu từ tương ứng sẽ được kích hoạt. Một đĩa cứng hiện nay có dung lượng từ 40 GB đến 2 TB, thời gian truy cập 6-11 ms, tốc độ quay 5.400-7.200 vòng/phút, tốc độ chuyển dữ liệu trung bình khoảng 57.000 KB/s. 31
  41. Đĩa quang Đĩa quang gồm các loại đĩa CD (compact disc), DVD (digital video disc, hoặc digital versatile disc) và BD (bluray disc). Các đĩa quang thường có đường kính 4,75”, làm bằng polycarbonate, có 1-2 lớp ghi dữ liệu, có phủ một lớp phim nhôm có tính phản xạ và một lớp bảo vệ (hình 2.16). Hình 2.16. Các lớp của một đĩa quang Ổ đĩa quang có một trục quay để quay tròn đĩa qua một đầu đọc/ghi bằng tia laze. Bộ phận đặt 1 đường ghi của đĩa lên trên thấu kính laze Thấu kính laze chiếu một chùm sáng vào mặt dưới của đĩa Trục quay tròn đĩa Hình 2.17. Bên trong một ổ đĩa quang 32
  42. Để ghi dữ liệu lên các đĩa quang thì chúng cần được đốt bằng tia laze cường độ mạnh để tạo ra các vùng lõm (trong tiếng Anh gọi là pit) và các vùng nổi (land) trên lớp polycarbonate (hình 2.18). Việc này đòi hỏi phải có ổ đĩa có chức năng ghi. Hình 2.18. Các vùng pitch và land trên đĩa quang Để đọc dữ liệu từ đĩa quang thì dùng ổ đĩa với tia laze có cường độ yếu hơn. Khi đọc, đầu đọc chiếu tia laze lên đĩa và phân tích tín hiệu phản hồi để nhận biết các pit và land. Lưu ý là bản thân các pit và land không biểu diễn các bit “0” hay “1”. Tại mỗi điểm chuyển đổi từ pit thành land hoặc ngược lại thì tia laze bị hấp thụ hoặc bị tán xạ, cảm biến không nhận được tia phản xạ, khi đó máy tính đọc thành bit “1”. Tại các điểm khác (trên pit hoặc land) thì cảm biến nhận được tia phản xạ, máy tính sẽ đọc thành bit “0” (hình 2.19). Hình 2.19. Nguyên tắc đọc dữ liệu trên đĩa quang Dung lượng và tốc độ của các loại đĩa quang hiện nay được chỉ ra trong bảng sau: 33
  43. Bảng 2.1. Dung lượng và tốc độ của các loại đĩa quang Loại đĩa quang Dung lượng/lớp Tốc độ ghi cơ sở (1X) Tốc độ lớn nhất hiện tại CD 700 MB 150 KB/s 52X ~ 78000 KB/s DVD 4,7 GB 1352.5 KB/s 24X ~ 32500 KB/s BD 25 GB 4394.5 KB/s 16X ~ 70000 KB/s Bộ nhớ bán dẫn dùng công nghệ flash Loại bộ nhớ này còn được gọi là bộ nhớ thể rắn, bao gồm các loại thẻ nhớ (memory cards), thanh nhớ usb (usb flash drives, memory sticks) và ổ cứng thể rắn (SSD, solid-state drives) (hình 2.20). Các bộ nhớ này rất gọn, có thể dùng trực tiếp với máy tính hoặc với các thiết bị số cầm tay như máy ảnh, máy quay phim, điện thoại di động, máy nghe nhạc. Hình 2.20. Các loại bộ nhớ thể rắn Loại bộ nhớ này dùng mạng lưới các mạch bán dẫn với công nghệ flash, dữ liệu có thể bị xóa và ghi lại. Mỗi ô trên lưới có 2 transistor đóng vai trò là các cổng giữ các bit 0 và 1. Khi cổng mở, dòng điện có thể đi qua và ô đó tương ứng với bit 1. Ngược lại, khi cổng đóng, ô đó tương ứng với bit 0 (hình 2.21). Hình 2.21. Các cổng giữ các bit 0/1 tại mỗi ô trong mạch bán dẫn Bộ nhớ thể rắn tiêu thụ rất ít năng lượng, có tốc độ truy cập dữ liệu nhanh vì chúng không cần các thành phần chuyển động. Công nghệ này cũng rất bền vì nó không bị ảnh hưởng bởi các chấn động, từ trường hay sự thay đổi nhiệt độ bất thường. Tuy nhiên, hiện tại thì dung lượng bộ nhớ thể rắn ít hơn so với đĩa cứng từ và giá thành thì cao hơn nên ổ cứng thể rắn còn chưa phổ biến lắm. 34
  44. 2.3.3. Thiết bị vào/ra Các thiết bị vào/ra (Input/Output Devices) dùng để trao đổi dữ liệu giữa máy tính và môi trường bên ngoài. Cụ thể hơn, các thiết bị vào có chức năng chuyển dữ liệu từ bên ngoài vào bộ nhớ trong, còn các thiết bị ra dùng để chuyển thông tin từ bộ nhớ trong ra môi trường bên ngoài. a. Thiết bị vào Các thiết bị vào bao gồm bàn phím, con chuột, tay chơi game, máy quét ảnh, máy ảnh số, microphone, bút và màn hình cảm ứng, thiết bị đọc thẻ, đọc mã vạch Chúng ta sẽ đề cập kỹ hơn đến 2 thiết bị vào cơ bản nhất là bàn phím và con chuột. Bàn phím (Keyboard) Là thiết bị dùng để đưa vào máy các lệnh điều khiển, dữ liệu. Các bàn phím thường được thiết kế tương tự như các máy đánh chữ (hình 2.22), ưu điểm là tránh sự mắc kẹt cơ khí của các phím. Thiết kế này được gọi là QWERTY (theo 6 phím chữ cái liên tục ở hàng trên bên trái). Hình 2.22. Một bàn phím máy tính Bàn phím có khoảng 104 phím, được chia thành 4 nhóm sau: - Nhóm phím chữ: gồm các phím chữ cái, chữ số, các dấu. - Nhóm phím chức năng: để thực hiện nhanh một số yêu cầu nào đó. Thường các phần mềm tự quy định những thao tác tương ứng với chúng. Bàn phím máy tính cá nhân thường để sẵn 12 phím chức năng F1, F2, , F12. - Nhóm phím điều khiển: xác định một số chức năng đặc biệt như thiết lập các chế độ khác nhau của bàn phím, thoát khỏi chương trình. Nhóm này gồm các phím: Esc (Escape), Caps Lock, Shift, Ctrl (Control), Alt (Alternate), Insert, Delete, Print Screen, Scroll Lock, Pause/Break, Num Lock. - Nhóm phím điều khiển con trỏ màn hình: gồm các phím mũi tên lên, xuống, trái, phải, Home, End, Page Up, Page Down, Tab, Back space. Khi ta ấn một phím, tín hiệu được truyền cho máy tính thông qua bộ lập mã, tương ứng với ký tự của phím được ấn đó. 35
  45. Con chuột (Mouse) Là thiết bị chỉ định điểm làm việc trên màn hình phổ biến nhất, hoạt động theo nguyên lý phát hiện chuyển động theo hai hướng so với bề mặt bên dưới. Chuyển động của con chuột trên bề mặt được phiên dịch thành chuyển động của một con trỏ trên màn hình giao diện đồ họa. Dạng phổ biến nhất của con chuột là gồm 2 nút bấm và 1 nút cuộn (hình 2.23). Thông thường, nút bên trái dùng cho thao tác lựa chọn, đặt vị trí của con trỏ màn hình, nút bên phải để hiện menu ngữ cảnh gồm các lệnh có thể được thực hiện với đối tượng tại vị trí con trỏ. Hình 2.23. Con chuột máy tính Chuột bi: loại này sử dụng cơ chế cơ học. Một viên bi hình cầu ở dưới con chuột, khi chuột di chuyển sẽ truyền chuyển động vào 2 trụ đặt vuông góc nhau (hình 2.24). Mỗi trụ này được gắn với một thiết bị đếm xung mà số lượng xung tỷ lệ với góc quay của nó. Các xung truyền vào trong máy tính sẽ được dùng để tính vị trí dịch chuyển của con trỏ màn hình. Loại chuột này có nhược điểm là dễ bị kẹt do bẩn. Hình 2.24. Bên trong chuột bi 36
  46. Chuột quang: loại chuột này chụp ảnh liên tiếp bề mặt bên dưới chuột (khoảng 1.000 ảnh mỗi giây), so sánh để phát hiện ra sự chuyển dịch. Chuột quang thường dùng đi-ốt phát quang hoặc phát laze hồng ngoại để chiếu sáng bề mặt bên dưới (hình 2.25). Ưu điểm của chuột quang là độ phân giải đạt được cao hơn nên cho kết quả chính xác hơn, hoạt động tốt trên nhiều loại bề mặt khác nhau (chuột laze thậm chí hoạt động trên cả bề mặt kính), không bị kẹt do bẩn giống như chuột bi. Nút chuột Camera Gương Thấu kính Nút trái Ánh sáng Hình 2.25. Cấu tạo bên trong chuột quang Chú thích: DSP (Digtal Signal Processor): Bộ xử lý tín hiệu số; LED (Light-Emitting Diode): Đi-ốt phát quang; Các máy tính xách tay thường có một bàn cảm ứng. Người sử dụng có thể dùng thay chuột bằng cách di ngón tay lên mặt bàn cảm ứng để điều khiển con trỏ di chuyển. b. Thiết bị ra Các thiết bị ra bao gồm màn hình, máy in, máy chiếu, máy vẽ, loa máy tính. Chúng ta sẽ tìm hiểu kỹ hơn về 2 loại thiết bị thông dụng nhất là màn hình và máy in. Màn hình (Display hoặc Monitor) Màn hình là thiết bị hiển thị chữ hay ảnh bằng cách tạo ra lưới các điểm ảnh (pixel) rất nhỏ có màu sắc khác nhau. Các yếu tố ảnh hưởng đến chất lượng hình ảnh bao gồm: kích thước màn hình, khoảng cách giữa các điểm ảnh (dot pitch), độ rộng góc nhìn, tốc độ đáp ứng, độ phân giải và độ sâu màu sắc. Dot pitch là thước đo độ sắc nét của ảnh. Thông số này càng nhỏ thì ảnh càng sắc nét. Các màn hình ngày nay có khoảng cách giữa các điểm ảnh là khoảng 0,26-0,23mm. 37
  47. Độ rộng góc nhìn được xác định bởi góc lớn nhất mà người sử dụng vẫn nhìn rõ ảnh màn hình. Độ rộng này từ 1700 trở lên cho phép bạn nhìn màn hình từ các vị trí khác nhau mà không làm giảm chất lượng hình ảnh. Tốc độ đáp ứng là khoảng thời gian cần thiết để một điểm ảnh thay đổi từ đen thành trắng rồi đổi lại thành đen. Màn hình có tốc độ đáp ứng nhanh hiển thị hình ảnh của các đối tượng chuyển động sắc nét với độ bóng mờ tối thiểu. Tốc độ này được đo bằng mili giây (ms). Với các máy chuyên chơi game thì tốc độ đáp ứng lý tưởng là 5ms hoặc nhỏ hơn. Độ sâu màu sắc (hoặc độ sâu bit) là số màu mà màn hình có thể hiển thị. Các màn hình ngày nay có thể hiển thị hàng triệu màu. Khi được thiết lập độ sâu 24-bit màu, màn hình của bạn có thể hiển thị hơn 16 triệu màu (224). Độ phân giải là thước đo khả năng thể hiện tinh tế của màn hình, được xác định bằng số lượng điểm ảnh theo chiều ngang và chiều dọc mà màn hình hiển thị. Độ phân giải chuẩn là theo tỷ lệ 4:3. Màn hình rộng thì tỷ lệ này là 16:9. Các màn hình máy tính cá nhân ngày nay thường có độ phân giải đạt chuẩn HD (high definition) là 1280 x 720 (720p), thậm chí đạt full HD là 1920 x 1080 (1080p), hoặc cao hơn. Thực ra, hai tính năng Độ sâu màu sắc và Độ phân giải không chỉ phụ thuộc vào chính màn hình mà còn phụ thuộc vào thiết bị điều khiển màn hình (video card). Trước đây, loại màn hình phổ biến là đèn tia âm cực (đèn CRT) – là loại đèn dùng cho tivi. Các điểm ảnh được tạo bởi các súng bắn điện tử trong đèn hình có phủ các vật liệu phát quang. Loại màn hình này nặng, có độ dầy lớn, chiếm nhiều diện tích. Ngày nay, chúng ta đang dùng phổ biến các loại màn hình mỏng, nhẹ, dùng công nghệ tinh thể lỏng (LCD – liquid crystal display) hoặc plasma. Màn hình tinh thể lỏng hiển thị hình ảnh bằng cách lọc ánh sáng qua một lớp các ô tinh thể lỏng. Nguồn sáng có thể dùng đèn huỳnh quang catốt lạnh (CCFL) hoặc dùng các điốt phát sáng (LED). Hình 2.26. Màn hình CRT (trái) và LCD (phải) Máy in (Printer) Máy in là thiết bị cho phép in chữ hay ảnh ra giấy. Có ba loại máy in gồm: máy in kim, máy in phun và máy in laze. 38
  48. Máy in kim (Dot matrix printer) là loại ra đời đầu tiên, cùng với sự ra đời của máy tính cá nhân. Loại này sử dụng một bộ các kim in bố trí dạng ma trận, ảnh hay chữ được tạo bằng các chấm do kim in đập vào băng mực làm băng mực in lên giấy, mỗi chữ được thể hiện qua một tổ hợp các điểm tách ra từ ma trận điểm (hình 2.27). Mặc dù chất lượng hình ảnh in không mịn như các loại máy in khác nhưng có những công việc cần in những bản in nhiều liên bắt buộc phải in theo nguyên tắc va đập (như in hóa đơn) nên loại máy in này vẫn khá phổ biến ở các quầy thanh toán và trong các ngân hàng. Đầu in gồm một Các ký tự được tạo bởi ma trận các kim các chấm do đầu kim in Hình 2.27. Bên trong máy in kim Máy in phun (ink jet printer, hình 2.28) tạo các điểm trên giấy bằng cách phun tia mực siêu nhỏ. Công nghệ phổ biến nhất là dùng tinh thể áp điện để làm bơm mực. Một tinh thể áp điện sẽ co hay giãn tùy thuộc vào điệp áp đặt vào hai mặt đối diện của tinh thể. Một nguyên lý khác cũng được dùng là đầu in có các ống phun mực nhỏ li ti. Khi ống bị nóng thì mực bị sôi tạo thành bong bóng siêu nhỏ bắn vào giấy. Đa số các máy in phun dùng hệ màu CMYK – chỉ dùng 4 màu xanh cẩm thạch, đỏ tím vàng, đen (Cyan, Magenta, Yellow, Black) phối trộn với nhau để tạo thành hàng nghìn màu cho các bản in. Loại máy in này có ưu điểm là chất lượng bản in tốt, nhưng tốn nhiều mực và giá hộp mực khá cao. Hộp mực đen Hộp mực màu Hình 2.28. Bên trong máy in phun màu Máy in laze (laser printer, hình 2.29) là loại máy in dùng kỹ thuật laze để tạo từng trang ảnh bằng các hạt mực siêu nhỏ trên một trống tĩnh điện. Khi trống áp vào giấy in thì những hạt mực sẽ dính trở lại giấy và được nung nóng chảy ra thấm vào giấy. Vì công nghệ laze phức tạp 39
  49. hơn công nghệ phun mực nên giá máy in laze cao hơn. Ưu điểm của loại máy in này là chất lượng ảnh rất cao, tốn ít mực hơn nên được dùng rất rộng rãi. Hình 2.29. Máy in laze Ngoài các thiết bị vào-ra kể trên thì có một số thiết bị vừa là thiết bị vào vừa là thiết bị ra như màn hình cảm ứng, modem, ổ đọc và ghi đĩa. 2.3.4. Liên kết hệ thống Các thiết bị máy tính được liên kết với nhau thông qua các đường bus, các khe cắm mở rộng hoặc các loại cổng kết nối (hình 2.30). Các thành phần này thường được thiết kế trên một bo mạch chủ (hình 2.31). Hình 2.30. Liên kết các thành phần hệ thống Bus là các tuyến đường để thông tin (dữ liệu, lệnh, địa chỉ) chạy trên đó. Chúng có thể là những đường mạch trên bo mạch chủ (ví dụ nối giữa CPU và RAM) hoặc các loại cáp mở rộng (ví dụ cáp nối ổ đĩa cứng với bo mạch chủ). Các khe cắm mở rộng (expansion slot) được dùng để cắm các loại card điều khiển thiết bị vào-ra như card đồ họa, card âm thanh, modem. 40
  50. Hình 2.31. Các thành phần kết nối hệ thống trên bo mạch chủ Các cổng (port) gồm nhiều loại, được dùng để kết nối máy tính với các thiết bị vào-ra. Một số loại cổng phổ biến là: PS/2 kết nối chuột và bàn phím, VGA kết nối màn hình, LPT kết nối máy in, RJ45 kết nối modem, USB kết nối rất nhiều thiết bị giao tiếp qua chuẩn USB, các cổng âm thanh, cổng đọc thẻ nhớ CÂU HỎI VÀ BÀI TẬP 1. Nêu chức năng của Bộ xử lý trung tâm (CPU). Những yếu tố nào ảnh hưởng đến hiệu năng của CPU? 2. Cho biết sự khác nhau cơ bản về cách thức lưu trữ dữ liệu của bộ nhớ trong và bộ nhớ ngoài? 3. Kể tên và nêu những đặc điểm cấu tạo, lưu trữ của các loại bộ nhớ trong? So sánh tốc độ truy nhập dữ liệu của các bộ nhớ đó. 4. Kể tên và nêu những đặc điểm cấu tạo, lưu trữ của các loại bộ nhớ ngoài? 5. Cho biết tên và đặc điểm cấu tạo và hoạt động của một số loại thiết bị vào điển hình? 6. Cho biết tên và đặc điểm cấu tạo và hoạt động của một số loại thiết bị ra điển hình? 7. Nêu chức năng của thành phần liên kết hệ thống. Nêu tên một số cổng vào ra thông dụng và cho biết chúng có thể kết nối với những thiết bị ngoại vi nào? 41
  51. Chương 3 PHẦN MỀM MÁY TÍNH VÀ HỆ ĐIỀU HÀNH Máy tính không thể hoạt động nếu không được cài đặt hệ điều hành và các phần mềm ứng dụng. Chương này giới thiệu về các vấn đề cơ bản của hệ điều hành và phần mềm máy tính. Phần 3.1 trình bày khái niệm phần mềm, quy trình sản xuất phần mềm và phân loại phần mềm. Phần 3.2 trình bày về lịch sử hình thành và phát triển của hệ điều hành, vai trò và hoạt động của hệ điều hành trên máy tính. Bên cạnh đó cũng giới thiệu về một số loại hệ điều hành điển hình cài đặt trên máy tính cá nhân và các thiết bị di động. Phần cuối cùng của chương giới thiệu các vấn đề liên quan tới tệp và thư mục. 3.1. PHẦN MỀM MÁY TÍNH 3.1.1. Khái niệm về phần mềm Phần mềm, hay còn gọi là chương trình, là một là một tập hợp những câu lệnh hoặc chỉ thị (Instruction) được viết bằng một hoặc nhiều ngôn ngữ lập trình theo một trật tự xác định, kết hợp với các dữ liệu hay tài liệu liên quan nhằm tự động thực hiện một số nhiệm vụ hay chức năng hoặc giải quyết một vấn đề cụ thể nào đó. Phần mềm thực hiện các chức năng của nó bằng cách gửi các chỉ thị trực tiếp đến phần cứng máy tính (Computer hardware) hoặc bằng cách cung cấp dữ liệu để phục vụ các chương trình hay phần mềm khác. Thông thường, người dùng có thể tương tác với phần mềm thông qua một giao diện. Ngày nay giao diện phần mềm thường là giao diện đồ họa, người dùng có thể tương tác với phần mềm thông qua các đoạn văn bản, hình ảnh hoặc các biểu tượng. Các biểu tượng Phần mềm ứng dụng Màn hình nền của Hệ điều hành Hình 3.1. Giao diện đồ họa của phần mềm và hệ điều hành Windows XP 42
  52. 3.1.2. Phân loại phần mềm Có hai loại phần mềm cơ bản: phần mềm hệ thống và phần mềm ứng dụng, hình 3.1 là một minh họa về giao diện hệ điều hành và phần mềm ứng dụng soạn thảo văn bản. a) Phần mềm hệ thống Phần mềm hệ thống là các chương trình điều khiển hoặc duy trì các hoạt động của máy tính và các thiết bị liên quan. Phần mềm hệ thống hỗ trợ giao tiếp giữa người dùng, phần mềm ứng dụng và phần cứng máy tính. Có 2 kiểu phần mềm hệ thống: hệ điều hành và các chương trình tiện ích. Hệ điều hành là một tập các chương trình phối hợp tất cả các hoạt động của các thiết bị phần cứng. Nó là một phương tiện cho người dùng để giao tiếp với máy tính và các phần mềm khác. Những dòng hệ điều hành phổ biến nhất hiện nay là Microsoft Windows, một trong số các phiên bản là Windows XP được thể hiện trong hình 3.1, hay Mac OS, hệ điều hành của Apple. Chương trình tiện ích cho phép người dùng thực hiện các công việc liên quan tới việc bảo trì máy tính, các thiết bị và các chương trình được cài đặt trong máy. Hầu hết các hệ điều hành bao gồm nhiều chương trình tiện ích như: quản lý ổ đĩa, máy in và các thiết bị khác. Người dùng cũng có thể mua các chương trình tiện ích cho phép thực hiện chức năng quản lý máy tính bổ sung. Hình 3.2. Chương trình tiện ích Disk Defragmenter giúp chống phân mảnh ổ cứng b) Phần mềm ứng dụng Phần mềm ứng dụng có thể là các chương trình được thiết kế giúp người dùng sử dụng một các hiệu quả hơn và/hoặc hỗ trợ các công việc cá nhân, ví dụ như phần mềm thiết kế một thí nghiệm, phần mềm điều khiển một dây chuyền sản xuất, phần mềm quản lý khách hàng của một công ty Những phần mềm như vậy còn được gọi là phần mềm đặt hàng. 43
  53. Có những phần mềm ứng dụng được thiết kế dựa trên những yêu cầu chung của nhiều người, không theo yêu cầu đặt hàng của riêng ai. Chúng được viết rất hoàn chỉnh và thường kèm theo những phương tiện để cài đặt lên máy một cách tự động. Người mua chỉ cần mua về, thiết lập các chế độ làm việc thích hợp là có thể sử dụng được. Những phần mềm như thế gọi là phần mềm đóng gói. Phần mềm đóng gói cũng có nhiều loại khác nhau giúp người dùng thực hiện các công việc rất đa dạng. Ví dụ như các phần mềm quản lý thông tin cá nhân, nhắc việc, quản lý dự án, các phần mềm kế toán, quản lý hồ sơ tài liệu, trợ giúp thiết kế (hình 3.3), chỉnh sửa hình ảnh, âm thanh, video và các phần mềm đa phương tiện khác nhau. Bên cạnh đó cũng có những loại phần mềm giúp người dùng có thể tạo các trang Web cá nhân một cách đơn giản, các phần mềm quản lý tài chính cá nhân, pháp lý, thuế, các phần mềm mang tính giáo dục, các hệ thống tài liệu tham khảo và giải trí (ví dụ phần mềm trò chơi và mô phỏng) Hình 3.3. Các phần mềm hỗ trợ thiết kế Các phần mềm đóng gói thường có sẵn tại các cửa hàng bán các sản phẩm máy tính hoặc có thể tải trực tuyến trên nhiều trang Web khác nhau. Phần mềm phát triển ứng dụng là các phần mềm để tạo ra các phần mềm khác. Đây là các phần mềm mà các chuyên gia tin học thường sử dụng để phát triển phần mềm. Đối với những người làm việc trong lĩnh vực tin học thì phần mềm ứng dụng dành cho người dùng cuối, là sản phẩm và là mục tiêu của họ. Để hỗ trợ cho việc làm ra các sản phẩm phần mềm, họ lại dùng chính các phần mềm khác gọi là phần mềm hỗ trợ phát triển. Ngày nay các thiết bị điện tử dân dụng trở nên thông minh hơn nhờ công nghệ vi xử lý. Các phần mềm điều khiển thiết bị được ghi trong ROM. Tivi, ô tô, điện thoại di động, lò vi sóng đều sử dụng các hệ vi xử lý. Phần mềm được ghi vào trong ROM và dùng trong các hệ vi xử lý gắn liền với các thiết bị gọi là phần mềm nhúng. Ngày nay, phần mềm nhúng chiếm một tỷ trọng rất lớn trong thị trường phần mềm nói chung. Việc phân loại phần mềm cũng mang tính chất tương đối, mỗi tài liệu có thể sẽ có quan niệm và cách phân loại khác nhau. Sự phân loại nói trên chỉ mang tính tương đối nhằm cung cấp một bức tranh tổng thể về các lớp phần mềm dựa trên mục đích và phương thức sử dụng. Ranh giới giữa chúng khá mờ, thậm chí còn xâm lấn vào nhau. Ví dụ phần mềm tiện ích cũng có thể được coi là một kiểu phần mềm ứng dụng. 44
  54. 3.1.3. Quy trình phát triển phần mềm Phát triển phần mềm bao gồm bốn hoạt động cơ bản: đặc tả, phát triển (thiết kế và thực thi), kiểm thử và cài đặt bảo trì phần mềm. Các hoạt động này được tổ chức một cách khác nhau tùy theo tiến trình phát triển được lựa chọn. Ở mô hình thác nước, các hoạt động này được tổ chức một cách tuần tự, trong khi đó, với mô hình phát triển tiến hóa, các hoạt động này lại được tổ chức một cách xen kẽ. Các hoạt động này được thực hiện như thế nào phụ thuộc vào kiểu phần mềm, tình hình nhân sự và cấu trúc của tổ chức. a) Đặc tả phần mềm Đặc tả phần mềm là một tiến trình để hiểu và xác định những dịch vụ nào cần có trong hệ thống cũng như xác định những ràng buộc đối với việc phát triển và chức năng của hệ thống. Đây là một trong những giai đoạn rất quan trọng trong tiến trình phần mềm, vì mỗi lỗi trong giai đoạn này sẽ không tránh khỏi việc dẫn đến những sai lầm trong các giai đoạn tiếp theo. Tiến trình này sẽ sinh ra các tài liệu yêu cầu, đó là các bản đặc tả hệ thống. Các yêu cầu thường được trình bày ở hai mức độ chi tiết khác nhau trong tài liệu. Khách hàng và người dùng cuối cần những mô tả yêu cầu ở mức cao, còn người phát triển hệ thống lại cần những đặc tả hệ thống chi tiết hơn. b) Thiết kế và thực thi phần mềm Giai đoạn này liên quan tới việc chuyển những yêu cầu phần mềm thành những hệ thống có thể thực thi được. Thông thường nó liên quan đến việc thiết kế và lập trình. Thiết kế phần mềm là việc mô tả cấu trúc của phần mềm được thực thi, dữ liệu của hệ thống, giao diện giao tiếp giữa các thành phần và đôi khi, đó là thuật toán sẽ được sử dụng. Người làm thiết kế cũng không phải ngay lập tức đưa ra được một bản thiết kế hoàn chỉnh, mà thông thường nó cũng phải được chỉnh sửa lặp đi lặp lại nhiều lần. Tiến trình thiết kế có thể liên quan tới việc phát triển một vài mô hình của hệ thống ở những mức độ trừu tượng khác nhau. Khi thiết kế được phân tích, lỗi và các điểm thiếu sót ở các giai đoạn trước sẽ được bộc lộ, điều này cũng giúp cho việc chỉnh sửa những bản thiết kế trước đó. Thực thi phần mềm là giai đoạn các lập trình viên dùng các ngôn ngữ lập trình để viết lệnh (mã nguồn) thực sự để tạo ra hệ thống dựa trên các bản đặc tả thiết kế chi tiết. Để đảm bảo chương trình được xây dựng thỏa mãn mọi yêu cầu trong bản đặc tả thiết kế, các kỹ sư lập trình cũng đồng thời tiến hành các thử nghiệm phần chương trình do mình tạo ra. Phần thử nghiệm trong giai đoạn này được gọi là kiểm thử đơn vị. Người viết mã nguồn chạy thử chương trình của mình với dữ liệu giả định để xem chương trình có cho ra các kết quả mong đợi. Giai đoạn này còn được gọi là kiểm thử hộp trắng. Bên cạnh đó, người ta cũng có thể tiến hành thử nghiệm đơn vị độc lập. Công việc này do một thành viên khác trong nhóm đảm nhiệm để đảm bảo tính “độc lập”, được tiến hành dựa trên kế hoạch kiểm thử do người viết mã nguồn soạn ra. c) Kiểm thử phần mềm Kiểm thử phần mềm là quá trình vận hành chương trình để tìm ra lỗi, mục tiêu của người làm kiểm thử là thiết kế các trường hợp kiểm thử để có thể phát hiện một cách có hệ thống các loại lỗi khác nhau với chi phí thời gian và công sức ít nhất có thể. 45
  55. Tuy nhiên, để đảm bảo phần mềm phát triển đúng theo đặc tả và đáp ứng tốt các yêu cầu người dùng thì ngoài hoạt động kiểm thử phần mềm, trong suốt tiến trình phát triển phần mềm người ta cần phải tiến hành các hoạt động xác minh và thẩm định phần mềm. Xác minh là sự kiểm tra xem sản phẩm có đúng với đặc tả hay không, tức là chú trọng vào việc phát hiện lỗi của phần mềm qua từng giai đoạn phát triển. Thẩm định là kiểm tra xem sản phẩn có đáp ứng được yêu cầu người dùng hay không, tức là chú trọng vào việc phát hiện sự khác biệt của sản phẩm làm ra với những gì mà người dùng mong đợi. Xác minh và thẩm định tĩnh là việc kiểm tra phần mềm mà không thực hiện chương trình. (xét duyệt yêu cầu, xét duyệt thiết kế, thanh tra mã nguồn, sử dụng các biến đổi hình thức để kiểm tra tính đúng của chương trình). Xác minh và thẩm định động là việc kiểm tra thông qua việc thực hiện chương trình, được tiến hành sau khi đã xây dựng được chương trình (mã nguồn). Đây là kỹ thuật kiểm tra được áp dụng phổ biến nhất, còn được gọi là kiểm thử phần mềm. d) Cài đặt và bảo trì phần mềm Trong giai đoạn này, hệ thống vừa phát triển sẽ được cài đặt và triển khai sao cho người dùng có thể sử dụng được. Trước khi người dùng thật sự bắt tay vào sử dụng hệ thống, nhóm phát triển cần tạo các tập dữ liệu cần thiết và huấn luyện cho người dùng sử dụng chương trình để đảm bảo hệ thống được sử dụng hữu hiệu nhất. Bảo trì phần mềm là việc điều chỉnh các lỗi chưa được phát hiện trong các giai đoạn trước của chu kỳ sống của một phần mềm, nâng cấp tính năng sử dụng và an toàn vận hành của phần mềm. Bảo trì phần mềm có thể chiếm đến 65%-75% công sức trong chu kỳ sống của một phần mềm. Nhiệm vụ của giai đoạn bảo trì phần mềm là giữ cho phần mềm được cập nhật khi môi trường thay đổi và yêu cầu người sử dụng thay đổi. 3.1.4. Phần mềm mã nguồn đóng và mã nguồn mở a) Phần mềm mã nguồn đóng Phần mềm mã nguồn đóng là phần mềm mà mã nguồn không được công bố. Muốn sử dụng hợp pháp phần mềm nguồn đóng, người dùng cần được sự cho phép của người giữ bản quyền phần mềm, thường là những tổ chức hay cá nhân phát triển phần mềm đó. Phần mềm nguồn đóng thường là có phí, tuy nhiên một số phiên bản giản lược chức năng có thể là miễn phí. Ví dụ về phần mềm mã nguồn đóng có phí là các hệ điều hành Microsoft Windows, bộ phần mềm ứng dụng văn phòng Microsoft Office, phần mềm gõ tiếng Việt Vietkey, hệ quản trị cơ sở dữ liệu SQL Server, môi trường phát triển phần mềm Microsoft Visual Studio. Phần mềm nghe nhạc JetAudio là một ví dụ về phần mềm nguồn đóng miễn phí phiên bản giản lược (jetAudio Basic) và có phí phiên bản đầy đủ (jetAudio Plus VX). Trình duyệt web Google Chrome là ví dụ cho phần mềm mã nguồn đóng miễn phí. Ưu thế của mã nguồn đóng như cái tên của nó, có thể che đậy toàn bộ công nghệ đằng sau giúp tăng cường bảo mật và giấu được công nghệ độc quyền. Hiển nhiên mã nguồn đóng luôn được phép học hỏi công nghệ mới nhất của mã nguồn mở nhưng điều ngược lại là khó có thể, từ yếu tố này dễ dàng nhận thấy mã nguồn đóng luôn sở hữu công nghệ tương tự mới nhất nếu không muốn nói là hơn so với mã nguồn mở. Ngoài ra việc độc quyền tạo điều kiện kiếm siêu lợi nhuận và một phần trong đó được quay trở lại đầu tư cho công nghệ đằng sau mỗi sản phẩm phát triển, chu trình này như một vòng khép kín giúp mã nguồn đóng đứng vững. 46