UNIX ftp://shell.shore.net/members/w/s/ws/Support/OS/UNIX.pdf 31.12.2004.

Slides:



Advertisements
Samankaltaiset esitykset
Tietokannat: MySQL ja PostgreSQL. Yleistä • Relaatiotietokantaohjelmisto, jolla voidaan luoda, ylläpitää ja muuttaa ja hallinnoida tietokantoja • Avoin.
Advertisements

Lionsliiton aineistosta koonnut P.Siitonen 4/ KLUBISIHTEERI koulutus Pekka Siitonen Piirisihteeri
Tietokoneen käyttöjärjestelmä
Suorita menulta voit ottaa yhteyden iSeries:iin tai katkaista yhteyden sinne ja poistua RI400:sta.
Johdatus Linuxiin Mauri Heinonen
Active directory.
Historia • Blogger-palvelun perusti pieni sanfranciscolainen yritys nimeltään Pyra Labs jo vuoden 1999 elokuussa • Bloggerin kehittivät kolme kaveria,
PROSESSIT Tehtäviä: Limittää usean prosessin suoritus, jotta resurssien käyttö olisi tehokasta, mutta samalla taata, että kaikki prosessit etenevät mielekästä.
JavaScript (c) Irja & Reino Aarinen, 2007
Linuxin rakenne ja ominaisuudet
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö Netbeans ja XAMPP Projektin luominen.
CD-ROM-asema mikrossa
Kiintolevyn osiointi.
Tärkeämpää kuin arvaatkaan
Julkaisukielet ja - tekniikat tMyn1 Julkaisukielet ja -tekniikat •Verkko-ohjelmointi voidaan jakaa kahteen osaan: asiakaspuolen ja palvelinpuolen ohjelmointiin.
e-kirjat Ota haltuun Web- kirjasto lukuohjelmat lainaaminen lukeminen
2.8.3 Abstraktit tietotyypit
W w w. h a m k. f i Wiki koulutus Leenakaija Lehto
Tietojärjestelmän suunnittelu
Synkronointi Yksi tärkeimmistä rinnakkaisuuteen liittyvistä asioista. semaforit tapahtumalaskurit monitorit.
Käyttöjärjestelmät Johdanto. Kurssimateriaalista 15 lukua, jotka vastaavat enemmän tai vähemmän 15 kahden tunnin pakettia Perustuu Gary Nuttin Operating.
Windows NT Mika Purmonen
 Kirjoita harkiten keskusteluryhmiin Jos kirjoitat viestejä julkisiin keskusteluryhmiin varmista, että viestisi liittyy ryhmän aiheeseen. Älä lähetä.
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
CSC / Tietohallinnon asiakkaat ja tuotteet / Teemu Kemppainen Käsitemalli kuvaa relevantit tiedot kohdealueelta. Tietotarpeet määrittävät relevantit.
© Jukka Harju, Jukka Juslin Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 9 Poikkeuskäsittely.
2. Vuokaaviot.
 Tärkeämpää kuin arvaatkaan 1. Et ole ehkä koskaan tarvinnut varmistuksia, mutta… …ennemmin tai myöhemmin se tapahtuu sinullekin. 2PowerPoint harjoitus.
