Cov Txheej Txheem Ua Haujlwm: Peb Daim Ntawv Yooj Yim. Part 2: Abstraction: Txheej txheem (txhais lus)

Introduction to Operating Systems

Nyob zoo, Habr! Kuv xav nthuav qhia rau koj mloog ib co kab lus-kev txhais lus ntawm ib cov ntaub ntawv uas nthuav hauv kuv lub tswv yim - OSTEP. Cov ntaub ntawv no soj ntsuam heev heev ua hauj lwm ntawm unix-zoo li operating systems, uas yog, ua hauj lwm nrog cov txheej txheem, ntau yam teem sij hawm, nco thiab lwm yam zoo sib xws Cheebtsam uas tsim ib tug niaj hnub OS. Koj tuaj yeem pom tus thawj ntawm tag nrho cov ntaub ntawv ntawm no S, SѓS,. Thov nco ntsoov tias qhov kev txhais lus tau ua tsis muaj kev tshaj lij (tseem dawb), tab sis kuv vam tias kuv khaws lub ntsiab lus dav dav.

Lab ua hauj lwm rau cov ncauj lus no tuaj yeem pom ntawm no:

Lwm qhov chaw:

Koj tuaj yeem tshawb xyuas kuv channel ntawm xov tooj =)

Cia peb saib cov ntsiab lus tseem ceeb tshaj plaws uas OS muab rau cov neeg siv: cov txheej txheem. Lub ntsiab txhais ntawm cov txheej txheem yog heev yooj yim - nws yog khiav program. Qhov kev pab cuam nws tus kheej yog ib tug lifeless yam nyob rau hauv lub disk - nws yog ib tug txheej ntawm cov lus qhia thiab tejzaum nws muaj ib co zoo li qub cov ntaub ntawv tos kom launched. Nws yog OS uas siv cov bytes thiab khiav lawv, hloov cov kev pab cuam rau hauv ib yam dab tsi pab tau.
Feem ntau, cov neeg siv xav khiav ntau dua ib qho kev pab cuam tib lub sijhawm, piv txwv li, koj tuaj yeem khiav browser, game, media player, text editor, thiab lwm yam ntawm koj lub laptop. Qhov tseeb, ib qho kev sib raug zoo tuaj yeem khiav kaum lossis ntau pua txheej txheem ib txhij. Qhov tseeb no ua rau lub kaw lus yooj yim siv, koj tsis tas yuav txhawj xeeb txog seb CPU puas pub dawb, koj tsuas yog khiav cov haujlwm.

Qhov no tsa qhov teeb meem: yuav ua li cas muab qhov illusion ntawm ntau CPUs? Yuav ua li cas OS tuaj yeem tsim qhov illusion ntawm yuav luag tag nrho ntawm CPUs, txawm tias koj tsuas muaj ib lub cev CPU?

