Algorytm planowania FCFS: co to jest, przykładowy program

⚡ Inteligentne podsumowanie

Harmonogramowanie oparte na zasadzie „pierwszy przyszedł, pierwszy obsłużony” uruchamia procesy w dokładnej kolejności, w jakiej docierają do kolejki zadań gotowych do wykonania, wykorzystując proste, niewywłaszczające podejście FIFO. Dzięki temu jest to najłatwiejszy do zaimplementowania algorytm harmonogramowania procesora w systemie operacyjnym.

  • 🔄 Definicja: FCFS przydziela procesor procesowi, który zażąda tego jako pierwszy, zarządzając kolejką gotowych procesów zgodnie ze strukturą FIFO (pierwszy wszedł, pierwszy wyszedł).
  • ⚙️ Natura: FCFS nie jest systemem wywłaszczającym, więc działający proces zatrzymuje procesor, dopóki nie upłynie cały czas przeznaczony na wykonanie zadania.
  • 🎟️. Analogia: Podobnie jak w kolejce do kasy biletowej, obsługa odbywa się najpierw przez osoby, które przyjdą jako pierwsze, a kolejni oczekują na swoją kolej.
  • 📊 Obliczenia: Średni czas oczekiwania jest podany według podstronytracliczenie czasu przybycia każdego procesu od czasu jego rozpoczęcia, a następnie uśrednianie czasu dla wszystkich procesów.
  • 🐢 Efekt konwoju: Jeden długi proces na początku powoduje, że krótsze zadania czekają, co wydłuża średni czas oczekiwania i pogarsza wydajność.
  • 🤖 Kąt AI: Uczenie maszynowe przewiduje czasy szczytowe, co pozwala na usprawnienie harmonogramowania, a Copilot pomaga szybko pisać i testować kod FCFS.

Algorytm harmonogramowania FCFS w Operasystemu

Na czym polega metoda „kto pierwszy, ten lepszy”?

Kto pierwszy, ten lepszy (FCFS) to algorytm planowania systemu operacyjnego, który automatycznie wykonuje kolejkowane żądania i procesy w kolejności ich nadejścia. Jest to najłatwiejszy i najprostszy algorytm planowania procesora. W tym typie algorytmu proces, który jako pierwszy zażąda procesora, otrzymuje go jako pierwszy. Jest to zarządzane za pomocą kolejki FIFO. Pełna nazwa FCFS to First Come First Serve (pierwszy przyszedł, pierwszy obsłużony).

Gdy proces wchodzi do kolejki gotowych procesów, jego blok PCB (Process Control Block) jest połączony z końcem kolejki. W ten sposób, gdy procesor staje się wolny, jest przypisywany do procesu na początku kolejki.

Charakterystyka metody FCFS

Poniżej przedstawiono główne cechy metody „kto pierwszy, ten lepszy”:

  • Jest nieprewencyjny algorytm planowania, dzięki któremu proces utrzymuje procesor do momentu zakończenia przydzielonego mu czasu.
  • Zadania są zawsze wykonywane na zasadzie „kto pierwszy, ten lepszy”.
  • Jest łatwy do wdrożenia i użytkowania.
  • Ta metoda jest mało wydajna, a ogólny czas oczekiwania jest dość długi.

Przykład harmonogramowania FCFS

Przykładem zastosowania metody FCFS w praktyce jest zakup biletu do kina w kasie biletowej. W tym algorytmie harmonogramowania, osoby są obsługiwane zgodnie z kolejnością w kolejce. Osoba, która pojawi się pierwsza w kolejce, kupuje bilet jako pierwsza, a następnie kolejna. Proces ten trwa do momentu, aż ostatnia osoba w kolejce kupi bilet. W przypadku tego algorytmu, proces procesora działa w podobny sposób.

Jak działa FCFS? Obliczanie średniego czasu oczekiwania

Aby zrozumieć, jak algorytm planuje procesy, poniżej przedstawiono przykład pięciu procesów przybywających w różnym czasie. Każdy proces ma inny czas realizacji.

Przetwarzanie Czas wybuchu Czas przybycia
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Używając algorytmu planowania FCFS, procesy te są obsługiwane w następujący sposób.

Krok 1) Proces rozpoczyna się od P4, którego czas przybycia wynosi 0.

Przykład harmonogramowania FCFS krok 1

Krok 2) W chwili = 1 przybywa P3. P4 nadal działa. Dlatego P3 jest trzymany w kolejce.

Przykład harmonogramowania FCFS krok 2

Krok 3) W czasie=2 przybywa P1 i zostaje umieszczony w kolejce.

Przykład harmonogramowania FCFS krok 3

