Wikiproiektu:Informatika/Sistema eragileak: berrikuspenen arteko aldeak

Ezabatutako edukia Gehitutako edukia
Orriaren edukiaren ordez, «{{HezkuntzaPrograma}} {{zuzendu}} [[Fitxategi:Operating_system_placement.svg|thumb|200px|Sistema eragileak, non kokatzen diren aplikazioaren eta [[hardware]...» jarri da
Etiketa: Ordezkatuta
3. lerroa:
[[Fitxategi:Operating_system_placement.svg|thumb|200px|Sistema eragileak, non kokatzen diren aplikazioaren eta [[hardware]]aren artean.]]
 
'''Sistema eragilea''' [[software]] bat da eta programekin eta datuekin osatzen da. Sistema eragileak konputagailuaren hardwarea kudeatzen du, eta askotariko software aplikazioak efizientziaz exekutatzeko zerbitzu komunak eskaintzen ditu.
 
Sistema eragile baten oinarrizko helburuak eta ikuspuntuak bi dira, elkarren artean erlazionaturik badaude ere: batetik makina-mailakoak baino funtzionalitate ahaltsuagoak eskaintzea programei eta programatzaileei, eta bestetik, baliabideen kudeaketa orekatu eta eraginkorra. Lehen helburua sistema-deiek betetzen dute, horretarako, sistema-dei horien kodea definitu behar da, baina hori egiterakoan baliabideen kudeaketa orekatua eta eraginkorra hartu behar da kontuan. Era berean, kudeaketa egokia ziurtatzeko sinkronizazio/komunikazioa eduki behar da kontuan.
 
Sistema eragilea beharrezkoa da erabiltzailea [[konputagailu]]arekin komunikatzeko. Hardwarearen funtsezko kudeaketa oso konplexua da, hori dela eta, sistema eragileak sistemaren ulermena eta erabilpena errazten du erabiltzailearentzat.
 
Makinaren zehaztasunak alde batera utziz, oro har, baliabideak kudeatzeko aukera eskaintzen duen softwarea da. Mota honetako [[software]]a, [[mikroprozesadore]]ak erabiltzen dituzten sistema gehienetan aurki dezakegu, hala nola, [[telefono mugikor]]retan, [[DVD]]ak ikusteko sistemetan, [[konputagailu]]tan eta abarretan.
 
== Fitxategi kudeaketaren helburuak eta funtzioak ==
 
Fitxategi kudeaketa sistema bat erabiltzaile eta aplikazioei sartzeko eta kontrolatzeko zerbitzuak eskaintzen dituen softwarea da, bai fitxategiak, baita direktorioak ere.
Fitxategi kudeaketak honako helburu hauek ditu:
*Fitxategiaren informazioa baliozkoa dela ziurtatu.
*Fitxategientzako sarbidea optimizatu.
*Erabiltzaileak eskatutako datuak entregatu.
*Galera minimizatu edo ezabatu.
*I/O euskarria biltegiratze-gailu ugarirekin hornitu.
*I/O errutina multzo estandarra eskaini.
*I/O laguntza hainbat erabiltzaileei hornitu.
 
Helburuez gain, hainbat funtzio ere baditu:
*Fitxategia identifikatu eta kokatu.
*Direktorio bat erabili, fitxategiaren kokalekua eta atributuak deskribatzeko.
*Hainbat erabiltzaileen sarbidea fitxategietan kontrolatu.
*Fitxategien erabilera blokeatu.
*Fitxategiak bloke libreetan bilatu.
*Doako espazioa kudeatu.
 
== Oinarrizko eskakizunak ==
 
Erabiltzaileek fitxategiak sortu, irakurri, ezabatu eta aldatzeko gai izan behar dute eta beste erabiltzaileen fitxategien kontrola izan dezakete.
Batetik, erabiltzaileak beste erabiltzaileei ematen dien sarbide mota kontrolatzen du, baita beren fitxategiak ordenatu arazoaren arabera.
Bestetik, artxiboen artean informazioa mugitu eta babeskopiak egin eta leheneratu behar dituzte hondamendia gertatuz gero.
Azkenik, izen sinbolikoak dituzten fitxategiak sar ditzakete.
 
== Errendimenduaren kudeaketa ==
 
Sistema eragile baten edo bere osagai baten errendimenduaren kontzeptua baliabideen kudeatzaile lana egiteko modua neurtzeko erabiltzen da. Errendimenduaren neurketarako '''eraginkortasuna''' moduko parametroak erabiltzen dira. Aipagarria da errendimenduaren parametro bat optimizatzeko asmoz, politika edo mekanismo konkretu bat aukeratzeak, beste parametro baten okertzea ekar dezakeela, hori dela eta, konpromisozko soluzio edo erdibideak bilatu behar izaten dira.
 
=== Denboraren kudeaketa ===
Oro har, sistema eragilea ilaretan oinarritzen den eredu bat bezala interpreta daiteke, non prozesu batek baliabide baten eskaera egiten duen, zerbitzatua izatearen zain geratuko den, zerbitzatua den eta berriro beste eskaera bat egiten duen.
Baliabide bati egotzitako ilara baten oinarrizko ezaugarri bat ilara atzitzeko diziplinarena da, honek zehaztuko baitu baliabidearen kudeaketa politika. Diziplina bat aukeratzeko irizpideek oreka bat bilatu behar dute baliabidea erabiltzearen onura eta berau inplementatzearen kostuaren artean.
 
=== Espazioaren kudeaketa ===
Espazioaren kudeaketa oinarrizkoa da biltegiratze-sistemetan. Biltegiratze-sistema baten ezaugarri nagusiena helbide fisikoen helbideratze-tarte bat izatea da.
Sistema eragilearen espazioaren kudeaketari dagokionez, kudeaketarako alderdi garrantzitsu bat kokapen-unitatearen definizioa da, hau da, sistemak kudea dezakeen tarte tamaina minimoa. Aukera bat helbideratze-tarte nagusia tamaina aldakorreko partizio edo zatitan banatzea da. Honen alternatiba tamaina finkoko partizioa erabiltzea da. Tamaina aldakorreko partizioarekin helburua da partizioaren tamaina bertan kokatu beharreko obetuaren tamainara egokitzea. Aldiz, tamaina finkoko partiziotan objektuari egokituko zaio bere tamainaren berdina edo handiagoa den partizio bat. Bi aukera hauek arazo oso desberdinak sortzen dituzte (aipagarrienak, tamaina aldakorreko partizioetan kanpo-fragmentazioa, eta tamaina finkoko partizioetan barne-fragmentazioa dira), ondorioz, posiblea da bi politika hauen konbinaketa bat egitea.
Partizioen tamaina finko edo aldakorrak sortutako fragmentazioaz gain, biltegiratze unitate guztietan erreserbatu egiten da zati bat tarte libreen kudeaketarako. Espazio librearen edo hutsuneen adierazpena bi modutan egin daiteke:
*Bit-mapa: Kokapen-unitate bat definitzen da: memoriako blokea, kudeatuko den memoriako zatirik txikiena izango dena. Partizio bakoitzaren egoera bit baten bidez adierazten da. Aktibatutako bit batek dagokion partizioa erabiltzen ari dela adierazten du, desaktibatutako batek, aldiz, partizioa libre dagoela. Mekanismo hau tamaina finkoko partizioentzat egokiena da.
*Hutsuneen lista estekatua: Hutsune edo partzio bat adierazten da listako elementu bakoitzeko, eta hasierako helbidea, luzera eta listako hurrengo elementurako erakusle bat gordetzen da estekatutako deskribatzaile bakoitzean.
Beste diseinu-kontu bat objetu bat kokatu beharreko hutsunearen aukeraketarena da. Helburua da objetuaren tamaina jakinik tamaina egokiko hutsune libre bat aukeratzea espazioaren eraginkortasun optimoa lortu ahal izateko, eta degradazioa atzeratzeko. Horretarako asignazio-politika desberdinak existitzen dira:
*'''First-fit''': Nahikoa den lehen hutsunea bilatzen da. Hutsunearen bilaketa aurreko asignaziotik aurrera egiten bada, algoritmoa '''next-fit''' deitzen da.
*'''Best-fit''': Objektuaren tamainari hoberen egokitzen zaion hutsunea aukeratzen da.
*'''Worst-fit''': Hutsune handiena aukeratzen da.
 
== Sistema eragile baten egitura ==
 
Barne egiturari begira, sistema eragilea programa bat kontsidera daiteke, datu-egitura eta errutinez osatzen baita. Sistema eragilearen berezitasuna memoria-tarte babestu bat erabiltzean datza, aplikazioek bere zerbitzuak atzitzeko modu homogeneo bat eskainiaz ''trap'' bidezko mekanismo baten bitartez. ''Trap'' mekanismo honek exekuzio modu pribilegiatura aldatzen du sistema-deiak exekuta ahal izateko.
Barne egituraren arabera, hiru sistema eragile mota bereiz daitezke.
*'''Monolitikoak''': Sistema eragilearen edozein errutinak beste edozein datu-egitura erreferentzia eta atzitu dezake.
*'''Mailakatuak''': Geruza desberdinak bereizten dira diseinu garaian.
*'''Bezero-zerbitzaria''': Sistema eragilea modulu desberdinetan banatzen da, bakoitzak funtzionalitate baten ardura hartuz eta beste moduluekin komunikatzen delarik bezero-zerbitzari eredua jarraituz.
 
== Eskainitako zerbitzuak ==
 
=== Prozesu kudeaketa eta sinkronizazioa ===
Sistema eragile multiprogramatuetan prozesua definitzen da programa baten exekuzioaren entitate adierazgarri gisa testuinguru batean. Sistema eragilearen helburuetariko bat prozesuen adierazpidea eta prozesuen arteko '''testuinguru aldaketara'''rako euskarria izatea da.
 
Sistema eragile multiprogramatuetan prozesu bat '''exekuzio-fluxu''' gisa ulertzen da, non une bakoitzean agindu bat exekutatzen ari den, bere exekuzioa '''testuinguru''' baten barnean egiten delarik. Sistema multiprogramatuetan programa bat denbora-tarte batez CPUn aritu ondoren, '''Sarrera/Irteera'''ko eragiketak direla eta, gehienetan blokeatu egiten da, eta blokeaketa eragin duen zioa desagertzen denean CPUa beharko du berriro ere, exekuzioa amaitu arte begizta hau errepikatuz. Gainera, CPU kopuru mugatu bat izanik, eta prozesu anitz ditugunez, prozesuek CPUa eskuratzeko lehiatu egin behar dute. Ildo honetatik, sistema eragilearen lana da CPUaren '''planifikazioa''' egitea, erabaki horren ardura suen sistema eragilearen errutinari ''scheduler'' deritzo.
 
'''Planifikazio-politika''' egoki baten helburua, CPUra pasako den hurrengo prozesuaren aukeraketaz arduratzea da. Nahiz eta planifikazio politika, printzipioz, CPU kopuruarekiko guztiz independentea izan behar duen, multiprozesadore sistemek prozesadoreen arteko lan-karga modu egokian banatuko dituzten planifikazio politika bereziak behar dituzte. Oro har, prozesu bat bere exekuzio denboran zehar prozesadore berdin batean mantentzea bultzatu ohi da. CPUra sartzeko planifikazio-politika nagusiak ondorengoak dira:
*'''FCFS''': Heltzen den lehena da zerbitzatzen lehena izango dena.
*'''SJF''': Baliabidea denbora laburrenean erabiliko duena aukeratzen da.
*'''Lehentasuna''': Prozesu bakoitzari lehentasun bat esleitzen zaio, eta lehentasunaren arabera aukeratzen da zein den zerbitzatuko den prozesua.
 
Baina oreka-eza ekiditeko, planifikazio jaurtitzaileak erabiltzen dira. Oinarrian, bi modu daude prozesu baten kanporaketa sortarazteko:
*Gertaera bidezko kanporaketa.
*Denbora bidezko kanporaketa, txanda zirkularreko eta denbora konpartitutako planifikazioa bideratuz.
 
Sistema eragile multiprogramatu batean, prozesu konkurrenteen komunikazioa eta baliabideen kudeaketa egiteko, beharrezkoa da ''komunikazioa'' eta ''sinkronizazioa''. Sistema eragile multiprogramatuetan sekzio kritiko gisa defini daiteke prozesuak konkurrenteki exekutatzerakoan hauen arteko lasterketa-baldintzak sor ditzaketen kode-zatiak.
 
=== Memoria kudeaketa ===
[[Fitxategi:Virtual_address_space_and_physical_address_space_relationship.svg|thumb|300px|Memoria kudeaketaren eskema: Ikusi daiteke, memoria virtual guztia ez dagoela memoria fisikoan.]]
Konputagailu baten memoria fisikoan sistema eragilea, estekatze dinamikorako errutinak eta erabiltzaileen programak aurki daitezke. Memoriaren kudeaketak hainbat funtzio hartu behar ditu kontuan:
*Programaren karga eta beren kokapena memorian.
*Programa anitzen existentzia memorian.
*Exekuzio garaian, errutinak kargatzeko aukera.
*Memorian osorik kargatu ezin diren programen egikaritzapena.
*Programen memoria tarteen konpartizioa.
*Erabili gabeko memoriako tarteen kudeaketa eraginkorra.
 
Era berean, memoria kudeatzeko oinarrizko ezaugarriak ondokoak dira:
*Memorian egon daitezkeen programen kopuruaren arabera: programa bakarra/anitz.
*Programek beren exekuzioan zehar memoriatik sartu eta irteteko ahalmenaren arabera: egonkorrak/ez-egonkorrak.
*Programek memoriako posizio jarraiak erabili behar dituzten ala ez: jarraiak/ez-jarraiak.
*Programak exekutatu ahal izateko, osorik memorian egoteko beharraren arabera: osoak/ez-osoak.
 
=== Dispositiboen kudeaketa ===
Dispositibo bat konputagailura konekta daitekeen edozein gailu da, helburu desberdinetarako. Dispositiboen kudeaketaren helburu nagusia erabiltzaileari dispositibo ezberdinen erabilera erraztea da interfaze osokor bat eskeiniz, zeina dispositiboen ezaugarriekiko independentea izango den.
 
Dispositibo guztiak helbideratzeko modu orokor bat izateko asmoz, hardware-mailan '''kontroladore'''en bitartez konektatzen da sistemara. Sistema eragileak ez du zuzenean dispositiboan eragiten, helbide-multzo edo kontroladorearen erregistro multzo baten bitartez baizik.
 
=== Fitxategi sistemak ===
{{sakontzeko|fitxategi sistema}}
Fitxategi sistemak, konputagailuen memoria fisikoaren zenbait ezaugarriengatik beharrezkoak dira:
* Memoria fisikoa ez da iraunkorra, eta sistema itzaltzen denean, gordetako informazio guztia galtzen da.
* Memoria, oso osagai garestia denez, tamaina txikia daukate behar de data guztiak gordetzeko, eta horretarako, beste dispositibo zabal eta motelagoetan idatzi behar dira.
 
Konputagailuak, informazioa diskoetan gordetzeko [[Fitxategi (informatika)|fitxategi]]ak erabiltzen ditu. Fitxategi hauek, diskoetan idazten diren era, [[fitxategi sistema]] bezala ezagutzen da. Gordetzeaz gain, izena, propietateak, direktorio hierarkia, baimenak... kudeatzen ditu, informazioa era erabilgarriagoan eskainiz.
 
Lehendabiziko fitxategi sistemak, disko mota bakarrera mugatuta ziren, eta fitxategien izenak, direktorioen hierarkiaren sakontasunak eta beste zenbait ezaugarri oso mugatuta zeuden. Gaur egun, sistema eragile modernoek [[VFS]] - (''Virtual file System'') erabiltzen dute, disko mota anitz kudeatzeko fitxategi sistema berberarekin.
 
Fitxategi sistemek, aplikazioetara, diskoetan nola almazenaturik dauden data (bai nola almazenatuta edo non) eskurapen independentea eskaintzen dio. Horrela, aplikazioek, ez dute jakin behar instalatuta egongo diren sistemetan zer disko mota dauden.
 
Hala eta guztiz ere, sistema fitxategien artean, zenbait ezberdintasun aurki ditzakegu, hala nola, letra xehe eta larrien arteko diferentziak izenetan (Adibidez, [[NTFS]]/[[FAT|FAT32]] sistemetan ez dira letra xehe eta handiak ezberdintzen fitxategien izenetan eta [[ext3]]/[[ext4]] edo [[reiserFS]] ordea, bai), edo fitxategien zenbait atributuetan.
 
== Ikus, gainera: ==