Lub OS tsim qhov illusion no los ntawm CPU virtualization. Los ntawm kev pib ib txheej txheem, tom qab ntawd nres nws, pib lwm txoj kev, thiab lwm yam, OS tuaj yeem tswj qhov kev tsis pom tseeb tias muaj ntau lub CPU virtual, thaum qhov tseeb yuav muaj ib lossis ntau lub cev processors. Cov txheej txheem no hu ua faib cov peev txheej CPU los ntawm lub sijhawm. Cov txheej txheem no tso cai rau cov neeg siv los khiav ntau cov txheej txheem concurrent raws li lawv xav tau. Tus nqi ntawm qhov kev daws teeb meem no yog kev ua haujlwm - txij li yog tias CPU tau sib koom los ntawm ntau cov txheej txheem, txhua txoj kev yuav ua tiav qeeb dua.
Txhawm rau siv CPU virtualization, thiab tshwj xeeb tshaj yog ua kom zoo, OS xav tau ob qho tib si qib qis thiab qib siab. Kev them nyiaj yug qis yog hu ua mechanisms yog cov txheej txheem qis lossis cov txheej txheem uas siv qhov yuav tsum tau ua ntawm kev ua haujlwm. Ib qho piv txwv ntawm kev ua haujlwm zoo li no yog kev hloov pauv, uas ua rau OS muaj peev xwm nres ib qho kev pab cuam thiab khiav lwm qhov kev pab cuam ntawm lub processor. Qhov kev faib lub sij hawm no yog siv nyob rau hauv tag nrho cov niaj hnub operating systems.
Nyob rau sab saum toj ntawm cov txheej txheem no yog qee qhov laj thawj tsim rau hauv OS, nyob rau hauv daim ntawv ntawm "txoj cai". txoj cai yog ib qho kev txiav txim siab algorithm rau lub operating system. Xws li cov cai, piv txwv li, txiav txim siab seb qhov kev pab cuam twg yuav tsum tau pib (los ntawm cov npe ntawm cov lus txib) ua ntej. Yog li, piv txwv li, qhov teeb meem no yuav daws tau los ntawm txoj cai hu ua Scheduling txoj cai (Schedule Policy) thiab thaum xaiv ib qho kev daws teeb meem, nws yuav raug coj los ntawm cov ntaub ntawv xws li: keeb kwm pib (qhov kev pab cuam tau pib ntev tshaj plaws nyob rau hauv feeb kawg), dab tsi thauj cov txheej txheem no nqa (cov hom phiaj twg tau pib), kev ntsuas kev ua haujlwm (txawm tias lub kaw lus yog optimized rau kev sib tham sib tham los yog rau throughput) thiab hais txog.

Abstraction: txheej txheem

Lub abstraction ntawm ib tug khiav qhov kev pab cuam ua los ntawm lub operating system yog dab tsi peb hu txheej txheem. Raws li tau hais ua ntej, tus txheej txheem tsuas yog ib qho kev khiav haujlwm, ntawm txhua lub sijhawm tam sim. Ib qhov kev pab cuam uas peb tuaj yeem tau txais cov ntaub ntawv los ntawm ntau qhov kev pabcuam uas qhov kev pabcuam no nkag lossis cuam tshuam thaum nws ua tiav.
Txhawm rau nkag siab txog cov txheej txheem ntawm cov txheej txheem, koj yuav tsum nkag siab txog cov xeev ntawm lub system: qhov kev pab cuam tuaj yeem nyeem lossis hloov pauv thaum lub sijhawm ua haujlwm. Nyob rau txhua lub sijhawm, koj yuav tsum nkag siab txog cov ntsiab lus ntawm qhov system tseem ceeb rau kev ua tiav ntawm qhov program.
Ib qho ntawm cov ntsiab lus pom tseeb ntawm qhov system hais tias cov txheej txheem suav nrog yog kev nco. Cov lus qhia nyob rau hauv lub cim xeeb. Cov ntaub ntawv uas qhov kev zov me nyuam nyeem lossis sau kuj nyob hauv lub cim xeeb. Yog li, lub cim xeeb uas tus txheej txheem tuaj yeem nyob (hu ua chaw nyob) yog ib feem ntawm cov txheej txheem.
Ib feem ntawm lub xeev system yog cov npe. Ntau cov lus qhia yog tsom rau kev hloov pauv tus nqi ntawm cov ntawv sau npe lossis nyeem lawv cov nqi, thiab yog li cov ntawv sau npe kuj dhau los ua ib feem tseem ceeb ntawm kev ua haujlwm ntawm cov txheej txheem.
Nws yuav tsum raug sau tseg tias lub xeev lub tshuab kuj tsim los ntawm qee qhov tshwj xeeb sau npe. Piv txwv li, IP - qhia pointer - tus taw tes rau cov lus qhia uas qhov kev zov me nyuam tab tom ua tam sim no. Kuj muaj pawg pointer thiab muaj feem rau nws frame pointer, uas yog siv los tswj: kev ua haujlwm tsis ua haujlwm, qhov hloov pauv hauv zos thiab chaw nyob xa rov qab.
Thaum kawg, cov kev pab cuam feem ntau nkag ROM (nyeem-tsuas nco). Cov ntaub ntawv "I/O" (input / output) yuav tsum muaj cov npe ntawm cov ntaub ntawv tam sim no qhib los ntawm cov txheej txheem.

