You are on page 1of 4

OSG202 - PROGRESS TEST 02

Background Knowledge (60%)

1. What is the main purpose of an operating system? List three key functions it performs.

2. Differentiate between multiprogramming and multiprocessing operating systems.

3. Explain the concept of a process and how it di:ers from a program.

4. Define the terms "multitasking" and "time-sharing" in the context of operating systems.

Practical Problems: (40%)

1. A computer has 4 GB of RAM and supports a maximum process size of 2 GB. If the operating system reserves 1
GB of memory for its own use, what is the maximum number of user processes that can be loaded into memory
simultaneously?

2. In a multiprogramming system, the arrival times and burst times (in milliseconds) for five processes are given
below:

P1 0 5
P2 1 3
P3 2 8
P4 4 6
P5 6 4

Calculate the average waiting time for these processes using the First-Come, First-Served (FCFS) scheduling
algorithm.

3. A file system has 8 free disk blocks available, and a new file requiring contiguous allocation needs 6 blocks of
disk space. If the file is allocated starting at block 10, what will be the file's starting and ending block addresses?

Bonus Questions (20%):

1. Why Chrome use multiprocess instead of multithread?

2. Why iOS devices use less RAM than Android devices?


ANSWER
Student Name: Đỗ Trung Phúc

Roll Number: HE186871

Class: SE1895

Background Knowledge (60%)

1. Mục đích chính của hệ điều hành là gì? Liệt kê ba chức năng chính mà nó thực hiện.

- Mục đích chính của hệ điều hành là đóng vai trò trung gian giữa các thành phần phần cứng và phần
mềm của hệ thống máy tính. Nó cung cấp một nền tảng để chạy các ứng dụng và dịch vụ, đồng thời
quản lý các tài nguyên của hệ thống, bao gồm bộ nhớ, CPU và các thiết bị I/O.

- 3 chức năng chính của hệ điều hành bao gồm:

+ Quản lý tài nguyên: Hệ điều hành quản lý việc phân bổ và sử dụng tài nguyên hệ thống, chẳng hạn như
bộ nhớ, thời gian CPU và thiết bị I/O. Nó đảm bảo rằng các tài nguyên được sử dụng hiệu quả và công
bằng, đồng thời ngăn ngừa xung đột giữa các ứng dụng và quy trình khác nhau.

+ Quản lý tiến trình và luồng: Hệ điều hành tạo và quản lý các tiến trình và luồng, là các đơn vị thực thi
cơ bản trong hệ thống máy tính. Nó lên lịch cho các tiến trình và luồng chạy trên CPU, đồng thời cung
cấp các cơ chế liên lạc và đồng bộ hóa giữa chúng.

+ Quản lý hệ thống tập tin: Hệ điều hành quản lý việc lưu trữ và truy xuất dữ liệu trên đĩa. Nó tạo và duy
trì hệ thống tệp, tổ chức các tệp và thư mục, đồng thời cung cấp các cơ chế đọc, ghi và xóa tệp.

2. Phân biệt hệ điều hành đa chương trình và hệ điều hành đa xử lý.

- Hệ điều hành đa chương trình: Hệ điều hành đa chương trình cho phép nhiều chương trình chạy đồng
thời trên một bộ xử lý. Điều này đạt được bằng cách chia sẻ thời gian CPU giữa các chương trình khác
nhau, cho mỗi chương trình một khoảng thời gian CPU nhỏ. Đa chương trình cải thiện việc sử dụng
CPU, vì nó giữ cho CPU bận rộn ngay cả khi một chương trình đang chờ các hoạt động I/O hoàn tất.

- Hệ điều hành đa xử lý: Hệ điều hành đa xử lý sử dụng nhiều bộ xử lý để thực thi đồng thời các quy trình
khác nhau. Điều này cho phép cải thiện hiệu suất đáng kể vì nhiều tác vụ có thể được thực thi song
song. Hệ điều hành đa xử lý đặc biệt phù hợp với các ứng dụng đòi hỏi nhiều sức mạnh tính toán, chẳng
hạn như mô phỏng khoa học và chỉnh sửa video.
3. Giải thích khái niệm về một quy trình và nó khác với một chương trình như thế nào.

- Quy trình: Một quy trình là một thể hiện của một chương trình đang chạy. Nó bao gồm mã, dữ liệu và
trạng thái thực thi của chương trình. Một chương trình có thể có nhiều tiến trình chạy đồng thời, mỗi tiến
trình có trạng thái thực thi riêng.

- Chương trình: Chương trình là một tập hợp các hướng dẫn tĩnh xác định những gì một quá trình sẽ thực
hiện. Khi một chương trình được thực thi, hệ điều hành sẽ tạo ra một tiến trình để chạy chương trình đó.

4. Xác định các thuật ngữ "đa nhiệm" và "chia sẻ thời gian" trong bối cảnh hệ điều hành

- Đa nhiệm: Đa nhiệm là khả năng của một hệ điều hành thực hiện đồng thời nhiều tác vụ. Điều này có
thể đạt được thông qua đa chương trình, đa xử lý hoặc kết hợp cả hai.

