Käyttöjärjestelmät: prosessit



Samankaltaiset tiedostot
Käyttöjärjestelmät: poissulkeminen ja synkronointi

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Käyttöjärjestelmät. Teemu Saarelainen Tietotekniikka

4. Luento: Prosessit ja säikeets. Tommi Mikkonen,

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

IT K 1 45 K ä yt t öj ä rj estelmät

Jakso 8 Ohjelman toteutus järjestelmässä

Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Jakso 8 Ohjelman toteutus järjestelmässä

Luento 8 Ohjelman toteutus järjestelmässä

Luento 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Stallings, Luku 4.1. KJ-I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 4-1. KJ-I I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 12-1

Osio 2: Luennot 4-7 Muistinhallinta

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Palvelut. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut käyttöjärjestelmät

Prosessi (4) Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi. Prosessin vaihto (4) Prosessin elinkaari (9)

Prosessi perinteisesti

Stallings, Luku 4.1. KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

Käyttöjärjestelmät: Virtuaalimuisti

u vapaakäyntisyys (reentrancy) u Yhteinen koodialue u kullakin oma data-alue, pino, PCB u osoitteet suhteellisia prosessin alun suhteen

Osio 3: Prosessit, siirräntä ja tiedostojärjestelmä

Osio 2: Luennot 4-7 Muistinhallinta YKSINKERTAINEN MUISTINHALLINTA. ltöä YLEISTÄ MUISTINHALLINNASTA. Looginen muisti.

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

Prosessi (4) Luento 8 Ohjelman toteutus järjestelmässä. Prosessi. Prosessin vaihto (4)

Arto Salminen,

Prosessi (4) Suorituksessa olevan ohjelman esitysmuoto järjestelmässä. Jakso 8 Ohjelman suoritus järjestelmässä. Prosessin elinkaari (9)

Osio 2: Luennot 5-8 Muistinhallinta

2 Konekieli, aliohjelmat, keskeytykset

Luento 3: PROSESSIT JA NIIDEN HALLINTA

Käyttöjärjestelmän rakenne

Sisältöä PROSESSIT JA NIIDEN HALLINTA. Prosessi. Prosessi virtuaalimuistissa. Prosessi. Prosessi virtuaalimuistissa. Käyttöjärjestelmät

PROSESSIT JA NIIDEN HALLINTA

Prosessi virtuaalimuistissa PROSESSIT JA NIIDEN HALLINTA. Sisältöä. Prosessi virtuaalimuistissa. Prosessi. Prosessi. Käyttöjärjestelmät, Luento 4

