WEBVTT

00:07.890 --> 00:14.580
Şimdi yeniden yazma yasaları kavramını anlamak için, üç iş parçacığının çalıştığı bir program düşünelim.

00:15.900 --> 00:19.320
Bir tanesi, dizinin tüm elemanlarının toplamını hesaplayan bir iş parçacığıdır.

00:19.890 --> 00:23.520
Yani bu, birinci iş parçacığı tarafından yürütülen basit bir programdır.

00:24.300 --> 00:24.690
Tamam.

00:25.020 --> 00:30.930
Gördüğünüz gibi bu konunun amacı bu adi'nin tüm elemanlarının toplamını hesaplamaktır,

00:30.930 --> 00:34.710
metin ve kırmızı renk kritik bölümü temsil eder.

00:36.340 --> 00:36.760
Tamam.

00:37.450 --> 00:43.420
Benzer şekilde, ADI'nin tüm unsurlarının çarpımını hesaplamak için kullanılan bir anlaşma vardır.

00:43.810 --> 00:47.710
Yani bu, bir programın bu kod parçasını çalıştıran Treaty two'dur.

00:48.280 --> 00:54.940
Ve son olarak, amacı ADI'nin her bir elemanının karesini hesaplamak ve üç elemanı güncellemek

00:54.940 --> 00:57.580
olan bir işlem ağacı vardır.

00:58.300 --> 01:06.400
Dolayısıyla, bir girdap olan bir yapıda aynı paylaşılan üzerinde eşzamanlı olarak çalışan üç tuzak 31, 32 ve

01:06.400 --> 01:07.300
33 vardır.

01:07.930 --> 01:16.000
Bu örnekte Eddy, üç iş parçacığı tarafından eşzamanlı olarak erişilen paylaşılan bir veri nesnesidir.

01:17.450 --> 01:24.140
Şimdi, bu üç örnekte de görebileceğiniz gibi, bu iş parçacıklarının her biri normal bir muteksi kilitler.

01:24.560 --> 01:29.480
Tartışmamıza başlamak için, bu özel muteksin günlüğe kaydedildiğini varsayalım.

01:29.480 --> 01:30.710
Normal bir biyobankadır.

01:31.370 --> 01:31.760
Tamam.

01:32.390 --> 01:38.720
Dolayısıyla, bu iş parçacıklarının her biri kendi kritik bölümlerini ancak daha fazla saldırıyı kilitledikten sonra yürütür.

01:38.990 --> 01:42.800
Ve bu tehditlerin her biri tamamlandığında, Murdoch'ların kilidini açarlar.

01:43.460 --> 01:47.090
Şimdi çekici olanın bölgesel bir tehdit olduğunu görebilirsiniz.

01:48.270 --> 01:53.610
Okuyucu ticareti, kritik bir bölümde yalnızca perakende satış işlemi gerçekleştiren ticaret anlamına gelir.

01:54.300 --> 02:01.160
Yani burada değiştirilmeyen kritik bölümde sadece okunuyor ve bu nedenle ticaret anlaşması gerçek

02:01.260 --> 02:02.100
bir tehdit.

02:02.700 --> 02:09.420
Benzer şekilde, trajedi de bölgesel bir tehdittir, oysa D3 tehdidi bir adım hakkı olarak adlandırılır

02:09.420 --> 02:16.620
çünkü T3 tehdidi işlemleri bir alan olan paylaşılan nesnenin değiştirilmesine yol açar.

02:18.110 --> 02:25.760
Böylece, 31 92'nin sağ tarafta kurşun işlemleri gerçekleştirdiğini, sarılı 192'nin birbirini engellemeden izin verilmesi gerektiğini

02:25.760 --> 02:27.170
görebilirsiniz.

02:28.040 --> 02:34.550
Dolayısıyla, 381'in kritik bölüm 32'de yürütülürken aynı zamanda kritik bölümde de yürütülmesine

