WEBVTT

1
00:04.920 --> 00:08.520
Arkadaşlar, görev önceliklendirmesini yeni
uyguladık.

2
00:08.550 --> 00:09.960
Şimdi bunu tartışalım.

3
00:09.960 --> 00:14.400
Görev önceliklendirmesini uygulayarak
halihazırda ele aldığımız sorunlar
nelerdir?

4
00:16.020 --> 00:22.860
Dolayısıyla, temel olarak üç ana sorunu
ele aldık ve komutları en öncelikli görev
haline getirdik.

5
00:22.860 --> 00:25.230
Kullanıcı yanıt süresi geliştirilmiştir.

6
00:25.710 --> 00:27.330
Bunu tartışacağız.

7
00:27.330 --> 00:34.020
Paket işlemenin en yüksek öncelikli görev
haline getirilmesi, gelen

8
00:34.020 --> 00:35.220
ağ paketinin zamana bağlı bir şekilde
işlenmesine yardımcı olur.

9
00:35.790 --> 00:41.520
Gelen belirli ağ paketlerine zamana bağlı
bir şekilde

10
00:41.520 --> 00:42.450
basmazsanız, bu durum bazı sorunlara yol
açabilir.

11
00:43.680 --> 00:46.680
Ve silme görevlerini düşük öncelikli
görevler haline getirmek.

12
00:46.680 --> 00:49.620
Nesnelerin erken silinmesi ele alınmıştır.

13
00:49.620 --> 00:51.810
Yani bu tamamen ayrı bir sorun.

14
00:51.810 --> 00:55.560
Ve üç numaralı noktayı tartışmak için özel
bir bölümümüz var.

15
00:56.390 --> 00:57.080
Tamam.

16
00:57.290 --> 01:03.530
Bu nedenle, show komutunun en yüksek
periyodik görev haline

17
01:03.530 --> 01:05.660
getirilmesinin kullanıcı yanıt süresini
artırdığı birinci noktayı tartışalım.

18
01:05.660 --> 01:11.660
Öyleyse anlamaya çalışalım, eğer show
komutunu en yüksek öncelikli görev

19
01:11.660 --> 01:16.520
yapmazsanız, olay döngüsü ile çalışan
uygulamanızda ne olacak? Diyelim ki

20
01:17.150 --> 01:26.480
orta öncelikli ve önalımlı olarak çalışan
bir A algoritmanız var.

21
01:27.480 --> 01:28.020
Tamam.

22
01:28.020 --> 01:35.580
A algoritmasının toplam hesaplama süresi
beş saniye olsun ve

23
01:35.580 --> 01:36.300
A algoritması her bir saniyede bir ön
deneme yapsın.

24
01:37.160 --> 01:37.730
Tamam.

25
01:37.730 --> 01:40.190
Yani bunlar A algoritmasının
özellikleridir.

26
01:40.640 --> 01:45.800
Diyelim ki olay döngünüz A algoritmasını
programlıyor ve yürütüyor.

27
01:46.680 --> 01:49.170
Yani A1, A2, a3 hiçbir şey değildir.

28
01:49.170 --> 01:57.090
Ancak bunlar A algoritmasının taksitleri
olup, her ön

29
01:57.090 --> 01:58.080
alımdan sonra olay döngüsü iş parçacığı
tarafından programlanır.

30
01:59.070 --> 01:59.850
Tamam.

31
02:00.030 --> 02:06.030
Diyelim ki olay döngüsü iş parçacığınız A
algoritmasının yürütülmesiyle başlıyor.

32
02:06.690 --> 02:10.320
Yani bir saniye sonra A algoritması
yazdırır.

33
02:10.320 --> 02:14.040
Ancak olay döngüsü kuyruğunda başka bir
görev olmadığı için.

34
02:14.070 --> 02:18.960
Bu nedenle olay döngüsü iş parçacığınız A
algoritmasını yeniden programlar.

35
02:19.690 --> 02:26.410
Bir saniye sonra, olay döngüsü kuyruğunda
başka

36
02:26.410 --> 02:27.130
bir görev olmadığı için A algoritması
öncelenir.

37
02:27.130 --> 02:31.510
Böylece A3 algoritması yine olay döngüsü
iş parçacığımız tarafından zamanlanır.

