###### Chương 1 + 2: thầy Thuận ![](https://hackmd.io/_uploads/SkpIU2mbp.png) Hệ điều hành là phần trung gian giúp kết nối, giao tiếp giữa phần cứng và người dùng ![](https://hackmd.io/_uploads/ByBi837-T.png) - Lời gọi hệ thống được người dụng thực hiện để thông qua đó thực hiện lệnh vào - ra, vì các lệnh vào - ra là lệnh đặc quyền, không thể thực hiện trực tiếp - khi thực hiện lời gọi hệ thống thực chất là gây ra ngắt mềm: + HĐH sẽ chuyển điều khiển cho chương trình phục vụ ngắt, mode = 0; + HĐH kiểm tra các đối số, thực hiện yêu cầu và chuyển điều khiển đến lệnh tiếp theo, mode = 1. ![](https://hackmd.io/_uploads/BJ2Nu37bT.png) quá trình đọc file, dữ liệu được chuyển từ ổ cứng (bộ nhớ ngoài) -> bộ nhớ chính ![](https://hackmd.io/_uploads/SJhs_2mb6.png) **đáp án đúng là: D và B** - bảng vecto ngắt chứa địa chỉ của các chương trình phục vụ ngắt - chương trình phục vụ ngắt không phải là chương trình của hệ điều hành ![](https://hackmd.io/_uploads/rJd7cnXbT.png) máy tính cần CPU là có thể chạy được rồi, ổ cứng là phần lưu dữ liệu thôi ![](https://hackmd.io/_uploads/S1CBq3QWT.png) ![](https://hackmd.io/_uploads/rJ-F5nm-6.png) ![](https://hackmd.io/_uploads/rkzc53mZa.png) nếu trong trường hợp sử dụng và truy cập dữ liệu nhiều lần thì caching phát huy tác dụng, nhưng nếu chỉ một lần thì nó lại vô hình làm chậm hơn so vs truy nhập trực tiếp, phản tác dụng **Caching** là kỹ thuật làm tăng tốc độ xử lý của hệ thống bằng cách lợi dụng tốc độ của cache -> chèn **cache** vào giữa trong quá trình chuyển dữ liệu từ *bộ nhớ chính* đến *thanh ghi phần cứng* ![](https://hackmd.io/_uploads/rkhvj3X-T.png) ![](https://hackmd.io/_uploads/r1rdin7-6.png) ![](https://hackmd.io/_uploads/HkFKohQb6.png) ![](https://hackmd.io/_uploads/rkx5shX-a.png) - dual-mode để tránh cho các chương trình khác không bị lỗi khi một chương trình nào đó xảy ra lỗi. - HĐH cung cấp sự hỗ trợ của phần cứng (thêm 1 bit, gọi là mode bit đưa vào phần cứng) để phân biệt ít nhất giữa 2 chế độ: + user mode - chỉ thực hiện các lệnh không đẵ quyền (mode = 1) + monitor mode - toàn quyền truy xuất, thực hiện được các lệnh đặc quyền ![](https://hackmd.io/_uploads/H1_x6nm-T.png) ![](https://hackmd.io/_uploads/HkrWTnmbT.png) Các chương trình được chia nhỏ thành các tiến trình để tăng tốc độ thực hiện ![](https://hackmd.io/_uploads/rJkrTnQZa.png) ![](https://hackmd.io/_uploads/H1vtThXbT.png) câu này đáp án sai; đáp án đúng là C và D mạng LAN là một mạng phân tán So sánh hệ phân tán và hệ song song: - hệ song song **phối hợp** nhiều bộ xử lý nhằm giải quyết một vấn đề cho trước một cách nhanh nhất - hệ phân tán: mỗi bộ xử lý nói chung có chương trình làm việc riêng bán độc lập, vì lợi ích chung nên cần phối hợp hành động với nhau. - ![](https://hackmd.io/_uploads/H1hDhVSZa.png) - ![](https://hackmd.io/_uploads/r1H_34rZ6.png) ![](https://hackmd.io/_uploads/S1eq34Sbp.png) Chức năng của hệ điều hành: - Điều phối hoạt động: quản lý tiến trình - Quản lý và phân phối tài nguyên: + quản lý bộ nhớ chính + quản lý bộ nhớ thứ cấp (bộ nhớ ngoài) + quản lý file + quản lý hệ thống I/O - Hoạt động mạng (Networking) - Hệ thống bảo vệ - Hệ thống thông dịch lệnh (Command - Interpreter System) ![](https://hackmd.io/_uploads/ry0F7Brb6.png) Một tiến trình bao gồm: - Mã nguồn chương trình (code) - source - Dữ liệu - data - Bộ đếm chương trình - counter - ngăn xếp - stack - giá trị ở các thanh ghi - register values ![](https://hackmd.io/_uploads/BJC0VBrZT.png) ![](https://hackmd.io/_uploads/HkClCSr-T.png) [sơ đồ trạng thái] **new**: tiến trình đang được tạo **ready**: tiến trình ở trạng thái sẵn sàng, được phân phối đủ tài nguyên cần thiết, đang chờ đến lượt được thực hiện theo cơ chế lập lịch của hệ điều hành **running**: tiến trình đang chiếm hữu CPU và thực hiện các lệnh **waiting**: tiến trình *đang chờ được cung cấp tài nguyên* hoặc *chờ một sự kiện nào đó xuất hiện* để chuyển sang trạng thái sẵn sàng **terminated**: tiến trình kết thúc; nó không biến mất cho đến khi một tiến trình khác đọc được trạng thái của nó (?) Khi tiến trình ở trạng thái running, nó có thể chuyển sang trạng thái nào sau đâu: ![](https://hackmd.io/_uploads/SJIGCSSW6.png) [lời giải của câu hỏi trên] ![](https://hackmd.io/_uploads/HyYY6BBWa.png) Máy đang chờ một sự kiện xảy ra: ấn nút chạy ![](https://hackmd.io/_uploads/HyYqkIHW6.png) PCB - Process Control Block - **vùng nhớ lưu trữ** các thông tin mô tả cho tiến trình; mỗi tiến trình có một PCB Cấu trúc của PBC bao gồm: - định danh tiến trình (Pid - Process Id): phân biệt các process - trạng thái tiến trình (Process state): xác định trạng thái hiện thời - ngữ cảnh tiến trình (context of the process): mô tả các tài nguyên liên quan đến tiến trình (hiện có hoặc đang đợi phân bổ) + trạng thái CPU: con trỏ lệnh, CPU registers; được lưu trữ khi xảy ra ngắt để có thể phục hồi trạng thái khi phục vụ ngắt xong + thông tin lịch trình CPU - CPU scheduling information + thông tin quản lý bộ nhớ: danh sách khối nhớ đang cấp cho tiến trình + tài nguyên sử dụng: danh sách tài nguyên tiến trình đang sử dụng + tài nguyên lập lịch: danh sách các tài nguyên mà tiến trình yêu cầu - thông tin giao tiếp: phản ánh quan hệ giữa tiến trình này với các tiến trình khác trong hệ thống - thông tin thống kê: những thông tin về hoạt động tiến trình (thời gian thực hiện, thời gian chờ, vv) - ![](https://hackmd.io/_uploads/ryCxFUrb6.png) ![](https://hackmd.io/_uploads/Byx4q8SWp.png) ![](https://hackmd.io/_uploads/BJPN9IrWa.png) ![](https://hackmd.io/_uploads/Syv8qIrb6.png) câu này không biết à nha chắc đúng á ![](https://hackmd.io/_uploads/HkHPPKBZa.png) tiến trình đa luồng ###### chương 3: Lập lịch ![](https://hackmd.io/_uploads/rkR1yTRWp.png) hiệu ứng hộ tống là tiến trình nhỏ đi sau tiến trình lớn ![](https://hackmd.io/_uploads/ryPGya0-6.png) câu này đơn giản thôi ![](https://hackmd.io/_uploads/BJgVk6AW6.png) ![](https://hackmd.io/_uploads/r1HIk6AZT.png) ![](https://hackmd.io/_uploads/ryluyaAbp.png) ![](https://hackmd.io/_uploads/rkWs1aCWT.png) ![](https://hackmd.io/_uploads/rkaVxT0Wp.png) ![](https://hackmd.io/_uploads/r1NPgT0WT.png) - tận dùng: giữ cho CPU càng bận càng tốt ![](https://hackmd.io/_uploads/BkLKxaAZp.png) - lập lịch dài hạn chọn để đưa tiến trình từ bộ nhớ đệm của bộ nhớ ngoài vào bộ nhớ trong. ![](https://hackmd.io/_uploads/H18lWTAWa.png) ![](https://hackmd.io/_uploads/BJBv_TAba.png) - 2 câu dưới sai ở đâu??? ![](https://hackmd.io/_uploads/rJbRFa0-T.png) câu này xem lại nhé ![](https://hackmd.io/_uploads/rk08spR-p.png) ![](https://hackmd.io/_uploads/HyZy5pC-6.png) ![](https://hackmd.io/_uploads/r1yajTRWa.png) ![](https://hackmd.io/_uploads/SyTZhaA-p.png) tính rồi điền ảnh vào đây :)) ![](https://hackmd.io/_uploads/BkmX2TR-T.png) ![](https://hackmd.io/_uploads/HkRX3a0bT.png) ![](https://hackmd.io/_uploads/BkL43pAZa.png) ![](https://hackmd.io/_uploads/B1yBhpC-p.png) ![](https://hackmd.io/_uploads/SJ5kpTR-T.png) ![](https://hackmd.io/_uploads/HJfgpaCWT.png) ###### chương 4: đồng bộ tiến trình ![](https://hackmd.io/_uploads/rko4lCCZT.png) chỉ có thể thông báo cho nhau về một sự kiện bằng phương pháp tín hiệu (signal) giữa hai tiến trình cha - con ![](https://hackmd.io/_uploads/rykNxACba.png) ![](https://hackmd.io/_uploads/SJhgGARbp.png) ![](https://hackmd.io/_uploads/HJ-ZM0Rb6.png) ![](https://hackmd.io/_uploads/B1PzG0Cbp.png) ![](https://hackmd.io/_uploads/r1M7zCRWp.png) ![](https://hackmd.io/_uploads/H1RmGAAZa.png) ![](https://hackmd.io/_uploads/rJ6NMC0b6.png) ![](https://hackmd.io/_uploads/B1sBMC0WT.png) ![](https://hackmd.io/_uploads/HkIIGC0bT.png) ![](https://hackmd.io/_uploads/BJ6wGR0-6.png) ![](https://hackmd.io/_uploads/BywC4CR-p.png) ![](https://hackmd.io/_uploads/Hy7JrAC-6.png) ![](https://hackmd.io/_uploads/SJh1rCA-p.png) ![](https://hackmd.io/_uploads/HkwgBARb6.png) ![](https://hackmd.io/_uploads/B1GHSRR-T.png) ![](https://hackmd.io/_uploads/By1SLLyza.png) ![](https://hackmd.io/_uploads/BJwmLUkf6.png) ![](https://hackmd.io/_uploads/B1ar881zp.png) ![](https://hackmd.io/_uploads/HJK8L8Jfa.png) ###### chương 5: deadlock https://docs.google.com/document/d/1oEy5KhZiBNxgjIELOoePSisbvx5kiWPwyF6PVJmOrWc/edit?fbclid=IwAR32YvxZMAZPjSElomGpj5KMYA1WFoYRZxpQ-wJunJeGP400a4rcAs_HAoA ###### chương 6: quản lý bộ nhớ https://docs.google.com/document/d/13kp4oh8dTv4BElC_Y8ViTw1PTsjNbEDCUydVXajDGDk/edit?hl=vi&fbclid=IwAR2DifjF0yaEABWz9HGlNiSdPmgmCpmPtng4KYkhxALafW1XqJ-aNSiFlJM ###### chương 7: hệ thống file https://docs.google.com/document/d/1IjeXFJd1k7Isg5Zxb9mt_UAO_Xyeuw0vHvX9o5rekik/edit?fbclid=IwAR0au7QEfcd14EMlJQft5stCanLzE6AKhAEc1Yg_Gxv-RZ_45KegJB-pg6c ###### chương 8: hệ thống lưu trữ https://docs.google.com/document/d/1qouL6x-Nr4ckf632vGWLUVCtuB6Ps6BvO3LpJjF25nQ/edit?hl=vi&fbclid=IwAR3Ykfm5QnnL73vScLQ9QtKlXw72FFFoIgbokxzGLVZVx-zXQu64TxL1br4 ###### Kiểm tra tổng hợp https://docs.google.com/document/d/1WCNICQDVfREQ5DqmE3Te6GHRF51psl5al_BOcrvVtbs/edit bày đặt cap đó mà cap ko kịp ![](https://hackmd.io/_uploads/BkrBOqHWp.png) ![](https://hackmd.io/_uploads/ry6BucB-T.png) ![](https://hackmd.io/_uploads/S1SLu9BZp.png) ![](https://hackmd.io/_uploads/rJ6Ud5SZT.png) ![](https://hackmd.io/_uploads/rk4PO9BW6.png) ![](https://hackmd.io/_uploads/H12vOcBbp.png) ![](https://hackmd.io/_uploads/SyR_dqBba.png) ![](https://hackmd.io/_uploads/rJDFu5SWa.png) ![](https://hackmd.io/_uploads/Syl5u5S-6.png) ![](https://hackmd.io/_uploads/SyUsucr-p.png) ![](https://hackmd.io/_uploads/r1ZxK9BZ6.png) ![](https://hackmd.io/_uploads/Syrbt9BWa.png) ![](https://hackmd.io/_uploads/BkCWF5B-p.png) ![](https://hackmd.io/_uploads/B1BXtqBba.png) ![](https://hackmd.io/_uploads/rkEVFcHZT.png) ![](https://hackmd.io/_uploads/SyVwY9S-a.png) ![](https://hackmd.io/_uploads/rkdaY9Hba.png) ![](https://hackmd.io/_uploads/BJDFscSZT.png) ![](https://hackmd.io/_uploads/SJyco9SWa.png) ![](https://hackmd.io/_uploads/S1j5i9HWT.png) ![](https://hackmd.io/_uploads/H1Ejscrbp.png) ![](https://hackmd.io/_uploads/SkJni9B-6.png) ![](https://hackmd.io/_uploads/Syd3o5HWp.png) ![](https://hackmd.io/_uploads/ryMps9Sba.png) ![](https://hackmd.io/_uploads/HyCTicHZ6.png) ![](https://hackmd.io/_uploads/HJhJhqS-T.png)