Txheej txheem API

Txhawm rau txhim kho peb txoj kev nkag siab ntawm cov txheej txheem ua haujlwm li cas, cia peb kawm cov piv txwv ntawm kev hu xov tooj uas yuav tsum tau muab tso rau hauv ib qho kev sib txuas ua haujlwm. Cov APIs no muaj nyob rau hauv ib daim ntawv lossis lwm qhov ntawm ib qho OS.

tsim (creation): Lub OS yuav tsum muaj qee txoj hauv kev uas tso cai rau koj los tsim cov txheej txheem tshiab. Thaum koj nkag mus rau qhov hais kom ua rau hauv lub davhlau ya nyob twg lossis tso ib daim ntawv thov los ntawm ob-nias ntawm lub cim, hu xov tooj xa mus rau OS los tsim cov txheej txheem tshiab thiab tom qab ntawd tso tawm qhov program teev tseg.
Rho tawm: Txij li thaum muaj qhov cuam tshuam rau kev tsim cov txheej txheem, OS yuav tsum tau muab lub peev xwm los yuam kom tshem tawm cov txheej txheem. Feem ntau cov kev pab cuam yuav pib thiab xaus ntawm lawv tus kheej thaum lawv khiav. Txwv tsis pub tus neeg siv yuav xav tua lawv thiab yog li ib qho kev cuam tshuam los nres cov txheej txheem yuav pab tau.
tos (tos): Qee lub sij hawm nws tseem ceeb heev uas yuav tsum tau tos kom tiav cov txheej txheem, yog li qee qhov kev sib cuam tshuam tau muab los ua kom muaj peev xwm tos.
Tswj lwm yam (kev tswj ntau yam): Ntxiv rau kev tua thiab tos cov txheej txheem, kuj tseem muaj lwm yam kev tswj hwm ntau yam. Piv txwv li, feem ntau cov kev khiav hauj lwm systems muab lub peev xwm los khov ib tug txheej txheem (tso tseg nws execution rau ib tug tej lub sij hawm) thiab ces rov pib dua (mus ua hauj lwm)
raws li txoj cai (xeev): Muaj ntau qhov sib cuam tshuam kom tau txais qee cov ntaub ntawv hais txog cov xwm txheej ntawm cov txheej txheem, xws li ntev npaum li cas nws tau ua haujlwm lossis lub xeev nws tam sim no nyob rau hauv.

Cov Txheej Txheem Ua Haujlwm: Peb Daim Ntawv Yooj Yim. Part 2: Abstraction: Txheej txheem (txhais lus)

Txheej Txheem Tsim: Paub meej

Ib qho ntawm qhov nthuav yog yuav ua li cas raws nraim cov kev pab cuam hloov mus rau hauv cov txheej txheem. Tshwj xeeb tshaj yog li cas OS khaws thiab khiav qhov kev pab cuam. Yuav ua li cas raws nraim cov txheej txheem yog tsim.
Ua ntej tshaj plaws, OS yuav tsum thauj cov program code thiab cov ntaub ntawv zoo li qub rau hauv lub cim xeeb (rau hauv cov txheej txheem chaw nyob). Cov kev pab cuam feem ntau yog nyob rau ntawm disk lossis solid-state drive hauv qee hom kev ua tiav. Yog li, cov txheej txheem ntawm kev thauj khoom thiab cov ntaub ntawv zoo li qub rau hauv lub cim xeeb xav kom OS tuaj yeem nyeem cov bytes ntawm disk thiab muab tso rau hauv qhov chaw nco.

