esmaspäev, 15. detsember 2014

Protsess

OS'i ülesanne on protsesside haldus ehk OS peab jagama protsessidele ressursse, võimaldama protsessidel vahetada informatsiooni teiste protsessidega ja võimaldama sünkroniseerimist protsesside seas. Protsess on kasutajarakenduse töötav koopia ja protsesside haldamiseks ning neile ressursside jagamiseks peab OS haldama iga protsessi jaoks andmestruktuuri, mis kirjeldab protsessi identiteeti, staatust, seotud ressursse, jne, et rakendada kontrolli protsessi üle. Protsessi iseloomustavad järgmised omadused:
  • Identifikaator: unikaalne number, mis eristab protsessi teistest protsessidest
  • Staatus: näitab protsessi jooksvat seisundit (näiteks käivitatud)
  • Prioriteet: prioriteet võrreldes teiste protsessidega
  • Programmiloendur: järgmise käsu aadress, mis tuleb käivitada
  • Mälulokaator: mäluaadressid programmi koodi ja andmete asukohta
  • Kontekstandmed: protsessori registrite seis protsessi käivitamisel
  • S/V staatuse info: info täitmisel S/V päringutest, protsessiga seotud S/V seadmed, protsessi poolt avatud failide loetelu, jne.
  • Aruandlusinfo: kasutatud protsessori aeg, ajapiirangud, jne.
Seda infot talletatakse andmestruktuuris, mida nimetatakse protsessi juhtplokiks (Process Control Block), mida haldab OS. Protsessi juhtplokk sisaldab piisavalt infot, et protsessi saab vajadusel katkestada ja hiljem jätkata, nagu oleks vahepeal juhtunud katkestus. Kui protsess katkestatakse siis jooksvad väärtused nagu programmiloendur ja protsessori registrite seis salvestatakse vastavates protsessi juhtploki väljades ja protsessi seisund muudetakse täitmisel (Execution) staatusest kas blokeerituks (Blocked) või täitmiseks valmis (Ready) staatusesse.

Joonis - Protsesside staatuse ümberlülitumise võimalused (Allikas: Learning Materials for Information Technology Professionals (EUCIP-Mat))
  • Täitmiseks valmis staatus tähendab, et protsess on ajastatud tööjärjekorda ja ootab protsessoriressursi vabanemist, et oma tööga edasi minna
  • Täitmisel protsess kasutab parajasti talle määratud protsessoriressurssi.
  • Blokeeritud seisu seatakse süsteemikutse käivitanud protsess, mis ootab mingi S/V operatsiooni täitmist oma töö jätkamiseks. 
Selgitav video protsessi töötamise kohta inglise keeles. 1.osa



Kui kernel suutis mingi asja tööle panna, siis tema jaoks on midagi eraldatud
roheline: virtuaal mälu

Operatsiooni süsteemid:

Koode operatsiooni süsteemi kohta:
 Kernel:

  • Operatsioonisüsteem (Operating System edaspidi OS) vahendab arvutikasutaja suhtlust arvuti riistvaraga. OS'i eesmärk on muuta arvuti kasutamine mugavaks, võimaldades käivitada kasutajarakendusi ja aidates lahendada veaolukordi.
  • Rakendustarkvara - erinevad rakendusprogrammid, mis pakuvad kasutajale vajalikku funktsionaalsust tööülesannetetäitmiseks arvutil.

Joonis 2-1. Arvuti riist- ja tarkvarakomponendid(Allikas: Learning Materials for Information Technology Professionals (EUCIP-Mat))

Joonis 2‑2. Rakendustele riistvararessursside jagamine(Allikas: Learning Materials for Information Technology Professionals (EUCIP-Mat))
OS vahendab rakendusprogrammide pöördumist riistvarakomponentide poole läbi spetsiaalsete liideste. See võimaldab rakendustele juurdepääsu süsteemi riistvararessurssidele jättes OS'i hooleks riistvara poole pöördumise spetsiifika,riistvararessursside halduse ning konfliktide välistamise. Tüüpilise personaalarvuti OS'i funktsioonid on:
  • Kasutajakeskkond seadmetega töötamisel
  • Automaatne sisend-väljund (edaspidi S/V)seadmetekonfimine
  • Rakenduste liides seadmete poole pöördumiseks
  • Keskkond rakenduste loomiseks
  • Ressursi (CPU, RAM, failisüsteem, jne) jagaja
  • Arvutivõrgu toetus (protokollid, veebilehitseja)
  • Turvavahendid (autentimine, tulemüür, failisüsteemi ACL, krüpteerimine, installi- ja kasutuspiirangute konfimine tavakasutajatele).
