WEBVTT

1
00:05.030 --> 00:12.110
Şimdi SDP sürecimizde ön alma kavramını

2
00:12.110 --> 00:14.060
uygulayacağımız bir örneği ele alalım.

3
00:15.110 --> 00:21.170
Dolayısıyla, görevin öncelenmesi ve
yeniden planlanması için

4
00:21.170 --> 00:22.100
görevin kaldığı yerden devam etmesi
gerekir.

5
00:22.550 --> 00:23.000
Tamam.

6
00:23.000 --> 00:24.590
Bu oldukça açık.

7
00:24.590 --> 00:32.540
Uygulama, yazdırmadan önce görev durumunu
kaydetmeli ve görev olay

8
00:32.540 --> 00:34.730
döngüsü iş parçacığında tekrar
zamanlandığında görev durumunu geri
yüklemelidir.

9
00:36.020 --> 00:36.470
Tamam.

10
00:36.470 --> 00:42.740
Yani bu, işletim sistemimiz tarafından iş
parçacığı

11
00:42.740 --> 00:44.060
değiştirme bağlamında yapılan bağlam
değiştirmeye biraz benzemektedir.

12
00:44.210 --> 00:49.700
İşletim sisteminizin iş parçacığı işletim
sisteminiz tarafından yeniden

13
00:49.700 --> 00:53.240
planlandığında, iş parçacığınız aynı
durumdan yürütülmeye devam eder.

14
00:53.450 --> 01:01.970
Burada iş parçacığının durumu, iş
parçacığının yürütme yığını olan aynı iş
parçacığı yığını anlamına gelir.

15
01:02.030 --> 01:05.660
Ve bir sonraki talimattan itibaren.

16
01:08.130 --> 01:08.670
Tamam.

17
01:08.670 --> 01:15.450
Dolayısıyla, iş parçacığınız bu talimatı
yazdırdıysa, I daha sonra yeniden
planlandıktan sonra iş

18
01:15.450 --> 01:19.500
parçacığı, diyelim ki I artı bir olan bir
sonraki talimattan yürütmeye devam
etmelidir.

19
01:20.250 --> 01:20.820
Tamam.

20
01:20.820 --> 01:27.690
Ve iş parçacığı yığını ne olursa olsun, iş
parçacığı yeniden

21
01:27.690 --> 01:29.550
planlandığında aynı iş parçacığı yığınının
belleğe yeniden yüklenmesi gerekir.

22
01:30.960 --> 01:33.540
Yani buradaki benzetme bir kitap
okumaktır.

23
01:33.540 --> 01:40.200
Örneğin, kitabı 20. sayfaya kadar
okuduktan sonra bir süre

24
01:40.200 --> 01:45.690
okumaya ara verdiyseniz ve daha sonra
tekrar geri

25
01:45.690 --> 01:47.340
dönüp kitabı okursanız, kaldığınız 20.
sayfadan devam edersiniz.

26
01:47.670 --> 01:53.250
Bu yüzden benzer konsepti olay döngüleri
bağlamında uygulayacağız.

27
01:54.370 --> 01:59.680
Yani burada görev durumu, görevin ne kadar
işi tamamladığını hatırlamak anlamına
gelir.

28
02:00.400 --> 02:05.800
Pekala, öyle ya da böyle, veri yapınızı
öyle bir şekilde korumalısınız ki,

29
02:05.800 --> 02:12.250
görevin önüne geçmeden önce, uygulamanız
görevin ne kadar işi tamamladığını
hatırlamalıdır.

30
02:13.540 --> 02:14.170
Tamam.

31
02:14.620 --> 02:17.710
O zaman tekerleği yeniden icat edelim.

32
02:17.740 --> 02:21.820
Yönlendirme tablosu girdilerini yazdıran
bir fonksiyonumuz zaten var.

33
02:21.820 --> 02:25.480
Ancak bu işlev şu anda ilkel bir işlev
değildir.

34
02:25.480 --> 02:32.470
Bu yüzden bu fonksiyonu yeniden
keşfedeceğiz ve ön

