“Atšķirība starp procesu un pavedienu” ir viens no tehnisko interviju plaši uzdotajiem jautājumiem. Abi procesi un pavedieni ir saistīti viens ar otru un ļoti līdzīgi, tāpēc rada neskaidrības, lai saprastu atšķirības starp tiem. Process un pavediens ir neatkarīga izpildes secība, taču abi ir diferencēti tādā veidā, ka procesi tiek izpildīti dažādās atmiņas telpās, bet viena un tā paša procesa pavedieni tiek izpildīti koplietojamā atmiņas telpā.
Šajā tēmā mēs sapratīsim īsu procesu un pavedienu ievadu un to, kādas ir citas atšķirības starp tiem.
Kas ir process?
Process ir programmas gadījums, kas tiek izpildīts. Kad mēs palaižam programmu, tā netiek tieši izpildīta. Ir nepieciešams zināms laiks, lai izpildītu visas programmas izpildei nepieciešamās darbības, un šo izpildes darbību veikšana ir pazīstama kā process.
Process var izveidot citus procesus, lai vienlaikus veiktu vairākus uzdevumus; izveidotie procesi ir pazīstami kā klons vai bērna process , un galvenais process ir pazīstams kā vecāku process . Katram procesam ir sava atmiņas vieta un tas netiek koplietots ar citiem procesiem. To sauc par aktīvo entītiju. Tipisks process atmiņā saglabājas tālāk norādītajā formā.
Process operētājsistēmā var palikt jebkurā no šiem stāvokļiem:
Kā procesi darbojas?
Kad mēs sākam izpildīt programmu, procesors sāk to apstrādāt. Tas veic šādas darbības:
- Pirmkārt, programma pēc tulkošanas tiek ielādēta datora atmiņā binārā kodā.
- Programmai ir nepieciešama atmiņa un citi OS resursi, lai to palaistu. Resursus, piemēram, reģistrus, programmu skaitītāju un steku, un šos resursus nodrošina OS.
- Reģistrā var būt instrukcija, krātuves adrese vai citi procesam nepieciešamie dati.
- Programmu skaitītājs saglabā programmu secības izsekošanu.
- Kaudzē ir informācija par datorprogrammas aktīvajām apakšprogrammām.
- Programmai var būt dažādi tās gadījumi, un katrs aktīvās programmas gadījums tiek saukts par atsevišķu procesu.
Procesa iezīmes
- Katru reizi, kad mēs veidojam procesu, mums ir jāizveido atsevišķs sistēmas izsaukums katram procesam uz OS. The dakša () funkcija rada procesu.
- Katrs process pastāv savā adresē vai atmiņas telpā.
- Katrs process ir neatkarīgs, un OS to uzskata par izolētu procesu.
- Procesiem ir nepieciešams IPC (Inter-process Communication), lai tie varētu sazināties savā starpā.
- Pareiza sinhronizācija starp procesiem nav nepieciešama.
Kas ir pavediens?
Vītne ir procesa apakškopa, un to sauc arī par vieglo procesu. Procesam var būt vairāk nekā viens pavediens, un plānotājs šos pavedienus pārvalda neatkarīgi. Visi viena procesa pavedieni ir savstarpēji saistīti. Pavedieniem ir kāda izplatīta informācija, piemēram, datu segments, koda segments, faili utt., kas tiek koplietots viņu līdzīgo pavedieniem. Bet satur savus reģistrus, kaudzi un skaitītāju.
Kā darbojas pavediens?
Kā mēs jau apspriedām, pavediens ir apakšprocess vai izpildes vienība procesā. Process var ietvert no viena pavediena līdz vairākiem pavedieniem. Vītne darbojas šādi:
- Kad process sākas, OS piešķir tam atmiņu un resursus. Katrs procesa pavediens koplieto tikai šī procesa atmiņu un resursus.
- Pavedienus galvenokārt izmanto, lai uzlabotu lietojumprogrammas apstrādi. Patiesībā vienlaikus tiek izpildīts tikai viens pavediens, taču ātrā konteksta pārslēgšanās starp pavedieniem rada ilūziju, ka pavedieni darbojas paralēli.
- Ja procesā tiek izpildīts viens pavediens, to sauc par vienvītnes Un, ja vienlaikus tiek izpildīti vairāki pavedieni, to sauc par daudzpavedienu.
Vītņu veidi
Ir divu veidu pavedieni, kas ir:
1. Lietotāja līmeņa pavediens
Kā norāda nosaukums, lietotāja līmeņa pavedienus pārvalda tikai lietotāji, un kodolam nav tās informācijas.
Tie ir ātrāki, viegli izveidojami un pārvaldāmi.
Kodols visus šos pavedienus uztver kā vienu procesu un apstrādā tikai kā vienu procesu.
Lietotāja līmeņa pavedienus īsteno lietotāja līmeņa bibliotēkas, nevis sistēmas izsaukumi.
2. Kodola līmeņa pavediens
Kodola līmeņa pavedienus apstrādā operētājsistēma un pārvalda tās kodols. Šie pavedieni ir lēnāki nekā lietotāja līmeņa pavedieni, jo konteksta informāciju pārvalda kodols. Lai izveidotu un ieviestu kodola līmeņa pavedienu, mums ir jāveic sistēmas izsaukums.
Vītnes iezīmes
- Pavedieni procesa ietvaros koplieto datus, atmiņu, resursus, failus utt. ar līdzvērtīgiem pavedieniem.
- Viens sistēmas zvans spēj izveidot vairāk nekā vienu pavedienu.
- Katram pavedienam ir sava kaudze un reģistrs.
- Pavedieni var tieši sazināties viens ar otru, jo tiem ir viena adrešu telpa.
- Pavedieni ir jāsinhronizē, lai izvairītos no neparedzētiem scenārijiem.
Galvenās atšķirības starp procesu un pavedienu
- Process ir neatkarīgs un neietilpst citā procesā, turpretim visi pavedieni ir loģiski ietverti procesā.
- Procesi ir ļoti svērti, savukārt pavedieni ir viegli svērti.
- Process var pastāvēt atsevišķi, jo tajā ir sava atmiņa un citi resursi, savukārt pavedienam nevar būt sava individuāla eksistence.
- Pareiza sinhronizācija starp procesiem nav nepieciešama. Turpretim pavedieni ir jāsinhronizē, lai izvairītos no neparedzētiem scenārijiem.
- Procesi var sazināties viens ar otru, izmantojot tikai starpprocesu saziņu; turpretim pavedieni var tieši sazināties savā starpā, jo tiem ir viena adrešu telpa.
Atšķirību tabula starp procesu un pavedienu
Process | Pavediens |
---|---|
Process ir programmas gadījums, kas tiek izpildīts vai apstrādāts. | Pavediens ir procesa segments vai viegls process, ko plānotājs pārvalda neatkarīgi. |
Procesi ir neatkarīgi viens no otra, un tāpēc tiem nav kopīga atmiņa vai citi resursi. | Pavedieni ir savstarpēji atkarīgi un tiem ir kopīga atmiņa. |
Operētājsistēma katru procesu uzskata par jaunu procesu. | Operētājsistēma visus lietotāja līmeņa pavedienus uztver kā vienu procesu. |
Ja vienu procesu bloķē operētājsistēma, tad otrs process var turpināt izpildi. | Ja kāds lietotāja līmeņa pavediens tiek bloķēts, tiek bloķēti arī visi tā līdzīgie pavedieni, jo OS tos visus uztver kā vienu procesu. |
Konteksta pārslēgšana starp diviem procesiem prasa daudz laika, jo tie ir smagi, salīdzinot ar pavedienu. | Konteksta pārslēgšanās starp pavedieniem ir ātra, jo tie ir ļoti viegli. |
Katra procesa datu segments un koda segments ir neatkarīgi no otra. | Pavedieni koplieto datu segmentu un koda segmentu ar līdzīgiem pavedieniem; tāpēc arī citiem pavedieniem tie ir vienādi. |
Operētājsistēmai ir nepieciešams vairāk laika, lai pārtrauktu procesu. | Pavedienus var pārtraukt ļoti īsā laikā. |
Jauna procesa izveide prasa vairāk laika, jo katrs jauns process aizņem visus resursus. | Pavediena izveidei nepieciešams mazāk laika. |