InnoDB performs certain tasks in the background, including flushing of dirty pages from the buffer pool. Buffer pool flushing is performed by page cleaner threads.
InnoDB uses background threads to service various types of I/O requests. With synchronous I/O, query threads queue I/O requests, and InnoDB background threads retrieve the queued requests one at a time, issuing a synchronous I/O call for each. When an I/O request is completed and the I/O call returns, the InnoDB background thread that is handling the request calls an I/O completion routine and returns to process the next request.
What are the differences between these two entities? Reading MySQL documentation is hard to understand. So do the page cleaners do the writes on the buffer pool, and the background writer do the writes elsewhere?