У чым розніца паміж мютексам і семафорам? Што б вы выкарысталі для абароны доступу да павелічэння аперацыі?


адказ 1:

Вызначэнне семафара POSIX - добрая адпраўная кропка:

Семафор - цэлае лік, значэнне якога ніколі не павінна апускацца ніжэй за нуль. На семафоры могуць быць выкананы дзве аперацыі: павелічэнне значэння семафора на адно; і паменшыць значэнне семафара на адно. [1]

У канцэптуальным плане мутэкс - гэта семафор з дадатковым уласцівасцю, якое не павінна перавышаць значэнне.

Аднак гэта дадатковае абмежаванне значна адрознівае прымяненне і выкарыстанне мютэкса ад рэалізацыі і выкарыстання семафару, каб апраўдаць разгляд іх як двух асобных рэчаў.

Зноскі

[1] sem_overview (7): Агляд семафораў POSIX


адказ 2:

Семафор - больш агульны тэрмін.

"Mutex" - гэта абрэвіятура для "семафор для ўзаемнага выключэння". Гэта тып семафару, які дазваляе толькі аднаму выканаўчаму патоку выкарыстоўваць дадзеныя, абароненыя mutex, у любы момант.

Ёсць таксама падлічаныя семафоры, з дапамогай якіх дадзеныя, абароненыя семафарам, могуць быць выкарыстаны ў любы момант да любой максімальнай колькасці тэмы. Аднак гэта значна радзей.

Каб абараніць доступ да прырашчэння, вам, верагодна, патрэбны мютэкс.

Падлічаны семафор карысны для чэрг з фіксаваным памерам. Калі ў чарзе N слотаў, вы можаце прачнуцца з N пісьменнікаў, каб напісаць элементы ў чаргу. Калі ў чарзе ёсць M элементаў, вы можаце ўключыць M тэмы, каб прачытаць іх з чаргі.

Звярніце ўвагу, што ў абодвух выпадках вы, верагодна, маеце альбо мютэкс, альбо некаторыя атамныя зменныя, каб пераканацца, што адначасова змяняецца толькі адна нітка, напрыклад. B. паказальнік / паказальнік для запісу альбо паказальнік / паказальнік для чытання.


адказ 3:

Семафор - больш агульны тэрмін.

"Mutex" - гэта абрэвіятура для "семафор для ўзаемнага выключэння". Гэта тып семафару, які дазваляе толькі аднаму выканаўчаму патоку выкарыстоўваць дадзеныя, абароненыя mutex, у любы момант.

Ёсць таксама падлічаныя семафоры, з дапамогай якіх дадзеныя, абароненыя семафарам, могуць быць выкарыстаны ў любы момант да любой максімальнай колькасці тэмы. Аднак гэта значна радзей.

Каб абараніць доступ да прырашчэння, вам, верагодна, патрэбны мютэкс.

Падлічаны семафор карысны для чэрг з фіксаваным памерам. Калі ў чарзе N слотаў, вы можаце прачнуцца з N пісьменнікаў, каб напісаць элементы ў чаргу. Калі ў чарзе ёсць M элементаў, вы можаце ўключыць M тэмы, каб прачытаць іх з чаргі.

Звярніце ўвагу, што ў абодвух выпадках вы, верагодна, маеце альбо мютэкс, альбо некаторыя атамныя зменныя, каб пераканацца, што адначасова змяняецца толькі адна нітка, напрыклад. B. паказальнік / паказальнік для запісу альбо паказальнік / паказальнік для чытання.