02:34.550 --> 02:40.850
izin verilmesi gerekmez mi, çünkü bu tehditlerin hiçbiri bir nesneye ateş etmeyi değiştirmez

02:40.850 --> 02:41.660
mi?

02:42.320 --> 02:42.710
Tamam.

02:43.160 --> 02:47.710
Richard Reid operasyonu çelişkili olmayan operasyonlardır.

02:50.030 --> 02:57.170
Dolayısıyla, 31 ve 32'nin kendi kritik bölümlerinde aynı anda veya eşzamanlı olarak yürütülmesine

02:57.170 --> 03:00.050
izin vermek çok mümkün ve yasaldır.

03:01.120 --> 03:03.010
Oysa 333 bir yazardır.

03:03.760 --> 03:10.390
Ve söz konusu sağ olduğunda, üçüncü ve yalnızca bir ve yalnızca bir sağ, belirli bir zamanda kritik

03:10.390 --> 03:12.670
bir bölümde yürütülebilir.

03:14.990 --> 03:21.620
Bu durumda, bu örnekte kritik bölümü korumak için normal sessiz eksenini kullandığımız

03:21.620 --> 03:29.330
durum budur, bu tehditlerden herhangi biri herhangi bir zamanda kritik bölümde yürütülür.

03:30.410 --> 03:30.800
Tamam.

03:31.040 --> 03:37.130
Normal mod erişiminin işlevselliğinin zaten farkındayız, kritik bölüme yalnızca bir tehdidin girmesine

03:37.130 --> 03:41.390
izin verir, ister okuma ister okuma veya yazma tehdidi olsun.

03:42.890 --> 03:50.570
Dolayısıyla bu örnekte, bu iş parçacıklarından yalnızca biri, 31 iş parçacığı verisi, herhangi bir zamanda kritik

03:50.570 --> 03:52.250
bölümde 383 yürütülür.

03:52.760 --> 03:58.610
Normal muteks, okuyucu iş parçacıklarının bile kritik bölüm üzerinde aynı anda çalışmasına izin vermez.

03:59.830 --> 04:03.610
Bu da bir programda performans iyileştirme kapsamı olduğu anlamına gelmektedir.

04:05.950 --> 04:12.820
En azından reattached işleminin kendi kritik bölümlerinde aynı anda yürütülmesine izin verseydik büyük

04:12.820 --> 04:18.700
bir performans artışı olurdu, çünkü bu işlemler gerçekten de çakışmayan işlemlerdir.

04:19.240 --> 04:22.210
İşte bu nedenle yeniden yazma hakkı kilitleri getirilmiştir.

04:22.450 --> 04:28.660
Yeniden yazma kilitleri birden fazla okuyucu tehdidinin aynı anda kritik bölümlere girmesine izin verir.

04:29.260 --> 04:35.680
Pekala, inşaatçıların yalnızca sağa doğru uzanan demiryolu raylarına göre rahatladığını

04:35.690 --> 04:36.660
unutmayın.

04:36.670 --> 04:42.850
Ve tabii ki, kritik bölüme bir ve yalnızca bir binici ipliğinin girmesine izin verilir.

04:43.210 --> 04:50.950
D3 izi kritik bölümde çalışıyorsa ve 383 bir sürücü iş parçacığı olduğundan, 382'nin a'da

04:51.220 --> 04:55.810
engellenmesi gerekir. kritik bölümün noktası.

04:57.620 --> 04:58.070
Tamam.

04:58.610 --> 05:05.540
Kritik bölümde 33 numaralı yazar görev yaptığı sürece kritik bölüme girmelerine izin verilmeyecektir.

05:07.380 --> 05:14.670
Dolayısıyla, aynı programı değiştirirsek ve normal biyo vergileri kullanmak yerine yeniden yazma kilitlerini kullanırsak,

05:14.670 --> 05:16.680
durum tamamen farklı olacaktır.

05:17.490 --> 05:22.890
Şimdi, her şeyden önce, okunan tıkanıklığın gerçek bir lot tarafından temsil edildiğini varsayalım.