- Chia sẻ thời gian: Chia sẻ thời gian là một phần mở rộng của đa nhiệm trong đó nhiều người dùng chia
sẻ cùng một tài nguyên hệ thống, với mỗi người dùng nhận được một phần thời gian CPU có sẵn. Chia
sẻ thời gian cho phép nhiều người dùng thực hiện đồng thời các nhiệm vụ của riêng họ, ngay cả trên hệ
thống một bộ xử lý.

Practical Problems: (40%)

1. Một máy tính có RAM 4 GB và hỗ trợ kích thước quy trình tối đa là 2 GB. Nếu hệ điều hành dành 1
GB bộ nhớ để sử dụng riêng thì số lượng tiến trình người dùng tối đa có thể được tải vào bộ nhớ
đồng thời là bao nhiêu?

- Số lượng quy trình người dùng tối đa có thể được tải vào bộ nhớ đồng thời được xác định bởi dung lượng
bộ nhớ có sẵn cho các quy trình người dùng và kích thước quy trình tối đa. Trong trường hợp này, máy
tính có RAM 4 GB, hệ điều hành dành 1 GB bộ nhớ để sử dụng riêng và kích thước xử lý tối đa là 2 GB. Do
đó, số lượng tiến trình người dùng tối đa có thể được tải vào bộ nhớ đồng thời là:
(4 GB - 1 GB) / 2 GB = 1,5 quy trình
Vì chúng ta không thể tải một phần của tiến trình nên số lượng tiến trình người dùng tối đa có thể được
tải vào bộ nhớ đồng thời là 1.

2.
- Thời gian chờ trung bình cho các quy trình nhất định sử dụng thuật toán lập lịch đến trước, phục vụ
trước (FCFS) được tính như sau:

P1 P2 P3 P4 P5
0-5 5-8 8-16 16-22 22-26
- Tính thời gian chờ cho mỗi tiến trình:

P1: 0 ms (no waiting)


P2: 5 ms (waiting for P1 to finish)
P3: 6 ms (waiting for P2 to finish)
P4: 12 ms (waiting for P3 to finish)
P5: 16 ms (waiting for P4 to finish)

- Tính thời gian chờ đợi trung bình:


(0 + 5 + 6 + 12 + 16) / 5 = 9.6 ms

- Thời gian chờ trung bình cho các quy trình nhất định sử dụng thuật toán lập lịch FCFS là 9,6 ms.

3. Một hệ thống tệp có sẵn 8 khối đĩa trống và một tệp mới yêu cầu phân bổ liền kề cần 6 khối dung
lượng đĩa. Nếu tệp được phân bổ bắt đầu từ khối 10, địa chỉ khối bắt đầu và kết thúc của tệp sẽ là
gì?

- Nếu tệp được phân bổ bắt đầu từ khối 10 và yêu cầu 6 khối dung lượng đĩa thì địa chỉ khối bắt đầu của
tệp là 10 và địa chỉ khối kết thúc của nó là 10 + 6 - 1 = 15.

Bonus Questions (20%):

1. Tại sao Chrome sử dụng đa xử lý thay vì đa luồng?

- Chrome sử dụng đa xử lý thay vì đa luồng vì một số lý do:

+ Tính ổn định: Nếu một tab hoặc tiện ích mở rộng gặp sự cố, nó sẽ chỉ ảnh hưởng đến quá trình cụ thể
đó chứ không ảnh hưởng đến toàn bộ trình duyệt. Điều này cải thiện tính ổn định tổng thể của trình
duyệt.
Bảo mật: Việc tách từng tab và tiện ích mở rộng thành một quy trình riêng biệt giúp bảo vệ trình duyệt
khỏi các lỗ hổng bảo mật. Nếu một quy trình bị xâm phạm, nó không thể dễ dàng lây lan sang các quy
trình khác.

+ Hiệu suất: Đa xử lý có thể cải thiện hiệu suất của trình duyệt bằng cách phân bổ khối lượng công việc
trên nhiều lõi. Tuy nhiên, điều quan trọng cần lưu ý là đa xử lý cũng có thể gây ra chi phí chung, vì vậy nó
không phải lúc nào cũng là giải pháp tốt nhất cho mọi ứng dụng.

2. Tại sao thiết bị iOS sử dụng ít RAM hơn thiết bị Android?

- Thiết bị i004FS thường sử dụng ít RAM hơn thiết bị Android vì một số lý do:
+ Tối ưu hóa phần cứng: Thiết bị iOS được thiết kế cho một bộ phần cứng cụ thể, cho phép Apple tối ưu
hóa hệ điều hành và ứng dụng cho các thiết bị đó. Việc tối ưu hóa này có thể giúp sử dụng RAM hiệu quả
hơn.
+ Nguyên tắc ứng dụng: Apple có các nguyên tắc ứng dụng nghiêm ngặt yêu cầu nhà phát triển sử dụng
bộ nhớ một cách hiệu quả. Điều này giúp đảm bảo rằng các ứng dụng iOS không tiêu tốn quá nhiều
RAM.
+ Sandboxing: Các ứng dụng iOS được sandboxed, có nghĩa là chúng bị cô lập với nhau và với hệ điều
hành. Điều này giúp ngăn các ứng dụng truy cập hoặc sử dụng quá nhiều RAM.

You might also like