Skip to main content

Hệ điều hành

Enrollment in this course is by invitation only

Hệ điều hành

Xin chào các bạn!
Hệ điều hành là thành phần quan trọng trong máy tính. Việc nắm vững kiến thức về hệ điều hành là cơ sở cho việc hiểu biết sâu sắc hệ thống máy tính nói chung. Chính vì vậy, kiến thức về hệ điều hành là phần kiến thức bắt buộc đối với chuyên gia công nghệ thông tin và các ngành liên quan. Trong môn này, kiến thức về hệ điều hành được trình bày theo dạng các khái niệm và nguyên lý chung, đi kèm với đó là việc thực hành và sử dụng thuần thục với hệ điều hành Linux, từ đây giúp bạn có hiểu biết sâu hơn về hệ thống máy tính.
  • Phần đầu bao gồm những khái niệm chung về hệ điều hành, vai trò trong hệ thống máy tính, các thành phần chức năng và một số kiểu kiến trúc thông dụng. Được thực hành cài đặt hệ điều hành Linux và thao tác cũng như sử dụng một số câu lệnh cơ bản và chuyên sâu với Bash Shell. Ngoài ra, còn được thao tác với một số thuật toán liên quan tới lập lịch cũng như là việc cấp phát bộ nhớ. 
  • Phần hai sẽ được trình bày về quản lý bộ nhớ. Một số vấn đề liên quan tới bộ nhớ và địa chỉ, một số kỹ thuật tổ chức chương trình, phân chương, phân trang, phân đoạn bộ nhớ và cách tổ chức quản lý bộ nhớ ảo, từ đó áp dụng thực tế để thực hành liên quan tới quản lý bộ nhớ trong hệ điều hành Linux như: tính toán thời gian trung bình, tính toán thời gian phân bổ TLB, bài toán về thuật toán thay thế trang,...
  • Trong phần ba và bốn sẽ tìm hiểu về quản lý tiến trình và luồng trong hệ điều hành, tập trung vào việc đồng bộ hóa trong hệ thống với một CPU và nhiều tiến trình. Việc thao tác và làm việc với hệ thống file sẽ được thể hiện trực quan trên hệ điều hành Linux, làm quen và thao tác với một số câu lệnh nâng, bài toán liên quan tới xử lý về cấp phát và quản lý không gian lưu trữ file, tổ chức bên trong của file và thư mục. Một số khái niệm quan trọng về tổ chức vào ra của máy tính và phân hệ quản lý vào/ra của hệ điều hành cũng được thực hành và thể hiện trong hai phần cuối này.
Chúc các bạn học tốt!

ĐỐI TƯỢNG THAM GIA

  • Là những người có mong muốn học lấy bằng Đại Học
  • Là những người muốn bổ sung kiến thức, kỹ năng cơ bản trong hệ điều hành máy tính
  • Là những người muốn có kỹ năng quản lý tài nguyên trên máy tính gồm phần cứng và phần mềm ứng dụng, dữ liệu
  • Là những người muốn khám phá một số hoạt động của hệ điều hành Linux, xây dựng được chương trình tương tác và sử dụng các cơ chế điều khiển của hệ điều hành

MỤC TIÊU MÔN HỌC

Sau khi học xong môn này, học viên sẽ đạt được các chuẩn kiến thức, kỹ năng đầu ra như sau:

  • Trình bày khái niệm cơ bản và kiến trúc hệ điều hành hiện đại.
  • Sử dụng các thao tác để xem thông tin hệ thống trong hệ điều hành.
  • Sử dụng và thao tác ngôn ngữ C / C++ trên Linux
  • Giải thích được khái niệm tiến trình, trạng thái và vòng đời của tiến trình.
  • Sử dụng các thao tác để làm việc với thư mục trong Linux.
  • Trình bày được các dạng của bộ lập lịch CPU.
  • Giải thích được thuật toán và cơ chế lập lịch của hệ điều hành Linux.
  • Trình bày và giải thích được các kỹ thuật về cấp phát bộ nhớ.
  • Thực hành được các câu lệnh làm việc với Bash Shell
  • Giải thích được khái niệm và các dạng của phân trang tương ứng.
  • Trình bày khái niệm về bộ nhớ ảo và thời gian truy cập của bộ nhớ trung bình.
  • Trình bày khái niệm của bộ đệm và phân bổ khung cho tiến trình.
  • Trình bày khái niệm về chia sẻ bộ nhớ và cơ chế đồng bộ hóa.
  • Giải thích được các cơ chế đồng bộ hóa tương ứng.
  • Thao tác và trình bày được bài toán Producer - Consumer
  • Trình bày khái niệm về tắc nghẽn (deadlock)
  • Giải thích được kỹ thuật và cách kiểm soát đối với deadlock.
  • Trình bày được cấu trúc và thao tác với thuộc tính trong quản lý tệp tin của hệ điều hành
  • Giải thích được những lời gọi hệ thống khi làm việc với hệ thống nhập/xuất
  • Sử dụng các thao tác để làm việc với tệp tin trong hệ điều hành
  • Trình bày được các phương pháp phân bổ tệp.
  • Thao và giải thích được hoạt động của đa luồng / đa tiến trình.
  • Biên dịch và chạy chương trình đa luồng / đa tiến trình trong hệ điều hành Linux