Prosessi (4) Luento 8 Ohjelman toteutus järjestelmässä. Prosessin elinkaari (10) Prosessin vaihto (4) Prosessin esitysmuoto järjestelmässä (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Tietokoneen toiminta, K Tavoitteet (4)

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

Luento 8 Ohjelman toteutus järjestelmässä

Luento 5 (verkkoluento 5) Suoritin ja väylä

Sisältöä SÄIKEET, SMP

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Käyttöjärjestelmät II

Käyttöjärjestelmät II

CUDA. Moniydinohjelmointi Mikko Honkonen

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat

Muistihierarkia Kiintolevyt I/O:n toteutus

Yleiskuva. Käyttöjärjestelmät II. Tietokonejärjestelm. rjestelmä. KJ ja laitteistopiirteet. KJ ja laitteistopiirteitä.

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Tietokoneen rakenne: Harjoitustyö. Motorola MC prosessori

MUISTINHALLINTA. Stallings, Luku 7

Kernel (Fig 4.10 [Stal 05]) Operating Systems Examples and Process Management

Pikaintro käyttöjärjestelmiin

Luento 5 (verkkoluento 5) Suoritin ja väylä

Jakso 5 Suoritin ja väylä

Luento 8 Ohjelman toteutus järjestelmässä. Tietokonejärjestelmä. Prosessi (4) Prosessi. Prosessin elinkaari (11) Prosessin vaihto (3)

Jakso 5 Suoritin ja väylä

Kehittyneet ominaisuudet

Ongelma(t): Jotta tietokonetta voitaisiin käyttää monipuolisesti ja mahdollisimman yksinkertaisesti kaikkiin sille soveltuviin käyttötarkoituksiin,

Hans Baumgartner nimi nimi nimi nimi. Reaaliaikakäyttöjärjestelmät

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Jakso 5 Suoritin ja väylä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne

Lyhyt kertaus osoittimista

Luento 2. Timo Savola. 31. maaliskuuta 2006

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan

Javan asennus ja ohjeita ongelmatilanteisiin

PC-LAITTEEN TESTAAMINEN

KJ-II K2006 / Auvo Häkkinen - Teemu Kerola

PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER

Luento 3. Timo Savola. 7. huhtikuuta 2006

Action Request System

4. Prosessit ja säikeet

Prosessit ja säikeet SMP, Mikroytimet W2K säikeet

Käyttöjärjestelmät II. SMP, Mikroytimet. Prosessit yleensä. UNIX prosessit. UNIX SVR4 Prosessit. UNIX prosessin kuvaaja

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

ltö Luento 6: VIRTUAALIMUISTI Luento 7: Segmentointi Segmentointi ja sivutus yhdistettynä Yhteiskäytöstä Suoritus virtuaalimuistissa

Stallings, Lukua 2. KJ-I S2004 / Tiina Niklander, kalvot: Auvo Häkkinen 3-2. KJ-I I S2004 / Tiina Niklander, kalvot: Auvo Häkkinen 3-1

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

Luento 5 Suoritin ja väylä

SQL Server 2005 Express Edition tietokannan asennusohje

Luentokerta 5 Ohjelman toteutus järjestelmässä (prosessi, käyttöjärjestelmä) Järjestelmän ulkoinen muisti

Unix-perusteet. Tiedosto-oikeudet

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 5 Suoritin ja väylä

1. Keskusyksikön rakenne

Tietorakenteet ja algoritmit - syksy

Salasanojen hallinta. Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION

SÄIKEET, SMP. Sisältöä. Stallings, Luku 4. Prosessi vs. säie Miksi säikeitä? ULT: Käyttäjätason säikeet KLT: Säikeiden toteutus ytimessä

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne. Käskyjen nouto- ja suoritussykli (5)

Nimettömien tietojen lähettäminen Lenovolle

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Luento 6: VIRTUAALIMUISTI

Transkriptio:

Käyttöjärjestelmät: prosessit Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Lähteet Stallings, W. Operating Systems Haikala, Järvinen, Käyttöjärjestelmät Eri Web-lähteet

Käyttöjärjestelmä ja sovellukset Käyttöjärjestelmän tarkoitus tarjoaa käyttäjälle liitynnän laitteiston käyttöön suorittaa sovelluksia Mistä sovellus koostuu? Miten sovellusten vaihto tehdään? Mitä reunaehtoja sovellusten suorittamiselle on?

Sovellukset prosesseina Miten prosessit kuvataan käyttöjärjestelmässä? Käyttöjärjestelmän pitää pystyä vaihtamaan suoritusta prosessien välillä määrittämään resursseja prosesseille ja suojata prosessit toisiltaan mahdollistaa tietojen vaihto prosessien välillä mahdollistaa prosessien synkronisointi

Sovellus ja resurssit Ei ole järkevää kirjoittaa sovelluksia käyttämään suoraan jotakin tiettyä laitteistoa Käyttöjärjestelmä tarjoaa sovellukselle liitynnän resursseihin Lisäksi KJ antaa jonkinlaisen kuvauksen saatavilla olevista resursseista

Käyttöjärjestelmä sovellusalustana KJ tarjoaa resurssit monen sovelluksen käyttöön Tärkein resurssi on prosessori Prosessorin aikaa jaetaan sovellusten kesken I/O-laitteita pitää myös voida käyttää tehokkaasti

Prosessi??? Ohjelmakoodia (mahdollisesti jaettua) Joukko dataa Joukko ominaisuuksia, jotka kuvaavat prosessin tilaa

Prosessi??? Kun prosessia ajetaan, sillä on tunniste tila prioriteetti ohjelmalaskuri muisti-osoittimet dataa I/O tilatieto laskutustiedot Näitä hallitsee KJ

Trace prosessin jälki Prosessin käyttäytymistä kuvaa lista käskyjä Tätä listaa kutsutaan jäljeksi = trace

Prosessien suoritus ja dispatcher Suoritettavan prosessin vaihtamiseksi tarvitaan erityinen ohjelma, dispatcher Kaikki suoritettavat ohjelmat ovat muistissa, mukaan lukien dispatcher (ei oteta huomioon virtuaalimuistia)

Trace ja prosessit

Trace ja prosessori Timeout I/O

Prosessin tilat yksinkertaistettu versio

Prosessijono

Prosessien luonti KJ luo uuden prosessin ja siihen liittyvän tietorakenteen Myös käynnissä oleva prosessi voi luoda uuden, jos se on sallittua: Isäprosessi = Parent (alkuperäinen, luo uuden prosessin) Lapsiprosessi = Child (uusi prosessi)

Prosessien lopettaminen Pitää olla keino ilmoittaa prosessin loppumisesta Esimerkkejä tilanteista: Pysäytyskäsky (HALT), generoi keskeytyksen Käyttäjän toiminto (esim. ohjelman lopetus) Virhetilanne Isäprosessin lopettaminen

Prosessimalli 5 tilaa

Blocked-tila (WAIT) Jos prosessi odottaa jotain resurssia tai tapahtumaa, niin sen tilaksi tulee Blocked (tai WAIT) Tämän prosessi tekee yleensä omasta pyynnöstään Kun resurssi saadaan tai tapahtuma toteutuu, niin prosessi siirtyy takaisin Ready -tilaan

Kaksi prosessijonoa

Suspend-tila Prosessori on nopeampi kuin I/O jopa kaikki prosessit voivat odottaa I/O:ta swapataan nämä levylle, jotta saadaan vapautettua muistia ja käytettyä prosessoria muille prosesseille Blocked -tila muuttuu Suspend -tilaksi, kun prosessi heitetään levylle Eli tulee vielä lisää tiloja: Blocked/Suspend Ready/Suspend

Kaksi Suspend-tilaa

Prosessien tiedot ja resurssit Mitä resursseja prosessit käyttävät? Mitä tietoa prosesseista?

Prosessien resurssit

Prosessien tiedot ja kontrollirakenteet KJ tarvitsee tietoa prosessien tilasta ja resursseista Nämä tiedot ovat eräänlaisissa tauluissa Kontrollitaulut Muisti I/O Tiedostot Prosessit

Muistitaulut Käytetään keskusmuistin ja virtuaalimuistin seurantaan Tiedot Keskusmuistin allokointi prosesseille Virtuaalimuistin allokointi prosesseille Suojaustiedot jaetuille muistialueille Virtuaalimuistin hallintatiedot

I/O-taulut Käytetään I/O-laitteiden hallintaan KJ:n tarvitsee tietää onko laite käytettävissä vai varattu I/O-operaation tila muistialue, jota käytetään tiedonvaihtoon I/O-laitteen kanssa

Tiedosto-taulut Pitää yllä tietoa olemassa olevista tiedostoista tiedostojen paikasta tiedoston tilasta muista attribuuteista Voi olla myös erillinen tiedostojärjestelmä (yleensä)

Prosessi-taulut Ylläpitää tietoa prosesseista tila prosessi-id paikka muistissa Process control block = prosessin hallintablokki Prosessitaulun tiedot täytyy jotenkin linkittää muiden taulujen tietoihin

Prosessien ominaisuudet Kolme ryhmää: Prosessin tunnistustieto - ID Prosessin tilatieto prosessorin rekisterit, PSW Prosessin hallintatieto KJ tarvitsemat tiedot prosessien hallintaa varten

Prosessit virtuaalimuistissa

Prosessin hallintablokki Tärkein tietorakenne KJ:ssä Määrittelee koko käyttöjärjestelmän tilan Tarvitsee hyvän suojauksen Virheellinen ohjelmakoodi voi tuhota tärkeää tietoa KJ ei pysty enää hallinnoimaan prosessia

Suoritustilat user & system modes Prosessorit tukevat vähintään kahta suoritustilaa User mode ei-etuoikeutettu tai vähemmän etuoikeutettu tila käyttäjän ohjelmat ajetaan tässä tilassa System mode etuoikeutettu tai enemmän etuoikeutettu tila käyttöjärjestelmän ydin (kernel) ajetaan tässä tilassa

Prosessin luonti KJ tekee seuraavat asiat prosessia luodessaan: antaa yksikäsitteisen prosessi ID:n prosessille allokoi tilan prosessille alustaa prosessin hallintablokin tekee tarpeen mukaiset linkitykset (eri taulut) päivittää mahdolliset muut tietorakenteet

Prosessien suorituksen vaihto Mikä laukaisee prosessien suorituksen vaihtamisen? Mechanism Cause Use Interrupt Trap External to the execution of the current instruction Associated with the execution of the current instruction Reaction to an asynchronous external event Handling of an error or an exception condition Supervisor call Explicit request Call to an operating system function Mitä tarvitsee tehdä eri tietorakenteille, jotta suoritusta voidaan vaihtaa prosessilta toiselle? paljon suunnittelussa huomioon otettavia asioita

Prosessin tilan vaihto Kun suoritus vaihdetaan prosessilta toiselle 1. talletetaan prosessorin tila (PC, rekisterit, ) 2. päivitetään nykyisen prosessin hallintablokki 3. siirretään prosessin hallintablokki oikeaan jonoon (ready, blocked, suspended, ) 4. valitaan seuraava suoritettava prosessi 5. päivitetään uuden prosessin hallintablokki 6. päivitetään muistinhallintarakenteet 7. palautetaan uuden prosessin konteksti prosessorille

KJ:n suoritus??? Onko KJ prosessi? Miten KJ:n suoritusta hallitaan? Kolme vaihtoehtoa: erillinen ydin (kernel) funktiot osa käyttäjän prosessseja funktiot erillisinä prosesseina

Ei-prosessipohjainen ydin KJ:n ydintä ajetaan prosessien ulkopuolella Yleinen vanhoissa käyttöjärjestelmissä Käyttöjärjestelmän funktiot ajetaan etuoikeutetussa moodissa

KJ ajetaan käyttäjän prosessien sisällä KJ:n funktiot ajetaan käyttäjän prosessien sisällä Ei tarvitse vaihtaa prosessia KJ:n rutiinien ajoa varten Yleinen pienten järjestelmien KJ:ssä (PC:t, työasemat)

Prosessipohjainen ydin KJ ajetaan prosesseina Pieni osa koodista prosessien ulkopuolella (prosessien vaihtoon) Voidaan rakentaa modulaarinen KJ Hyvä ratkaisu moniprosessorijärjestelmissä

Turvallisuusnäkökohta? KJ asettaa prosesseille tietyt oikeudet (=privileges) KJ:n ytimen tehtävät suoritetaan yleensä korkeimmilla (root, supervisor, ) oikeuksilla Mikään käyttäjän prosessi ei saisi saada korkeampia oikeuksia (turhaan)

Tehtävä: Windows-arkkitehtuuri Selvitä, minkälainen on Windows NT/2000/XP/Vistakäyttöjärjestelmän arkkitehtuuri Mitä osia ajetaan system/kernel mode:ssa ja mitä vastaavasti user mode:ssa? Mikä on kernelin tyyppi? (monolithic, microkernel, hybrid)