Tại sao trên máy tính có những thư mục mất nhiều thời gian để xoá hơn mặc dù cùng dung lượng?

  1. Công nghệ thông tin

Mình để ý thấy khi xoá cái video 2gb thì mất chưa đến 5s, mà xoá 1 thư mục tổng chưa đến 2gb thì mất lâu hơn vậy nhiều

Từ khóa: 

máy tính

,

công nghệ thông tin

Tại vì cơ chế xóa của hệ điều hành (hđh) là nó duyệt qua tất cả các file bên trong folder đó và xóa từng file. Mà chính xác thì nó làm cái gì khi nó "xóa một file"? Um thì thật ra là nó không xóa, nó chỉ đơn giản là đánh dấu địa chỉ đang chứa file đó trên ổ cứng trở thành một địa chỉ trống, để sau này khi bạn thêm dữ liệu mới vào ổ cứng thì hđh có thể dùng vùng địa chỉ đó để lưu trữ dữ liệu mới, bằng cách ghi đè thẳng lên dữ liệu cũ. Mình lấy ví dụ:

  • Ổ cứng là một căn hộ chung cư, các phòng là các ô nhớ, số phòng là địa chỉ, người ở là dữ liệu, "bạn" là giám đốc, còn hệ điều hành là ông quản lý căn hộ.

  • Khi ông giám đốc muốn đuổi một người ra khỏi căn hộ (tương ứng việc xóa file), thì ông quản lý chưa đuổi người đó ra hẳn, mà chỉ đánh dấu phòng đó là trống.

  • Rồi khi ông giám đốc thêm một người khác vào (tương ứng việc thêm file vào, có thể download từ mạng, copy từ usb, hoặc create một file mới bằng một phần mềm như word hay excel gì đó), thì ông quản lý sẽ đi tìm phòng trống để nhét người mới này vào. Nếu trong phòng trống có sẵn người (như cái phòng đánh dấu là trống lúc nãy) thì lúc đó mới đuổi người cũ ra (tương ứng việc ghi đè từng bit dữ liệu lên các tế bào nhớ trong ô nhớ, mặc dù so sánh vầy hơi khập khiễng vì đuổi người cũ ra thì cũng tốn thời gian dọn đồ nếu phòng đó có nhiều người ở, còn lúc ghi đè thì thời gian không khác gì so với ghi mới lên một tế bào chưa có dữ liệu).

Với ý tưởng như vậy, thời gian để hđh xóa một file sẽ ko phụ thuộc vào dung lượng file, và thường là rất nhanh. Và trong trường hợp của bạn, thời gian xóa một folder lâu hơn nhiều vì folder đó chứa rất nhiều file (các folder cài đặt của các phần mềm thường chứa hàng ngàn file, mỗi file chỉ vài KB).

Cần lưu ý, khi bạn tạo file mới, không nhất nhiết nó phải nằm trong cùng folder với file/folder bạn xóa trước đó thì mới được ghi đè vào vùng nhớ đó. Nó có thể nằm ở folder khác cũng được. Cấu trúc cây thư mục trong My Computer chỉ là một cây "ảo" để người dùng dễ quản lý thôi, còn bên dưới ổ cứng thì hđh chỉ nhìn thấy các vùng nhớ nằm thành từng dòng từng cột.

Tuy nhiên, trong thực tế vẫn có sự chênh lệch giữa việc xóa 1 file 1GB và 1 file 10 GB. Lý do là vì, quay lại vd trên, các file lớn có thể ví von với một gia đình rất đông thành viên và phải thuê nhiều phòng, hoặc thuê hẳn một tầng trong căn hộ đó. Thì khi xóa file lớn đó cũng phải duyệt qua hết các phòng (và đánh dấu "trống" từng phòng). Khái niệm "phòng" ở đây tương ứng với thuật ngữ "sector" trong ổ cứng. Kích thước 1 sector khoảng 0.5-4KB tùy loại ổ cứng.

Các hđh hiện đại còn có các cơ chế quản lý ổ cứng phức tạp hơn nữa, ví dụ như gom nhiều sector vật lý thành 1 block, và quản lý trên đơn vị block đó...

Mình giải thích hơi dài, hi vọng bạn hiểu được: ). Chúc vui!

Trả lời

Tại vì cơ chế xóa của hệ điều hành (hđh) là nó duyệt qua tất cả các file bên trong folder đó và xóa từng file. Mà chính xác thì nó làm cái gì khi nó "xóa một file"? Um thì thật ra là nó không xóa, nó chỉ đơn giản là đánh dấu địa chỉ đang chứa file đó trên ổ cứng trở thành một địa chỉ trống, để sau này khi bạn thêm dữ liệu mới vào ổ cứng thì hđh có thể dùng vùng địa chỉ đó để lưu trữ dữ liệu mới, bằng cách ghi đè thẳng lên dữ liệu cũ. Mình lấy ví dụ:

  • Ổ cứng là một căn hộ chung cư, các phòng là các ô nhớ, số phòng là địa chỉ, người ở là dữ liệu, "bạn" là giám đốc, còn hệ điều hành là ông quản lý căn hộ.

  • Khi ông giám đốc muốn đuổi một người ra khỏi căn hộ (tương ứng việc xóa file), thì ông quản lý chưa đuổi người đó ra hẳn, mà chỉ đánh dấu phòng đó là trống.

  • Rồi khi ông giám đốc thêm một người khác vào (tương ứng việc thêm file vào, có thể download từ mạng, copy từ usb, hoặc create một file mới bằng một phần mềm như word hay excel gì đó), thì ông quản lý sẽ đi tìm phòng trống để nhét người mới này vào. Nếu trong phòng trống có sẵn người (như cái phòng đánh dấu là trống lúc nãy) thì lúc đó mới đuổi người cũ ra (tương ứng việc ghi đè từng bit dữ liệu lên các tế bào nhớ trong ô nhớ, mặc dù so sánh vầy hơi khập khiễng vì đuổi người cũ ra thì cũng tốn thời gian dọn đồ nếu phòng đó có nhiều người ở, còn lúc ghi đè thì thời gian không khác gì so với ghi mới lên một tế bào chưa có dữ liệu).

Với ý tưởng như vậy, thời gian để hđh xóa một file sẽ ko phụ thuộc vào dung lượng file, và thường là rất nhanh. Và trong trường hợp của bạn, thời gian xóa một folder lâu hơn nhiều vì folder đó chứa rất nhiều file (các folder cài đặt của các phần mềm thường chứa hàng ngàn file, mỗi file chỉ vài KB).

Cần lưu ý, khi bạn tạo file mới, không nhất nhiết nó phải nằm trong cùng folder với file/folder bạn xóa trước đó thì mới được ghi đè vào vùng nhớ đó. Nó có thể nằm ở folder khác cũng được. Cấu trúc cây thư mục trong My Computer chỉ là một cây "ảo" để người dùng dễ quản lý thôi, còn bên dưới ổ cứng thì hđh chỉ nhìn thấy các vùng nhớ nằm thành từng dòng từng cột.

Tuy nhiên, trong thực tế vẫn có sự chênh lệch giữa việc xóa 1 file 1GB và 1 file 10 GB. Lý do là vì, quay lại vd trên, các file lớn có thể ví von với một gia đình rất đông thành viên và phải thuê nhiều phòng, hoặc thuê hẳn một tầng trong căn hộ đó. Thì khi xóa file lớn đó cũng phải duyệt qua hết các phòng (và đánh dấu "trống" từng phòng). Khái niệm "phòng" ở đây tương ứng với thuật ngữ "sector" trong ổ cứng. Kích thước 1 sector khoảng 0.5-4KB tùy loại ổ cứng.

Các hđh hiện đại còn có các cơ chế quản lý ổ cứng phức tạp hơn nữa, ví dụ như gom nhiều sector vật lý thành 1 block, và quản lý trên đơn vị block đó...

Mình giải thích hơi dài, hi vọng bạn hiểu được: ). Chúc vui!