DAGScheduler is the scheduling layer of Apache Spark that implements stage-oriented scheduling, i.e. post an RDD action has been called it becomes a job that is then transformed into a set of steps that are submitted as TaskSets for execution.
DAGScheduler uses an event queue architecture in which a thread can post DAGSchedulerEvent events, e.g. a new/fresh job or stage being submitted, that DAGScheduler reads and executes sequentially.