Luận Văn Lập trình đa tiến trình xây dựng chương trình chatting trên mạng linux

Thảo luận trong 'Công Nghệ Thông Tin' bắt đầu bởi Bống Hà, 2/5/13.

  1. Bống Hà

    Bống Hà New Member

    Bài viết:
    5,424
    Được thích:
    2
    Điểm thành tích:
    0
    Xu:
    0Xu
    CHƯƠNG 1
    TỔNG QUAN ĐỀ TÀI
    I. Hệ điều hành Linux

    Hệ điều hành Linux bắt đầu phát triển từ năm 1991. Tác giả ban đầu của hệ điều hành này là một sinh viên trường đại học tổng hợp Helsinki, Linus B. Torvalds. Linux là từ viết tắt của Linus (tên tác giả) và Unix. Phiên bản đầu tiên của Linux gọi là phiên bản 0.01 được phát hành vào tháng 8 năm 1991.
    Hiện nay, tại phòng thực hành số 1 trường đại học kỹ thuật Đà Nẵng có cài đặt hệ điều hành Linux để các sinh viên chuyên ngành Tin học cũng như các ngành khác có thể tiếp cận và học hỏi trên hệ điều hành này. Ngoài ra, hệ điều hành Linux đã được đưa vào chương trình học của sinh viên chuyên ngành thành một môn bắt buộc. Điều này sẽ giúp cho sinh viên có được cái nhìn tổng quát hơn về hệ điều hành, có đièu kiện đánh gía và so sánh với hệ điều hành đang được sử dụng phổ biến MS DOS và Microsoft Windows.
    Đưa hệ điều hành Linux vào giảng dạy và nghiên cứu sẽ mở ra thêm một hướng đi mới cho sinh viên chuyên ngành. Cuộc chiến thị phần giữa các hệ điều hành có đi đến kết cuộc như thế nào thì việc biết thêm một hệ điều hành, lập trình được trên đó sẽ làm vững tin hơn cho các sinh viên sau khi tốt nghiệp.
    Về phía sinh viên, Microsoft Windows là hệ điều hành rất thân thiện với người sử dụng và từ lâu nay đã được sử dụng rất nhiều. Microsoft Windows có khả năng nối mạng cùng chung hệ điều hành rất dể dàng. Vậy đối với Linux thì sao? Khi đã có được hệ thống mạng dùng Linux thì việc giao tiếp giữa các máy Linux với nhau có gì khác với hệ điều hành Microsoft Windows.
    II. Giao tiếp giữa các máy có sử dụng hệ điều hành Linux
    Hệ điều hành Linux được thừa kế Unix nên có rất nhiều tính năng mạnh về mạng máy tính và giao tiếp giữa các máy trong mạng, thậm chí chúng được cụ thể hóa bằng các lệnh gọi hệ thống, hay nói ngắn gọn hơn: chỉ là các thao tác đơn giản. Với các lệnh gọi hệ thống này có thể được dùng để trao đổi một số thông tin đơn giản giữa các user hay giữa hai máy với nhau như lệnh talk, mail, write,
    II.1. Giới thiệu một số tiện ích giao tiếp qua mạng Linux
    a) Lệnh gọi hệ thống talk
    Lệnh gọi hệ thống talk cho phép hai user đang đăng nhập có thể trao đổi thông tin trực tiếp với nhau. Lệnh talk được gọi với tham số là một user khác đang tồn tại trong hệ thống. Sau đó, màn hình hệ thống được chia làm hai phần, phần dưới dành hiễn thị các dòng thông báo của user đối thoại và phần trên dành cho người đang sử dụng. Nếu user chưa đăng nhập, talk sẽ thông báo lỗi về việc user không tồn tại và trở lại dấu nhắc của shell.
    Một khi sử dụng lệnh gọi hệ thống talk, tất cả những gì chúng ta gõ vào đều được hiễn thị ở user kia. Tuy nhiên chúng ta không thể làm gì khác cho đến khi thoát khỏi talk. Một điều quan trọng là talk chỉ cho phép hai trao đổi giữa hai user.
    b) Lệnh gọi hệ thống mail
    Lệnh mail cho phép chúng ta gởi các đoạn nhắn đến các user trên máy tính hoặc các user trên mạng nếu chúng ta biết tên miền của user đó. So với talk, sử dụng mail linh hoạt hơn nhưng thông tin trao đổi không mang tính tức thời. Chúng ta có thể kiểm tra mail và trả lời bất kỳ khi nào chúng ta muốn dẫn đến thông tin sẽ không cập nhật kịp thời. Khó khăn lớn nhất của mail là chúng la luôn phải nhớ chính xác tên user và tên miền của đích đến.
    III. Giới thiệu nội dung đề tài
    Linux là hệ điều hành đa nhiệm, đa người sử dụng, Một người bất kỳ cũng có thể hiểu được các khái niệm trên một khi họ đã đọc lướt qua một quyển sách, một tờ báo nào đó có nói đến Linux hay Unix chẳng hạn. Vậy chúng ta phải nhắc đến điều gì trong khi đó là những đặc trưng của Linux ?
    Đối với một sinh viên chuyên ngành tin học chúng ta không thể đánh giá vấn đề theo hướng " Nó là gì ?" mà phải biết nhận xét "Nó làm việc như thế nào ?" và quan trọng hơn có thể là " Làm thế nào để sử dụng nó như công cụ của mình ?". Từ đó chúng ta thử quay lại với các khái niệm trên với một số vấn đề đặt ra:
    - Linux quản lý hệ thống bằng cách quản lý các tiến trình. Nếu chúng ta có một chương trình có sử dụng đa tiến trình thì chúng ta sẽ quản lý chúng như thế nào?
    - Linux đã cung cấp một số lệnh gọi hệ thống cho phép truyền thông (có hạn chế) trên mạng liệu có hỗ trợ cho chúng ta lập trình trên mạng dể dàng hay không?
    Nói tóm lại, vấn đề đặt ra ở đây không phải là chúng ta sử dụng Linux mà là chúng ta tận dụng các đặc trưng của hệ điều hành để ứng dụng chúng vào việc lập trình trên hệ điều hành này.
    Từ những hạn chế của một số lệnh kể trên, các tính năng của một hệ đa tiến trình tôi đã nảy ra ý tưởng xây dựng một chương trình cho phép các máy sử dụng Linux (có thể cả MS Windows) có thể giao tiếp với nhau cùng một lúc, qua đó các sinh viên có thể sử dụng máy để trao đổi trực tiếp các thông tin tức thời cho nhau. Ngoài ra có thêm một chương trình để tham khảo khi bắt đầu lập trình trên Linux và X Window cũng tốt.
    Tôi đã dựa theo ý tưởng này để đưa ra quyết định chọn đề tài "LẬP TRÌNH ĐA TIẾN TRÌNH XÂY DỰNG CHƯƠNG TRÌNH CHATTING TRÊN MẠNG LINUX" làm đề tài tốt nghiệp của mình. Mô hình chatting gồm có hai chương trình, một chương trình phục vụ (server) và một chương trình khách (client).
    + Chương trình server là một chương trình được viết bằng ngôn ngữ C sử dụng đa tiến trình, trao đổi thông tin giữa các tiến trình và giao tiếp với các chương trình client qua mạng. Chương trình server có hai thành phần chính, một thành phần luôn chờ đợi các kết nối của các chương trình client từ máy trạm và một thành phần tạo ra một tiến trình mới mỗi khi có một client kết nối đến. Tiến trình mới này trực tiếp trao đổi thông tin với chương trình client vừa kết nối.
    + Chương trình client được xây dựng bằng ngôn ngữ tcl/tk, một ngôn ngữ thông dịch, tạo giao diện với người sử dụng trên X Window. Chương trình này sử dụng các giao tiếp qua mạng để truyền và nhận thông tin với các chương trình client khác qua chương trình server.
     

    Các file đính kèm:

Đang tải...