05:23.730 --> 05:24.120
Tamam.

05:24.420 --> 05:33.870
Ve iş parçacığı aslında okuma, gülme veya yazma kilidini kullanarak bu doğru kilitlenebilirliği kilitleyebilir.

05:34.440 --> 05:39.690
Yani bu, kilitleyecek iki tür kilit ve doğru kilit olduğu anlamına gelir.

05:40.560 --> 05:40.950
Tamam.

05:42.010 --> 05:49.300
Ancak, bu doğru tıkanıklığı açmak için, bu slaytta gösterdiğim API'nin sembolik olduğu bir API kilidini daha

05:49.300 --> 05:51.190
fazla açmamız gerekiyor.

05:52.590 --> 05:57.750
Yani, bir sonraki ders videosunda tartışacağımız gibi, yalnızca gerçek tehdit API'sini anlamak

05:57.750 --> 05:59.460
amacıyla oradadırlar.

06:00.030 --> 06:07.890
Ancak anlamak amacıyla, okuma hakkı kilidi değişkeninde okuma kilidini elde etmek için kullanılan bir API olduğunu

06:07.890 --> 06:09.090
varsayın.

06:09.450 --> 06:15.510
Ve okunabilir sağ kilit üzerinde sağ kilidi tercih etmek için kullanılan bir API sağ kilidi vardır.

06:17.960 --> 06:24.470
Şimdi, bunu söyledikten sonra, trajedi ve trajedi iki ve trajedi üçün aynı anda

06:25.850 --> 06:33.410
yürütülmesine izin verilirse, trajedi bir sağ kanat blok değişkeninde gridlock elde eder

06:33.410 --> 06:43.310
ve kritik bölüme girer ve 32'yi yürütür, yine sağ blok değişkeninde kırmızı kilidi elde eder ve kritik bölümü yürütmesine

06:43.310 --> 06:45.080
izin verilir.

06:45.830 --> 06:46.250
Tamam.

06:46.730 --> 06:55.330
Denenecek trajedi bloklama hakkı değişkeni üzerinde gerçek kilidi elde etmek olduğunda, aynı bloklama hakkı

06:55.340 --> 07:02.480
değişkeni üzerinde T1 iş parçacığına zaten okuma kilidi verilmiş olmasına rağmen 382'ye kritik

07:02.780 --> 07:06.650
bölüme erişim izni verildiğine dikkat edin.

07:07.910 --> 07:08.290
Tamam.

07:08.600 --> 07:16.010
Yani bu, birden fazla iş parçacığının aynı yazma, okuma günlüğü giyilebilir üzerinde okuma günlüğü verebileceği ve

07:16.010 --> 07:23.240
aynı anda kritik bölümlere girebileceği anlamına gelirken, iş parçacığı üç tane yaptı, biri doğru okuma Kilidi

07:23.240 --> 07:26.210
oranına doğru günlüğü elde etmeye çalışır.

07:26.570 --> 07:28.430
Tam burada engellenmiş.

07:28.940 --> 07:36.540
Neden engellendi Çünkü aynı değişken üzerinde gerçek kilitler sistemdeki bazı iş parçacıklarına verilmiştir.

07:37.220 --> 07:39.140
Bu tehditler T1 ve T2'dir.

07:39.890 --> 07:40.310
Tamam.

07:40.940 --> 07:46.370
Bu da basitçe, uzaktan erişimde normal kilitler kullanıldığında, herhangi bir zamanda yalnızca bir iş parçacığının

07:46.370 --> 07:48.560
işlem yapabileceği anlamına gelir.

07:48.890 --> 07:56.390
Ancak okuma yazma günlüklerini kullanarak, 31 a. ikisi birbiriyle engellenmeden farklı kaydedilmiş görünümler üzerinde

07:56.390 --> 07:58.040
paralel olarak yürütülebilir.

