A thread logs all the pending transactions in the Transaction log. SQL manages the times when this thread is fired, it depends on the free buffer memory and the time since the last fired thread. This thread, writes all the transacctions, committed or not. Ath this time, the database is not syncronized, because in the log files on disk, there are transactions that have not been applied to the database(I mean data files on disk).
When a checkpoint occurs, SQL writes into the datafiles on disk all the commited transactions saved on the log.
At this time, the database is syncronized, the commited transactions are written to disk (data files). What is logged on the t-log, depends of the recovery options setted on your database.