KaasaegseteOS'ide arendusel tehakse tööd, et toetada uuemat riistvara, uusi rakendusi ja kaitsta OS'i turvaohtude eest. Riistvarakomponentide osas on arengut suunanud multiprotsessorsüsteemide kiire areng, kõrged taktsagedused, massmäluseadmete suurenenud andmemahud. Rakenduste osas on OS'i arengu mõjutajateks multimeediarakendused, internet ja võrgundus, klient/server lahendused ja virtualiseerimine.Nende väljakutsete mõjul tehakse OS'ide arendamiseks tööd järgmistes kategooriates:
  • Mikrokernel-arhitektuur(Microkernel architecture) - kompaktne kernel, mida toetavad eraldi lisakomponendid
  • Hargtöötlus (Multithreading) - võimaldab protsessi käivitamise jagada lõimedeks, mida saab käivitada paralleelselt
  • Sümmeetriline multitöötlussüsteem (Symmetric multiprocessing) - protsessorid jagavad sama põhimälu ja S/V moodulit ning võivad käivitada võrdselt kõiki protsesse.
  • Objekt-orienteeritud disain - võimaldab lisada laiendusi kompaktselekernelile, kohandada OS'i ja lihtsustab jagatud tööriistade arendamist.
  • Hüperviisor (Hypervisor) - virtualiseerimise haldur, mis paigaldub õhukese tarkvara kihina riistvara ja kerneli vahele ning võimaldab ära kasutada riistvaralise virtualiseerimise toetuse ja hallata nii mitmeid erinevaid operatsioonisüsteeme samas füüsilises masinas.
Operatsioonisüsteemipõhikomponendid on kokku võetud ainulaadsesse programmi, mida nimetatakse kerneliks ehk tuumaks. Kernel võib olla ehitatud kas suure monoliitse arhitektuuriga (monolithic architecture), mille puhul kernel sisaldab kõike vajaliku OS'i funktsioneerimiseks ja sealhulgas plaanuri, failisüsteemi, võrgunduse, seadmedraiverid, mäluhalduse jne. Mikrokernel-arhitektuuri puhul on kernelis ainult kõige põhilisemad funktsioonid nagu protsesside plaanur, protsessidevaheline kommunikatsioon, katkestuste ja erandite töötlus ja mitmeprotsessorsüsteemi sünkroniseerimine. Ka sisaldab mikrokernel alamprotseduure ja baasobjekte, mida kernelit ümbritsevad ja kernelirežiimis töötavad komponendid saavad kasutada.Microsoft Windows OS'id on modulaarsed ja kasutavadmikrokernel-arhitektuurile sarnast lähenemist. Linux OS kasutab monoliitse kerneliga arhitektuuri. Windowsi kerneli ümber on koondatud muud kernelirežiimis töötavad komponendid, mis pakuvad kõiki OS'i teenuseid nagu mälu haldus, protsessi ja lõimede haldus, turvalisus, S/V, võrgundus, protsesside vaheline kommunikatsioon ja graafilise kasutajaliidese funktsioonid. Kernelirežiimis töötavad ka seadmete draiverid, mis muundavad S/Vfunktsioonide käske spetsiifilisteks riistvaraseadmete S/V päringuteks. Kernelirežiimis töötavad komponendid peavad olema väga hästi testitud ja draiverid OS'iga ühilduvad, sest häired nende töös muudavad ebastabiilseks kogu OS'i.
Selleks, et kaitsta OS'i kasutajarakenduste eest on OS'is kasutusel erinevad protsessori režiimid kernelile ehk kernelirežiim (Kernel Mode või Supervisor Mode) ja kasutajarakendustele ehk kasutajarežiim (User Mode). Kasutajarakendused töötavad kasutajarežiimis ja OS'irakendused (süsteemi teenused ja seadmete draiverid) töötavad kernelirežiimis. Selles režiimis rakendused jagavad ühtset virtuaalset aadressiruumi. Kernelirežiim käivitatakse protsessori privilegeeritud käivitusrežiimis, mis tagab juurdepääsu kõigile protsessori käskudele ja kogu süsteemimälule. Erinevate töörežiimide rakendamine võimaldab välistada, et vigane kasutajarakendus ohustaks süsteemi kui terviku stabiilsust.

esmaspäev, 8. detsember 2014

Protsessi juhtplokk



Pointer - Muutuja, mis viitab ühele mälu aadressile.

Process termination

There are many reasons for process termination:
  • Batch job issues halt instruction
  • User logs off
  • Process executes a service request to terminate
  • Error and fault conditions
  • Normal completion
  • Time limit exceeded
  • Memory unavailable
  • Bounds violation; for example: attempted access of (non-existent) 11th element of a 10-element array
  • Protection error; for example: attempted write to read-only file
  • Arithmetic error; for example: attempted division by zero
  • Time overrun; for example: process waited longer than a specified maximum for an event
  • I/O failure - sisend seadme rike
  • Invalid instruction; for example: when a process tries to execute data (text)
  • Privileged instruction
  • Data misuse
  • Operating system intervention; for example: to resolve a deadlock - ummik nt, täisummik (nagu walking deadis ummikud, aint läbipääsmatud)
  • Parent terminates so child processes terminate (cascading termination) - Vanem protsessi hävimisel hävinevad ka laps protsessid
  • Parent request - vanema nõue
  • Fatal error - fataalne jama, viga mis põhjustab programmi sulgemise
 Kui tahate eesti keelset, siis lugemine omal vastutusel: protsessi lõpetamine

On palju põhjusi protsessi lõpetamine:

     Partii töö küsimused peatada juhendamine
     Kasutaja logib välja
     Protsessi käivitab teenuse taotluse lõpetada
     Viga ja veaolukorrad
     Tavaline lõpetamist
     Tähtaeg ületatud
     Mälu puuduvad
     Piire rikkudes; Näiteks: püüdsid juurdepääsu (olematu) 11. osa 10-element massiivi
     Kaitse viga; Näiteks: üritanud kirjutada ainult lugemiseks faili
     Aritmeetiline viga; Näiteks: püüdsid jagamist nulliga
     Aeg ületatud; näiteks: protsess oodanud kauem kui määratud maksimaalne sündmuse jaoks
     I / O rike
     Vale juhendamine; Näiteks: kui protsess püüab täita andmeid (tekst)
     Eesõigus juhendamine
     andmed väärkasutuse
     Operatsioonisüsteem sekkumist; Näiteks: lahendada ummikusse
     Parent lõpevad nii lapse protsessid lõpetada (CSS lõpetamine)
     Parent taotluse
     Fatal error   #googletõlgi

Protsesside loomine


Operatsioonisüsteemid vajan viise, kuidas luua protsesse. Väga lihtne süsteem on konstrueeritud kasutamiseks ainult ühe taotluse kohta (nt kontrolleri mikrolaine ahi), siis võib olla võimalik, et kõik protsessid, mis kunagi on vaja olla kohal, kui süsteem kerkib. In üldotstarbeline süsteemid aga mingil moel on vaja luua ja lõpetatakse protsessid nagu vaja töötamise ajal.
Seal on neli peamist sündmused, mis põhjustavad protsessi tuleb luua:

     Süsteemi ettekanne.
     Täitmine protsessi loomise süsteemi kõne töötama protsessi.
    Kasutaja taotlusel, et luua uus protsess.
     Algatamine partii tööd.

Kui operatsioonisüsteemi alglaadimisel, tavaliselt mitmeid protsesse on loodud. Mõned neist on esiplaanil protsesse, mis suhtleb (inimese) kasutaja ja töö tegemiseks neile. Teised on taust protsessid, mis ei ole seotud konkreetse kasutaja, vaid selle asemel on mõned spetsiifilist funktsiooni. Näiteks üks taust protsess võib olla projekteeritud sissetulevatele e-kirju, magab suurema osa päevast, kuid äkki springing elu, kui sissetuleva e-mail saabub. Teine taust protsess võib olla projekteeritud Saabunud taotluse veebilehti majutatud masin, ärkamine, kui taotlus saabub teenindada, et taotluse.

Protsesside loomine UNIX ja Linux on teinud läbi kahvli () või kloon () süsteem nõuab. On mitmeid etappe protsessi loomist.Esimene samm on kinnitamise kas vanem protsess on piisavalt luba luua protsess. Pärast edukat kinnitamine, vanema protsessi kopeeritakse peaaegu täielikult, muutustega ainult unikaalne protsess id, vanem protsessi ning kasutaja ruumi. Iga uus protsess saab oma kasutaja ruumi.

#googletõlge #ärapahaneole

PROCESS MANAGEMENT

Protsessi mudelid
*PCB - protsessi juhtplokk
*Linux - process descriptot - kirjeldaja

Fonoimani põhimõtete järgi toimub meie arvuti

POST - power on self termination
    BIOS - Baasvahetussüsteem, kus on kirjas HDD info
         HDD info - Kõvaketta info
               OS - tarkvara, mis haldab arvuti ressursse
                    RAM - Muutmälu põhimälu ehk suvapöördusmälu on arvuti keskne mäluseade, kuhu saab andmeid kirjutada ja kust neid saab lugeda



KERNEL


Kernel = OS tuumik

PGA - jalakesed
 LGA - kontaktplaadid



SIIN - kontaktide/jalgade komplekt
BUS
INSTRUCTION - korraldus = funktsioon/protseduur(arg1, arg2)

Kernel


Kernel on OSi tuum, see sisaldab riistvara erisusi.

Riistvara ja tarkvara vahendaja.

Tegeleb sisend/väljud päringutega mis tulevad tarkvara poole pealt ja tõlgendab ta need andmetöötluskorraldusteks.

Kernel tegeleb kolme asjaga:
  • CPU (ALU ja FPU)
  • Mälu (Memory)
  • Draiverid (Drivers)

Operatsioonisüsteemid

Operatsioonisüsteem (OS/OPS) on TARKVARA, mis haldab arvuti ressursse (riistvara ja tarkvara) ja pakub arvutiprogrammidele ja kasutajale tavapäraseid vajalikke teenuseid.

Näiteks Android, Windows, Linux, IOS, OS X jpm. Kõik suuremad OSid põhinevad UNIX’il, va. Windows ja z/OS.

Android on eelkõige mõeldud puutetundlikele seadmetele, põhineb Linux kernelil.

Kernel on OS’i tuum.

Teegid on valmistehtud tarkvara, mis võimaldab meil kasutada vajalikke funktsioone ilma, et me neid ise ümber kirjutama peaks.

Windowsi failisüsteem NTFS.

Kernel on OS’i kõige olulisem osa.

CPU üks osa võib olla ALU ja FPU.

OS


OS on tarkvara, mis haldab arvuti resursse (riistvara ja tarkvara) ja pakub arvutiprogrammidele ja kasutajale tavapäraseid vajalikke teenuseid.

Kernel - operatsiooni süsteemi tuum
Teegid -  valmis tehtud tarkvara, mis võimaldab meil kasutada vajalikke funkstioone ilma, et me ise neid ümber kirjutama peaksime.
 Näiteks : Windows OS, Linux, iOS, Android, QNX


Android : Android on nutitelefonidele mõeldud OS. Android kasutab Linux tuuma muudetud versiooni.

Windows OS :

Linux :

iOS :

QNX :
























OS põhiülesanded

- Protsesside haldus
- Katkestused
- Mälu haldus
- Faili süsteem - võimaldab faile andmekandjatel kanda (Windows NT FS)
- Seadmedraiver
- Arvutivõrk
- Turvalisus
- I / O(Input/Output) e. suhtlus
















ALU - aritmeetika-loogika protsessor
FPU - ujukomaarv protsessor