Tìm hiểu về các mô thức lập trình
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI BÁO CÁO TÌM HIỂU VỀ CÁC MƠ THỨC LẬP TRÌNH Học Phần: Kỹ Thuật Lập Trình Giảng Viên Hướng Dẫn: Vũ Đức Vượng Mã Lớp: 108505 I) Các mơ thức lập trình phổ biến Imperative paradigm- Lập trình mệnh lệnh - Trong khoa học máy tính, Imperative paradigm mơ thức lập trình sử dụng câu lệnh để thay đổi trạng thái chương trình Nó giống với cách mà mệnh lệnh thức ngôn ngữ tự nhiên diễn tả mệnh lệnh, chương trình mệnh lệnh bao gồm mệnh lệnh (command) cho máy tính để thực Imperative paradigm tập trung vào miêu tả cách chương trình hoạt động * Ví dụ sử dụng Imperative paradigm : //số thứ n dãy Fibonacci int main() { int n, fib0, fib1, t, fibn; n = 10; fib0 = 0; fib1 = 1; while (n > 0) { t = fib0; fib0 = fib1; fib1 = fib0 + t; n ; } fibn = fib0; } * Kết quả: fib10=55 Functional paradigm- Lập trình chức - Trong khoa học máy tính, Functional paradigm mơ thức lập trình theo phong cách xây dựng cấu trúc yếu tố chương trình máy tính, xử lý tính tốn đánh giá hàm toán học nhằm tránh thay đổi trạng thái liệu Đây mơ hình lập trình khai báo (Declarative programming), thực biểu thức khai báo thay câu lệnh Trong mã chức giá trị đầu hàm phụ thuộc vào đối số truyền cho hàm, việc gọi hàm f hai lần với giá trị đối số x tạo kết f(x) lần * Ví dụ sử dụng Functional paradigm : // Tính ước chung lớn x y int ucln(int x, int y) { if (y == 0) { return x; } else { return ucln(y, x%y); } } int main() { int x, y; x = 32; y = 12; ucln(x, y); } * Thứ tự tính tốn chương trình trên: B0: ucln(32,12) B1: ucln(12,8) B2: ucln(8,4) B3: ucln(4,0) B4: => Ước chung lớn Logical paradigm- Lập trình Logic - Logical paradigm loại mơ thức lập trình mà phần lớn dựa logic hình thức Bất kỳ chương trình viết ngơn ngữ lập trình logic tập hợp câu dạng logic, diễn đạt kiện quy tắc số miền vấn đề Các họ ngôn ngữ lập trình logic bao gồm Prolog , lập trình trả lời (ASP) Datalog Trong tất ngôn ngữ này, quy tắc viết dạng mệnh đề: H :- B1, …, Bn đọc khai báo hàm ý logic: H if B and … and Bn Trong H gọi phần đầu quy tắc B1Bn gọi phần thân Sự kiện quy tắc phần thân viết dạng đơn giản là: H - Việc đọc khai báo chương trình logic sử dụng lập trình viên để xác minh tính đắn chúng Hơn nữa, kỹ thuật chuyển đổi chương trình dựa logic sử dụng để chuyển đổi chương trình logic thành chương trình tương đương logic hiệu Trong họ ngơn ngữ lập trình logic Prolog, lập trình viên sử dụng cách giải vấn đề biết chế thực thi để cải thiện hiệu chương trình * Ví dụ sử dụng Logical paradigm: Brother(X,Y) :Farther(F,X), Farther(F,Y), Mother(M,X), Mother(M,Y), Male(X) (X anh trai Y họ có chung bố (F), chung mẹ (M) X có giới tính nam) Object-oriented paradigm- Lập trình hướng đối tượng - Object-oriented paradigm (OOP) mô thức lập trình dựa khái niệm objects (đối tượng), chứa liệu, dạng trường thường gọi thuộc tính mã, dạng thủ tục thường gọi phương thức Một tính đối tượng thủ tục đối tượng truy cập thường sửa đổi trường liệu đối tượng mà chúng liên kết Trong OOP, chương trình máy tính thiết kế cách làm cho chúng khỏi đối tượng tương tác với Có đa dạng đáng kể ngôn ngữ OOP, ngôn ngữ phổ biến dựa lớp, có nghĩa đối tượng thể lớp, thường xác định loại chúng - Nhiều ngôn ngữ lập trình sử dụng rộng rãi (như C ++, Object Pascal, Java, Python, vv) ngôn ngữ lập trình đa mơ hình hỗ trợ lập trình hướng đối tượng mức độ lớn thấp hơn, thường kết hợp với lập trình thủ tục, bắt buộc Các ngôn ngữ OOP phổ biến bao gồm: Java, C++, C#, Python, PHP, JavaScript, Ruby, Perl, Object Pascal, Objective-C, Dart, Swift, Scala, Common Lisp Smalltalk *Ví dụ sử dụng Object-oriented paradigm : class staf { private: char name[50]; int code; public: void getdata(); void display(); }; class typist : public staf { private: int speed; public: void getdata(); void display(); }; 5 Visual paradigm- Lập trình trực quan - Visual paradigm language ngôn ngữ lập trình cho phép người dùng tạo chương trình cách thao tác yếu tố chương trình đồ họa thay định chúng văn Một VPL cho phép lập trình với biểu thức trực quan, xếp không gian ký hiệu văn đồ họa, sử dụng làm thành phần cú pháp ký hiệu phụ - Ví dụ: nhiều VPL (được gọi lập trình dataflow sơ đồ ) dựa ý tưởng "hộp mũi tên", hộp đối tượng hình khác coi thực thể, kết nối mũi tên, đường vòng cung biểu thị quan hệ *Ví dụ sử dụng dataflow: 6 Parallel paradigms- Lập trình song song - Tính tốn song song (Parallel Computing) việc chia cơng việc thành công việc nhỏ cho công việc thực đồng thời với hệ thống có nhiều vi xử lý (multiprocessor) hay vi xử lý đa nhân (multicore) nhằm giảm thời gian thực cơng việc xuống Việc lập trình để tách cơng việc nhỏ xếp để xử lý song song gọi lập trình song song - Tính tốn song song có liên quan chặt chẽ với tính tốn tương tranh, công cụ thường sử dụng thường bị xáo trộn, hai yếu tố khác biệt: có song song mà khơng cần tương tranh (như bit-level parallelism) đồng thời song song (như đa nhiệm cách chia sẻ thời gian CPU lõi đơn) Trong điện toán song song, tác vụ tính tốn thường chia thành nhiều, thường nhiều tác vụ phụ giống xử lý độc lập kết kết hợp sau đó, sau hồn thành Ngược lại, điện tốn đồng thời, quy trình khác thường không giải nhiệm vụ liên quan; họ làm, điển hình điện tốn phân tán, tác vụ riêng biệt có tính chất đa dạng thường yêu cầu số giao tiếp trình thực - Các máy tính song song phân loại cách đại khái theo mức độ mà phần cứng hỗ trợ song song, với máy tính đa lõi đa xử lý có nhiều thành phần xử lý máy, cụm , MPP lưới sử dụng nhiều máy tính để làm việc tập Kiến trúc máy tính song song chuyên dụng sử dụng với xử lý truyền thống, để tăng tốc tác vụ cụ thể - Trong số trường hợp, tính song song suốt người lập trình, chẳng hạn song song mức bit mức hướng dẫn, thuật toán song song rõ ràng , đặc biệt thuật toánsử dụng đồng thời, khó viết trình tự tuần tự, đồng thời giới thiệu số lớp lỗi phần mềm tiềm , điều kiện chủng tộc phổ biến Giao tiếp đồng hóa nhiệm vụ khác thường trở ngại lớn để có hiệu suất chương trình song song tốt Concurrent programming- Lập trình tương tranh - Lập trình tương tranh hình thức điện tốn số tính tốn thực khoảng thời gian chồng chéo, đồng thời phần tử liên tục (một hoàn thành trước bắt đầu tiếp theo) Đây thuộc tính hệ thống, chương trình riêng lẻ , máy tính mạng mạng có điểm thực thi riêng "luồng điều khiển" cho tính tốn ("quy trình") Một hệ thống đồng thời hệ thống tính tốn tiến lên mà khơng cần chờ tất tính tốn khác hồn thành - Cũng mơ hình lập trình, lập trình tương tranh dạng lập trình mơđun , cụ thể chia nhỏ tính tốn tổng thể thành tính tốn thực đồng thời Những người tiên phong lĩnh vực tính tốn đồng thời bao gồm Edsger Dijkstra, Per Brinch Hansen CAR Hoare Distributed programming- Lập trình phân tán - Lập trình phân tán dạng lập trình song song (tính tốn song song) Lập trình song song tạo mối liên hệ máy tính đơn vị tính tốn, khiến chúng hoạt động đồng thời vấn đề cụ thể (dự báo thời tiết chẳng hạn) Các đơn vị tính tốn đặt gần tách rời Khi đơn vị tính tốn đặt tách rời, ta gọi lập trình phân tán Với mơ hình lập trình này, đơn vị tính tốn thường khác nhau, khác hệ điều hành thiết lập mạng máy tính Những yếu tố khiến cho việc lập trình tính tốn máy tính trở nên tương đối phức tạp khó khăn Lập trình mạng phân tán, thường có khái niệm chính: peer to peer client - server peer to peer lập trình ngang hàng máy tính lập trình client - server lập trình cho phép n máy client kết nối tới m máy server - mơ hình gặp nhiều thực tế Extreme programming- Lập trình cực độ 10 - Extreme programming (XP) phương pháp phát triển phần mềm nhằm cải thiện chất lượng phần mềm khả đáp ứng yêu cầu khách hàng Là loại phát triển phần mềm linh hoạt, chủ trương phát hành thường xuyên chu kỳ phát triển ngắn, nhằm cải thiện suất đưa điểm kiểm tra theo yêu cầu khách hàng chấp nhận - Các yếu tố khác lập trình cực độ bao gồm: lập trình theo cặp thực đánh giá mã mở rộng , kiểm tra đơn mã, tránh lập trình tính chúng thực cần thiết, cấu trúc quản lý phẳng, đơn giản mã rõ ràng, mong muốn thay đổi theo yêu cầu khách hàng theo thời gian vượt qua vấn đề hiểu rõ hơn, giao tiếp thường xuyên với khách hàng lập trình viên Phương pháp luận lấy tên từ ý tưởng yếu tố có lợi thực hành kỹ thuật phần mềm truyền thống đưa đến mức cực độ Ví dụ, đánh giá mã coi thực hành có lợi, đưa đến cực đoan, mã xem xét liên tục , tức thực hành lập trình cặp II) Distributed programming- Lập trình phân tán - Lập trình phân tán lĩnh vực khoa học máy tính nghiên cứu hệ thống phân tán Một hệ thống phân tán hệ thống có thành phần đặt 11 máy tính nối mạng khác nhau, chúng giao tiếp phối hợp hành động chúng cách truyền tin nhắn cho Các thành phần tương tác với để đạt mục tiêu chung Ba đặc điểm quan trọng hệ thống phân tán là: đồng thời thành phần, thiếu đồng hồ toàn cầu thất bại độc lập thành phần Ví dụ hệ thống phân tán khác nhau, từ hệ thống dựa SOA đến trò chơi trực tuyến nhiều người chơi cho ứng dụng ngang hàng - Một chương trình máy tính chạy hệ thống phân tán gọi chương trình phân tán (và lập trình phân tán trình viết chương trình đó) Có nhiều loại triển khai khác cho chế truyền thơng điệp, bao gồm HTTP thuần, trình kết nối giống RPC hàng đợi tin nhắn - Lập trình phân tán đề cập đến việc sử dụng hệ thống phân tán để giải vấn đề tính tốn Trong điện tốn phân tán , vấn đề chia thành nhiều nhiệm vụ, nhiệm vụ giải nhiều máy tính, liên lạc với thơng qua việc truyền tin nhắn Giới thiệu Từ “song song” thuật ngữ “hệ thống song song”, “lập trình phân tán” “thuật toán phân tán” ban đầu gọi mạng máy tính nơi máy tính riêng lẻ phân phối vật lý số khu vực địa lý Các thuật ngữ ngày sử dụng theo nghĩa rộng nhiều, chí đề cập đến quy trình tự trị chạy máy tính vật lý tương tác với cách truyền tin nhắn * Mặc dù khơng có định nghĩa hệ thống phân tán, thuộc tính xác định sau thường sử dụng như: - Có số thực thể tính tốn tự trị (máy tính nút), thực thể có nhớ cục riêng - Các thực thể giao tiếp với cách gửi tin nhắn Một hệ thống phân tán có mục tiêu chung, chẳng hạn giải vấn đề tính tốn lớn, người dùng sau coi sưu tập xử lý tự trị đơn vị Ngoài ra, máy tính có người dùng riêng với nhu cầu riêng mục đích hệ thống phân tán phối hợp sử dụng tài nguyên chia sẻ cung cấp dịch vụ liên lạc cho người dùng 12 * Các đặc tính điển hình khác hệ thống phân tán bao gồm: - Hệ thống phải chịu đựng lỗi máy tính cá nhân - Cấu trúc hệ thống (cấu trúc liên kết mạng, độ trễ mạng, số lượng máy tính) khơng biết trước, hệ thống bao gồm loại máy tính liên kết mạng khác hệ thống thay đổi q trình thực chương trình phân tán - Mỗi máy tính có nhìn hạn chế, khơng đầy đủ hệ thống Mỗi máy tính biết phần đầu vào 2.Tính tốn song song phân tán Hệ thống phân tán nhóm máy tính nối mạng, có mục tiêu cho cơng việc họ Các thuật ngữ " điện toán đồng thời ", " điện tốn song song " "điện tốn phân tán" có nhiều trùng lặp khơng có phân biệt rõ ràng chúng Cùng hệ thống mô tả "song song" "phân phối"; xử lý hệ thống phân tán điển hình chạy song song Điện tốn song song coi dạng điện toán phân tán kết hợp chặt chẽ, điện toán phân tán coi dạng điện tốn song song lỏng lẻo Tuy nhiên, phân loại đại khái hệ thống đồng thời "song song" "phân phối" tiêu chí sau: Trong điện tốn song song, tất xử lý có quyền truy cập vào nhớ dùng chung để trao đổi thông tin xử lý Trong điện tốn phân tán, xử lý có nhớ riêng (bộ nhớ phân tán) Thông tin trao đổi cách chuyển tin nhắn xử lý Hình bên minh họa khác biệt hệ thống phân tán song song Hình (a) khung nhìn sơ đồ hệ thống phân tán điển hình; hệ thống biểu diễn dạng cấu trúc liên kết mạng nút máy tính dòng kết nối nút liên kết giao tiếp Hình (b) hiển thị hệ thống phân tán chi tiết hơn: máy tính có nhớ cục riêng thơng tin trao đổi cách gửi tin nhắn từ nút sang nút khác cách sử dụng liên kết giao tiếp có sẵn Hình (c) cho thấy hệ thống song song xử lý có quyền truy cập trực tiếp vào nhớ dùng chung 13 Tình hình phức tạp việc sử dụng truyền thống thuật ngữ song song thuật tốn phân tán khơng hoàn toàn khớp với định nghĩa hệ thống song song phân tán (xem bên để thảo luận chi tiết hơn) Tuy nhiên, theo nguyên tắc thơng thường, tính tốn song song hiệu cao xử lý đa nhớ dùng chung sử dụng thuật toán song song phối hợp hệ thống phân tán quy mô lớn sử dụng thuật toán phân tán 3.Lịch sử 14 Việc sử dụng quy trình đồng thời liên lạc cách truyền thơng điệp có nguồn gốc từ kiến trúc hệ điều hành nghiên cứu năm 1960 Các hệ thống phân tán rộng rãi mạng cục Ethernet , phát minh vào năm 1970 ARPANET , tiền thân Internet , giới thiệu vào cuối năm 1960 e-mail ARPANET phát minh vào đầu năm 1970 E-mail trở thành ứng dụng thành công ARPANET, có lẽ ví dụ sớm ứng dụng phân tán quy mơ lớn Ngồi ARPANET, người kế nhiệm nó, Internet, mạng máy tính tồn giới khác bao gồm Usenet FidoNet từ năm 1980, hai sử dụng để hỗ trợ hệ thống thảo luận phân tán Nghiên cứu điện toán phân tán trở thành nhánh khoa học máy tính riêng vào cuối năm 1970 đầu năm 1980 Hội nghị lĩnh vực, Hội nghị chun đề ngun tắc tính tốn phân tán (PODC), năm 1982, Hội nghị chuyên đề quốc tế tính tốn phân tán (DISC) lần tổ chức Ottawa vào năm 1985 với tư cách Hội thảo quốc tế thuật toán phân tán đồ thị 4.Kiến trúc Kiến trúc phần cứng phần mềm khác sử dụng cho điện toán phân tán Ở cấp độ thấp hơn, cần kết nối nhiều CPU với số loại mạng, mạng in bảng mạch hay tạo thành từ thiết bị cáp ghép lỏng lẻo Ở mức cao hơn, cần kết nối tiến trình chạy CPU với số hệ thống truyền thơng Lập trình phân tán thường rơi vào số kiến trúc bản: máy chủ client , ba tầng , n -tier ngang hàng, loại: khớp nối lỏng lẻo , khớp nối chặt chẽ Máy chủ Client sâu : kiến trúc nơi khách hàng thông minh liên hệ với máy chủ để lấy liệu sau định dạng hiển thị cho người dùng Đầu vào máy khách cam kết trở lại máy chủ thể thay đổi vĩnh viễn Ba tầng : kiến trúc di chuyển trí thơng minh khách hàng đến tầng trung lưu để khách hàng khơng trạng thái sử dụng Điều giúp đơn giản hóa việc triển khai ứng dụng Hầu hết ứng dụng web ba tầng 15 n -tier : kiến trúc thường đề cập đến ứng dụng web nhằm chuyển tiếp yêu cầu họ đến dịch vụ doanh nghiệp khác Loại ứng dụng trách nhiệm cho thành công máy chủ ứng dụng Ngang ngang hàng : kiến trúc nơi khơng có máy móc đặc biệt cung cấp dịch vụ quản lý tài nguyên mạng Thay vào đó, tất trách nhiệm phân chia thống tất máy, gọi đồng nghiệp Các máy ngang hàng phục vụ dạng máy khách máy chủ Một khía cạnh khác kiến trúc điện toán phân tán phương pháp giao tiếp phối hợp cơng việc quy trình đồng thời Thông qua giao thức truyền thông điệp khác nhau, quy trình giao tiếp trực tiếp với nhau, thường mối quan hệ chủ / nô lệ Ngoài ra, kiến trúc "trung tâm sở liệu" cho phép tính tốn phân tán thực mà khơng cần hình thức giao tiếp trình trực tiếp , cách sử dụng sở liệu dùng chung 5.Ứng dụng Lý sử dụng hệ thống phân tán tính tốn phân tán bao gồm: Bản chất ứng dụng yêu cầu sử dụng mạng truyền thơng kết nối số máy tính: ví dụ: liệu tạo vị trí thực tế yêu cầu vị trí khác Về ngun tắc, có nhiều trường hợp sử dụng máy tính có thể, việc sử dụng hệ thống phân tán có lợi cho lý thực tế Ví dụ, hiệu chi phí để đạt mức hiệu suất mong muốn cách sử dụng cụm số máy tính cấp thấp, so với máy tính cao cấp Một hệ thống phân tán cung cấp độ tin cậy cao hệ thống khơng phân tán, khơng có điểm thất bại Hơn nữa, hệ thống phân tán dễ dàng mở rộng quản lý hệ thống đơn xử lý nguyên khối 6.Ví dụ * Ví dụ hệ thống phân tán ứng dụng điện toán phân tán bao gồm: + Mạng viễn thông : - Mạng điện thoại mạng di động - Mạng máy tính Internet 16 - Mạng cảm biến khơng dây - Thuật tốn định tuyến + Ứng dụng mạng: - World Wide Web mạng ngang hàng - Nhiều trò chơi trực tuyến nhiều người chơi cộng đồng thực tế ảo - Cơ sở liệu phân tán hệ thống quản lý sở liệu phân tán - Hệ thống tập tin mạng - Hệ thống xử lý thông tin phân tán hệ thống ngân hàng hệ thống đặt chỗ hãng hàng khơng + Kiểm sốt trình thời gian thực: - Hệ thống điều khiển máy bay - Hệ thống điều khiển công nghiệp + Tính tốn song song : - Điện tốn khoa học , bao gồm điện toán cụm điện toán lưới dự án điện tốn tình nguyện khác (xem danh sách dự án điện toán phân tán ), - Phân phối kết xuất đồ họa máy tính 7.Cơ sở lý thuyết - Mơ hình Nhiều tác vụ mà chúng tơi muốn tự động hóa cách sử dụng máy tính thuộc loại câu hỏi Câu hỏi: chúng tơi muốn đặt câu hỏi máy tính đưa câu trả lời Trong khoa học máy tính lý thuyết , nhiệm vụ gọi vấn đề tính tốn Chính thức, vấn đề tính tốn bao gồm trường hợp với giải pháp cho trường hợp Trường hợp câu hỏi mà hỏi, giải pháp câu trả lời mong muốn cho câu hỏi Khoa học máy tính lý thuyết tìm cách hiểu vấn đề tính tốn giải cách sử dụng máy tính (lý thuyết tính tốn) hiệu lý thuyết phức tạp tính tốn) Theo truyền thống, người ta nói vấn đề giải cách sử dụng máy tính thiết kế thuật tốn tạo giải pháp xác cho trường hợp cụ thể Một thuật tốn thực chương trình máy tính chạy máy 17 tính có mục đích chung: chương trình đọc trường hợp vấn đề từ đầu vào , thực số tính tốn tạo giải pháp làm đầu Các hình thức máy truy cập ngẫu nhiên máy Turing phổ dụngcó thể sử dụng mơ hình trừu tượng máy tính đa thực thuật toán Lĩnh vực điện toán đồng thời phân tán nghiên cứu câu hỏi tương tự trường hợp có nhiều máy tính máy tính thực thi mạng lưới quy trình tương tác: vấn đề tính tốn giải mạng hiệu nào? Tuy nhiên, không rõ ràng ý nghĩa việc "giải vấn đề" trường hợp hệ thống đồng thời phân tán: ví dụ, nhiệm vụ người thiết kế thuật tốn tương đương đồng thời phân tán chuỗi Máy tính mục đích chung? Các thảo luận tập trung vào trường hợp nhiều máy tính, nhiều vấn đề giống quy trình đồng thời chạy máy tính * Ba quan điểm thường sử dụng: + Các thuật tốn song song mơ hình nhớ chia sẻ - Tất xử lý có quyền truy cập vào nhớ chia sẻ Trình thiết kế thuật tốn chọn chương trình thực xử lý - Một mơ hình lý thuyết máy truy cập ngẫu nhiên song song (PRAM) sử dụng Tuy nhiên, mô hình PRAM cổ điển giả định truy cập đồng vào nhớ dùng chung - Các chương trình nhớ dùng chung mở rộng cho hệ thống phân tán hệ điều hành bên đóng gói giao tiếp nút thống nhớ tất hệ thống riêng lẻ - Một mơ hình gần với hoạt động máy đa xử lý giới thực có tính đến việc sử dụng hướng dẫn máy, So sánh trao đổi (CAS), nhớ chia sẻ khơng đồng Có nhiều cơng việc mơ hình này, tóm tắt tìm thấy tài liệu + Các thuật tốn song song mơ hình truyền tin - Nhà thiết kế thuật toán chọn cấu trúc mạng, chương trình thực máy tính - Các mơ mạch Boolean mạng phân loại sử dụng Một mạch Boolean xem mạng máy tính: cổng máy tính chạy 18 chương trình máy tính đơn giản Tương tự, mạng xếp xem mạng máy tính: so sánh máy tính + Các thuật tốn phân tán mơ hình truyền tin - Người thiết kế thuật tốn chọn chương trình máy tính Tất máy tính chạy chương trình Hệ thống phải hoạt động xác cấu trúc mạng - Một mơ hình thường sử dụng biểu đồ với máy trạng thái hữu hạn nút Trong trường hợp thuật tốn phân tán, vấn đề tính tốn thường liên quan đến đồ thị Thông thường biểu đồ mô tả cấu trúc mạng máy tính ví dụ vấn đề Điều minh họa ví dụ sau Một ví dụ Hãy xem xét vấn đề tính tốn việc tìm màu đồ thị G cho Các lĩnh vực khác có cách tiếp cận sau: - Các thuật toán tập trung Biểu đồ G mã hóa dạng chuỗi chuỗi đưa làm đầu vào cho máy tính Chương trình máy tính tìm thấy màu đồ thị, mã hóa màu dạng chuỗi đưa kết - Thuật toán song song Một lần nữa, đồ thị G mã hóa dạng chuỗi Tuy nhiên, nhiều máy tính truy cập chuỗi song song Mỗi máy tính tập trung vào phần biểu đồ tạo màu cho phần Trọng tâm tính tốn hiệu cao khai thác sức mạnh xử lý nhiều máy tính song song - Thuật tốn phân tán Đồ thị G cấu trúc mạng máy tính Có máy tính cho nút G liên kết truyền thông cho cạnh G Ban đầu, máy tính biết hàng xóm trực tiếp biểu đồ G, máy tính phải trao đổi tin nhắn với để khám phá thêm cấu trúc G Mỗi máy tính phải tạo màu sắc riêng đầu Trọng tâm điều phối hoạt động hệ thống phân tán tùy ý 19 Trong lĩnh vực thuật tốn song song có trọng tâm khác với lĩnh vực thuật tốn phân tán, có nhiều tương tác hai trường Ví dụ, thuật tốn ColeTHER Vishkin để tơ màu đồ thị ban đầu trình bày dạng thuật toán song song, kỹ thuật tương tự sử dụng trực tiếp thuật toán phân tán Hơn nữa, thuật toán song song thực hệ thống song song (sử dụng nhớ dùng chung) hệ thống phân tán (sử dụng chuyển tin nhắn) Ranh giới truyền thống thuật toán song song phân tán (chọn mạng phù hợp so với chạy mạng cụ thể nào) không nằm chỗ với ranh giới hệ thống song song phân tán (bộ nhớ chia sẻ so với truyền tin) Các biện pháp phức tạp Trong thuật tốn song song, tài ngun khác ngồi thời gian khơng gian số lượng máy tính Thật vậy, thường có đánh đổi thời gian chạy số lượng máy tính: vấn đề giải nhanh có nhiều máy tính chạy song song (xem tăng tốc ) Nếu vấn đề định giải thời gian đa bội cách sử dụng số lượng xử lý đa thức, vấn đề cho thuộc lớp NC Lớp NC định nghĩa tốt cách sử dụng hình thức PRAM mạch Boolean Máy PRAM mơ mạch Boolean cách hiệu ngược lại Trong phân tích thuật tốn phân tán, thường ý nhiều đến hoạt động truyền thông bước tính tốn Có lẽ mơ hình đơn giản điện toán phân tán hệ thống đồng nơi tất nút hoạt động theo kiểu khóa Mơ hình thường gọi mơ hình địa phương Trong vòng liên lạc , tất nút song song (1) nhận tin nhắn từ hàng xóm họ, (2) thực tính toán cục tùy ý (3) gửi tin nhắn cho hàng xóm Trong hệ thống vậy, thước đo độ phức tạp trung tâm số vòng truyền thơng đồng cần thiết để hồn thành nhiệm vụ Biện pháp phức tạp có liên quan chặt chẽ với đường kính mạng Gọi D đường kính mạng Một mặt, vấn đề tính tốn giải cách tầm thường hệ thống phân tán đồng vòng giao tiếp khoảng D: cần thu thập tất thông tin vị trí (vòng D), giải vấn đề thơng báo cho nút giải pháp (vòng D) 20 Mặt khác, thời gian chạy thuật toán nhỏ nhiều vòng truyền thơng D , nút mạng phải tạo đầu chúng mà khơng có khả thu thông tin phần xa mạng Nói cách khác, nút phải đưa định thống tồn cầu dựa thơng tin có sẵn vùng lân cận D địa phương họ Nhiều thuật toán phân tán biết đến với thời gian chạy nhỏ nhiều so với vòng D hiểu vấn đề giải thuật tốn câu hỏi nghiên cứu lĩnh vực Thơng thường, thuật toán giải vấn đề thời gian đa bội kích thước mạng coi hiệu mơ hình Một biện pháp khác thường sử dụng tổng số bit truyền mạng (xem độ phức tạp giao tiếp) Các tính khái niệm thường ghi lại mơ hình CONGEST (B), định nghĩa tương tự mơ hình LOCAL thơng điệp chứa bit B Thuộc tính hệ thống phân tán Cho đến nay, trọng tâm thiết kế hệ thống phân tán giải vấn đề định Một vấn đề nghiên cứu bổ sung nghiên cứu thuộc tính hệ thống phân tán định Các vấn đề ngăn chặn ví dụ tương tự từ lĩnh vực tính tốn tập trung: đưa chương trình máy tính cơng việc định xem tạm dừng chạy mãi Vấn đề tạm dừng giải trường hợp chung hiểu cách tự nhiên hành vi mạng máy tính khó hiểu hành vi máy tính Tuy nhiên, có nhiều trường hợp đặc biệt thú vị định Cụ thể, suy luận hành vi mạng lưới máy trạng thái hữu hạn Một ví dụ cho biết liệu mạng lưới trạng thái hữu hạn tương tác (không đồng khơng xác định) đạt đến bế tắc hay khơng Vấn đề hồn tất PSPACE, định được, khơng có khả có thuật toán hiệu (tập trung, song song phân tán) để giải vấn đề trường hợp mạng lớn 21 22 Danh mục tài liệu tham khảo: - https://en.wikipedia.org - https://whatis.techtarget.com/definition/distributed-computing - https://www.outsystems.com/blog/what-is-visual-programming.html - https://www.quora.com/What-is-the-imperative-programming-paradigm - Một số hình ảnh tìm kiếm Google hình ảnh 23 ...I) Các mơ thức lập trình phổ biến Imperative paradigm- Lập trình mệnh lệnh - Trong khoa học máy tính, Imperative paradigm mơ thức lập trình sử dụng câu lệnh để thay đổi trạng thái chương trình. .. logic hình thức Bất kỳ chương trình viết ngơn ngữ lập trình logic tập hợp câu dạng logic, diễn đạt kiện quy tắc số miền vấn đề Các họ ngơn ngữ lập trình logic bao gồm Prolog , lập trình trả lời... paradigm- Lập trình trực quan - Visual paradigm language ngơn ngữ lập trình cho phép người dùng tạo chương trình cách thao tác yếu tố chương trình đồ họa thay định chúng văn Một VPL cho phép lập trình