Hauv kev ua haujlwm thaum ntxov, cov txheej txheem thauj khoom tau ua tiav txaus siab, uas txhais tau hais tias tag nrho cov lej tau thauj mus rau hauv lub cim xeeb ua ntej qhov kev pab cuam tau pib. Niaj hnub nimno operating systems ua qhov no lazily, uas yog, loading pieces ntawm code los yog cov ntaub ntawv tsuas yog thaum qhov kev pab cuam xav kom lawv thaum lub sij hawm nws tua.

Thaum cov cai thiab cov ntaub ntawv zoo li qub tau thauj mus rau hauv OS nco, muaj ob peb yam ntxiv uas yuav tsum tau ua ua ntej cov txheej txheem tuaj yeem khiav. Qee qhov cim xeeb yuav tsum tau faib rau pawg. Cov kev pab cuam siv cov pawg rau cov hloov pauv hauv zos, cov haujlwm tsis ua haujlwm, thiab rov qab chaw nyob. Lub OS faib lub cim xeeb no thiab muab rau cov txheej txheem. Cov pawg kuj tuaj yeem faib nrog qee qhov kev sib cav, tshwj xeeb tshaj yog nws sau cov tsis muaj qhov tseem ceeb () muaj nuj nqi, piv txwv li nrog cov array ntawm argc thiab argv.

Lub operating system kuj tseem yuav faib qee lub cim xeeb rau hauv qhov program heap. Lub heap yog siv los ntawm cov kev pab cuam kom meej meej thov dynamically faib cov ntaub ntawv. Cov kev pab cuam thov qhov chaw no los ntawm kev hu rau lub luag haujlwm malloc () thiab tshem nws kom meej meej los ntawm kev hu rau lub luag haujlwm dawb (). Lub heap yog xav tau rau cov ntaub ntawv cov qauv xws li cov ntawv txuas, cov rooj hash, ntoo thiab lwm yam. Thaum xub thawj, ib qho me me ntawm lub cim xeeb tau faib rau hauv heap, tab sis dhau sij hawm, raws li qhov kev zov me nyuam khiav, lub heap tuaj yeem thov ntau lub cim xeeb los ntawm lub tsev qiv ntawv API hu rau malloc(). Lub operating system koom nrog hauv cov txheej txheem ntawm kev faib ntau lub cim xeeb los pab kom txaus siab rau cov kev hu no.

Lub operating system tseem yuav ua cov haujlwm pib, tshwj xeeb yog cov uas cuam tshuam nrog I / O. Piv txwv li, ntawm UNIX systems, txhua tus txheej txheem los ntawm lub neej ntawd muaj 3 qhib cov ntaub ntawv piav qhia, rau cov qauv tswv yim, tso tawm, thiab yuam kev. Cov haujlwm no tso cai rau cov kev pab cuam nyeem cov tswv yim los ntawm lub davhlau ya nyob twg nrog rau cov ntaub ntawv tso rau ntawm qhov screen.

Yog li, los ntawm kev thauj khoom code thiab cov ntaub ntawv zoo li qub rau hauv lub cim xeeb, tsim thiab pib cov pawg, thiab ua lwm yam haujlwm ntsig txog kev ua haujlwm I / O, OS npaj theem rau cov txheej txheem los ua. Thaum kawg, muaj ib txoj haujlwm kawg nkaus: khiav qhov kev pab cuam los ntawm nws qhov chaw nkag, hu ua main() function. Los ntawm kev ua tiav lub ntsiab () ua haujlwm, OS hloov CPU tswj mus rau cov txheej txheem tsim tshiab, yog li qhov kev zov me nyuam pib ua.

Txheej txheem xeev