38
02:32.530 --> 02:33.250
Tamam.

39
02:33.430 --> 02:36.910
Bu noktada şunu söyleyelim.

40
02:38.090 --> 02:40.220
Kullanıcı show komutunu tetikler.

41
02:41.190 --> 02:44.970
Show komutu, kullanıcının bazı veri
yapılarını görüntülemek istediği anlamına
gelir.

42
02:44.970 --> 02:49.350
SDP sürecimizde buna karşılık gelen bir
numaralı seçeneğimiz var.

43
02:50.400 --> 02:52.830
Bu, yönlendirme tablosunun
görüntülenmesidir.

44
02:53.410 --> 03:00.220
Dolayısıyla, bu noktada kullanıcı olay
döngüsü kuyruğunda

45
03:00.220 --> 03:01.270
show komutunu tetikler tetiklemez, show
görevi zamanlanacaktır.

46
03:02.400 --> 03:02.820
Tamam.

47
03:02.820 --> 03:06.270
Böylece olay döngüsü kuyruğuna gösteri
görevi yerleştirilecektir.

48
03:06.810 --> 03:13.350
Ancak bu noktada A üç algoritması olay
döngüsü iş parçacığı tarafından yürütülme
sürecindedir.

49
03:14.880 --> 03:15.660
Tamam.

50
03:15.750 --> 03:18.090
Ve üçüncünün sonunda.

51
03:18.090 --> 03:18.870
İkincisi.

52
03:21.310 --> 03:26.560
A algoritması öncelenir ve olay döngüsü
kuyruğuna geri yerleştirilir.

53
03:27.220 --> 03:33.130
Şimdi, zamanın bu noktasında, olay döngüsü
kuyruğunda, algoritma a

54
03:33.130 --> 03:34.060
görevi ve kısa görev olmak üzere iki görev
vardır.

55
03:34.990 --> 03:35.740
Tamam.

56
03:37.200 --> 03:43.620
Ancak kısa göreve algoritma görevine
kıyasla daha yüksek bir öncelik verilir.

57
03:44.220 --> 03:48.690
Algoritma görevi orta öncelikli, kısa
görev ise yüksek önceliklidir.

58
03:49.320 --> 03:55.500
Dolayısıyla, bu noktada, olay döngünüz
sonunda gösteri görevini seçecek

59
03:55.500 --> 03:57.750
ve sonuç olarak gösteri göreviniz artık
CPU üzerinde yürütülecektir.

60
03:58.580 --> 04:04.970
Ya da başka bir deyişle, artık kullanıcı
show komutunu

61
04:04.970 --> 04:05.900
tetiklemesinin bir sonucu olarak ekranda
çıktı görmeye başlayacaktır.

62
04:07.420 --> 04:08.080
Tamam.

63
04:09.520 --> 04:18.010
Yani bu noktayı 2,5 olarak alırsak, ikinci
kullanıcı

64
04:18.010 --> 04:19.630
0,5 saniye sonra ekranda çıktıyı görmeye
başlayacaktır.

65
04:19.930 --> 04:23.530
Böylece kullanıcı 0,5 saniyelik bir
gecikme yaşayacaktır.

66
04:24.940 --> 04:29.860
Ve show komutunun yürütülmesi
tamamlandığında, diyelim ki show komutu
dört saniye sürüyor.

67
04:30.340 --> 04:30.910
Özür dilerim.

68
04:30.910 --> 04:33.700
Diyelim ki show komutu bir saniye sürüyor.

69
04:33.700 --> 04:37.060
Yani dört saniyenin sonunda show komutu
tamamlanmış olur.

70
04:38.030 --> 04:42.920
Ve şimdi olay döngüsü iş parçacığınız Olay
Döngüsü kuyruğunda mevcut olan bir sonraki
görevi zamanlayacaktır, bu

71
04:42.950 --> 04:50.510
da kalan algoritma görevinden başka bir
şey değildir, bu nedenle algoritma
görevini her zamanki gibi bitirecektir.

72
04:51.180 --> 04:57.810
Sonuç olarak, kullanıcı show komutunu
tetiklediği andan ekranda çıktıyı

73
04:57.810 --> 05:02.970
görmeye başladığı ana kadar 0,5 saniyelik
bir gecikme yaşar.

