Samtidig i UNIX henviser til operativsystemets evne til at
styre flere opgaver (processer eller tråde)
der ser ud til at køre samtidig , selvom de måske deler den samme CPU. Dette opnås gennem en kombination af mekanismer:
1. Processer:
- Hver proces har sit eget adresserum, data og ressourcer.
- De er uafhængige enheder og kommunikerer gennem mekanismer som rør, stikkontakter og delt hukommelse.
- UNIX -kernen skifter hurtigt mellem processer, hvilket giver illusionen om parallel udførelse.
2. Tråde:
- Tråde er lette processer, der deler det samme adresserum og ressourcer.
- De tilbyder en mere effektiv måde at implementere samtidighed end processer, da de har mindre overhead.
- Tråde kan oprettes og styres ved hjælp af biblioteker som POSIX -tråde (PTHREADS).
Nøglekoncepter:
- tidsskæring: CPU'en tildeler en lille udsnit af tid til hver proces eller tråd og skifter hurtigt mellem dem.
- multiplexing: Kernen administrerer flere opgaver ved at sammenblande deres udførelse, hvilket giver indtryk af parallel udførelse.
- Synkronisering: Mekanismer som mutexes, semaforer og tilstandsvariabler bruges til at koordinere adgangen til delte ressourcer blandt samtidige opgaver.
- Inter-Process Communication (IPC): Metoder som rør, stikkontakter og delt hukommelse giver processer mulighed for at udveksle data og synkronisere deres operationer.
Fordele ved samtidighed i Unix:
- Forbedret lydhørhed: Brugere kan interagere med systemet, mens andre opgaver kører.
- Øget gennemstrømning: Flere opgaver kan udføres samtidigt og forbedrer den samlede systemydelse.
- ressourcedeling: Flere opgaver kan dele de samme ressourcer, reducere hukommelsesomkostningen og forbedre effektiviteten.
Eksempler på samtidighed i Unix:
- baggrundsprocesser: Opgaver som udskrivning eller download af filer kan køre i baggrunden, mens brugeren interagerer med andre applikationer.
- webservere: Flere klientanmodninger kan håndteres samtidigt ved en enkelt webserverproces.
- databasesystemer: Samtidige transaktioner sikrer, at dataintegritet opretholdes, mens flere brugere får adgang til databasen.
Bemærk: Mens samtidighed i Unix giver illusionen om parallel udførelse, kræver ægte parallelisme flere CPU'er.