Tam sim no peb muaj qee qhov kev nkag siab ntawm tus txheej txheem yog dab tsi thiab nws tsim li cas, cia peb sau cov txheej txheem hais tias nws tuaj yeem ua tau. Hauv nws daim ntawv yooj yim tshaj plaws, cov txheej txheem tuaj yeem ua nyob rau hauv ib qho ntawm cov xeev no:
khiav. Thaum khiav, cov txheej txheem khiav ntawm lub processor. Qhov no txhais tau hais tias cov lus qhia raug ua tiav.
npaj. Nyob rau hauv lub xeev npaj txhij, cov txheej txheem yog npaj txhij mus khiav, tab sis rau ib co yog vim li cas lub OS tsis ua nws nyob rau hauv lub sij hawm.
Thaiv. Hauv lub xeev thaiv, txheej txheem ua qee yam haujlwm uas tiv thaiv nws los ntawm kev npaj ua tiav kom txog thaum qee qhov xwm txheej tshwm sim. Ib qho piv txwv zoo yog thaum tus txheej txheem pib ua haujlwm IO, nws yuav raug thaiv kom qee cov txheej txheem tuaj yeem siv lub processor.

Cov Txheej Txheem Ua Haujlwm: Peb Daim Ntawv Yooj Yim. Part 2: Abstraction: Txheej txheem (txhais lus)

Koj tuaj yeem xav txog cov xeev no hauv daim duab. Raws li peb tuaj yeem pom hauv daim duab, lub xeev txheej txheem tuaj yeem hloov pauv ntawm RUNNING thiab READY ntawm kev txiav txim siab ntawm OS. Thaum lub xeev ntawm cov txheej txheem hloov ntawm READY mus rau RUNNING, nws txhais tau tias cov txheej txheem tau teem tseg. Nyob rau hauv lub opposite kev taw qhia - tshem tawm ntawm lub layout. Nyob rau lub sijhawm thaum tus txheej txheem dhau los ua BLOCKED, piv txwv li, kuv pib ua haujlwm IO, OS yuav khaws cia rau hauv lub xeev no kom txog thaum qee qhov xwm txheej tshwm sim, piv txwv li ua tiav IO. lub sijhawm no hloov mus rau READY lub xeev thiab tejzaum nws mus rau lub xeev RUNNING yog tias OS txiav txim siab li ntawd.
Cia peb saib ib qho piv txwv ntawm yuav ua li cas ob txoj kev txav mus los ntawm cov xeev no. Yuav pib nrog, cia peb xav txog tias ob txoj haujlwm tau ua haujlwm, thiab txhua tus tsuas yog siv CPU xwb. Hauv qhov no, lawv lub xeev yuav zoo li no.

Cov Txheej Txheem Ua Haujlwm: Peb Daim Ntawv Yooj Yim. Part 2: Abstraction: Txheej txheem (txhais lus)

Hauv qhov piv txwv hauv qab no, thawj cov txheej txheem, tom qab qee lub sijhawm khiav, thov IO thiab nkag mus rau hauv lub xeev BLOCKED, tso cai rau lwm txoj haujlwm khiav (Daim duab 1.4). Lub OS pom tias txheej txheem 0 tsis siv CPU thiab pib txheej txheem 1. Thaum cov txheej txheem 1 tab tom khiav, IO ua tiav thiab cov txheej txheem ntawm txheej txheem 0 hloov mus rau READY. Thaum kawg, txheej txheem 1 tau ua tiav, thiab thaum ua tiav, txheej txheem 0 pib, ua tiav, thiab ua tiav nws txoj haujlwm.

Cov Txheej Txheem Ua Haujlwm: Peb Daim Ntawv Yooj Yim. Part 2: Abstraction: Txheej txheem (txhais lus)

Cov ntaub ntawv qauv

Lub OS nws tus kheej yog ib qho kev pab cuam, thiab ib yam li lwm yam kev pab cuam, nws muaj qee cov ntaub ntawv tseem ceeb uas ua raws cov ntaub ntawv muaj feem cuam tshuam. Txhawm rau taug qab lub xeev ntawm txhua tus txheej txheem, OS yuav txhawb nqa qee qhov daim ntawv teev cov txheej txheem rau tag nrho cov txheej txheem hauv lub xeev READY thiab qee cov ntaub ntawv ntxiv los taug qab cov txheej txheem uas tab tom khiav tam sim no. Tsis tas li ntawd, OS yuav tsum saib xyuas cov txheej txheem thaiv. Tom qab IO ua tiav, OS yuav tsum tsa cov txheej txheem xav tau thiab muab tso rau hauv lub xeev npaj khiav.

Piv txwv li, OS yuav tsum khaws cia lub xeev ntawm lub processor sau npe. Thaum lub sijhawm cov txheej txheem nres, lub xeev cov ntawv sau npe khaws cia hauv qhov chaw nyob ntawm cov txheej txheem, thiab thaum lub sijhawm nws txoj haujlwm txuas ntxiv, cov txiaj ntsig ntawm cov npe tau rov qab los thiab yog li txuas ntxiv kev ua tiav ntawm cov txheej txheem no.

Ntxiv rau kev npaj, thaiv, khiav xeev, muaj qee lub xeev. Qee zaum, thaum lub sijhawm tsim, cov txheej txheem yuav nyob hauv INIT lub xeev. Thaum kawg, cov txheej txheem tuaj yeem muab tso rau hauv lub xeev FINAL thaum nws tau ua tiav lawm, tab sis nws cov ntaub ntawv tseem tsis tau raug tshem tawm. Ntawm UNIX systems lub xeev no hu ua txheej txheem zombie. Lub xeev no muaj txiaj ntsig zoo rau cov xwm txheej uas cov txheej txheem niam txiv xav paub txog tus lej xa rov qab ntawm tus menyuam, piv txwv li, feem ntau 0 teeb liab ua tiav thiab 1 qhov yuam kev, tab sis cov programmers tuaj yeem muab cov lej tso tawm ntxiv los teeb tsa cov teeb meem sib txawv. Thaum cov txheej txheem niam txiv xaus, nws ua rau qhov kev hu xovtooj zaum kawg, xws li tos(), tos cov txheej txheem menyuam yaus txiav thiab teeb liab rau OS tias nws tuaj yeem tshem tawm cov ntaub ntawv cuam tshuam nrog cov txheej txheem raug txiav.

Cov Txheej Txheem Ua Haujlwm: Peb Daim Ntawv Yooj Yim. Part 2: Abstraction: Txheej txheem (txhais lus)

Cov ntsiab lus tseem ceeb ntawm cov lus qhuab qhia:

txheej txheem - lub ntsiab abstraction ntawm kev khiav haujlwm hauv OS. Lub sijhawm twg los xij, tus txheej txheem tuaj yeem piav qhia los ntawm nws lub xeev: cov ntsiab lus ntawm lub cim xeeb hauv nws qhov chaw nyob, cov ntsiab lus ntawm cov ntawv sau npe, suav nrog cov ntawv qhia pointer thiab pawg pointer, thiab IO cov ntaub ntawv, xws li qhib cov ntaub ntawv tau nyeem lossis sau.
Txheej txheem API muaj cov kev hu uas cov kev pab cuam tuaj yeem ua rau cov txheej txheem. Feem ntau cov no yog tsim, rho tawm, lossis lwm yam hu.
● Cov txheej txheem yog nyob rau hauv ib qho ntawm ntau lub xeev, suav nrog kev khiav, npaj, thaiv. Ntau yam xwm txheej xws li kev teem caij, kev zam los ntawm kev teem caij, lossis kev tos tuaj yeem hloov lub xeev ntawm cov txheej txheem ntawm ib qho mus rau lwm qhov.
Daim ntawv teev cov txheej txheem muaj cov ntaub ntawv hais txog tag nrho cov txheej txheem hauv qhov system. Txhua qhov nkag hauv nws yog hu ua txheej txheem tswj thaiv, uas hauv kev muaj tiag yog cov qauv uas muaj tag nrho cov ntaub ntawv tsim nyog hais txog cov txheej txheem tshwj xeeb. 

Tau qhov twg los: www.hab.com

Ntxiv ib saib