08:01.350 --> 08:07.050
Bu da şu anda sahip olduğunuz büyük performans artışına yol açıyor, birden fazla okuyucu tehdidi aynı

08:07.050 --> 08:09.300
anda paylaşılan kaynağa erişiyor.

08:11.330 --> 08:17.330
Yeniden yazma kilitleri, birden fazla iş parçacığının kritik bölümde çalışmasına izin verir ve bu başlığın sahip olmak istediği

08:17.330 --> 08:19.700
kilit türünü belirtmesine gerek yoktur.

08:20.090 --> 08:21.610
Bu oldukça okunaklı Lock.

08:21.620 --> 08:23.230
Pekala, kilit değişkenine kilitlen.

08:23.790 --> 08:26.240
Bunu zaten FBI'da tartışmıştım.

08:26.460 --> 08:30.440
Lock, blok değişkeni üzerindeki okuma kilidini elde etmek için kullanılır.

08:30.740 --> 08:36.260
Ve FBI sağ günlüğü sadece sağdaki kilidi elde etmek için kullanılır.

08:36.260 --> 08:37.220
Okuma Kilidi okunabilir.

08:38.230 --> 08:38.650
Tamam.

08:38.860 --> 08:43.240
Ve bu tehditlerin her biri kendi kritik bölümünü yürütmeyi bitirir.

08:43.510 --> 08:47.170
Okunabilirliği engelleme hakkının kilidini açmak için bir API çağırmaları gerekir.

08:47.560 --> 08:54.940
Bu nedenle, ister okuma kilidi ister sağ kilit olsun, günlüğümüzün işgal ettiği şey, kilidi açılmış bir API kullanılarak serbest bırakılacaktır.

08:56.860 --> 09:03.070
Yeniden denenen kilitler bu şekilde yürür, sistemin performansını büyük ölçüde artırır ve kaynağa

09:03.070 --> 09:06.550
erişmeye çalışan bir grup iş parçacığı vardır.

09:07.600 --> 09:15.010
İşte retried bloklar bu şekilde yürür ve sistemdeki birden fazla root attract'in kritik bölüme girmesine ve birbirlerini

09:15.010 --> 09:23.260
engellemeden aynı anda kritik bölümde çalışmasına izin verdiğimizde büyük bir performans artışı elde ederiz.

09:24.080 --> 09:30.340
Kritik bölümde yürütüldüğünde sağ çeker, daha sonra başka hiçbir yazarın kritik bölüme girmesine

09:30.340 --> 09:36.580
izin verilmez ve başka hiçbir okuyucu iş parçacığının da kritik bölüme girmesine izin verilmez.

09:37.210 --> 09:37.950
Doğru.

09:38.970 --> 09:39.610
Doğru.

09:39.850 --> 09:41.350
Çelişkili bir işlemdir.

09:43.310 --> 09:52.820
Ve doğru, Reid'in de çelişkili bir Hollywood Operasyonu var, Reid ve Reid çelişkili olmayan operasyonlar.

09:53.420 --> 09:53.840
Tamam.

09:55.550 --> 10:02.750
Dolayısıyla, D3 izi kritik bölümde yürütülüyorsa ve denenecek trajedi aynı yol üzerinde gerçek

10:02.750 --> 10:10.760
bir kilit elde etmekse, aynı hak üzerinde bir okuma kilidi elde etmeye çalışırsa kilitlenmeye çalışılsa

10:10.760 --> 10:16.280
bile ticaret verileri engellenecek ve çekici olacaktır.

10:17.240 --> 10:18.770
Ayrıca engellenecektir.

10:20.250 --> 10:27.900
Ve trajedi kritik bölümünü bitirdiğinde, bu trajedinin her ikisinin de, 192, kritik bölümlere

10:27.900 --> 10:36.150
girmesine izin verilecek ve bu parçaların her ikisi de verilecek, sağda çok okunacak giyilebilir.

10:37.070 --> 10:37.520
Tamam.