THÔNG TIN VỀ KHÓA HỌC


TRẢI NGHIỆM HỌC TẬP

Môn học sẽ có 4 học phần với 21 bài học. Mỗi bài sẽ có một (hoặc vài) đoạn video yêu cầu học viên phải xem kỹ, thực hành theo hướng dẫn và trả lời quiz. Xuyên suốt môn học, các bài Quiz, Lab sẽ giúp các bạn tăng cường việc ghi nhớ và vận dung lý thuyết đã học vào các bài toán thực tế. Ở mỗi phần học, môn học thiết kế các bài tập lớn (Assignment) giúp các bạn có hình dung và trải nghiệm thao tác quản lý trên hệ điều hành.

Trong thời gian học (dự kiến là 6 tuần), việc phân bổ tuần học là rất quan trọng. Nếu các bạn có bất cứ câu hỏi nào hãy kết nối với Mentor để được giải đáp.


CẤU TRÚC MÔN HỌC

Phần 1: Cơ bản về hệ điều hành

    • Bài 1 - Tổng quan về hệ điều hành
    • Bài 2 - Tiến trình và đa chương trình
    • Bài 3 - Các dạng của bộ lập lịch CPU
    • Bài 4 - Các dạng của thuật toán lập lịch
    • Bài 5 - Các thuật toán lập lịch nâng cao
    • Bài 6 - Các thuật toán lập lịch nâng cao (tiếp theo) và hệ thống số
    • Bài 7 - Kỹ thuật về cấp phát bộ nhớ

Phần 2: Quản lý bộ nhớ

    • Bài 8 - Phân trang
    • Bài 9 - Các dạng của phân trang
    • Bài 10 - Bộ nhớ ảo
    • Bài 11 - Bộ đệm và phân bổ khung

Assignment 01 - Lập trình với Bash Shell

Phần 3: Đồng bộ hóa và Deadlock

    • Bài 12 - Chia sẻ bộ nhớ và cơ chế đồng bộ hóa
    • Bài 13 - Các cơ chế đồng bộ hóa
    • Bài 14 - Các kỹ thuật nâng cao
    • Bài 15 - Deadlock và phương pháp xử lý
    • Bài 16 - Làm việc với hệ thống tệp tin 
    • Bài 17 - Làm việc với hệ thống tệp tin (tiếp theo)

Assignment 02 - Sử dụng các hàm thư viện lập trình để thao tác với tệp tin và thư mục

      Phần 4: Hệ thống tệp tin và luồng

        • Bài 18 - Các phương pháp phân bổ tệp
        • Bài 19 - Lời gọi hệ thống
        • Bài 20 - Luồng và Đa luồng trong Linux
        • Bài 21 - Quản lý I/O

      Assignment 03 - Thao tác tiến trình và luồng 


      CHUYÊN GIA THIẾT KẾ VÀ PHẢN BIỆN MÔN HỌC

      THIẾT KẾ MÔN HỌC

      Chuyên gia Bùi Trọng Tùng

      File preview

      • Giảng viên tại Viện Công nghệ thông tin và Truyền thông, Đại học Bách khoa Hà Nội
      • 10 năm kinh nghiệm giảng dạy và đào tạo thực hành tại các trường Đại học, cơ quan, công ty (Đại học Bách khoa Hà Nội, Đại học Hùng Vương, Đại học Tây Bắc, Bộ Công an, Tập đoàn VNPT) trong các lĩnh vực Mạng máy tính, An toàn bảo mật thông tin
      • 7 năm kinh nghiệm quản trị mạng và hệ thống
      • Personal Website: https://users.soict.hust.edu.vn/tungbt/
      PHẢN BIỆN MÔN HỌC

      Chuyên gia Nguyễn Quốc Long

      • Giảng viên bộ môn IT – Trường Đại học FPT 
      • 12 năm kinh nghiệm làm việc trong lĩnh vực CNTT, thiết kế và thi công hệ thống Mạng máy tính và nghiên cứu An toàn thông tin.
      • 10 năm giảng dạy và đào tạo thực hành các môn học, chứng chỉ quốc tế (Đại học FPT, Đại học Duy Tân, iSpace, NIIT, Trường Tân Center)
      • Đạt các chứng chỉ: Google UX Certificate, UI/UX Design của California Institute of the Arts, Web Design for Everybody của University of Michigan...
      • Profile Online: https://www.linkedin.com/in/nguyen-quoc-long-18534b19b/

      NGUỒN HỌC LIỆU

      Khóa học MOOC này được cung cấp trên nền tảng Udemy. Đây là nền tảng cung cấp các khóa học trực tuyến đại chúng mở được đánh giá rất cao trong các nền tảng MOOC hiện nay trên thế giới.


      KÊNH PHẢN HỒI

      FUNiX sẵn sàng đón nhận và trao đổi về mọi ý kiến góp ý, phản hồi liên quan đến học liệu qua email program@funix.edu.vn