35
02:32.470 --> 02:33.670
alma ve bağlam kaydetme kavramını
kullanarak uygulayacağız.

36
02:33.760 --> 02:39.550
Diyelim ki her ön alma ve yeniden
zamanlamada

37
02:39.550 --> 02:40.570
yönlendirme tablosundan on girdiyi artımlı
olarak yazdıralım.

38
02:41.530 --> 02:44.650
STP sürecimizi tekrar başlatmama izin
verin.

39
02:44.710 --> 02:49.810
Ve beş numaralı seçeneği kullanarak 40.000
numaralı bağlantı noktasını dinlememe izin
verin.

40
02:50.590 --> 02:54.880
Şimdi başka bir pencerede bazı rotaları
öğreneceğim.

41
02:56.020 --> 03:00.370
Bir numaralı seçeneği kullanarak
yönlendirme tablosunu yazdırabileceğimizi
görebilirsiniz.

42
03:00.400 --> 03:04.000
Yani şu an itibariyle yönlendirme
tablosunda 100 girişimiz var.

43
03:04.270 --> 03:09.670
Ve STP işlemimiz tüm yönlendirme tablosunu
herhangi bir ön alma olmadan tek seferde
yazdırıyor.

44
03:10.270 --> 03:13.900
Böylece yönlendirme tablosunun
yazdırılması olay döngüsü iş parçacığı
tarafından yapılır.

45
03:13.900 --> 03:17.920
Ancak bu görev önleyici olmayan bir
görevdir.

46
03:19.220 --> 03:20.090
Tamam.

47
03:21.550 --> 03:22.270
Oops.

48
03:27.900 --> 03:31.410
Yönlendirme tablosu girişleri zaman
aşımına uğradığı için silinmiştir.

49
03:31.410 --> 03:36.000
Ama her neyse, onları yeniden öğreneceğim.

50
03:36.480 --> 03:43.710
Tamam, diyelim ki yönlendirme tablonuzda
beş adet 50.000 girdi var.

51
03:44.520 --> 03:45.060
Tamam.

52
03:45.060 --> 03:51.960
Dolayısıyla, yönlendirme tablosundaki
50.000 girdinin tamamının

53
03:51.960 --> 03:53.310
görüntülenmesi, diyelim ki beş saniye
sürebilir.

54
03:54.030 --> 03:59.490
Yani bu beş saniye boyunca CPU'nuz sadece
bir işlev tarafından engellenir.

55
04:00.440 --> 04:00.980
Tamam.

56
04:00.980 --> 04:10.760
Bir olay döngüsü kuyruğuna yerleştirilen
başka hiçbir görev beş saniye boyunca CPU
alamaz

57
04:10.760 --> 04:15.410
ve bu nedenle zamanlanmış diğer olay
döngüsü görevleri için CPU açlığına neden
olur.

58
04:16.070 --> 04:24.410
CPU'yu yalnızca mevcut göreviniz
yürütülmesini tamamladığında alırlar,
ancak

59
04:24.410 --> 04:27.410
yönlendirme tablosunu yazdıran mevcut
görev çok zaman alır.

60
04:28.310 --> 04:34.130
İşte bu nedenle şimdi tekerleği yeniden
icat edeceğiz ve

61
04:34.130 --> 04:36.740
tüm yönlendirme tablosunu yazdıran yeni
bir fonksiyon uygulayacağız.

62
04:36.740 --> 04:44.060
Ancak yönlendirme tablosundaki her on
girdiyi yazdırdıktan sonra,

63
04:44.060 --> 04:47.480
işlevimiz veya olay döngüsü görevimiz
kendini yazdıracaktır.

64
04:47.480 --> 04:52.340
Bir olay döngüsü iş parçacığı, on girdi
daha yazdırmak için bunu yeniden
planlayacaktır.

65
04:52.340 --> 04:58.580
Ve bu işlem tüm yönlendirme tablosu
yazdırılana kadar döngü halinde
gerçekleşecektir.

66
04:59.210 --> 05:05.870
Bir sonraki ders videosunda böyle bir
fonksiyonu nasıl uygulayabileceğinizi
göstereceğiz.


