code: def __init__(
      self,
      scheduler_config: SchedulerConfig,
      kv_cache: Optional,
  ) -> None:
      self.scheduler_config = scheduler_config
      self.prompt_limit = min(
          self.scheduler_config.max_model_len,
          self.scheduler_config.max_num_batched_tokens,
      )
  
      # bigdl-llm change start
      # summary: cache_config is removed as we are not implementing the pagetable structure
      # block manager is also deleted based on the same reasoning.
      # As we are not using the pagetable, the swapped area is also deleted because
      # we cannot decide if there is enough memory or not.
  
      # Instantiate the scheduling policy.
      self.policy = PolicyFactory.get_policy(policy_name="fcfs")
  
      # Sequence groups in the WAITING state.
      self.waiting: List[SequenceGroup] = []
      # Sequence groups in the RUNNING state.
      self.running: List[SequenceGroup] = []
      self.cleaned: List[int] = []
      self.kv_cache = kv_cache
      # Co(gc): We no longer have the swapped space as we are not deciding which to swap
      self.swapped: List[SequenceGroup] = []
  
imports: import enum
  import time
  from typing import Dict, Iterable, List, Optional, Tuple, Union
  from bigdl.llm.vllm.config import SchedulerConfig
  from bigdl.llm.vllm.core.policy import PolicyFactory
  from bigdl.llm.vllm.logger import init_logger
  from bigdl.llm.vllm.sequence import SequenceData, SequenceStatus
  from bigdl.llm.vllm.sequence import Sequence, SequenceGroup, SequenceGroupMetadata
  from bigdl.llm.utils.common import invalidInputError
label_desc: Use image node_id 1 to create a new FixedWindowScheduler object  with example: obj = FixedWindowScheduler(scheduler_config, kv_cache)