2 - 1 Rio syksy 2004 OSA I: Yhteisten muuttujien käyttö Prosessit samassa koneessa.
Korkeakoulujen ja opetus- ja kulttuuriministeriön yhteinen tietohallintohanke, jota CSC koordinoi RAkenteellisen KEhittämisen Tukena TIetohallinto Arkkityön.
Käyttöjärjestelmien käynnistyminen
GNU-ohjelmointityökalut Jussi Raunio TI09OHJ
Visual Basic -ohjelmointi
Cmap-tools opetus käyttö kongnitiivinen merkitys.
Tietokoneohjelman suoritus opintojakso Olioajattelu ja –ohjelmointi, osa I Hans Nieminen Syksy 2013.
Tietokonemadot Aleksi Tarhonen Henri Yletyinen.
Kuinka tehdä blogi o365:ssä
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 11 - Teemu Mutanen Optimointiopin seminaari - Syksy 2005 / 1 Lisätiedon arvo.
Oletusasetusten tekeminen Päävalikolla voit aluksi tehdä kaikki oletusasetukset, jotka sitten ovat voimassa aina kun käytät RI400. Voit toki tehdä ne myöhemminkin.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Komponenttipohjainen ohjelmistotekniikka (TJTSS56) Osa 4 Kevätlukukausi 2010 Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos Markku Sakkinen.
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Kaksi- ja kolmitasoiset sovellukset Two and Three Tier Systems.
Visual Basic -ohjelmointi
Kontrollirakenteet laajemmin
1 Rio s05 / Liisa Marttinen Kertaus: Semaforit Semaforin operaatiot: sem s = n; # semaforin alkuarvo P(s); # jos s
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
WebOodiKURSSIPALAUTE Laura Vuorinen Opiskelijarekisteri.
1 Rio / Auvo Häkkinen Kertaus: Semaforit Semaforin operaatiot: sem s = n; # semaforin alkuarvo P(s); # jos s
Kertaus Näkökulmat: käyttöjärjestelmä rajapintana prosessit resurssit.
Pakkauskaavio– Package Diagram Jani Pelkonen, Niko Viinikanoja, Teemu Tervahauta.
Prioriteettijonot ja kekolajittelu (heapsort)
Miika Kuusinen LTY/Tietoliikenteen laitos 2003
Windows 2000 Jukka Stranden Marko Suhonen Käyttöjärjestelmät Seminaari 2006.
Ohjelmassa tänään Ohjelmointimallit Pseudokieli Modulaarisuus.
VARMUUSKOPIOINTI Näin tehdään Varmuuskopiointi Mac OS X 10.5 Leopard Serverillä, mutta varmuuskopiointi tehdään samalla tavalla myös muissa Mac OS X- käyttöjärjestelmissä,
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Foreign Function Interface Antti Marttila Funktio-ohjelmointi 2.
ARCH-Linux Juuso Lähdekorpi TI15STIVE

Riku Heino ja Milo Hakalahti
10. Siirräntäjärjestelmät
Kontrollirakenteet laajemmin
10. Siirräntäjärjestelmät
10. Siirräntäjärjestelmät
10. Siirräntäjärjestelmät
Esityksen transkriptio:

UNIX ftp://shell.shore.net/members/w/s/ws/Support/OS/UNIX.pdf UNIX täyttää 35

Historia pähkinänkuoressa Käytössä Bellillä 1970 C tehtiin UNIXin kehitystä varten, aikaisemmin käyttöjärjestelmät tehtiin vain koneläheisillä kielillä. Mahdollisti järjestelmän siirtämisen koneelta toiselle lähestymistapana ’worse is better’ Bellin (AT&T:n) UNIXin rinnalle tuli Berkeleyn oma BSD vuonna 1978 myöhemmin lukuisia erilaisia versioita erilaisiin tarpeisiin

Moderni UNIX yhteiset tärkeimpien käyttöjärjestelmien prosessien käyttöön tarkoitetut ydinosat koottu yhteen kirjoitettu modulaarisesti ytimen varaan rakennetaan joukko toimintoja ja niiden rajapintoja

Prosessien hallinta yksinkertaista, prosessit hyvin näkyviä käyttäjälle, tehokas prosessit luokitellaan systeemiprosesseiksi ja käyttäjäprosesseiksi systeemiprosessit toimivat kerneltilassa ja hoitavat käyttöjärjestelmän tehtäviä käyttäjäprosessit toimivat käyttäjätilassa normaalisti ja jos tarvitsevat kerneltilassa tehdessään kernelille kuuluvia toimintoja käyttäjäprosessi pääsee kerneltilaan tehdessään systeemikutsun, virheen sattuessa tai keskeytyksellä Prosessi 0 ja 1

Prosessin luominen (fork () –funktio) 1.Uusi paikka prosessitaulussa 2.luodaan prosessi-id lapselle 3.kopioidaan vanhemman tiedot, lukuunottamatta muistipaikkoja 4.kasvatetaan kaikkia vanhemman omistamien tiedostojen laskureita yhdellä 5.prosessi siirretään ’Ready to Run’ –tilaan 6.vanhemmalle palautetaan lapsen id ja lapselle palautetaan 0 Koko toiminta tehdään kerneltilassa, vanhemman prosessin toimesta

Kun uusi prosessi on luotu, kernel voi tehdä seuraavaa: 1.se jatkaa vanhemman ajamista 2.siirtyy ajamaan lasta siitä kohtaa, mihin vanhempi jäi 3.siirtyy ajamaan kolmatta prosessia, vanhempi ja lapsi jäävät ’Ready to Run’ - tilaan

Säikeiden hallinta (Solaris) UNIXin Monisäikeinen arkkitehtuuri käyttää seuraavia säietyyppejä: –Prosessi (normaali UNIX prosessi) –Käyttäjätason säie (käyttää säiekirjastoja, ovat näkymättömiä käyttöjärjestelmälle, käytetään sovellusten rinnakkaisuudessa) –Kevyt prosessi (käytetään käyttäjätason säikeiden hallitsemiseen, voi sisältää yhden tai useamman säikeen) –Kernelin säikeet (varsinaiset suoritettavat)

Kevyt prosessi (Lightweight Process, LWP) koostuu seuraavanlaisista asioista: LWP id prioriteetti (liittyen yleensä kernelin säikeeseen) signaalimaski (kertoo kernelille, mitkä signaalit LWP ottaa vastaan) rekisterien arvot tämän LWPn kernelpino resurssien käyttö ja muuta profiilitietoa osoitin kernelsäikeeseen osoitin prosessiin

UNIXIN ja Solariksen prosessien rakenteiden erot

Rinnakkaisuus UNIX tarjoaa useita erilaisia menetelmiä rinnakkaisten prosessien väliseen kommunikointiin ja synkronointiin –putket –viestit –jaettu muisti –semaforit –signaalit Putkia, viestejä ja jaettua muistia käytetään datan siirtämiseen prosessien välillä, semaforeja ja signaaleita taas käytetään laukaisemaan toisen prosessin toimintaa

Putki Putki on yksi merkittävimmistä UNIXin lahjoista käyttöjärjestelmille. Putki on puskurimuisti, joka mahdollistaa kahden prosessin kommunikoinnin kuluttaja- tuottaja –mallin mukaan. Käytännössä siis muodostetaan FIFO-jono, jota toinen prosessi tuottaa ja toinen lukee. Putkeen sovelletaan poissulkemista. Putkia on kahden tyyppisiä: nimettyjä ja nimeämättömiä.

Viestit Viesti on lohko bittejä, joihin liittyy tyyppi. UNIX-järjestelmässä on kaksi systeemikutsua, msgsnd ja msgrcv, jotka mahdollistavat viestien lähettämisen prosessien välillä. Jokaisella prosessilla on oma jono viestejä. Viestejä luetaan jonosta joko FIFO- järjestyksessä tai tyyppien mukaan.

Jaettu muisti Nopein kommunikoinnin muoto Lohko virtuaalimuistissa, jota useampi prosessi pääsee käyttämään samaan aikaan. Poissulkeminen pitää toteuttaa prosessien toimesta.

Semaforit UNIXin semaforit on toteutettu wait() ja signal() –systeemikutsujen yleistyksien avulla. Vähentäminen ja kasvattaminen voi olla suurempi kuin 1. Semaforiin liittyy seuraavat tiedot: –nykyinen arvo –viimeisen semaforia käyttäneen prosessin ID –prosessien määrä, jotka odottavat, että semaforin arvoo kasvaa nykyistä suuremmaksi –prosessien määrä, jotka odottavat, että sefamorin arvo on 0

Semaforiin liittyy myös jonoja, jotka ovat jääneet semaforin blockaamiksi. Semaforit luodaan joukoissa, joissa on yksi tai useampi semafori, jolloin niitä voidaan käsitellä joukkoina (asettaa kaikkiin sama arvo) Mahdollistaa joustavuutta prosessien synkronointiin ja koordinaatioon

Systeemikutsu sem_op() saa argumenttinaan joukon semaforikutsuja kutsuttaessa suorittaa semaforikutsut yksi kerrallaan semaforeille, varsinainen toiminta perustuu sem_opin arvoon: –sem_op>0, kernel kasvattaa semaforin arvoa –sem_op=0, kernel tarkistaa semaforin arvon, jos se on 0, kernel jatkaa seuraavaan toimintoon, muuten muuttaa odottavien prosessien määrään 0 ja pysäyttää prosessit odottamaan semaforin saavan arvokseen 0 –sem_op<0 ja on pienempi tai yhtä suuri kuin semaforin arvo, sem_opin arvo lisätään semaforin arvoon. Jos saadaan 0, kaikki sitä odottavat prosessit herätetään –sem_op<0, mutta suurempi kuin semaforin arvo, kernel pysäyttää prosessin siihen asti, että semaforin arvo kasvaa

Signaalit Signaalit ovat mekanismi prosessia synkronoiduista tapahtumista. Signaali muistuttaa keskeytystä, mutta sillä ei ole prioriteettia eli kaikkia signaaleja käsitellään tasavertaisina. Prosessit voivat lähettää toisilleen signaaleja tai kernel voi lähettää niitä sisäisesti. Signaali lähetetään päivittämällä kenttää prosessitaulussa vastaanottajan kohdalta. Signaalit ovat vain yksittäisiä bittejä, joten niitä ei voi asettaa jonoon. Signaalit käsitellään ensimmäisenä, kun prosessi käynnistyy

Säikeiden synkronointi primitiivit (Solaris) Rinnakkaisuutta tukevien menetelmien lisäksi, Solaris sisältää seuraavat neljä menetelmää: –lukkoja poissulkemista varten –semaforeja –lukijat/kirjoittaja –lukkoja –ehtomuuttujia löytyvät kernelistä kernelsäikeitä varten, kirjastoissa on käyttäjätason säikeitä varten omat aliohjelmansa

Mutex (mutual exclusion lock) Mutexin avulla voidaan varmistaa, että vain yksi säie pääsee resurssiin kiinni kerrallaan vain lukon avannut säie voi sen lukita primitiivi mutex_enter yrittää avata lukon. Jos lukko on jo auki, tämä ei onnistu mutexin operaatiot: –mutex_enter() –mutex_exit() –mutex_tryenter() mutex_tryenter() mahdollistaa mutexin kokeilemisen ilman, että koko prosessi joutuu pysähtymään

Semaforit Tavallisia yleisiä semaforeja –P() (vähentää arvoa) –V() (kasvattaa arvoa) –tryP() Jälleen, tryP mahdollistaa sen, että koko prosessin ei tarvitse pysähtyä yhden säikeen pysähtymisen takia

Readers/Writer Lock Sallii useamman lukijan samanaikaisesti lukon suojaamalle alueelle. Kun kirjoittaja varaa alueen, kaikki muu toiminta on estetty. rw_enter() yrittää päästä alueelle sisään rw_exit() vapauttaa lukon rw_tryenter() kuten enter(), mutta ei vaadi pysähtymistä rw_downgrade() kirjoittaja muuttaa lukon lukemiseksi, jos muita kirjoittajia ei ole odottamassa, kaikki odottavat lukijat päästetään sisään. rw_tryupgrade() yrittää muuttaa lukon lukijasta kirjoittajaksi

Ehtomuuttujat (condition variables) käytetään yhdessä mutexin kanssa pakottaa säikeen odottamaan, että jokin ehto muuttuu todeksi primitiivit: –wait() –signal() –broadcast() Mutexin avulla voidaan määritellä ehto, joka on monimutkainen

Muistinhallinta koneriippumaton: muistinhallintaan erilaisia menetelmiä aikaisemmat jakoivat muistin suoraan, uudemmat käyttävät sivutettua virtuaalimuistia Kaksi rinnakkaista järjestelmää: sivutus ja kernelin muistin osoitus

Sivujen korvaaminen kaikki saatavilla olevat sivut listana page frame data tablessa, kun vapaana oleva tila tippuu tietyn kynnyksen alle, kernel ottaa käyttöönsä sivuja päästäkseen kynnyksen yli korvattava sivu valitaan kelloalgoritmin kehittyneemmän version avulla, jota nimitetään kaksikätiseksi kelloalgoritmiksi uudessa algoritmissa ensimmäinen käsi merkitsee sivun referenssibitin arvoksi 0 ja toinen arvoksi 1, jos sivuun on viitattu sen jälkeen kun ensimmäinen käsi sen käsitteli

Käytetään kahta parametriä: scanrate (kertoo kuinka usein tehdään) ja handspread (kahden käden välinen etäisyys). Scanrate kasvaa kun käytössä olevan muistin määrä vähenee. Käsien välinen etäisyys toimii samalla tavalla. Näillä kahdella yhdessä voidaan optimoida muistinkäyttöä tilannekohtaisesti.

Kernelin muistin osoitus pienien tietojen sijoittamiseen muistiin (pieniä puskureita, zombieiden tietoa, jne) käytetään ns. ’lazy buddy systemiä’, joka on nopeampi ja tehokkaampi kuin esim. best-fit tai first-fit muistiinsijoitusmenetelmät

Perinteinen UNIX-ajoitus Korvattu nykyisin toisella menetelmällä Tavoitteena saada hyvät vasteajat käyttäjille, mutta taata se, että taustalla pyörivät prosessit eivät pääse nälkiintymään. multilevel feedback queye (MFQ), yhden sekunnin rajalla prioriteetti perustuu historiaan ja prosessin tyyppiin

Prioriteetit lasketaan uudestaan kerran sekunnissa CPU ja nice ovat rajoitettuja, jotta ne eivät pääse liian ylös prioriteetissä prioriteeteissa käytetään myös tasoja, jotka ovat –swapper –lohko-I/O-laitteistojen hallinta –tiedoston käsittely –merkki-I/O-laitteistojen hallinta –käyttäjän prosessit Hierarkia mahdollistaa hyvän I/O-laitteiden käytön.

Moderni UNIX-ajoitus Uudistettu täysin: suunniteltu antamaan korkein prioriteetti reaaliaikaisille prosesseille, sen jälkeen kernelin prosesseilla ja alin käyttäjien prosesseille, joita kutsutaan myös time-shared –prosesseiksi kaksi suurta muutosta: –irrotettava staattinen prioriteettiajoitus ja 160 prioriteettitason joukko, joka jaetaan kolmen luokan kesken –irrottamispisteet, joissa suorituksessa oleva prosessi voidaan turvallisesti irroittaa

Tosiaikaiset prosessit (prioriteettitasot ): suoritetaan aina ennen muita prosesseja, voivat käyttää hyväkseen irrottamispisteitä Kernel (99-60): suoritetaan aina ennen käyttäjäprosesseja prosesseja Time-shared (59-0): Muut käyttäjäprosessit kuin tosiaikaiset. Alin prioriteettitaso.

UNIX I/O jokaista I/O-laitetta kohti on oma erikoistiedosto. Tiedostojärjestelmä hallitsee niitä ja niitä käsitellään kuin datatiedostoja hyvä yhtenäinen rajapinta kaikille prosesseille pyynnöt kohdistetaan tiedostolle voi olla puskuroitu tai puskuroimaton

Puskurivälimuisti vastaa toiminnaltaan levyvälimuistia hallintaan käytetään kolmea listaa –vapaalista (kaikki paikat, jotka ovat vapaana) –laitelista (lista kaikista käytössä olevista puskureista) –ohjain I/O-jono Kaikkien puskureiden tulisi olla joko vapaa- tai laitelistalla

Merkkijono tilanteisiin, joissa I/O on merkkipohjaista (näppäimistö, tulostin) tuottaja/kuluttajamallin mukainen Puskuroimaton DMA

Tiedostonhallinta tyypit: –tavalliset –hakemistot –erikoistiedostot –putket (nimetyt) –linkit (käytännössä vaihtoehtoinen nimi) –symbolinen linkki Tässä käsitellään tavallisia tiedostoja

Inodít kaikki tiedostotyyppejä hallitaan inodien avulla. inode voi sisältää usean tiedoston, mutta yhtä tiedostoa ei voi liittää useampaan kuin yhteen inodiin. inodi sisältää kaiken tiedostonhallintaan tarvittavan tiedon levyltä löytyy inoditaulu tai –lista, joka sisältää kaikkien sen levyn tiedostojen inodit.

File allocation lohkoina, dynaamista lohkot eivät välttämättä ole peräkkäin inodissa on 39 tavua bittejä osoitetietoa, joka on sijoitettu 13 3-bitin ryhmään (osoittimiin) 10 osoitinta käytetään 10 ensimmäiseen lohkoon, jos tiedosto on isompi toimitaan seuraavasti: –sijoitetaan levylle lohko, johon 11. osoitin viittaa (epäsuoraindeksointi) –jos sekään ei riitä, 12. osoitin viittaa tiedostoon, jossa on oma epäsuora indeksointi (siis kaksinkertainen epäsuora indeksointi) –jos sekään ei riitä, 13. osoitin viittaa tiedostoon, jossa on kolminkertainen epäsuora indeksointi

Järjestelmän etuja: 1.inodin koko on vakio ja suhteellisen pieni 2.pieniin tiedostoihin päästään käsiksi pienellä määrällä työtä 3.teoreettinen maksimikoko on niin suuri, että se riittää käytännössä kaikkiin tiedostoihin

Hakemistot Hakemistot on sijoitettu hierarkiseen puuhun Volume structure UNIXin tiedostojärjestelmä sijaitsee yhdellä loogisella levyllä tai sen partitiolla ja siihen liittyy seuraavat elementit: –käynnistyslohko –ylilohko, sisältää tiedostojärjestelmän ominaisuuksia ja informaatiota, kuten partition koko ja inoditaulun koko –datalohkot, varsinainen tila, johon tieto varastoidaan