Samtidighet i UNIX hänvisar till operativsystemets förmåga att
hantera flera uppgifter (processer eller trådar)
som verkar köra samtidigt , även om de kanske delar samma CPU. Detta uppnås genom en kombination av mekanismer:
1. Processer:
- Varje process har sitt eget adressutrymme, data och resurser.
- De är oberoende enheter och kommunicerar genom mekanismer som rör, uttag och delat minne.
- Unix -kärnan växlar snabbt mellan processer, vilket ger illusionen av parallell exekvering.
2. Trådar:
- Trådar är lätta processer som delar samma adressutrymme och resurser.
- De erbjuder ett mer effektivt sätt att implementera samtidighet än processer, eftersom de har mindre omkostnader.
- Trådar kan skapas och hanteras med bibliotek som POSIX -trådar (pthreads).
Nyckelkoncept:
- Tidsskivning: CPU tilldelar en liten skiva tid till varje process eller tråd och växlar snabbt mellan dem.
- multiplexering: Kärnan hanterar flera uppgifter genom att sammanfläta deras utförande, vilket ger intrycket av parallellt utförande.
- Synkronisering: Mekanismer som mutexer, semaforer och tillståndsvariabler används för att samordna tillgången till delade resurser mellan samtidiga uppgifter.
- Inter-Process Communication (IPC): Metoder som rör, uttag och delat minne gör det möjligt för processer att utbyta data och synkronisera sin verksamhet.
Fördelar med samtidighet i Unix:
- Förbättrad lyhördhet: Användare kan interagera med systemet medan andra uppgifter körs.
- Ökad genomströmning: Flera uppgifter kan utföras samtidigt och förbättra den totala systemprestanda.
- resursdelning: Flera uppgifter kan dela samma resurser, minska minneskräftan och förbättra effektiviteten.
Exempel på samtidighet i Unix:
- Bakgrundsprocesser: Uppgifter som att skriva ut eller ladda ner filer kan köras i bakgrunden medan användaren interagerar med andra applikationer.
- webbservrar: Flera klientförfrågningar kan hanteras samtidigt genom en enda webbserverprocess.
- databassystem: Samtidiga transaktioner säkerställer att dataintegritet upprätthålls medan flera användare kommer åt databasen.
Obs: Även om samtidighet i UNIX ger illusionen av parallell utförande, kräver sann parallellism flera CPU:er.