Krok 4) W czasie 3 proces P4 kończy swoje wykonywanie.

Przykład harmonogramowania FCFS krok 4

Krok 5) O godzinie = 4, P3, który jest pierwszy w kolejce, rozpoczyna wykonanie.

Przykład harmonogramowania FCFS krok 5

Krok 6) W czasie 5 przybywa P2 i zostaje umieszczony w kolejce.

Przykład harmonogramowania FCFS krok 6

Krok 7) W czasie 11 P3 kończy wykonywanie.

Przykład harmonogramowania FCFS krok 7

Krok 8) W czasie 11 P1 rozpoczyna wykonywanie. Ma on czas burst równy 6, więc kończy wykonywanie w przedziale czasowym 17.

Przykład harmonogramowania FCFS krok 8

Krok 9) W czasie 17 P5 rozpoczyna wykonywanie. Ma czas burst równy 4, więc kończy wykonywanie w czasie 21.

Przykład harmonogramowania FCFS krok 9

Krok 10) W czasie 21 P2 rozpoczyna wykonywanie. Ma on czas burst równy 2, więc kończy wykonywanie w przedziale czasowym 23.

Przykład harmonogramowania FCFS krok 10

Krok 11) Obliczmy teraz średni czas oczekiwania dla powyższego przykładu.

Średni czas oczekiwania na harmonogram FCFS

Waiting time = Start time - Arrival time

P4 = 0 – 0 = 0

P3 = 3 – 1 = 2

P1 = 11 – 2 = 9

P5 = 17 – 4 = 13

P2 = 21 – 5 = 16

Średni czas oczekiwania = (0 + 2 + 9 + 13 + 16) / 5 = 40 / 5 = 8

Obliczanie średniego czasu oczekiwania na harmonogram FCFS

Zalety FCFS

Oto zalety i korzyści wynikające ze stosowania algorytmu planowania FCFS:

Wady FCFS

Oto wady i niedogodności wynikające ze stosowania algorytmu planowania FCFS:

  • Jest to algorytm planowania zadań procesora bez wywłaszczania, co oznacza, że ​​po przydzieleniu procesu do procesora, nie jest on zwalniany, dopóki proces nie zakończy wykonywania.
  • Średni czas oczekiwania jest długi.
  • Krótkie procesy znajdujące się na końcu kolejki muszą czekać na zakończenie długiego procesu z przodu.
  • Nie jest to idealna technika dla systemów z podziałem czasu.
  • Ze względu na swoją prostotę FCFS nie jest zbyt wydajny.

FAQ

Zasada „pierwszy przyszedł, pierwszy obsłuż” to algorytm niewywłaszczający. Po otrzymaniu procesora proces działa do zakończenia serii zadań, więc harmonogram nie może go przerwać, aby uruchomić nowo powstały lub krótszy proces.

Efekt konwoju występuje, gdy kilka krótkich procesów czeka za jednym długim procesem na początku kolejki. To pojedyncze długie zadanie wydłuża średni czas oczekiwania i obniża ogólną przepustowość procesora.

Czas realizacji to czas ukończenia pomniejszony o czas dotarcia każdego procesu. Mierzy on całkowity czas, jaki proces spędza w systemie, od momentu dotarcia do procesora, aż do zakończenia wykonywania.

FCFS obsługuje według kolejności przybycia, Najpierw najkrótsza praca najpierw obsługuje najmniejszą serię, aby skrócić czas oczekiwania, i Round Robin przydziela każdemu procesowi stały przedział czasowy do podziału czasu.

Czysty FCFS nie powoduje głodu, ponieważ każdy proces ostatecznie dociera na początek kolejki FIFO. Jednak długie zadania mogą nadal znacznie opóźniać krótkie zadania z powodu efektu konwoju.

FCFS działa w czasie O(n), gdy procesy są już uporządkowane według czasu przybycia, ponieważ każdy z nich jest planowany raz. Sortowanie nieposortowanych przybyć według czasu przybycia najpierw dodaje krok O(n log n).

Modele uczenia maszynowego przewidują czasy szczytowe procesów i dostosowują zasady harmonogramowania, aby skrócić średni czas oczekiwania i zużycie energii. Naukowcy stosują te oparte na sztucznej inteligencji harmonogramy w serwerach chmurowych i centrach danych.

Tak. GitHub Copilot może generować kod FCFS w języku C, Javalub Python z obliczeniami czasu oczekiwania i czasu realizacji. Zawsze weryfikuj wzory sortowania czasu przybycia, rozstrzygania remisów i uśredniania, zanim zaufasz wynikom.

Podsumuj ten post następująco: