lythuyethdh1
Câu 1: Ý nghĩa của System Call. Hãy giải thích bình thường các phần mềm ứng dụng “khai thác” phần cứng của máy như thế nào?
Trả lời: 1/ Định nghĩa về System call (lời gọi hệ thống) cung cấp 1 giao tiếp giữa tiến trình và hệ điều hành . Lời gọi này cũng như 1 lệnh hợp ngữ . Một số hệ thống cho phép lời gọi hệ thống được thực hiện từ các cấp lập trình bậc cao như các hàm và lời gọi hàm nó có thể phát sinh lời gọi từ các thủ tục hay gọi trực tiếp trong dòng.
2/ ý nghĩa của System call:
- Tiết kiệm thời gian cho người sử dụng . Người dùng có thể gõ các lệnh hệ thống để cần các thông tin mình cần một cách nhanh chóng
- Giúp cho hệ điều hành quản lý tốt các thông tin trong máy
- Giúp cho các phần mềm ứng dụng khai thác được triệt để phần cứng của máy tính
- Nó làm cho người dùng có một cái nhìn hoàn toàn mới mẻ về các thông tin mà mình cần,và các thông tin được lấy ra thì có thể theo ý của người dùng cần mà không phải mất nhiều thời gian nhìn từ bảng này sang các bảng khác để kết nối thông tin mà mình cần trên cùng một bảng
- Giúp hệ điều hành quản lý tốt các thông tin trong máy.
3/ Các phần mềm khai thác phần cứng của máy như sau :Bình thường các phần mềm khai thác phần cứng thông qua sự quản lý và điều phối của hệ điều hành.Khi đó các phần mềm ứng dụng khai thác phần cứng máy tính thông qua các lời gọi hệ thống nó được che dấu dưới các hàm được sử dụng trực tiếp trong các ngôn ngữ lập trình. Khi phần mềm ứng dụng được khởi động, các chức năng của nó được thực hiện trên máy thông qua rất nhiều lời gọi hệ thống.
Câu 2: Một tiến trình yêu cầu Hệ điều hành chuyển trạng thái cho nó “ngủ” 5 giây. Hệ điều hành có đảm bảo được là sẽ kích hoạt tiến trình này đúng 5 giây sau đó không? Tại sao?
Trả lời: Khi một tiến trình yêu cầu hệ diều hành cho nó chuyển trạng thái 5 giây thì hệ điều hành sẽ cho phép nó được nghỉ nhưng hệ điều hành sẽ không đảm bảo sẽ kích hoạt nó sau đúng 5 giây được vì khi tiến trình đó nghỉ thì hệ điều hành sẽ cho phép tiến trình khác đang được đứng trong hàng đợi được thực hiện và thời gian thực hiện của tiến trình này phải là khoảng thời gian nhỏ nhất trong tất cả các tiến trình đang đứng trong hàng đợi, khi đó sẽ có 3 khả năng xảy ra:
1/ Nếu khoảng thời gian này vừa đúng 5 giây thì hệ điều hành sẽ cho phép tiến trình mà lúc trước đã yêu cầu hệ điều hành cho phép nó ngủ làm việc tiếp vì khi đó khoảng thời gian mà tiến trình đó thực hiện sẽ là nhỏ nhất trong tất cả các tiến trình đang đợi trong hàng đợi.
2/ Nếu khoảng thời gian thực hiện của tiến trình này mà vượt quá 5 giây thì tiến trình đang ngủ 5 giây sẽ không thể thực hiện được khi mà tiến trình đang được thực hiện vẫn chưa thực hiên xong cho nên vì thế mà hệ điều hành trong trường hợp này không thể đảm bảo việc cho tiến trình đó khởi động lại sau đúng 5 giây
3/ Nếu khoảng thời gian thực hiện của tiến trình này mà nhỏ hơn 5 giây thì khi đó hệ điều hành sẽ cho phép một tiến trình khác được thực hiện (đây chính là tiến trình mà có thời gian thực hiên lớn hơn tiến trình vừa mới thực hiện nhưng mà lại là tiến trình có khoảng thời gian nhỏ hơn các tiến trình còn lại trong hàng đợi trừ tiến trình đang được ngủ 5 giây ) .Vì vậy trong trường hợp này thì hệ điều hành cũng không thể cho phép tiến trình đang được ngủ 5 giây đó thực hiện được đúng sau 5 giây
Câu 3: Nêu định nghĩa “Hệ điều hành”. Hệ điều hành thực hiện những chức năng chính gì ?
Trả lời: Hệ điều hành là một chương trình quản lý phần cứng của máy tính . Nó cung cấp nền tảng cho những người sử dụng và nó đóng vai trò trung gian giao tiếp giữa người dùng máy tính và phần cứng của máy tính.Mục tiêu của hệ điều hành là cung cấp một môi trường để người sử dụng có thể thi hành các chương trình. Nó làm cho máy tính dể sử dụng hơn, thuận lợi hơn và hiệu quả hơn. Bên cacnhj đó hệ điều hành còn cung cấp các ứng dụng cơ bản và là môi trường hoạt động cho các ứng dụng tương thích.
Hệ điều hành là một thành phần quan trọng trong hầu hết mọi hệ thống máy tính . Một hệ điều thống máy tính có thể được chia thành bốn thành phần : phần cứng , hệ điều hành các chương trình ứng dụng và người dùng.
Chức năng chính của hệ điều hành là :
- Hệ điều hành điều khiển và phối hợp việc sử dụng phần cứng cho những chương trình ứng dụng khác nhau của nhiều người sử dụng khác nhau
- Hệ điều hành cung cấp một môi trường mà các chương trình có thể làm việc hữu hiệu trên đó .
- Hệ điều hành quản lý và phân phối tài nguyên của máy tính: Các tài nguyên của máy tính như là thời gian sử dụng CPU, vùng bộ nhớ, vùng lưu trữ tập tin, thiết bị nhập xuất v.v... Hệ điều hành hoạt động như một bộ quản lý các tài nguyên và phân phối chúng cho các chương trình và phân phối chúng cho các chương trình và người sử dụng khi cần thiết . Do có rất nhiều yêu cầu, hệ điều hành phải giải quyết vấn đề tranh chấp tài nguyên và quyết định việc phải cấp phát tài nguyên cho những yêu cầu theo thứ tự nào để hoạt động của máy tính là hiệu quả nhất kiểm xoát việc sử dụng máy tính đặc biệt là các thiết bị xuất nhập
- Quản trị phân phối công việc cho hệ thống thiết bị để hệ thống thiết bị hoạt động hiệu quả nhất .
- Phục vụ nhu cầu đa dạng của người sử dụng một cách tốt nhất
Câu 4: Multi-tasking là gì? Giải thích sự khác nhau giữa các hình thức Multi-tasking (cooperative and pre-emtive multi-tasking).
Trả lời: Multitasking là khả năng thực hiện nhiều nhiệm vụ cùng lúc, một nhiệm vụ là một chương trình . Những thuật ngữ đa nhiệm và đa xử lý thường được sử dụng thay thế cho nhau được . Hay ta cũng có thể nói Multitasking là một phần mềm làm nhiệm vụ phân chia thời gian phục vụ của CPU.Cho các tác vụ (tasks hay processes) để đảm bảo các tác vụ này hoàn thành một công việc nào đó
Sự khác nhau giữa các hình thức Multi-tasking :
- Trong mô hình đa nhiệm hợp tác( Cooperative Multitasking), chỉ có ứng dụng đang sở hữu CPUmới quyết định khi nào trả lại CPU cho tiến trình khác hoạt động.
- Trong mô hình đa nhiệm ưu tiên(Preemptive Multitasking), thì việc chuyển CPU từ tiến trình hiện tại cho tiến trình khác được thực hiện bởi bộ phận lập lịch của hệ điều hành. Bộ phận lập lịch của hệ điều hành quyết định thời gian mà mỗi tiến trình được sở hữu CPU. Bộ phận lập lịch thường dựa vào độ ưu tiên của tiến trình để quyết định việc cấp CPU cho nó.
Câu 5: Sự giống và khác nhau giữa Chương trình , Tiến trình và Luồng Trả lời:
- Chương Trình, tiến trình, luồng:
+Chương trình : Một chương trình là một thực thể thụ động chứa đựng các chỉ thị điều khiển máy tính để tiến hành một tác vụ nào đó. Chương trình có thể là một đoạn lệnh để thực thi về 1 vấn đề. Trong chương trình chính có thể có các chương trình con mà mỗi chương trình con lại thực hiện 1 nhiệm vụ riêng.
+Tiến trình: Là một thực thể chủ động, trong máy tính và đã được nạp vào bộ nhớ chính. Là một thực thể chủ động của một chương trình, có thời gian sống nhất định. Có nhiều trạng thái và có thể chuyển từ trạng thái này sang trạng thái khác
+Luồng : là một đơn vị cơ bản của sự sử dụng CPU , là một dòng điều khiển trong một tiến trình. Nếu tiến trình có nhiều luồng, nó có thể thực hiện nhiều tác vụ tại một thời điểm. các luồng trong một tiến trình chia sẻ với nhau đoạn mã, đoạn dữ liệu và các tài nguyên hệ thống khác như các tệp mở, các tín hiệu.
- Giống nhau: Tiến trình, chương trình và Luồng giống nhau là cùng nói về việc xử lý các dữ liệu và chúng có mối liên hệ chặt chẽ với nhau mỗi thứ làm một vấn đề để khai thác dữ liệu và chúng cùng được sử lý bởi CPU.
- Khác nhau là:
+ Chương trình là một thể thụ động, như nội dung của các tập tin được lưu trên đĩa, chứa đựng các chỉ thị để điều khiên máy để tiến hành các tác vụ nào đó khi cho thực hiên các chỉ thị này chương trình sẽ chuyển thành tiến trình
+ Tiến trình là một thể chủ động với con trỏ lệnh hay bộ đếm chương trình sẽ xác định chỉ thị lệnh tiếp theo sẽ thực thi và kèm theo các tài nguyên phục vụ cho hoạt động của tiến trình. Các tiến trình hoàn toàn độc lập với nhau chỉ có thể liên lạc thông qua các cơ chế thông tin giữa các tiến trình mà hệ điều hành cung cấp.có thời gian sống nhất định. Có nhiều trạng thái và có thể chuyển từ trạng thái này sang trạng thái khác
+ Luồng nó chỉ là một phần nhỏ trong tiến trình nó chỉ là các đoạn lệnh được nằm trong tiến trình. các luồng nằm trong cùng một tiến trình lại chia sẻ một không gian địa chỉ chung điều này có nghĩa là các luồng có thể chia sẻ các biến toàn cục của tiến trình. Một luồng có thể truy xuất dến cả các stack của những luồng khác trong cùng tiến trình.
Câu 7: Giải thích cơ chế CPU chuyển từ việc thực hiện process này sang process khác. Làm sao có thể đảm bảo được việc thực hiện đúng các lệnh của process tương ứng?
Trả lời: a/ Cơ chế: Nói chung CPU sẽ cất giữ toàn bộ trạng thái của tiến trình đang thực hiện đưa tiến trình về trạng thái blocked, sau khi thực hiện xong tiến trình vừa yêu cầu CPU sẽ khôi phục lại hoàn toàn trạng thái của tiến trình được cất giữ. Theo sơ đồ sau:
Chú thích: Save state into PC0: cất giữ trạng thái trong PCB0
Reload state from PC1: Khôi phục trạng thái từ PCB1
Idle: Nghỉ excuting: Hoạt động
Từ hình vẽ ta giải thích cơ chế chuyển từ tiến trình này sang tiến trình khác
Giả sử có 2 tiến trình P0, P1. P0 đang chạy thì xuất hiện ngắt và P0 dừng lại, khi đó toàn bộ thông tin về P0 từ các thanh ghi được ghi ra thực thể PCB0 trong bộ nhớ chính. Sau đó các thông tin của P1 từ PCB1 trong bộ nhớ chính được nạp vào các thanh ghi và thực thi P1, P1 đang thực thi khi xuất hiện ngắt hay lời gọi hệ thống P1 dừng lại khi đó toàn bộ các thông tin về P1 từ các thanh ghi được ghi ra thực thể PCB1 trong bộ nhớ chính. Sau đó các thông tin của P0 từ PCB0 trong bộ nhớ chính được load lên nạp vào các thanh ghi.
Cơ chế: CPU lưu tất cả các thông tin về tiến trình được dừng lại từ các thanh ghi vào một PCB nào đó trong bộ nhớ chính, và nạp lại các thông tin về một tiến trình được tiếp tục từ PCB đã lưu nó vào các thanh ghi.
b/ Để đảm bảo thực hiện đúng các lệnh của process tương ứng thì:
Một tiến trình gồm các thông tin về: Con trỏ đến các tiến trình cha, con; không gian địa chỉ; các tài nguyên các trạng thái của tiến trình; các luồng. Một luồng lại chứa các thông tin: Program counter, các thanh ghi, Stack.
Khi chuyển giữa các tiến trình tất cả các thông tin này được lưu. Khi được nạp lại chúng được đưa nguyên trạng thái vào các thanh ghi, và chúng tiếp tuc được thực hiện như không có chuyện ghì xảy ra. Quan trọng quyết định là program counter bộ đếm chương trình được lưu.
Câu 8: Mục đích và nguyên tắc của việc lập lịch cho CPU
Trả lời
- Lý do phải lập lịch cho CPU:
+ Do số người sử dụng và số lượng tiến trình luôn lớn hơn số lượng CPU của máy tính rất nhiều và tại một thời điểm, chỉ có duy nhất một tiến trình được thực hiện trên một CPU. Mà nhu cầu người sử dụng nhiều hơn tài nguyên CPU đang có do đó ta cần lập lịch để phân phối thời gian sử dụng CPU cho các tiến trình của người sử dụng và hệ thống.
+ Khi một máy tính đa chương trình, tức là có nhiều tiến trình cần phải xử lý tại một thời điểm. Thì khi có nhiều hơn một tiến trình ở trạng thái sẵn sàng và chỉ có 1 CPU thì lúc này hệ điều hành phải quyết định tiến trình nào sẽ được chạy trước, đó chính là khái niệm lập lịch CPU.
- Mục đích của việc lập lịch cho CPU là để:
- Tối ưu hóa CPU.
- Số lượng tiến trình được phục vụ là nhiều nhất.
- Khoảng thời gian quay vòng là ít nhất.
- Giảm thời gian chờ trong hàng đợi.
- Cực tiểu hóa thời gian hoàn tất các tác vụ xử lý theo lô.
- Cực đại hóa số công việc được xử lý trong một đơn vị thời gian.
- Nguyên tắc của việc lập lịch: Tổ chức dòng xếp hàng cho các tiến trình , sau đó xác lập 1 chính sách phục vụ cho dòng xếp hàng đó.
Câu 9: Giải thích tại sao phần địa chỉ cao(top half), địa chỉ thấp(bottom-half) HĐH không phải là tiến trình.
Trả lời: - Top - half:
+ được dùng trong quản lý các tiến trình chứ không phải là các tiến trình.
+ Thực hiện các yêu cầu của I/O.
- Bottom – half: Là các interrupt handle là các hàm, các thủ tục phục vụ ngắt => dùng để hỗ trợ, cộng tác với các process.
Câu 10: Các cách lựa chọn tiến trình từ “ready to run” để thực hiện.
Trả lời: Các cách lựa chọn tiến trình từ “ready to run”:
1/ First come-first served (FCFS-vào trước phục vụ trước)
- Ưu điểm: Đơn giản, dễ lập trình, quản lý dễ dàng.
- Hạn chế: + Không áp dụng được cho hệ thống máy chủ.
+ Không có sự ưu tiên (non preemtive) nên không công bằng với những tiến trình có thời gian phục vụ (burst time) ngắn.
+ Xảy ra hiện tượng có tiến trình độc chiếm CPU trong thời gian dài.
+ Thời gian chờ đợi trung bình dài.
+ Không phù hợp với các hệ thống chia sẻ thời gian.
2/ Shorted- job-first (SJF-thời gian phục vụ ngắn thì thực hiện trước)
- Ưu điểm:
+Tốt hơn so với FCFS vì hạn chế được việc một tiến trình độc chiếm CPU.
+Thời gian chờ đợi giảm.
+ThÝch hîp ®Ó cã thÓ sö dông cho c¸c tiÕn tr×nh t¬ng t¸c ( C¸c tiÕn tr×nh t¬ng t¸c nãi chung thêng theo mét mÉu chung ®ã lµ chê ®îi lÖnh, kÝch ho¹t lÖnh, råi l¹i ®îi lÖnh, kÝch ho¹t lÖnh...)
- Hạn chế:
+Phải mất thời gian cho việc ước lượng về thời gian để chọn tiến trình.
+Không biết chiều dài của chu kì CPU kế tiếp( Khó khăn trong việc xác định tiến trình nào trong số các tiến trình đang có thể chạy được xem là có thời gian phục vụ ngắn nhất).
3/ Round – robin scheduling (RR - Định thời luân phiên )
- Ưu điểm: + Đây là giải thuật đơn giản, công bằng và phổ dụng.
+ Tránh bị rơi vào vòng lặp vô hạn.
+ Xóa bỏ việc độc chiếm CPU trong thời gian dài.
- Hạn chế: Khó xác định khoảng thời gian chia cho mỗi tiến trình là bao lâu.Mất thời gian để chuyển, bật, tắt các tiến trình.Nếu khoảng thời gian chia cho các tiến trình không hợp lý sẽ lãng phí thời gian.
4/ Prioity scheduling ( Lập lịch ưu tiên):
- Đặc điểm: Mỗi tiến trình được gán một độ ưu tiên và tiến trình nào có độ ưu tiên cao nhất sẽ được chạy. Đồng thời để tránh các tiến trình có độ ưu tiên cao chạy vô định khi các tiến trình này chạy cứ ứng với mỗi khoảng thời gian nhất định độ ưu tiên của nó sẽ giảm đi 1 mức. Khi chạy một khoảng thời gian nhất định độ ưu tiên của nó thấp hơn tiến trình khác thì thao tác chuyển bật tiến trình sẽ diễn ra.
- Ưu điểm: + Tiết kiệm thời gian hơn round robin do xác định được tiến trình nào quan trọng cho thực hiện trước.
+Mức độ ưu tiên có thể thay đổi tùy theo chức năng nhiệm vụ và yêu cầu của từng cơ quan từng người sử dụng.
Câu 11: Trong kĩ thuật cấp phát bộ nhớ phân vùng động,khi nạp tiến trình vào bộ nhớ cần lựa chọn vùng còn rỗng nào đó. Nêu các thuật toán hệ điều hành có thể sử dụng trong trường hợp cần lựa chọn này.
Trả lời:Đối với hệ điều hành sử dụng phân vùng động,để cấp phát bộ nhớ cho một tiến trình ta sử dụng một số thuật toán như First – Fit, Best – fit, Worst – fit, Quick – fit. Mỗi một phương pháp có những đặc điểm riêng ưu điểm và hạn chế nhất định
- First – fit (chọn lỗ trống đầu tiên đủ lớn đối với kích thước của tiến trình): quản lí quá trình sẽ quét dọc theo danh sách các đoạn cho đến khi tìm được một lỗ trống có kích thước đủ lớn. Như vậy trong quá trình đó tiến trình sẽ được cấp phát lỗ trống đầu tiên có kích thước lớn hơn hoặc bằng nó. Như vậy lỗ trống được cấp phát có thể chia làm 2 phần: phần cấp phát cho tiến trình và phần không sử dụng đến (tức là nó còn rảnh).
- Best – fit (chọn lỗ trống có kích thước nhỏ nhất mà đủ lớn cho kích thước của tiến trình): một tiến trình sẽ được cấp phát lỗ trống mà có kích thước vừa khít với nó nhất trong danh sách lỗ trống rảnh, tức là phần không sử dụng đến trong khối là nhỏ nhất. Yêu cầu phải duyệt hết toàn bộ các lỗ trống trừ khi các lỗ trống đã được sắp xếp theo kích thước.
- Worst – fit (chọn lỗ trống có kích thước lớn nhất để cung cấp cho tiến trình): một tiến trình sẽ được cấp phát phần bộ nhớ thuộc khối rảnh có kích thước lớn nhất trong danh sách các khối rảnh. Cũng phải duyệt hết toàn bộ danh sách
Trong đó: first – fit là thuật toán đơn giản nhất với thời gian tìm kiếm là nhanh nhất do bắt đầu gặp khối có kích thước đủ cho tiến trình là nó nhận,
best fit tốt hơn worst fit trong giới hạn của tốc độ và khả năng lưu trữ.
Câu 15: Giải thích ngắn gọn trạng thái của các tiến trình, các mô hình tiến trình hệ thống (process models) chung.
Trả lời: - Các trạng thái của tiến trình: Khi một tiến trình thực thi, nó thay đổi trạng thái.Trạng thái của tiến trình tại 1 thời điểm được xác định bởi các hoạt động hiện hành của nó tại thời điểm đó.Mỗi tiến trình có thể ở 1 trong các trạng thái sau:
+ Mới (new): tiến trình đang được tạo ra.
+ Đang chạy (running): các chỉ thị đang được thực thi.
+ Chờ (waiting): tiến trình đang chờ sự kiện xảy ra (VD: hoàn thành việc nhập/xuất hay nhận dạng tín hiệu).
+ Sẵn sàng (ready): tiến trình đang chờ được cấp phát CPU để xử lý.
+ Kết thúc (terminated): tiến trình hoàn thành việc thực thi.
Tại một thời điểm xác định, chỉ có duy nhất 1 tiến trình ở trạng thái running nhưng nhiều tiến trình có thể ở trạng thái waiting hay ready.
- Các mô hình tiến trình hệ thống:
+ Mô hình simple monitor system:
+ Mô hình hệ thống lô (batch system)
+Mô hình hệ thống lô với trạng thái cấm (a batch system with blocked state)
Câu 16: Giải thích vai trò của PCB (process control block).
Trả lời: Mỗi quá trình được hiện diện trong hệ điều hành bởi Khối điều khiển quá trình(Process Control Block-PCB) – cũng được gọi khối điều khiển tác vụ. Nó chứa nhiều phần thông tin được gắn liền với một quá trình xác định, gồm:
• Trạng thái quá trình (process state): trạng thái có thể là mới, sẳn sàng, đang chạy, chờ đợi, kết thúc, …
• Bộ đếm chương trình (program counter): bộ đếm hiển thị địa chỉ của chỉ thị kế tiếp được thực thi cho quá trình này.
• Các thanh ghi (registers) CPU: các thanh ghi khác nhau về số lượng và loại, phụ thuộc vào kiến trúc máy tính. Chúng gồm các bộ tổng (accumulators), các thanh ghi chỉ mục, các con trỏ ngăn xếp, và các thanh ghi đa năng (generalpurpose registers), cùng với thông tin mã điều kiện (condition-code information). Cùng với bộ đếm chương trình, thông tin trạng thái này phải được lưu khi một ngắt xảy ra, cho phép quá trình được tiếp tục một cách phù hợp sau đó (Hình III.3).
• Thông tin lập thời biểu CPU (CPU-scheduling information): thông tin gồm
độ ưu tiên của quá trình, các con trỏ chỉ tới các hàng đợi lập thời biểu, và bất
kỳ tham số lập thời biểu khác.
• Thông tin quản lý bộ nhớ (Memory-management information): thông tin này có thể gồm những thông tin như giá trị của các thanh ghi nền và thanh ghi giới hạn, các bảng trang hay các bảng phân đoạn, phụ thuộc hệ thống bộ nhớ được dùng bởi hệ điều hành.
• Thông tin tính toán (accounting information): thông tin này gồm lượng CPU và thời gian thực được dùng, công việc hay số quá trình,…
• Thông tin trạng thái nhập/xuất (I/O status information): thông tin này gồm danh sách của thiết bị nhập/xuất được cấp phát quá trình này, một danh sách các tập tin đang mở,.. PCB đơn giản phục vụ như kho chứa cho bất cứ thông tin khác nhau từ quá trình này tới quá trình khác.
Câu 17: Giới thiệu và giải thích ngắn gọn các thành phần (components) của Hệ điều hành.
Trả lời: Các thành phần của hệ điều hành:
1/ Quản lý tiến trình: Tiến trình là 1 chương trình đang hoạt động.Khi thực hiện, tiến trình đòi hỏi 1 số tài nguyên nhất định như :CPU, bộ nhớ, các thiết bị nhập xuất… Các tài nguyên này sẽ được cấp phát cho tiến trình vào những thời điểm cần thiết và được thu hồi khi tiến trình kết thúc. Ngoài ra, khi tiến trình hoạt động trong hệ thống có thể phát sinh các tiến trình con. Như vậy, nhiệm vụ của hệ điều hành trong quản lý tiến trình là:
- Tạo lập và hủy bỏ các tiến trình
- Tạm dừng và khôi phục lại các tiến trình
- Cung cấp cơ chế để đồng bộ hóa các tiến trình
- Cung cấp các cơ chế để giao tiếp giữa các tiến trình
2/ Quản lý bộ nhớ chính: Bộ nhớ chính là 1 mảng kiểu byte hay kiểu word có kích thước lớn. Mỗi phần tử có địa chỉ riêng. Đó là 1 kho chứa dữ liệu có khả năng truy xuất nhanh được chia sẻ bởi CPU và các thiết bị nhập xuất. Bộ nhớ chính là 1 thiết bị lưu trữ không ổn định.Nội dung của nó bị mất khi hệ thống bị lỗi.Trong quản lý bộ nhớ hệ điều hành có các nhiệm vụ sau:
- Lưu giữ thông tin về các vị trí trong bộ nhớ đã được sử dụng và ai sử dụng.
- Quyết định tiến trình nào được nạp vào bộ nhớ chính, khi bộ nhớ đã có thể dùng được.
- Cấp phát và thu hồi bộ nhớ khi cần thiết.
3/ Quản lý bộ nhớ phụ: Vì bộ nhớ chính bất ổn định và quá nhỏ để lưu tất cả chương trình và dữ liệu nên hệ thống máy tính phải cung cấp việc lưu trữ phụ để lưu dự phòng bộ nhớ chính. Hầu như tất cả chương trình : chương trình dịch, hợp ngữ, thủ tục, trình soạn thảo, định dạng... đều được lưu trữ trên đĩa cho tới khi nó được thực hiện, nạp vào trong bộ nhớ chính và cũng sử dụng đĩa để chứa dữ liệu và kết quả xử lý. Vì vậy một bộ quản lý hệ thống đĩa rất quan trọng cho hệ thống máy tính. Vai trò của hệ điều hành trong việc quản lý đĩa : Quản lý vùng trống trên đĩa, định vị lưu trữ và lập lịch cho đĩa.
4/ Quản lý hệ thống nhập/ xuất: Một trong những mục tiêu của hệ điều hành là che dấu những đặc thù của các thiết bị phần cứng đối với người sử dụng thay vào đó là một lớp thân thiện hơn, người sử dụng dể thao tác hơn. Một hệ thống nhập/xuất bao gồm :
- Một hệ thống vùng nhớ đệm
- Giao diện trình điều khiển thiết bị chung.
- Điền khiển các thiết bị phần cứng xác định.
5/ Quản lý tập tin: Một tập tin là một tập hợp những thông tin lien quan với nhau do người tạo ra nó xác định. Thông thường một tập tin đại diện cho một chương trình và dữ liệu. Dữ liệu của tập tin có thể là số, là ký tự, hay ký số. Tập tin thường có dạng tự do, như tập tin văn bản, nhị phân...(là tập tin chứa dãy các bit). Vai trò của hệ điều hành trong việc quản lý tập tin :
Tạo và xoá một tập tin.
Tạo và xoá một thư mục.
Hỗ trợ các hàm nguyên thủy để thao tác trên tập tin và thư mục.
Ánh xạ tập tin trên hệ thống lưu trữ phụ.
Sao lưu dự phòng tập tin trên các thiết bị lưu trữ ổn định.
6/ Hệ thống bảo vệ: Hệ thống bảo vệ là một cơ chế kiểm soát quá trình truy xuất của chương trình, tiến trình, hoặc người sử dụng với tài nguyên của hệ thống và của người dùng. Cơ chế này cũng cung cấp cách thức để mô tả lại mức độ kiểm soát:
- Phân biệt giữa người sử dụng được phép hay không được phép truy cập.
- Xác định các điều khiển được áp dụng.
- Cung cấp phương tiện để thực thi.
7/ Mạng(distributed system):Hệ phân tán là tập hợp các bộ xử lý, chúng không chia sẻ bộ nhớ, các thiết bị ngoại vi hay đồng hồ.Thay vào đó mỗi bộ vi xử lý có bộ nhớ, đồng hồ riêng.Các bộ vi xử lý trong hệ thống được kết nối với nhau thông qua mạng truyền thông.Hệ thống phân tán cung cấp cho người dùng truy xuất tới các tài nguyên khác nhau mà hệ thống duy trì. Truy xuất tới các tài nguyên chia sẻ cho phép tăng tốc độ tính toán,tăng khả năng sẵn dùng của dữ liệu, tăng mức độ tin cậy.
8/ Thành phần thông dịch lệnh: Nhiều lệnh được cung cấp tới hệ điều hành bởi các lệnh điều khiển để giải quyết việc tạo và quẩn lý tiến trình,quẩn lý nhập xuất, quản lý việc lưu trữ phụ, quản lý bộ nhớ chính, truy xuất hệ thống tập tin, bảo vệ và mạng. Trong các hệ thống chia xẻ thời gian một chương trình có thể đọc và thông dịch các lệnh điều khiển được thực hiện một cách tự động. Chương trình này thường được gọi là bộ thông dịch điều khiển card, cơ chế dòng lệnh hoặc Shell. Chức năng của nó rất đơn giản đó là lấy lệnh kế tiếp và thi hành.
Câu 18: Ý nghĩa căn bản của Lập lịch, Sự khác nhau giữa Lập lịch dài kì và lập lịch ngắn hạn?
Trả lời: - Ý nghĩa: Lập lịch cho CPU là chuyển 1 tiến trình từ trạng thái này sang trạng thái khác, nói cách khác lập lịch là để sắp xếp thời gian để chuyển CPU giữa các tiến trình thường xuyên và hợp lý để người dùng có thể giao tiếp với mỗi chương trình trong khi đang chạy.Một hệ thống đơn xử lý chỉ có thể chạy 1 tiến trình tại 1 thời diểm. nếu nhiều hơn 1 tiến trình tồn tại, các tiến trình còn lại phải chờ cho đến khi CPU rảnh và có thể lập thời biểu lại.
- So sánh lập lịc dài kì và lập lịch ngắn hạn:
+ Lập lịch dài kì là chọn các quá trình từ vùng đệm và nạp chúng vào hàng đợi sẵn sàng để chuẩn bị thực thi.
+ Lập lịch ngắn hạn là chọn 1 tiến trình tiếp theo từ hàng đợi sẵn sàng và cấp CPU cho nó để thực thi.
Sự khác biệt chủ yếu giữa 2 cách lập lịch là tính thường xuyên của việc thực thi.Lập lịch ngắn hạn phải chọn 1 tiến trình mới cho CPU thường xuyên. Một tiến trình có thể thực thi chỉ 1 vài mili giây trước khi chờ yêu cầu nhập xuất. Vì thời gian ngắn giữa việc thực thi nên lập lịch phải nhanh.Ngược lại lập lịch dài kì thực thi ít thường xuyên hơn. Có vài phút giữa việc tạo các tiến trình mới trong hệ thống.
Bạn đang đọc truyện trên: AzTruyen.Top