When does DBWR write to the datafile? | Oracle DBA

Following are the situations when DBWR writes to the datafile:
i. When checkpoint occurs.
ii. When number of dirty blocks reaches a threshold.
iii. Every three seconds due to timeout.
iv. When server process needs free space in buffer cache to read new blocks.