Bird
Raised Fist0
Operating Systemsknowledge~5 mins

File attributes and operations in Operating Systems - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: File attributes and operations
O(n)
Understanding Time Complexity

When working with file attributes and operations, it is important to understand how the time taken changes as the number of files or operations grows.

We want to know how the cost of checking or modifying file attributes scales with more files or repeated actions.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


for each file in directory:
    read file attributes
    if file is writable:
        update last modified time
    end if
end for
    

This code goes through every file in a directory, reads its attributes, and updates the last modified time if the file can be written to.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Looping through each file in the directory.
  • How many times: Once for every file present in the directory.
How Execution Grows With Input

As the number of files increases, the total time grows proportionally because each file requires reading attributes and possibly updating.

Input Size (n)Approx. Operations
10About 10 attribute reads and checks
100About 100 attribute reads and checks
1000About 1000 attribute reads and checks

Pattern observation: The work grows steadily and directly with the number of files.

Final Time Complexity

Time Complexity: O(n)

This means the time needed increases in direct proportion to the number of files being processed.

Common Mistake

[X] Wrong: "Updating file attributes takes the same time no matter how many files there are."

[OK] Correct: Each file requires separate operations, so more files mean more total time.

Interview Connect

Understanding how file operations scale helps you reason about system performance and resource use in real tasks.

Self-Check

"What if the code also recursively processes files in subdirectories? How would the time complexity change?"

Practice

(1/5)
1. Which of the following is NOT a common file attribute in operating systems?
easy
A. File color
B. File size
C. Creation date
D. File permissions

Solution

  1. Step 1: Understand common file attributes

    Common file attributes include size, creation date, and permissions which describe the file's properties.
  2. Step 2: Identify the incorrect attribute

    File color is not a standard attribute tracked by operating systems; it is usually a display feature in some file managers.
  3. Final Answer:

    File color -> Option A
  4. Quick Check:

    File color is not a file attribute [OK]
Hint: File attributes describe file details, not display colors [OK]
Common Mistakes:
  • Confusing display features with file attributes
  • Thinking file color is stored as metadata
2. Which command is used to change file permissions in Unix-like systems?
easy
A. ls
B. chown
C. chmod
D. rm

Solution

  1. Step 1: Recall commands related to file permissions

    chmod is the command used to change file permissions, allowing read, write, and execute rights to be set.
  2. Step 2: Differentiate from other commands

    chown changes file ownership, ls lists files, and rm deletes files, so they do not change permissions.
  3. Final Answer:

    chmod -> Option C
  4. Quick Check:

    chmod changes permissions [OK]
Hint: chmod = change mode (permissions) [OK]
Common Mistakes:
  • Confusing chmod with chown
  • Using ls or rm for permissions
3. Consider this Python code snippet that reads a file's size:
import os
file_path = 'example.txt'
size = os.path.getsize(file_path)
print(size)
What does this code output?
medium
A. The number of lines in the file
B. The size of the file in bytes
C. The file's creation date
D. The file's permissions

Solution

  1. Step 1: Understand os.path.getsize function

    This function returns the size of the file in bytes, not lines or dates.
  2. Step 2: Analyze the print output

    Printing the size variable outputs the file size in bytes as an integer.
  3. Final Answer:

    The size of the file in bytes -> Option B
  4. Quick Check:

    os.path.getsize returns file size [OK]
Hint: getsize returns bytes, not lines or dates [OK]
Common Mistakes:
  • Thinking it counts lines
  • Confusing size with creation date
4. What is wrong with this command to rename a file in Linux?
mv file1.txt file2.txt/
medium
A. The trailing slash after file2.txt treats it as a directory
B. It will delete file1.txt instead of renaming
C. The command syntax is incorrect; mv needs -r option
D. It will copy file1.txt instead of renaming

Solution

  1. Step 1: Understand mv command syntax

    mv renames or moves files. The destination should be a file name or directory.
  2. Step 2: Analyze the trailing slash effect

    A trailing slash after file2.txt makes the system treat it as a directory, which likely does not exist, causing an error.
  3. Final Answer:

    The trailing slash after file2.txt treats it as a directory -> Option A
  4. Quick Check:

    Trailing slash means directory [OK]
Hint: Trailing slash means directory, not file [OK]
Common Mistakes:
  • Thinking mv deletes files
  • Assuming mv copies files
  • Believing -r is needed for mv
5. You want to create a script that lists all files in a folder but only shows files larger than 1MB. Which approach correctly uses file attributes and operations?
hard
A. Change permissions of files larger than 1MB before listing
B. List all files and print their names without checking size
C. Delete files smaller than 1MB and then list remaining files
D. List all files, then check each file's size attribute and print only those >1MB

Solution

  1. Step 1: Understand the requirement

    The task is to list files filtered by size, so size attribute must be checked.
  2. Step 2: Evaluate each option

    List all files, then check each file's size attribute and print only those >1MB correctly filters files by size before printing. List all files and print their names without checking size ignores size. Delete files smaller than 1MB and then list remaining files deletes files, which is unsafe. Change permissions of files larger than 1MB before listing changes permissions unnecessarily.
  3. Final Answer:

    List all files, then check each file's size attribute and print only those >1MB -> Option D
  4. Quick Check:

    Filter by size attribute before listing [OK]
Hint: Filter files by size attribute before listing [OK]
Common Mistakes:
  • Ignoring file size attribute
  • Deleting files instead of filtering
  • Changing permissions unnecessarily
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard