Resursstrid

Inom datavetenskap är resurskonflikt en konflikt om åtkomst till en delad resurs som slumpmässigt åtkomstminne , disklagring , cacheminne , interna bussar eller externa nätverksenheter. En resurs som upplever pågående konflikter kan beskrivas som övertecknad .

Att lösa problem med resurskonflikter är en av operativsystemens grundläggande funktioner . Olika lågnivåmekanismer kan användas för att underlätta detta, inklusive lås , semaforer , mutexer och köer . De andra teknikerna som kan tillämpas av operativsystemen inkluderar intelligent schemaläggning, beslut om applikationsmappning och sidfärgning .

Tillgången till resurser regleras också ibland genom köbildning; i fallet med beräkningstid på en CPU kallas den styrande algoritmen för uppgiftskön en schemaläggare .

Underlåtenhet att lösa problem med resurskonflikter kan resultera i ett antal problem, inklusive dödläge , livelock och thrashing .

Resurskonflikt uppstår när flera processer försöker använda samma delade resurs. Tillgång till minnesområden styrs ofta av semaforer, vilket möjliggör en patologisk situation som kallas dödläge, när olika trådar eller processer försöker allokera resurser som redan tilldelats av varandra. Ett dödläge leder vanligtvis till att ett program helt eller delvis slutar svara.

Under de senaste åren har forskningen om påståendet fokuserats mer på resurserna i minneshierarkin, t.ex. cacher på sista nivån, frontsidebuss, anslutning till minnesuttag. [ citat behövs ]

Se även

  1. ^   Knauerhase, Rob (2008). "Att använda OS-observationer för att förbättra prestanda i flerkärniga system". IEEE mikro . 28 (3): 54–66. doi : 10.1109/mm.2008.48 . S2CID 9202433 .
  2. ^    Zhang, Xiao (2009). "Mot praktisk sidfärgsbaserad flerkärnig cachehantering". EuroSys : 89. doi : 10.1145/1519065.1519076 . ISBN 9781605584829 . S2CID 5769992 .