74
05:03.630 --> 05:07.080
Şimdi, bunun aksine, iki numaralı
senaryoyu tartışalım.

75
05:08.020 --> 05:09.250
Ve iki numaralı senaryo.

76
05:09.250 --> 05:14.200
Kısa göreve orta öncelik verilirken, A
algoritmasına daha yüksek öncelik verilir.

77
05:14.200 --> 05:16.570
Yani, öncelik tersine çevrilmiştir.

78
05:16.900 --> 05:18.790
Şimdi bunu görebilirsiniz.

79
05:19.620 --> 05:25.740
Kullanıcı artık uygulama ile uğraşırken
çok fazla gecikme yaşayacaktır.

80
05:26.340 --> 05:33.540
Diyelim ki her zamanki gibi olay döngüsü
iş parçacığı A algoritmasını yürütüyor.

81
05:34.130 --> 05:37.520
Yani bu sıfırıncı saniye, bu da birinci
saniye.

82
05:37.850 --> 05:40.940
Bu ikinci, ikinci çünkü hiç görev yoktu.

83
05:40.940 --> 05:44.780
Yani olay döngüsü iş parçacığınız
algoritmayı tekrar tekrar zamanlıyordu.

84
05:46.120 --> 05:51.850
Ve diyelim ki 2.5 saniyede kullanıcı her
zamanki gibi show komutunu tetikledi.

85
05:52.000 --> 05:57.310
Dolayısıyla, bu noktada, olay döngüsü
kuyruğuna yerleştirilen tek

86
05:57.310 --> 05:58.450
bir görev vardır, o da kısa görevdir.

87
05:58.660 --> 06:01.930
A algoritması yürütme durumundayken.

88
06:02.720 --> 06:08.720
Üç saniyenin sonunda, olay döngüsü
kuyruğunda iki görev bulunacaktır.

89
06:09.500 --> 06:11.720
Algoritma görevi ve kısa görev.

90
06:12.800 --> 06:13.400
Tamam.

91
06:13.400 --> 06:17.120
Algoritma görevinin yarısı yürütüldü,
ancak hala devam ediyor.

92
06:18.400 --> 06:22.030
Ancak şimdi algoritma görevine daha yüksek
öncelik verilmektedir.

93
06:22.030 --> 06:27.190
Bu nedenle, olay döngüsü iş parçacığınız
CPU'da programlanacak A algoritması ile
devam edecektir.

94
06:28.080 --> 06:28.740
Tamam.

95
06:29.370 --> 06:36.180
A4 ve A5 olan A algoritmasının kalan kısmı
ve yalnızca A algoritması yürütülmesini
tamamladığında,

96
06:36.180 --> 06:42.900
yalnızca kısa görev olay döngüsü iş
parçacığı tarafından CPU'yu tahsis etme
şansına sahip olacaktır.

97
06:43.110 --> 06:44.520
Yani, bunun sonucu olarak.

98
06:44.550 --> 06:46.950
İkinci senaryoda, görebilirsiniz.

99
06:47.190 --> 06:53.940
Böylece kısa görevin CPU'yu yalnızca
beşinci saniyenin sonunda tahsis edeceğini
görebilirsiniz.

100
06:54.450 --> 07:01.830
Yani kullanıcı show komutunu 2,5 saniyede
tetikledi, ancak

101
07:01.830 --> 07:03.090
show görevine CPU beş saniyenin sonunda
tahsis edildi.

102
07:03.090 --> 07:07.890
Yani 2,5 saniyelik bir gecikme veya
gecikme diyebilirsiniz.

103
07:08.730 --> 07:09.210
Tamam.

104
07:09.210 --> 07:11.880
Ve bu oldukça kötü.

105
07:12.390 --> 07:18.390
Eğer kullanıcı uygulama ile etkileşime
geçerken 2,5

106
07:18.390 --> 07:19.410
saniyelik bir gecikme yaşarsa, kullanıcı
rahatsız olacaktır.

107
07:19.860 --> 07:21.810
Peki nedenini anlayabiliyor musunuz? Olay
döngüsünde zamanlama söz

108
07:21.810 --> 07:27.990
konusu olduğunda, kullanıcı deneyimiyle
ilgilenen herhangi bir

109
07:27.990 --> 07:30.600
göreve en yüksek önceliğin verilmesi
oldukça önemlidir.


