Wikiproiektu:Informatika/S-IKudeatzekoSD3

Artikulu hau "Kalitatezko 2.000 artikulu 12-16 urteko ikasleentzat" proiektuaren parte da
Wikipedia, Entziklopedia askea

Sistema eragileak, non kokatzen diren aplikazioaren eta hardwarearen 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 konputagailuarekin 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 softwarea, mikroprozesadoreak erabiltzen dituzten sistema gehienetan aurki dezakegu, hala nola, telefono mugikorretan, DVDak ikusteko sistemetan, konputagailutan eta abarretan.

S/I kudeatzeko sistema-deiak[aldatu iturburu kodea]

Honako hauek dira S/I kudeatzeko sistema-dei erabilienak:

open()[aldatu iturburu kodea]

int open(const char *pathname, int flags);

int open(const char *pathname,int flags, mode_t mode);

Fitxategi baten izena emanik fitxategi deskribatzaile bat itzultzen du, zenbaki positibo txiki bat. Hau beste sistema-deietan (read(), write(), lseek() etab.) erabiltzen da fitxategia atzitzeko.

Parametroak:

  • pathname: fitxategiaren izena
  • flags: fitxategia nola erabiliko den adierazten dute.
  • mode: fitxategiaren gaineko baimenak.

Itzuli:

  • Erabili gabe dagoen lehen fitxategi deskribatzailea den zenbaki oso bat. Lehenengo irekiera baldin bada orokorrean 3 izango da; 0, 1 eta 2 erreserbatuta baitaude- sarrera estandarra, irteera estandarra eta errore estandarra.
  • -1 errore bat egon bada.

Flagek sarbide modu bat adierazi behar dute: O_RDONLY, O_WRONLY, edo O_RDWR.  Soilik irakurri, soilik idatzi edo irakurri/idatzi, hurrenez hurren. Beste hainbat flag daude bestelako ezaugarriak adierzten dituztenak. Aipagarriena, O_CREAT, hau erabiliz fitxategia ez bada existitzen sortu egiten du, beraz sistema-dei hau fitxategia irekitzeko nahiz sortzeko erabiltzen da. Fitxategi bat sortzeko kodearen adibidea:

int fd = open("foo", O_CREAT|O_WRONLY|O_TRUNC, S_IRUSR|S_IWUSR);

  • O_TRUNC: jada dagoen edukia ezabatu.
  • S_IRUSR: erabiltzaileak irakurri dezake.
  • S_IWUSR: erabiltzaileak idatzi dezake.

creat()[aldatu iturburu kodea]

int creat(const char *pathname, mode_t mode);

Ikusi berri bezala fitxategi bat sortzeko open() erabili daiteke, baina lan hau egiteko creat() sistema deia dago.

Parametroak

  • pathname: fitxategiaren izena
  • mode: modua

Itzuli

  • Erabili gabe dagoen lehen fitxategi deskribatzailea.
  • -1: errore bat egon bada.

Aurreko adibidearen baliokidea:

int fd =creat("foo", S_IRUSR|S_IWUSR);

close()[aldatu iturburu kodea]

int close(int fd);

Fitxategi deskribatzaile bat ixten du, horrela ez dio erreferentziarik egiten fitxategi bati eta berrerabili daiteke.

Parametroa

  • fd: fitxategi deskribatzailea

Itzuli

  • 0: fitxategia arazorik gabe itxi da.
  • -1: errore bat egon bada.

read()[aldatu iturburu kodea]

ssize_t read(int fd, void *buf, size_t count);

Fitxategi bat ireki ondoren bertatik byteak irakurtzeko erabiltzen den sistema deia da.

Parametroak

  • fd : fitxategiaren deskribatzailea, sistemari irakurri beharreko fitxategia zein den adieraziz.
  • buf: irakurketaren emaitza gordeko duen bufferra.
  • count: bufferraren tamaina.

Itzuli

  • Arrakasta kasuan zenbat byte irakurri diren itzultzen du.
  • 0: fitxategi amaierara heltzean.
  • -1: errore bat egon bada.

Bufferrak baliozkoa den memoria posizio baten erakuslea izan behar du, ezin da espezifikatutako tamaina baino txikiagoa izan overflowagatik. fd open() dei batek itzulitako baliozko fitxategi deskribatzaile bat da, NULL bada errorea emango baitu. cnt parametroak irakurri nahi den byte kopurua adierazten du, eta itzultzen den balioak benetan irakurri den byte kopurua itzultzen du. Zenbaitetan bigarren hau txikiagoa izango da irakurketa ez bada arrakastatsua izan.

write()[aldatu iturburu kodea]

size_t read (int fd, void* buf, size_t cnt);

Parametroak

  • fd : fitxategiaren deskribatzailea, sistemari idatzi beharreko fitxategia zein den adieraziz.
  • buf: irakurketaren emaitza gordeko duen bufferra.
  • count: bufferraren tamaina.

Itzuli

  • Arrakasta kasuan zenbat byte irakurri diren itzultzen du.
  • 0: fitxategi amaierara heltzean.
  • -1: errore bat egon bada.