1. Trang chủ
  2. » Tất cả

(Đồ án) đồ án cơ sở ngành mạng đề tài mô phỏng thuật toán thay thế trang lru thông qua mô hình clientserver bằng giao thức tcp

25 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Đồ án Cơ Sở Ngành Mạng 1 Mục lục Mở Đầu 1 PHẦN I NGUYÊN LÝ HỆ ĐIỀU HÀNH 2 CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 2 1 1 Sơ lược về hệ điều hành 2 1 2 Bộ nhớ ảo 3 1 3 Thuật toán LRU 5 CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ T[.]

Đồ án Cơ Sở Ngành Mạng Mục lục Mở Đầu PHẦN I: NGUYÊN LÝ HỆ ĐIỀU HÀNH CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Sơ lược hệ điều hành 1.2 Bộ nhớ ảo 1.3 Thuật toán LRU .5 CHƯƠNG PHÂN TÍCH THIẾT KẾ HỆ THỐNG .5 2.1 Thiết kế cấu trúc liệu .5 2.2 Thiết kế chức PHẦN II: LẬP TRÌNH MẠNG 10 CHƯƠNG CƠ SỞ LÝ THUYẾT 10 1.1 Mơ hình client/server 10 1.2 Giao thức TCP 14 CHƯƠNG PHÂN TÍCH THIẾT KẾ HỆ THỐNG 15 2.1 Thiết kế client 15 2.2 Thiết kế server 17 CHƯƠNG TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 18 3.1 Triển khai chương trình 18 3.2 Đánh giá kết 23 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 23 TÀI LIỆU THAM KHẢO 23 h Đồ án Cơ Sở Ngành Mạng Mở Đầu Nhằm mục đích tìm hiểu thuật tốn thay trang LRU môn nguyên lý hệ điều hành làm quen với việc sử dụng giao thức TCP, em chọn đề tài “Mơ thuật tốn thay trang LRU thơng qua mơ hình client/server giao thức TCP” cho đồ án sở ngành mạng Hy vọng áp dụng kiến thức học vào thực tế tích lũy thêm kinh nghiệm lập trình cho thân Tuy nhiên, kiến thức cịn hạn hẹp nên chắn tránh thiếu xót Vì thế, em mong đóng góp ý kiến thầy cô để giúp đề tài em hoàn thiện Em xin chân thành cảm ơn Ts Phạm Minh Tuấn quan tâm, giúp đỡ hướng dẫn chúng em nhiều trình tìm hiểu, thiết kế hoàn thành đồ án Đà Nẵng, ngày 30 tháng 11 năm 2015 h Đồ án Cơ Sở Ngành Mạng PHẦN I: NGUYÊN LÝ HỆ ĐIỀU HÀNH TIÊU ĐỀ: Thuật toán LRU CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Sơ lược hệ điều hành 1.1.1 Hệ điều hành gì? Hệ điều hành phần mềm chạy máy tính, dùng để điều hành, quản lý thiết bị phần cứng tài nguyên phần mềm máy tính Hệ điều hành đóng vai trị trung gian việc giao tiếp người sử dụng phần cứng máy tính, cung cấp môi trường cho phép người sử dụng phát triển thực ứng dụng họ cách dễ dàng 1.1.2 Quá trình phát triển Quá trình phát triển chia làm giai đoạn bản: - Giai đoạn 1945-1955: vào khoảng thập niên 1940, Howard Aiken John von Neumann thành công việc xây dựng máy tính dùng ống chân khơng Lúc chưa có ngơn ngữ lập trình hệ điều hành chưa nhắc đên -Giai đoạn 1955-1965: đời thiết bị bán dẫn làm thay đồi tranh tổng thể, máy tính trở nên đáng tin cậy hơn, ngơn ngữ lập trình xuất hợp ngữ hay FORTRAN Hệ thống xử lý theo lơ đời tiền thân hệ điều hành sau -Giai đoạn 1965-1980: máy IBM 360 máy tính sử dụng mạch tích hợp (IC) Từ làm kích thước hệ thống giảm đáng kể, yêu cầu xử lý ngày phức tạp Lúc này, hệ điều hành đời nhằm điều phối, giải tranh chấp thiết bị Giai đoạn đánh dấu đời hệ điều hành chia sẻ thời gian CTSS cảu MIT Đồng thời hệ điều hành lớn đời MULTICS, UNIX hệ thống máy mini xuất DEC PDP1 h Đồ án Cơ Sở Ngành Mạng Giai đoạn sau 1980 : giai đoạn đánh dấu đời máy tính cá nhân, đặc biệt IBM PC với hệ điều hành MS_DĨ Window sau Bên cạnh có cách hệ điều hành dựa UNIX Linux Ngoài ra, giai đoạn đánh dấu phát triển hệ điều hành mạng hệ điều hành phan tán 1.2 Bộ nhớ ảo 1.2.1 Định nghĩa Bộ nhớ ảo kỹ thuật cho phép xử lý tiến trình khơng nạp tồn vào nhớ vật lý Bộ nhớ ảo mơ hình hoá nhớ bảng lưu trữ lớn đồng nhất, tách biệt hẳn khái niệm không gian địa không gian vật lý Người sử dụng nhìn thấy làm việc khơng gian địa ảo, việc chuyển đổi sang không gian vật lý hệ điều hành thực với trợ giúp chế phần cứng cụ thể Bộ nhớ áo cài đặt thơng qua: - u cầu phân trang (demand paging) - Yêu cầu phân đoạn (demand segmentation) 1.2.2 Yêu cầu phân trang - Chỉ đưa trang vào nhớ cần thiết - Ưu điểm:     Giảm thao tác vào Tiết kiệm nhớ Xử lý nhanh Tăng số lượng người sử dụng tiến trình Với mơ hình này, cần cung cấp chế phần cứng giúp phân biệt trang nhớ trang đĩa Có thể sử dụng lại bit validinvalid với ngữ nghĩa mới: valid : trang tương ứng hợp lệ nhớ invalid : trang bất hợp lệ (không thuộc khơng gian địa tiến trình) trang hợp lệ lưu nhớ phụ Một phần tử bảng trang mộ tả cho trang khơng nằm nhớ chính, đánh dấu invalid chứa địa trang nhớ phụ 1.2.3 Lỗi trang Truy xuất đến trang đánh dấu bất hợp lệ làm phát sinh lỗi trang (page fault) Khi dị tìm bảng trang để lấy thông tin cần thiết cho việc chuyển đổi địa chỉ, nhận thấy trang yêu cầu truy xuất bất hợp lệ, h Đồ án Cơ Sở Ngành Mạng chế phần cứng phát sinh ngắt để báo cho hệ điều hành Hệ điều hành xử lý lỗi trang sau : Kiểm tra truy xuất đến nhớ hợp lệ hay bất hợp lệ Nếu truy xuất bất hợp lệ : kết thúc tiến trình Ngược lại : đến bước Tìm vị trí chứa trang muốn truy xuất đĩa Tìm khung trang trống nhớ : Nếu tìm thấy : đến bước Nếu khơng cịn khung trang trống, chọn khung trang (nạn nhân) chuyển trang (nạn nhân) nhớ phụ (lưu nội dung trang chiếm giữ khung trang lên đĩa), cập nhật bảng trang tương ứng đến bước Chuyển trang muốn truy xuất từ nhớ phụ vào nhớ : nạp trang cần truy xuất vào khung trang trống chọn (hay vừa làm trống ) ; cập nhật nội dung bảng trang, bảng khung trang tương ứng Tái kích hoạt tiến trình người sử dụng Hình 1.1 bước xử lý lỗi trang 1.2.4 Các thuật toán Một số thuật toán sử dụng để xử lý lỗi trang: h Đồ án Cơ Sở Ngành Mạng - FIFO: Các trang vào nhớ trang chọn để đổi vị trí - Trang quang học: Thuật tốn đổi vị trí trang quang học có tỉ lệ trang lỗi tất thuật tốn Một thuật tốn đổi vị trí quang học tồn gọi OPT MIN - Thuật toán tối ưu: Thay trang lâu sử dụng tương lai - LRU (Least Recently Used): Trang mà không sử dụng cho thời gian dài nhớ trang chọn để đổi vị trí 1.3 Thuật tốn LRU - Mô tả : thay trang lâu chưa truy suất - Lỗi trang : sảy truy xuất đến trang ko có nhớ/địa ko hợp lệ Chỉ xét trường hợp trang ko có nhớ (bộ nhớ ) - Q trình truy xuất trang (trường hợp có lỗi trang):       Truy xuất đến trang ko có nhớ (i) Gởi tín hiệu đến HĐH HĐH + MMU tìm trang nhớ phụ Nạp trang/thay trang vào nhớ Cập nhật PMT Truy xuất lại CHƯƠNG PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 Thiết kế cấu trúc liệu - Tạo biến đảm nhiệm chức hàng đợi, mơ tả tiến trình gọi đưa vào hàng đợi, chờ để thực thi Queue = new ArrayList(); - Tạo liệu giúp ghi lại trạng thái nhớ thời qua lần thực thi tiến trình Mỗi nhớ phải ghi lại tên tiến trình đưa vào lần cuối sử dụng public class Memory { h Đồ án Cơ Sở Ngành Mạng String page; int state; Memory(){ page=new String(); state=0; } public String getPage(){ return page; } public int getState(){ return state; } public void setPage(String page){ this.page=page; } public void setState(int state){ this.state=state; } - } Tạo biến thuộc kiểu liệu có khả lưu trữ thơng tin nhớ suốt trình phép nhìn thấy tồn tiến trình thực thi trạng thái nhớ lúc public class Store implements Serializable{ Vector title; Vector row1,row2,row3,row4; Vector data; public Store(){ title=new Vector(); data=new Vector(); row1=new Vector(); row2=new Vector(); row3=new Vector(); row4=new Vector(); add("tien trinh","o nho 1","o nho 2","o nho 3","o nho 4"); } public void add(String vTitle,String vRow1,String vRow2,String vRow3,String vRow4){ h Đồ án Cơ Sở Ngành Mạng title.add(vTitle); row1.add(vRow1); row2.add(vRow2); row3.add(vRow3); row4.add(vRow4); } public Vector getTitle(){ return title; } public Vector getData(){ data.clear(); data=new Vector(row1.size()); data.add(row1); data.add(row2); data.add(row3); data.add(row4); return data; } } 2.2 Thiết kế chức Hệ thống mô tả chức mơ lại thuật tốn LRU Tuy nhiên, việc yêu cầu nhiều hành động tham gia vào Do đó, phương thức tạo nhằm đáp ứng yêu cầu hành động  Đưa tiến trình gọi vào hàng đợi: tiến trình gọi lấy tên tiến trình đưa vào hàng đợi để chờ xử lý Phương thức giá trị trả public void layTienTrinh(String s) { int i; i = queue.lastIndexOf(" "); if (i != -1) { queue = queue.substring(0, i) + " " + s; } else queue = s; h Đồ án Cơ Sở Ngành Mạng String s1 = s.trim(); while (true) { i = s1.indexOf(" "); if (i == -1) break; Queue.add(s1.substring(0, i).trim()); s1 = s1.substring(i).trim(); } }  Kiểm tra xem tiến trình có nhớ hay chưa: thực việc truy cập vào nhớ so sánh với tên tiến trình thời để kiểm tra Phương thức trả giá trị true false public boolean checkMemory(String process) { int i; for (i = 0; i < 4; i++) if (process.compareTo(memory[i].page) == 0) break; if (i < 4) return true;// da ton tai memory return false;// chua ton tai }  Tìm vị trí vần thiết để đưa tiến trình vào: tiến hành kiểm tra xem có nhớ cịn trống hay khơng Nếu có trả vị trí nhớ Ngược lại, tìm tiến trình nhớ lâu chưa gọi trả vị trí tiến trình public int check() { int imax = 0, max = memory[0].state; h Đồ án Cơ Sở Ngành Mạng for (int i = 0; i < 4; i++) { if (memory[i].page.equals("")) return i; if (memory[i].state > max) { max = memory[i].state; imax = i; } } return imax;}  Phương thức mô LRU:lấy tiến trình khỏi hàng đợi Sau đó, kiếm tra tiến trình có nhớ hay khơng Nếu có cài đặt lại thời gian gọi gần Ngược lại, tìm vị trí thích hợp theo thuật tốn đưa tiến trình vào nhớ Cuối lưu lại trang thái nhớ lượt Phương thức khơng có giá trị trả public void xuly() { if (Queue.isEmpty()) { queue = "PNH"; return; } process = Queue.get(0).trim(); Queue.remove(0); queue = queue.substring(queue.indexOf(" ")).trim(); if (checkMemory(process)) { for (int i = 0; i < 4; i++) if (process.compareTo(memory[i].page) == 0) memory[i].state = 0; } else { int position = check(); memory[position].page = process; h Đồ án Cơ Sở Ngành Mạng memory[position].state = 0; } for (int i = 0; i < 4; i++) if (!memory[i].page.equals("")) memory[i].state++; store.add(process, memory[0].page, memory[2].page, memory[3].page); memory[1].page, } PHẦN II: LẬP TRÌNH MẠNG TIÊU ĐỀ: Mơ LRU theo mơ hình client/server giao thức TCP CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Mơ hình client/server 1.1.1 Giới thiệu Trong mơ hình này, chương trình ứng dụng chia thành thành phần: Quá trình chuyên cung cấp số phục vụ đó, chẳng hạn: phục vụ tập tin, phục vụ máy in, phục vụ thư điện tử, phục vụ Web Các trình gọi trình phục vụ hay Server Một số trình khác có yêu cầu sử dụng dịch vụ server cung cấp gọi trình khách hàng hay Client Việc giao tiếp client server thực hình thức trao đổi thơng điệp (Message) Để phục vụ, client gởi thông điệp yêu cầu (Request Message) mô tả công việc muốn server thực Khi nhận thông điệp yêu cầu, server tiến hành phân tích để xác định công việc cần phải thực thi Nếu việc thực yêu cầu có sinh kết trả về, server gởi cho client thơng điệp trả lời (Reply Message) Dạng thức (format) ý nghĩa thông điệp trao đổi client server qui định rõ giao thức (protocol) ứng dụng 10 h Đồ án Cơ Sở Ngành Mạng Hình 2.1 Mơ hình client/server 1.1.2 Các chế độ giao tiếp Q trình giao tiếp client server diễn theo hai chế độ nghẽn (blocked) hay không nghẽn (Non blocked) Chế độ nghẽn: Trong chế độ này, trình client hay server phát lệnh gửi liệu, (thông thường lệnh send) , thực thi bị tạm dừng trình nhận phát lệnh nhận số liệu (thường lệnh receive) Tương tự cho trường hợp nhận liệu, q trình đó, client hay server, phát lệnh nhận liệu, mà thời điểm chưa có liệu gửi đến, thực thi tạm dừng có liệu gửi đến 11 h Đồ án Cơ Sở Ngành Mạng Hình 2.2 Giao tiếp nghẽn Chế độ khơng nghẽn: Trong chế độ này, q trình client hay server phát lệnh gửi liệu, thực thi tiếp tục mà khơng quan tâm đến việc có q trình phát lệnh nhận số liệu hay khơng Tượng tự cho trường hợp nhận liệu, trình phát lệnh nhận liệu, nhận số lượng liệu có (bằng chưa có trình gửi liệu đến) Sự thực thi trình tiếp tục 12 h Đồ án Cơ Sở Ngành Mạng Hình 2.3 Giao tiếp khơng nghẽn 1.1.3.Cấu trúc client/server Client/server hai tầng: cấu trúc đơn giản Trong thực tế hầu hết kiến trúc client/server kiến trúc hai tầng Một ứng dụng hai tầng cung cấp nhiều trạm làm việc với tầng trình diễn thống nhất, tầng truyền tin với tầng lưu trữ liệu tập trung Tầng trình diễn thơng thường client, tầng lưu trữ liệu server Hầu hết ứng dụng Internet email, telnet, ftp chí Web ứng dụng hai tầng Client/server ba tầng: Ta tránh vấn đề kiến trúc client/server hai tầng cách mở rộng kiến trúc thành ba tầng Một kiến trúc ba tầng có thêm tầng tách biệt việc xử lý liệu vị trí trung tâm Kiến trúc n tầng: chia thành tầng sau:  Tầng giao diện người dùng: quản lý tương tác người dùng với ứng dụng  Tầng logic trình diễn: Xác định cách thức hiển thị giao diện người dùng yêu cầu người dùng quản lý  Tầng logic tác nghiệp: Mơ hình hóa quy tắc tác nghiệp  Tầng dịch vụ hạ tầng: Cung cấp chức bổ trợ cần thiết cho ứng dụng thành phần (truyền thông điệp, hỗ trợ giao tác) 13 h Đồ án Cơ Sở Ngành Mạng 1.2 Giao thức TCP Giao thức TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận") giao thức cốt lõi giao thức TCP/IP Sử dụng TCP, ứng dụng máy chủ nối mạng tạo "kết nối" với nhau, mà qua chúng trao đổi liệu gói tin Giao thức đảm bảo chuyển giao liệu tới nơi nhận cách đáng tin cậy thứ tự 1.2.1 Một số khái niệm Socket cổng logic mà chương trình sử dụng để kết nối với chương trình khác chạy máy tính khác Internet Chương trình mạng sử dụng nhiều Socket lúc, nhờ nhiều chương trình sử dụng Internet lúc Một TCP/IP Socket gồm địa IP kết hợp với port ? Xác định tiến trình (process ) mạng.Hay nói cách khác Luồng thơng tin mạng dựa vảo IP để xác định máy máy mạng port xác định tiến trình máy 1.2.2 Cách gọi hàm Hình 2.4 socket TCP 14 h Đồ án Cơ Sở Ngành Mạng CHƯƠNG PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 Thiết kế client Client đảm nhận nhiệm vụ gửi thông điệp đén server nhận liệu trả (nếu có) - Thiết kế phương thức gửi thông điệp dạng chuỗi nhận dạng chuỗi kết trả từ server Phương thức trả kiểu String public String sent(String message) throws Exception { connection = new Socket("localhost", 6000); dis = new DataInputStream(connection.getInputStream()); dos = DataOutputStream(connection.getOutputStream()); new dos.writeUTF(message); return dis.readUTF(); } - Thiết kế phương thức yêu cầu server trả trạng thái nhớ tiến trình xử lý lượt Tuy nhiên, việc khơng cho client biết cấu trúc lưu trữ biến lưu trữ trạng thái nhớ Phương thức khơng có giá trị trả public void sentMemory() throws Exception { for (int i = 0; i < 4; i++) buff[i] = sent("ACK" + i); process = sent("ACK4"); } - Phương thức yêu cầu server trả thống kê tiến trình xử lý tình trạng nhớ qua trình Phương thức yêu cầu trả đối tượng lưu trữ 15 h Đồ án Cơ Sở Ngành Mạng public Store sentObject()throws Exception{ connection=new Socket("localhost",6000); dos=new DataOutputStream(connection.getOutputStream()); dos.writeUTF("THONGKE"); ObjectInputStream ois; ois=new ObjectInputStream(connection.getInputStream()); return (Store)ois.readObject(); } - Thiết kế phương thức yêu cầu trả trạng thái nhớ server Phương thức gọi lúc client vừa khởi động lên public void setMemoryStart() throws Exception { for (int i = 0; i < 4; i++) { memory[i] = sent("ACK" + i); txtm[i].setText(memory[i]); } } - Phương thức yêu cầu trả trạng thái hàng đợi public void setQueue(String s) { s = s.trim(); if (s.equals("PNH")) txt2.setText("Queue is emply"); else { int i = s.lastIndexOf(" "); s = s.substring(0, i).trim(); txt2.setText(s); } 16 h Đồ án Cơ Sở Ngành Mạng } 2.2 Thiết kế server Server có nhiệm vụ nhận tất thông điệp từ client gửi lại kết xử lý thơng điệp cho client thể lên Cơng việc thực phương thức main public static void main(String[] args) { try { Server dt = new Server(); while (true) { Socket connection = dt.server.accept(); DataInputStream dis; Dis =new DataInputStream(connection.getInputStream()); DataOutputStream dos; dos = new DataOutputStream(connection.getOutputStream()); dt.nhan = dis.readUTF(); switch (dt.nhan) { case "CTN": dt.xuly(); dos.writeUTF(dt.queue); break; case "ACK0": dos.writeUTF(dt.memory[0].page); break; case "ACK1": dos.writeUTF(dt.memory[1].page); break; case "ACK2": dos.writeUTF(dt.memory[2].page); break; case "ACK3": dos.writeUTF(dt.memory[3].page); break; 17 h Đồ án Cơ Sở Ngành Mạng case "ACK4": dos.writeUTF(dt.process); break; case "START": dos.writeUTF(dt.queue); break; case "THONGKE": ObjectOutputStream oos; oos=new ObjectOutputStream (connection.getOutputStream()); oos.writeObject(dt.store); break; default: dt.layTienTrinh(dt.nhan); dos.writeUTF(dt.queue); } } } catch (Exception e) { } } CHƯƠNG TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 3.1 Triển khai chương trình - Chạy chương trình server sau chương trình client Quan sát bên hình client Vì khởi động lên nên ô nhớ hàng đợi trống 18 h Đồ án Cơ Sở Ngành Mạng - Nhập tên tiến trình vào text, nhập tay đọc từ file, sau ấn nút “xong” - Bấm “continue” lần 1, thông báo tên tiến trình xử lý, hàng đợi lấy tiến trình 19 h

Ngày đăng: 04/04/2023, 09:39

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w