1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập lớn: NGUYÊN LÝ HỆ ĐIỀU HÀNH

22 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

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 2,47 MB

Nội dung

Có lẽ không cần phải nói quá nhiều về cụm từ hệ điều hành nữa. Dù là bất cứ ai, khi mà đã hoặc đang sử dụng một chiếc máy tính để học tập, làm việc thì đều ít nhiều từng nghe đến cụm từ Hệ điều hành. Với phần lớn hệ thống máy tính, khi mà người sử dụng bật thiết bị của họ lên, thì ngay sau đoạn logo của của hãng phần cứng xuất hiện sẽ là sự xuất hiện của hệ điều hành. Với đa số người, biểu tượng cửa sổ huyền thoại của hệ điều hành Microsoft Windows không có gì xa lạ nữa. Từ những năm 90 của thế kỉ trước, những phiên bản đầu tiên như Windows 1.0, Windows 3.1 ... cho đến Windows 95, 98, ngày nay là Windows 7, Windows 8.1 hay Windows 10, có đôi chút thay đổi về màu sắc, kiểu dáng nhưng vẫn là cái biểu tượng quen thuộc biểu tượng của hệ điều hành Windows. Thế giới máy tính ngày nay, ngoài Windows còn có thêm rất nhiều hệ điều hành khác cho phép người dùng trải nghiệm, như macOS dành cho máy tính của hãng Apple, ChromeOS dành riêng cho ChromeBook của Google, hoặc những hệ thống dựa trên nhân Linux và BSD. Nhưng nhìn chung, cho dù là gì đi nữa thì cũng vẫn là hệ điều hành máy tính, đều là một loại phần mềm đặc biệt có thể quản lý bộ nhớ, các tiến trình cũng như cho phép các phần mềm khác hoạt động phía trên nó. Ngoài ra, hệ điều hành còn cho phép kết nối, giao tiếp (làm cầu nối) giữa các máy tính với nhau mà không yêu cầu người sử dụng phải hiểu biết quá nhiều về kỹ thuật hay ngôn ngữ của máy tính (ngôn ngữ nhị phân). Có thể nhận định rằng:Không có hệ điều hành, các thiết bị máy tính là vô dụng.Tại sao phải nghiên cứu về các hoạt động của hệ điều hành?Hệ điều hành được tạo ra nhằm mục đích giúp con người có thể sử dụng máy tính và làm việc trên nó, đôi khi là giải trí hoặc tương tác với các máy tính khác. Khi nó ra đời, bản thân nó đã bao gồm cả việc khiến cho mọi người đều có thể sử dụng máy tính, mặc dù việc này là không đảm bảo được chắc chắn nếu như hệ điều hành đó không đi kèm một số tài liệu hướng dẫn sử dụng cần thiết. Và khi hệ điều hành được sử dụng rộng rãi cũng không có nghĩa là nó hoàn hảo. Đâu đó bên trong hệ thống phức tạp này vẫn còn tồn tại vài lỗi, hoặc thậm chí vài lỗ hổng bảo mật có thể khiến toàn bộ thiết bị cũng như các phần mềm khác bị trục trặc. Chính vì vậy, cần có những đội hoặc nhóm chuyên biệt, có trình độ kỹ thuật cao được lập ra để nghiên cứu về các vấn đề xoay quanh hoạt động của hệ điều hành, hiểu rõ về bản chất của nó và giúp cho việc khắc phục các vấn đề liên quan đến nó dễ dàng hơn. Bài viết này của mình được nhằm mục đích tìm hiểu, cũng như giới thiệu cho mọi người những hoạt động cơ bản nhất của hệ điều hành, qua đó có thể giúp mọi người nắm được cơ bản các vấn đề xử lý ở mức thấp hơn của hệ thống mà chúng ta vẫn đang sử dụng. Mặc dù các hệ điều hành có thể khác nhau nhưng nhìn chung hoạt động về cơ bản là giống nhau.Hệ điều hành là gì?Trước khi nói về hoạt động, mình sẽ giải thích cơ bản một chút về hệ điều hành. Nhìn chung hệ điều hành là một phần mềm máy tính, nhưng không giống như các phần mềm quen thuộc chúng ta hay dùng hàng ngày như trình duyệt, trình soạn thảo văn bản hay trình biên tập file. Hệ điều hành là tập hợp của các chương trình có chức năng quản lý phần cứng cũng như cung cấp các dịch vụ cần thiết cho các phần mềm khác hoạt động. Ngoài ra, hệ điều hành hầu hết sẽ che giấu đi những xử lý tính toán phức tạp, tính toán việc sử dụng tài nguyên cũng như cung cấp các chức năng về cách ly (để tránh tối đa xung đột giữa phần cứng với phần mềm) và tạo một vài lớp bảo vệ tránh tấn công từ bên ngoài (điển hình nhất là Firewall). Hệ điều hành bao gồm 3 thành phần, 3 yếu tố cấu thành và 2 nguyên tắc thiết kế•3 thành phần chính là File system (các tập tin hệ thống), Scheduler (bộ lập lịch) và Device driver (trình điều khiển thiết bị).•3 yếu tố cấu thành bao gồm Abstraction(yếu tố trừu tượng)(gồm có process, thread, file, socket và memory), Mechanisms(yếu tố cơ chế)(gồm có create, schedule, open, write, allocate) và Policies(yếu tố chính sách)(gồm có LRU và EDF)•2 nguyên tắc thiết kế bao gồm: Separation of mechanism and policy (đảm bảo thiết kế các cơ chế dễ đáp ứng việc bổ sung chính sách) và Optimization for common case (Tối ưu cho các trường hợp phổ biến)Ngay sau đây, mình sẽ trình bày một số hoạt động chính của hệ điều hành mà mình tìm hiểu được, do số lượng nội dung khá nhiều nên mình sẽ chia bài viết làm 3 phần. Trong phần 1 này, mình sẽ nói về 3 vấn đề: (1) Quản lý tiến trình, (2) Luồng và xử lý đồng bộ và (3) Cơ chế lập lịch.

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN - BÁO CÁO BÀI TẬP LỚN Môn học: Ngun Lí Hệ Điều Hành Đề số 01: Trình bày chế hoạt động hệ điều hành WINDOWS đảm bảo tiến trình hoạt động có đủ nhớ để thực GVHD: Sinh Viên TH: Hà Nội, 2023 Lời mở đầu Có lẽ khơng cần phải nói nhiều cụm từ hệ điều hành Dù ai, mà sử dụng máy tính để học tập, làm việc nhiều nghe đến cụm từ "Hệ điều hành" Với phần lớn hệ thống máy tính, mà người sử dụng bật thiết bị họ lên, sau đoạn logo của hãng phần cứng xuất xuất hệ điều hành Với đa số người, biểu tượng cửa sổ huyền thoại hệ điều hành Microsoft Windows khơng có xa lạ Từ năm 90 kỉ trước, phiên Windows 1.0, Windows 3.1 Windows 95, 98, ngày Windows 7, Windows 8.1 hay Windows 10, có đơi chút thay đổi màu sắc, kiểu dáng biểu tượng quen thuộc - biểu tượng hệ điều hành Windows Thế giới máy tính ngày nay, ngồi Windows cịn có thêm nhiều hệ điều hành khác cho phép người dùng trải nghiệm, macOS dành cho máy tính hãng Apple, ChromeOS dành riêng cho ChromeBook Google, hệ thống dựa nhân Linux BSD Nhưng nhìn chung, cho dù hệ điều hành máy tính, loại phần mềm đặc biệt quản lý nhớ, tiến trình cho phép phần mềm khác hoạt động phía Ngồi ra, hệ điều hành cịn cho phép kết nối, giao tiếp (làm cầu nối) máy tính với mà khơng u cầu người sử dụng phải hiểu biết nhiều kỹ thuật hay ngơn ngữ máy tính (ngơn ngữ nhị phân) Có thể nhận định rằng: Khơng có hệ điều hành, thiết bị máy tính vơ dụng Tại phải nghiên cứu hoạt động hệ điều hành? Hệ điều hành tạo nhằm mục đích giúp người sử dụng máy tính làm việc nó, đơi giải trí tương tác với máy tính khác Khi đời, thân bao gồm việc khiến cho người sử dụng máy tính, việc không đảm bảo chắn hệ điều hành khơng kèm số tài liệu hướng dẫn sử dụng cần thiết Và hệ điều hành sử dụng rộng rãi khơng có nghĩa hồn hảo Đâu bên hệ thống phức tạp tồn vài lỗi, chí vài lỗ hổng bảo mật khiến tồn thiết bị phần mềm khác bị trục trặc Chính vậy, cần có đội nhóm chun biệt, có trình độ kỹ thuật cao lập để nghiên cứu vấn đề xoay quanh hoạt động hệ điều hành, hiểu rõ chất giúp cho việc khắc phục vấn đề liên quan đến dễ dàng Bài viết nhằm mục đích tìm hiểu, giới thiệu cho người hoạt động hệ điều hành, qua giúp người nắm vấn đề xử lý mức thấp hệ thống mà sử dụng Mặc dù hệ điều hành khác nhìn chung hoạt động giống Hệ điều hành gì? Trước nói hoạt động, giải thích chút hệ điều hành Nhìn chung hệ điều hành phần mềm máy tính, khơng giống phần mềm quen thuộc hay dùng hàng ngày trình duyệt, trình soạn thảo văn hay trình biên tập file Hệ điều hành tập hợp chương trình có chức quản lý phần cứng cung cấp dịch vụ cần thiết cho phần mềm khác hoạt động Ngoài ra, hệ điều hành hầu hết che giấu xử lý tính tốn phức tạp, tính tốn việc sử dụng tài nguyên cung cấp chức cách ly (để tránh tối đa xung đột phần cứng với phần mềm) tạo vài lớp bảo vệ tránh cơng từ bên ngồi (điển hình Firewall) Hệ điều hành bao gồm thành phần, yếu tố cấu thành nguyên tắc thiết kế  thành phần File system (các tập tin hệ thống), Scheduler (bộ lập lịch) Device driver (trình điều khiển thiết bị)  yếu tố cấu thành bao gồm Abstraction(yếu tố trừu tượng)(gồm có process, thread, file, socket memory), Mechanisms(yếu tố chế)(gồm có create, schedule, open, write, allocate) Policies(yếu tố sách)(gồm có LRU EDF)  ngun tắc thiết kế bao gồm: Separation of mechanism and policy (đảm bảo thiết kế chế dễ đáp ứng việc bổ sung sách) Optimization for common case (Tối ưu cho trường hợp phổ biến) Ngay sau đây, trình bày số hoạt động hệ điều hành mà tìm hiểu được, số lượng nội dung nhiều nên chia viết làm phần Trong phần này, nói vấn đề: (1) Quản lý tiến trình, (2) Luồng xử lý đồng (3) Cơ chế lập lịch Quản lý tiến trình Một tiến trình chương trình trạng thái thực thi Việc thực thi tiến trình buộc phải diễn theo kiểu Đơn giản là, danh sách chương trình muốn thực thi điền vào tệp văn máy tính hoạt động, nội dung tệp trở thành thứ tự thực thi tiến trình tương ứng, nội dung tệp thay đổi theo thời gian Mặc dù có nhiều nhận định cho máy tính xử lý song song, nhiên với vi xử lý đại ngày có chứa nhiều nhân (core) hoạt động độc lập, cịn thực tế tiến trình quản lý nhân xử lý hoạt động tuần tự, chẳng qua việc xử lý diễn nhanh đến mức mắt người thấy Các chương trình luân phiên hoạt động để đánh lừa mắt người chúng hoạt động song song ^^ Khi chương trình nạp vào nhớ trở thành tiến trình, chia thành bốn phần - Stack, Heap, Data Text Hình ảnh sau cho thấy bố cục đơn giản tiến trình bên nhớ chính: Trong đó,  Stack: Chứa liệu tạm thời, thường chứa liệu dùng thời gian ngắn dùng lần  Heap: Đây vùng nhớ cấp phát động cho tiến trình thời gian thực thi  Data: Chứa biến global (biến dùng chung cấp tồn chương trình) static (loại biến dùng chung cấp struct)  Text: Bao gồm hoạt động biểu thị giá trị Program Counter nội dung ghi vi xử lý Khi tiến trình thực thi, qua trạng thái khác Các giai đoạn khác hệ điều hành khác tên trạng thái khơng chuẩn hóa cụ thể Nhưng nhìn chung, tiến trình có năm trạng thái sau thời điểm:  Start: Trạng thái tiến trình tạo khởi động lần  Ready: Tiến trình chờ để chuyển cho vi xử lý Thường tiến trình khác chạy, CPU khơng cho phép tiến trình khác xen vào mà phải đợi tới lượt để đảm bảo tiến trình xử lý xong (lưu ý, tiến trình xử lý xong khơng có nghĩa kết thúc) Trạng thái thường xuất sau trạng thái Start  Running: Trạng thái thực thi tiến trình, lập lịch Scheduler chuyển cho vi xử lý, vi xử lý tiến hành thực tính tốn dẫn  Wait: Trạng thái xảy tiến trình cần chờ tài nguyên để sử dụng, ví dụ chờ người dùng nhập liệu chờ đợi tệp tin sử dụng tiến trình khác (Vấn đề thảo luận liên quan đến xử lý I/O)  Terminated: Xảy tiến trình xử lý xong bị ngắt yêu cầu từ hệ thống người dùng, trạng thái gọi Exit Để lưu liệu hoạt động tiến trình, hệ điều hành sử dụng cấu trúc liệu gọi Process Control Block (PCB) Mỗi PCB xác định số nguyên dương (bắt đầu từ 1), gọi Process ID (PID) PCB thường bao gồm thông tin sau:  Process ID (PID): Số nguyên xác định định danh tiến trình  State: Trạng thái tiến trình (là trạng thái phần trên)  Pointer: Con trỏ lưu địa tiến trình cha  Priority: Độ ưu tiên tiến trình, giúp cho vi xử lý xác định thứ tự thực  Program Counter: Con trỏ lưu địa dẫn giúp cho tiến trình thực thi (là phép tính tương tự)  CPU Registers: Các ghi tiến trình cần sử dụng để thực thi  I/O Information: Thông tin thiết bị đọc - ghi mà tiến trình cần sử dụng  Accounting Information: Chứa thông tin việc sử dụng CPU thời gian sử dụng, định danh… Cơ chế lập lịch Scheduling (lập lịch) nhiệm vụ xử lý, tiến hành loại bỏ tiến trình chạy khỏi CPU lựa chọn danh sách tiến trình khác sở chiến lược cụ thể (Có thể danh sách bao gồm số tiến trình danh sách cũ) Lập lịch tiêu chí việc thiết kế hệ điều hành đa nhiệm (multi-task) Các hệ điều hành cho phép nhiều tiến trình nạp vào nhớ để thực thi thời điểm tiến trình nạp chia sẻ thời gian CPU cách sử dụng ghép kênh thời gian (multiplexing) Hệ điều hành trì tất PCB (đã nhắc đến cuối phần 1) Process Scheduling Queues (hàng đợi lập lịch tiến trình) Đồng thời, trạng thái tiến trình có hàng đợi riêng trì (1 hàng đợi riêng cho ready, hàng đợi riêng cho running ) PCB tất tiến trình trạng thái thực thi đặt hàng đợi Khi trạng thái tiến trình thay đổi, PCB bị xóa liên kết khỏi hàng đợi chuyển sang hàng đợi trạng thái (áp dụng thuật toán danh sách liên kết chế truy xuất theo địa chỉ) Ngoài hàng đợi theo trạng thái, hệ điều hành cịn trì số hàng đợi như:  Job queue: Hàng đợi lưu trữ tiến trình hệ thống  Ready queue: Chứa tiến trình khởi tạo  Device queue: Nếu tiến trình cần chờ để sử dụng thiết bị I/O đưa vào Dưới hình ảnh mơ ta tiến trình từ bắt đầu rời khỏi CPU: Một số sách thường sử dụng để lập lịch bao gồm FIFO, Round Robin Priority Theo hình, tiến trình rời khỏi Ready queue để bắt đầu thực thi, có khả năng:  Request I/O: tiến trình cần xử lý liên quan đến đọc - ghi => Sẽ chuyển vào Device queue  Timeout: tiến trình dùng hết thời gian cấp phép CPU, đưa trở lại vào Ready queue để đợi đến lượt  Fork child: tiến trình tạo tiến trình để tiếp tục xử lý, thường tiến trình phức tạp cần xử lý đồng thời nhiều cơng việc  Interrupt: tiến trình bị gián đoạn vấn đề đột ngột phát sinh Một khái niệm khác nhắc tới Context switch (kỹ thuật chuyển ngữ cảnh) Đây chế lưu trữ khôi phục trạng thái ngữ cảnh CPU PCB Nó cho phép thực tiến trình bắt đầu lại từ trạng thái kết thúc trước Giống ta ghi liệu lên file, sau sửa file ta tiếp tục với nội dung lưu trước thay bắt đầu lại từ đầu Kỹ thuật cho phép nhiều tiến trình chia sẻ CPU Context switch tính thiết yếu hệ điều hành đa nhiệm Khi lập lịch chuyển CPU từ việc thực thi tiến trình sang tiến trình khác, trạng thái từ tiến trình chạy lưu trữ vào PCB Với lần thực thi tiếp theo, trạng thái cho tiến trình tải từ PCB sử dụng để thiết lập đếm chương trình, ghi, v.v Tại thời điểm đó, tiến trình thứ hai bắt đầu thực thi Việc tính tốn Context switch chun sâu, ghi trạng thái nhớ phải lưu khôi phục lại giai đoạn thực thi trước Để tránh thời gian chuyển đổi lâu, số hệ thống phần cứng sử dụng hai nhiều ghi xử lý để tính tốn Khi tiến trình chuyển đổi Context switch, thơng tin sau lưu trữ để sử dụng: đếm chương trình, thơng tin lập lịch, giá trị ghi sở giới hạn, ghi sử dụng, trạng thái thay đổi, thông tin I/O thơng tin kế tốn Luồng xử lý đồng Luồng (hay Thread) quy trình thực thơng qua mã tiến trình, tiến trình có nhiều luồng thực song song Nó có đếm chương trình (Program Counter) riêng để theo dõi dẫn thực Nó có ghi hệ thống chứa biến làm việc ngăn xếp chứa lịch sử thực dẫn Một luồng chia sẻ với luồng ngang hàng thơng tin khác code segment, data segment file mở Khi luồng làm thay đổi thông tin kể trên, tất luồng khác thấy Luồng gọi tiểu tiến trình Luồng cung cấp cách để cải thiện hiệu suất ứng dụng thông qua việc xử lý song song Luồng đại diện cho cách tiếp cận phần mềm để cải thiện hiệu suất hệ điều hành cách giảm chi phí xử lý Một luồng tương đương với tiến trình cổ điển Mỗi luồng thuộc xác tiến trình khơng có luồng tồn bên ngồi tiến trình (nói cách khác, khơng có tiến trình khơng có luồng) Luồng thường áp dụng máy chủ network máy chủ web, đáp ứng thực thi song song hệ thống dùng chung nhớ Hình ảnh cho thấy trừ ghi ngăn xếp liệu khác dùng chung luồng, khác với tiến trình việc tất dùng riêng Các ưu điểm luồng bao gồm:  Giảm thời gian chuyển ngữ cảnh (**Context switch)  Các tài nguyên cung cấp đồng thời luồng tiến trình  Việc giao tiếp luồng đạt hiệu cao (thay tạo tiến trình con)  Tiết kiệm chi phí việc dùng đa tiến trình  Cho phép tận dụng hiệu với vi xử lý đại Quản lý nhớ Quản lý nhớ (hay Memory Management) chức hệ điều hành, đối tượng nhắm đến chủ yếu RAM (Random Access Memory) Các công việc quản lý nhớ bao gồm:  Trao đổi liệu qua lại nhớ RAM ổ đĩa cứng tiến trình thực  Theo dõi vị trí cụ thể nhớ, cấp cho tiến trình hoạt động vùng nhớ khơng sử dụng  Kiểm tra dung lượng nhớ phân bố cho tiến trình  Quyết định thời gian cấp phát nhớ với tiến trình  Theo dõi nhớ giải phóng khơng phân bố, cập nhật trạng thái tương ứng 10  Hình ảnh thể phần cấp phát nhớ hệ điều hành  Ban đầu vùng nhớ cấp phát (allocate) cho Class A, sau Class B sử dụng vùng nhớ Nếu trình diễn bình thường, vùng nhớ bị tiêu hủy (destroy) A B giải phóng Nhưng trước đó, Class C xin tạo (copy) để sử dụng giải phóng sau  Tất công đoạn cấp phát, sử dụng, giải phóng hay tiêu hủy phận Memory management hệ điều hành xử lý Địa vùng nhớ cấp cho tiến trình lưu trữ tập trung không gian đặc biệt (gọi process addresses space), tập hợp địa logic mà tiến trình tham chiếu đến mã xử lý Lấy ví dụ: sử dụng địa loại 32 bit, địa phép cấp phát nằm khoảng từ đến 0x7FFFFFFF, tương đương với (231−1231−1 số sử dụng, với tổng kích thước lý thuyết khoảng 2GB Còn với địa 64 bit, số cấp phát nằm khoảng từ đến $0x7FFFFFFFFFFFFFFF$ (263−1263−1 giá trị, tối đa khoảng Exabytes nhớ sử dụng theo lý thuyết) Hệ điều hành phải đảm nhiệm công việc ánh xạ (mapping) địa logic (địa process addresses space) thành địa vật lý (địa thực tế RAM) thời điểm cấp phát nhớ cho chương trình tiến trình sử dụng Có ba loại địa sử dụng chương trình tiến trình trước sau nhớ cấp phát, là:  Symbolic Addresses (địa tượng trưng): Được sử dụng mã nguồn chương trình, thường lưu trữ tên biến, số nhãn dẫn  Relative Addresses (địa tương đối): Được chuyển đổi từ Symbolic Addesses thời điểm biên dịch  Physical Addresses (địa vật lý): Chỉ tạo mã xử lý tiến trình nạp vào nhớ RAM Địa ảo vật lý lược đồ liên kết địa thời gian biên dịch thời gian tải Địa ảo vật lý khác lược đồ ràng buộc địa thời gian thực Tập hợp tất địa logic tạo chương trình gọi không gian địa logic Tập hợp tất địa vật lý tương ứng với địa logic gọi không gian địa vật lý Cả Physical Addresses Logical Addresses (gồm loại Symbolic Relative) có khơng gian lưu trữ quản lý riêng, tương ứng gọi physical addresses spacec logical addresses space Hai loại địa tương đương thời 11 điểm biên dịch nạp vào nhớ RAM, thực mã xử lý bên RAM khác nhau, tất quản lý phận Memory management hệ điều hành Quản lý vào / Ở phần viết, em đưa luận điểm chiều, là: Khơng có hệ điều hành, thiết bị máy tính vơ dụng Nhưng tìm hiểu đến phần này, em nhận luận điểm chưa hồn tồn xác Đúng cỗ máy khơng có hệ điều hành quản lý (hoặc khơng có người thao tác) khơng làm nên việc Nhưng ngược lại, có hệ điều hành mà khơng có thiết bị phần cứng kèm tương ứng khơng làm nên cơng việc Thật ra, phần cứng máy tính hệ điều hành kèm nhau, hỗ trợ nhau, bổ sung cho để đạt mục tiêu chung, khơng bỏ Cũng giống phân cấp xã hội loài người, người thường nhà quản lý tách rời Nếu thiếu nhà quản lý, xã hội loạn khơng thể kiểm sốt Và ngược lại, tất quản lý, người bình thường nữa, khơng quản lý Tóm lại: Phần cứng máy tính hệ điều hành kèm tách rời, hai phối hợp với tạo chỉnh thể hồn thiện Chính vậy, công việc quan trọng Hệ điều hành quản lý thiết bị đầu vào / đầu (Input / Output) khác nhau, bao gồm chuột, bàn phím, touchpad, ổ đĩa cứng, hình, thiết bị USB, thiết bị kết nối mạng, thiết bị âm thanh, máy in, v.v Cần thiết phải có hệ thống I / O để nhận yêu cầu vào / liệu ứng dụng gửi đến thiết bị vật lý, sau nhận lại phản hồi từ thiết bị gửi đến ứng dụng xử lý tiếp Thiết bị I / O chia thành hai loại:  Block devices (thiết bị khối): loại thiết bị mà trình điều khiển giao tiếp cách gửi tồn khối liệu Ví dụ: Ổ đĩa cứng, thiết bị USB Flash, máy ảnh USB  Character devices (thiết bị ký tự): Loại thiết bị mà trình điều khiển giao tiếp cách gửi nhận ký tự đơn (byte mã - octa) Ví dụ: loại card hình, card âm cổng serial port, parallel Trừ CPU thiết bị ngoại vi khác thường có trình điều khiển 12 kèm (CPU có kiểu xử lý riêng thường với phần cứng, có nhớ độc lập) Chính đặc biệt CPU, nên hệ điều hành tạo số cách giao tiếp đặc biệt để CPU thiết bị I/O làm việc nhau, có tất cách sau: 5.1) Special instruction I/O Cách sử dụng dẫn CPU tạo riêng để điều khiển thiết bị I/O Các dẫn thường cho phép liệu đọc ghi trực tiếp với thiết bị (dữ liệu mã nhị phân) 5.2) Memory mapped I/O Kỹ thuật dùng để chia sẻ không gian địa thiết bị I/O nhớ Thiết bị kết nối trực tiếp với số vị trí nhớ định để truyền khối liệu đến / từ nhớ mà không cần thông qua CPU 13 Ưu điểm kỹ thuật dẫn truy cập nhớ sử dụng để thao tác với thiết bị ngoại vi I/O ánh xạ vào nhớ sử dụng cho hầu hết thiết bị I/O tốc độ cao 5.3) Direct memory Access (DMA) Các thiết bị xử lý chậm bàn phím, chuột tạo gián đoạn (interrupt) đến CPU sau byte liệu truyền (có thể nhấn phím, thả phím ) Điều khơng gây nhiều ảnh hưởng Nhưng thiết bị xử lý nhanh, chẳng hạn đĩa cứng, tạo gián đoạn cho byte khiến cho hệ điều hành phải dành phần lớn thời gian để xử lý vấn đề này, gây lãng phí nhiều tài ngun CPU Vì để giảm chi phí phát sinh, kỹ thuật truy cập nhớ trực tiếp (DMA) áp dụng DMA có nghĩa CPU cấp quyền cho mô-đun I/O để đọc ghi vào nhớ mà không cần thân CPU phải thao tác Mô-đun DMA tự điều khiển việc trao đổi liệu nhớ RAM thiết bị I/O CPU tham gia vào lúc bắt đầu kết thúc trình chuyển bị gián đoạn sau toàn khối chuyển DMA cần phần cứng đặc biệt gọi DMA Controller (DMAC) để quản lý việc truyền liệu xử lý truy cập vào bus hệ thống Các điều khiển lập trình với trỏ nguồn đích (nơi đọc / ghi liệu), counter để theo dõi số lượng byte truyền cài đặt khác Chúng bao gồm loại I/O nhớ, ngắt trạng thái cho chu kỳ CPU Cơng nghệ ảo hóa phần cứng Ảo hóa (Virtualization) công nghệ đặc biệt cho phép tạo nhiều môi trường mô tài nguyên chuyên dụng từ hệ thống phần cứng vật 14 lý (Tức coi dùng nhiều máy tính phần cứng nhất) Một loại phần mềm đặc biệt tên hypervisor kết nối trực tiếp với phần cứng cho phép ta chia hệ thống thành nhiều môi trường riêng biệt, độc lập an toàn gọi máy ảo (VM - Virtual Machine) Các máy ảo dựa vào khả hypervisor để chia tách tài nguyên máy khỏi phần cứng phân phối chúng cách thích hợp Máy vật lý ban đầu trang bị ảo hóa gọi máy chủ lưu trữ, nhiều máy ảo sử dụng tài nguyên gọi máy khách Những máy khách coi tài nguyên điện toán - CPU, nhớ lưu trữ - kho tài nguyên dễ dàng di dời Phần mềm vận hành kiểm sốt phiên ảo hóa CPU, nhớ, lưu trữ tài nguyên khác để máy khách nhận tài nguyên chúng cần Tóm lại, cơng nghệ ảo hóa tạo môi trường tài nguyên bạn cần để làm việc độc lập từ phần cứng chưa sử dụng Kỹ thuật ảo hóa đa dạng, nhiên tóm lại loại sau: 6.1) Ảo hóa liệu - Data Virtualization Trước liệu ảo hóa chúng tập hợp lại thành nguồn theo phân loại nhằm tránh xự lan tràn Ảo hóa liệu cho phép công ty coi liệu nguồn cung cấp động - cung cấp khả xử lý kết hợp liệu từ nhiều nguồn, dễ dàng cung cấp nguồn liệu chuyển đổi liệu theo nhu cầu người dùng Các cơng cụ ảo hóa liệu nằm trước nhiều nguồn liệu cho phép chúng coi nguồn Chúng cung cấp 15 liệu cần thiết theo yêu cầu vào thời điểm cho ứng dụng người dùng 6.2) Ảo hóa máy tính để bàn - Desktop Virtualization Thường hay bị nhầm lẫn với ảo hóa hệ điều hành Loại cho phép triển khai nhiều hệ điều hành máy Ảo hóa máy tính để bàn cho phép quản trị viên trung tâm (hoặc công cụ quản trị tự động) triển khai mơi trường máy tính để bàn mô lên hàng trăm máy vật lý lúc Khơng giống mơi trường máy tính để bàn truyền thống cài đặt, cấu hình cập nhật vật lý máy, ảo hóa máy tính để bàn cho phép quản trị viên thực cấu hình hàng loạt, cập nhật kiểm tra bảo mật tất máy tính để bàn ảo (Cịn gọi One-for-All) 6.3) Ảo hóa máy chủ - Server Virtualization Máy chủ máy tính thiết kế để xử lý khối lượng lớn tác vụ cụ thể, thường giao tiếp logic tầng thấp mơ hình mạng Máy chủ cho phép máy tính khác (như máy tính xách tay máy tính để bàn) thực nhiều tác vụ khác thông qua giao diện cụ thể Ảo hóa máy chủ cho phép thực nhiều chức cụ thể liên quan đến việc phân vùng để thành phần sử dụng để phục vụ nhiều chức 6.4) Ảo hóa hệ điều hành - Operating System Virtualization Loại ảo hóa xảy nhân (kernel), trình quản lý tác vụ trung tâm hệ điều hành Nó cách hữu ích để chạy song song môi trường hệ điều hành khác Linux Windows Các doanh nghiệp đưa hệ điều hành ảo vào máy tính Điều đem lại số tác dụng:  Giảm chi phí phần cứng, máy tính không yêu cầu khả vượt trội  Tăng tính bảo mật, tất trường hợp ảo theo dõi độc lập với máy tính chủ ban đầu (host)  Giới hạn thời gian dành cho dịch vụ CNTT cập nhật phần mềm, bảo trì máy chủ 6.5) Ảo hóa chức mạng - Network Function Virtualization Kỹ thuật phân tách chức mạng (như Directory Services, File sharing IP configuration) để chúng phân phối 16 môi trường khác qua mạng Khi chức phần mềm độc lập với máy vật lý mà chúng hoạt động, chức cụ thể đóng gói thành mạng gán cho mơi trường riêng Mạng ảo hóa làm giảm số lượng thành phần vật lý(như: switches, routers, servers, cables hubs) cần thiết để tạo nhiều mạng độc lập đặc biệt phổ biến ngành viễn thơng Inter-Process Communication Trong hệ thống tiến trình máy tính có hai loại: Independent (tiến trình độc lập) Cooporating (tiến trình hợp tác) Một tiến trình độc lập hoạt động mà khơng bị ảnh hưởng tiến trình khác, tức ln đảm bảo cơng việc mà thực thi Ngược lại, tiến trình hợp tác hoạt động, bị ảnh hưởng tiến trình liên quan, chí gây gián đoạn vơ thời hạn Nếu nhìn qua khái niệm, ta thấy rõ ràng tiến trình độc lập thực thi hiệu hơn, khơng phải phụ thuộc vào ngồi thân tập lệnh Tuy nhiên, thực tế tiến trình hợp tác thực đem lại hiệu cao Do vấn đề liên quan đến tốc độ, thuận tiện tính mơ đun hóa mà tiến trình hợp tác đem lại hiệu tốt Khái niệm Inter-Process Communication (IPC) đời chế cho phép tiến trình giao tiếp với đồng hóa hành động chúng Q trình giao tiếp giúp tiến trình biết trình trạng hoạt động, tình trạng sử dụng tài nguyên để phân bổ thời gian hợp lý Các tiến trình giao tiếp với theo hai cách: Shared Memory (chia sẻ nhớ) Message Parsing (phân tích thơng điệp) 7.1) Phương pháp Shared Memory Giả sử ta có hai tiến trình, phân biệt gọi Producer (tiến trình sản xuất) Consumer (tiến trình tiêu thụ) Tiến trình sản xuất tạo số vật phẩm tiến trình tiêu thụ dùng vật phẩm Hai tiến trình chia sẻ khơng gian chung vị trí nhớ gọi đệm Vật phẩm nói tiến trình sản xuất lưu trữ đệm tiến trình tiêu thụ lấy cần Vấn đề có hướng giải quyết:  Cái biết đến Unbounded Buffer Problem, tiến trình sản xuất tiếp tục tạo vật phẩm giới hạn kích thước đệm  Ngược lại, thứ hai gọi Bounded Buffer Problem, tiến trình sản xuất tạo tối đa số lượng vật phẩm định Sau cần chờ tiến trình tiêu thụ lấy dùng để giải phóng khơng gian 17 đệm tiếp tục tạo vật phẩm Về phía cịn lại, tiến trình tiêu thụ khơng thấy có vật phẩm cần đệm đợi tiến trình sản xuất tạo 7.2) Phương pháp Message Parsing Với phương pháp này, tiến trình giao tiếp với mà không cần sử dụng loại nhớ dùng chung Nếu hai tiến trình p1 p2 muốn giao tiếp với nhau, chúng tiến hành sau:  Thiết lập liên kết truyền thông (nếu liên kết tồn tại, không cần thiết lập lại liên kết.)  Bắt đầu trao đổi thông điệp cách sử dụng giao tiếp Đó là: o Send: gửi thông điệp, bao gồm tùy chọn: send(message, destination) send(mesage) o Receive: nhận thông điệp, bao gồm tùy chọn: receive(message, host) receive(message) 18 Kích thước thơng điệp cố định thay đổi, cách có ưu điểm nhược điểm riêng Kích thước cố định dễ dàng cho nhà thiết kế hệ điều hành phức tạp lập trình viên Ngược lại, thay đổi, dễ dàng cho lập trình viên phức tạp người thiết kế hệ điều hành Một thông điệp tiêu chuẩn có hai phần: header body Header sử dụng để lưu trữ loại thơng điệp (type), định danh đích, định danh nguồn, độ dài thông điệp thông tin điều khiển Thông tin điều khiển chứa thông tin phải làm hết dung lượng đệm, số thứ tự mức độ ưu tiên Nói chung, thông điệp gửi cách sử dụng kiểu FIFO (kiểu hàng đợi) Distributed File Systems Distributed File Systems (hệ thống tệp tin phân tán) sử dụng mô hình client/server-based application Nó cho phép máy khách truy cập xử lý liệu lưu trữ máy chủ thể nằm máy tính họ Khi người dùng truy cập tệp máy chủ, máy chủ gửi cho người dùng tệp, lưu nhớ cache máy tính người dùng liệu xử lý sau thơng tin xử lý trả máy chủ Cách tốt hệ thống tệp phân tán tổ chức dịch vụ tệp thư mục máy chủ riêng lẻ thành thư mục chung theo cách mà việc truy cập liệu từ xa không 19 cụ thể theo vị trí mà giống hệt với máy khách Tất tệp truy cập tất người dùng hệ thống tổ chức tệp toàn cầu phân cấp dựa thư mục Hay nói cách khác, với góc nhìn máy khách hệ thống tệp tin thư mục Do có nhiều máy khách truy cập liệu thời điểm, nên máy chủ phải có chế (chẳng hạn trì thơng tin thời gian truy cập) tổ chức hợp lý với cập nhật để máy khách nhận phiên liệu tránh xung đột phát sinh xuống mức tối thiểu Các hệ thống tệp phân tán thường sử dụng chép tệp sở liệu (phân phối liệu nhiều máy chủ) để bảo vệ chống lại lỗi truy cập liệu Một vài ví dụ hệ thống tệp phân tán nay: NFS (Network File System, Sun Microsystem), NetWare (của Novell), DFS (Distributed File System, Microsoft) Distributed Shared Memory Distributed Shared Memory (bộ nhớ chia sẻ phân tán, DSM) thành phần quản lý tài nguyên hệ điều hành phân tán, thực mơ hình nhớ dùng chung hệ thống phân tán, khơng có nhớ chia sẻ vật lý Bộ nhớ dùng chung cung cấp không gian địa ảo chia sẻ tất máy tính 20

Ngày đăng: 03/03/2023, 18:15

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

TÀI LIỆU LIÊN QUAN

w