CiviCRM's Scheduled Jobs (mailings, reminders, membership status…) only run when something calls them – CiviCRM has no timer of its own. On a Joomla site the usual way is a server cron every 15 minutes that calls CiviCRM's cron script:
*/15 * * * * wget -q -O /dev/null "https://example.org/administrator/components/com_civicrm/civicrm/bin/cron.php?name=cronuser&pass=SECRET&key=SITE_KEY"
-
name / pass: a Joomla user that exists only for this, with the CiviCRM permissions the jobs need (it does not need to be an admin).
-
key: the CIVICRM_SITE_KEY from civicrm.settings.php.
Then open Administer → System Settings → Scheduled Jobs: "Send Scheduled Mailings" and "Send Scheduled Reminders" must be enabled, and
View Log on each job shows whether the cron reached it.