Blockering (dator) - Blocking (computing)
Vid beräkning är en process en instans av ett datorprogram som körs. En process finns alltid i exakt ett processläge . En process som blockeras är en process som väntar på någon händelse , till exempel att en resurs blir tillgänglig eller slutförandet av en I/O -operation .
I ett multitasking -datorsystem måste enskilda uppgifter eller exekveringstrådar dela systemets resurser. Delade resurser inkluderar: CPU, nätverks- och nätverksgränssnitt, minne och disk.
När en uppgift använder en resurs är det i allmänhet inte möjligt eller önskvärt för en annan uppgift att komma åt den. Teknikerna för ömsesidig uteslutning används för att förhindra denna samtidiga användning. När den andra uppgiften blockeras kan den inte köras förrän den första uppgiften har använt den delade resursen.
Programmeringsspråk och schemaläggningsalgoritmer är utformade för att minimera den övergripande effektblockeringen. En process som blockerar kan förhindra att lokala arbetsuppgifter fortskrider. I detta fall ses "blockering" ofta som inte önskat. Sådana arbetsuppgifter kan emellertid i stället ha tilldelats oberoende processer, där stopp av en inte har någon eller liten effekt på de andra, eftersom schemaläggningen kommer att fortsätta. Ett exempel är "blockering på en kanal " där passiv väntan på den andra delen (ingen polling eller spinnslinga) är en del av semantiken i kanaler. Korrekt konstruerad någon av dessa kan användas för att implementera reaktiva system.
Deadlock innebär att processer patologiskt väntar på varandra i en cirkel. Som sådan är det inte direkt associerat med blockering.
När händelsen inträffar som processen väntar på ("är blockerad"), avanceras processen från blockerat tillstånd till ett överhängande, till exempel körbart .
Se även
- Samtidig beräkning
- Databeroende
- Dödläge
- Icke-blockerande algoritm
- Race skick
- Schemaläggning (beräkning)
Referenser